IOleWindow::ContextSensitiveHelp 方法 (oleidl.h)

确定是否应在就地激活会话期间进入上下文相关的帮助模式。

语法

HRESULT ContextSensitiveHelp(
  [in] BOOL fEnterMode
);

参数

[in] fEnterMode

如果应进入帮助模式,则为 TRUE;如果应退出,则为 FALSE

返回值

如果成功进入或退出帮助模式,此方法将返回S_OK,具体取决于 在 fEnterMode 中传递的值。 其他可能的返回值包括以下内容。

返回代码 说明
E_INVALIDARG
指定的 fEnterMode 值无效。
E_OUTOFMEMORY
此操作的可用内存不足。
E_UNEXPECTED
发生意外错误。

注解

当用户以下情况时,应用程序可以调用上下文相关的帮助:

  • 按 SHIFT+F1,然后单击主题
  • 选择菜单项时按 F1
按下 SHIFT+F1 时,帧或活动对象都可以接收击键。 如果容器的框架收到击键,它将调用其包含文档的 IOleWindow::ContextSensitiveHelp 方法,并将 fEnterMode 设置为 TRUE。 这会将帮助状态传播到其所有就地对象,以便它们能够正确处理鼠标单击或WM_COMMAND。

如果活动对象收到 SHIFT+F1 击键,它将使用 fEnterModeTRUE 调用容器的 IOleWindow::ContextSensitiveHelp 方法,然后以递归方式调用其每个就地站点,直到没有其他通知。 然后,容器使用 fEnterModeTRUE 调用其文档或框架的 IOleWindow::ContextSensitiveHelp 方法。

在上下文相关帮助模式下,接收鼠标单击的 对象可以:

  • 如果不支持上下文相关帮助,请忽略单击。
  • ContextSensitiveHelp 设置为 FALSE 的情况下,告知所有其他对象退出上下文相关帮助模式,然后为该上下文提供帮助。
在上下文相关帮助模式下接收WM_COMMAND的对象应告知所有其他就地对象退出上下文相关帮助模式,然后为命令提供帮助。

如果容器应用程序要支持菜单项上的上下文相关帮助,它必须提供自己的消息筛选器,以便它可以截获 F1 键,或者通过调用 OleSetMenuDescriptor 并传递 lpFramelpActiveObj 参数的有效非 NULL 值来要求 OLE 库添加消息筛选器。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 oleidl.h

另请参阅

IOleWindow

OleSetMenuDescriptor