vc 查找文件目标并且打开文件夹,

用vc2003实现类似快捷方式的查找目标,qq、飞球的所在文件夹,迅雷的浏览文件功能

PS:从其他地方粘的,不足之处,多多指教

调用处

CString strPath ;

m_sFileFolderPath =fileDlg.GetPathName();

OpenFolderAndSelectItems(m_sFileFolderPath) ;

实现代码:

BOOL OpenFolderAndSelectItems(CString strPath)
{
CoInitialize(NULL) ;

//转换字符串为unicode字符串
OLECHAR olepath[MAX_PATH];
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, strPath, -1, olepath, MAX_PATH);

LPITEMIDLIST pidl ;
LPSHELLFOLDER desk ;
HRESULT hr = ::SHGetDesktopFolder(&desk);

if (SUCCEEDED(hr))
{
   //转换文件对象或文件夹得到项目识别符列表
   hr = desk->ParseDisplayName(NULL, NULL, olepath, NULL, &pidl, NULL);
   if (SUCCEEDED(hr))
   {
    hr = ::SHOpenFolderAndSelectItems((LPCITEMIDLIST)pidl, 0, NULL, 0) ;
   }
}

//接收IMalloc接口的指针,
//该接口必须用来释放由shell分配的将被shell来释放的内存
//应用程序可以使用该接口分配和释放自己的内存
LPMALLOC pmalloc;
::SHGetMalloc(&pmalloc);
pmalloc->Free((void *)pidl);
pmalloc->Release();

desk->Release() ;

CoUninitialize();

return SUCCEEDED(hr) ;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值