每一个文件,文件夹都有一个对应的 SHITEMID structure: typedef struct _SHITEMID {
USHORT cb;
BYTE abID[1];
} SHITEMID, * LPSHITEMID; 更常用的是ITEMIDLIST
typedef struct _ITEMIDLIST {
SHITEMID mkid;
} ITEMIDLIST, * LPITEMIDLIST;
typedef const ITEMIDLIST * LPCITEMIDLIST; For the shell API, namespace objects are usually identified by a pointer to their ITEMIDLIST structure, or PIDL.右键菜单的获得就是通过 pidl的。所以此时你已经得到文件的pidl了。
再调用以下shell API.
BOOL SHGetPathFromIDList(
LPCITEMIDLIST pidl,
LPSTR pszPath
);
pszPath就是完整路径名。
更详细可参见MSDN中的 Windows Shell 部分
USHORT cb;
BYTE abID[1];
} SHITEMID, * LPSHITEMID; 更常用的是ITEMIDLIST
typedef struct _ITEMIDLIST {
SHITEMID mkid;
} ITEMIDLIST, * LPITEMIDLIST;
typedef const ITEMIDLIST * LPCITEMIDLIST; For the shell API, namespace objects are usually identified by a pointer to their ITEMIDLIST structure, or PIDL.右键菜单的获得就是通过 pidl的。所以此时你已经得到文件的pidl了。
再调用以下shell API.
BOOL SHGetPathFromIDList(
LPCITEMIDLIST pidl,
LPSTR pszPath
);
pszPath就是完整路径名。
更详细可参见MSDN中的 Windows Shell 部分
解决方案 »
- 如何把当前窗口的rect变为屏幕的rect
- 请教于大家,CString长度限制问题
- MFC线程在哪结束
- 为什么客户端发送数据服务器接不到
- 一个关于dialog类的消息问题,help(我是新手,没多少分,这个可是倾家荡产求助哦...)
- edit中的汉字问题??
- 《MFC Windows 程序设计》,《VC技术内幕》,《深入浅出MFC》哪本最好?
- 请问在那可以过的c++primer的电子版 谢谢
- Combobox addstring 很多数据的问题
- SQL语句怎样进行模糊查询?
- 已经获得ICON句柄,如何把该ICON写入一个*.ico文件中?
- serailize()处理后的文件的格式,是否可以自己设置,比如:文件格式为:内容1 /t 内容2 /t 内容3 /n
2.另外一种shell扩展的方法就是 ozx() 说的那样, winzip就是用这种方式(菜单区B)所以还是菜单区A的扩展比较容易:)