다음을 통해 공유


ITfKeystrokeMgr::TestKeyDown 메서드(msctf.h)

키 입력 관리자가 키 다운 이벤트를 처리할지 여부를 결정합니다.

구문

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

매개 변수

[in] wParam

키의 가상 키 코드를 지정합니다. 이 매개 변수에 대한 자세한 내용은 WM_KEYDOWNwParam 매개 변수를 참조하세요.

[in] lParam

키의 반복 수, 검사 코드, 확장 키 플래그, 컨텍스트 코드, 이전 키 상태 플래그 및 전환 상태 플래그를 지정합니다. 이 매개 변수에 대한 자세한 내용은 WM_KEYDOWNlParam 매개 변수를 참조하세요.

[out] pfEaten

키 이벤트를 처리할지를 나타내는 BOOL에 대한 포인터입니다. 이 값이 TRUE를 받으면 키 이벤트가 처리되고 이벤트를 애플리케이션에 전달해서는 안 됩니다. 이 값이 FALSE이면 키 이벤트가 처리되지 않으며 이벤트를 애플리케이션에 전달해야 합니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

Description
S_OK
메서드를 성공적으로 수행했습니다.
S_FALSE
키 이벤트 싱크가 설치되어 있지 않습니다.
E_INVALIDARG
하나 이상의 매개 변수가 잘못되었습니다.

설명

애플리케이션은 키 입력 관리자가 이 메서드를 사용하여 키 이벤트를 처리할지 여부를 확인할 수 있습니다. 이 메서드가 성공하고 pfEaten가TRUE를 수신하는 경우 애플리케이션은 ITfKeystrokeMgr::KeyDown을 호출해야 합니다. 이 메서드가 S_OK 반환하지 않거나 pfEaten이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 Professional [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows 2000 Server [데스크톱 앱 | UWP 앱]
대상 플랫폼 Windows
헤더 msctf.h
DLL Msctf.dll
재배포 가능 파일 Windows 2000 Professional의 TSF 1.0

참고 항목