WinCPICSetBlockingHook

WinCPICSetBlockingHook函式允許 Microsoft® Windows® Common Programming Interface for Communications (CPI-C) 實作,透過新的函式來封鎖 CPI-C 函式呼叫。 此舊版呼叫是由 Microsoft® Windows® 第 3 版使用。x 應用程式進行封鎖呼叫,而不會封鎖系統的其餘部分。 根據預設,在 Microsoft Windows 作業系統中,封鎖呼叫會暫停呼叫應用程式執行緒,直到要求完成為止。

參數

lpBlockFunc
指定要安裝的封鎖函式的程式實例位址。

傳回值

傳回值會指向先前安裝之封鎖函式的程式實例。 呼叫 WinCPICSetBlockingHook 的應用程式或程式庫應該儲存此傳回值,以便視需要加以還原。 (如果巢狀不重要,應用程式可以直接捨棄 WinCPICSetBlockingHook 傳回的值,最後使用 WinCPICUnhookBlockingHook 還原預設機制。)

備註

Windows CPI-C 實作具有預設機制,可藉此實作封鎖 CPI-C 函式。 此函式可讓應用程式在封鎖時間執行自己的函式,以取代預設函式。

預設封鎖函式相當於:

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;  
}  

提供 WinCPICSetBlockingHook函式來支援需要更複雜的訊息處理的應用程式,例如,採用多個檔介面的應用程式 (MDI) 模型或具有 Menu 快速鍵的應用程式, (TranslateAccelerator) 。

封鎖函式必須傳回 FALSE,以回應WM_QUIT訊息,讓 Windows CPI-C 可以將控制權傳回應用程式以處理訊息並正常終止。 否則,函式應該會傳回 TRUE。

另請參閱

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