Написание плагина Firefox XPCOM с собственным интерфейсом окна? (как элемент управления ActiveX) - PullRequest
1 голос
/ 22 апреля 2009

У меня есть элемент управления ActiveX, который отлично работает в Internet Explorer и программе ActiveX Control Test Container. Фактическое поведение элемента управления разделено на две части, где одна часть представляет собой набор ATL, который взаимодействует с OLE-хостом, а другая часть представляет собой реальный элемент, который просто получает обратные вызовы для присоединения окна, определения размера, рисования и мыши / клавиатуры. События.

Теперь я хочу написать эквивалент модуля ATL для плагина Firefox (в идеале в одном и том же двоичном файле, поэтому мне не нужно связывать два двоичных файла, но я могу быть гибким здесь). Я скачал и использовал Gecko SDK для создания компонента XPCOM, и это, кажется, работает, но я не могу понять, какие интерфейсы нужно реализовать, чтобы сделать компонент доступным как встроенный компонент UI в Firefox. Это похоже на потребности плагина Flash Player, плагина PDF Viewer, плагина QuickTime Player и т. Д. - javascript и XUL будет недостаточно.

Я искал примеры в Интернете, но единственные примеры, которые я могу найти, основаны на, казалось бы, древнем интерфейсе NS_PluginInitialize () / NS_NewPluginInstance (), который не является XPCOM (но имеет другое название?).

Есть ли способ достичь того же через XPCOM? Если так, то как? И существует ли вообще какая-либо обзорная документация (не только списки членов интерфейса) о том, как это сделать?

1 Ответ

1 голос
/ 22 апреля 2009

Ааа, и ответ только что появился в другом поиске в сети. Ну, по крайней мере, начало какого-то куска веревки, который, если потянуть его достаточно долго, вероятно, ответит на вопрос.

https://developer.mozilla.org/en/Gecko_Plugin_API_Reference/Plug-in_Basics#Windowed_and_Windowless_Plug-ins

...