1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 7 * Source: $(DRUNTIMESRC core/sys/windows/_shlwapi.d) 8 */ 9 /// Automatically imported and edited from the druntime module 10 /// core.sys.windows.shlwapi for the auto-generated win32 package. 11 module win32.shlwapi; 12 //version (Windows): 13 @system: 14 15 version (ANSI) {} else version = Unicode; 16 version (Win32_UseLib) pragma(lib, "shlwapi"); 17 18 /* Changes compared to MinGW: 19 wnsprintf functions are not included. 20 // Macros unneeded for D 21 #define StrCmpIA lstrcmpiA; 22 #define StrCmpA lstrcmpA; 23 #define StrCpyA lstrcpyA; 24 #define StrCpyNA lstrcpynA; 25 #define MAKEDLLVERULL(major, minor, build, qfe) \ 26 (((ULONGLONG)(major) << 48) | \ 27 ((ULONGLONG)(minor) << 32) | \ 28 ((ULONGLONG)(build) << 16) | \ 29 ((ULONGLONG)( qfe) << 0)) 30 */ 31 32 import win32.objbase, win32.shlobj; 33 import win32.basetyps, win32.objidl, win32.unknwn, win32.windef, 34 win32.winbase, win32.winreg; 35 36 enum DLLVER_PLATFORM_WINDOWS = 0x00000001; 37 enum DLLVER_PLATFORM_NT = 0x00000002; 38 39 enum URL_DONT_ESCAPE_EXTRA_INFO = 0x02000000; 40 enum URL_DONT_SIMPLIFY = 0x08000000; 41 enum URL_ESCAPE_PERCENT = 0x00001000; 42 enum URL_ESCAPE_SEGMENT_ONLY = 0x00002000; 43 enum URL_ESCAPE_SPACES_ONLY = 0x04000000; 44 enum URL_ESCAPE_UNSAFE = 0x20000000; 45 enum URL_INTERNAL_PATH = 0x00800000; 46 enum URL_PARTFLAG_KEEPSCHEME = 0x00000001; 47 enum URL_PLUGGABLE_PROTOCOL = 0x40000000; 48 enum URL_UNESCAPE = 0x10000000; 49 enum URL_UNESCAPE_HIGH_ANSI_ONLY = 0x00400000; 50 enum URL_UNESCAPE_INPLACE = 0x00100000; 51 52 align(1): 53 struct DLLVERSIONINFO 54 { 55 DWORD cbSize = this.sizeof; 56 DWORD dwMajorVersion; 57 DWORD dwMinorVersion; 58 DWORD dwBuildNumber; 59 DWORD dwPlatformID; 60 } 61 62 struct DLLVERSIONINFO2 63 { 64 DLLVERSIONINFO info1; 65 DWORD dwFlags; 66 ULONGLONG ullVersion; 67 } 68 69 enum ASSOCSTR { 70 ASSOCSTR_COMMAND, 71 ASSOCSTR_EXECUTABLE, 72 ASSOCSTR_FRIENDLYDOCNAME, 73 ASSOCSTR_FRIENDLYAPPNAME, 74 ASSOCSTR_NOOPEN, 75 ASSOCSTR_SHELLNEWVALUE, 76 ASSOCSTR_DDECOMMAND, 77 ASSOCSTR_DDEIFEXEC, 78 ASSOCSTR_DDEAPPLICATION, 79 ASSOCSTR_DDETOPIC 80 } 81 82 enum ASSOCKEY 83 { 84 ASSOCKEY_SHELLEXECCLASS = 1, 85 ASSOCKEY_APP, 86 ASSOCKEY_CLASS, 87 ASSOCKEY_BASECLASS 88 } 89 90 enum ASSOCDATA 91 { 92 ASSOCDATA_MSIDESCRIPTOR = 1, 93 ASSOCDATA_NOACTIVATEHANDLER, 94 ASSOCDATA_QUERYCLASSSTORE 95 } 96 97 alias DWORD ASSOCF; 98 99 enum SHREGDEL_FLAGS 100 { 101 SHREGDEL_DEFAULT = 0x00000000, 102 SHREGDEL_HKCU = 0x00000001, 103 SHREGDEL_HKLM = 0x00000010, 104 SHREGDEL_BOTH = 0x00000011 105 } 106 107 enum SHREGENUM_FLAGS 108 { 109 SHREGENUM_DEFAULT = 0x00000000, 110 SHREGENUM_HKCU = 0x00000001, 111 SHREGENUM_HKLM = 0x00000010, 112 SHREGENUM_BOTH = 0x00000011 113 } 114 115 enum URLIS 116 { 117 URLIS_URL, 118 URLIS_OPAQUE, 119 URLIS_NOHISTORY, 120 URLIS_FILEURL, 121 URLIS_APPLIABLE, 122 URLIS_DIRECTORY, 123 URLIS_HASQUERY 124 } 125 126 mixin DECLARE_HANDLE!("HUSKEY"); 127 alias HUSKEY* PHUSKEY; 128 129 extern (Windows) 130 { 131 alias HRESULT function (DLLVERSIONINFO *) DLLGETVERSIONPROC; 132 } 133 134 135 BOOL IntlStrEqNA()(LPCSTR pStr1, LPCSTR pStr2, int nChar) 136 { 137 return IntlStrEqWorkerA(TRUE, pStr1, pStr2, nChar); 138 } 139 140 BOOL IntlStrEqNW()(LPCWSTR pStr1, LPCWSTR pStr2, int nChar) 141 { 142 return IntlStrEqWorkerW(TRUE, pStr1, pStr2, nChar); 143 } 144 145 BOOL IntlStrEqNIA()(LPCSTR pStr1, LPCSTR pStr2, int nChar) 146 { 147 return IntlStrEqWorkerA(FALSE, pStr1, pStr2, nChar); 148 } 149 150 BOOL IntlStrEqNIW()(LPCWSTR pStr1, LPCWSTR pStr2, int nChar) 151 { 152 return IntlStrEqWorkerW(FALSE, pStr1, pStr2, nChar); 153 } 154 155 BOOL UrlIsFileUrlA()(LPCSTR pszURL) 156 { 157 return UrlIsA(pszURL, URLIS.URLIS_FILEURL); 158 } 159 160 BOOL UrlIsFileUrlW()(LPCWSTR pszURL) 161 { 162 return UrlIsW(pszURL, URLIS.URLIS_FILEURL); 163 } 164 165 HRESULT UrlUnescapeInPlaceA()(LPSTR pszUrl, DWORD dwFlags) 166 { 167 return UrlUnescapeA(pszUrl, null, null, dwFlags | URL_UNESCAPE_INPLACE); 168 } 169 HRESULT UrlUnescapeInPlaceW()(LPWSTR pszUrl, DWORD dwFlags) 170 { 171 return UrlUnescapeW(pszUrl, null, null, dwFlags | URL_UNESCAPE_INPLACE); 172 } 173 174 extern (Windows): 175 BOOL ChrCmpIA(WORD, WORD); 176 BOOL ChrCmpIW(WCHAR, WCHAR); 177 BOOL IntlStrEqWorkerA(BOOL, LPCSTR, LPCSTR, int); 178 BOOL IntlStrEqWorkerW(BOOL, LPCWSTR, LPCWSTR, int); 179 HRESULT SHStrDupA(LPCSTR, LPWSTR*); 180 HRESULT SHStrDupW(LPCWSTR, LPWSTR*); 181 LPSTR StrCatA(LPSTR, LPCSTR); 182 LPWSTR StrCatW(LPWSTR, LPCWSTR); 183 LPSTR StrCatBuffA(LPSTR, LPCSTR, int); 184 LPWSTR StrCatBuffW(LPWSTR, LPCWSTR, int); 185 DWORD StrCatChainW(LPWSTR, DWORD, DWORD, LPCWSTR); 186 LPSTR StrChrA(LPCSTR, WORD); 187 LPWSTR StrChrW(LPCWSTR, WCHAR); 188 LPSTR StrChrIA(LPCSTR, WORD); 189 LPWSTR StrChrIW(LPCWSTR, WCHAR); 190 int StrCmpIW(LPCWSTR, LPCWSTR); 191 int StrCmpW(LPCWSTR, LPCWSTR); 192 LPWSTR StrCpyW(LPWSTR, LPCWSTR); 193 LPWSTR StrCpyNW(LPWSTR, LPCWSTR, int); 194 int StrCmpNA(LPCSTR, LPCSTR, int); 195 int StrCmpNW(LPCWSTR, LPCWSTR, int); 196 int StrCmpNIA(LPCSTR, LPCSTR, int); 197 int StrCmpNIW(LPCWSTR, LPCWSTR, int); 198 int StrCSpnA(LPCSTR, LPCSTR); 199 int StrCSpnW(LPCWSTR, LPCWSTR); 200 int StrCSpnIA(LPCSTR, LPCSTR); 201 int StrCSpnIW(LPCWSTR, LPCWSTR); 202 LPSTR StrDupA(LPCSTR); 203 LPWSTR StrDupW(LPCWSTR); 204 LPSTR StrFormatByteSize64A(LONGLONG, LPSTR, UINT); 205 LPSTR StrFormatByteSizeA(DWORD, LPSTR, UINT); 206 LPWSTR StrFormatByteSizeW(LONGLONG, LPWSTR, UINT); 207 LPSTR StrFormatKBSizeA(LONGLONG, LPSTR, UINT); 208 LPWSTR StrFormatKBSizeW(LONGLONG, LPWSTR, UINT); 209 int StrFromTimeIntervalA(LPSTR, UINT, DWORD, int); 210 int StrFromTimeIntervalW(LPWSTR, UINT, DWORD, int); 211 BOOL StrIsIntlEqualA(BOOL, LPCSTR, LPCSTR, int); 212 BOOL StrIsIntlEqualW(BOOL, LPCWSTR, LPCWSTR, int); 213 LPSTR StrNCatA(LPSTR, LPCSTR, int); 214 LPWSTR StrNCatW(LPWSTR, LPCWSTR, int); 215 LPSTR StrPBrkA(LPCSTR, LPCSTR); 216 LPWSTR StrPBrkW(LPCWSTR, LPCWSTR); 217 LPSTR StrRChrA(LPCSTR, LPCSTR, WORD); 218 LPWSTR StrRChrW(LPCWSTR, LPCWSTR, WCHAR); 219 LPSTR StrRChrIA(LPCSTR, LPCSTR, WORD); 220 LPWSTR StrRChrIW(LPCWSTR, LPCWSTR, WCHAR); 221 LPSTR StrRStrIA(LPCSTR, LPCSTR, LPCSTR); 222 LPWSTR StrRStrIW(LPCWSTR, LPCWSTR, LPCWSTR); 223 int StrSpnA(LPCSTR, LPCSTR); 224 int StrSpnW(LPCWSTR, LPCWSTR); 225 LPSTR StrStrA(LPCSTR, LPCSTR); 226 LPSTR StrStrIA(LPCSTR, LPCSTR); 227 LPWSTR StrStrIW(LPCWSTR, LPCWSTR); 228 LPWSTR StrStrW(LPCWSTR, LPCWSTR); 229 int StrToIntA(LPCSTR); 230 int StrToIntW(LPCWSTR); 231 BOOL StrToIntExA(LPCSTR, DWORD, int*); 232 BOOL StrToIntExW(LPCWSTR, DWORD, int*); 233 BOOL StrTrimA(LPSTR, LPCSTR); 234 BOOL StrTrimW(LPWSTR, LPCWSTR); 235 LPSTR PathAddBackslashA(LPSTR); 236 LPWSTR PathAddBackslashW(LPWSTR); 237 BOOL PathAddExtensionA(LPSTR, LPCSTR); 238 BOOL PathAddExtensionW(LPWSTR, LPCWSTR); 239 BOOL PathAppendA(LPSTR, LPCSTR); 240 BOOL PathAppendW(LPWSTR, LPCWSTR); 241 LPSTR PathBuildRootA(LPSTR, int); 242 LPWSTR PathBuildRootW(LPWSTR, int); 243 BOOL PathCanonicalizeA(LPSTR, LPCSTR); 244 BOOL PathCanonicalizeW(LPWSTR, LPCWSTR); 245 LPSTR PathCombineA(LPSTR, LPCSTR, LPCSTR); 246 LPWSTR PathCombineW(LPWSTR, LPCWSTR, LPCWSTR); 247 int PathCommonPrefixA(LPCSTR, LPCSTR, LPSTR); 248 int PathCommonPrefixW(LPCWSTR, LPCWSTR, LPWSTR); 249 BOOL PathCompactPathA(HDC, LPSTR, UINT); 250 BOOL PathCompactPathW(HDC, LPWSTR, UINT); 251 BOOL PathCompactPathExA(LPSTR, LPCSTR, UINT, DWORD); 252 BOOL PathCompactPathExW(LPWSTR, LPCWSTR, UINT, DWORD); 253 HRESULT PathCreateFromUrlA(LPCSTR, LPSTR, LPDWORD, DWORD); 254 HRESULT PathCreateFromUrlW(LPCWSTR, LPWSTR, LPDWORD, DWORD); 255 BOOL PathFileExistsA(LPCSTR); 256 BOOL PathFileExistsW(LPCWSTR); 257 LPSTR PathFindExtensionA(LPCSTR); 258 LPWSTR PathFindExtensionW(LPCWSTR); 259 LPSTR PathFindFileNameA(LPCSTR); 260 LPWSTR PathFindFileNameW(LPCWSTR); 261 LPSTR PathFindNextComponentA(LPCSTR); 262 LPWSTR PathFindNextComponentW(LPCWSTR); 263 BOOL PathFindOnPathA(LPSTR, LPCSTR*); 264 BOOL PathFindOnPathW(LPWSTR, LPCWSTR*); 265 LPCSTR PathFindSuffixArrayA(LPCSTR, LPCSTR*, int); 266 LPCWSTR PathFindSuffixArrayW(LPCWSTR, LPCWSTR*, int); 267 LPSTR PathGetArgsA(LPCSTR); 268 LPWSTR PathGetArgsW(LPCWSTR); 269 UINT PathGetCharTypeA(UCHAR); 270 UINT PathGetCharTypeW(WCHAR); 271 int PathGetDriveNumberA(LPCSTR); 272 int PathGetDriveNumberW(LPCWSTR); 273 BOOL PathIsContentTypeA(LPCSTR, LPCSTR); 274 BOOL PathIsContentTypeW(LPCWSTR, LPCWSTR); 275 BOOL PathIsDirectoryA(LPCSTR); 276 BOOL PathIsDirectoryEmptyA(LPCSTR); 277 BOOL PathIsDirectoryEmptyW(LPCWSTR); 278 BOOL PathIsDirectoryW(LPCWSTR); 279 BOOL PathIsFileSpecA(LPCSTR); 280 BOOL PathIsFileSpecW(LPCWSTR); 281 BOOL PathIsLFNFileSpecA(LPCSTR); 282 BOOL PathIsLFNFileSpecW(LPCWSTR); 283 BOOL PathIsNetworkPathA(LPCSTR); 284 BOOL PathIsNetworkPathW(LPCWSTR); 285 BOOL PathIsPrefixA(LPCSTR, LPCSTR); 286 BOOL PathIsPrefixW(LPCWSTR, LPCWSTR); 287 BOOL PathIsRelativeA(LPCSTR); 288 BOOL PathIsRelativeW(LPCWSTR); 289 BOOL PathIsRootA(LPCSTR); 290 BOOL PathIsRootW(LPCWSTR); 291 BOOL PathIsSameRootA(LPCSTR, LPCSTR); 292 BOOL PathIsSameRootW(LPCWSTR, LPCWSTR); 293 BOOL PathIsSystemFolderA(LPCSTR, DWORD); 294 BOOL PathIsSystemFolderW(LPCWSTR, DWORD); 295 BOOL PathIsUNCA(LPCSTR); 296 BOOL PathIsUNCServerA(LPCSTR); 297 BOOL PathIsUNCServerShareA(LPCSTR); 298 BOOL PathIsUNCServerShareW(LPCWSTR); 299 BOOL PathIsUNCServerW(LPCWSTR); 300 BOOL PathIsUNCW(LPCWSTR); 301 BOOL PathIsURLA(LPCSTR); 302 BOOL PathIsURLW(LPCWSTR); 303 BOOL PathMakePrettyA(LPSTR); 304 BOOL PathMakePrettyW(LPWSTR); 305 BOOL PathMakeSystemFolderA(LPSTR); 306 BOOL PathMakeSystemFolderW(LPWSTR); 307 BOOL PathMatchSpecA(LPCSTR, LPCSTR); 308 BOOL PathMatchSpecW(LPCWSTR, LPCWSTR); 309 int PathParseIconLocationA(LPSTR); 310 int PathParseIconLocationW(LPWSTR); 311 void PathQuoteSpacesA(LPSTR); 312 void PathQuoteSpacesW(LPWSTR); 313 BOOL PathRelativePathToA(LPSTR, LPCSTR, DWORD, LPCSTR, DWORD); 314 BOOL PathRelativePathToW(LPWSTR, LPCWSTR, DWORD, LPCWSTR, DWORD); 315 void PathRemoveArgsA(LPSTR); 316 void PathRemoveArgsW(LPWSTR); 317 LPSTR PathRemoveBackslashA(LPSTR); 318 LPWSTR PathRemoveBackslashW(LPWSTR); 319 void PathRemoveBlanksA(LPSTR); 320 void PathRemoveBlanksW(LPWSTR); 321 void PathRemoveExtensionA(LPSTR); 322 void PathRemoveExtensionW(LPWSTR); 323 BOOL PathRemoveFileSpecA(LPSTR); 324 BOOL PathRemoveFileSpecW(LPWSTR); 325 BOOL PathRenameExtensionA(LPSTR, LPCSTR); 326 BOOL PathRenameExtensionW(LPWSTR, LPCWSTR); 327 BOOL PathSearchAndQualifyA(LPCSTR, LPSTR, UINT); 328 BOOL PathSearchAndQualifyW(LPCWSTR, LPWSTR, UINT); 329 void PathSetDlgItemPathA(HWND, int, LPCSTR); 330 void PathSetDlgItemPathW(HWND, int, LPCWSTR); 331 LPSTR PathSkipRootA(LPCSTR); 332 LPWSTR PathSkipRootW(LPCWSTR); 333 void PathStripPathA(LPSTR); 334 void PathStripPathW(LPWSTR); 335 BOOL PathStripToRootA(LPSTR); 336 BOOL PathStripToRootW(LPWSTR); 337 void PathUndecorateA(LPSTR); 338 void PathUndecorateW(LPWSTR); 339 BOOL PathUnExpandEnvStringsA(LPCSTR, LPSTR, UINT); 340 BOOL PathUnExpandEnvStringsW(LPCWSTR, LPWSTR, UINT); 341 BOOL PathUnmakeSystemFolderA(LPSTR); 342 BOOL PathUnmakeSystemFolderW(LPWSTR); 343 void PathUnquoteSpacesA(LPSTR); 344 void PathUnquoteSpacesW(LPWSTR); 345 HRESULT SHAutoComplete(HWND, DWORD); 346 BOOL SHCreateThread(LPTHREAD_START_ROUTINE, void*, DWORD, LPTHREAD_START_ROUTINE); 347 DWORD SHCopyKeyA(HKEY, LPCSTR, HKEY, DWORD); 348 DWORD SHCopyKeyW(HKEY, LPCWSTR, HKEY, DWORD); 349 DWORD SHDeleteEmptyKeyA(HKEY, LPCSTR); 350 DWORD SHDeleteEmptyKeyW(HKEY, LPCWSTR); 351 DWORD SHDeleteKeyA(HKEY, LPCSTR); 352 DWORD SHDeleteKeyW(HKEY, LPCWSTR); 353 DWORD SHEnumKeyExA(HKEY, DWORD, LPSTR, LPDWORD); 354 DWORD SHEnumKeyExW(HKEY, DWORD, LPWSTR, LPDWORD); 355 DWORD SHQueryInfoKeyA(HKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD); 356 DWORD SHQueryInfoKeyW(HKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD); 357 DWORD SHQueryValueExA(HKEY, LPCSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD); 358 DWORD SHQueryValueExW(HKEY, LPCWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD); 359 HRESULT SHGetThreadRef(IUnknown*); 360 HRESULT SHSetThreadRef(IUnknown); 361 BOOL SHSkipJunction(IBindCtx, const(CLSID)*); 362 DWORD SHEnumValueA(HKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD); 363 DWORD SHEnumValueW(HKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD); 364 DWORD SHGetValueA(HKEY, LPCSTR, LPCSTR, LPDWORD, LPVOID, LPDWORD); 365 DWORD SHGetValueW(HKEY, LPCWSTR, LPCWSTR, LPDWORD, LPVOID, LPDWORD); 366 DWORD SHSetValueA(HKEY, LPCSTR, LPCSTR, DWORD, LPCVOID, DWORD); 367 DWORD SHSetValueW(HKEY, LPCWSTR, LPCWSTR, DWORD, LPCVOID, DWORD); 368 DWORD SHDeleteValueA(HKEY, LPCSTR, LPCSTR); 369 DWORD SHDeleteValueW(HKEY, LPCWSTR, LPCWSTR); 370 HRESULT AssocCreate(CLSID, const(IID)* , const(LPVOID)*); 371 HRESULT AssocQueryKeyA(ASSOCF, ASSOCKEY, LPCSTR, LPCSTR, HKEY*); 372 HRESULT AssocQueryKeyW(ASSOCF, ASSOCKEY, LPCWSTR, LPCWSTR, HKEY*); 373 HRESULT AssocQueryStringA(ASSOCF, ASSOCSTR, LPCSTR, LPCSTR, LPSTR, DWORD*); 374 HRESULT AssocQueryStringByKeyA(ASSOCF, ASSOCSTR, HKEY, LPCSTR, LPSTR, DWORD*); 375 HRESULT AssocQueryStringByKeyW(ASSOCF, ASSOCSTR, HKEY, LPCWSTR, LPWSTR, DWORD*); 376 HRESULT AssocQueryStringW(ASSOCF, ASSOCSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD*); 377 HRESULT UrlApplySchemeA(LPCSTR, LPSTR, LPDWORD, DWORD); 378 HRESULT UrlApplySchemeW(LPCWSTR, LPWSTR, LPDWORD, DWORD); 379 HRESULT UrlCanonicalizeA(LPCSTR, LPSTR, LPDWORD, DWORD); 380 HRESULT UrlCanonicalizeW(LPCWSTR, LPWSTR, LPDWORD, DWORD); 381 HRESULT UrlCombineA(LPCSTR, LPCSTR, LPSTR, LPDWORD, DWORD); 382 HRESULT UrlCombineW(LPCWSTR, LPCWSTR, LPWSTR, LPDWORD, DWORD); 383 int UrlCompareA(LPCSTR, LPCSTR, BOOL); 384 int UrlCompareW(LPCWSTR, LPCWSTR, BOOL); 385 HRESULT UrlCreateFromPathA(LPCSTR, LPSTR, LPDWORD, DWORD); 386 HRESULT UrlCreateFromPathW(LPCWSTR, LPWSTR, LPDWORD, DWORD); 387 HRESULT UrlEscapeA(LPCSTR, LPSTR, LPDWORD, DWORD); 388 HRESULT UrlEscapeW(LPCWSTR, LPWSTR, LPDWORD, DWORD); 389 LPCSTR UrlGetLocationA(LPCSTR); 390 LPCWSTR UrlGetLocationW(LPCWSTR); 391 HRESULT UrlGetPartA(LPCSTR, LPSTR, LPDWORD, DWORD, DWORD); 392 HRESULT UrlGetPartW(LPCWSTR, LPWSTR, LPDWORD, DWORD, DWORD); 393 HRESULT UrlHashA(LPCSTR, LPBYTE, DWORD); 394 HRESULT UrlHashW(LPCWSTR, LPBYTE, DWORD); 395 BOOL UrlIsA(LPCSTR, URLIS); 396 BOOL UrlIsW(LPCWSTR, URLIS); 397 BOOL UrlIsNoHistoryA(LPCSTR); 398 BOOL UrlIsNoHistoryW(LPCWSTR); 399 BOOL UrlIsOpaqueA(LPCSTR); 400 BOOL UrlIsOpaqueW(LPCWSTR); 401 HRESULT UrlUnescapeA(LPSTR, LPSTR, LPDWORD, DWORD); 402 HRESULT UrlUnescapeW(LPWSTR, LPWSTR, LPDWORD, DWORD); 403 DWORD SHRegCloseUSKey(HUSKEY); 404 LONG SHRegCreateUSKeyA(LPCSTR, REGSAM, HUSKEY, PHUSKEY, DWORD); 405 LONG SHRegCreateUSKeyW(LPCWSTR, REGSAM, HUSKEY, PHUSKEY, DWORD); 406 LONG SHRegDeleteEmptyUSKeyA(HUSKEY, LPCSTR, SHREGDEL_FLAGS); 407 LONG SHRegDeleteEmptyUSKeyW(HUSKEY, LPCWSTR, SHREGDEL_FLAGS); 408 LONG SHRegDeleteUSValueA(HUSKEY, LPCSTR, SHREGDEL_FLAGS); 409 LONG SHRegDeleteUSValueW(HUSKEY, LPCWSTR, SHREGDEL_FLAGS); 410 HKEY SHRegDuplicateHKey(HKEY); 411 DWORD SHRegEnumUSKeyA(HUSKEY, DWORD, LPSTR, LPDWORD, SHREGENUM_FLAGS); 412 DWORD SHRegEnumUSKeyW(HUSKEY, DWORD, LPWSTR, LPDWORD, SHREGENUM_FLAGS); 413 DWORD SHRegEnumUSValueA(HUSKEY, DWORD, LPSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD, SHREGENUM_FLAGS); 414 DWORD SHRegEnumUSValueW(HUSKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, LPVOID, LPDWORD, SHREGENUM_FLAGS); 415 BOOL SHRegGetBoolUSValueA(LPCSTR, LPCSTR, BOOL, BOOL); 416 BOOL SHRegGetBoolUSValueW(LPCWSTR, LPCWSTR, BOOL, BOOL); 417 DWORD SHRegGetPathA(HKEY, LPCSTR, LPCSTR, LPSTR, DWORD); 418 DWORD SHRegGetPathW(HKEY, LPCWSTR, LPCWSTR, LPWSTR, DWORD); 419 LONG SHRegGetUSValueA(LPCSTR, LPCSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD); 420 LONG SHRegGetUSValueW(LPCWSTR, LPCWSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD); 421 LONG SHRegOpenUSKeyA(LPCSTR, REGSAM, HUSKEY, PHUSKEY, BOOL); 422 LONG SHRegOpenUSKeyW(LPCWSTR, REGSAM, HUSKEY, PHUSKEY, BOOL); 423 DWORD SHRegQueryInfoUSKeyA(HUSKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD, SHREGENUM_FLAGS); 424 DWORD SHRegQueryInfoUSKeyW(HUSKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD, SHREGENUM_FLAGS); 425 LONG SHRegQueryUSValueA(HUSKEY, LPCSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD); 426 LONG SHRegQueryUSValueW(HUSKEY, LPCWSTR, LPDWORD, LPVOID, LPDWORD, BOOL, LPVOID, DWORD); 427 DWORD SHRegSetPathA(HKEY, LPCSTR, LPCSTR, LPCSTR, DWORD); 428 DWORD SHRegSetPathW(HKEY, LPCWSTR, LPCWSTR, LPCWSTR, DWORD); 429 LONG SHRegSetUSValueA(LPCSTR, LPCSTR, DWORD, LPVOID, DWORD, DWORD); 430 LONG SHRegSetUSValueW(LPCWSTR, LPCWSTR, DWORD, LPVOID, DWORD, DWORD); 431 LONG SHRegWriteUSValueA(HUSKEY, LPCSTR, DWORD, LPVOID, DWORD, DWORD); 432 LONG SHRegWriteUSValueW(HUSKEY, LPCWSTR, DWORD, LPVOID, DWORD, DWORD); 433 HRESULT HashData(LPBYTE, DWORD, LPBYTE, DWORD); 434 HPALETTE SHCreateShellPalette(HDC); 435 COLORREF ColorHLSToRGB(WORD, WORD, WORD); 436 COLORREF ColorAdjustLuma(COLORREF, int, BOOL); 437 void ColorRGBToHLS(COLORREF, WORD*, WORD*, WORD*); 438 /** Should not be necessary for D? 439 extern (C): 440 int wnsprintfA(LPSTR, int, LPCSTR, ...); 441 int wnsprintfW(LPWSTR, int, LPCWSTR, ...); 442 extern (Windows): 443 int wvnsprintfA(LPSTR, int, LPCSTR, va_list); 444 int wvnsprintfW(LPWSTR, int, LPCWSTR, va_list); 445 */ 446 447 HINSTANCE MLLoadLibraryA(LPCSTR, HANDLE, DWORD, LPCSTR, BOOL); 448 HINSTANCE MLLoadLibraryW(LPCWSTR, HANDLE, DWORD, LPCWSTR, BOOL); 449 450 HRESULT DllInstall(BOOL, LPCWSTR); 451 452 HRESULT StrRetToBufA(LPSTRRET, LPCITEMIDLIST, LPSTR, UINT); 453 HRESULT StrRetToBufW(LPSTRRET, LPCITEMIDLIST, LPWSTR, UINT); 454 HRESULT StrRetToStrA(LPSTRRET, LPCITEMIDLIST, LPSTR*); 455 HRESULT StrRetToStrW(LPSTRRET, LPCITEMIDLIST, LPWSTR*); 456 HRESULT SHCreateStreamOnFileA(LPCSTR, DWORD, IStream*); 457 HRESULT SHCreateStreamOnFileW(LPCWSTR, DWORD, IStream*); 458 IStream SHOpenRegStream2A(HKEY, LPCSTR, LPCSTR, DWORD); 459 IStream SHOpenRegStream2W(HKEY, LPCWSTR, LPCWSTR, DWORD); 460 IStream SHOpenRegStreamA(HKEY, LPCSTR, LPCSTR, DWORD); 461 IStream SHOpenRegStreamW(HKEY, LPCWSTR, LPCWSTR, DWORD); 462 463 version (Unicode) { 464 alias ChrCmpIW ChrCmpI; 465 alias IntlStrEqNW IntlStrEqN; 466 alias IntlStrEqNIW IntlStrEqNI; 467 alias IntlStrEqWorkerW IntlStrEqWorker; 468 alias SHStrDupW SHStrDup; 469 alias StrCatW StrCat; 470 alias StrCatBuffW StrCatBuff; 471 alias StrChrW StrChr; 472 alias StrChrIW StrChrI; 473 alias StrCmpW StrCmp; 474 alias StrCmpIW StrCmpI; 475 alias StrCmpNIW StrCmpNI; 476 alias StrCmpNW StrCmpN; 477 alias StrCpyNW StrCpyN; 478 alias StrCpyW StrCpy; 479 alias StrCSpnIW StrCSpnI; 480 alias StrCSpnW StrCSpn; 481 alias StrDupW StrDup; 482 alias StrFormatByteSizeW StrFormatByteSize; 483 alias StrFormatKBSizeW StrFormatKBSize; 484 alias StrFromTimeIntervalW StrFromTimeInterval; 485 alias StrIsIntlEqualW StrIsIntlEqual; 486 alias StrNCatW StrNCat; 487 alias StrPBrkW StrPBrk; 488 alias StrRChrW StrRChr; 489 alias StrRChrIW StrRChrI; 490 alias StrRetToBufW StrRetToBuf; 491 alias StrRetToStrW StrRetToStr; 492 alias StrRStrIW StrRStrI; 493 alias StrSpnW StrSpn; 494 alias StrStrIW StrStrI; 495 alias StrStrW StrStr; 496 alias StrToIntW StrToInt; 497 alias StrToIntExW StrToIntEx; 498 alias StrTrimW StrTrim; 499 alias PathAddBackslashW PathAddBackslash; 500 alias PathAddExtensionW PathAddExtension; 501 alias PathAppendW PathAppend; 502 alias PathBuildRootW PathBuildRoot; 503 alias PathCanonicalizeW PathCanonicalize; 504 alias PathCombineW PathCombine; 505 alias PathCommonPrefixW PathCommonPrefix; 506 alias PathCompactPathW PathCompactPath; 507 alias PathCompactPathExW PathCompactPathEx; 508 alias PathCreateFromUrlW PathCreateFromUrl; 509 alias PathFileExistsW PathFileExists; 510 alias PathFindExtensionW PathFindExtension; 511 alias PathFindFileNameW PathFindFileName; 512 alias PathFindNextComponentW PathFindNextComponent; 513 alias PathFindOnPathW PathFindOnPath; 514 alias PathFindSuffixArrayW PathFindSuffixArray; 515 alias PathGetArgsW PathGetArgs; 516 alias PathGetCharTypeW PathGetCharType; 517 alias PathGetDriveNumberW PathGetDriveNumber; 518 alias PathIsContentTypeW PathIsContentType; 519 alias PathIsDirectoryEmptyW PathIsDirectoryEmpty; 520 alias PathIsDirectoryW PathIsDirectory; 521 alias PathIsFileSpecW PathIsFileSpec; 522 alias PathIsLFNFileSpecW PathIsLFNFileSpec; 523 alias PathIsNetworkPathW PathIsNetworkPath; 524 alias PathIsPrefixW PathIsPrefix; 525 alias PathIsRelativeW PathIsRelative; 526 alias PathIsRootW PathIsRoot; 527 alias PathIsSameRootW PathIsSameRoot; 528 alias PathIsSystemFolderW PathIsSystemFolder; 529 alias PathIsUNCServerShareW PathIsUNCServerShare; 530 alias PathIsUNCServerW PathIsUNCServer; 531 alias PathIsUNCW PathIsUNC; 532 alias PathIsURLW PathIsURL; 533 alias PathMakePrettyW PathMakePretty; 534 alias PathMakeSystemFolderW PathMakeSystemFolder; 535 alias PathMatchSpecW PathMatchSpec; 536 alias PathParseIconLocationW PathParseIconLocation; 537 alias PathQuoteSpacesW PathQuoteSpaces; 538 alias PathRelativePathToW PathRelativePathTo; 539 alias PathRemoveArgsW PathRemoveArgs; 540 alias PathRemoveBackslashW PathRemoveBackslash; 541 alias PathRemoveBlanksW PathRemoveBlanks; 542 alias PathRemoveExtensionW PathRemoveExtension; 543 alias PathRemoveFileSpecW PathRemoveFileSpec; 544 alias PathRenameExtensionW PathRenameExtension; 545 alias PathSearchAndQualifyW PathSearchAndQualify; 546 alias PathSetDlgItemPathW PathSetDlgItemPath; 547 alias PathSkipRootW PathSkipRoot; 548 alias PathStripPathW PathStripPath; 549 alias PathStripToRootW PathStripToRoot; 550 alias PathUndecorateW PathUndecorate; 551 alias PathUnExpandEnvStringsW PathUnExpandEnvStrings; 552 alias PathUnmakeSystemFolderW PathUnmakeSystemFolder; 553 alias PathUnquoteSpacesW PathUnquoteSpaces; 554 alias SHCreateStreamOnFileW SHCreateStreamOnFile; 555 alias SHOpenRegStreamW SHOpenRegStream; 556 alias SHOpenRegStream2W SHOpenRegStream2; 557 alias SHCopyKeyW SHCopyKey; 558 alias SHDeleteEmptyKeyW SHDeleteEmptyKey; 559 alias SHDeleteKeyW SHDeleteKey; 560 alias SHEnumKeyExW SHEnumKeyEx; 561 alias SHQueryInfoKeyW SHQueryInfoKey; 562 alias SHQueryValueExW SHQueryValueEx; 563 alias SHEnumValueW SHEnumValue; 564 alias SHGetValueW SHGetValue; 565 alias SHSetValueW SHSetValue; 566 alias SHDeleteValueW SHDeleteValue; 567 alias AssocQueryKeyW AssocQueryKey; 568 alias AssocQueryStringByKeyW AssocQueryStringByKey; 569 alias AssocQueryStringW AssocQueryString; 570 alias UrlApplySchemeW UrlApplyScheme; 571 alias UrlCanonicalizeW UrlCanonicalize; 572 alias UrlCombineW UrlCombine; 573 alias UrlCompareW UrlCompare; 574 alias UrlCreateFromPathW UrlCreateFromPath; 575 alias UrlEscapeW UrlEscape; 576 alias UrlGetLocationW UrlGetLocation; 577 alias UrlGetPartW UrlGetPart; 578 alias UrlHashW UrlHash; 579 alias UrlIsW UrlIs; 580 alias UrlIsFileUrlW UrlIsFileUrl; 581 alias UrlIsNoHistoryW UrlIsNoHistory; 582 alias UrlIsOpaqueW UrlIsOpaque; 583 alias UrlUnescapeW UrlUnescape; 584 alias UrlUnescapeInPlaceW UrlUnescapeInPlace; 585 alias SHRegCreateUSKeyW SHRegCreateUSKey; 586 alias SHRegDeleteEmptyUSKeyW SHRegDeleteEmptyUSKey; 587 alias SHRegDeleteUSValueW SHRegDeleteUSValue; 588 alias SHRegEnumUSKeyW SHRegEnumUSKey; 589 alias SHRegEnumUSValueW SHRegEnumUSValue; 590 alias SHRegGetBoolUSValueW SHRegGetBoolUSValue; 591 alias SHRegGetPathW SHRegGetPath; 592 alias SHRegGetUSValueW SHRegGetUSValue; 593 alias SHRegOpenUSKeyW SHRegOpenUSKey; 594 alias SHRegQueryInfoUSKeyW SHRegQueryInfoUSKey; 595 alias SHRegQueryUSValueW SHRegQueryUSValue; 596 alias SHRegSetPathW SHRegSetPath; 597 alias SHRegSetUSValueW SHRegSetUSValue; 598 alias SHRegWriteUSValueW SHRegWriteUSValue; 599 //alias wnsprintfW wnsprintf; 600 //alias wvnsprintfW wvnsprintf; 601 } else { 602 alias ChrCmpIA ChrCmpI; 603 alias IntlStrEqNA IntlStrEqN; 604 alias IntlStrEqNIA IntlStrEqNI; 605 alias IntlStrEqWorkerA IntlStrEqWorker; 606 alias SHStrDupA SHStrDup; 607 alias StrCatBuffA StrCatBuff; 608 alias StrChrA StrChr; 609 alias StrChrIA StrChrI; 610 alias StrCmpNIA StrCmpNI; 611 alias StrCmpNA StrCmpN; 612 alias StrCSpnIA StrCSpnI; 613 alias StrCSpnA StrCSpn; 614 alias StrDupA StrDup; 615 alias StrFormatByteSizeA StrFormatByteSize; 616 alias StrFormatKBSizeA StrFormatKBSize; 617 alias StrFromTimeIntervalA StrFromTimeInterval; 618 alias StrIsIntlEqualA StrIsIntlEqual; 619 alias StrNCatA StrNCat; 620 alias StrPBrkA StrPBrk; 621 alias StrRChrA StrRChr; 622 alias StrRChrIA StrRChrI; 623 alias StrRetToBufA StrRetToBuf; 624 alias StrRetToStrA StrRetToStr; 625 alias StrRStrIA StrRStrI; 626 alias StrSpnA StrSpn; 627 alias StrStrIA StrStrI; 628 alias StrStrA StrStr; 629 alias StrToIntA StrToInt; 630 alias StrToIntExA StrToIntEx; 631 alias StrTrimA StrTrim; 632 alias PathAddBackslashA PathAddBackslash; 633 alias PathAddExtensionA PathAddExtension; 634 alias PathAppendA PathAppend; 635 alias PathBuildRootA PathBuildRoot; 636 alias PathCanonicalizeA PathCanonicalize; 637 alias PathCombineA PathCombine; 638 alias PathCommonPrefixA PathCommonPrefix; 639 alias PathCompactPathA PathCompactPath; 640 alias PathCompactPathExA PathCompactPathEx; 641 alias PathCreateFromUrlA PathCreateFromUrl; 642 alias PathFileExistsA PathFileExists; 643 alias PathFindExtensionA PathFindExtension; 644 alias PathFindFileNameA PathFindFileName; 645 alias PathFindNextComponentA PathFindNextComponent; 646 alias PathFindOnPathA PathFindOnPath; 647 alias PathFindSuffixArrayA PathFindSuffixArray; 648 alias PathGetArgsA PathGetArgs; 649 alias PathGetCharTypeA PathGetCharType; 650 alias PathGetDriveNumberA PathGetDriveNumber; 651 alias PathIsContentTypeA PathIsContentType; 652 alias PathIsDirectoryEmptyA PathIsDirectoryEmpty; 653 alias PathIsDirectoryA PathIsDirectory; 654 alias PathIsFileSpecA PathIsFileSpec; 655 alias PathIsLFNFileSpecA PathIsLFNFileSpec; 656 alias PathIsNetworkPathA PathIsNetworkPath; 657 alias PathIsPrefixA PathIsPrefix; 658 alias PathIsRelativeA PathIsRelative; 659 alias PathIsRootA PathIsRoot; 660 alias PathIsSameRootA PathIsSameRoot; 661 alias PathIsSystemFolderA PathIsSystemFolder; 662 alias PathIsUNCServerShareA PathIsUNCServerShare; 663 alias PathIsUNCServerA PathIsUNCServer; 664 alias PathIsUNCA PathIsUNC; 665 alias PathIsURLA PathIsURL; 666 alias PathMakePrettyA PathMakePretty; 667 alias PathMakeSystemFolderA PathMakeSystemFolder; 668 alias PathMatchSpecA PathMatchSpec; 669 alias PathParseIconLocationA PathParseIconLocation; 670 alias PathQuoteSpacesA PathQuoteSpaces; 671 alias PathRelativePathToA PathRelativePathTo; 672 alias PathRemoveArgsA PathRemoveArgs; 673 alias PathRemoveBackslashA PathRemoveBackslash; 674 alias PathRemoveBlanksA PathRemoveBlanks; 675 alias PathRemoveExtensionA PathRemoveExtension; 676 alias PathRemoveFileSpecA PathRemoveFileSpec; 677 alias PathRenameExtensionA PathRenameExtension; 678 alias PathSearchAndQualifyA PathSearchAndQualify; 679 alias PathSetDlgItemPathA PathSetDlgItemPath; 680 alias PathSkipRootA PathSkipRoot; 681 alias PathStripPathA PathStripPath; 682 alias PathStripToRootA PathStripToRoot; 683 alias PathUndecorateA PathUndecorate; 684 alias PathUnExpandEnvStringsA PathUnExpandEnvStrings; 685 alias PathUnmakeSystemFolderA PathUnmakeSystemFolder; 686 alias PathUnquoteSpacesA PathUnquoteSpaces; 687 alias SHCreateStreamOnFileA SHCreateStreamOnFile; 688 alias SHOpenRegStreamA SHOpenRegStream; 689 alias SHOpenRegStream2A SHOpenRegStream2; 690 alias SHCopyKeyA SHCopyKey; 691 alias SHDeleteEmptyKeyA SHDeleteEmptyKey; 692 alias SHDeleteKeyA SHDeleteKey; 693 alias SHEnumKeyExA SHEnumKeyEx; 694 alias SHQueryInfoKeyA SHQueryInfoKey; 695 alias SHQueryValueExA SHQueryValueEx; 696 alias SHEnumValueA SHEnumValue; 697 alias SHGetValueA SHGetValue; 698 alias SHSetValueA SHSetValue; 699 alias SHDeleteValueA SHDeleteValue; 700 alias AssocQueryKeyA AssocQueryKey; 701 alias AssocQueryStringByKeyA AssocQueryStringByKey; 702 alias AssocQueryStringA AssocQueryString; 703 alias UrlApplySchemeA UrlApplyScheme; 704 alias UrlCanonicalizeA UrlCanonicalize; 705 alias UrlCombineA UrlCombine; 706 alias UrlCompareA UrlCompare; 707 alias UrlCreateFromPathA UrlCreateFromPath; 708 alias UrlEscapeA UrlEscape; 709 alias UrlGetLocationA UrlGetLocation; 710 alias UrlGetPartA UrlGetPart; 711 alias UrlHashA UrlHash; 712 alias UrlIsA UrlIs; 713 alias UrlIsNoHistoryA UrlIsNoHistory; 714 alias UrlIsOpaqueA UrlIsOpaque; 715 alias UrlUnescapeA UrlUnescape; 716 alias UrlUnescapeInPlaceA UrlUnescapeInPlace; 717 alias SHRegCreateUSKeyA SHRegCreateUSKey; 718 alias SHRegDeleteEmptyUSKeyA SHRegDeleteEmptyUSKey; 719 alias SHRegDeleteUSValueA SHRegDeleteUSValue; 720 alias SHRegEnumUSKeyA SHRegEnumUSKey; 721 alias SHRegEnumUSValueA SHRegEnumUSValue; 722 alias SHRegGetBoolUSValueA SHRegGetBoolUSValue; 723 alias SHRegGetPathA SHRegGetPath; 724 alias SHRegGetUSValueA SHRegGetUSValue; 725 alias SHRegOpenUSKeyA SHRegOpenUSKey; 726 alias SHRegQueryInfoUSKeyA SHRegQueryInfoUSKey; 727 alias SHRegQueryUSValueA SHRegQueryUSValue; 728 alias SHRegSetPathA SHRegSetPath; 729 alias SHRegSetUSValueA SHRegSetUSValue; 730 alias SHRegWriteUSValueA SHRegWriteUSValue; 731 //alias wnsprintfA wnsprintf; 732 //alias wvnsprintfA wvnsprintf; 733 } 734 735 alias StrToInt StrToLong;