1 // Licensed under the Apache License, Version 2.0
2 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4 // All files in the project carrying such notice may not be copied, modified, or distributed
5 // except according to those terms.
6 //! ApiSet Contract for api-ms-win-core-libraryloader-l1
8 use shared
::basetsd
::LONG_PTR
;
9 use shared
::minwindef
::{
10 BOOL
, DWORD
, FARPROC
, HGLOBAL
, HINSTANCE
, HMODULE
, HRSRC
, LPVOID
, UINT
, WORD
12 use um
::winnt
::{HANDLE, LANGID, LPCSTR, LPCWSTR, LPSTR, LPWSTR, PCWSTR, PVOID}
;
13 pub const GET_MODULE_HANDLE_EX_FLAG_PIN
: DWORD
= 0x00000001;
14 pub const GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT
: DWORD
= 0x00000002;
15 pub const GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS
: DWORD
= 0x00000004;
16 pub const DONT_RESOLVE_DLL_REFERENCES
: DWORD
= 0x00000001;
17 pub const LOAD_LIBRARY_AS_DATAFILE
: DWORD
= 0x00000002;
18 pub const LOAD_WITH_ALTERED_SEARCH_PATH
: DWORD
= 0x00000008;
19 pub const LOAD_IGNORE_CODE_AUTHZ_LEVEL
: DWORD
= 0x00000010;
20 pub const LOAD_LIBRARY_AS_IMAGE_RESOURCE
: DWORD
= 0x00000020;
21 pub const LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE
: DWORD
= 0x00000040;
22 pub const LOAD_LIBRARY_REQUIRE_SIGNED_TARGET
: DWORD
= 0x00000080;
23 pub const LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR
: DWORD
= 0x00000100;
24 pub const LOAD_LIBRARY_SEARCH_APPLICATION_DIR
: DWORD
= 0x00000200;
25 pub const LOAD_LIBRARY_SEARCH_USER_DIRS
: DWORD
= 0x00000400;
26 pub const LOAD_LIBRARY_SEARCH_SYSTEM32
: DWORD
= 0x00000800;
27 pub const LOAD_LIBRARY_SEARCH_DEFAULT_DIRS
: DWORD
= 0x00001000;
28 pub const LOAD_LIBRARY_SAFE_CURRENT_DIRS
: DWORD
= 0x00002000;
29 pub const LOAD_LIBRARY_SEARCH_SYSTEM32_NO_FORWARDER
: DWORD
= 0x00004000;
30 pub const LOAD_LIBRARY_OS_INTEGRITY_CONTINUITY
: DWORD
= 0x00008000;
31 FN
!{stdcall
ENUMRESLANGPROCA(
38 FN
!{stdcall
ENUMRESLANGPROCW(
45 FN
!{stdcall
ENUMRESNAMEPROCA(
51 FN
!{stdcall
ENUMRESNAMEPROCW(
57 FN
!{stdcall
ENUMRESTYPEPROCA(
62 FN
!{stdcall
ENUMRESTYPEPROCW(
68 pub fn DisableThreadLibraryCalls(
71 pub fn FindResourceExW(
77 pub fn FindStringOrdinal(
78 dwFindStringOrdinalFlags
: DWORD
,
79 lpStringSource
: LPCWSTR
,
81 lpStringValue
: LPCWSTR
,
88 pub fn FreeLibraryAndExitThread(
95 pub fn GetModuleFileNameA(
100 pub fn GetModuleFileNameW(
105 pub fn GetModuleHandleA(
106 lpModuleName
: LPCSTR
,
108 pub fn GetModuleHandleW(
109 lpModuleName
: LPCWSTR
,
111 pub fn GetModuleHandleExA(
113 lpModuleName
: LPCSTR
,
114 phModule
: *mut HMODULE
,
116 pub fn GetModuleHandleExW(
118 lpModuleName
: LPCWSTR
,
119 phModule
: *mut HMODULE
,
121 pub fn GetProcAddress(
125 pub fn LoadLibraryExA(
126 lpLibFileName
: LPCSTR
,
130 pub fn LoadLibraryExW(
131 lpLibFileName
: LPCWSTR
,
140 hInstance
: HINSTANCE
,
146 hInstance
: HINSTANCE
,
154 pub fn SizeofResource(
159 pub type DLL_DIRECTORY_COOKIE
= PVOID
;
160 pub type PDLL_DIRECTORY_COOKIE
= *mut PVOID
;
162 pub fn AddDllDirectory(
163 NewDirectory
: PCWSTR
,
164 ) -> DLL_DIRECTORY_COOKIE
;
165 pub fn RemoveDllDirectory(
166 Cookie
: DLL_DIRECTORY_COOKIE
,
168 pub fn SetDefaultDllDirectories(
169 DirectoryFlags
: DWORD
,
171 pub fn EnumResourceLanguagesExA(
175 lpEnumFunc
: ENUMRESLANGPROCA
,
180 pub fn EnumResourceLanguagesExW(
184 lpEnumFunc
: ENUMRESLANGPROCW
,
189 pub fn EnumResourceNamesExA(
192 lpEnumFunc
: ENUMRESNAMEPROCA
,
197 pub fn EnumResourceNamesExW(
200 lpEnumFunc
: ENUMRESNAMEPROCW
,
205 pub fn EnumResourceTypesExA(
207 lpEnumFunc
: ENUMRESTYPEPROCA
,
212 pub fn EnumResourceTypesExW(
214 lpEnumFunc
: ENUMRESTYPEPROCW
,
219 pub fn FindResourceW(
230 pub fn EnumResourceNamesW(
233 lpEnumFunc
: ENUMRESNAMEPROCW
,