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::HandleMenuMsg 和 IContextMenu3::HandleMenuMsg2,则必须为菜单消息通过任一方法到达做好准备。
注意 如果未实现 IContextMenu3 ,则不能保证将在其位置调用 IContextMenu2 。 在某些情况下,确定缺少 IContextMenu3 ,然后停止进程。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 专业版、Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | shobjidl_core.h (包括 Shobjidl.h) |
DLL | Shell32.dll (4.71 或更高版本) |