21#include "../../SDL_internal.h"
23#ifdef SDL_FILESYSTEM_WINDOWS
28#include "../../core/windows/SDL_windows.h"
39 typedef DWORD (WINAPI *GetModuleFileNameExW_t)(HANDLE, HMODULE, LPWSTR, DWORD);
40 GetModuleFileNameExW_t pGetModuleFileNameExW;
43 HANDLE psapi = LoadLibrary(L
"psapi.dll");
53 pGetModuleFileNameExW = (GetModuleFileNameExW_t)GetProcAddress(psapi,
"GetModuleFileNameExW");
54 if (!pGetModuleFileNameExW) {
71 len = pGetModuleFileNameExW(GetCurrentProcess(),
NULL,
path, buflen);
88 for (
i =
len-1;
i > 0;
i--) {
89 if (
path[
i] ==
'\\') {
114 WCHAR
path[MAX_PATH];
118 size_t new_wpath_len = 0;
119 BOOL api_result =
FALSE;
147 new_wpath_len = lstrlenW(worg) + lstrlenW(wapp) + lstrlenW(
path) + 3;
149 if ((new_wpath_len + 1) > MAX_PATH) {
157 lstrcatW(
path, L
"\\");
158 lstrcatW(
path, worg);
162 api_result = CreateDirectoryW(
path,
NULL);
163 if (api_result ==
FALSE) {
164 if (GetLastError() != ERROR_ALREADY_EXISTS) {
171 lstrcatW(
path, L
"\\");
172 lstrcatW(
path, wapp);
175 api_result = CreateDirectoryW(
path,
NULL);
176 if (api_result ==
FALSE) {
177 if (GetLastError() != ERROR_ALREADY_EXISTS) {
183 lstrcatW(
path, L
"\\");
#define SDL_assert(condition)
#define SDL_OutOfMemory()
#define SDL_InvalidParamError(param)
Include file for filesystem SDL API functions.
char * SDL_GetBasePath(void)
Get the path where the application resides.
GLsizei const GLchar *const * path
#define WIN_UTF8ToString(S)
#define WIN_StringToUTF8(S)
int WIN_SetError(const char *prefix)
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)