You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.6 KiB
C++
76 lines
1.6 KiB
C++
#include "windowspath.hpp"
|
|
|
|
#if defined(_WIN32) || defined(__WINDOWS__)
|
|
|
|
#include <cstring>
|
|
|
|
#include <windows.h>
|
|
#include <shlobj.h>
|
|
#include <Shlwapi.h>
|
|
|
|
#pragma comment(lib, "Shlwapi.lib")
|
|
|
|
namespace Files
|
|
{
|
|
|
|
boost::filesystem::path WindowsPath::getLocalConfigPath() const
|
|
{
|
|
boost::filesystem::path localConfigPath(".");
|
|
boost::filesystem::path suffix("/");
|
|
|
|
TCHAR path[MAX_PATH];
|
|
memset(path, 0, sizeof(path));
|
|
|
|
if(SUCCEEDED(SHGetFolderPath(NULL, CSIDL_PERSONAL | CSIDL_FLAG_CREATE, NULL, 0, path)))
|
|
{
|
|
PathAppend(path, TEXT("My Games"));
|
|
localConfigPath = boost::filesystem::path(path);
|
|
}
|
|
|
|
localConfigPath /= suffix;
|
|
|
|
return localConfigPath;
|
|
}
|
|
|
|
boost::filesystem::path WindowsPath::getGlobalConfigPath() const
|
|
{
|
|
boost::filesystem::path globalConfigPath(".");
|
|
boost::filesystem::path suffix("/");
|
|
|
|
TCHAR path[MAX_PATH];
|
|
memset(path, 0, sizeof(path));
|
|
|
|
if(SUCCEEDED(SHGetFolderPath(NULL, CSIDL_PROGRAM_FILES | CSIDL_FLAG_CREATE, NULL, 0, path)))
|
|
{
|
|
globalConfigPath = boost::filesystem::path(path);
|
|
}
|
|
|
|
globalConfigPath /= suffix;
|
|
|
|
return globalConfigPath;
|
|
}
|
|
|
|
boost::filesystem::path WindowsPath::getRuntimeConfigPath() const
|
|
{
|
|
return boost::filesystem::path("./");
|
|
}
|
|
|
|
boost::filesystem::path WindowsPath::getLocalDataPath() const
|
|
{
|
|
return getLocalConfigPath();
|
|
}
|
|
|
|
boost::filesystem::path WindowsPath::getGlobalDataPath() const
|
|
{
|
|
return getGlobalConfigPath();
|
|
}
|
|
|
|
boost::filesystem::path WindowsPath::getRuntimeDataPath() const
|
|
{
|
|
return boost::filesystem::path("./data/");
|
|
}
|
|
|
|
} /* namespace Files */
|
|
|
|
#endif /* defined(_WIN32) || defined(__WINDOWS__) */
|