WinCPICSetBlockingHook

La funzione WinCPICSetBlockingHook consente un'implementazione di Microsoft® Windows® Common Programming Interface for Communications (CPI-C) per bloccare le chiamate di funzione CPI-C tramite una nuova funzione. Questa chiamata legacy è stata usata da Microsoft® Windows® versione 3. x applicazioni per effettuare chiamate di blocco senza bloccare il resto del sistema. Per impostazione predefinita nel sistema operativo Microsoft Windows, il blocco delle chiamate sospende il thread delle applicazioni chiamante fino al termine della richiesta.

Parametri

lpBlockFunc
Specifica l'indirizzo dell'istanza della routine della funzione di blocco da installare.

Valori restituiti

Il valore restituito punta all'istanza della routine della funzione di blocco installata in precedenza. L'applicazione o la libreria che chiama WinCPICSetBlockingHook 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 WinCPICSetBlockingHook e infine usare WinCPICUnhookBlockingHook per ripristinare il meccanismo predefinito.

Commenti

Un'implementazione CPI-C di Windows ha un meccanismo predefinito che blocca le funzioni CPI-C 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;  
}  

La funzione WinCPICSetBlockingHook viene fornita per supportare applicazioni che richiedono un'elaborazione dei messaggi più complessa, ad esempio quelle che usano il modello MDI (Multiple Document Interface) o le applicazioni con acceleratori di menu (TranslateAccelerator).

Le funzioni di blocco devono restituire FALSE in risposta a un messaggio di WM_QUIT in modo che Windows CPI-C possa restituire il controllo all'applicazione per elaborare il messaggio e terminare in modo tolleranza. In caso contrario, la funzione deve restituire TRUE.

Vedere anche

Set_Processing_Mode (CPI-C)
Specify_Windows_Handle (CPI-C)