在应用程序中集成外壳的上下文菜单(下)

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

(二)  响应鼠标单击消息,获取IContextMenu接口并弹出菜单;

通过C盘的IShellFolder接口的GetUIObjectOf方法我们可以得到该节点的一个或多个指定子节点的IContextMenu接口,该方法原型如下:

HRESULT GetUIObjectOf(
   
   
    HWND hwndOwner,
   
   
    UINT cidl,     //指定apidl指向的数组中包函pidl的个数
   
   
    LPCITEMIDLIST *apidl,//指向cidlPIDL,需要注意的是,这些pidl都必须是相对的
   
   
    REFIID riid,   //我们要的是上下文菜单接口,这里指定为IID_IContextMenu_
   
   
    UINT *rgfReserved,
   
   
    VOID **ppv
   
   
   );
    
    
HRESULT        hr;
       
       
ContextMenu   *pcm = NULL;
       
       
hr = m_psfFolderC->GetUIObjectOf(GetSafeHwnd(),aryListBoxSel.GetSize(), 
       
       
(LPCITEMIDLIST*)pPidls, IID_IContextMenu, NULL, (void**)&pcm);
        
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值