// Opstelling de haak
VERIFI�ëR (CFuncInAPIHook:: Instantie () .HookFunction (_T („user32.dll“), _T („MessageBoxW“), AfxGetInstanceHandle (), (PROC) &MyMessageBox));
// de procedure van de Vervanging
int. WINAPI MyMessageBox (HWND hWnd,
LPCTSTR lpText,
lpCaption LPCTSTR,
UINT uType
)
{
// de wijzer van de Functie moet zelfde roepende overeenkomst hebben zoals PROC (WINAPI)! Daarom prepend WINAPI (__stdcall)!
TYPEDEF INT. (WINAPI *MESSAGEBOX_FUNC) (HWND, LPCTSTR, LPCTSTR, UINT);
// wint eens slechts het adres van de originele functie terug!
statische MESSAGEBOX_FUNC pFunc = (MESSAGEBOX_FUNC) CFuncInAPIHook:: Instantie () .RetrieveOriginalAPIFunctionAddress (_T („user32.dll“), _T („MessageBoxW“));
BEWEER (pFunc);
keer terug pFunc? (*pFunc) (hWnd, _T („ik heb deze vraag vastgehaakt! “), lpCaption, uType): 0;
}
// Deze vraag zal worden vastgehaakt
:: MessageBox (VERKLAAR, _T (""), _T („Titel“), MB_OK nietig);
|