WinCPICSetBlockingHook

WinCPICSetBlockingHook 函式允許 Microsoft® Windows® 通訊通用程式介面(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)模型或具備選單加速器的應用程式(TranslateAccelerator)。

阻擋函式必須在回應 WM_QUIT 訊息時回傳 FALSE,讓 Windows CPI-C 能將控制權交還給應用程式處理訊息並優雅終止。 否則,函式應回傳 TRUE。

另請參閱

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