Поделиться через


Метод ITfKeystrokeMgr::TestKeyDown (msctf.h)

Определяет, будет ли диспетчер нажатия клавиш обрабатывать событие понижения клавиши.

Синтаксис

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

Параметры

[in] wParam

Указывает код виртуального ключа ключа. Дополнительные сведения об этом параметре см. в разделе параметр wParam в WM_KEYDOWN.

[in] lParam

Указывает число повторов, код сканирования, флаг расширенного ключа, контекстный код, предыдущий флаг "ключ—состояние" и флаг переходного состояния ключа. Дополнительные сведения об этом параметре см. в разделе параметр lParam в WM_KEYDOWN.

[out] pfEaten

Указатель на BOOL, указывающий, будет ли обрабатываться событие ключа. Если это значение получает значение TRUE, событие ключа будет обработано и событие не должно пересылаться в приложение. Если это значение равно FALSE, событие ключа не будет обработано и событие должно быть перенаправлено в приложение.

Возвращаемое значение

Этот метод может возвращать одно из этих значений.

Значение Описание
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. 
    }
}

Если диспетчер нажатия клавиш не обрабатывает событие ключа, он передает событие ключа в текстовые службы TSF путем вызова метода службы текста ITfKeyEventSink::OnTestKeyDown .

Требования

   
Минимальная версия клиента Windows 2000 Профессиональная [классические приложения | Приложения UWP]
Минимальная версия сервера Windows 2000 Server [классические приложения | Приложения UWP]
Целевая платформа Windows
Header msctf.h
DLL Msctf.dll
Распространяемые компоненты TSF 1.0 в Windows 2000 Professional

См. также раздел