次の方法で共有


ITfKeystrokeMgr::TestKeyUp メソッド (msctf.h)

キーストローク マネージャーがキーアップ イベントを処理するかどうかを決定します。

構文

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

パラメーター

[in] wParam

キーの仮想キー コードを指定します。 このパラメーターの詳細については、WM_KEYUPwParam パラメーターを参照してください。

[in] lParam

キーの繰り返し数、スキャン コード、拡張キー フラグ、コンテキスト コード、前のキー状態フラグ、および遷移状態フラグを指定します。 このパラメーターの詳細については、WM_KEYUPlParam パラメーターを参照してください。

[out] pfEaten

キー イベントが処理されるかどうかを示す BOOL へのポインター。 この値が TRUE を受け取った場合、キー イベントは処理され、イベントはアプリケーションに転送されません。 この値が FALSE の場合、キー イベントは処理されず、イベントがアプリケーションに転送されます。

戻り値

このメソッドは、これらの値のいずれかを返すことができます。

説明
S_OK
メソッドは正常に実行されました。
S_FALSE
キー イベント シンクはインストールされません。
E_INVALIDARG
1 つ以上のパラメーターが無効です。

注釈

アプリケーションは、このメソッドを使用してキーストローク マネージャーによってキー イベントが処理されるかどうかを判断できます。 このメソッドが成功し、 pfEatenTRUE を受け取った場合、アプリケーションは ITfKeystrokeMgr::KeyUp を呼び出す必要があります。 このメソッドがS_OKを返さない場合、または pfEatenFALSE を受け取る場合、アプリケーションは ITfKeystrokeMgr::KeyUp を呼び出さないでください。 これを実装する方法の例を次に示します。


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

キーストローク マネージャーがキー イベントを処理しない場合は、TSF テキスト サービス ITfKeyEventSink::OnTestKeyUp メソッドを呼び出して、キー イベントを TSF テキスト サービスに渡します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー msctf.h
[DLL] Msctf.dll
再頒布可能パッケージ Windows 2000 Professional の TSF 1.0

こちらもご覧ください