博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
打开文件夹,并选中文件
阅读量:5136 次
发布时间:2019-06-13

本文共 1577 字,大约阅读时间需要 5 分钟。

#ifndef    ExploreFileH #define    ExploreFileH
 
#include 
#include
#ifdef    UNICODE #define    ExploreFile    ExploreFileW #elif    _UNICODE #define    ExploreFile    ExploreFileW #else #define    ExploreFile    ExploreFileA #endif
BOOL ExploreFileA (const char* pszFile) {
wchar_t wszFile [MAX_PATH + 1] = {
0}; if (!MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, pszFile, -1, wszFile, MAX_PATH)) {
return FALSE; } return ExploreFileW (wszFile); }
BOOL ExploreFileW (const wchar_t* pwszFile) {
LPITEMIDLIST pidl; LPCITEMIDLIST cpidl, cpidl2; IShellFolder* pDesktopFolder; ULONG ulEaten; DWORD dwAttributes; HRESULT hr; if (pwszFile == NULL) {
return FALSE; } ulEaten = wcslen (pwszFile); if (FAILED (SHGetDesktopFolder (&pDesktopFolder))) {
return FALSE; } hr = pDesktopFolder->ParseDisplayName ( NULL, 0, (LPOLESTR)pwszFile, &ulEaten, &pidl, &dwAttributes); if (FAILED (hr)) {
pDesktopFolder->Release (); return FALSE; } cpidl2 = cpidl = pidl; CoInitialize (NULL); if (FAILED (SHOpenFolderAndSelectItems ( cpidl, 0, &cpidl2, // 一定要弄个cpidl2,否则会有内存泄露,一次4K,木有搞懂,高手帮解答。 NULL))) {
pDesktopFolder->Release (); CoUninitialize (); return FALSE; } pDesktopFolder->Release (); CoUninitialize (); return TRUE; }
#endif // ExploreFileH

 

转载于:https://www.cnblogs.com/lin1270/archive/2011/11/29/2267775.html

你可能感兴趣的文章
Mac - 如何安全地还原 Mac 的默认字体
查看>>
ubuntu14.04安装搜狗输入法
查看>>
4.你认为一些军事方面的软件系统采用什么样的开发模型比较合适?
查看>>
日常开发需要掌握的Maven知识
查看>>
Java数据结构和算法(四)--链表
查看>>
JIRA
查看>>
ssl介绍以及双向认证和单向认证原理
查看>>
【BZOJ2441】【中山市选2011】小W的问题(树状数组+权值线段树)
查看>>
Python的字符串
查看>>
小技巧——直接在目录中输入cmd然后就打开cmd命令窗口
查看>>
深浅拷贝(十四)
查看>>
由级别和性格特征将程序员分类 ---看看你属于哪一种
查看>>
HDU 6370(并查集)
查看>>
BZOJ 1207(dp)
查看>>
对我来说,只有一件事情是重要的
查看>>
完整的Socket代码
查看>>
PE知识复习之PE的导入表
查看>>
POJ 3280 Cheapest Palindrome
查看>>
HDU 2076 夹角有多大(题目已修改,注意读题)
查看>>
Objective-C非正式协议与正式协议
查看>>