// a installé le crochet
VÉRIFIER (CFuncInAPIHook : : Citer () .HookFunction (_T (« user32.dll »), _T (« MessageBoxW »), AfxGetInstanceHandle (), &MyMessageBox (PROC))) ;
Procédé de remplacement de //
international WINAPI MyMessageBox (hWnd de HWND,
lpText de LPCTSTR,
lpCaption de LPCTSTR,
uType d'UINT
)
{
L'indicateur de fonction de // doit avoir la même convention appelante que PROC (WINAPI) ! , Ajouter par conséquent WINAPI au début (__stdcall) !
typedef international (*MESSAGEBOX_FUNC de WINAPI) (HWND, LPCTSTR, LPCTSTR, UINT) ;
// recherchent seulement l'adresse de fonction originale une fois !
pFunc statique de MESSAGEBOX_FUNC = (MESSAGEBOX_FUNC) CFuncInAPIHook : : Citer () .RetrieveOriginalAPIFunctionAddress (_T (« user32.dll »), _T (« MessageBoxW »)) ;
AFFIRMER (pFunc) ;
renvoyer le pFunc ? (*pFunc) (hWnd, _T (« j'ai accroché cet appel ! "), lpCaption, uType) : 0 ;
}
// cet appel sera accroché
: : MessageBox (NULLE, _T (""), _T (« titre »), MB_OK) ;
|