X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/8f5f26d24e18e267dd56e8c0b7d856027f63e41c..a6c15e850b1b8b7cdab0a627ad59448a40e5106d:/windows/winstore.c diff --git a/windows/winstore.c b/windows/winstore.c index 0e7638f5..d011dbfa 100644 --- a/windows/winstore.c +++ b/windows/winstore.c @@ -23,9 +23,8 @@ static const char hex[16] = "0123456789ABCDEF"; static int tried_shgetfolderpath = FALSE; static HMODULE shell32_module = NULL; -typedef HRESULT (WINAPI *p_SHGetFolderPath_t) - (HWND, int, HANDLE, DWORD, LPTSTR); -static p_SHGetFolderPath_t p_SHGetFolderPath = NULL; +DECL_WINDOWS_FUNCTION(static, HRESULT, SHGetFolderPathA, + (HWND, int, HANDLE, DWORD, LPSTR)); static void mungestr(const char *in, char *out) { @@ -499,21 +498,19 @@ static HANDLE access_random_seed(int action) * However, the invocation below requires IE5+ anyway, * so stuff that. */ shell32_module = LoadLibrary("SHELL32.DLL"); - if (shell32_module) { - p_SHGetFolderPath = (p_SHGetFolderPath_t) - GetProcAddress(shell32_module, "SHGetFolderPathA"); - } + GET_WINDOWS_FUNCTION(shell32_module, SHGetFolderPathA); + tried_shgetfolderpath = TRUE; } - if (p_SHGetFolderPath) { - if (SUCCEEDED(p_SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, - NULL, SHGFP_TYPE_CURRENT, seedpath))) { + if (p_SHGetFolderPathA) { + if (SUCCEEDED(p_SHGetFolderPathA(NULL, CSIDL_LOCAL_APPDATA, + NULL, SHGFP_TYPE_CURRENT, seedpath))) { strcat(seedpath, "\\PUTTY.RND"); if (try_random_seed(seedpath, action, &rethandle)) return rethandle; } - if (SUCCEEDED(p_SHGetFolderPath(NULL, CSIDL_APPDATA, - NULL, SHGFP_TYPE_CURRENT, seedpath))) { + if (SUCCEEDED(p_SHGetFolderPathA(NULL, CSIDL_APPDATA, + NULL, SHGFP_TYPE_CURRENT, seedpath))) { strcat(seedpath, "\\PUTTY.RND"); if (try_random_seed(seedpath, action, &rethandle)) return rethandle;