Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La funzione WinAPPCSetBlockingHook consente a un'implementazione di Windows APPC di bloccare le chiamate di funzione APPC tramite una nuova funzione. Per impostazione predefinita in Microsoft Windows, il blocco delle chiamate sospende il thread dell'applicazione chiamante fino al termine della richiesta.
Sintassi
FARPROC WINAPI WinAPPCSetBlockingHook (
FARPROC lpBlockFunc);
Parametri
lpBlockFunc
Specifica l'indirizzo dell'istanza di routine della funzione di blocco da installare.
Valore restituito
Il valore restituito punta all'istanza della routine della funzione di blocco installata in precedenza. L'applicazione o la libreria che chiama WinAPPCSetBlockingHook deve salvare questo valore restituito in modo che possa essere ripristinato, se necessario. Se l'annidamento non è importante, l'applicazione può semplicemente eliminare il valore restituito da WinAPPCSetBlockingHook e infine usare WinAPPCUnhookBlockingHook per ripristinare il meccanismo predefinito.
Osservazioni:
Un'implementazione appc di Windows ha un meccanismo predefinito che blocca le funzioni APPC implementate. Questa funzione consente all'applicazione di eseguire la propria funzione in fase di blocco al posto della funzione predefinita.
La funzione di blocco predefinita equivale a:
BOOL DefaultBlockingHook (void) {
MSG msg;
/* get the next message if any */
if ( PeekMessage (&msg,0,0,PM_NOREMOVE) ) {
if ( msg.message = = WM_QUIT )
return FALSE; // let app process WM_QUIT
PeekMessage (&msg,0,0,PM_REMOVE) ;
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
/* TRUE if no WM_QUIT received */
return TRUE;
}
Una funzione di blocco deve restituire FALSE se riceve un messaggio WM_QUIT in modo che Windows APPC possa restituire il controllo all'applicazione per elaborare il messaggio e terminare normalmente. In caso contrario, la funzione deve restituire TRUE.
Questa funzione viene implementata per ogni thread. Fornisce a un particolare thread di sostituire il meccanismo di blocco senza influire sugli altri thread.
La funzione WinAPPCSetBlockingHook viene fornita per supportare le applicazioni che richiedono un'elaborazione dei messaggi più complessa, ad esempio quelle che usano il modello MDI (Multiple Document Interface).