Firebreath を使用してウィンドウレス プラグインを開発しています。さらに処理するために特定のメッセージをキャッチしたいのですが、それは可能ですが、残りのメッセージは「失われている」と思います。
メッセージループをフックする次のコードがあります。
bool myPlugin::onWindowAttached(FB::AttachedEvent *evt, FB::PluginWindow* pluginwin)
{
FB::PluginWindowlessWin* win = dynamic_cast<FB::PluginWindowlessWin*>(pluginwin);
FBLOG_INFO("", win->getHWND()); //getHWND returns the HWND of the Internet Explorer_Server window (get by using Spy++)
SubclassWindow(win->getHWND(), (WNDPROC)&myPlugin::WndProc);
return true;
}
そして、これは処理関数です:
LRESULT CALLBACK myPlugin::WndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case (WM_ERASEBKGND):
return 1;
}
return DefWindowProc(hWindow, msg, wParam, lParam);
}
これは IE9 で期待どおりに動作します (画像の再描画中に問題が発生したため、これを行っています) が、クリック メッセージは処理されず、他のメッセージも処理されません。ボタンがプラグインと同じページにある場合、クリックできません。
IE9 を単一のプロセスとして実行しています。
どんな助けでも大歓迎です。
ありがとう!