Добрый день!
Пытаюсь сделать эмуляцию событий.
Код взят отсюда: http://forum.mozilla-russia.org/viewtopic.php?id=26616.
Я дописал недостающие интерфейсы. Пишу на C#.

Вставил код прямо в исходники компонента geckofx, подправил что надо.

Вот часть кода:

Выделить код

Код:

Skybound.Gecko.nsIDOMAbstractView window = Skybound.Gecko.Xpcom.QueryInterface<Skybound.Gecko.nsIDOMAbstractView>(this.Window.DomWindow);

Skybound.Gecko.nsAString st = new Skybound.Gecko.nsAString("click");
            me.InitMouseEvent(st, true, true, window,
                0, 0, 0, 0, 0, false, false, false, false, 0, null);

И вот шарпик на меня ругается:
Ошибка    2    Аргумент "4": преобразование типа из "Skybound.Gecko.nsIDOMAbstractView" в "System.IntPtr" невозможно    D:\VC_Project\Skybound.GeckoFX.src.v1.9.0.0\src\Skybound.Gecko\GeckoWebBrowser.cs    435    47    Skybound.Gecko

С объектом window что то нето. Немогу понять как тогда работает код которые выше по ссылке.

На ссылке: http://forum.mozilla-russia.org/viewtopic.php?id=26616
Не видно что используется указатель.
Так как оригинальный метод:

Выделить код

Код:

void InitMouseEvent(nsAString typeArg, bool canBubbleArg, bool cancelableArg, IntPtr /*nsIDOMAbstractView*/ viewArg, int detailArg, int screenXArg, int screenYArg, int clientXArg, int clientYArg, bool ctrlKeyArg, bool altKeyArg, bool shiftKeyArg, bool metaKeyArg, ushort buttonArg, nsIDOMEventTarget relatedTargetArg);

Проблема решилась изменением четвертого параметра:

Выделить код

Код:

void InitMouseEvent(nsAString typeArg, bool canBubbleArg, bool cancelableArg, nsIDOMAbstractView viewArg, int detailArg, int screenXArg, int screenYArg, int clientXArg, int clientYArg, bool ctrlKeyArg, bool altKeyArg, bool shiftKeyArg, bool metaKeyArg, ushort buttonArg, nsIDOMEventTarget relatedTargetArg);

Странно, но работает.