// setup крюк
ПОДТВЕРДИТЕ (CFuncInAPIHook:: Приведите () .HookFunction в пример (_T («user32.dll»), _T («MessageBoxW»), AfxGetInstanceHandle (), &MyMessageBox (PROC)));
Процедура по замены //
int WINAPI MyMessageBox (hWnd HWND,
lpText LPCTSTR,
lpCaption LPCTSTR,
uType UINT
)
{
Указатель функции // должен иметь такую же вызывая конвенцию как PROC (WINAPI)! Поэтому, prepend WINAPI (__stdcall)!
typedef int (*MESSAGEBOX_FUNC) (HWND WINAPI, LPCTSTR, LPCTSTR, UINT);
// только восстановляет первоначально адрес функции раз!
статическое pFunc MESSAGEBOX_FUNC = (MESSAGEBOX_FUNC) CFuncInAPIHook:: Приведите () .RetrieveOriginalAPIFunctionAddress в пример (_T («user32.dll»), _T («MessageBoxW»));
УТВЕРДИТЕ (pFunc);
возвратите pFunc? (*pFunc) (hWnd, _T («я закреплял этот звонок! "), lpCaption, uType): 0;
}
// этот звонок будет закреплено
:: MessageBox (NULL, _T (""), _T («название»), MB_OK);
|