IContextMenu3::HandleMenuMsg2 方法 (shobjidl_core.h)

允许 IContextMenu3 接口的客户端对象处理与所有者绘制的菜单项关联的消息。

语法

HRESULT HandleMenuMsg2(
  UINT    uMsg,
  WPARAM  wParam,
  LPARAM  lParam,
  LRESULT *plResult
);

参数

uMsg

类型: UINT

要处理的消息。 对于某些消息(如WM_INITMENUPOPUP、WM_DRAWITEM、WM_MENUCHAR或WM_MEASUREITEM),所调用的客户端对象可能会提供所有者绘制的菜单项。

wParam

类型:WPARAM

其他消息信息。 此参数的值取决于 uMsg 参数的值。

lParam

类型:LPARAM

其他消息信息。 此参数的值取决于 uMsg 参数的值。

plResult

类型: LRESULT*

菜单所有者将从消息返回的 LRESULT 值的地址。 此参数可以为 NULL。

返回值

类型: HRESULT

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

IContextMenu3::HandleMenuMsg2 通常替换 IContextMenu2::HandleMenuMsg,当 IContextMenu 确定 IContextMenu3 受支持并且已收到 (看到 uMsg) 的受支持消息之一时调用。 但是,在某些情况下,仍会调用 IContextMenu2::HandleMenuMsg 。 上下文菜单主机可以通过任一或两种方法调度菜单消息。 因此,如果 Shell 扩展同时实现 IContextMenu2::HandleMenuMsgIContextMenu3::HandleMenuMsg2,则必须为菜单消息通过任一方法到达做好准备。

注意 如果未实现 IContextMenu3 ,则不能保证将在其位置调用 IContextMenu2 。 在某些情况下,确定缺少 IContextMenu3 ,然后停止进程。
 

要求

要求
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)
DLL Shell32.dll (4.71 或更高版本)