(svn r7460) -Fix (r7337): [win32] If the underlying OS didn't have support for SHGetFolderPath the

application failed to run. Now test if the function exists and if not try a different
 approach using our own OTTDSHGetFolderPath wrapper.
This commit is contained in:
Darkvater
2006-12-09 23:55:56 +00:00
parent 5f8f0e4e47
commit 74106ce6e9
2 changed files with 59 additions and 0 deletions

View File

@@ -3,6 +3,7 @@
#ifndef WIN32_H
#define WIN32_H
#include <windows.h>
bool MyShowCursor(bool show);
typedef void (*Function)(int);
@@ -23,6 +24,14 @@ wchar_t *convert_to_fs(const char *name, wchar_t *utf16_buf, size_t buflen);
# define WIDE_TO_MB_BUFFER(str, buffer, buflen) (str)
#endif
/* Override SHGetFolderPath with our custom implementation */
#if defined(SHGetFolderPath)
#undef SHGetFolderPath
#endif
#define SHGetFolderPath OTTDSHGetFolderPath
HRESULT OTTDSHGetFolderPath(HWND, int, HANDLE, DWORD, LPTSTR);
#if defined(__MINGW32__)
#define SHGFP_TYPE_CURRENT 0
#endif /* __MINGW32__ */