Функция 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 при успешном выполнении. Ниже перечислены другие возможные значения.
Код возврата | Описание |
---|---|
|
Объект должен продолжить обработку этого сообщения. |
Комментарии
Серверы объектов вызывают 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) |