Написание плагина Firefox XPCOM с собственным оконным интерфейсом?(например, элемент управления ActiveX)
Вопрос
У меня есть элемент управления ActiveX, который отлично работает в Internet Explorer и программе «Контейнер тестирования элементов управления ActiveX».Фактическое поведение элемента управления разделено на две части, где одна часть — это ATL-мусор, который взаимодействует с узлом OLE, а другая часть — это настоящая суть, которая просто получает обратные вызовы для присоединения окна, изменения размера, рисования и управления мышью/клавиатурой. события.
Теперь я хочу написать эквивалент ATL-мухи для плагина Firefox (в идеале в одном двоичном файле, поэтому мне не нужно связывать два двоичных файла, но здесь я могу проявить гибкость).Я загрузил и использовал Gecko SDK для создания компонента XPCOM, и это, кажется, работает, но я не могу понять, какие интерфейсы реализовать, чтобы сделать компонент доступным как встроенный собственный компонент пользовательского интерфейса в Firefox.По потребностям он аналогичен плагину Flash player, плагину PDF Viewer, плагину проигрывателя QuickTime и т. д. — javascript и XUL будет недостаточно.
Я искал примеры в Интернете, но единственные примеры, которые я смог найти, основаны на, казалось бы, древнем интерфейсе NS_PluginInitialize()/NS_NewPluginInstance(), который не является XPCOM (но имеет какое-то другое имя?).
Есть ли способ добиться того же через XPCOM?Если да, то как?И существует ли вообще какая-либо обзорная документация (а не только списки членов интерфейса) о том, как это сделать?
Решение
Иаа, ответ только что появился в другом поиске в Интернете.Ну, по крайней мере, начало какой-нибудь веревки, которая, если ее потянуть достаточно долго, вероятно, ответит на вопрос.