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
标头 ole2.h
Library Ole32.lib
DLL Ole32.dll
API 集 ext-ms-win-com-ole32-l1-1-3 (在 Windows 10 版本 10.0.10240 中引入)

另请参阅

IOleInPlaceFrame::TranslateAccelerator

IsAccelerator