Hook di errore
L'hook di errore viene attivato in maniera analoga all'hook di notifica. È necessario che il valore restituito dalla routine di hook sia appropriato per consentire il proseguimento dell'esecuzione (HINSTANCE o FARPROC) oppure corrisponda a 0 per indicare che deve essere generata un'eccezione.
La variabile puntatore che fa riferimento alla funzione definita dall'utente è:
// This is the failure hook, dliNotify = {dliFailLoadLib|dliFailGetProc}
ExternC
PfnDliHook __pfnDliFailureHook2;
La struttura DelayLoadInfo contiene tutti i dati pertinenti necessari alla creazione di accurati report degli errori, compreso il valore di GetLastError.
Se la notifica è dliFailLoadLib, il valore restituito dalla funzione hook può essere:
0 se non è possibile gestire l'errore.
Un HMODULE se mediante l'hook di errore è stato corretto il problema e caricata la libreria.
Se la notifica è dliFailGetProc, il valore della funzione hook può essere:
0 se non è possibile gestire l'errore.
Un indirizzo di routine valido (indirizzo della funzione di importazione), se è stato possibile ottenerlo grazie all'hook di errore.