Функция OleTranslateAccelerator (ole2.h)

Вызывается приложением-объектом, позволяет контейнеру объекта преобразовывать ускорители в соответствии с таблицей ускорителей контейнера.

Синтаксис

HRESULT OleTranslateAccelerator(
  [in] LPOLEINPLACEFRAME     lpFrame,
  [in] LPOLEINPLACEFRAMEINFO lpFrameInfo,
  [in] LPMSG                 lpmsg
);

Параметры

[in] lpFrame

Указатель на интерфейс IOleInPlaceFrame , в который может быть отправлено нажатие клавиши.

[in] lpFrameInfo

Указатель на структуру OLEINPLACEFRAMEINFO , содержащую таблицу ускорителей, полученную из контейнера.

[in] lpmsg

Указатель на структуру MSG , содержащую нажатие клавиш.

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

Эта функция возвращает S_OK при успешном выполнении. Ниже перечислены другие возможные значения.

Код возврата Описание
E_FAIL
Объект должен продолжить обработку этого сообщения.

Комментарии

Серверы объектов вызывают OleTranslateAccelerator , чтобы разрешить контейнеру объекта переводить нажатия клавиш ускорителя в соответствии с таблицей ускорителей контейнера, на которую указывает lpFrameInfo. В то время как автономный объект является активным объектом, сервер объекта всегда имеет первые шансы на перевод любых полученных сообщений. Если это нежелательно, сервер вызывает OleTranslateAccelerator , чтобы предоставить контейнеру объекта шанс. Если ввод с помощью клавиатуры соответствует ускорителю в таблице ускорителей, предоставленной контейнером, OleTranslateAccelerator передает сообщение и идентификатор команды в контейнер с помощью метода IOleInPlaceFrame::TranslateAccelerator . Этот метод возвращает S_OK, если используется нажатие клавиши; В противном случае возвращается S_FALSE.

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

"char", wID, VIRTKEY, CONTROL

Это наиболее распространенный способ описания ускорителей клавиатуры. Неудача может привести к потере нажатий клавиш или отправке в неправильный объект во время сеанса на месте.

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

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ole2.h
Библиотека Ole32.lib
DLL Ole32.dll
Набор API ext-ms-win-com-ole32-l1-1-3 (появилось в Windows 10 версии 10.0.10240)

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

IOleInPlaceFrame::TranslateAccelerator

IsAccelerator