// ha installato il gancio
VERIFICARE (CFuncInAPIHook:: Cit ad esempioare () .HookFunction (_T (“user32.dll„), _T (“MessageBoxW„), AfxGetInstanceHandle (), &MyMessageBox (PROC)));
Procedura del rimontaggio di //
int WINAPI MyMessageBox (hWnd di HWND,
lpText di LPCTSTR,
lpCaption di LPCTSTR,
uType di UINT
)
{
L'indicatore di funzione di // deve avere stessa convenzione di chiamata di PROC (WINAPI)! Di conseguenza, prepend WINAPI (__stdcall)!
typedef int (*MESSAGEBOX_FUNC) di WINAPI (HWND, LPCTSTR, LPCTSTR, UINT);
// richiama soltanto una volta l'indirizzo della funzione originale!
pFunc statico di MESSAGEBOX_FUNC = (MESSAGEBOX_FUNC) CFuncInAPIHook:: Cit ad esempioare () .RetrieveOriginalAPIFunctionAddress (_T (“user32.dll„), _T (“MessageBoxW„));
ASSERIRE (pFunc);
restituire il pFunc? (*pFunc) (hWnd, _T (“ho agganciato questa chiamata! "), lpCaption, uType): 0;
}
// questa chiamata sarà agganciato
:: MessageBox (POSIZIONE DI SEGNALE MINIMO, _T (""), _T (“titolo„), MB_OK);
|