1) create a subclasswindow for a CEF browser, called CChromiumBrowser.
2) catch the CEF browser mouse event in BOOL CChromiumBrowser::OnWndMsg(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult)
I could catch WM_MOUSEMOVE and WM_LBUTTONDOWN but not WM_LBUTTONUP. I guess CEF blocks WM_LBUTTONDOWN.
show release symbols below. Thanks
> EmbStudio.exe!CChromiumBrowser::OnWndMsg(unsigned int message, unsigned int wParam, long lParam, long * pResult) Line 121 C++
EmbStudio.exe!CWnd::WindowProc(unsigned int message, unsigned int wParam, long lParam) Line 2137 C++
EmbStudio.exe!AfxCallWndProc(CWnd * pWnd, HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) Line 293 C++
EmbStudio.exe!AfxWndProc(HWND__ * hWnd, unsigned int nMsg, unsigned int wParam, long lParam) Line 452 C++
user32.dll!gapfnScSendMessage() + 818 bytes Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]
user32.dll!GetThreadDesktop() + 215 bytes Unknown
user32.dll!GetThreadDesktop() + 134 bytes Unknown
user32.dll!GetWindow() + 1008 bytes Unknown
user32.dll!SendMessageW() + 76 bytes Unknown
libcef.dll!content::RenderWidgetHostViewWin::OnMouseEvent(unsigned int message, unsigned int wparam, long lparam, int & handled) Line 1885 C++
libcef.dll!content::RenderWidgetHostViewWin::ProcessWindowMessage(HWND__ * hWnd, unsigned int uMsg, unsigned int wParam, long lParam, long & lResult, unsigned long dwMsgMapID) Line 122 C++
libcef.dll!ATL::CWindowImplBaseT<ATL::CWindow,ATL::CWinTraits<1174405120,0> >::WindowProc(HWND__ * hWnd, unsigned int uMsg, unsigned int wParam, long lParam) Line 3508 C++
user32.dll!gapfnScSendMessage() + 818 bytes Unknown
user32.dll!GetThreadDesktop() + 215 bytes Unknown
user32.dll!GetThreadDesktop() + 134 bytes Unknown
user32.dll!CharPrevW() + 312 bytes Unknown
user32.dll!GetLastActivePopup() + 341 bytes Unknown
libcef.dll!base::MessagePumpForUI::ProcessMessageHelper(const tagMSG & msg) Line 409 C++
libcef.dll!base::MessagePumpForUI::ProcessPumpReplacementMessage() Line 453 C++
libcef.dll!base::MessagePumpForUI::ProcessMessageHelper(const tagMSG & msg) Line 392 C++
libcef.dll!base::MessagePumpForUI::DoRunLoop() Line 239 C++
libcef.dll!base::MessagePumpWin::Run(base::MessagePump::Delegate * delegate) Line 48 C++
libcef.dll!base::MessageLoop::RunInternal() Line 441 C++
libcef.dll!base::RunLoop::Run() Line 46 C++
libcef.dll!base::MessageLoop::Run() Line 322 C++
libcef.dll!base::Thread::Run(base::MessageLoop * message_loop) Line 159 C++
libcef.dll!base::Thread::ThreadMain() Line 207 C++
libcef.dll!base::`anonymous namespace'::ThreadFunc(void * params) Line 78 C++
kernel32.dll!BaseThreadInitThunk() + 18 bytes Unknown
ntdll.dll!RtlInitializeExceptionChain() + 99 bytes Unknown
ntdll.dll!RtlInitializeExceptionChain() + 54 bytes Unknown