Метод IOleInPlaceFrame::TranslateAccelerator (oleidl.h)
Преобразует нажатия клавиш ускорителя, предназначенные для кадра контейнера, когда объект активен на месте.
Синтаксис
HRESULT TranslateAccelerator(
[in] LPMSG lpmsg,
[in] WORD wID
);
Параметры
[in] lpmsg
Указатель на структуру MSG , содержащую сообщение о нажатии клавиши.
[in] wID
Значение идентификатора команды, соответствующее нажатию клавиши в таблице ускорителей, предоставленной контейнером. Контейнеры должны использовать это значение вместо повторного перевода.
Возвращаемое значение
Этот метод возвращает значение S_OK при успешном завершении. Другие возможные возвращаемые значения включают следующее.
Код возврата | Описание |
---|---|
|
Нажатие клавиши не использовалось. |
|
Указанный указатель недопустим. |
|
Произошла непредвиденная ошибка. |
Комментарии
Примечания к вызывающим абонентам
Метод IOleInPlaceFrame::TranslateAccelerator вызывается косвенно OleTranslateAccelerator при получении ускорителя нажатия клавиш, предназначенного для контейнера (кадра).Примечания для разработчиков
Контейнерное приложение должно выполнять обычную обработку ускорителя или использовать wID напрямую, а затем возвращать значение , указывающее, был ли обработан ускоритель нажатия клавиш. Если контейнер является приложением MDI и функция TranslateAccelerator завершается сбоем, контейнер может вызывать функцию TranslateMDISysAccel так же, как и при обычной обработке сообщений.Объекты на месте должны иметь первый шанс на перевод сообщений акселератора. Однако поскольку объекты, реализованные приложениями-объектами DLL, не имеют собственного конвейера сообщений, они получают сообщения из очереди сообщений контейнера. Чтобы убедиться, что объект имеет первый шанс на перевод сообщений, контейнер должен всегда вызывать IOleInPlaceFrame::TranslateAccelerator перед выполнением собственного преобразования ускорителя. И наоборот, приложение исполняемого объекта должно вызывать OleTranslateAccelerator после вызова TranslateAccelerator, вызывая TranslateMessage и DispatchMessage только в том случае, если обе функции перевода завершаются ошибкой.
Следует определить таблицы ускорителей для контейнеров, чтобы они правильно работали с объектными приложениями, которые выполняют собственные преобразования клавиш ускорителя. Таблицы должны быть определены следующим образом.
"char", wID, VIRTKEY, CONTROL
Это наиболее распространенный способ описания ускорителей клавиатуры. Невыполнение этого действия может привести к потере нажатий клавиш или отправке в неправильный объект во время сеанса на месте.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | oleidl.h |