Метод IAccessible::get_accKeyboardShortcut (oleacc.h)

Метод IAccessible::get_accKeyboardShortcut извлекает сочетание клавиш или ключ доступа указанного объекта, также известный как мнемонический. Все объекты с сочетанием клавиш или ключом доступа поддерживают это свойство.

Синтаксис

HRESULT get_accKeyboardShortcut(
  [in]          VARIANT varChild,
  [out, retval] BSTR    *pszKeyboardShortcut
);

Параметры

[in] varChild

Тип: VARIANT

Указывает, принадлежит ли полученное сочетание клавиш объекту или одному из дочерних элементов объекта. Этот параметр является либо CHILDID_SELF (для получения сведений об объекте), либо идентификатор дочернего элемента (для получения сведений о дочернем элементе объекта). Дополнительные сведения об инициализации VARIANT см. в разделе Использование идентификаторов дочерних элементов в параметрах.

[out, retval] pszKeyboardShortcut

Тип: BSTR*

Адрес BSTR , получающий локализованную строку, идентифицирующее сочетание клавиш, или ЗНАЧЕНИЕ NULL , если с указанным объектом не связано ни единое сочетание клавиш.

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

Тип: HRESULT

Возвращает значение S_OK, если операция завершилась успешно.

В случае успеха возвращает одно из значений в следующей таблице или другой стандартный код ошибки COM. Серверы возвращают эти значения, но клиенты должны всегда проверка выходные параметры, чтобы убедиться, что они содержат допустимые значения. Дополнительные сведения см. в разделе Проверка возвращаемых значений IAccessible.

Ошибка Описание
S_FALSE
Объект не имеет связанного сочетания клавиш.
E_INVALIDARG
Аргумент является недопустимым.
DISP_E_MEMBERNOTFOUND
Объект не поддерживает это свойство.

Комментарии

Клавиша доступа — это подчеркнутой символ в тексте меню, пункта меню, метки кнопки или другого элемента управления. Например, пользователь может отобразить меню, нажав клавишу ALT и подчеркнутую клавишу, например ALT+F, чтобы открыть меню File. Чтобы использовать клавишу доступа к элементу меню, меню, содержащее этот элемент, должно быть активным.

Такие элементы управления, как кнопки панели инструментов и пункты меню, часто имеют связанную сочетание клавиш, также называемую ускорителем клавиатуры. В некоторых пунктах меню может быть как клавиша доступа, так и клавиша быстрого доступа, а в некоторых — только одна. Например, пункт меню New содержит клавишу доступа N и сочетание клавиш CTRL+N. Меню не обязательно должно быть активным, чтобы сочетание клавиш работало.

Примечание для разработчиков клиентов:

Если это свойство возвращает один символ, нельзя предположить, что это клавиша доступа или сочетание клавиш. При использовании стандартных пунктов меню клавиша доступа возвращается методом IAccessible::get_accKeyboardShortcut, а сочетание клавиш возвращается как часть имени элемента меню, возвращаемого из IAccessible::get_accName. Как правило, клавиши доступа определяются как ALT+ <буква>, а сочетания клавиш— CTRL+ <буква>.

Обратите внимание на то, что разработчики серверов: Если элемент пользовательского интерфейса может получать фокус клавиатуры, необходимо предоставить для элемента клавишу доступа. Если элемент пользовательского интерфейса не может получить фокус клавиатуры (например, значки панели инструментов), необходимо отобразить сочетание клавиш.

Так как сочетания клавиш обычно определяются приложением, а не самим элементом управления, серверы обычно могут возвращать значение, полученное из стандартного объекта со специальными возможностями для окна.

Пример клиента

В следующем примере функция извлекает сочетание клавиш для указанного доступного объекта или одного из его дочерних элементов и выводит его на консоль.

HRESULT PrintShortcut(IAccessible* pAcc, long child)
{
    if (pAcc == NULL)
    {
        return E_INVALIDARG;
    }
    BSTR bstrShortcut;
    VARIANT varObj;
    varObj.vt = VT_I4;
    varObj.lVal = child;
    HRESULT hr = pAcc->get_accKeyboardShortcut(varObj, &bstrShortcut);
    if (hr == S_OK)
    {
        printf("Shortcut: %S\n", bstrShortcut);
        SysFreeString(bstrShortcut);
    }
    return hr;
}

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header oleacc.h
Библиотека Oleacc.lib
DLL Oleacc.dll
Распространяемые компоненты Активные специальные возможности 1.3 RDK в Windows NT 4.0 с пакетом обновления 6 (SP6) и более поздних версий и Windows 95

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

IAccessible

IAccessible::get_accName

Свойство KeyboardShortcut

ВАРИАНТ