(二) 响应鼠标单击消息,获取IContextMenu接口并弹出菜单;
通过C盘的IShellFolder接口的GetUIObjectOf方法我们可以得到该节点的一个或多个指定子节点的IContextMenu接口,该方法原型如下:
HRESULT GetUIObjectOf(
HWND hwndOwner,
UINT cidl, //指定apidl指向的数组中包函的pidl的个数
LPCITEMIDLIST *apidl,//指向cidl个PIDL,需要注意的是,这些pidl都必须是相对的
REFIID riid, //我们要的是上下文菜单接口,这里指定为IID_IContextMenu_
UINT *rgfReserved,
VOID **ppv
);
|
得到IContextMenu后我们得提供一个弹出式菜单的句柄,并把他传给IContextMenu::QueryContextMenu,

本文详细介绍了如何在应用程序中响应鼠标点击,获取并使用IContextMenu接口来弹出外壳上下文菜单。通过IShellFolder接口获取菜单项,并使用TrackPopupMenu弹出菜单。此外,还探讨了如何不弹出菜单直接调用菜单命令,以及利用IContextMenu显示多个文件的属性。文章附带源码下载和相关参考资料。
最低0.47元/天 解锁文章
5146

被折叠的 条评论
为什么被折叠?



