iTfKeystrokeMgr::TestKeyDown 方法 (msctf.h)

判斷按鍵管理員是否會處理按鍵關閉事件。

語法

HRESULT TestKeyDown(
  [in]  WPARAM wParam,
  [in]  LPARAM lParam,
  [out] BOOL   *pfEaten
);

參數

[in] wParam

指定金鑰的虛擬金鑰代碼。 如需此參數的詳細資訊,請參閱WM_KEYDOWN中的wParam參數。

[in] lParam

指定索引鍵的重複計數、掃描程式碼、擴充金鑰旗標、內容程式碼、先前的索引鍵狀態旗標,以及金鑰的轉換狀態旗標。 如需此參數的詳細資訊,請參閱WM_KEYDOWN中的lParam參數。

[out] pfEaten

BOOL 的指標,指出是否要處理索引鍵事件。 如果此值收到 TRUE,則會處理索引鍵事件,而且不應該將事件轉送至應用程式。 如果此值為 FALSE,則不會處理索引鍵事件,而且事件應該轉送至應用程式。

傳回值

這個方法可以傳回下列其中一個值。

描述
S_OK
此方法成功。
S_FALSE
未安裝任何金鑰事件接收。
E_INVALIDARG
一或多個參數無效。

備註

應用程式可以使用此方法判斷按鍵管理員是否會處理按鍵事件。 如果此方法成功且 pf一 收到 TRUE,應用程式應該呼叫 ITfKeystrokeMgr::KeyDown。 如果這個方法未傳回S_OK或 pf一 收到 FALSE,應用程式就不應該呼叫 ITfKeystrokeMgr::KeyDown 。 以下是如何實作此作業的範例。


if(msg.message == WM_KEYDOWN)
{
    if( pKeyboardMgr->TestKeyDown(msg.wParam, msg.lParam, &fEaten) == S_OK 
        && fEaten 
        && pKeyboardMgr->KeyDown(msg.wParam, msg.lParam, &fEaten) == S_OK 
        && fEaten)
    {
        //The key was handled by the keystroke manager or a TSF text service. Do not pass the key to the application. 
        continue;
    }
    else
    {
        //Let the application process the key. 
    }
}

如果按鍵管理員未處理按鍵事件,它會藉由呼叫文字服務 ITfKeyEventSink::OnTestKeyDown 方法,將金鑰事件傳遞至 TSF 文字服務。

需求

   
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 msctf.h
Dll Msctf.dll
可轉散發套件 Windows 2000 專業版上的 TSF 1.0

另請參閱