BOOL WINAPI DllMain (HINSTANCE hInstance, DWORD ul_reason_for_call, LPVOID lpReserved) { switch(ul_reason_for_call){ case DLL_PROCESS_ATTACH: g_hDll=hInstance; break; case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; }
DllExport void CALLBACK MouseHookInstall(void) { if ( g_hDll == NULL ) return; g_hHookMouseWnd = SetWindowsHookEx(WH_MOUSE_LL,(HOOKPROC)MouseProc, g_hDll, 0 ); if ( g_hHookMouseWnd == NULL){ } else { } }
DllExport void CALLBACK MouseHookUninstall(void) { if ( g_hHookMouseWnd != NULL){ UnhookWindowsHookEx(g_hHookMouseWnd); } }
LRESULT CALLBACK MouseProc(int nCode,WPARAM wParam,LPARAM lParam) { if (nCode < 0 || nCode == HC_NOREMOVE ) { return CallNextHookEx(g_hHookMouseWnd, nCode, wParam, lParam); } MSLLHOOKSTRUCT * lp = (MSLLHOOKSTRUCT *)lParam; if( nCode == HC_ACTION ){ switch (wParam){ case WM_XBUTTONDOWN: } break; } } }
LIBRARY TestWinHook EXPORTS MouseHookInstall MouseHookUninstall