Я разрабатываю плагин NPAPI, использующий Firebreath.Я использую стороннюю dll для интеграции с игровым устройством. Входные данные на устройствах распространяются на плагин через окно только для сообщений (HWND), зарегистрированное при открытии канала для устройства.
Первоначально, рукопожатие с драйвером устройства, рукопожатие (HWND, ...) и после которого при вводе пользователем выполняется обратный вызов в CustomWinProc () для уведомления.
Я сделал следующее,
- Создан файл заголовка и CPP в WIN-CustomCallbackHandler.h,
#include "Win\PluginWindowWin.h"
#include "Win\WindowContextWin.h"
class CustomCallbackHandler : public FB::PluginWindowWin
{
public:
CustomCallbackHandler (const FB::WindowContextWin& ctx);
protected:
virtual bool CustomWinProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM
lParamm,LRESULT & lRes);
};
-CustomCallbackHandler.cpp
[code]
#include "CustomCallbackHandler.h"
#include "PluginWindowForwardDecl.h"
#include "Win\WindowContextWin.h"
#include "Win\PluginWindowWin.h"
CustomCallbackHandler::CustomCallbackHandler(const FB::WindowContextWin& ctx) :
FB::PluginWindowWin(ctx){
}
bool CustomCallbackHandler::CustomWinProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM
lParamm,LRESULT & lRes){
//if WPARAM is something some operation has to be performed.
return false;
}
[/code]
-Factory.cpp - Добавлено следующееметод для переопределения PluginWindowWin
FB::PluginWindowWin* createPluginWindowWin(const FB::WindowContextWin& ctx)
{
return new CustomCallbackHandler(ctx);
}
-MyFirstPluginAPI.cpp- (автоматически сгенерированный подкласс JSAPIAuto) - метод JS.
bool MyFirstPluginAPI::handshake(FB::JSObjectPtr &callback)
{
FB::WinMessageWindow window;
thirdpartymethod(window.getHWND());
}
Теперь, когда я отлаживаю, я вижу, что обработчик пользовательских вызововвызывается несколько раз для обычных событий плагина, но события, генерируемые устройствами, недоступны. Я полагаю, что другой экземпляр окна сообщения передается в dll.
-Как я могу получить дескрипторPluginWindowWin?
- Как только я получаю обратный вызов на CustomCallbackHandler, Как мне создать собственный sendEvent ()?
Ваша помощь очень важна.
Я Java разработчик и не имеет большого опыта в программировании на C ++.Я считаю, что мне не хватает чего-то фундаментального.