VC Windows shell扩展编程(为系统右键菜单添加二级菜单傻瓜教程)
来源:互联网 发布:程序员加薪申请 编辑:程序博客网 时间:2024/05/29 11:30
#include "shlobj.h"
#include "comdef.h"
在class ATL_NO_VTABLE CBlog :后面添加如下代码:
public IShellExtInit,
public IContextMenu
在EGIN_COM_MAP(CBlog)后面添加如下代码
COM_INTERFACE_ENTRY(IShellExtInit)
COM_INTERFACE_ENTRY(IContextMenu)
在// IBlog后添加如下代码
// IDesPdm
protected:
TCHAR m_szFile [MAX_PATH];
public:
// IShellExtInit
STDMETHOD(Initialize)(LPCITEMIDLIST, LPDATAOBJECT, HKEY);
public:
// IContextMenu
STDMETHOD(GetCommandString)(UINT, UINT, UINT*, LPSTR, UINT);
STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO);
STDMETHOD(QueryContextMenu)(HMENU, UINT, UINT, UINT, UINT);
到这里为止头文件已经定义好了,现在要去为Blog.cpp添加代码了。
首先添加如下代码:
HRESULT CBlog::Initialize ( LPCITEMIDLIST pidlFolder, LPDATAOBJECT pDataObj, HKEY hProgID )
{
}
这个函数用来抓取所有选中文件的绝对路径,保存到m_mapInt2StrFiles这个MAP里(MAP用法就不细说了,查阅STL相关内容)
HRESULT CBlog::QueryContextMenu ( HMENU hmenu,UINT uMenuIndex, UINT uidFirstCmd, UINT uidLastCmd, UINT uFlags )
{
}
InsertMenu(hmenu, uMenuIndex, MF_SEPARATOR | MF_BYPOSITION, 0, NULL);这一句加的是一个空菜单,显示时就是一个菜单里的分隔符。
SetMenuItemBitmaps(hSubMenu, 2, MF_BYPOSITION, m_hRegBmp, m_hRegBmp);这一句是设定菜单所对应的图标,可在资源中添加一张BMP图,ID设为ID_BMP1,然后在构造函数里加如下代码:
m_hRegBmp = LoadBitmap ( _Module.GetModuleInstance(),
在头文件里加:HBITMAP m_hRegBmp;
HRESULT CDesPdm::GetCommandString( UINT idCmd, UINT uFlags,UINT* pwReserved, LPSTR pszName, UINT cchMax )
{
}
这个函数是响应资源管理器左下角的帮助信息
HRESULT CDesPdm::InvokeCommand ( LPCMINVOKECOMMANDINFO pCmdInfo )
{
}
打开工程里的.idl文件,可以看到有三个不同的注册码,选择最下面一条,我的例子程序是EA29B300-3EA0-4DD2-B2F8-3CC519BFA948
打开工程里的.rgs文件,删除原来的代码替换成如下代码。
HKCR
{
}
用regsvr32命令注册生成的DLL控件,重启Explore就可查看效果了
- VC Windows shell扩展编程(为系统右键菜单添加二级菜单傻瓜教程)
- VC Windows shell扩展编程(为系统右键菜单添加二级菜单傻瓜教程)
- VC 向windows系统菜单中添加菜单项---Windows shell扩展编程
- 为windows添加右键菜单
- VC++ 外壳扩展编程之windows右键菜单
- 转:VC++ 外壳扩展编程之windows右键菜单
- VC++ 外壳扩展编程之windows右键菜单
- VC++ 外壳扩展编程之windows右键菜单
- VC++ 外壳扩展编程之windows右键菜单
- (转)VC++ 外壳扩展编程之windows右键菜单
- VC++ 外壳扩展编程之windows右键菜单
- VC++ 外壳扩展编程之windows右键菜单
- Windows外壳扩展编程之添加右键菜单
- Windows外壳扩展编程之添加右键菜单
- Windows外壳扩展编程之添加右键菜单
- Windows外壳扩展编程之添加右键菜单
- vc ATL 外壳编程添加windows右键菜单
- VC 添加右键菜单
- S3C2440之UART操作(FIFO中断模式)
- linux shell 逻辑运算符、逻辑表达式test,[],[[]]详解
- STL std::list使用说明
- ZT 一个老业务员的自白
- Delphi XE2下的MapX异常
- VC Windows shell扩展编程(为系统右键菜单添加二级菜单傻瓜教程)
- 关于Bos 开发中使用字段类型是选择已有基础资料的的源代码
- Remedy Java API 建单
- poj 2629 Common permutation
- 实现多线程下载的代码
- 紧急状况不犯愁,上班族司机必备的六款实用App
- android ApiDemo学习(一)service——6 Remote Service Controller
- java进行xls转xml
- Git学习笔记(八) Git基本操作