diff options
Diffstat (limited to 'intern/ghost/intern/GHOST_SystemPathsWin32.cpp')
-rw-r--r-- | intern/ghost/intern/GHOST_SystemPathsWin32.cpp | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/intern/ghost/intern/GHOST_SystemPathsWin32.cpp b/intern/ghost/intern/GHOST_SystemPathsWin32.cpp index bdc403b947e..63a6b7224b5 100644 --- a/intern/ghost/intern/GHOST_SystemPathsWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemPathsWin32.cpp @@ -39,15 +39,16 @@ GHOST_SystemPathsWin32::~GHOST_SystemPathsWin32() const GHOST_TUns8 *GHOST_SystemPathsWin32::getSystemDir(int, const char *versionstr) const { - static char knownpath[MAX_PATH * 3 + 128] = { - 0}; /* 1 utf-16 might translante into 3 utf-8. 2 utf-16 translates into 4 utf-8*/ - wchar_t knownpath_16[MAX_PATH]; + /* 1 utf-16 might translante into 3 utf-8. 2 utf-16 translates into 4 utf-8*/ + static char knownpath[MAX_PATH * 3 + 128] = {0}; + PWSTR knownpath_16 = NULL; - HRESULT hResult = SHGetFolderPathW( - NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, knownpath_16); + HRESULT hResult = SHGetKnownFolderPath( + FOLDERID_ProgramData, KF_FLAG_DEFAULT, NULL, &knownpath_16); if (hResult == S_OK) { conv_utf_16_to_8(knownpath_16, knownpath, MAX_PATH * 3); + CoTaskMemFree(knownpath_16); strcat(knownpath, "\\Blender Foundation\\Blender\\"); strcat(knownpath, versionstr); return (GHOST_TUns8 *)knownpath; @@ -59,12 +60,14 @@ const GHOST_TUns8 *GHOST_SystemPathsWin32::getSystemDir(int, const char *version const GHOST_TUns8 *GHOST_SystemPathsWin32::getUserDir(int, const char *versionstr) const { static char knownpath[MAX_PATH * 3 + 128] = {0}; - wchar_t knownpath_16[MAX_PATH]; + PWSTR knownpath_16 = NULL; - HRESULT hResult = SHGetFolderPathW(NULL, CSIDL_APPDATA, NULL, SHGFP_TYPE_CURRENT, knownpath_16); + HRESULT hResult = SHGetKnownFolderPath( + FOLDERID_RoamingAppData, KF_FLAG_DEFAULT, NULL, &knownpath_16); if (hResult == S_OK) { conv_utf_16_to_8(knownpath_16, knownpath, MAX_PATH * 3); + CoTaskMemFree(knownpath_16); strcat(knownpath, "\\Blender Foundation\\Blender\\"); strcat(knownpath, versionstr); return (GHOST_TUns8 *)knownpath; |