X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=radiant%2Fmainframe.cpp;h=546ba9d7a772d8df5965d4a74d37b3628d3beeb6;hb=8dcd2d22e6e48f0390b749b00172ddd0437b76e8;hp=d168c77de22d17513379ad7cf4c34a253b65a1c0;hpb=2ceb6c1c5a81cf13f14c52d276bb9b46bcf31f3b;p=xonotic%2Fnetradiant.git diff --git a/radiant/mainframe.cpp b/radiant/mainframe.cpp index d168c77d..546ba9d7 100644 --- a/radiant/mainframe.cpp +++ b/radiant/mainframe.cpp @@ -186,11 +186,13 @@ void VFS_Destroy() #ifdef WIN32 #include +#include const GUID qFOLDERID_SavedGames = {0x4C5C32FF, 0xBB9D, 0x43b0, {0xB5, 0xB4, 0x2D, 0x72, 0xE5, 0x4E, 0xAA, 0xA4}}; #define qREFKNOWNFOLDERID GUID #define qKF_FLAG_CREATE 0x8000 #define qKF_FLAG_NO_ALIAS 0x1000 -static HRESULT (WINAPI *qSHGetKnownFolderPath) (qREFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PWSTR *ppszPath); +typedef HRESULT (WINAPI qSHGetKnownFolderPath_t) (qREFKNOWNFOLDERID rfid, DWORD dwFlags, HANDLE hToken, PWSTR *ppszPath); +static qSHGetKnownFolderPath_t *qSHGetKnownFolderPath; #endif void HomePaths_Realise() { @@ -216,14 +218,14 @@ void HomePaths_Realise() wchar_t *mydocsdirw; HMODULE shfolder = LoadLibrary("shfolder.dll"); if(shfolder) - qSHGetKnownFolderPath = GetProcAddress("SHGetKnownFolderPath"); + qSHGetKnownFolderPath = (qSHGetKnownFolderPath_t *) GetProcAddress(shfolder, "SHGetKnownFolderPath"); else qSHGetKnownFolderPath = NULL; CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); - if(qSHGetKnownFolderPath && qSHGetKnownFolderPath(&qFOLDERID_SavedGames, qKF_FLAG_CREATE | qKF_FLAG_NO_ALIAS, NULL, &mydocsdirw) == S_OK) + if(qSHGetKnownFolderPath && qSHGetKnownFolderPath(qFOLDERID_SavedGames, qKF_FLAG_CREATE | qKF_FLAG_NO_ALIAS, NULL, &mydocsdirw) == S_OK) { memset(mydocsdir, 0, sizeof(mydocsdir)); - wctombs(mydocsdir, mydocsdirw, sizeof(mydocsdir)-1); + wcstombs(mydocsdir, mydocsdirw, sizeof(mydocsdir)-1); CoTaskMemFree(mydocsdirw); path.clear(); path << DirectoryCleaned(mydocsdir) << (prefix+1) << "/";