MFC 文件夹选择对话框
2024-08-26 13:15:16
CString setSavePath()
{
CString strPath = _T("");
HRESULT hr;
LPITEMIDLIST pItemList;
BROWSEINFO browseinfo;
TCHAR path[MAX_PATH];
hr = ::CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
if (FAILED(hr)) {
TRACE("CoInitEx failed: %x\n", hr);
return strPath;
} IMalloc *pMalloc = NULL;
hr = SHGetMalloc(&pMalloc);
if (FAILED(hr)) {
TRACE("Can't retrieve system's IMalloc interface: %x\n", hr);
return strPath;
}
ENSURE(pMalloc); memset(&browseinfo, , sizeof(BROWSEINFO));
CString strCaption;
browseinfo.hwndOwner = GetSafeHwnd();
browseinfo.pszDisplayName = path;
browseinfo.ulFlags = BIF_NEWDIALOGSTYLE | BIF_RETURNONLYFSDIRS;
strCaption.LoadString(IDS_SAVEPATH_CONFIG);
browseinfo.lpszTitle = strCaption; pItemList = ::SHBrowseForFolder(&browseinfo);
if (pItemList) {
// Behold the elegance of CStrBuf!
::SHGetPathFromIDList(pItemList, CStrBuf(strPath, MAX_PATH));
pMalloc->Free(pItemList);
UpdateData(FALSE);
}
pMalloc->Release();
pMalloc = NULL;
::CoUninitialize(); return strPath;
}
最新文章
- Python MongoDB使用介绍
- Java实现画八卦
- Ubuntu apt-get ";Hash Sum mismatch"; 问题解决方法
- SSL/TLS协议运行机制
- JAVA代码热部署,在线不停服动态更新
- Linux信号类型说明
- Leetcode 198 House Robber
- Java的静态导入
- Ajax请求在IE和Google Chrome中可以响应,在Firefox中无法响应
- webservice拦截器 查看消息包(soap)
- Android自己主动化測试——CTS測试
- Leetcode:Unique Binary Search Trees &; Unique Binary Search Trees II
- ucos信号量集源码分析
- keil4编译Error: User Command terminated, Exit-Code = 1解决
- JVM调优入门之初探
- es修改指定的field(partial update)
- Direct2D教程V——位图(Bitmap)和位图笔刷(BitmapBrush)
- linux常用命令:which 命令
- 20145321 《网络对抗技术》 MSF基础应用
- BZOJ1495 [NOI2006]网络收费 【树形dp + 状压dp】