桌面右键弹出二级菜单

这篇博客介绍了如何利用COM技术,特别是ATL库,来实现桌面右键菜单的扩展。通过IShellExtInit和IContextMenu接口,创建并添加自定义的二级菜单项,例如“下一张”、“打开壁纸”等,同时展示了代码实现和注册表配置步骤。
摘要由CSDN通过智能技术生成

桌面右键弹出你添加的二级菜单。COM技术,ATL。

这几天一直在做壁纸。翻了一些资料,终于做出来了。

几个函数:

SHGetSpecialFolderPath用于获取特殊文件夹路径

SHGetPathFromIDList从id list获取路径

 


1.新建ATL工程,选支持MFC(因为要使用CString)和合并存根两个选项(因为不需要远程COM)。

 

2.右键工程,选添加类-ATL-ATL简单对象。取个名称。叫做SimpleShlExt。

 

3.下面就该添加SimpleShlExt.h和SimpleShlExt.cpp中的代码了

因为要用到这两个接口IShellExtInit和IContextMenu这两个接口,所以CSimpleShlExt要继承这两个接口,并实现之


class ATL_NO_VTABLE CSimpleShlExt :
 public CComObjectRootEx<CComSingleThreadModel>,
 public CComCoClass<CSimpleShlExt, &CLSID_SimpleShlExt>,
 public IDispatchImpl<ISimpleShlExt, &IID_ISimpleShlExt, &LIBID_SimpleExtLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
 public IShellExtInit,//这俩是新添的。用于ShellExt的初始化
 public IContextMenu//用于右键的上下文菜单

 

4.为CSimpleShlExt实现如下的方法// IShellExtInit
 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值