bun-shlwapi 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2383 @@
1
+ import { type FFIFunction, FFIType, dlopen } from 'bun:ffi';
2
+
3
+ import type {
4
+ BOOL,
5
+ BSTR,
6
+ BYTE,
7
+ CHAR,
8
+ COLORREF,
9
+ DWORD,
10
+ HANDLE,
11
+ HDC,
12
+ HINSTANCE,
13
+ HKEY,
14
+ HMENU,
15
+ HMODULE,
16
+ HPALETTE,
17
+ HRESULT,
18
+ HUSKEY,
19
+ HWND,
20
+ INT,
21
+ LONG,
22
+ LONGLONG,
23
+ LONG_PTR,
24
+ LPARAM,
25
+ LPBYTE,
26
+ LPCSTR,
27
+ LPCWSTR,
28
+ LPDWORD,
29
+ LPSTR,
30
+ LPVOID,
31
+ LPWSTR,
32
+ LRESULT,
33
+ LPTHREAD_START_ROUTINE,
34
+ PCSTR,
35
+ PCUIDLIST_RELATIVE,
36
+ PCWSTR,
37
+ PHUSKEY,
38
+ PIDLIST_ABSOLUTE,
39
+ PSTR,
40
+ PWSTR,
41
+ REFIID,
42
+ REGSAM,
43
+ UINT,
44
+ ULONG,
45
+ ULONGLONG,
46
+ VOID,
47
+ WCHAR,
48
+ WNDPROC,
49
+ WORD,
50
+ WPARAM,
51
+ } from '../types/Shlwapi';
52
+
53
+ /**
54
+ * Thin, lazy-loaded FFI bindings for `shlwapi.dll`.
55
+ *
56
+ * Each static method corresponds one-to-one with a Win32 export declared in `Symbols`.
57
+ * The first call to a method binds the underlying native symbol via `bun:ffi` and
58
+ * memoizes it on the class for subsequent calls. For bulk, up-front binding, use `Preload`.
59
+ *
60
+ * Symbols are defined with explicit `FFIType` signatures and kept alphabetized.
61
+ * You normally do not access `Symbols` directly; call the static methods or preload
62
+ * a subset for hot paths.
63
+ *
64
+ * @example
65
+ * ```ts
66
+ * import Shlwapi from './structs/Shlwapi';
67
+ *
68
+ * // Lazy: bind on first call
69
+ * const exists = Shlwapi.PathFileExistsW(encode('C:\\Windows'));
70
+ *
71
+ * // Or preload a subset to avoid per-symbol lazy binding cost
72
+ * Shlwapi.Preload(['PathFileExistsW', 'PathIsDirectoryW']);
73
+ * ```
74
+ */
75
+ class Shlwapi {
76
+ /**
77
+ * Lazily binds a single `shlwapi.dll` export and memoizes it on the class.
78
+ *
79
+ * If the symbol has already been bound (property is non-configurable), this is a no-op.
80
+ * Subsequent calls go directly through the memoized native function.
81
+ *
82
+ * @param method Exact export name from `Symbols`.
83
+ * @returns The bound native function, typed to the corresponding static method.
84
+ * @example
85
+ * ```ts
86
+ * // Internal usage: public wrappers call Load on first invocation
87
+ * // return Shlwapi.Load('PathFileExistsW')(pszPath);
88
+ * ```
89
+ */
90
+ private static Load<T extends keyof typeof Shlwapi.Symbols>(method: T): (typeof Shlwapi)[T] {
91
+ const skip = Object.getOwnPropertyDescriptor(Shlwapi, method)?.configurable === false;
92
+
93
+ if (skip) {
94
+ return Shlwapi[method];
95
+ }
96
+
97
+ const library = dlopen('shlwapi.dll', { [method]: Shlwapi.Symbols[method] });
98
+ const propertyDescriptor = { configurable: false, value: library.symbols[method] };
99
+
100
+ Object.defineProperty(Shlwapi, method, propertyDescriptor);
101
+
102
+ return Shlwapi[method];
103
+ }
104
+
105
+ /**
106
+ * Eagerly binds multiple `shlwapi.dll` exports at once.
107
+ *
108
+ * Pass a subset of method names to bind only what you need for hot paths; when omitted,
109
+ * all symbols declared in `Symbols` are bound. Already-bound symbols are skipped.
110
+ *
111
+ * @param methods Optional list of export names to bind.
112
+ * @example
113
+ * ```ts
114
+ * // Bind a subset
115
+ * Shlwapi.Preload(['PathFileExistsW', 'StrCmpLogicalW']);
116
+ *
117
+ * // Or bind everything once
118
+ * Shlwapi.Preload();
119
+ * ```
120
+ */
121
+ public static Preload(methods?: (keyof typeof Shlwapi.Symbols)[]): void {
122
+ methods ??= Object.keys(Shlwapi.Symbols) as (keyof typeof Shlwapi.Symbols)[];
123
+
124
+ const symbols = Object.fromEntries(
125
+ methods.filter((method) => Object.getOwnPropertyDescriptor(Shlwapi, method)?.configurable !== false).map((method) => [method, Shlwapi.Symbols[method]]) //
126
+ );
127
+
128
+ const library = dlopen('shlwapi.dll', symbols);
129
+
130
+ const propertyDescriptorMap = Object.fromEntries(
131
+ Object.entries(library.symbols).map(([key, value]) => [key, { configurable: false, value }]) //
132
+ );
133
+
134
+ Object.defineProperties(Shlwapi, propertyDescriptorMap);
135
+
136
+ return;
137
+ }
138
+
139
+ /**
140
+ * Raw symbol map for `dlopen('shlwapi.dll', Symbols)`.
141
+ *
142
+ * Keys match exported function names; values define `args` and `returns`
143
+ * using `FFIType`. This map is consumed by `Load`/`Preload` and is not
144
+ * intended for direct use.
145
+ */
146
+ private static readonly Symbols = {
147
+ AssocCreate: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
148
+ AssocGetPerceivedType: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
149
+ AssocIsDangerous: { args: [FFIType.ptr], returns: FFIType.i32 },
150
+ AssocQueryKeyA: { args: [FFIType.u32, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
151
+ AssocQueryKeyW: { args: [FFIType.u32, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
152
+ AssocQueryStringA: { args: [FFIType.u32, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
153
+ AssocQueryStringByKeyA: { args: [FFIType.u32, FFIType.u32, FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
154
+ AssocQueryStringByKeyW: { args: [FFIType.u32, FFIType.u32, FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
155
+ AssocQueryStringW: { args: [FFIType.u32, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
156
+ ChrCmpIA: { args: [FFIType.u16, FFIType.u16], returns: FFIType.i32 },
157
+ ChrCmpIW: { args: [FFIType.u16, FFIType.u16], returns: FFIType.i32 },
158
+ ColorAdjustLuma: { args: [FFIType.u32, FFIType.i32, FFIType.i32], returns: FFIType.u32 },
159
+ ColorHLSToRGB: { args: [FFIType.u16, FFIType.u16, FFIType.u16], returns: FFIType.u32 },
160
+ ColorRGBToHLS: { args: [FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.void },
161
+ ConnectToConnectionPoint: { args: [FFIType.u64, FFIType.ptr, FFIType.i32, FFIType.u64, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
162
+ DelayLoadFailureHook: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
163
+ DllGetClassObject: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
164
+ DllGetVersion: { args: [FFIType.ptr], returns: FFIType.i32 },
165
+ GetAcceptLanguagesA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
166
+ GetAcceptLanguagesW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
167
+ GetMenuPosFromID: { args: [FFIType.u64, FFIType.u32], returns: FFIType.i32 },
168
+ GUIDFromStringW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
169
+ HashData: { args: [FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
170
+ IntlStrEqWorkerA: { args: [FFIType.i32, FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
171
+ IntlStrEqWorkerW: { args: [FFIType.i32, FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
172
+ IsCharSpaceA: { args: [FFIType.u8], returns: FFIType.i32 },
173
+ IsCharSpaceW: { args: [FFIType.u16], returns: FFIType.i32 },
174
+ IsInternetESCEnabled: { args: [], returns: FFIType.i32 },
175
+ IsOS: { args: [FFIType.u32], returns: FFIType.i32 },
176
+ IStream_Copy: { args: [FFIType.u64, FFIType.u64, FFIType.u32], returns: FFIType.i32 },
177
+ IStream_Read: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
178
+ IStream_ReadPidl: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
179
+ IStream_ReadStr: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
180
+ IStream_Reset: { args: [FFIType.u64], returns: FFIType.i32 },
181
+ IStream_Size: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
182
+ IStream_Write: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
183
+ IStream_WritePidl: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
184
+ IStream_WriteStr: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
185
+ IUnknown_AtomicRelease: { args: [FFIType.ptr], returns: FFIType.void },
186
+ IUnknown_Exec: { args: [FFIType.u64, FFIType.ptr, FFIType.u32, FFIType.u32, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
187
+ IUnknown_GetSite: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
188
+ IUnknown_GetWindow: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
189
+ IUnknown_QueryService: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
190
+ IUnknown_QueryStatus: { args: [FFIType.u64, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
191
+ IUnknown_Set: { args: [FFIType.ptr, FFIType.u64], returns: FFIType.void },
192
+ IUnknown_SetSite: { args: [FFIType.u64, FFIType.u64], returns: FFIType.i32 },
193
+ MLLoadLibraryA: { args: [FFIType.ptr, FFIType.u64, FFIType.u32], returns: FFIType.u64 },
194
+ MLLoadLibraryW: { args: [FFIType.ptr, FFIType.u64, FFIType.u32], returns: FFIType.u64 },
195
+ ParseURLA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
196
+ ParseURLW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
197
+ PathAddBackslashA: { args: [FFIType.ptr], returns: FFIType.u64 },
198
+ PathAddBackslashW: { args: [FFIType.ptr], returns: FFIType.u64 },
199
+ PathAddExtensionA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
200
+ PathAddExtensionW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
201
+ PathAppendA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
202
+ PathAppendW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
203
+ PathBuildRootA: { args: [FFIType.ptr, FFIType.i32], returns: FFIType.u64 },
204
+ PathBuildRootW: { args: [FFIType.ptr, FFIType.i32], returns: FFIType.u64 },
205
+ PathCanonicalizeA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
206
+ PathCanonicalizeW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
207
+ PathCombineA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
208
+ PathCombineW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
209
+ PathCommonPrefixA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
210
+ PathCommonPrefixW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
211
+ PathCompactPathA: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
212
+ PathCompactPathExA: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.u32], returns: FFIType.i32 },
213
+ PathCompactPathExW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.u32], returns: FFIType.i32 },
214
+ PathCompactPathW: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
215
+ PathCreateFromUrlA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
216
+ PathCreateFromUrlAlloc: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
217
+ PathCreateFromUrlW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
218
+ PathFileExistsA: { args: [FFIType.ptr], returns: FFIType.i32 },
219
+ PathFileExistsAndAttributesW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
220
+ PathFileExistsW: { args: [FFIType.ptr], returns: FFIType.i32 },
221
+ PathFindExtensionA: { args: [FFIType.ptr], returns: FFIType.u64 },
222
+ PathFindExtensionW: { args: [FFIType.ptr], returns: FFIType.u64 },
223
+ PathFindFileNameA: { args: [FFIType.ptr], returns: FFIType.u64 },
224
+ PathFindFileNameW: { args: [FFIType.ptr], returns: FFIType.u64 },
225
+ PathFindNextComponentA: { args: [FFIType.ptr], returns: FFIType.u64 },
226
+ PathFindNextComponentW: { args: [FFIType.ptr], returns: FFIType.u64 },
227
+ PathFindOnPathA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
228
+ PathFindOnPathW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
229
+ PathFindSuffixArrayA: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.u64 },
230
+ PathFindSuffixArrayW: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.u64 },
231
+ PathGetArgsA: { args: [FFIType.ptr], returns: FFIType.u64 },
232
+ PathGetArgsW: { args: [FFIType.ptr], returns: FFIType.u64 },
233
+ PathGetCharTypeA: { args: [FFIType.u8], returns: FFIType.u32 },
234
+ PathGetCharTypeW: { args: [FFIType.u16], returns: FFIType.u32 },
235
+ PathGetDriveNumberA: { args: [FFIType.ptr], returns: FFIType.i32 },
236
+ PathGetDriveNumberW: { args: [FFIType.ptr], returns: FFIType.i32 },
237
+ PathIsContentTypeA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
238
+ PathIsContentTypeW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
239
+ PathIsDirectoryA: { args: [FFIType.ptr], returns: FFIType.i32 },
240
+ PathIsDirectoryEmptyA: { args: [FFIType.ptr], returns: FFIType.i32 },
241
+ PathIsDirectoryEmptyW: { args: [FFIType.ptr], returns: FFIType.i32 },
242
+ PathIsDirectoryW: { args: [FFIType.ptr], returns: FFIType.i32 },
243
+ PathIsFileSpecA: { args: [FFIType.ptr], returns: FFIType.i32 },
244
+ PathIsFileSpecW: { args: [FFIType.ptr], returns: FFIType.i32 },
245
+ PathIsLFNFileSpecA: { args: [FFIType.ptr], returns: FFIType.i32 },
246
+ PathIsLFNFileSpecW: { args: [FFIType.ptr], returns: FFIType.i32 },
247
+ PathIsNetworkPathA: { args: [FFIType.ptr], returns: FFIType.i32 },
248
+ PathIsNetworkPathW: { args: [FFIType.ptr], returns: FFIType.i32 },
249
+ PathIsPrefixA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
250
+ PathIsPrefixW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
251
+ PathIsRelativeA: { args: [FFIType.ptr], returns: FFIType.i32 },
252
+ PathIsRelativeW: { args: [FFIType.ptr], returns: FFIType.i32 },
253
+ PathIsRootA: { args: [FFIType.ptr], returns: FFIType.i32 },
254
+ PathIsRootW: { args: [FFIType.ptr], returns: FFIType.i32 },
255
+ PathIsSameRootA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
256
+ PathIsSameRootW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
257
+ PathIsSystemFolderA: { args: [FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
258
+ PathIsSystemFolderW: { args: [FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
259
+ PathIsUNCA: { args: [FFIType.ptr], returns: FFIType.i32 },
260
+ PathIsUNCServerA: { args: [FFIType.ptr], returns: FFIType.i32 },
261
+ PathIsUNCServerShareA: { args: [FFIType.ptr], returns: FFIType.i32 },
262
+ PathIsUNCServerShareW: { args: [FFIType.ptr], returns: FFIType.i32 },
263
+ PathIsUNCServerW: { args: [FFIType.ptr], returns: FFIType.i32 },
264
+ PathIsUNCW: { args: [FFIType.ptr], returns: FFIType.i32 },
265
+ PathIsURLA: { args: [FFIType.ptr], returns: FFIType.i32 },
266
+ PathIsURLW: { args: [FFIType.ptr], returns: FFIType.i32 },
267
+ PathMakePrettyA: { args: [FFIType.ptr], returns: FFIType.i32 },
268
+ PathMakePrettyW: { args: [FFIType.ptr], returns: FFIType.i32 },
269
+ PathMakeSystemFolderA: { args: [FFIType.ptr], returns: FFIType.i32 },
270
+ PathMakeSystemFolderW: { args: [FFIType.ptr], returns: FFIType.i32 },
271
+ PathMatchSpecA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
272
+ PathMatchSpecExA: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
273
+ PathMatchSpecExW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
274
+ PathMatchSpecW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
275
+ PathParseIconLocationA: { args: [FFIType.ptr], returns: FFIType.i32 },
276
+ PathParseIconLocationW: { args: [FFIType.ptr], returns: FFIType.i32 },
277
+ PathQuoteSpacesA: { args: [FFIType.ptr], returns: FFIType.i32 },
278
+ PathQuoteSpacesW: { args: [FFIType.ptr], returns: FFIType.i32 },
279
+ PathRelativePathToA: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
280
+ PathRelativePathToW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
281
+ PathRemoveArgsA: { args: [FFIType.ptr], returns: FFIType.void },
282
+ PathRemoveArgsW: { args: [FFIType.ptr], returns: FFIType.void },
283
+ PathRemoveBackslashA: { args: [FFIType.ptr], returns: FFIType.u64 },
284
+ PathRemoveBackslashW: { args: [FFIType.ptr], returns: FFIType.u64 },
285
+ PathRemoveBlanksA: { args: [FFIType.ptr], returns: FFIType.void },
286
+ PathRemoveBlanksW: { args: [FFIType.ptr], returns: FFIType.void },
287
+ PathRemoveExtensionA: { args: [FFIType.ptr], returns: FFIType.void },
288
+ PathRemoveExtensionW: { args: [FFIType.ptr], returns: FFIType.void },
289
+ PathRemoveFileSpecA: { args: [FFIType.ptr], returns: FFIType.i32 },
290
+ PathRemoveFileSpecW: { args: [FFIType.ptr], returns: FFIType.i32 },
291
+ PathRenameExtensionA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
292
+ PathRenameExtensionW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
293
+ PathSearchAndQualifyA: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
294
+ PathSearchAndQualifyW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
295
+ PathSetDlgItemPathA: { args: [FFIType.u64, FFIType.i32, FFIType.ptr], returns: FFIType.void },
296
+ PathSetDlgItemPathW: { args: [FFIType.u64, FFIType.i32, FFIType.ptr], returns: FFIType.void },
297
+ PathSkipRootA: { args: [FFIType.ptr], returns: FFIType.u64 },
298
+ PathSkipRootW: { args: [FFIType.ptr], returns: FFIType.u64 },
299
+ PathStripPathA: { args: [FFIType.ptr], returns: FFIType.void },
300
+ PathStripPathW: { args: [FFIType.ptr], returns: FFIType.void },
301
+ PathStripToRootA: { args: [FFIType.ptr], returns: FFIType.i32 },
302
+ PathStripToRootW: { args: [FFIType.ptr], returns: FFIType.i32 },
303
+ PathUnExpandEnvStringsA: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
304
+ PathUnExpandEnvStringsW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
305
+ PathUndecorateA: { args: [FFIType.ptr], returns: FFIType.void },
306
+ PathUndecorateW: { args: [FFIType.ptr], returns: FFIType.void },
307
+ PathUnmakeSystemFolderA: { args: [FFIType.ptr], returns: FFIType.i32 },
308
+ PathUnmakeSystemFolderW: { args: [FFIType.ptr], returns: FFIType.i32 },
309
+ PathUnquoteSpacesA: { args: [FFIType.ptr], returns: FFIType.i32 },
310
+ PathUnquoteSpacesW: { args: [FFIType.ptr], returns: FFIType.i32 },
311
+ QISearch: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
312
+ SHAllocShared: { args: [FFIType.ptr, FFIType.u32, FFIType.u32], returns: FFIType.u64 },
313
+ SHAnsiToAnsi: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
314
+ SHAnsiToUnicode: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
315
+ SHAutoComplete: { args: [FFIType.u64, FFIType.u32], returns: FFIType.i32 },
316
+ SHCopyKeyA: { args: [FFIType.u64, FFIType.ptr, FFIType.u64, FFIType.u32], returns: FFIType.i32 },
317
+ SHCopyKeyW: { args: [FFIType.u64, FFIType.ptr, FFIType.u64, FFIType.u32], returns: FFIType.i32 },
318
+ SHCreateMemStream: { args: [FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
319
+ SHCreateShellPalette: { args: [FFIType.u64], returns: FFIType.u64 },
320
+ SHCreateStreamOnFileA: { args: [FFIType.ptr, FFIType.u32, FFIType.ptr], returns: FFIType.i32 },
321
+ SHCreateStreamOnFileEx: { args: [FFIType.ptr, FFIType.u32, FFIType.u32, FFIType.i32, FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
322
+ SHCreateStreamOnFileW: { args: [FFIType.ptr, FFIType.u32, FFIType.ptr], returns: FFIType.i32 },
323
+ SHCreateStreamWrapper: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
324
+ SHCreateThread: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr], returns: FFIType.i32 },
325
+ SHCreateThreadRef: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
326
+ SHCreateThreadWithHandle: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
327
+ SHCreateWorkerWindowW: { args: [FFIType.ptr, FFIType.u64, FFIType.u32, FFIType.u32, FFIType.u64, FFIType.u64], returns: FFIType.u64 },
328
+ SHDeleteEmptyKeyA: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
329
+ SHDeleteEmptyKeyW: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
330
+ SHDeleteKeyA: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
331
+ SHDeleteKeyW: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
332
+ SHDeleteOrphanKeyA: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
333
+ SHDeleteOrphanKeyW: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
334
+ SHDeleteValueA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
335
+ SHDeleteValueW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
336
+ SHEnumKeyExA: { args: [FFIType.u64, FFIType.u32, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
337
+ SHEnumKeyExW: { args: [FFIType.u64, FFIType.u32, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
338
+ SHEnumValueA: { args: [FFIType.u64, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
339
+ SHEnumValueW: { args: [FFIType.u64, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
340
+ SHFormatDateTimeA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
341
+ SHFormatDateTimeW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
342
+ SHFreeShared: { args: [FFIType.u64, FFIType.u32], returns: FFIType.i32 },
343
+ SHGetInverseCMAP: { args: [FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
344
+ SHGetThreadRef: { args: [FFIType.ptr], returns: FFIType.i32 },
345
+ SHGetValueA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
346
+ SHGetValueW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
347
+ SHGetViewStatePropertyBag: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
348
+ ShellMessageBoxA: { args: [FFIType.u64, FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
349
+ ShellMessageBoxInternal: { args: [FFIType.u64, FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.i32], returns: FFIType.i32 },
350
+ ShellMessageBoxW: { args: [FFIType.u64, FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
351
+ SHIsChildOrSelf: { args: [FFIType.u64, FFIType.u64], returns: FFIType.i32 },
352
+ SHIsLowMemoryMachine: { args: [FFIType.u32], returns: FFIType.i32 },
353
+ SHLoadIndirectString: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr], returns: FFIType.i32 },
354
+ SHLockShared: { args: [FFIType.u64, FFIType.u32], returns: FFIType.u64 },
355
+ SHMessageBoxCheckA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.i32, FFIType.ptr], returns: FFIType.i32 },
356
+ SHMessageBoxCheckW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.i32, FFIType.ptr], returns: FFIType.i32 },
357
+ SHOpenRegStream2A: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
358
+ SHOpenRegStream2W: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
359
+ SHOpenRegStreamA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
360
+ SHOpenRegStreamW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
361
+ SHPackDispParamsV: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr], returns: FFIType.i32 },
362
+ SHPinDllOfCLSID: { args: [FFIType.ptr], returns: FFIType.i32 },
363
+ SHPropertyBag_ReadStrAlloc: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
364
+ SHPropertyBag_WriteBSTR: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
365
+ SHQueryInfoKeyA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
366
+ SHQueryInfoKeyW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
367
+ SHQueryValueExA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
368
+ SHQueryValueExW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
369
+ SHRegCloseUSKey: { args: [FFIType.u64], returns: FFIType.i32 },
370
+ SHRegCreateUSKeyA: { args: [FFIType.ptr, FFIType.u32, FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
371
+ SHRegCreateUSKeyW: { args: [FFIType.ptr, FFIType.u32, FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
372
+ SHRegDeleteEmptyUSKeyA: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
373
+ SHRegDeleteEmptyUSKeyW: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
374
+ SHRegDeleteUSValueA: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
375
+ SHRegDeleteUSValueW: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
376
+ SHRegDuplicateHKey: { args: [FFIType.u64], returns: FFIType.u64 },
377
+ SHRegEnumUSKeyA: { args: [FFIType.u64, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
378
+ SHRegEnumUSKeyW: { args: [FFIType.u64, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
379
+ SHRegEnumUSValueA: { args: [FFIType.u64, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
380
+ SHRegEnumUSValueW: { args: [FFIType.u64, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
381
+ SHRegGetBoolUSValueA: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32, FFIType.i32], returns: FFIType.i32 },
382
+ SHRegGetBoolUSValueW: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32, FFIType.i32], returns: FFIType.i32 },
383
+ SHRegGetBoolValueFromHKCUHKLM: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
384
+ SHRegGetIntW: { args: [FFIType.u64, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
385
+ SHRegGetPathA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
386
+ SHRegGetPathW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
387
+ SHRegGetUSValueA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.i32, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
388
+ SHRegGetUSValueW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.i32, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
389
+ SHRegGetValueA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
390
+ SHRegGetValueFromHKCUHKLM: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
391
+ SHRegGetValueW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
392
+ SHRegisterValidateTemplate: { args: [FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
393
+ SHRegOpenUSKeyA: { args: [FFIType.ptr, FFIType.u32, FFIType.u64, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
394
+ SHRegOpenUSKeyW: { args: [FFIType.ptr, FFIType.u32, FFIType.u64, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
395
+ SHRegQueryInfoUSKeyA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
396
+ SHRegQueryInfoUSKeyW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
397
+ SHRegQueryUSValueA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.i32, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
398
+ SHRegQueryUSValueW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.i32, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
399
+ SHRegSetPathA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
400
+ SHRegSetPathW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
401
+ SHRegSetUSValueA: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.u32, FFIType.u32], returns: FFIType.i32 },
402
+ SHRegSetUSValueW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.u32, FFIType.u32], returns: FFIType.i32 },
403
+ SHRegWriteUSValueA: { args: [FFIType.u64, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.u32, FFIType.u32], returns: FFIType.i32 },
404
+ SHRegWriteUSValueW: { args: [FFIType.u64, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.u32, FFIType.u32], returns: FFIType.i32 },
405
+ SHReleaseThreadRef: { args: [], returns: FFIType.i32 },
406
+ SHRunIndirectRegClientCommand: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
407
+ SHSendMessageBroadcastA: { args: [FFIType.u32, FFIType.u64, FFIType.u64], returns: FFIType.u64 },
408
+ SHSendMessageBroadcastW: { args: [FFIType.u32, FFIType.u64, FFIType.u64], returns: FFIType.u64 },
409
+ SHSetThreadRef: { args: [FFIType.u64], returns: FFIType.i32 },
410
+ SHSetValueA: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
411
+ SHSetValueW: { args: [FFIType.u64, FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
412
+ SHSkipJunction: { args: [FFIType.u64, FFIType.ptr], returns: FFIType.i32 },
413
+ SHStrDupA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
414
+ SHStrDupW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
415
+ SHStripMneumonicA: { args: [FFIType.ptr], returns: FFIType.u8 },
416
+ SHStripMneumonicW: { args: [FFIType.ptr], returns: FFIType.u16 },
417
+ SHUnicodeToAnsi: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
418
+ SHUnicodeToAnsiCP: { args: [FFIType.u32, FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
419
+ SHUnicodeToUnicode: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
420
+ SHUnlockShared: { args: [FFIType.u64], returns: FFIType.i32 },
421
+ StrCatBuffA: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.u64 },
422
+ StrCatBuffW: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.u64 },
423
+ StrCatChainW: { args: [FFIType.ptr, FFIType.u32, FFIType.u32, FFIType.ptr], returns: FFIType.u32 },
424
+ StrCatW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
425
+ StrChrA: { args: [FFIType.ptr, FFIType.u16], returns: FFIType.u64 },
426
+ StrChrIA: { args: [FFIType.ptr, FFIType.u16], returns: FFIType.u64 },
427
+ StrChrIW: { args: [FFIType.ptr, FFIType.u16], returns: FFIType.u64 },
428
+ StrChrNIW: { args: [FFIType.ptr, FFIType.u16, FFIType.u32], returns: FFIType.u64 },
429
+ StrChrNW: { args: [FFIType.ptr, FFIType.u16, FFIType.u32], returns: FFIType.u64 },
430
+ StrChrW: { args: [FFIType.ptr, FFIType.u16], returns: FFIType.u64 },
431
+ StrCmpCA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
432
+ StrCmpCW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
433
+ StrCmpICA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
434
+ StrCmpICW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
435
+ StrCmpIW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
436
+ StrCmpLogicalW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
437
+ StrCmpNA: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
438
+ StrCmpNCA: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
439
+ StrCmpNCW: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
440
+ StrCmpNIA: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
441
+ StrCmpNICA: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
442
+ StrCmpNICW: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
443
+ StrCmpNIW: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
444
+ StrCmpNW: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
445
+ StrCmpW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
446
+ StrCpyNW: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.u64 },
447
+ StrCpyW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
448
+ StrCSpnA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
449
+ StrCSpnIA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
450
+ StrCSpnIW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
451
+ StrCSpnW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
452
+ StrDupA: { args: [FFIType.ptr], returns: FFIType.u64 },
453
+ StrDupW: { args: [FFIType.ptr], returns: FFIType.u64 },
454
+ StrFormatByteSize64A: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
455
+ StrFormatByteSizeA: { args: [FFIType.u32, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
456
+ StrFormatByteSizeEx: { args: [FFIType.u64, FFIType.u32, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
457
+ StrFormatByteSizeW: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
458
+ StrFormatKBSizeA: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
459
+ StrFormatKBSizeW: { args: [FFIType.u64, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
460
+ StrFromTimeIntervalA: { args: [FFIType.ptr, FFIType.u32, FFIType.u32, FFIType.i32], returns: FFIType.i32 },
461
+ StrFromTimeIntervalW: { args: [FFIType.ptr, FFIType.u32, FFIType.u32, FFIType.i32], returns: FFIType.i32 },
462
+ StrIsIntlEqualA: { args: [FFIType.i32, FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
463
+ StrIsIntlEqualW: { args: [FFIType.i32, FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
464
+ StrNCatA: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.u64 },
465
+ StrNCatW: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.u64 },
466
+ StrPBrkA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
467
+ StrPBrkW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
468
+ StrRChrA: { args: [FFIType.ptr, FFIType.ptr, FFIType.u16], returns: FFIType.u64 },
469
+ StrRChrIA: { args: [FFIType.ptr, FFIType.ptr, FFIType.u16], returns: FFIType.u64 },
470
+ StrRChrIW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u16], returns: FFIType.u64 },
471
+ StrRChrW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u16], returns: FFIType.u64 },
472
+ StrRetToBSTR: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
473
+ StrRetToBufA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
474
+ StrRetToBufW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
475
+ StrRetToStrA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
476
+ StrRetToStrW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
477
+ StrRStrIA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
478
+ StrRStrIW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
479
+ StrSpnA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
480
+ StrSpnW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
481
+ StrStrA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
482
+ StrStrIA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
483
+ StrStrIW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
484
+ StrStrNIW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
485
+ StrStrNW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.u64 },
486
+ StrStrW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.u64 },
487
+ StrToInt64ExA: { args: [FFIType.ptr, FFIType.u32, FFIType.ptr], returns: FFIType.i32 },
488
+ StrToInt64ExW: { args: [FFIType.ptr, FFIType.u32, FFIType.ptr], returns: FFIType.i32 },
489
+ StrToIntA: { args: [FFIType.ptr], returns: FFIType.i32 },
490
+ StrToIntExA: { args: [FFIType.ptr, FFIType.u32, FFIType.ptr], returns: FFIType.i32 },
491
+ StrToIntExW: { args: [FFIType.ptr, FFIType.u32, FFIType.ptr], returns: FFIType.i32 },
492
+ StrToIntW: { args: [FFIType.ptr], returns: FFIType.i32 },
493
+ StrTrimA: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
494
+ StrTrimW: { args: [FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
495
+ UrlApplySchemeA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
496
+ UrlApplySchemeW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
497
+ UrlCanonicalizeA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
498
+ UrlCanonicalizeW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
499
+ UrlCombineA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
500
+ UrlCombineW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
501
+ UrlCompareA: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
502
+ UrlCompareW: { args: [FFIType.ptr, FFIType.ptr, FFIType.i32], returns: FFIType.i32 },
503
+ UrlCreateFromPathA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
504
+ UrlCreateFromPathW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
505
+ UrlEscapeA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
506
+ UrlEscapeW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
507
+ UrlFixupW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
508
+ UrlGetLocationA: { args: [FFIType.ptr], returns: FFIType.u64 },
509
+ UrlGetLocationW: { args: [FFIType.ptr], returns: FFIType.u64 },
510
+ UrlGetPartA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.u32], returns: FFIType.i32 },
511
+ UrlGetPartW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32, FFIType.u32], returns: FFIType.i32 },
512
+ UrlHashA: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
513
+ UrlHashW: { args: [FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
514
+ UrlIsA: { args: [FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
515
+ UrlIsNoHistoryA: { args: [FFIType.ptr], returns: FFIType.i32 },
516
+ UrlIsNoHistoryW: { args: [FFIType.ptr], returns: FFIType.i32 },
517
+ UrlIsOpaqueA: { args: [FFIType.ptr], returns: FFIType.i32 },
518
+ UrlIsOpaqueW: { args: [FFIType.ptr], returns: FFIType.i32 },
519
+ UrlIsW: { args: [FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
520
+ UrlUnescapeA: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
521
+ UrlUnescapeW: { args: [FFIType.ptr, FFIType.ptr, FFIType.ptr, FFIType.u32], returns: FFIType.i32 },
522
+ WhichPlatform: { args: [], returns: FFIType.u32 },
523
+ wnsprintfA: { args: [FFIType.ptr, FFIType.i32, FFIType.ptr], returns: FFIType.i32 },
524
+ wnsprintfW: { args: [FFIType.ptr, FFIType.i32, FFIType.ptr], returns: FFIType.i32 },
525
+ wvnsprintfA: { args: [FFIType.ptr, FFIType.i32, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
526
+ wvnsprintfW: { args: [FFIType.ptr, FFIType.i32, FFIType.ptr, FFIType.ptr], returns: FFIType.i32 },
527
+ } as const satisfies Record<string, FFIFunction>;
528
+
529
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-assoccreate
530
+ public static AssocCreate(clsid: LPVOID, riid: REFIID, ppv: LPVOID): HRESULT {
531
+ return Shlwapi.Load('AssocCreate')(clsid, riid, ppv);
532
+ }
533
+
534
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-assocgetperceivedtype
535
+ public static AssocGetPerceivedType(pszExt: LPCWSTR, ptype: LPVOID, pflag: LPVOID, ppszType: LPVOID): HRESULT {
536
+ return Shlwapi.Load('AssocGetPerceivedType')(pszExt, ptype, pflag, ppszType);
537
+ }
538
+
539
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-associsdangerous
540
+ public static AssocIsDangerous(pszAssoc: LPCWSTR): BOOL {
541
+ return Shlwapi.Load('AssocIsDangerous')(pszAssoc);
542
+ }
543
+
544
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-assocquerykeya
545
+ public static AssocQueryKeyA(flags: DWORD, key: DWORD, pszAssoc: LPCSTR, pszExtra: LPCSTR, phkeyOut: LPVOID): HRESULT {
546
+ return Shlwapi.Load('AssocQueryKeyA')(flags, key, pszAssoc, pszExtra, phkeyOut);
547
+ }
548
+
549
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-assocquerykeyw
550
+ public static AssocQueryKeyW(flags: DWORD, key: DWORD, pszAssoc: LPCWSTR, pszExtra: LPCWSTR, phkeyOut: LPVOID): HRESULT {
551
+ return Shlwapi.Load('AssocQueryKeyW')(flags, key, pszAssoc, pszExtra, phkeyOut);
552
+ }
553
+
554
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-assocquerystringa
555
+ public static AssocQueryStringA(flags: DWORD, str: DWORD, pszAssoc: LPCSTR, pszExtra: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD): HRESULT {
556
+ return Shlwapi.Load('AssocQueryStringA')(flags, str, pszAssoc, pszExtra, pszOut, pcchOut);
557
+ }
558
+
559
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-assocquerystringbykeya
560
+ public static AssocQueryStringByKeyA(flags: DWORD, str: DWORD, hkAssoc: HKEY, pszExtra: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD): HRESULT {
561
+ return Shlwapi.Load('AssocQueryStringByKeyA')(flags, str, hkAssoc, pszExtra, pszOut, pcchOut);
562
+ }
563
+
564
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-assocquerystringbykeyw
565
+ public static AssocQueryStringByKeyW(flags: DWORD, str: DWORD, hkAssoc: HKEY, pszExtra: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD): HRESULT {
566
+ return Shlwapi.Load('AssocQueryStringByKeyW')(flags, str, hkAssoc, pszExtra, pszOut, pcchOut);
567
+ }
568
+
569
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-assocquerystringw
570
+ public static AssocQueryStringW(flags: DWORD, str: DWORD, pszAssoc: LPCWSTR, pszExtra: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD): HRESULT {
571
+ return Shlwapi.Load('AssocQueryStringW')(flags, str, pszAssoc, pszExtra, pszOut, pcchOut);
572
+ }
573
+
574
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-chrcmpia
575
+ public static ChrCmpIA(w1: WORD, w2: WORD): BOOL {
576
+ return Shlwapi.Load('ChrCmpIA')(w1, w2);
577
+ }
578
+
579
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-chrcmpiw
580
+ public static ChrCmpIW(w1: WCHAR, w2: WCHAR): BOOL {
581
+ return Shlwapi.Load('ChrCmpIW')(w1, w2);
582
+ }
583
+
584
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-coloradjustluma
585
+ public static ColorAdjustLuma(clrRGB: COLORREF, n: INT, fScale: BOOL): COLORREF {
586
+ return Shlwapi.Load('ColorAdjustLuma')(clrRGB, n, fScale);
587
+ }
588
+
589
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-colorhlstorgb
590
+ public static ColorHLSToRGB(wHue: WORD, wLuminance: WORD, wSaturation: WORD): COLORREF {
591
+ return Shlwapi.Load('ColorHLSToRGB')(wHue, wLuminance, wSaturation);
592
+ }
593
+
594
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-colorrgbtohls
595
+ public static ColorRGBToHLS(clrRGB: COLORREF, pwHue: LPVOID, pwLuminance: LPVOID, pwSaturation: LPVOID): VOID {
596
+ return Shlwapi.Load('ColorRGBToHLS')(clrRGB, pwHue, pwLuminance, pwSaturation);
597
+ }
598
+
599
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-connecttoconnectionpoint
600
+ public static ConnectToConnectionPoint(punk: HANDLE, riidEvent: REFIID, fConnect: BOOL, punkTarget: HANDLE, pdwCookie: LPDWORD, ppcpOut: LPVOID): HRESULT {
601
+ return Shlwapi.Load('ConnectToConnectionPoint')(punk, riidEvent, fConnect, punkTarget, pdwCookie, ppcpOut);
602
+ }
603
+
604
+ public static DelayLoadFailureHook(pszDllName: LPCSTR, pszProcName: LPCSTR): LONG_PTR {
605
+ return Shlwapi.Load('DelayLoadFailureHook')(pszDllName, pszProcName);
606
+ }
607
+
608
+ public static DllGetClassObject(rclsid: REFIID, riid: REFIID, ppv: LPVOID): HRESULT {
609
+ return Shlwapi.Load('DllGetClassObject')(rclsid, riid, ppv);
610
+ }
611
+
612
+ public static DllGetVersion(pdvi: LPVOID): HRESULT {
613
+ return Shlwapi.Load('DllGetVersion')(pdvi);
614
+ }
615
+
616
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-getacceptlanguagesa
617
+ public static GetAcceptLanguagesA(pszLanguages: LPSTR, pcchLanguages: LPDWORD): HRESULT {
618
+ return Shlwapi.Load('GetAcceptLanguagesA')(pszLanguages, pcchLanguages);
619
+ }
620
+
621
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-getacceptlanguagesw
622
+ public static GetAcceptLanguagesW(pszLanguages: LPWSTR, pcchLanguages: LPDWORD): HRESULT {
623
+ return Shlwapi.Load('GetAcceptLanguagesW')(pszLanguages, pcchLanguages);
624
+ }
625
+
626
+ public static GetMenuPosFromID(hMenu: HMENU, wID: UINT): INT {
627
+ return Shlwapi.Load('GetMenuPosFromID')(hMenu, wID);
628
+ }
629
+
630
+ public static GUIDFromStringW(psz: LPCWSTR, pguid: LPVOID): BOOL {
631
+ return Shlwapi.Load('GUIDFromStringW')(psz, pguid);
632
+ }
633
+
634
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-hashdata
635
+ public static HashData(pbData: LPBYTE, cbData: DWORD, pbHash: LPBYTE, cbHash: DWORD): HRESULT {
636
+ return Shlwapi.Load('HashData')(pbData, cbData, pbHash, cbHash);
637
+ }
638
+
639
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-intlstreqworkera
640
+ public static IntlStrEqWorkerA(fCaseSens: BOOL, lpString1: LPCSTR, lpString2: LPCSTR, nChar: INT): BOOL {
641
+ return Shlwapi.Load('IntlStrEqWorkerA')(fCaseSens, lpString1, lpString2, nChar);
642
+ }
643
+
644
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-intlstreqworkerw
645
+ public static IntlStrEqWorkerW(fCaseSens: BOOL, lpString1: LPCWSTR, lpString2: LPCWSTR, nChar: INT): BOOL {
646
+ return Shlwapi.Load('IntlStrEqWorkerW')(fCaseSens, lpString1, lpString2, nChar);
647
+ }
648
+
649
+ public static IsCharSpaceA(wch: BYTE): BOOL {
650
+ return Shlwapi.Load('IsCharSpaceA')(wch);
651
+ }
652
+
653
+ public static IsCharSpaceW(wch: WCHAR): BOOL {
654
+ return Shlwapi.Load('IsCharSpaceW')(wch);
655
+ }
656
+
657
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-isinternetescenabled
658
+ public static IsInternetESCEnabled(): BOOL {
659
+ return Shlwapi.Load('IsInternetESCEnabled')();
660
+ }
661
+
662
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-isos
663
+ public static IsOS(dwOS: DWORD): BOOL {
664
+ return Shlwapi.Load('IsOS')(dwOS);
665
+ }
666
+
667
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-istream_copy
668
+ public static IStream_Copy(pstmFrom: HANDLE, pstmTo: HANDLE, cb: DWORD): HRESULT {
669
+ return Shlwapi.Load('IStream_Copy')(pstmFrom, pstmTo, cb);
670
+ }
671
+
672
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-istream_read
673
+ public static IStream_Read(pstm: HANDLE, pv: LPVOID, cb: ULONG): HRESULT {
674
+ return Shlwapi.Load('IStream_Read')(pstm, pv, cb);
675
+ }
676
+
677
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-istream_readpidl
678
+ public static IStream_ReadPidl(pstm: HANDLE, ppidlOut: LPVOID): HRESULT {
679
+ return Shlwapi.Load('IStream_ReadPidl')(pstm, ppidlOut);
680
+ }
681
+
682
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-istream_readstr
683
+ public static IStream_ReadStr(pstm: HANDLE, ppsz: LPVOID): HRESULT {
684
+ return Shlwapi.Load('IStream_ReadStr')(pstm, ppsz);
685
+ }
686
+
687
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-istream_reset
688
+ public static IStream_Reset(pstm: HANDLE): HRESULT {
689
+ return Shlwapi.Load('IStream_Reset')(pstm);
690
+ }
691
+
692
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-istream_size
693
+ public static IStream_Size(pstm: HANDLE, pui: LPVOID): HRESULT {
694
+ return Shlwapi.Load('IStream_Size')(pstm, pui);
695
+ }
696
+
697
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-istream_write
698
+ public static IStream_Write(pstm: HANDLE, pv: LPVOID, cb: ULONG): HRESULT {
699
+ return Shlwapi.Load('IStream_Write')(pstm, pv, cb);
700
+ }
701
+
702
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-istream_writepidl
703
+ public static IStream_WritePidl(pstm: HANDLE, pidlWrite: PCUIDLIST_RELATIVE): HRESULT {
704
+ return Shlwapi.Load('IStream_WritePidl')(pstm, pidlWrite);
705
+ }
706
+
707
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-istream_writestr
708
+ public static IStream_WriteStr(pstm: HANDLE, psz: PCWSTR): HRESULT {
709
+ return Shlwapi.Load('IStream_WriteStr')(pstm, psz);
710
+ }
711
+
712
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-iunknown_atomicrelease
713
+ public static IUnknown_AtomicRelease(ppunk: LPVOID): VOID {
714
+ return Shlwapi.Load('IUnknown_AtomicRelease')(ppunk);
715
+ }
716
+
717
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-iunknown_exec
718
+ public static IUnknown_Exec(punk: HANDLE, pguidCmdGroup: LPVOID, nCmdID: DWORD, nCmdexecopt: DWORD, pvarargIn: LPVOID, pvarargOut: LPVOID): HRESULT {
719
+ return Shlwapi.Load('IUnknown_Exec')(punk, pguidCmdGroup, nCmdID, nCmdexecopt, pvarargIn, pvarargOut);
720
+ }
721
+
722
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-iunknown_getsite
723
+ public static IUnknown_GetSite(punk: HANDLE, riid: REFIID, ppv: LPVOID): HRESULT {
724
+ return Shlwapi.Load('IUnknown_GetSite')(punk, riid, ppv);
725
+ }
726
+
727
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-iunknown_getwindow
728
+ public static IUnknown_GetWindow(punk: HANDLE, phwnd: LPVOID): HRESULT {
729
+ return Shlwapi.Load('IUnknown_GetWindow')(punk, phwnd);
730
+ }
731
+
732
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-iunknown_queryservice
733
+ public static IUnknown_QueryService(punk: HANDLE, guidService: REFIID, riid: REFIID, ppvOut: LPVOID): HRESULT {
734
+ return Shlwapi.Load('IUnknown_QueryService')(punk, guidService, riid, ppvOut);
735
+ }
736
+
737
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-iunknown_querystatus
738
+ public static IUnknown_QueryStatus(punk: HANDLE, pguidCmdGroup: LPVOID, cCmds: ULONG, prgCmds: LPVOID, pCmdText: LPVOID): HRESULT {
739
+ return Shlwapi.Load('IUnknown_QueryStatus')(punk, pguidCmdGroup, cCmds, prgCmds, pCmdText);
740
+ }
741
+
742
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-iunknown_set
743
+ public static IUnknown_Set(ppunk: LPVOID, punk: HANDLE): VOID {
744
+ return Shlwapi.Load('IUnknown_Set')(ppunk, punk);
745
+ }
746
+
747
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-iunknown_setsite
748
+ public static IUnknown_SetSite(punk: HANDLE, punkSite: HANDLE): HRESULT {
749
+ return Shlwapi.Load('IUnknown_SetSite')(punk, punkSite);
750
+ }
751
+
752
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-mlloadlibrarya
753
+ public static MLLoadLibraryA(lpszLibFileName: LPCSTR, hModule: HMODULE, dwCrossCodePage: DWORD): HINSTANCE {
754
+ return Shlwapi.Load('MLLoadLibraryA')(lpszLibFileName, hModule, dwCrossCodePage);
755
+ }
756
+
757
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-mlloadlibraryw
758
+ public static MLLoadLibraryW(lpszLibFileName: LPCWSTR, hModule: HMODULE, dwCrossCodePage: DWORD): HINSTANCE {
759
+ return Shlwapi.Load('MLLoadLibraryW')(lpszLibFileName, hModule, dwCrossCodePage);
760
+ }
761
+
762
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-parseurla
763
+ public static ParseURLA(pcszURL: LPCSTR, ppu: LPVOID): HRESULT {
764
+ return Shlwapi.Load('ParseURLA')(pcszURL, ppu);
765
+ }
766
+
767
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-parseurlw
768
+ public static ParseURLW(pcszURL: LPCWSTR, ppu: LPVOID): HRESULT {
769
+ return Shlwapi.Load('ParseURLW')(pcszURL, ppu);
770
+ }
771
+
772
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathaddbackslasha
773
+ public static PathAddBackslashA(pszPath: LPSTR): LONG_PTR {
774
+ return Shlwapi.Load('PathAddBackslashA')(pszPath);
775
+ }
776
+
777
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathaddbackslashw
778
+ public static PathAddBackslashW(pszPath: LPWSTR): LONG_PTR {
779
+ return Shlwapi.Load('PathAddBackslashW')(pszPath);
780
+ }
781
+
782
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathaddextensiona
783
+ public static PathAddExtensionA(pszPath: LPSTR, pszExt: LPCSTR): BOOL {
784
+ return Shlwapi.Load('PathAddExtensionA')(pszPath, pszExt);
785
+ }
786
+
787
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathaddextensionw
788
+ public static PathAddExtensionW(pszPath: LPWSTR, pszExt: LPCWSTR): BOOL {
789
+ return Shlwapi.Load('PathAddExtensionW')(pszPath, pszExt);
790
+ }
791
+
792
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathappenda
793
+ public static PathAppendA(pszPath: LPSTR, pszMore: LPCSTR): BOOL {
794
+ return Shlwapi.Load('PathAppendA')(pszPath, pszMore);
795
+ }
796
+
797
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathappendw
798
+ public static PathAppendW(pszPath: LPWSTR, pszMore: LPCWSTR): BOOL {
799
+ return Shlwapi.Load('PathAppendW')(pszPath, pszMore);
800
+ }
801
+
802
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathbuildroota
803
+ public static PathBuildRootA(pszRoot: LPSTR, iDrive: INT): LONG_PTR {
804
+ return Shlwapi.Load('PathBuildRootA')(pszRoot, iDrive);
805
+ }
806
+
807
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathbuildrootw
808
+ public static PathBuildRootW(pszRoot: LPWSTR, iDrive: INT): LONG_PTR {
809
+ return Shlwapi.Load('PathBuildRootW')(pszRoot, iDrive);
810
+ }
811
+
812
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcanonicalizea
813
+ public static PathCanonicalizeA(pszBuf: LPSTR, pszPath: LPCSTR): BOOL {
814
+ return Shlwapi.Load('PathCanonicalizeA')(pszBuf, pszPath);
815
+ }
816
+
817
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcanonicalizew
818
+ public static PathCanonicalizeW(pszBuf: LPWSTR, pszPath: LPCWSTR): BOOL {
819
+ return Shlwapi.Load('PathCanonicalizeW')(pszBuf, pszPath);
820
+ }
821
+
822
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcombinea
823
+ public static PathCombineA(pszDest: LPSTR, pszDir: LPCSTR, pszFile: LPCSTR): LONG_PTR {
824
+ return Shlwapi.Load('PathCombineA')(pszDest, pszDir, pszFile);
825
+ }
826
+
827
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcombinew
828
+ public static PathCombineW(pszDest: LPWSTR, pszDir: LPCWSTR, pszFile: LPCWSTR): LONG_PTR {
829
+ return Shlwapi.Load('PathCombineW')(pszDest, pszDir, pszFile);
830
+ }
831
+
832
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcommonprefixa
833
+ public static PathCommonPrefixA(pszFile1: LPCSTR, pszFile2: LPCSTR, achPath: LPSTR): INT {
834
+ return Shlwapi.Load('PathCommonPrefixA')(pszFile1, pszFile2, achPath);
835
+ }
836
+
837
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcommonprefixw
838
+ public static PathCommonPrefixW(pszFile1: LPCWSTR, pszFile2: LPCWSTR, achPath: LPWSTR): INT {
839
+ return Shlwapi.Load('PathCommonPrefixW')(pszFile1, pszFile2, achPath);
840
+ }
841
+
842
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcompactpatha
843
+ public static PathCompactPathA(hDC: HDC, pszPath: LPSTR, dx: UINT): BOOL {
844
+ return Shlwapi.Load('PathCompactPathA')(hDC, pszPath, dx);
845
+ }
846
+
847
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcompactpathexa
848
+ public static PathCompactPathExA(pszOut: LPSTR, pszSrc: LPCSTR, cchMax: UINT, dwFlags: DWORD): BOOL {
849
+ return Shlwapi.Load('PathCompactPathExA')(pszOut, pszSrc, cchMax, dwFlags);
850
+ }
851
+
852
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcompactpathexw
853
+ public static PathCompactPathExW(pszOut: LPWSTR, pszSrc: LPCWSTR, cchMax: UINT, dwFlags: DWORD): BOOL {
854
+ return Shlwapi.Load('PathCompactPathExW')(pszOut, pszSrc, cchMax, dwFlags);
855
+ }
856
+
857
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcompactpathw
858
+ public static PathCompactPathW(hDC: HDC, pszPath: LPWSTR, dx: UINT): BOOL {
859
+ return Shlwapi.Load('PathCompactPathW')(hDC, pszPath, dx);
860
+ }
861
+
862
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcreatefromurla
863
+ public static PathCreateFromUrlA(pszUrl: LPCSTR, pszPath: LPSTR, pcchPath: LPDWORD, dwFlags: DWORD): HRESULT {
864
+ return Shlwapi.Load('PathCreateFromUrlA')(pszUrl, pszPath, pcchPath, dwFlags);
865
+ }
866
+
867
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcreatefromurlalloc
868
+ public static PathCreateFromUrlAlloc(pszIn: LPCWSTR, ppszOut: LPVOID, dwFlags: DWORD): HRESULT {
869
+ return Shlwapi.Load('PathCreateFromUrlAlloc')(pszIn, ppszOut, dwFlags);
870
+ }
871
+
872
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathcreatefromurlw
873
+ public static PathCreateFromUrlW(pszUrl: LPCWSTR, pszPath: LPWSTR, pcchPath: LPDWORD, dwFlags: DWORD): HRESULT {
874
+ return Shlwapi.Load('PathCreateFromUrlW')(pszUrl, pszPath, pcchPath, dwFlags);
875
+ }
876
+
877
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfileexistsa
878
+ public static PathFileExistsA(pszPath: LPCSTR): BOOL {
879
+ return Shlwapi.Load('PathFileExistsA')(pszPath);
880
+ }
881
+
882
+ public static PathFileExistsAndAttributesW(pszPath: LPCWSTR, pdwAttributes: LPDWORD): BOOL {
883
+ return Shlwapi.Load('PathFileExistsAndAttributesW')(pszPath, pdwAttributes);
884
+ }
885
+
886
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfileexistsw
887
+ public static PathFileExistsW(pszPath: LPCWSTR): BOOL {
888
+ return Shlwapi.Load('PathFileExistsW')(pszPath);
889
+ }
890
+
891
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindextensiona
892
+ public static PathFindExtensionA(pszPath: LPCSTR): LONG_PTR {
893
+ return Shlwapi.Load('PathFindExtensionA')(pszPath);
894
+ }
895
+
896
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindextensionw
897
+ public static PathFindExtensionW(pszPath: LPCWSTR): LONG_PTR {
898
+ return Shlwapi.Load('PathFindExtensionW')(pszPath);
899
+ }
900
+
901
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindfilenamea
902
+ public static PathFindFileNameA(pszPath: LPCSTR): LONG_PTR {
903
+ return Shlwapi.Load('PathFindFileNameA')(pszPath);
904
+ }
905
+
906
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindfilenamew
907
+ public static PathFindFileNameW(pszPath: LPCWSTR): LONG_PTR {
908
+ return Shlwapi.Load('PathFindFileNameW')(pszPath);
909
+ }
910
+
911
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindnextcomponenta
912
+ public static PathFindNextComponentA(pszPath: LPCSTR): LONG_PTR {
913
+ return Shlwapi.Load('PathFindNextComponentA')(pszPath);
914
+ }
915
+
916
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindnextcomponentw
917
+ public static PathFindNextComponentW(pszPath: LPCWSTR): LONG_PTR {
918
+ return Shlwapi.Load('PathFindNextComponentW')(pszPath);
919
+ }
920
+
921
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindonpatha
922
+ public static PathFindOnPathA(pszPath: LPSTR, ppszOtherDirs: LPVOID): BOOL {
923
+ return Shlwapi.Load('PathFindOnPathA')(pszPath, ppszOtherDirs);
924
+ }
925
+
926
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindonpathw
927
+ public static PathFindOnPathW(pszPath: LPWSTR, ppszOtherDirs: LPVOID): BOOL {
928
+ return Shlwapi.Load('PathFindOnPathW')(pszPath, ppszOtherDirs);
929
+ }
930
+
931
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindsuffixarraya
932
+ public static PathFindSuffixArrayA(pszPath: LPCSTR, apszSuffix: LPVOID, iArraySize: INT): LONG_PTR {
933
+ return Shlwapi.Load('PathFindSuffixArrayA')(pszPath, apszSuffix, iArraySize);
934
+ }
935
+
936
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathfindsuffixarrayw
937
+ public static PathFindSuffixArrayW(pszPath: LPCWSTR, apszSuffix: LPVOID, iArraySize: INT): LONG_PTR {
938
+ return Shlwapi.Load('PathFindSuffixArrayW')(pszPath, apszSuffix, iArraySize);
939
+ }
940
+
941
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathgetargsa
942
+ public static PathGetArgsA(pszPath: LPCSTR): LONG_PTR {
943
+ return Shlwapi.Load('PathGetArgsA')(pszPath);
944
+ }
945
+
946
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathgetargsw
947
+ public static PathGetArgsW(pszPath: LPCWSTR): LONG_PTR {
948
+ return Shlwapi.Load('PathGetArgsW')(pszPath);
949
+ }
950
+
951
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathgetchartypea
952
+ public static PathGetCharTypeA(ch: BYTE): UINT {
953
+ return Shlwapi.Load('PathGetCharTypeA')(ch);
954
+ }
955
+
956
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathgetchartypew
957
+ public static PathGetCharTypeW(ch: WCHAR): UINT {
958
+ return Shlwapi.Load('PathGetCharTypeW')(ch);
959
+ }
960
+
961
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathgetdrivenumbera
962
+ public static PathGetDriveNumberA(pszPath: LPCSTR): INT {
963
+ return Shlwapi.Load('PathGetDriveNumberA')(pszPath);
964
+ }
965
+
966
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathgetdrivenumberw
967
+ public static PathGetDriveNumberW(pszPath: LPCWSTR): INT {
968
+ return Shlwapi.Load('PathGetDriveNumberW')(pszPath);
969
+ }
970
+
971
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathiscontenttypea
972
+ public static PathIsContentTypeA(pszPath: LPCSTR, pszContentType: LPCSTR): BOOL {
973
+ return Shlwapi.Load('PathIsContentTypeA')(pszPath, pszContentType);
974
+ }
975
+
976
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathiscontenttypew
977
+ public static PathIsContentTypeW(pszPath: LPCWSTR, pszContentType: LPCWSTR): BOOL {
978
+ return Shlwapi.Load('PathIsContentTypeW')(pszPath, pszContentType);
979
+ }
980
+
981
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisdirectorya
982
+ public static PathIsDirectoryA(pszPath: LPCSTR): BOOL {
983
+ return Shlwapi.Load('PathIsDirectoryA')(pszPath);
984
+ }
985
+
986
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisdirectoryemptya
987
+ public static PathIsDirectoryEmptyA(pszPath: LPCSTR): BOOL {
988
+ return Shlwapi.Load('PathIsDirectoryEmptyA')(pszPath);
989
+ }
990
+
991
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisdirectoryemptyw
992
+ public static PathIsDirectoryEmptyW(pszPath: LPCWSTR): BOOL {
993
+ return Shlwapi.Load('PathIsDirectoryEmptyW')(pszPath);
994
+ }
995
+
996
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisdirectoryw
997
+ public static PathIsDirectoryW(pszPath: LPCWSTR): BOOL {
998
+ return Shlwapi.Load('PathIsDirectoryW')(pszPath);
999
+ }
1000
+
1001
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisfilespeca
1002
+ public static PathIsFileSpecA(pszPath: LPCSTR): BOOL {
1003
+ return Shlwapi.Load('PathIsFileSpecA')(pszPath);
1004
+ }
1005
+
1006
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisfilespecw
1007
+ public static PathIsFileSpecW(pszPath: LPCWSTR): BOOL {
1008
+ return Shlwapi.Load('PathIsFileSpecW')(pszPath);
1009
+ }
1010
+
1011
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathislfnfilespeca
1012
+ public static PathIsLFNFileSpecA(pszName: LPCSTR): BOOL {
1013
+ return Shlwapi.Load('PathIsLFNFileSpecA')(pszName);
1014
+ }
1015
+
1016
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathislfnfilespecw
1017
+ public static PathIsLFNFileSpecW(pszName: LPCWSTR): BOOL {
1018
+ return Shlwapi.Load('PathIsLFNFileSpecW')(pszName);
1019
+ }
1020
+
1021
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisnetworkpatha
1022
+ public static PathIsNetworkPathA(pszPath: LPCSTR): BOOL {
1023
+ return Shlwapi.Load('PathIsNetworkPathA')(pszPath);
1024
+ }
1025
+
1026
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisnetworkpathw
1027
+ public static PathIsNetworkPathW(pszPath: LPCWSTR): BOOL {
1028
+ return Shlwapi.Load('PathIsNetworkPathW')(pszPath);
1029
+ }
1030
+
1031
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisprefixa
1032
+ public static PathIsPrefixA(pszPrefix: LPCSTR, pszPath: LPCSTR): BOOL {
1033
+ return Shlwapi.Load('PathIsPrefixA')(pszPrefix, pszPath);
1034
+ }
1035
+
1036
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisprefixw
1037
+ public static PathIsPrefixW(pszPrefix: LPCWSTR, pszPath: LPCWSTR): BOOL {
1038
+ return Shlwapi.Load('PathIsPrefixW')(pszPrefix, pszPath);
1039
+ }
1040
+
1041
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisrelativea
1042
+ public static PathIsRelativeA(pszPath: LPCSTR): BOOL {
1043
+ return Shlwapi.Load('PathIsRelativeA')(pszPath);
1044
+ }
1045
+
1046
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisrelativew
1047
+ public static PathIsRelativeW(pszPath: LPCWSTR): BOOL {
1048
+ return Shlwapi.Load('PathIsRelativeW')(pszPath);
1049
+ }
1050
+
1051
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisroota
1052
+ public static PathIsRootA(pszPath: LPCSTR): BOOL {
1053
+ return Shlwapi.Load('PathIsRootA')(pszPath);
1054
+ }
1055
+
1056
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisrootw
1057
+ public static PathIsRootW(pszPath: LPCWSTR): BOOL {
1058
+ return Shlwapi.Load('PathIsRootW')(pszPath);
1059
+ }
1060
+
1061
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathissameroota
1062
+ public static PathIsSameRootA(pszPath1: LPCSTR, pszPath2: LPCSTR): BOOL {
1063
+ return Shlwapi.Load('PathIsSameRootA')(pszPath1, pszPath2);
1064
+ }
1065
+
1066
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathissamerootw
1067
+ public static PathIsSameRootW(pszPath1: LPCWSTR, pszPath2: LPCWSTR): BOOL {
1068
+ return Shlwapi.Load('PathIsSameRootW')(pszPath1, pszPath2);
1069
+ }
1070
+
1071
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathissystemfoldera
1072
+ public static PathIsSystemFolderA(pszPath: LPCSTR, dwAttrb: DWORD): BOOL {
1073
+ return Shlwapi.Load('PathIsSystemFolderA')(pszPath, dwAttrb);
1074
+ }
1075
+
1076
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathissystemfolderw
1077
+ public static PathIsSystemFolderW(pszPath: LPCWSTR, dwAttrb: DWORD): BOOL {
1078
+ return Shlwapi.Load('PathIsSystemFolderW')(pszPath, dwAttrb);
1079
+ }
1080
+
1081
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisunca
1082
+ public static PathIsUNCA(pszPath: LPCSTR): BOOL {
1083
+ return Shlwapi.Load('PathIsUNCA')(pszPath);
1084
+ }
1085
+
1086
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisuncservera
1087
+ public static PathIsUNCServerA(pszPath: LPCSTR): BOOL {
1088
+ return Shlwapi.Load('PathIsUNCServerA')(pszPath);
1089
+ }
1090
+
1091
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisuncserversharea
1092
+ public static PathIsUNCServerShareA(pszPath: LPCSTR): BOOL {
1093
+ return Shlwapi.Load('PathIsUNCServerShareA')(pszPath);
1094
+ }
1095
+
1096
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisuncserversharew
1097
+ public static PathIsUNCServerShareW(pszPath: LPCWSTR): BOOL {
1098
+ return Shlwapi.Load('PathIsUNCServerShareW')(pszPath);
1099
+ }
1100
+
1101
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisuncserverw
1102
+ public static PathIsUNCServerW(pszPath: LPCWSTR): BOOL {
1103
+ return Shlwapi.Load('PathIsUNCServerW')(pszPath);
1104
+ }
1105
+
1106
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisuncw
1107
+ public static PathIsUNCW(pszPath: LPCWSTR): BOOL {
1108
+ return Shlwapi.Load('PathIsUNCW')(pszPath);
1109
+ }
1110
+
1111
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisurla
1112
+ public static PathIsURLA(pszPath: LPCSTR): BOOL {
1113
+ return Shlwapi.Load('PathIsURLA')(pszPath);
1114
+ }
1115
+
1116
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathisurlw
1117
+ public static PathIsURLW(pszPath: LPCWSTR): BOOL {
1118
+ return Shlwapi.Load('PathIsURLW')(pszPath);
1119
+ }
1120
+
1121
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathmakeprettya
1122
+ public static PathMakePrettyA(pszPath: LPSTR): BOOL {
1123
+ return Shlwapi.Load('PathMakePrettyA')(pszPath);
1124
+ }
1125
+
1126
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathmakeprettyw
1127
+ public static PathMakePrettyW(pszPath: LPWSTR): BOOL {
1128
+ return Shlwapi.Load('PathMakePrettyW')(pszPath);
1129
+ }
1130
+
1131
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathmakesystemfoldera
1132
+ public static PathMakeSystemFolderA(pszPath: LPCSTR): BOOL {
1133
+ return Shlwapi.Load('PathMakeSystemFolderA')(pszPath);
1134
+ }
1135
+
1136
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathmakesystemfolderw
1137
+ public static PathMakeSystemFolderW(pszPath: LPCWSTR): BOOL {
1138
+ return Shlwapi.Load('PathMakeSystemFolderW')(pszPath);
1139
+ }
1140
+
1141
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathmatchspeca
1142
+ public static PathMatchSpecA(pszFile: LPCSTR, pszSpec: LPCSTR): BOOL {
1143
+ return Shlwapi.Load('PathMatchSpecA')(pszFile, pszSpec);
1144
+ }
1145
+
1146
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathmatchspecexa
1147
+ public static PathMatchSpecExA(pszFile: LPCSTR, pszSpec: LPCSTR, dwFlags: DWORD): HRESULT {
1148
+ return Shlwapi.Load('PathMatchSpecExA')(pszFile, pszSpec, dwFlags);
1149
+ }
1150
+
1151
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathmatchspecexw
1152
+ public static PathMatchSpecExW(pszFile: LPCWSTR, pszSpec: LPCWSTR, dwFlags: DWORD): HRESULT {
1153
+ return Shlwapi.Load('PathMatchSpecExW')(pszFile, pszSpec, dwFlags);
1154
+ }
1155
+
1156
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathmatchspecw
1157
+ public static PathMatchSpecW(pszFile: LPCWSTR, pszSpec: LPCWSTR): BOOL {
1158
+ return Shlwapi.Load('PathMatchSpecW')(pszFile, pszSpec);
1159
+ }
1160
+
1161
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathparseiconlocationa
1162
+ public static PathParseIconLocationA(pszIconFile: LPSTR): INT {
1163
+ return Shlwapi.Load('PathParseIconLocationA')(pszIconFile);
1164
+ }
1165
+
1166
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathparseiconlocationw
1167
+ public static PathParseIconLocationW(pszIconFile: LPWSTR): INT {
1168
+ return Shlwapi.Load('PathParseIconLocationW')(pszIconFile);
1169
+ }
1170
+
1171
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathquotespacesa
1172
+ public static PathQuoteSpacesA(lpsz: LPSTR): BOOL {
1173
+ return Shlwapi.Load('PathQuoteSpacesA')(lpsz);
1174
+ }
1175
+
1176
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathquotespacesw
1177
+ public static PathQuoteSpacesW(lpsz: LPWSTR): BOOL {
1178
+ return Shlwapi.Load('PathQuoteSpacesW')(lpsz);
1179
+ }
1180
+
1181
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathrelativepathtoa
1182
+ public static PathRelativePathToA(pszPath: LPSTR, pszFrom: LPCSTR, dwAttrFrom: DWORD, pszTo: LPCSTR, dwAttrTo: DWORD): BOOL {
1183
+ return Shlwapi.Load('PathRelativePathToA')(pszPath, pszFrom, dwAttrFrom, pszTo, dwAttrTo);
1184
+ }
1185
+
1186
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathrelativepathtow
1187
+ public static PathRelativePathToW(pszPath: LPWSTR, pszFrom: LPCWSTR, dwAttrFrom: DWORD, pszTo: LPCWSTR, dwAttrTo: DWORD): BOOL {
1188
+ return Shlwapi.Load('PathRelativePathToW')(pszPath, pszFrom, dwAttrFrom, pszTo, dwAttrTo);
1189
+ }
1190
+
1191
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathremoveargsa
1192
+ public static PathRemoveArgsA(pszPath: LPSTR): VOID {
1193
+ return Shlwapi.Load('PathRemoveArgsA')(pszPath);
1194
+ }
1195
+
1196
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathremoveargsw
1197
+ public static PathRemoveArgsW(pszPath: LPWSTR): VOID {
1198
+ return Shlwapi.Load('PathRemoveArgsW')(pszPath);
1199
+ }
1200
+
1201
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathremovebackslasha
1202
+ public static PathRemoveBackslashA(pszPath: LPSTR): LONG_PTR {
1203
+ return Shlwapi.Load('PathRemoveBackslashA')(pszPath);
1204
+ }
1205
+
1206
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathremovebackslashw
1207
+ public static PathRemoveBackslashW(pszPath: LPWSTR): LONG_PTR {
1208
+ return Shlwapi.Load('PathRemoveBackslashW')(pszPath);
1209
+ }
1210
+
1211
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathremoveblanksa
1212
+ public static PathRemoveBlanksA(pszPath: LPSTR): VOID {
1213
+ return Shlwapi.Load('PathRemoveBlanksA')(pszPath);
1214
+ }
1215
+
1216
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathremoveblanksw
1217
+ public static PathRemoveBlanksW(pszPath: LPWSTR): VOID {
1218
+ return Shlwapi.Load('PathRemoveBlanksW')(pszPath);
1219
+ }
1220
+
1221
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathremoveextensiona
1222
+ public static PathRemoveExtensionA(pszPath: LPSTR): VOID {
1223
+ return Shlwapi.Load('PathRemoveExtensionA')(pszPath);
1224
+ }
1225
+
1226
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathremoveextensionw
1227
+ public static PathRemoveExtensionW(pszPath: LPWSTR): VOID {
1228
+ return Shlwapi.Load('PathRemoveExtensionW')(pszPath);
1229
+ }
1230
+
1231
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathremovefilespeca
1232
+ public static PathRemoveFileSpecA(pszPath: LPSTR): BOOL {
1233
+ return Shlwapi.Load('PathRemoveFileSpecA')(pszPath);
1234
+ }
1235
+
1236
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathremovefilespecw
1237
+ public static PathRemoveFileSpecW(pszPath: LPWSTR): BOOL {
1238
+ return Shlwapi.Load('PathRemoveFileSpecW')(pszPath);
1239
+ }
1240
+
1241
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathrenameextensiona
1242
+ public static PathRenameExtensionA(pszPath: LPSTR, pszExt: LPCSTR): BOOL {
1243
+ return Shlwapi.Load('PathRenameExtensionA')(pszPath, pszExt);
1244
+ }
1245
+
1246
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathrenameextensionw
1247
+ public static PathRenameExtensionW(pszPath: LPWSTR, pszExt: LPCWSTR): BOOL {
1248
+ return Shlwapi.Load('PathRenameExtensionW')(pszPath, pszExt);
1249
+ }
1250
+
1251
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathsearchandqualifya
1252
+ public static PathSearchAndQualifyA(pszPath: LPCSTR, pszBuf: LPSTR, cchBuf: UINT): BOOL {
1253
+ return Shlwapi.Load('PathSearchAndQualifyA')(pszPath, pszBuf, cchBuf);
1254
+ }
1255
+
1256
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathsearchandqualifyw
1257
+ public static PathSearchAndQualifyW(pszPath: LPCWSTR, pszBuf: LPWSTR, cchBuf: UINT): BOOL {
1258
+ return Shlwapi.Load('PathSearchAndQualifyW')(pszPath, pszBuf, cchBuf);
1259
+ }
1260
+
1261
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathsetdlgitempatha
1262
+ public static PathSetDlgItemPathA(hDlg: HWND, id: INT, pszPath: LPCSTR): VOID {
1263
+ return Shlwapi.Load('PathSetDlgItemPathA')(hDlg, id, pszPath);
1264
+ }
1265
+
1266
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathsetdlgitempathw
1267
+ public static PathSetDlgItemPathW(hDlg: HWND, id: INT, pszPath: LPCWSTR): VOID {
1268
+ return Shlwapi.Load('PathSetDlgItemPathW')(hDlg, id, pszPath);
1269
+ }
1270
+
1271
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathskiproota
1272
+ public static PathSkipRootA(pszPath: LPCSTR): LONG_PTR {
1273
+ return Shlwapi.Load('PathSkipRootA')(pszPath);
1274
+ }
1275
+
1276
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathskiprootw
1277
+ public static PathSkipRootW(pszPath: LPCWSTR): LONG_PTR {
1278
+ return Shlwapi.Load('PathSkipRootW')(pszPath);
1279
+ }
1280
+
1281
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathstrippatha
1282
+ public static PathStripPathA(pszPath: LPSTR): VOID {
1283
+ return Shlwapi.Load('PathStripPathA')(pszPath);
1284
+ }
1285
+
1286
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathstrippathw
1287
+ public static PathStripPathW(pszPath: LPWSTR): VOID {
1288
+ return Shlwapi.Load('PathStripPathW')(pszPath);
1289
+ }
1290
+
1291
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathstriptoroota
1292
+ public static PathStripToRootA(pszPath: LPSTR): BOOL {
1293
+ return Shlwapi.Load('PathStripToRootA')(pszPath);
1294
+ }
1295
+
1296
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathstriptorootw
1297
+ public static PathStripToRootW(pszPath: LPWSTR): BOOL {
1298
+ return Shlwapi.Load('PathStripToRootW')(pszPath);
1299
+ }
1300
+
1301
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathunexpandenvstringsa
1302
+ public static PathUnExpandEnvStringsA(pszPath: LPCSTR, pszBuf: LPSTR, cchBuf: UINT): BOOL {
1303
+ return Shlwapi.Load('PathUnExpandEnvStringsA')(pszPath, pszBuf, cchBuf);
1304
+ }
1305
+
1306
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathunexpandenvstringsw
1307
+ public static PathUnExpandEnvStringsW(pszPath: LPCWSTR, pszBuf: LPWSTR, cchBuf: UINT): BOOL {
1308
+ return Shlwapi.Load('PathUnExpandEnvStringsW')(pszPath, pszBuf, cchBuf);
1309
+ }
1310
+
1311
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathundecoratea
1312
+ public static PathUndecorateA(pszPath: LPSTR): VOID {
1313
+ return Shlwapi.Load('PathUndecorateA')(pszPath);
1314
+ }
1315
+
1316
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathundecoratew
1317
+ public static PathUndecorateW(pszPath: LPWSTR): VOID {
1318
+ return Shlwapi.Load('PathUndecorateW')(pszPath);
1319
+ }
1320
+
1321
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathunmakesystemfoldera
1322
+ public static PathUnmakeSystemFolderA(pszPath: LPCSTR): BOOL {
1323
+ return Shlwapi.Load('PathUnmakeSystemFolderA')(pszPath);
1324
+ }
1325
+
1326
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathunmakesystemfolderw
1327
+ public static PathUnmakeSystemFolderW(pszPath: LPCWSTR): BOOL {
1328
+ return Shlwapi.Load('PathUnmakeSystemFolderW')(pszPath);
1329
+ }
1330
+
1331
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathunquotespacesa
1332
+ public static PathUnquoteSpacesA(lpsz: LPSTR): BOOL {
1333
+ return Shlwapi.Load('PathUnquoteSpacesA')(lpsz);
1334
+ }
1335
+
1336
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-pathunquotespacesw
1337
+ public static PathUnquoteSpacesW(lpsz: LPWSTR): BOOL {
1338
+ return Shlwapi.Load('PathUnquoteSpacesW')(lpsz);
1339
+ }
1340
+
1341
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-qisearch
1342
+ public static QISearch(that: HANDLE, pqit: LPVOID, riid: REFIID, ppv: LPVOID): HRESULT {
1343
+ return Shlwapi.Load('QISearch')(that, pqit, riid, ppv);
1344
+ }
1345
+
1346
+ public static SHAllocShared(pvData: LPVOID, dwSize: DWORD, dwProcessId: DWORD): HANDLE {
1347
+ return Shlwapi.Load('SHAllocShared')(pvData, dwSize, dwProcessId);
1348
+ }
1349
+
1350
+ public static SHAnsiToAnsi(pszSrc: LPCSTR, pszDst: LPSTR, cchBuf: INT): INT {
1351
+ return Shlwapi.Load('SHAnsiToAnsi')(pszSrc, pszDst, cchBuf);
1352
+ }
1353
+
1354
+ public static SHAnsiToUnicode(pszSrc: LPCSTR, pwszDst: LPWSTR, cwchBuf: INT): INT {
1355
+ return Shlwapi.Load('SHAnsiToUnicode')(pszSrc, pwszDst, cwchBuf);
1356
+ }
1357
+
1358
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shautocomplete
1359
+ public static SHAutoComplete(hwndEdit: HWND, dwFlags: DWORD): HRESULT {
1360
+ return Shlwapi.Load('SHAutoComplete')(hwndEdit, dwFlags);
1361
+ }
1362
+
1363
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shcopykeya
1364
+ public static SHCopyKeyA(hkeySrc: HKEY, pszSrcSubKey: LPCSTR, hkeyDest: HKEY, fReserved: DWORD): LONG {
1365
+ return Shlwapi.Load('SHCopyKeyA')(hkeySrc, pszSrcSubKey, hkeyDest, fReserved);
1366
+ }
1367
+
1368
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shcopykeyw
1369
+ public static SHCopyKeyW(hkeySrc: HKEY, pszSrcSubKey: LPCWSTR, hkeyDest: HKEY, fReserved: DWORD): LONG {
1370
+ return Shlwapi.Load('SHCopyKeyW')(hkeySrc, pszSrcSubKey, hkeyDest, fReserved);
1371
+ }
1372
+
1373
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shcreatememstream
1374
+ public static SHCreateMemStream(pInit: LPBYTE, cbInit: UINT): LONG_PTR {
1375
+ return Shlwapi.Load('SHCreateMemStream')(pInit, cbInit);
1376
+ }
1377
+
1378
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shcreateshellpalette
1379
+ public static SHCreateShellPalette(hdc: HDC): HPALETTE {
1380
+ return Shlwapi.Load('SHCreateShellPalette')(hdc);
1381
+ }
1382
+
1383
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shcreatestreamonfilea
1384
+ public static SHCreateStreamOnFileA(pszFile: LPCSTR, grfMode: DWORD, ppstm: LPVOID): HRESULT {
1385
+ return Shlwapi.Load('SHCreateStreamOnFileA')(pszFile, grfMode, ppstm);
1386
+ }
1387
+
1388
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shcreatestreamonfileex
1389
+ public static SHCreateStreamOnFileEx(pszFile: LPCWSTR, grfMode: DWORD, dwAttributes: DWORD, fCreate: BOOL, pstmTemplate: HANDLE, ppstm: LPVOID): HRESULT {
1390
+ return Shlwapi.Load('SHCreateStreamOnFileEx')(pszFile, grfMode, dwAttributes, fCreate, pstmTemplate, ppstm);
1391
+ }
1392
+
1393
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shcreatestreamonfilew
1394
+ public static SHCreateStreamOnFileW(pszFile: LPCWSTR, grfMode: DWORD, ppstm: LPVOID): HRESULT {
1395
+ return Shlwapi.Load('SHCreateStreamOnFileW')(pszFile, grfMode, ppstm);
1396
+ }
1397
+
1398
+ public static SHCreateStreamWrapper(pStream: HANDLE, pStreamWrapper: LPVOID, ppStreamResult: LPVOID): HRESULT {
1399
+ return Shlwapi.Load('SHCreateStreamWrapper')(pStream, pStreamWrapper, ppStreamResult);
1400
+ }
1401
+
1402
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shcreatethread
1403
+ public static SHCreateThread(pfnThreadProc: LPTHREAD_START_ROUTINE, pData: LPVOID, dwFlags: DWORD, pfnCallback: LPTHREAD_START_ROUTINE): BOOL {
1404
+ return Shlwapi.Load('SHCreateThread')(pfnThreadProc, pData, dwFlags, pfnCallback);
1405
+ }
1406
+
1407
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shcreatethreadref
1408
+ public static SHCreateThreadRef(pcRef: LPVOID, ppunk: LPVOID): HRESULT {
1409
+ return Shlwapi.Load('SHCreateThreadRef')(pcRef, ppunk);
1410
+ }
1411
+
1412
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shcreatethreadwithhandle
1413
+ public static SHCreateThreadWithHandle(pfnThreadProc: LPTHREAD_START_ROUTINE, pData: LPVOID, dwFlags: DWORD, pfnCallback: LPTHREAD_START_ROUTINE, pHandle: LPVOID): BOOL {
1414
+ return Shlwapi.Load('SHCreateThreadWithHandle')(pfnThreadProc, pData, dwFlags, pfnCallback, pHandle);
1415
+ }
1416
+
1417
+ public static SHCreateWorkerWindowW(pfnWndProc: WNDPROC, hwndParent: HWND, dwExStyle: DWORD, dwFlags: DWORD, hMenu: HMENU, lParam: LONG_PTR): HWND {
1418
+ return Shlwapi.Load('SHCreateWorkerWindowW')(pfnWndProc, hwndParent, dwExStyle, dwFlags, hMenu, lParam);
1419
+ }
1420
+
1421
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shdeleteemptykeya
1422
+ public static SHDeleteEmptyKeyA(hkey: HKEY, pszSubKey: LPCSTR): LONG {
1423
+ return Shlwapi.Load('SHDeleteEmptyKeyA')(hkey, pszSubKey);
1424
+ }
1425
+
1426
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shdeleteemptykeyw
1427
+ public static SHDeleteEmptyKeyW(hkey: HKEY, pszSubKey: LPCWSTR): LONG {
1428
+ return Shlwapi.Load('SHDeleteEmptyKeyW')(hkey, pszSubKey);
1429
+ }
1430
+
1431
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shdeletekeya
1432
+ public static SHDeleteKeyA(hkey: HKEY, pszSubKey: LPCSTR): LONG {
1433
+ return Shlwapi.Load('SHDeleteKeyA')(hkey, pszSubKey);
1434
+ }
1435
+
1436
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shdeletekeyw
1437
+ public static SHDeleteKeyW(hkey: HKEY, pszSubKey: LPCWSTR): LONG {
1438
+ return Shlwapi.Load('SHDeleteKeyW')(hkey, pszSubKey);
1439
+ }
1440
+
1441
+ public static SHDeleteOrphanKeyA(hkey: HKEY, pszSubKey: LPCSTR): LONG {
1442
+ return Shlwapi.Load('SHDeleteOrphanKeyA')(hkey, pszSubKey);
1443
+ }
1444
+
1445
+ public static SHDeleteOrphanKeyW(hkey: HKEY, pszSubKey: LPCWSTR): LONG {
1446
+ return Shlwapi.Load('SHDeleteOrphanKeyW')(hkey, pszSubKey);
1447
+ }
1448
+
1449
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shdeletevaluea
1450
+ public static SHDeleteValueA(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR): LONG {
1451
+ return Shlwapi.Load('SHDeleteValueA')(hkey, pszSubKey, pszValue);
1452
+ }
1453
+
1454
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shdeletevaluew
1455
+ public static SHDeleteValueW(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR): LONG {
1456
+ return Shlwapi.Load('SHDeleteValueW')(hkey, pszSubKey, pszValue);
1457
+ }
1458
+
1459
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shenumkeyexa
1460
+ public static SHEnumKeyExA(hkey: HKEY, dwIndex: DWORD, pszName: LPSTR, pcchName: LPDWORD): LONG {
1461
+ return Shlwapi.Load('SHEnumKeyExA')(hkey, dwIndex, pszName, pcchName);
1462
+ }
1463
+
1464
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shenumkeyexw
1465
+ public static SHEnumKeyExW(hkey: HKEY, dwIndex: DWORD, pszName: LPWSTR, pcchName: LPDWORD): LONG {
1466
+ return Shlwapi.Load('SHEnumKeyExW')(hkey, dwIndex, pszName, pcchName);
1467
+ }
1468
+
1469
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shenumvaluea
1470
+ public static SHEnumValueA(hkey: HKEY, dwIndex: DWORD, pszValueName: LPSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD): LONG {
1471
+ return Shlwapi.Load('SHEnumValueA')(hkey, dwIndex, pszValueName, pcchValueName, pdwType, pvData, pcbData);
1472
+ }
1473
+
1474
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shenumvaluew
1475
+ public static SHEnumValueW(hkey: HKEY, dwIndex: DWORD, pszValueName: LPWSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD): LONG {
1476
+ return Shlwapi.Load('SHEnumValueW')(hkey, dwIndex, pszValueName, pcchValueName, pdwType, pvData, pcbData);
1477
+ }
1478
+
1479
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shformatdatetimea
1480
+ public static SHFormatDateTimeA(pft: LPVOID, pdwFlags: LPDWORD, pszBuf: LPSTR, cchBuf: UINT): INT {
1481
+ return Shlwapi.Load('SHFormatDateTimeA')(pft, pdwFlags, pszBuf, cchBuf);
1482
+ }
1483
+
1484
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shformatdatetimew
1485
+ public static SHFormatDateTimeW(pft: LPVOID, pdwFlags: LPDWORD, pszBuf: LPWSTR, cchBuf: UINT): INT {
1486
+ return Shlwapi.Load('SHFormatDateTimeW')(pft, pdwFlags, pszBuf, cchBuf);
1487
+ }
1488
+
1489
+ public static SHFreeShared(hData: HANDLE, dwProcessId: DWORD): BOOL {
1490
+ return Shlwapi.Load('SHFreeShared')(hData, dwProcessId);
1491
+ }
1492
+
1493
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shgetinversecmap
1494
+ public static SHGetInverseCMAP(pbMap: LPBYTE, cbMap: ULONG): HRESULT {
1495
+ return Shlwapi.Load('SHGetInverseCMAP')(pbMap, cbMap);
1496
+ }
1497
+
1498
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shgetthreadref
1499
+ public static SHGetThreadRef(ppunk: LPVOID): HRESULT {
1500
+ return Shlwapi.Load('SHGetThreadRef')(ppunk);
1501
+ }
1502
+
1503
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shgetvaluea
1504
+ public static SHGetValueA(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD): LONG {
1505
+ return Shlwapi.Load('SHGetValueA')(hkey, pszSubKey, pszValue, pdwType, pvData, pcbData);
1506
+ }
1507
+
1508
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shgetvaluew
1509
+ public static SHGetValueW(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD): LONG {
1510
+ return Shlwapi.Load('SHGetValueW')(hkey, pszSubKey, pszValue, pdwType, pvData, pcbData);
1511
+ }
1512
+
1513
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shgetviewstatepropertybag
1514
+ public static SHGetViewStatePropertyBag(pidl: PIDLIST_ABSOLUTE, pszBagName: PCWSTR, dwFlags: DWORD, riid: REFIID, ppv: LPVOID): HRESULT {
1515
+ return Shlwapi.Load('SHGetViewStatePropertyBag')(pidl, pszBagName, dwFlags, riid, ppv);
1516
+ }
1517
+
1518
+ public static ShellMessageBoxA(hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCSTR, lpcTitle: LPCSTR, fuStyle: UINT): INT {
1519
+ return Shlwapi.Load('ShellMessageBoxA')(hAppInst, hWnd, lpcText, lpcTitle, fuStyle);
1520
+ }
1521
+
1522
+ public static ShellMessageBoxInternal(hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCWSTR, lpcTitle: LPCWSTR, fuStyle: UINT, bUnicode: BOOL): INT {
1523
+ return Shlwapi.Load('ShellMessageBoxInternal')(hAppInst, hWnd, lpcText, lpcTitle, fuStyle, bUnicode);
1524
+ }
1525
+
1526
+ public static ShellMessageBoxW(hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCWSTR, lpcTitle: LPCWSTR, fuStyle: UINT): INT {
1527
+ return Shlwapi.Load('ShellMessageBoxW')(hAppInst, hWnd, lpcText, lpcTitle, fuStyle);
1528
+ }
1529
+
1530
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shischildorself
1531
+ public static SHIsChildOrSelf(hwndParent: HWND, hwnd: HWND): HRESULT {
1532
+ return Shlwapi.Load('SHIsChildOrSelf')(hwndParent, hwnd);
1533
+ }
1534
+
1535
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shislowmemorymachine
1536
+ public static SHIsLowMemoryMachine(dwType: DWORD): BOOL {
1537
+ return Shlwapi.Load('SHIsLowMemoryMachine')(dwType);
1538
+ }
1539
+
1540
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shloadindirectstring
1541
+ public static SHLoadIndirectString(pszSource: PCWSTR, pszOutBuf: PWSTR, cchOutBuf: UINT, ppvReserved: LPVOID): HRESULT {
1542
+ return Shlwapi.Load('SHLoadIndirectString')(pszSource, pszOutBuf, cchOutBuf, ppvReserved);
1543
+ }
1544
+
1545
+ public static SHLockShared(hData: HANDLE, dwProcessId: DWORD): LONG_PTR {
1546
+ return Shlwapi.Load('SHLockShared')(hData, dwProcessId);
1547
+ }
1548
+
1549
+ public static SHMessageBoxCheckA(hwnd: HWND, pszText: LPCSTR, pszTitle: LPCSTR, uType: UINT, iDefault: INT, pszRegVal: LPCSTR): INT {
1550
+ return Shlwapi.Load('SHMessageBoxCheckA')(hwnd, pszText, pszTitle, uType, iDefault, pszRegVal);
1551
+ }
1552
+
1553
+ public static SHMessageBoxCheckW(hwnd: HWND, pszText: LPCWSTR, pszTitle: LPCWSTR, uType: UINT, iDefault: INT, pszRegVal: LPCWSTR): INT {
1554
+ return Shlwapi.Load('SHMessageBoxCheckW')(hwnd, pszText, pszTitle, uType, iDefault, pszRegVal);
1555
+ }
1556
+
1557
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shopenregstream2a
1558
+ public static SHOpenRegStream2A(hkey: HKEY, pszSubkey: LPCSTR, pszValue: LPCSTR, grfMode: DWORD): LONG_PTR {
1559
+ return Shlwapi.Load('SHOpenRegStream2A')(hkey, pszSubkey, pszValue, grfMode);
1560
+ }
1561
+
1562
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shopenregstream2w
1563
+ public static SHOpenRegStream2W(hkey: HKEY, pszSubkey: LPCWSTR, pszValue: LPCWSTR, grfMode: DWORD): LONG_PTR {
1564
+ return Shlwapi.Load('SHOpenRegStream2W')(hkey, pszSubkey, pszValue, grfMode);
1565
+ }
1566
+
1567
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shopenregstreama
1568
+ public static SHOpenRegStreamA(hkey: HKEY, pszSubkey: LPCSTR, pszValue: LPCSTR, grfMode: DWORD): LONG_PTR {
1569
+ return Shlwapi.Load('SHOpenRegStreamA')(hkey, pszSubkey, pszValue, grfMode);
1570
+ }
1571
+
1572
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shopenregstreamw
1573
+ public static SHOpenRegStreamW(hkey: HKEY, pszSubkey: LPCWSTR, pszValue: LPCWSTR, grfMode: DWORD): LONG_PTR {
1574
+ return Shlwapi.Load('SHOpenRegStreamW')(hkey, pszSubkey, pszValue, grfMode);
1575
+ }
1576
+
1577
+ public static SHPackDispParamsV(pdparams: LPVOID, rgvt: LPVOID, cArgs: UINT, argList: LPVOID): HRESULT {
1578
+ return Shlwapi.Load('SHPackDispParamsV')(pdparams, rgvt, cArgs, argList);
1579
+ }
1580
+
1581
+ public static SHPinDllOfCLSID(pclsid: REFIID): HRESULT {
1582
+ return Shlwapi.Load('SHPinDllOfCLSID')(pclsid);
1583
+ }
1584
+
1585
+ public static SHPropertyBag_ReadStrAlloc(ppb: HANDLE, pszPropName: PCWSTR, ppszOut: LPVOID): HRESULT {
1586
+ return Shlwapi.Load('SHPropertyBag_ReadStrAlloc')(ppb, pszPropName, ppszOut);
1587
+ }
1588
+
1589
+ public static SHPropertyBag_WriteBSTR(ppb: HANDLE, pszPropName: PCWSTR, bstrValue: BSTR): HRESULT {
1590
+ return Shlwapi.Load('SHPropertyBag_WriteBSTR')(ppb, pszPropName, bstrValue);
1591
+ }
1592
+
1593
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shqueryinfokeya
1594
+ public static SHQueryInfoKeyA(hkey: HKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD): LONG {
1595
+ return Shlwapi.Load('SHQueryInfoKeyA')(hkey, pcSubKeys, pcchMaxSubKeyLen, pcValues, pcchMaxValueNameLen);
1596
+ }
1597
+
1598
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shqueryinfokeyw
1599
+ public static SHQueryInfoKeyW(hkey: HKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD): LONG {
1600
+ return Shlwapi.Load('SHQueryInfoKeyW')(hkey, pcSubKeys, pcchMaxSubKeyLen, pcValues, pcchMaxValueNameLen);
1601
+ }
1602
+
1603
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shqueryvalueexa
1604
+ public static SHQueryValueExA(hkey: HKEY, pszValue: LPCSTR, pdwReserved: LPDWORD, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD): LONG {
1605
+ return Shlwapi.Load('SHQueryValueExA')(hkey, pszValue, pdwReserved, pdwType, pvData, pcbData);
1606
+ }
1607
+
1608
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shqueryvalueexw
1609
+ public static SHQueryValueExW(hkey: HKEY, pszValue: LPCWSTR, pdwReserved: LPDWORD, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD): LONG {
1610
+ return Shlwapi.Load('SHQueryValueExW')(hkey, pszValue, pdwReserved, pdwType, pvData, pcbData);
1611
+ }
1612
+
1613
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregcloseuskey
1614
+ public static SHRegCloseUSKey(hUSKey: HUSKEY): LONG {
1615
+ return Shlwapi.Load('SHRegCloseUSKey')(hUSKey);
1616
+ }
1617
+
1618
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregcreateuskeya
1619
+ public static SHRegCreateUSKeyA(pszPath: LPCSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, dwFlags: DWORD): LONG {
1620
+ return Shlwapi.Load('SHRegCreateUSKeyA')(pszPath, samDesired, hRelativeUSKey, phNewUSKey, dwFlags);
1621
+ }
1622
+
1623
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregcreateuskeyw
1624
+ public static SHRegCreateUSKeyW(pszPath: LPCWSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, dwFlags: DWORD): LONG {
1625
+ return Shlwapi.Load('SHRegCreateUSKeyW')(pszPath, samDesired, hRelativeUSKey, phNewUSKey, dwFlags);
1626
+ }
1627
+
1628
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregdeleteemptyuskeya
1629
+ public static SHRegDeleteEmptyUSKeyA(hUSKey: HUSKEY, pszSubKey: LPCSTR, delRegFlags: DWORD): LONG {
1630
+ return Shlwapi.Load('SHRegDeleteEmptyUSKeyA')(hUSKey, pszSubKey, delRegFlags);
1631
+ }
1632
+
1633
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregdeleteemptyuskeyw
1634
+ public static SHRegDeleteEmptyUSKeyW(hUSKey: HUSKEY, pszSubKey: LPCWSTR, delRegFlags: DWORD): LONG {
1635
+ return Shlwapi.Load('SHRegDeleteEmptyUSKeyW')(hUSKey, pszSubKey, delRegFlags);
1636
+ }
1637
+
1638
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregdeleteusvaluea
1639
+ public static SHRegDeleteUSValueA(hUSKey: HUSKEY, pszValue: LPCSTR, delRegFlags: DWORD): LONG {
1640
+ return Shlwapi.Load('SHRegDeleteUSValueA')(hUSKey, pszValue, delRegFlags);
1641
+ }
1642
+
1643
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregdeleteusvaluew
1644
+ public static SHRegDeleteUSValueW(hUSKey: HUSKEY, pszValue: LPCWSTR, delRegFlags: DWORD): LONG {
1645
+ return Shlwapi.Load('SHRegDeleteUSValueW')(hUSKey, pszValue, delRegFlags);
1646
+ }
1647
+
1648
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregduplicatehkey
1649
+ public static SHRegDuplicateHKey(hkey: HKEY): HKEY {
1650
+ return Shlwapi.Load('SHRegDuplicateHKey')(hkey);
1651
+ }
1652
+
1653
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregenummuskeya
1654
+ public static SHRegEnumUSKeyA(hUSKey: HUSKEY, dwIndex: DWORD, pszName: LPSTR, pcchName: LPDWORD, enumRegFlags: DWORD): LONG {
1655
+ return Shlwapi.Load('SHRegEnumUSKeyA')(hUSKey, dwIndex, pszName, pcchName, enumRegFlags);
1656
+ }
1657
+
1658
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregenummuskeyw
1659
+ public static SHRegEnumUSKeyW(hUSKey: HUSKEY, dwIndex: DWORD, pszName: LPWSTR, pcchName: LPDWORD, enumRegFlags: DWORD): LONG {
1660
+ return Shlwapi.Load('SHRegEnumUSKeyW')(hUSKey, dwIndex, pszName, pcchName, enumRegFlags);
1661
+ }
1662
+
1663
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregenumvaluea
1664
+ public static SHRegEnumUSValueA(hUSKey: HUSKEY, dwIndex: DWORD, pszValueName: LPSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD, enumRegFlags: DWORD): LONG {
1665
+ return Shlwapi.Load('SHRegEnumUSValueA')(hUSKey, dwIndex, pszValueName, pcchValueName, pdwType, pvData, pcbData, enumRegFlags);
1666
+ }
1667
+
1668
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregenumvaluew
1669
+ public static SHRegEnumUSValueW(hUSKey: HUSKEY, dwIndex: DWORD, pszValueName: LPWSTR, pcchValueName: LPDWORD, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD, enumRegFlags: DWORD): LONG {
1670
+ return Shlwapi.Load('SHRegEnumUSValueW')(hUSKey, dwIndex, pszValueName, pcchValueName, pdwType, pvData, pcbData, enumRegFlags);
1671
+ }
1672
+
1673
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreggetboolusvaluea
1674
+ public static SHRegGetBoolUSValueA(pszSubKey: LPCSTR, pszValue: LPCSTR, fIgnoreHKCU: BOOL, fDefault: BOOL): BOOL {
1675
+ return Shlwapi.Load('SHRegGetBoolUSValueA')(pszSubKey, pszValue, fIgnoreHKCU, fDefault);
1676
+ }
1677
+
1678
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreggetboolusvaluew
1679
+ public static SHRegGetBoolUSValueW(pszSubKey: LPCWSTR, pszValue: LPCWSTR, fIgnoreHKCU: BOOL, fDefault: BOOL): BOOL {
1680
+ return Shlwapi.Load('SHRegGetBoolUSValueW')(pszSubKey, pszValue, fIgnoreHKCU, fDefault);
1681
+ }
1682
+
1683
+ public static SHRegGetBoolValueFromHKCUHKLM(pszKey: PCWSTR, pszValue: PCWSTR, fDefault: BOOL): BOOL {
1684
+ return Shlwapi.Load('SHRegGetBoolValueFromHKCUHKLM')(pszKey, pszValue, fDefault);
1685
+ }
1686
+
1687
+ public static SHRegGetIntW(hk: HKEY, pszValue: PCWSTR, iDefault: INT): INT {
1688
+ return Shlwapi.Load('SHRegGetIntW')(hk, pszValue, iDefault);
1689
+ }
1690
+
1691
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreggetpatha
1692
+ public static SHRegGetPathA(hKey: HKEY, pcszSubKey: LPCSTR, pcszValue: LPCSTR, pszPath: LPSTR, dwFlags: DWORD): LONG {
1693
+ return Shlwapi.Load('SHRegGetPathA')(hKey, pcszSubKey, pcszValue, pszPath, dwFlags);
1694
+ }
1695
+
1696
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreggetpathw
1697
+ public static SHRegGetPathW(hKey: HKEY, pcszSubKey: LPCWSTR, pcszValue: LPCWSTR, pszPath: LPWSTR, dwFlags: DWORD): LONG {
1698
+ return Shlwapi.Load('SHRegGetPathW')(hKey, pcszSubKey, pcszValue, pszPath, dwFlags);
1699
+ }
1700
+
1701
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreggetusvaluea
1702
+ public static SHRegGetUSValueA(pszSubKey: LPCSTR, pszValue: LPCSTR, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD, fIgnoreHKCU: BOOL, pvDefaultData: LPVOID, dwDefaultDataSize: DWORD): LONG {
1703
+ return Shlwapi.Load('SHRegGetUSValueA')(pszSubKey, pszValue, pdwType, pvData, pcbData, fIgnoreHKCU, pvDefaultData, dwDefaultDataSize);
1704
+ }
1705
+
1706
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreggetusvaluew
1707
+ public static SHRegGetUSValueW(pszSubKey: LPCWSTR, pszValue: LPCWSTR, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD, fIgnoreHKCU: BOOL, pvDefaultData: LPVOID, dwDefaultDataSize: DWORD): LONG {
1708
+ return Shlwapi.Load('SHRegGetUSValueW')(pszSubKey, pszValue, pdwType, pvData, pcbData, fIgnoreHKCU, pvDefaultData, dwDefaultDataSize);
1709
+ }
1710
+
1711
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreggetvaluea
1712
+ public static SHRegGetValueA(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR, srrfFlags: DWORD, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD): LONG {
1713
+ return Shlwapi.Load('SHRegGetValueA')(hkey, pszSubKey, pszValue, srrfFlags, pdwType, pvData, pcbData);
1714
+ }
1715
+
1716
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreggetvaluefromhkcuhklm
1717
+ public static SHRegGetValueFromHKCUHKLM(pwszKey: PCWSTR, pwszValue: PCWSTR, srrfFlags: DWORD, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD): LONG {
1718
+ return Shlwapi.Load('SHRegGetValueFromHKCUHKLM')(pwszKey, pwszValue, srrfFlags, pdwType, pvData, pcbData);
1719
+ }
1720
+
1721
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreggetvaluew
1722
+ public static SHRegGetValueW(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR, srrfFlags: DWORD, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD): LONG {
1723
+ return Shlwapi.Load('SHRegGetValueW')(hkey, pszSubKey, pszValue, srrfFlags, pdwType, pvData, pcbData);
1724
+ }
1725
+
1726
+ public static SHRegisterValidateTemplate(pcszTemplate: PCWSTR, bOkToAddToGlobalTemplate: BOOL): HRESULT {
1727
+ return Shlwapi.Load('SHRegisterValidateTemplate')(pcszTemplate, bOkToAddToGlobalTemplate);
1728
+ }
1729
+
1730
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregopenuskeya
1731
+ public static SHRegOpenUSKeyA(pszPath: LPCSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, fIgnoreHKCU: BOOL): LONG {
1732
+ return Shlwapi.Load('SHRegOpenUSKeyA')(pszPath, samDesired, hRelativeUSKey, phNewUSKey, fIgnoreHKCU);
1733
+ }
1734
+
1735
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregopenuskeyw
1736
+ public static SHRegOpenUSKeyW(pszPath: LPCWSTR, samDesired: REGSAM, hRelativeUSKey: HUSKEY, phNewUSKey: PHUSKEY, fIgnoreHKCU: BOOL): LONG {
1737
+ return Shlwapi.Load('SHRegOpenUSKeyW')(pszPath, samDesired, hRelativeUSKey, phNewUSKey, fIgnoreHKCU);
1738
+ }
1739
+
1740
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregqueryinfouskeya
1741
+ public static SHRegQueryInfoUSKeyA(hUSKey: HUSKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD, enumRegFlags: DWORD): LONG {
1742
+ return Shlwapi.Load('SHRegQueryInfoUSKeyA')(hUSKey, pcSubKeys, pcchMaxSubKeyLen, pcValues, pcchMaxValueNameLen, enumRegFlags);
1743
+ }
1744
+
1745
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregqueryinfouskeyw
1746
+ public static SHRegQueryInfoUSKeyW(hUSKey: HUSKEY, pcSubKeys: LPDWORD, pcchMaxSubKeyLen: LPDWORD, pcValues: LPDWORD, pcchMaxValueNameLen: LPDWORD, enumRegFlags: DWORD): LONG {
1747
+ return Shlwapi.Load('SHRegQueryInfoUSKeyW')(hUSKey, pcSubKeys, pcchMaxSubKeyLen, pcValues, pcchMaxValueNameLen, enumRegFlags);
1748
+ }
1749
+
1750
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregqueryusvaluea
1751
+ public static SHRegQueryUSValueA(hUSKey: HUSKEY, pszValue: LPCSTR, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD, fIgnoreHKCU: BOOL, pvDefaultData: LPVOID, dwDefaultDataSize: DWORD): LONG {
1752
+ return Shlwapi.Load('SHRegQueryUSValueA')(hUSKey, pszValue, pdwType, pvData, pcbData, fIgnoreHKCU, pvDefaultData, dwDefaultDataSize);
1753
+ }
1754
+
1755
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregqueryusvaluew
1756
+ public static SHRegQueryUSValueW(hUSKey: HUSKEY, pszValue: LPCWSTR, pdwType: LPDWORD, pvData: LPVOID, pcbData: LPDWORD, fIgnoreHKCU: BOOL, pvDefaultData: LPVOID, dwDefaultDataSize: DWORD): LONG {
1757
+ return Shlwapi.Load('SHRegQueryUSValueW')(hUSKey, pszValue, pdwType, pvData, pcbData, fIgnoreHKCU, pvDefaultData, dwDefaultDataSize);
1758
+ }
1759
+
1760
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregsetpatha
1761
+ public static SHRegSetPathA(hKey: HKEY, pcszSubKey: LPCSTR, pcszValue: LPCSTR, pcszPath: LPCSTR, dwFlags: DWORD): LONG {
1762
+ return Shlwapi.Load('SHRegSetPathA')(hKey, pcszSubKey, pcszValue, pcszPath, dwFlags);
1763
+ }
1764
+
1765
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregsetpathw
1766
+ public static SHRegSetPathW(hKey: HKEY, pcszSubKey: LPCWSTR, pcszValue: LPCWSTR, pcszPath: LPCWSTR, dwFlags: DWORD): LONG {
1767
+ return Shlwapi.Load('SHRegSetPathW')(hKey, pcszSubKey, pcszValue, pcszPath, dwFlags);
1768
+ }
1769
+
1770
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregsetusvaluea
1771
+ public static SHRegSetUSValueA(pszSubKey: LPCSTR, pszValue: LPCSTR, dwType: DWORD, pvData: LPVOID, cbData: DWORD, dwFlags: DWORD): LONG {
1772
+ return Shlwapi.Load('SHRegSetUSValueA')(pszSubKey, pszValue, dwType, pvData, cbData, dwFlags);
1773
+ }
1774
+
1775
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregsetusvaluew
1776
+ public static SHRegSetUSValueW(pszSubKey: LPCWSTR, pszValue: LPCWSTR, dwType: DWORD, pvData: LPVOID, cbData: DWORD, dwFlags: DWORD): LONG {
1777
+ return Shlwapi.Load('SHRegSetUSValueW')(pszSubKey, pszValue, dwType, pvData, cbData, dwFlags);
1778
+ }
1779
+
1780
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregwriteusvaluea
1781
+ public static SHRegWriteUSValueA(hUSKey: HUSKEY, pszValue: LPCSTR, dwType: DWORD, pvData: LPVOID, cbData: DWORD, dwFlags: DWORD): LONG {
1782
+ return Shlwapi.Load('SHRegWriteUSValueA')(hUSKey, pszValue, dwType, pvData, cbData, dwFlags);
1783
+ }
1784
+
1785
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shregwriteusvaluew
1786
+ public static SHRegWriteUSValueW(hUSKey: HUSKEY, pszValue: LPCWSTR, dwType: DWORD, pvData: LPVOID, cbData: DWORD, dwFlags: DWORD): LONG {
1787
+ return Shlwapi.Load('SHRegWriteUSValueW')(hUSKey, pszValue, dwType, pvData, cbData, dwFlags);
1788
+ }
1789
+
1790
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shreleasethreadref
1791
+ public static SHReleaseThreadRef(): HRESULT {
1792
+ return Shlwapi.Load('SHReleaseThreadRef')();
1793
+ }
1794
+
1795
+ public static SHRunIndirectRegClientCommand(hwnd: HWND, pszClientType: LPCWSTR): HRESULT {
1796
+ return Shlwapi.Load('SHRunIndirectRegClientCommand')(hwnd, pszClientType);
1797
+ }
1798
+
1799
+ public static SHSendMessageBroadcastA(uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {
1800
+ return Shlwapi.Load('SHSendMessageBroadcastA')(uMsg, wParam, lParam);
1801
+ }
1802
+
1803
+ public static SHSendMessageBroadcastW(uMsg: UINT, wParam: WPARAM, lParam: LPARAM): LRESULT {
1804
+ return Shlwapi.Load('SHSendMessageBroadcastW')(uMsg, wParam, lParam);
1805
+ }
1806
+
1807
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shsetthreadref
1808
+ public static SHSetThreadRef(punk: HANDLE): HRESULT {
1809
+ return Shlwapi.Load('SHSetThreadRef')(punk);
1810
+ }
1811
+
1812
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shsetvaluea
1813
+ public static SHSetValueA(hkey: HKEY, pszSubKey: LPCSTR, pszValue: LPCSTR, dwType: DWORD, pvData: LPVOID, cbData: DWORD): LONG {
1814
+ return Shlwapi.Load('SHSetValueA')(hkey, pszSubKey, pszValue, dwType, pvData, cbData);
1815
+ }
1816
+
1817
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shsetvaluew
1818
+ public static SHSetValueW(hkey: HKEY, pszSubKey: LPCWSTR, pszValue: LPCWSTR, dwType: DWORD, pvData: LPVOID, cbData: DWORD): LONG {
1819
+ return Shlwapi.Load('SHSetValueW')(hkey, pszSubKey, pszValue, dwType, pvData, cbData);
1820
+ }
1821
+
1822
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shskipjunction
1823
+ public static SHSkipJunction(pbc: HANDLE, pclsid: LPVOID): BOOL {
1824
+ return Shlwapi.Load('SHSkipJunction')(pbc, pclsid);
1825
+ }
1826
+
1827
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shstrdupa
1828
+ public static SHStrDupA(psz: LPCSTR, ppwsz: LPVOID): HRESULT {
1829
+ return Shlwapi.Load('SHStrDupA')(psz, ppwsz);
1830
+ }
1831
+
1832
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-shstrdupw
1833
+ public static SHStrDupW(psz: LPCWSTR, ppwsz: LPVOID): HRESULT {
1834
+ return Shlwapi.Load('SHStrDupW')(psz, ppwsz);
1835
+ }
1836
+
1837
+ public static SHStripMneumonicA(pszMenu: LPSTR): CHAR {
1838
+ return Shlwapi.Load('SHStripMneumonicA')(pszMenu);
1839
+ }
1840
+
1841
+ public static SHStripMneumonicW(pszMenu: LPWSTR): WCHAR {
1842
+ return Shlwapi.Load('SHStripMneumonicW')(pszMenu);
1843
+ }
1844
+
1845
+ public static SHUnicodeToAnsi(pwszSrc: PCWSTR, pszDst: LPSTR, cchBuf: INT): INT {
1846
+ return Shlwapi.Load('SHUnicodeToAnsi')(pwszSrc, pszDst, cchBuf);
1847
+ }
1848
+
1849
+ public static SHUnicodeToAnsiCP(uiCodePage: UINT, pwszSrc: PCWSTR, pszDst: LPSTR, cchBuf: INT): INT {
1850
+ return Shlwapi.Load('SHUnicodeToAnsiCP')(uiCodePage, pwszSrc, pszDst, cchBuf);
1851
+ }
1852
+
1853
+ public static SHUnicodeToUnicode(pwszSrc: PCWSTR, pwszDst: LPWSTR, cwchBuf: INT): INT {
1854
+ return Shlwapi.Load('SHUnicodeToUnicode')(pwszSrc, pwszDst, cwchBuf);
1855
+ }
1856
+
1857
+ public static SHUnlockShared(pvData: LONG_PTR): BOOL {
1858
+ return Shlwapi.Load('SHUnlockShared')(pvData);
1859
+ }
1860
+
1861
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcatbuffa
1862
+ public static StrCatBuffA(pszDest: LPSTR, pszSrc: LPCSTR, cchDestBuffSize: INT): LONG_PTR {
1863
+ return Shlwapi.Load('StrCatBuffA')(pszDest, pszSrc, cchDestBuffSize);
1864
+ }
1865
+
1866
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcatbuffw
1867
+ public static StrCatBuffW(pszDest: LPWSTR, pszSrc: LPCWSTR, cchDestBuffSize: INT): LONG_PTR {
1868
+ return Shlwapi.Load('StrCatBuffW')(pszDest, pszSrc, cchDestBuffSize);
1869
+ }
1870
+
1871
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcatchainw
1872
+ public static StrCatChainW(pszDst: LPWSTR, cchDst: DWORD, ichAt: DWORD, pszSrc: LPCWSTR): DWORD {
1873
+ return Shlwapi.Load('StrCatChainW')(pszDst, cchDst, ichAt, pszSrc);
1874
+ }
1875
+
1876
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcatw
1877
+ public static StrCatW(psz1: LPWSTR, psz2: LPCWSTR): LONG_PTR {
1878
+ return Shlwapi.Load('StrCatW')(psz1, psz2);
1879
+ }
1880
+
1881
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strchra
1882
+ public static StrChrA(pszStart: LPCSTR, wMatch: WORD): LONG_PTR {
1883
+ return Shlwapi.Load('StrChrA')(pszStart, wMatch);
1884
+ }
1885
+
1886
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strchria
1887
+ public static StrChrIA(pszStart: LPCSTR, wMatch: WORD): LONG_PTR {
1888
+ return Shlwapi.Load('StrChrIA')(pszStart, wMatch);
1889
+ }
1890
+
1891
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strchriw
1892
+ public static StrChrIW(pszStart: LPCWSTR, wMatch: WCHAR): LONG_PTR {
1893
+ return Shlwapi.Load('StrChrIW')(pszStart, wMatch);
1894
+ }
1895
+
1896
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strchrniw
1897
+ public static StrChrNIW(pszStart: LPCWSTR, wMatch: WCHAR, cchMax: UINT): LONG_PTR {
1898
+ return Shlwapi.Load('StrChrNIW')(pszStart, wMatch, cchMax);
1899
+ }
1900
+
1901
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strchrnw
1902
+ public static StrChrNW(pszStart: LPCWSTR, wMatch: WCHAR, cchMax: UINT): LONG_PTR {
1903
+ return Shlwapi.Load('StrChrNW')(pszStart, wMatch, cchMax);
1904
+ }
1905
+
1906
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strchrw
1907
+ public static StrChrW(pszStart: LPCWSTR, wMatch: WCHAR): LONG_PTR {
1908
+ return Shlwapi.Load('StrChrW')(pszStart, wMatch);
1909
+ }
1910
+
1911
+ public static StrCmpCA(pszStr1: LPCSTR, pszStr2: LPCSTR): INT {
1912
+ return Shlwapi.Load('StrCmpCA')(pszStr1, pszStr2);
1913
+ }
1914
+
1915
+ public static StrCmpCW(pszStr1: LPCWSTR, pszStr2: LPCWSTR): INT {
1916
+ return Shlwapi.Load('StrCmpCW')(pszStr1, pszStr2);
1917
+ }
1918
+
1919
+ public static StrCmpICA(pszStr1: LPCSTR, pszStr2: LPCSTR): INT {
1920
+ return Shlwapi.Load('StrCmpICA')(pszStr1, pszStr2);
1921
+ }
1922
+
1923
+ public static StrCmpICW(pszStr1: LPCWSTR, pszStr2: LPCWSTR): INT {
1924
+ return Shlwapi.Load('StrCmpICW')(pszStr1, pszStr2);
1925
+ }
1926
+
1927
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcmpiw
1928
+ public static StrCmpIW(psz1: LPCWSTR, psz2: LPCWSTR): INT {
1929
+ return Shlwapi.Load('StrCmpIW')(psz1, psz2);
1930
+ }
1931
+
1932
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcmplogicalw
1933
+ public static StrCmpLogicalW(psz1: LPCWSTR, psz2: LPCWSTR): INT {
1934
+ return Shlwapi.Load('StrCmpLogicalW')(psz1, psz2);
1935
+ }
1936
+
1937
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcmpna
1938
+ public static StrCmpNA(psz1: LPCSTR, psz2: LPCSTR, nChar: INT): INT {
1939
+ return Shlwapi.Load('StrCmpNA')(psz1, psz2, nChar);
1940
+ }
1941
+
1942
+ public static StrCmpNCA(pszStr1: LPCSTR, pszStr2: LPCSTR, nChar: INT): INT {
1943
+ return Shlwapi.Load('StrCmpNCA')(pszStr1, pszStr2, nChar);
1944
+ }
1945
+
1946
+ public static StrCmpNCW(pszStr1: LPCWSTR, pszStr2: LPCWSTR, nChar: INT): INT {
1947
+ return Shlwapi.Load('StrCmpNCW')(pszStr1, pszStr2, nChar);
1948
+ }
1949
+
1950
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcmpnia
1951
+ public static StrCmpNIA(psz1: LPCSTR, psz2: LPCSTR, nChar: INT): INT {
1952
+ return Shlwapi.Load('StrCmpNIA')(psz1, psz2, nChar);
1953
+ }
1954
+
1955
+ public static StrCmpNICA(pszStr1: LPCSTR, pszStr2: LPCSTR, nChar: INT): INT {
1956
+ return Shlwapi.Load('StrCmpNICA')(pszStr1, pszStr2, nChar);
1957
+ }
1958
+
1959
+ public static StrCmpNICW(pszStr1: LPCWSTR, pszStr2: LPCWSTR, nChar: INT): INT {
1960
+ return Shlwapi.Load('StrCmpNICW')(pszStr1, pszStr2, nChar);
1961
+ }
1962
+
1963
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcmpniw
1964
+ public static StrCmpNIW(psz1: LPCWSTR, psz2: LPCWSTR, nChar: INT): INT {
1965
+ return Shlwapi.Load('StrCmpNIW')(psz1, psz2, nChar);
1966
+ }
1967
+
1968
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcmpnw
1969
+ public static StrCmpNW(psz1: LPCWSTR, psz2: LPCWSTR, nChar: INT): INT {
1970
+ return Shlwapi.Load('StrCmpNW')(psz1, psz2, nChar);
1971
+ }
1972
+
1973
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcmpw
1974
+ public static StrCmpW(psz1: LPCWSTR, psz2: LPCWSTR): INT {
1975
+ return Shlwapi.Load('StrCmpW')(psz1, psz2);
1976
+ }
1977
+
1978
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcpynw
1979
+ public static StrCpyNW(pszDst: LPWSTR, pszSrc: LPCWSTR, cchMax: INT): LONG_PTR {
1980
+ return Shlwapi.Load('StrCpyNW')(pszDst, pszSrc, cchMax);
1981
+ }
1982
+
1983
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcpyw
1984
+ public static StrCpyW(psz1: LPWSTR, psz2: LPCWSTR): LONG_PTR {
1985
+ return Shlwapi.Load('StrCpyW')(psz1, psz2);
1986
+ }
1987
+
1988
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcspna
1989
+ public static StrCSpnA(pszStr: LPCSTR, pszSet: LPCSTR): INT {
1990
+ return Shlwapi.Load('StrCSpnA')(pszStr, pszSet);
1991
+ }
1992
+
1993
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcspnia
1994
+ public static StrCSpnIA(pszStr: LPCSTR, pszSet: LPCSTR): INT {
1995
+ return Shlwapi.Load('StrCSpnIA')(pszStr, pszSet);
1996
+ }
1997
+
1998
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcspniw
1999
+ public static StrCSpnIW(pszStr: LPCWSTR, pszSet: LPCWSTR): INT {
2000
+ return Shlwapi.Load('StrCSpnIW')(pszStr, pszSet);
2001
+ }
2002
+
2003
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strcspnw
2004
+ public static StrCSpnW(pszStr: LPCWSTR, pszSet: LPCWSTR): INT {
2005
+ return Shlwapi.Load('StrCSpnW')(pszStr, pszSet);
2006
+ }
2007
+
2008
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strdupa
2009
+ public static StrDupA(pszSrch: LPCSTR): LONG_PTR {
2010
+ return Shlwapi.Load('StrDupA')(pszSrch);
2011
+ }
2012
+
2013
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strdupw
2014
+ public static StrDupW(pszSrch: LPCWSTR): LONG_PTR {
2015
+ return Shlwapi.Load('StrDupW')(pszSrch);
2016
+ }
2017
+
2018
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strformatbytesize64a
2019
+ public static StrFormatByteSize64A(qdw: LONGLONG, pszBuf: LPSTR, cchBuf: UINT): LONG_PTR {
2020
+ return Shlwapi.Load('StrFormatByteSize64A')(qdw, pszBuf, cchBuf);
2021
+ }
2022
+
2023
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strformatbytesizea
2024
+ public static StrFormatByteSizeA(dw: DWORD, pszBuf: LPSTR, cchBuf: UINT): LONG_PTR {
2025
+ return Shlwapi.Load('StrFormatByteSizeA')(dw, pszBuf, cchBuf);
2026
+ }
2027
+
2028
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strformatbytesizeex
2029
+ public static StrFormatByteSizeEx(ull: ULONGLONG, flags: DWORD, pszBuf: LPWSTR, cchBuf: UINT): HRESULT {
2030
+ return Shlwapi.Load('StrFormatByteSizeEx')(ull, flags, pszBuf, cchBuf);
2031
+ }
2032
+
2033
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strformatbytesizew
2034
+ public static StrFormatByteSizeW(qdw: LONGLONG, pszBuf: LPWSTR, cchBuf: UINT): LONG_PTR {
2035
+ return Shlwapi.Load('StrFormatByteSizeW')(qdw, pszBuf, cchBuf);
2036
+ }
2037
+
2038
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strformatkbsizea
2039
+ public static StrFormatKBSizeA(qdw: LONGLONG, pszBuf: LPSTR, cchBuf: UINT): LONG_PTR {
2040
+ return Shlwapi.Load('StrFormatKBSizeA')(qdw, pszBuf, cchBuf);
2041
+ }
2042
+
2043
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strformatkbsizew
2044
+ public static StrFormatKBSizeW(qdw: LONGLONG, pszBuf: LPWSTR, cchBuf: UINT): LONG_PTR {
2045
+ return Shlwapi.Load('StrFormatKBSizeW')(qdw, pszBuf, cchBuf);
2046
+ }
2047
+
2048
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strfromtimeintervala
2049
+ public static StrFromTimeIntervalA(pszOut: LPSTR, cchMax: UINT, dwTimeMS: DWORD, digits: INT): INT {
2050
+ return Shlwapi.Load('StrFromTimeIntervalA')(pszOut, cchMax, dwTimeMS, digits);
2051
+ }
2052
+
2053
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strfromtimeintervalw
2054
+ public static StrFromTimeIntervalW(pszOut: LPWSTR, cchMax: UINT, dwTimeMS: DWORD, digits: INT): INT {
2055
+ return Shlwapi.Load('StrFromTimeIntervalW')(pszOut, cchMax, dwTimeMS, digits);
2056
+ }
2057
+
2058
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strisintlequala
2059
+ public static StrIsIntlEqualA(fCaseSens: BOOL, pszString1: LPCSTR, pszString2: LPCSTR, nChar: INT): BOOL {
2060
+ return Shlwapi.Load('StrIsIntlEqualA')(fCaseSens, pszString1, pszString2, nChar);
2061
+ }
2062
+
2063
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strisintlequalw
2064
+ public static StrIsIntlEqualW(fCaseSens: BOOL, pszString1: LPCWSTR, pszString2: LPCWSTR, nChar: INT): BOOL {
2065
+ return Shlwapi.Load('StrIsIntlEqualW')(fCaseSens, pszString1, pszString2, nChar);
2066
+ }
2067
+
2068
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strncata
2069
+ public static StrNCatA(psz1: LPSTR, psz2: LPCSTR, cchMax: INT): LONG_PTR {
2070
+ return Shlwapi.Load('StrNCatA')(psz1, psz2, cchMax);
2071
+ }
2072
+
2073
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strncatw
2074
+ public static StrNCatW(psz1: LPWSTR, psz2: LPCWSTR, cchMax: INT): LONG_PTR {
2075
+ return Shlwapi.Load('StrNCatW')(psz1, psz2, cchMax);
2076
+ }
2077
+
2078
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strpbrka
2079
+ public static StrPBrkA(psz: LPCSTR, pszSet: LPCSTR): LONG_PTR {
2080
+ return Shlwapi.Load('StrPBrkA')(psz, pszSet);
2081
+ }
2082
+
2083
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strpbrkw
2084
+ public static StrPBrkW(psz: LPCWSTR, pszSet: LPCWSTR): LONG_PTR {
2085
+ return Shlwapi.Load('StrPBrkW')(psz, pszSet);
2086
+ }
2087
+
2088
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrchra
2089
+ public static StrRChrA(pszStart: LPCSTR, pszEnd: LPCSTR, wMatch: WORD): LONG_PTR {
2090
+ return Shlwapi.Load('StrRChrA')(pszStart, pszEnd, wMatch);
2091
+ }
2092
+
2093
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrchria
2094
+ public static StrRChrIA(pszStart: LPCSTR, pszEnd: LPCSTR, wMatch: WORD): LONG_PTR {
2095
+ return Shlwapi.Load('StrRChrIA')(pszStart, pszEnd, wMatch);
2096
+ }
2097
+
2098
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrchriw
2099
+ public static StrRChrIW(pszStart: LPCWSTR, pszEnd: LPCWSTR, wMatch: WCHAR): LONG_PTR {
2100
+ return Shlwapi.Load('StrRChrIW')(pszStart, pszEnd, wMatch);
2101
+ }
2102
+
2103
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrchrw
2104
+ public static StrRChrW(pszStart: LPCWSTR, pszEnd: LPCWSTR, wMatch: WCHAR): LONG_PTR {
2105
+ return Shlwapi.Load('StrRChrW')(pszStart, pszEnd, wMatch);
2106
+ }
2107
+
2108
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrettobstr
2109
+ public static StrRetToBSTR(pstr: LPVOID, pidl: LPVOID, pbstr: LPVOID): HRESULT {
2110
+ return Shlwapi.Load('StrRetToBSTR')(pstr, pidl, pbstr);
2111
+ }
2112
+
2113
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrettobufa
2114
+ public static StrRetToBufA(pstr: LPVOID, pidl: LPVOID, pszBuf: LPSTR, cchBuf: UINT): HRESULT {
2115
+ return Shlwapi.Load('StrRetToBufA')(pstr, pidl, pszBuf, cchBuf);
2116
+ }
2117
+
2118
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrettobufw
2119
+ public static StrRetToBufW(pstr: LPVOID, pidl: LPVOID, pszBuf: LPWSTR, cchBuf: UINT): HRESULT {
2120
+ return Shlwapi.Load('StrRetToBufW')(pstr, pidl, pszBuf, cchBuf);
2121
+ }
2122
+
2123
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrettostra
2124
+ public static StrRetToStrA(pstr: LPVOID, pidl: LPVOID, ppsz: LPVOID): HRESULT {
2125
+ return Shlwapi.Load('StrRetToStrA')(pstr, pidl, ppsz);
2126
+ }
2127
+
2128
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrettostrw
2129
+ public static StrRetToStrW(pstr: LPVOID, pidl: LPVOID, ppsz: LPVOID): HRESULT {
2130
+ return Shlwapi.Load('StrRetToStrW')(pstr, pidl, ppsz);
2131
+ }
2132
+
2133
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrstria
2134
+ public static StrRStrIA(pszSource: LPCSTR, pszLast: LPCSTR, pszSrch: LPCSTR): LONG_PTR {
2135
+ return Shlwapi.Load('StrRStrIA')(pszSource, pszLast, pszSrch);
2136
+ }
2137
+
2138
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strrstriw
2139
+ public static StrRStrIW(pszSource: LPCWSTR, pszLast: LPCWSTR, pszSrch: LPCWSTR): LONG_PTR {
2140
+ return Shlwapi.Load('StrRStrIW')(pszSource, pszLast, pszSrch);
2141
+ }
2142
+
2143
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strspna
2144
+ public static StrSpnA(psz: LPCSTR, pszSet: LPCSTR): INT {
2145
+ return Shlwapi.Load('StrSpnA')(psz, pszSet);
2146
+ }
2147
+
2148
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strspnw
2149
+ public static StrSpnW(psz: LPCWSTR, pszSet: LPCWSTR): INT {
2150
+ return Shlwapi.Load('StrSpnW')(psz, pszSet);
2151
+ }
2152
+
2153
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strstra
2154
+ public static StrStrA(pszFirst: LPCSTR, pszSrch: LPCSTR): LONG_PTR {
2155
+ return Shlwapi.Load('StrStrA')(pszFirst, pszSrch);
2156
+ }
2157
+
2158
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strstria
2159
+ public static StrStrIA(pszFirst: LPCSTR, pszSrch: LPCSTR): LONG_PTR {
2160
+ return Shlwapi.Load('StrStrIA')(pszFirst, pszSrch);
2161
+ }
2162
+
2163
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strstriw
2164
+ public static StrStrIW(pszFirst: LPCWSTR, pszSrch: LPCWSTR): LONG_PTR {
2165
+ return Shlwapi.Load('StrStrIW')(pszFirst, pszSrch);
2166
+ }
2167
+
2168
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strstrniw
2169
+ public static StrStrNIW(pszFirst: LPCWSTR, pszSrch: LPCWSTR, cchMax: UINT): LONG_PTR {
2170
+ return Shlwapi.Load('StrStrNIW')(pszFirst, pszSrch, cchMax);
2171
+ }
2172
+
2173
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strstrnw
2174
+ public static StrStrNW(pszFirst: LPCWSTR, pszSrch: LPCWSTR, cchMax: UINT): LONG_PTR {
2175
+ return Shlwapi.Load('StrStrNW')(pszFirst, pszSrch, cchMax);
2176
+ }
2177
+
2178
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strstrw
2179
+ public static StrStrW(pszFirst: LPCWSTR, pszSrch: LPCWSTR): LONG_PTR {
2180
+ return Shlwapi.Load('StrStrW')(pszFirst, pszSrch);
2181
+ }
2182
+
2183
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strtoint64exa
2184
+ public static StrToInt64ExA(pszString: LPCSTR, dwFlags: DWORD, pllRet: LPVOID): BOOL {
2185
+ return Shlwapi.Load('StrToInt64ExA')(pszString, dwFlags, pllRet);
2186
+ }
2187
+
2188
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strtoint64exw
2189
+ public static StrToInt64ExW(pszString: LPCWSTR, dwFlags: DWORD, pllRet: LPVOID): BOOL {
2190
+ return Shlwapi.Load('StrToInt64ExW')(pszString, dwFlags, pllRet);
2191
+ }
2192
+
2193
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strtointa
2194
+ public static StrToIntA(pszSrc: LPCSTR): INT {
2195
+ return Shlwapi.Load('StrToIntA')(pszSrc);
2196
+ }
2197
+
2198
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strtointexa
2199
+ public static StrToIntExA(pszString: LPCSTR, dwFlags: DWORD, piRet: LPVOID): BOOL {
2200
+ return Shlwapi.Load('StrToIntExA')(pszString, dwFlags, piRet);
2201
+ }
2202
+
2203
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strtointexw
2204
+ public static StrToIntExW(pszString: LPCWSTR, dwFlags: DWORD, piRet: LPVOID): BOOL {
2205
+ return Shlwapi.Load('StrToIntExW')(pszString, dwFlags, piRet);
2206
+ }
2207
+
2208
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strtointw
2209
+ public static StrToIntW(pszSrc: LPCWSTR): INT {
2210
+ return Shlwapi.Load('StrToIntW')(pszSrc);
2211
+ }
2212
+
2213
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strtrima
2214
+ public static StrTrimA(psz: LPSTR, pszTrimChars: LPCSTR): BOOL {
2215
+ return Shlwapi.Load('StrTrimA')(psz, pszTrimChars);
2216
+ }
2217
+
2218
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-strtrimw
2219
+ public static StrTrimW(psz: LPWSTR, pszTrimChars: LPCWSTR): BOOL {
2220
+ return Shlwapi.Load('StrTrimW')(psz, pszTrimChars);
2221
+ }
2222
+
2223
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlapplyschemea
2224
+ public static UrlApplySchemeA(pszIn: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD, dwFlags: DWORD): HRESULT {
2225
+ return Shlwapi.Load('UrlApplySchemeA')(pszIn, pszOut, pcchOut, dwFlags);
2226
+ }
2227
+
2228
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlapplyschemew
2229
+ public static UrlApplySchemeW(pszIn: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD, dwFlags: DWORD): HRESULT {
2230
+ return Shlwapi.Load('UrlApplySchemeW')(pszIn, pszOut, pcchOut, dwFlags);
2231
+ }
2232
+
2233
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlcanonicalizea
2234
+ public static UrlCanonicalizeA(pszUrl: LPCSTR, pszCanonicalized: LPSTR, pcchCanonicalized: LPDWORD, dwFlags: DWORD): HRESULT {
2235
+ return Shlwapi.Load('UrlCanonicalizeA')(pszUrl, pszCanonicalized, pcchCanonicalized, dwFlags);
2236
+ }
2237
+
2238
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlcanonicalizew
2239
+ public static UrlCanonicalizeW(pszUrl: LPCWSTR, pszCanonicalized: LPWSTR, pcchCanonicalized: LPDWORD, dwFlags: DWORD): HRESULT {
2240
+ return Shlwapi.Load('UrlCanonicalizeW')(pszUrl, pszCanonicalized, pcchCanonicalized, dwFlags);
2241
+ }
2242
+
2243
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlcombinea
2244
+ public static UrlCombineA(pszBase: LPCSTR, pszRelative: LPCSTR, pszCombined: LPSTR, pcchCombined: LPDWORD, dwFlags: DWORD): HRESULT {
2245
+ return Shlwapi.Load('UrlCombineA')(pszBase, pszRelative, pszCombined, pcchCombined, dwFlags);
2246
+ }
2247
+
2248
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlcombinew
2249
+ public static UrlCombineW(pszBase: LPCWSTR, pszRelative: LPCWSTR, pszCombined: LPWSTR, pcchCombined: LPDWORD, dwFlags: DWORD): HRESULT {
2250
+ return Shlwapi.Load('UrlCombineW')(pszBase, pszRelative, pszCombined, pcchCombined, dwFlags);
2251
+ }
2252
+
2253
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlcomparea
2254
+ public static UrlCompareA(psz1: LPCSTR, psz2: LPCSTR, fIgnoreSlash: BOOL): INT {
2255
+ return Shlwapi.Load('UrlCompareA')(psz1, psz2, fIgnoreSlash);
2256
+ }
2257
+
2258
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlcomparew
2259
+ public static UrlCompareW(psz1: LPCWSTR, psz2: LPCWSTR, fIgnoreSlash: BOOL): INT {
2260
+ return Shlwapi.Load('UrlCompareW')(psz1, psz2, fIgnoreSlash);
2261
+ }
2262
+
2263
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlcreatefrompatha
2264
+ public static UrlCreateFromPathA(pszPath: LPCSTR, pszUrl: LPSTR, pcchUrl: LPDWORD, dwFlags: DWORD): HRESULT {
2265
+ return Shlwapi.Load('UrlCreateFromPathA')(pszPath, pszUrl, pcchUrl, dwFlags);
2266
+ }
2267
+
2268
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlcreatefrompathw
2269
+ public static UrlCreateFromPathW(pszPath: LPCWSTR, pszUrl: LPWSTR, pcchUrl: LPDWORD, dwFlags: DWORD): HRESULT {
2270
+ return Shlwapi.Load('UrlCreateFromPathW')(pszPath, pszUrl, pcchUrl, dwFlags);
2271
+ }
2272
+
2273
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlescapea
2274
+ public static UrlEscapeA(pszUrl: LPCSTR, pszEscaped: LPSTR, pcchEscaped: LPDWORD, dwFlags: DWORD): HRESULT {
2275
+ return Shlwapi.Load('UrlEscapeA')(pszUrl, pszEscaped, pcchEscaped, dwFlags);
2276
+ }
2277
+
2278
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlescapew
2279
+ public static UrlEscapeW(pszUrl: LPCWSTR, pszEscaped: LPWSTR, pcchEscaped: LPDWORD, dwFlags: DWORD): HRESULT {
2280
+ return Shlwapi.Load('UrlEscapeW')(pszUrl, pszEscaped, pcchEscaped, dwFlags);
2281
+ }
2282
+
2283
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlfixupw
2284
+ public static UrlFixupW(pcszUrl: LPCWSTR, pszTranslatedUrl: LPWSTR, cchMax: DWORD): HRESULT {
2285
+ return Shlwapi.Load('UrlFixupW')(pcszUrl, pszTranslatedUrl, cchMax);
2286
+ }
2287
+
2288
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlgetlocationa
2289
+ public static UrlGetLocationA(pszURL: LPCSTR): LONG_PTR {
2290
+ return Shlwapi.Load('UrlGetLocationA')(pszURL);
2291
+ }
2292
+
2293
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlgetlocationw
2294
+ public static UrlGetLocationW(pszURL: LPCWSTR): LONG_PTR {
2295
+ return Shlwapi.Load('UrlGetLocationW')(pszURL);
2296
+ }
2297
+
2298
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlgetparta
2299
+ public static UrlGetPartA(pszIn: LPCSTR, pszOut: LPSTR, pcchOut: LPDWORD, dwPart: DWORD, dwFlags: DWORD): HRESULT {
2300
+ return Shlwapi.Load('UrlGetPartA')(pszIn, pszOut, pcchOut, dwPart, dwFlags);
2301
+ }
2302
+
2303
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlgetpartw
2304
+ public static UrlGetPartW(pszIn: LPCWSTR, pszOut: LPWSTR, pcchOut: LPDWORD, dwPart: DWORD, dwFlags: DWORD): HRESULT {
2305
+ return Shlwapi.Load('UrlGetPartW')(pszIn, pszOut, pcchOut, dwPart, dwFlags);
2306
+ }
2307
+
2308
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlhasha
2309
+ public static UrlHashA(pszUrl: LPCSTR, pbHash: LPBYTE, cbHash: DWORD): HRESULT {
2310
+ return Shlwapi.Load('UrlHashA')(pszUrl, pbHash, cbHash);
2311
+ }
2312
+
2313
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlhashw
2314
+ public static UrlHashW(pszUrl: LPCWSTR, pbHash: LPBYTE, cbHash: DWORD): HRESULT {
2315
+ return Shlwapi.Load('UrlHashW')(pszUrl, pbHash, cbHash);
2316
+ }
2317
+
2318
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlisa
2319
+ public static UrlIsA(pszUrl: LPCSTR, UrlIs: DWORD): BOOL {
2320
+ return Shlwapi.Load('UrlIsA')(pszUrl, UrlIs);
2321
+ }
2322
+
2323
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlisnohistorya
2324
+ public static UrlIsNoHistoryA(pszURL: LPCSTR): BOOL {
2325
+ return Shlwapi.Load('UrlIsNoHistoryA')(pszURL);
2326
+ }
2327
+
2328
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlisnohistoryw
2329
+ public static UrlIsNoHistoryW(pszURL: LPCWSTR): BOOL {
2330
+ return Shlwapi.Load('UrlIsNoHistoryW')(pszURL);
2331
+ }
2332
+
2333
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlisopaquea
2334
+ public static UrlIsOpaqueA(pszURL: LPCSTR): BOOL {
2335
+ return Shlwapi.Load('UrlIsOpaqueA')(pszURL);
2336
+ }
2337
+
2338
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlisopaquew
2339
+ public static UrlIsOpaqueW(pszURL: LPCWSTR): BOOL {
2340
+ return Shlwapi.Load('UrlIsOpaqueW')(pszURL);
2341
+ }
2342
+
2343
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlisw
2344
+ public static UrlIsW(pszUrl: LPCWSTR, UrlIs: DWORD): BOOL {
2345
+ return Shlwapi.Load('UrlIsW')(pszUrl, UrlIs);
2346
+ }
2347
+
2348
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlunescapea
2349
+ public static UrlUnescapeA(pszUrl: LPSTR, pszUnescaped: LPSTR, pcchUnescaped: LPDWORD, dwFlags: DWORD): HRESULT {
2350
+ return Shlwapi.Load('UrlUnescapeA')(pszUrl, pszUnescaped, pcchUnescaped, dwFlags);
2351
+ }
2352
+
2353
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-urlunescapew
2354
+ public static UrlUnescapeW(pszUrl: LPWSTR, pszUnescaped: LPWSTR, pcchUnescaped: LPDWORD, dwFlags: DWORD): HRESULT {
2355
+ return Shlwapi.Load('UrlUnescapeW')(pszUrl, pszUnescaped, pcchUnescaped, dwFlags);
2356
+ }
2357
+
2358
+ public static WhichPlatform(): UINT {
2359
+ return Shlwapi.Load('WhichPlatform')();
2360
+ }
2361
+
2362
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-wnsprintfa
2363
+ public static wnsprintfA(pszDest: LPSTR, cchDest: INT, pszFmt: LPCSTR): INT {
2364
+ return Shlwapi.Load('wnsprintfA')(pszDest, cchDest, pszFmt);
2365
+ }
2366
+
2367
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-wnsprintfw
2368
+ public static wnsprintfW(pszDest: LPWSTR, cchDest: INT, pszFmt: LPCWSTR): INT {
2369
+ return Shlwapi.Load('wnsprintfW')(pszDest, cchDest, pszFmt);
2370
+ }
2371
+
2372
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-wvnsprintfa
2373
+ public static wvnsprintfA(pszDest: LPSTR, cchDest: INT, pszFmt: LPCSTR, arglist: LPVOID): INT {
2374
+ return Shlwapi.Load('wvnsprintfA')(pszDest, cchDest, pszFmt, arglist);
2375
+ }
2376
+
2377
+ // https://learn.microsoft.com/en-us/windows/win32/api/shlwapi/nf-shlwapi-wvnsprintfw
2378
+ public static wvnsprintfW(pszDest: LPWSTR, cchDest: INT, pszFmt: LPCWSTR, arglist: LPVOID): INT {
2379
+ return Shlwapi.Load('wvnsprintfW')(pszDest, cchDest, pszFmt, arglist);
2380
+ }
2381
+ }
2382
+
2383
+ export default Shlwapi;