diff options
Diffstat (limited to 'winsup/utils/loadlib.h')
-rw-r--r-- | winsup/utils/loadlib.h | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/winsup/utils/loadlib.h b/winsup/utils/loadlib.h deleted file mode 100644 index 34ed1277d..000000000 --- a/winsup/utils/loadlib.h +++ /dev/null @@ -1,61 +0,0 @@ -/* loadlib.h - - Copyright 2010, 2011, 2012 Red Hat, Inc. - - This file is part of Cygwin. - - This software is a copyrighted work licensed under the terms of the - Cygwin license. Please consult the file "CYGWIN_LICENSE" for - details. */ - -#ifndef _LOADLIB_H -#define _LOADLIB_H - -#include <windows.h> -#include <wchar.h> - -/* Load all system libs from the windows system directory by prepending the - full path. This doesn't work for loadling cygwin1.dll. For this case, - instead of prepending the path, make sure that the CWD is removed from - the DLL search path, if possible (XP SP1++, Vista++). */ -static HMODULE _load_sys_library (const wchar_t *dll) __attribute__ ((used)); - -static HMODULE -_load_sys_library (const wchar_t *dll) -{ - static BOOL WINAPI (*set_dll_directory)(LPCWSTR); - static WCHAR sysdir[MAX_PATH]; - static UINT sysdir_len; - - WCHAR dllpath[MAX_PATH]; - - if (!sysdir_len) - { - sysdir_len = GetSystemDirectoryW (sysdir, MAX_PATH); - sysdir[sysdir_len++] = L'\\'; - sysdir[sysdir_len] = L'\0'; - } - if (!set_dll_directory) - { - HMODULE k32 = GetModuleHandleW (L"kernel32.dll"); - if (k32) - set_dll_directory = (BOOL WINAPI (*)(LPCWSTR)) - GetProcAddress (k32, "SetDllDirectoryW"); - if (!set_dll_directory) - set_dll_directory = (BOOL WINAPI (*)(LPCWSTR)) -1; - else - set_dll_directory (L""); - } - - if (wcscmp (dll, L"cygwin1.dll") == 0) - return LoadLibraryExW (L"cygwin1.dll", NULL, LOAD_WITH_ALTERED_SEARCH_PATH); - - wcscpy (dllpath, sysdir); - wcscpy (dllpath + sysdir_len, dll); - return LoadLibraryExW (dllpath, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); -} - -#define LoadLibraryW(d) _load_sys_library(d) -#define LoadLibraryA(d) _load_sys_library(L##d) - -#endif /* _LOADLIB_H */ |