Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<tchar.h>
- #define _HOOK_DLL_
- #include"lab4_C_lib.h"
- #pragma data_seg(".SHARDATA")
- HWND hWnd=NULL;
- HINSTANCE hInstance;
- HHOOK hHook;
- #pragma data_seg()
- #pragma comment(linker, "/section:.SHARDATA,rws")
- BOOL APIENTRY DllMain( HMODULE hModule,
- DWORD ul_reason_for_call, LPVOID lpReserved )
- { if(ul_reason_for_call == DLL_PROCESS_ATTACH)
- { hInstance = hModule;
- DisableThreadLibraryCalls(hModule);
- }
- return TRUE;
- }
- int CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam)
- { INT ret = CallNextHookEx(hHook,nCode,wParam,lParam);
- if(nCode < 0) return ret;
- if(nCode == HCBT_MOVESIZE)
- { MessageBox(0,_T("Window was moved or sized!!!"),_T("title"),MB_OK);
- PostMessage(hWnd,HOOK_CBT,wParam,0);
- }
- return 0;
- }
- HHOOK InstallHook(HWND hWnd)
- { if(::hWnd != NULL) return FALSE;//уже установили хук
- hHook = SetWindowsHookEx(WH_CBT, (HOOKPROC) HookProc, hInstance, 0);
- if(hHook != NULL) ::hWnd = hWnd; // ставим hook типа WH_CBT для системы return hHook;
- }
- void UninstallHook()
- { if(hWnd == NULL) return;//хук не установлен
- BOOL bResult = UnhookWindowsHookEx(hHook);
- if(bResult == TRUE) hWnd = NULL;
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment