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 |
---|---|
|
메서드를 성공적으로 수행했습니다. |
|
키 이벤트 싱크가 설치되어 있지 않습니다. |
|
하나 이상의 매개 변수가 잘못되었습니다. |
설명
애플리케이션은 키 입력 관리자가 이 메서드를 사용하여 키 이벤트를 처리할지 여부를 확인할 수 있습니다. 이 메서드가 성공하고 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 |