Description

L'implémentation WinHLLAPI dispose d'une procédure de blocage par défaut qui ne consiste en rien d'autre qu'un gestionnaire de messages. Ce mécanisme par défaut est illustré dans l'exemple suivant :
BOOL DefaultBlockingHook { MSG msg; if (PeekMessage (&msg, NULL, 0, 0, xfPM_NOREMOVE)) { if(msg.message = = WM_QUIT) { return FALSE; } PeekMessage (&msg, NULL, 0, 0, PM_REMOVE); TranslateMessage (&msg); DispatchMessage (&msg); } return TRUE; }

Le crochet de blocage est implémenté pour chaque unité d'exécution. Un crochet de blocage défini par cette fonction restera en vigueur pour l'unité d'exécution jusqu'à ce qu'elle soit remplacée par un autre appel à WinHLLAPISetBlockingHook() ou jusqu'à ce que la valeur par défaut soit restaurée par un appel à WinHLLAPIUnhookBlockingHook().

La fonction de blocage doit renvoyer FALSE si elle reçoit un message WM_QUIT afin que WinHLLAPI puisse rendre le contrôle à l'application pour traiter le message et se terminer correctement. Sinon, la fonction devrait renvoyer TRUE.