diff options
Diffstat (limited to 'utilities.cpp')
-rw-r--r-- | utilities.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/utilities.cpp b/utilities.cpp index f8ea696..0654bd6 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -101,3 +101,25 @@ void GetFilePath(TCHAR *WindowTittle, char *szSetting, TCHAR *szExt, TCHAR *szEx return; DBWriteContactSettingTString(0, szModuleName, szSetting, str); } + +void GetFolderPath(TCHAR *WindowTittle, char *szSetting) +{ + BROWSEINFO pbi = {0}; + pbi.lpszTitle = WindowTittle; + pbi.ulFlags = BIF_EDITBOX|BIF_NEWDIALOGSTYLE|BIF_SHAREABLE; + LPITEMIDLIST pidl = SHBrowseForFolder(&pbi);
+ if (pidl != 0)
+ {
+ TCHAR path[MAX_PATH];
+ if (SHGetPathFromIDList(pidl, path))
+ {
+ DBWriteContactSettingTString(NULL, szModuleName, "szHomePath", path);
+ }
+ IMalloc * imalloc = 0;
+ if (SUCCEEDED(SHGetMalloc(&imalloc)))
+ {
+ imalloc->Free(pidl);
+ imalloc->Release();
+ }
+ }
+} |