20#define LWSTDAPI_(t) t WINAPI
21#define LWSTDAPIV_(t) t WINAPIV
24#define LWSTDAPI_(t) EXTERN_C DECLSPEC_IMPORT t STDAPICALLTYPE
25#define LWSTDAPIV_(t) EXTERN_C DECLSPEC_IMPORT t STDAPIVCALLTYPE
27#define LWSTDAPI_(t) STDAPI_(t)
28#define LWSTDAPIV_(t) STDAPIV_(t)
31#define LWSTDAPI LWSTDAPI_(HRESULT)
32#define LWSTDAPIV LWSTDAPIV_(HRESULT)
45#define SHACF_DEFAULT 0x00000000
46#define SHACF_FILESYSTEM 0x00000001
47#define SHACF_URLHISTORY 0x00000002
48#define SHACF_URLMRU 0x00000004
49#define SHACF_URLALL (SHACF_URLHISTORY|SHACF_URLMRU)
50#define SHACF_USETAB 0x00000008
51#define SHACF_FILESYS_ONLY 0x00000010
52#if (_WIN32_IE >= _WIN32_IE_IE60)
53#define SHACF_FILESYS_DIRS 0x00000020
55#if (_WIN32_IE >= _WIN32_IE_IE70)
56#define SHACF_VIRTUAL_NAMESPACE 0x00000040
58#define SHACF_AUTOSUGGEST_FORCE_ON 0x10000000
59#define SHACF_AUTOSUGGEST_FORCE_OFF 0x20000000
60#define SHACF_AUTOAPPEND_FORCE_ON 0x40000000
61#define SHACF_AUTOAPPEND_FORCE_OFF 0x80000000
76#if (_WIN32_IE >= _WIN32_IE_IE60)
81#if (_WIN32_IE >= _WIN32_IE_IE70)
85#if (NTDDI_VERSION >= NTDDI_VISTA)
88#if (NTDDI_VERSION >= NTDDI_WIN7)
97#define FDTF_SHORTTIME 0x00000001
98#define FDTF_SHORTDATE 0x00000002
99#define FDTF_DEFAULT (FDTF_SHORTDATE | FDTF_SHORTTIME)
100#define FDTF_LONGDATE 0x00000004
101#define FDTF_LONGTIME 0x00000008
102#define FDTF_RELATIVE 0x00000010
103#define FDTF_LTRDATE 0x00000100
104#define FDTF_RTLDATE 0x00000200
105#define FDTF_NOAUTOREADINGORDER 0x00000400
108#define DLLVER_MAJOR_MASK 0xFFFF000000000000
109#define DLLVER_MINOR_MASK 0x0000FFFF00000000
110#define DLLVER_BUILD_MASK 0x00000000FFFF0000
111#define DLLVER_QFE_MASK 0x000000000000FFFF
113#define MAKEDLLVERULL(major, minor, build, qfe) \
114 (((ULONGLONG)(major) << 48) | ((ULONGLONG)(minor) << 32) | ((ULONGLONG)(build) << 16) | (ULONGLONG)(qfe))
116#define DLLVER_PLATFORM_WINDOWS 0x01
117#define DLLVER_PLATFORM_NT 0x02
141#if defined(__REACTOS__) || (WINVER >= _WIN32_WINNT_WIN10)
148#define OFFSETOFCLASS(base, derived) \
149 ((DWORD)(DWORD_PTR)(static_cast<base*>((derived*)8))-8)
151#define QITABENTMULTI(Cthis, Ifoo, Iimpl) { &IID_##Ifoo, OFFSETOFCLASS(Iimpl, Cthis) }
152#define QITABENT(Cthis, Ifoo) QITABENTMULTI(Cthis, Ifoo, Ifoo)
166#if (_WIN32_IE >= _WIN32_IE_IE60)
167#define SHGVSPB_PERUSER 0x00000001
168#define SHGVSPB_ALLUSERS 0x00000002
169#define SHGVSPB_PERFOLDER 0x00000004
170#define SHGVSPB_ALLFOLDERS 0x00000008
171#define SHGVSPB_INHERIT 0x00000010
172#define SHGVSPB_ROAM 0x00000020
173#define SHGVSPB_NOAUTODEFAULTS 0x80000000
174#define SHGVSPB_FOLDER (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER)
175#define SHGVSPB_FOLDERNODEFAULTS (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER | SHGVSPB_NOAUTODEFAULTS)
176#define SHGVSPB_USERDEFAULTS (SHGVSPB_PERUSER | SHGVSPB_ALLFOLDERS)
177#define SHGVSPB_GLOBALDEFAULTS (SHGVSPB_ALLUSERS | SHGVSPB_ALLFOLDERS)
183#if (_WIN32_IE >= 0x0602)
191#if (_WIN32_IE >= _WIN32_IE_IE60SP2)
214#ifndef NO_SHLWAPI_GDI
224#ifndef NO_SHLWAPI_ISOS
228#define OS_WIN95ORGREATER 2
229#define OS_NT4ORGREATER 3
231#define OS_WIN98ORGREATER 5
232#define OS_WIN98_GOLD 6
233#define OS_WIN2000ORGREATER 7
234#define OS_WIN2000PRO 8
235#define OS_WIN2000SERVER 9
236#define OS_WIN2000ADVSERVER 10
237#define OS_WIN2000DATACENTER 11
238#define OS_WIN2000TERMINAL 12
239#define OS_EMBEDDED 13
240#define OS_TERMINALCLIENT 14
241#define OS_TERMINALREMOTEADMIN 15
242#define OS_WIN95_GOLD 16
243#define OS_MEORGREATER 17
244#define OS_XPORGREATER 18
246#define OS_PROFESSIONAL 20
247#define OS_DATACENTER 21
248#define OS_ADVSERVER 22
250#define OS_TERMINALSERVER 24
251#define OS_PERSONALTERMINALSERVER 25
252#define OS_FASTUSERSWITCHING 26
253#define OS_WELCOMELOGONUI 27
254#define OS_DOMAINMEMBER 28
255#define OS_ANYSERVER 29
257#define OS_WEBSERVER 31
258#define OS_SMALLBUSINESSSERVER 32
259#define OS_TABLETPC 33
260#define OS_SERVERADMINUI 34
261#define OS_MEDIACENTER 35
262#define OS_APPLIANCE 36
269#ifndef NO_SHLWAPI_PATH
271#define GCT_INVALID 0x0
272#define GCT_LFNCHAR 0x1
273#define GCT_SHORTCHAR 0x2
275#define GCT_SEPARATOR 0x8
278#if (_WIN32_IE >= _WIN32_IE_IE70)
356#if (_WIN32_IE >= _WIN32_IE_IE70)
398#define PathAddBackslash PathAddBackslashW
399#define PathAddExtension PathAddExtensionW
400#define PathAppend PathAppendW
401#define PathBuildRoot PathBuildRootW
402#define PathCanonicalize PathCanonicalizeW
403#define PathCombine PathCombineW
404#define PathCompactPath PathCompactPathW
405#define PathCompactPathEx PathCompactPathExW
406#define PathCommonPrefix PathCommonPrefixW
407#define PathCreateFromUrl PathCreateFromUrlW
408#define PathFileExists PathFileExistsW
409#define PathFindExtension PathFindExtensionW
410#define PathFindFileName PathFindFileNameW
411#define PathFindNextComponent PathFindNextComponentW
412#define PathFindOnPath PathFindOnPathW
413#define PathFindSuffixArray PathFindSuffixArrayW
414#define PathGetArgs PathGetArgsW
415#define PathGetCharType PathGetCharTypeW
416#define PathGetDriveNumber PathGetDriveNumberW
417#define PathIsContentType PathIsContentTypeW
418#define PathIsDirectory PathIsDirectoryW
419#define PathIsDirectoryEmpty PathIsDirectoryEmptyW
420#define PathIsFileSpec PathIsFileSpecW
421#define PathIsLFNFileSpec PathIsLFNFileSpecW
422#define PathIsNetworkPath PathIsNetworkPathW
423#define PathIsPrefix PathIsPrefixW
424#define PathIsRelative PathIsRelativeW
425#define PathIsRoot PathIsRootW
426#define PathIsSameRoot PathIsSameRootW
427#define PathIsSystemFolder PathIsSystemFolderW
428#define PathIsUNC PathIsUNCW
429#define PathIsUNCServer PathIsUNCServerW
430#define PathIsUNCServerShare PathIsUNCServerShareW
431#define PathIsURL PathIsURLW
432#define PathMakePretty PathMakePrettyW
433#define PathMakeSystemFolder PathMakeSystemFolderW
434#define PathMatchSpec PathMatchSpecW
435#if (_WIN32_IE >= _WIN32_IE_IE70)
436#define PathMatchSpecEx PathMatchSpecExW
438#define PathParseIconLocation PathParseIconLocationW
439#define PathQuoteSpaces PathQuoteSpacesW
440#define PathRelativePathTo PathRelativePathToW
441#define PathRemoveArgs PathRemoveArgsW
442#define PathRemoveBackslash PathRemoveBackslashW
443#define PathRemoveBlanks PathRemoveBlanksW
444#define PathRemoveExtension PathRemoveExtensionW
445#define PathRemoveFileSpec PathRemoveFileSpecW
446#define PathRenameExtension PathRenameExtensionW
447#define PathSearchAndQualify PathSearchAndQualifyW
448#define PathSetDlgItemPath PathSetDlgItemPathW
449#define PathSkipRoot PathSkipRootW
450#define PathStripPath PathStripPathW
451#define PathStripToRoot PathStripToRootW
452#define PathUndecorate PathUndecorateW
453#define PathUnExpandEnvStrings PathUnExpandEnvStringsW
454#define PathUnmakeSystemFolder PathUnmakeSystemFolderW
455#define PathUnquoteSpaces PathUnquoteSpacesW
457#define PathAddBackslash PathAddBackslashA
458#define PathAddExtension PathAddExtensionA
459#define PathAppend PathAppendA
460#define PathBuildRoot PathBuildRootA
461#define PathCanonicalize PathCanonicalizeA
462#define PathCombine PathCombineA
463#define PathCompactPath PathCompactPathA
464#define PathCompactPathEx PathCompactPathExA
465#define PathCommonPrefix PathCommonPrefixA
466#define PathCreateFromUrl PathCreateFromUrlA
467#define PathFileExists PathFileExistsA
468#define PathFindExtension PathFindExtensionA
469#define PathFindFileName PathFindFileNameA
470#define PathFindNextComponent PathFindNextComponentA
471#define PathFindOnPath PathFindOnPathA
472#define PathFindSuffixArray PathFindSuffixArrayA
473#define PathGetArgs PathGetArgsA
474#define PathGetCharType PathGetCharTypeA
475#define PathGetDriveNumber PathGetDriveNumberA
476#define PathIsContentType PathIsContentTypeA
477#define PathIsDirectory PathIsDirectoryA
478#define PathIsDirectoryEmpty PathIsDirectoryEmptyA
479#define PathIsFileSpec PathIsFileSpecA
480#define PathIsLFNFileSpec PathIsLFNFileSpecA
481#define PathIsNetworkPath PathIsNetworkPathA
482#define PathIsPrefix PathIsPrefixA
483#define PathIsRelative PathIsRelativeA
484#define PathIsRoot PathIsRootA
485#define PathIsSameRoot PathIsSameRootA
486#define PathIsSystemFolder PathIsSystemFolderA
487#define PathIsUNC PathIsUNCA
488#define PathIsUNCServer PathIsUNCServerA
489#define PathIsUNCServerShare PathIsUNCServerShareA
490#define PathIsURL PathIsURLA
491#define PathMakePretty PathMakePrettyA
492#define PathMakeSystemFolder PathMakeSystemFolderA
493#define PathMatchSpec PathMatchSpecA
494#if (_WIN32_IE >= _WIN32_IE_IE70)
495#define PathMatchSpecEx PathMatchSpecExA
497#define PathParseIconLocation PathParseIconLocationA
498#define PathQuoteSpaces PathQuoteSpacesA
499#define PathRelativePathTo PathRelativePathToA
500#define PathRemoveArgs PathRemoveArgsA
501#define PathRemoveBackslash PathRemoveBackslashA
502#define PathRemoveBlanks PathRemoveBlanksA
503#define PathRemoveExtension PathRemoveExtensionA
504#define PathRemoveFileSpec PathRemoveFileSpecA
505#define PathRenameExtension PathRenameExtensionA
506#define PathSearchAndQualify PathSearchAndQualifyA
507#define PathSetDlgItemPath PathSetDlgItemPathA
508#define PathSkipRoot PathSkipRootA
509#define PathStripPath PathStripPathA
510#define PathStripToRoot PathStripToRootA
511#define PathUndecorate PathUndecorateA
512#define PathUnExpandEnvStrings PathUnExpandEnvStringsA
513#define PathUnmakeSystemFolder PathUnmakeSystemFolderA
514#define PathUnquoteSpaces PathUnquoteSpacesA
517#define URL_APPLY_DEFAULT 0x00000001
518#define URL_APPLY_GUESSSCHEME 0x00000002
519#define URL_APPLY_GUESSFILE 0x00000004
520#define URL_APPLY_FORCEAPPLY 0x00000008
521#define URL_ESCAPE_PERCENT 0x00001000
522#define URL_ESCAPE_SEGMENT_ONLY 0x00002000
523#define URL_FILE_USE_PATHURL 0x00010000
524#define URL_ESCAPE_AS_UTF8 0x00040000
525#define URL_UNESCAPE_INPLACE 0x00100000
526#define URL_CONVERT_IF_DOSPATH 0x00200000
527#define URL_UNESCAPE_HIGH_ANSI_ONLY 0x00400000
528#define URL_INTERNAL_PATH 0x00800000
529#define URL_DONT_ESCAPE_EXTRA_INFO 0x02000000
530#define URL_ESCAPE_SPACES_ONLY 0x04000000
531#define URL_DONT_SIMPLIFY 0x08000000
532#define URL_UNESCAPE 0x10000000
533#define URL_ESCAPE_UNSAFE 0x20000000
534#define URL_PLUGGABLE_PROTOCOL 0x40000000
535#define URL_WININET_COMPATIBILITY 0x80000000
536#define URL_UNESCAPE_AS_UTF8 URL_ESCAPE_AS_UTF8
537#define URL_UNESCAPE_URI_COMPONENT URL_UNESCAPE_AS_UTF8
538#define URL_NO_META URL_DONT_SIMPLIFY
539#define URL_DONT_UNESCAPE_EXTRA_INFO URL_DONT_ESCAPE_EXTRA_INFO
540#define URL_BROWSER_MODE URL_DONT_ESCAPE_EXTRA_INFO
563#if (_WIN32_IE >= _WIN32_IE_IE60)
568#if (_WIN32_IE >= _WIN32_IE_IE70)
572#if (NTDDI_VERSION >= NTDDI_VISTA)
575#if (NTDDI_VERSION >= NTDDI_VISTASP1)
578#if (NTDDI_VERSION >= NTDDI_WIN7)
594#define URL_PARTFLAG_KEEPSCHEME 0x00000001
642#define UrlIsFileUrlA(x) UrlIsA(x, URLIS_FILEURL)
643#define UrlIsFileUrlW(x) UrlIsW(x, URLIS_FILEURL)
656#define UrlApplyScheme UrlApplySchemeW
657#define UrlCanonicalize UrlCanonicalizeW
658#define UrlCombine UrlCombineW
659#define UrlCompare UrlCompareW
660#define UrlEscape UrlEscapeW
661#define UrlGetLocation UrlGetLocationW
662#define UrlGetPart UrlGetPartW
663#define UrlHash UrlHashW
665#define UrlIsFileUrl UrlIsFileUrlW
666#define UrlIsNoHistory UrlIsNoHistoryW
667#define UrlIsOpaque UrlIsOpaqueW
668#define UrlUnescape UrlUnescapeW
669#define UrlCreateFromPath UrlCreateFromPathW
670#define ParseURL ParseURLW
672#define UrlApplyScheme UrlApplySchemeA
673#define UrlCanonicalize UrlCanonicalizeA
674#define UrlCombine UrlCombineA
675#define UrlCompare UrlCompareA
676#define UrlEscape UrlEscapeA
677#define UrlGetLocation UrlGetLocationA
678#define UrlGetPart UrlGetPartA
679#define UrlHash UrlHashA
681#define UrlIsFileUrl UrlIsFileUrlA
682#define UrlIsNoHistory UrlIsNoHistoryA
683#define UrlIsOpaque UrlIsOpaqueA
684#define UrlUnescape UrlUnescapeA
685#define UrlCreateFromPath UrlCreateFromPathA
686#define ParseURL ParseURLA
689#define UrlEscapeSpaces(x, y, z) UrlCanonicalize(x, y, z, URL_ESCAPE_SPACES_ONLY | URL_DONT_ESCAPE_EXTRA_INFO)
690#define UrlUnescapeInPlace(x, y) UrlUnescape(x, NULL, NULL, y | URL_UNESCAPE_INPLACE)
695#ifndef NO_SHLWAPI_REG
697#define SRRF_RT_REG_NONE 0x0001
698#define SRRF_RT_REG_SZ 0x0002
699#define SRRF_RT_REG_EXPAND_SZ 0x0004
700#define SRRF_RT_REG_BINARY 0x0008
701#define SRRF_RT_REG_DWORD 0x0010
702#define SRRF_RT_REG_MULTI_SZ 0x0020
703#define SRRF_RT_REG_QWORD 0x0040
704#define SRRF_RT_ANY 0xFFFF
705#define SRRF_RT_DWORD (SRRF_RT_REG_BINARY | SRRF_RT_REG_DWORD)
706#define SRRF_RT_QWORD (SRRF_RT_REG_BINARY | SRRF_RT_REG_QWORD)
708#define SRRF_RM_ANY 0x00000
709#define SRRF_RM_NORMAL 0x10000
710#define SRRF_RM_SAFE 0x20000
711#define SRRF_RM_SAFENETWORK 0x40000
713#define SRRF_NOEXPAND 0x10000000
714#define SRRF_ZEROONFAILURE 0x20000000
715#define SRRF_NOVIRT 0x40000000
719#define SHREGSET_HKCU 0x1
720#define SHREGSET_FORCE_HKCU 0x2
721#define SHREGSET_HKLM 0x4
722#define SHREGSET_FORCE_HKLM 0x8
723#define SHREGSET_DEFAULT (SHREGSET_FORCE_HKCU | SHREGSET_HKLM)
801#define SHCopyKey SHCopyKeyW
802#define SHDeleteEmptyKey SHDeleteEmptyKeyW
803#define SHDeleteKey SHDeleteKeyW
804#define SHDeleteOrphanKey SHDeleteOrphanKeyW
805#define SHDeleteValue SHDeleteValueW
806#define SHEnumKeyEx SHEnumKeyExW
807#define SHEnumValue SHEnumValueW
808#define SHGetValue SHGetValueW
809#define SHSetValue SHSetValueW
810#define SHQueryValueEx SHQueryValueExW
811#define SHQueryInfoKey SHQueryInfoKeyW
812#define SHRegCreateUSKey SHRegCreateUSKeyW
813#define SHRegDeleteEmptyUSKey SHRegDeleteEmptyUSKeyW
814#define SHRegDeleteUSValue SHRegDeleteUSValueW
815#define SHRegEnumUSKey SHRegEnumUSKeyW
816#define SHRegEnumUSValue SHRegEnumUSValueW
817#define SHRegGetBoolUSValue SHRegGetBoolUSValueW
818#define SHRegGetPath SHRegGetPathW
819#define SHRegGetUSValue SHRegGetUSValueW
820#define SHRegGetValue SHRegGetValueW
821#define SHRegOpenUSKey SHRegOpenUSKeyW
822#define SHRegQueryInfoUSKey SHRegQueryInfoUSKeyW
823#define SHRegQueryUSValue SHRegQueryUSValueW
824#define SHRegSetPath SHRegSetPathW
825#define SHRegSetUSValue SHRegSetUSValueW
826#define SHRegWriteUSValue SHRegWriteUSValueW
827#define SHRegGetInt SHRegGetIntW
829#define SHCopyKey SHCopyKeyA
830#define SHDeleteEmptyKey SHDeleteEmptyKeyA
831#define SHDeleteKey SHDeleteKeyA
832#define SHDeleteOrphanKey SHDeleteOrphanKeyA
833#define SHDeleteValue SHDeleteValueA
834#define SHEnumKeyEx SHEnumKeyExA
835#define SHEnumValue SHEnumValueA
836#define SHGetValue SHGetValueA
837#define SHSetValue SHSetValueA
838#define SHQueryValueEx SHQueryValueExA
839#define SHQueryInfoKey SHQueryInfoKeyA
840#define SHRegCreateUSKey SHRegCreateUSKeyA
841#define SHRegDeleteEmptyUSKey SHRegDeleteEmptyUSKeyA
842#define SHRegDeleteUSValue SHRegDeleteUSValueA
843#define SHRegEnumUSKey SHRegEnumUSKeyA
844#define SHRegEnumUSValue SHRegEnumUSValueA
845#define SHRegGetBoolUSValue SHRegGetBoolUSValueA
846#define SHRegGetPath SHRegGetPathA
847#define SHRegGetUSValue SHRegGetUSValueA
848#define SHRegGetValue SHRegGetValueA
849#define SHRegOpenUSKey SHRegOpenUSKeyA
850#define SHRegQueryInfoUSKey SHRegQueryInfoUSKeyA
851#define SHRegQueryUSValue SHRegQueryUSValueA
852#define SHRegSetPath SHRegSetPathA
853#define SHRegSetUSValue SHRegSetUSValueA
854#define SHRegWriteUSValue SHRegWriteUSValueA
871#if (NTDDI_VERSION >= NTDDI_WIN8)
876#if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
880#if (NTDDI_VERSION >= NTDDI_WIN10_RS4)
897#if (_WIN32_IE >= _WIN32_IE_IE60)
904#if (_WIN32_IE >= _WIN32_IE_IE80)
909#if (NTDDI_VERSION >= NTDDI_WIN10)
931#if (_WIN32_IE >= _WIN32_IE_IE60)
969#define INTERFACE IQueryAssociations
984#if !defined(__cplusplus) || defined(CINTERFACE)
985#define IQueryAssociations_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
986#define IQueryAssociations_AddRef(p) (p)->lpVtbl->AddRef(p)
987#define IQueryAssociations_Release(p) (p)->lpVtbl->Release(p)
988#define IQueryAssociations_Init(p,a,b,c,d) (p)->lpVtbl->Init(p,a,b,c,d)
989#define IQueryAssociations_GetString(p,a,b,c,d,e) (p)->lpVtbl->GetString(p,a,b,c,d,e)
990#define IQueryAssociations_GetKey(p,a,b,c,d) (p)->lpVtbl->GetKey(p,a,b,c,d)
991#define IQueryAssociations_GetData(p,a,b,c,d,e) (p)->lpVtbl->GetData(p,a,b,c,d,e)
992#define IQueryAssociations_GetEnum(p,a,b,c,d,e) (p)->lpVtbl->GetEnum(p,a,b,c,d,e)
998#if (_WIN32_IE >= _WIN32_IE_IE60SP1)
1003#define PERCEIVEDFLAG_UNDEFINED 0x0000
1004#define PERCEIVEDFLAG_SOFTCODED 0x0001
1005#define PERCEIVEDFLAG_HARDCODED 0x0002
1006#define PERCEIVEDFLAG_NATIVESUPPORT 0x0004
1007#define PERCEIVEDFLAG_GDIPLUS 0x0010
1008#define PERCEIVEDFLAG_WMSDK 0x0020
1009#define PERCEIVEDFLAG_ZIPFOLDER 0x0040
1020#define AssocQueryString AssocQueryStringW
1021#define AssocQueryStringByKey AssocQueryStringByKeyW
1022#define AssocQueryKey AssocQueryKeyW
1024#define AssocQueryString AssocQueryStringA
1025#define AssocQueryStringByKey AssocQueryStringByKeyA
1026#define AssocQueryKey AssocQueryKeyA
1032#ifndef NO_SHLWAPI_STREAM
1046#define SHCreateStreamOnFile SHCreateStreamOnFileW
1047#define SHOpenRegStream SHOpenRegStream2W
1048#define SHOpenRegStream2 SHOpenRegStream2W
1050#define SHCreateStreamOnFile SHCreateStreamOnFileA
1051#define SHOpenRegStream SHOpenRegStream2A
1052#define SHOpenRegStream2 SHOpenRegStream2A
1057#if !defined(IStream_Read) && defined(__cplusplus)
1066#ifndef NO_SHLWAPI_STRFCNS
1068#define STIF_DEFAULT 0x0L
1069#define STIF_SUPPORT_HEX 0x1L
1078#if (_WIN32_IE >= _WIN32_IE_IE60)
1090#define IntlStrEqNA(s1,s2,n) IntlStrEqWorkerA(TRUE,s1,s2,n)
1091#define IntlStrEqNW(s1,s2,n) IntlStrEqWorkerW(TRUE,s1,s2,n)
1092#define IntlStrEqNIA(s1,s2,n) IntlStrEqWorkerA(FALSE,s1,s2,n)
1093#define IntlStrEqNIW(s1,s2,n) IntlStrEqWorkerW(FALSE,s1,s2,n)
1096#define StrCatA lstrcatA
1104#define StrCmpA lstrcmpA
1106#define StrCmpIA lstrcmpiA
1112#define StrCpyA lstrcpyA
1114#define StrCpyNA lstrcpynA
1129#define StrIntlEqNA(a,b,c) StrIsIntlEqualA(TRUE,a,b,c)
1130#define StrIntlEqNW(a,b,c) StrIsIntlEqualW(TRUE,a,b,c)
1131#define StrIntlEqNIA(a,b,c) StrIsIntlEqualA(FALSE,a,b,c)
1132#define StrIntlEqNIW(a,b,c) StrIsIntlEqualW(FALSE,a,b,c)
1165#if (_WIN32_IE >= _WIN32_IE_IE60)
1169#if (_WIN32_IE >= _WIN32_IE_IE60SP2)
1176#define ChrCmpI ChrCmpIW
1177#define IntlStrEqN IntlStrEqNW
1178#define IntlStrEqNI IntlStrEqNIW
1179#define SHStrDup SHStrDupW
1180#define StrCat StrCatW
1181#define StrCatBuff StrCatBuffW
1182#define StrChr StrChrW
1183#define StrChrI StrChrIW
1184#define StrCmp StrCmpW
1185#define StrCmpI StrCmpIW
1186#define StrCmpN StrCmpNW
1187#define StrCmpNI StrCmpNIW
1188#define StrCpy StrCpyW
1189#define StrCpyN StrCpyNW
1190#define StrCSpn StrCSpnW
1191#define StrCSpnI StrCSpnIW
1192#define StrDup StrDupW
1193#define StrFormatByteSize StrFormatByteSizeW
1194#define StrFormatByteSize64 StrFormatByteSizeW
1195#define StrFormatKBSize StrFormatKBSizeW
1196#define StrFromTimeInterval StrFromTimeIntervalW
1197#define StrIntlEqN StrIntlEqNW
1198#define StrIntlEqNI StrIntlEqNIW
1199#define StrIsIntlEqual StrIsIntlEqualW
1200#define StrNCat StrNCatW
1201#define StrPBrk StrPBrkW
1202#define StrRChr StrRChrW
1203#define StrRChrI StrRChrIW
1204#define StrRStrI StrRStrIW
1205#define StrRetToBuf StrRetToBufW
1206#define StrRetToStr StrRetToStrW
1207#define StrSpn StrSpnW
1208#define StrStr StrStrW
1209#define StrStrI StrStrIW
1210#define StrToInt StrToIntW
1211#define StrToIntEx StrToIntExW
1212#define StrTrim StrTrimW
1213#define wnsprintf wnsprintfW
1214#define wvnsprintf wvnsprintfW
1215#if (_WIN32_IE >= _WIN32_IE_IE60)
1216#define StrToInt64Ex StrToInt64ExW
1218#if (_WIN32_IE >= _WIN32_IE_IE60SP2)
1219#define IsCharSpace IsCharSpaceW
1222#define ChrCmpI ChrCmpIA
1223#define IntlStrEqN IntlStrEqNA
1224#define IntlStrEqNI IntlStrEqNIA
1225#define SHStrDup SHStrDupA
1226#define StrCat StrCatA
1227#define StrCatBuff StrCatBuffA
1228#define StrChr StrChrA
1229#define StrChrI StrChrIA
1230#define StrCmp StrCmpA
1231#define StrCmpI StrCmpIA
1232#define StrCmpN StrCmpNA
1233#define StrCmpNI StrCmpNIA
1234#define StrCpy StrCpyA
1235#define StrCpyN StrCpyNA
1236#define StrCSpn StrCSpnA
1237#define StrCSpnI StrCSpnIA
1238#define StrDup StrDupA
1239#define StrFormatByteSize StrFormatByteSizeA
1240#define StrFormatByteSize64 StrFormatByteSize64A
1241#define StrFormatKBSize StrFormatKBSizeA
1242#define StrFromTimeInterval StrFromTimeIntervalA
1243#define StrIntlEqN StrIntlEqNA
1244#define StrIntlEqNI StrIntlEqNIA
1245#define StrIsIntlEqual StrIsIntlEqualA
1246#define StrNCat StrNCatA
1247#define StrPBrk StrPBrkA
1248#define StrRChr StrRChrA
1249#define StrRChrI StrRChrIA
1250#define StrRStrI StrRStrIA
1251#define StrRetToBuf StrRetToBufA
1252#define StrRetToStr StrRetToStrA
1253#define StrSpn StrSpnA
1254#define StrStr StrStrA
1255#define StrStrI StrStrIA
1256#define StrToInt StrToIntA
1257#define StrToIntEx StrToIntExA
1258#define StrTrim StrTrimA
1259#define wnsprintf wnsprintfA
1260#define wvnsprintf wvnsprintfA
1261#if (_WIN32_IE >= _WIN32_IE_IE60)
1262#define StrToInt64Ex StrToInt64ExA
1264#if (_WIN32_IE >= _WIN32_IE_IE60SP2)
1265#define IsCharSpace IsCharSpaceA
1269#if (NTDDI_VERSION >= NTDDI_VISTASP1)
#define DECLARE_INTERFACE_(i, b)
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
INT WINAPI StrToIntW(LPCWSTR lpString)
BOOL WINAPI IntlStrEqWorkerA(BOOL bCase, LPCSTR lpszStr, LPCSTR lpszComp, int iLen)
LPWSTR WINAPI StrChrIW(LPCWSTR lpszStr, WCHAR ch)
LPSTR WINAPI StrRStrIA(LPCSTR lpszStr, LPCSTR lpszEnd, LPCSTR lpszSearch)
int WINAPI StrCSpnIA(LPCSTR lpszStr, LPCSTR lpszMatch)
int WINAPI StrCSpnW(LPCWSTR lpszStr, LPCWSTR lpszMatch)
LPWSTR WINAPI StrChrW(LPCWSTR lpszStr, WCHAR ch)
LPWSTR WINAPI StrRChrW(LPCWSTR str, LPCWSTR end, WORD ch)
LPSTR WINAPI StrStrIA(LPCSTR lpszStr, LPCSTR lpszSearch)
LPSTR WINAPI StrRChrIA(LPCSTR lpszStr, LPCSTR lpszEnd, WORD ch)
INT WINAPI StrCmpNIA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen)
BOOL WINAPI IntlStrEqWorkerW(BOOL bCase, LPCWSTR lpszStr, LPCWSTR lpszComp, int iLen)
LPSTR WINAPI StrChrIA(LPCSTR lpszStr, WORD ch)
LPWSTR WINAPI StrRChrIW(LPCWSTR str, LPCWSTR end, WORD ch)
LPWSTR WINAPI StrStrW(LPCWSTR lpszStr, LPCWSTR lpszSearch)
LPSTR WINAPI StrRChrA(LPCSTR lpszStr, LPCSTR lpszEnd, WORD ch)
INT WINAPI StrToIntA(LPCSTR lpszStr)
int WINAPI StrCSpnIW(LPCWSTR lpszStr, LPCWSTR lpszMatch)
LPSTR WINAPI StrChrA(LPCSTR lpszStr, WORD ch)
INT WINAPI StrCmpNIW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
LPWSTR WINAPI StrStrIW(LPCWSTR lpszStr, LPCWSTR lpszSearch)
int WINAPI StrCSpnA(LPCSTR lpszStr, LPCSTR lpszMatch)
INT WINAPI StrCmpNW(LPCWSTR lpszStr, LPCWSTR lpszComp, INT iLen)
LPSTR WINAPI StrStrA(LPCSTR lpszStr, LPCSTR lpszSearch)
LPWSTR WINAPI StrRStrIW(LPCWSTR lpszStr, LPCWSTR lpszEnd, LPCWSTR lpszSearch)
INT WINAPI StrCmpNA(LPCSTR lpszStr, LPCSTR lpszComp, INT iLen)
BOOL WINAPI DECLSPEC_HOTPATCH IsCharSpaceW(WCHAR wc)
BOOL WINAPI DECLSPEC_HOTPATCH IsCharSpaceA(CHAR c)
int WINAPI PathCommonPrefixW(const WCHAR *file1, const WCHAR *file2, WCHAR *path)
BOOL WINAPI PathIsRootA(const char *path)
BOOL WINAPI PathMatchSpecA(const char *path, const char *mask)
BOOL WINAPI PathIsSameRootW(const WCHAR *path1, const WCHAR *path2)
void WINAPI PathRemoveExtensionW(WCHAR *path)
void WINAPI PathRemoveBlanksW(WCHAR *path)
BOOL WINAPI PathIsUNCW(const WCHAR *path)
const WCHAR *WINAPI UrlGetLocationW(const WCHAR *url)
LPSTR WINAPI PathFindExtensionA(const char *path)
INT WINAPI UrlCompareW(const WCHAR *url1, const WCHAR *url2, BOOL ignore_slash)
BOOL WINAPI PathIsPrefixA(const char *prefix, const char *path)
BOOL WINAPI IsInternetESCEnabled(void)
int WINAPI PathCommonPrefixA(const char *file1, const char *file2, char *path)
void WINAPI PathRemoveBlanksA(char *path)
void WINAPI PathUnquoteSpacesW(WCHAR *path)
int WINAPI PathGetDriveNumberW(const WCHAR *path)
void WINAPI PathQuoteSpacesA(char *path)
BOOL WINAPI PathRemoveFileSpecA(char *path)
WCHAR *WINAPI PathRemoveBackslashW(WCHAR *path)
BOOL WINAPI UrlIsNoHistoryA(const char *url)
BOOL WINAPI PathIsUNCServerShareW(const WCHAR *path)
BOOL WINAPI PathIsUNCServerA(const char *path)
BOOL WINAPI PathIsFileSpecA(const char *path)
INT WINAPI UrlCompareA(const char *url1, const char *url2, BOOL ignore_slash)
WCHAR *WINAPI PathFindFileNameW(const WCHAR *path)
const char *WINAPI UrlGetLocationA(const char *url)
BOOL WINAPI PathFileExistsA(const char *path)
BOOL WINAPI UrlIsW(const WCHAR *url, URLIS Urlis)
UINT WINAPI PathGetCharTypeA(UCHAR ch)
BOOL WINAPI UrlIsOpaqueA(const char *url)
BOOL WINAPI PathRelativePathToA(char *path, const char *from, DWORD attributes_from, const char *to, DWORD attributes_to)
char *WINAPI PathFindNextComponentA(const char *path)
char *WINAPI PathGetArgsA(const char *path)
BOOL WINAPI PathSearchAndQualifyA(const char *path, char *buffer, UINT length)
BOOL WINAPI UrlIsOpaqueW(const WCHAR *url)
void WINAPI PathStripPathA(char *path)
void WINAPI PathStripPathW(WCHAR *path)
BOOL WINAPI PathRemoveFileSpecW(WCHAR *path)
void WINAPI PathRemoveExtensionA(char *path)
LPWSTR WINAPI PathFindExtensionW(const WCHAR *path)
char *WINAPI PathSkipRootA(const char *path)
BOOL WINAPI PathUnExpandEnvStringsW(const WCHAR *path, WCHAR *buffer, UINT buf_len)
int WINAPI PathGetDriveNumberA(const char *path)
BOOL WINAPI PathIsRelativeA(const char *path)
int WINAPI PathParseIconLocationA(char *path)
void WINAPI PathUnquoteSpacesA(char *path)
BOOL WINAPI PathIsRelativeW(const WCHAR *path)
int WINAPI PathParseIconLocationW(WCHAR *path)
BOOL WINAPI UrlIsA(const char *url, URLIS Urlis)
BOOL WINAPI PathSearchAndQualifyW(const WCHAR *path, WCHAR *buffer, UINT length)
char *WINAPI PathRemoveBackslashA(char *path)
BOOL WINAPI PathStripToRootW(WCHAR *path)
BOOL WINAPI PathStripToRootA(char *path)
BOOL WINAPI PathIsSameRootA(const char *path1, const char *path2)
BOOL WINAPI UrlIsNoHistoryW(const WCHAR *url)
BOOL WINAPI PathIsUNCServerW(const WCHAR *path)
BOOL WINAPI PathIsURLW(const WCHAR *path)
BOOL WINAPI PathMatchSpecW(const WCHAR *path, const WCHAR *mask)
WCHAR *WINAPI PathGetArgsW(const WCHAR *path)
BOOL WINAPI PathIsLFNFileSpecA(const char *path)
UINT WINAPI PathGetCharTypeW(WCHAR ch)
WCHAR *WINAPI PathSkipRootW(const WCHAR *path)
BOOL WINAPI PathRelativePathToW(WCHAR *path, const WCHAR *from, DWORD attributes_from, const WCHAR *to, DWORD attributes_to)
BOOL WINAPI PathFileExistsW(const WCHAR *path)
BOOL WINAPI PathUnExpandEnvStringsA(const char *path, char *buffer, UINT buf_len)
char *WINAPI PathFindFileNameA(const char *path)
BOOL WINAPI PathIsFileSpecW(const WCHAR *path)
BOOL WINAPI PathIsRootW(const WCHAR *path)
BOOL WINAPI PathIsLFNFileSpecW(const WCHAR *path)
BOOL WINAPI PathIsPrefixW(const WCHAR *prefix, const WCHAR *path)
WCHAR *WINAPI PathFindNextComponentW(const WCHAR *path)
BOOL WINAPI PathIsUNCA(const char *path)
BOOL WINAPI PathIsUNCServerShareA(const char *path)
BOOL WINAPI PathIsURLA(const char *path)
void WINAPI PathQuoteSpacesW(WCHAR *path)
LONG WINAPI SHRegDeleteEmptyUSKeyW(HUSKEY hUSKey, const WCHAR *value, SHREGDEL_FLAGS flags)
LONG WINAPI SHRegDeleteUSValueA(HUSKEY hUSKey, const char *value, SHREGDEL_FLAGS flags)
LONG WINAPI SHRegGetUSValueW(const WCHAR *subkey, const WCHAR *value, DWORD *type, void *data, DWORD *data_len, BOOL ignore_hkcu, void *default_data, DWORD default_data_len)
LONG WINAPI SHRegSetUSValueW(const WCHAR *subkey, const WCHAR *value, DWORD type, void *data, DWORD data_len, DWORD flags)
LONG WINAPI SHRegWriteUSValueA(HUSKEY hUSKey, const char *value, DWORD type, void *data, DWORD data_len, DWORD flags)
LONG WINAPI SHRegDeleteEmptyUSKeyA(HUSKEY hUSKey, const char *value, SHREGDEL_FLAGS flags)
LONG WINAPI SHRegQueryInfoUSKeyA(HUSKEY hUSKey, DWORD *subkeys, DWORD *max_subkey_len, DWORD *values, DWORD *max_value_name_len, SHREGENUM_FLAGS flags)
LONG WINAPI SHRegQueryInfoUSKeyW(HUSKEY hUSKey, DWORD *subkeys, DWORD *max_subkey_len, DWORD *values, DWORD *max_value_name_len, SHREGENUM_FLAGS flags)
LONG WINAPI SHRegEnumUSKeyA(HUSKEY hUSKey, DWORD index, char *name, DWORD *name_len, SHREGENUM_FLAGS flags)
LONG WINAPI SHRegGetUSValueA(const char *subkey, const char *value, DWORD *type, void *data, DWORD *data_len, BOOL ignore_hkcu, void *default_data, DWORD default_data_len)
LONG WINAPI SHRegOpenUSKeyA(const char *path, REGSAM access_mask, HUSKEY relative_key, HUSKEY *uskey, BOOL ignore_hkcu)
LONG WINAPI SHRegCreateUSKeyA(LPCSTR path, REGSAM samDesired, HUSKEY relative_key, PHUSKEY new_uskey, DWORD flags)
BOOL WINAPI SHRegGetBoolUSValueA(const char *subkey, const char *value, BOOL ignore_hkcu, BOOL default_value)
BOOL WINAPI SHRegGetBoolUSValueW(const WCHAR *subkey, const WCHAR *value, BOOL ignore_hkcu, BOOL default_value)
LONG WINAPI SHRegEnumUSValueA(HUSKEY hUSKey, DWORD index, char *value_name, DWORD *value_name_len, DWORD *type, void *data, DWORD *data_len, SHREGENUM_FLAGS flags)
LONG WINAPI SHRegCloseUSKey(HUSKEY hUSKey)
LONG WINAPI SHRegSetUSValueA(const char *subkey, const char *value, DWORD type, void *data, DWORD data_len, DWORD flags)
LONG WINAPI SHRegEnumUSValueW(HUSKEY hUSKey, DWORD index, WCHAR *value_name, DWORD *value_name_len, DWORD *type, void *data, DWORD *data_len, SHREGENUM_FLAGS flags)
LONG WINAPI SHRegQueryUSValueW(HUSKEY hUSKey, const WCHAR *value, DWORD *type, void *data, DWORD *data_len, BOOL ignore_hkcu, void *default_data, DWORD default_data_len)
LONG WINAPI SHRegDeleteUSValueW(HUSKEY hUSKey, const WCHAR *value, SHREGDEL_FLAGS flags)
LONG WINAPI SHRegOpenUSKeyW(const WCHAR *path, REGSAM access_mask, HUSKEY relative_key, HUSKEY *uskey, BOOL ignore_hkcu)
LONG WINAPI SHRegCreateUSKeyW(const WCHAR *path, REGSAM samDesired, HUSKEY relative_key, PHUSKEY new_uskey, DWORD flags)
LONG WINAPI SHRegQueryUSValueA(HUSKEY hUSKey, const char *value, DWORD *type, void *data, DWORD *data_len, BOOL ignore_hkcu, void *default_data, DWORD default_data_len)
LONG WINAPI SHRegEnumUSKeyW(HUSKEY hUSKey, DWORD index, WCHAR *name, DWORD *name_len, SHREGENUM_FLAGS flags)
LONG WINAPI SHRegWriteUSValueW(HUSKEY hUSKey, const WCHAR *value, DWORD type, void *data, DWORD data_len, DWORD flags)
BOOL WINAPI ChrCmpIW(WCHAR ch1, WCHAR ch2)
BOOL WINAPI StrToIntExW(const WCHAR *str, DWORD flags, INT *ret)
BOOL WINAPI ChrCmpIA(WORD ch1, WORD ch2)
WCHAR *WINAPI StrCatBuffW(WCHAR *str, const WCHAR *cat, INT max_len)
WCHAR *WINAPI StrStrNW(const WCHAR *str, const WCHAR *search, UINT max_len)
BOOL WINAPI StrIsIntlEqualA(BOOL case_sensitive, const char *str, const char *cmp, int len)
WCHAR *WINAPI StrStrNIW(const WCHAR *str, const WCHAR *search, UINT max_len)
int WINAPI StrCmpW(const WCHAR *str, const WCHAR *comp)
BOOL WINAPI StrTrimA(char *str, const char *trim)
BOOL WINAPI StrIsIntlEqualW(BOOL case_sensitive, const WCHAR *str, const WCHAR *cmp, int len)
BOOL WINAPI StrTrimW(WCHAR *str, const WCHAR *trim)
BOOL WINAPI StrToIntExA(const char *str, DWORD flags, INT *ret)
char *WINAPI StrCatBuffA(char *str, const char *cat, INT max_len)
int WINAPI StrCmpLogicalW(const WCHAR *str, const WCHAR *comp)
char *WINAPI StrPBrkA(const char *str, const char *match)
WCHAR *WINAPI StrDupW(const WCHAR *str)
int WINAPI StrSpnW(const WCHAR *str, const WCHAR *match)
int WINAPI StrCmpIW(const WCHAR *str, const WCHAR *comp)
DWORD WINAPI StrCatChainW(WCHAR *str, DWORD max_len, DWORD at, const WCHAR *cat)
char *WINAPI StrDupA(const char *str)
BOOL WINAPI StrToInt64ExA(const char *str, DWORD flags, LONGLONG *ret)
int WINAPI StrSpnA(const char *str, const char *match)
BOOL WINAPI StrToInt64ExW(const WCHAR *str, DWORD flags, LONGLONG *ret)
WCHAR *WINAPI StrPBrkW(const WCHAR *str, const WCHAR *match)
WCHAR *WINAPI StrCpyNW(WCHAR *dst, const WCHAR *src, int count)
LONG WINAPI SHEnumValueA(HKEY hkey, DWORD index, char *value, DWORD *length, DWORD *type, void *data, DWORD *data_len)
DWORD WINAPI SHCopyKeyA(HKEY hkey_src, const char *subkey, HKEY hkey_dst, DWORD reserved)
LONG WINAPI SHEnumKeyExW(HKEY hkey, DWORD index, WCHAR *subkey, DWORD *length)
DWORD WINAPI SHQueryValueExW(HKEY hkey, const WCHAR *name, DWORD *reserved, DWORD *type, void *buff, DWORD *buff_len)
BOOL WINAPI IsOS(DWORD feature)
IStream *WINAPI SHOpenRegStream2A(HKEY hKey, const char *subkey, const char *value, DWORD mode)
DWORD WINAPI SHGetValueW(HKEY hkey, const WCHAR *subkey, const WCHAR *value, DWORD *type, void *data, DWORD *data_len)
LONG WINAPI SHQueryInfoKeyA(HKEY hkey, DWORD *subkeys, DWORD *subkey_max, DWORD *values, DWORD *value_max)
IStream *WINAPI SHOpenRegStreamW(HKEY hkey, const WCHAR *subkey, const WCHAR *value, DWORD mode)
DWORD WINAPI SHDeleteKeyA(HKEY hkey, const char *subkey)
DWORD WINAPI SHRegGetPathA(HKEY hkey, const char *subkey, const char *value, char *path, DWORD flags)
DWORD WINAPI SHRegGetPathW(HKEY hkey, const WCHAR *subkey, const WCHAR *value, WCHAR *path, DWORD flags)
LONG WINAPI SHEnumKeyExA(HKEY hkey, DWORD index, char *subkey, DWORD *length)
DWORD WINAPI SHQueryValueExA(HKEY hkey, const char *name, DWORD *reserved, DWORD *type, void *buff, DWORD *buff_len)
BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE thread_proc, void *data, DWORD flags, LPTHREAD_START_ROUTINE callback)
DWORD WINAPI SHDeleteEmptyKeyW(HKEY hkey, const WCHAR *subkey)
DWORD WINAPI SHSetValueW(HKEY hkey, const WCHAR *subkey, const WCHAR *value, DWORD type, const void *data, DWORD data_len)
DWORD WINAPI SHDeleteValueA(HKEY hkey, const char *subkey, const char *value)
LONG WINAPI SHQueryInfoKeyW(HKEY hkey, DWORD *subkeys, DWORD *subkey_max, DWORD *values, DWORD *value_max)
IStream *WINAPI SHCreateMemStream(const BYTE *data, UINT data_len)
void WINAPI IUnknown_Set(IUnknown **dest, IUnknown *src)
IStream *WINAPI SHOpenRegStreamA(HKEY hkey, const char *subkey, const char *value, DWORD mode)
int WINAPI SHRegGetIntW(HKEY hkey, const WCHAR *value, int default_value)
HKEY WINAPI SHRegDuplicateHKey(HKEY hKey)
DWORD WINAPI SHDeleteValueW(HKEY hkey, const WCHAR *subkey, const WCHAR *value)
IStream *WINAPI SHOpenRegStream2W(HKEY hKey, const WCHAR *subkey, const WCHAR *value, DWORD mode)
DWORD WINAPI SHDeleteKeyW(HKEY hkey, const WCHAR *subkey)
DWORD WINAPI SHCopyKeyW(HKEY hkey_src, const WCHAR *subkey, HKEY hkey_dst, DWORD reserved)
LONG WINAPI SHEnumValueW(HKEY hkey, DWORD index, WCHAR *value, DWORD *length, DWORD *type, void *data, DWORD *data_len)
DWORD WINAPI SHDeleteEmptyKeyA(HKEY hkey, const char *subkey)
DWORD WINAPI SHRegSetPathW(HKEY hkey, const WCHAR *subkey, const WCHAR *value, const WCHAR *path, DWORD flags)
void WINAPI IUnknown_AtomicRelease(IUnknown **obj)
DWORD WINAPI SHGetValueA(HKEY hkey, const char *subkey, const char *value, DWORD *type, void *data, DWORD *data_len)
DWORD WINAPI SHSetValueA(HKEY hkey, const char *subkey, const char *value, DWORD type, const void *data, DWORD data_len)
DWORD WINAPI SHRegSetPathA(HKEY hkey, const char *subkey, const char *value, const char *path, DWORD flags)
BOOL WINAPI AssocIsDangerous(LPCWSTR lpszAssoc)
HANDLE WINAPI SHAllocShared(LPCVOID lpvData, DWORD dwSize, DWORD dwProcId)
HPALETTE WINAPI SHCreateShellPalette(HDC hdc)
INT WINAPI GetMenuPosFromID(HMENU hMenu, UINT wID)
COLORREF WINAPI ColorHLSToRGB(WORD wHue, WORD wLuminosity, WORD wSaturation)
PVOID WINAPI SHLockShared(HANDLE hShared, DWORD dwProcId)
BOOL WINAPI SHSkipJunction(IBindCtx *pbc, const CLSID *pclsid)
BOOL WINAPI SHFreeShared(HANDLE hShared, DWORD dwProcId)
COLORREF WINAPI ColorAdjustLuma(COLORREF cRGB, int dwLuma, BOOL bUnknown)
BOOL WINAPI SHUnlockShared(LPVOID lpView)
VOID WINAPI ColorRGBToHLS(COLORREF cRGB, LPWORD pwHue, LPWORD pwLuminance, LPWORD pwSaturation)
void WINAPI PathRemoveArgsW(LPWSTR lpszPath)
BOOL WINAPI PathIsDirectoryA(LPCSTR lpszPath)
BOOL WINAPI PathMakeSystemFolderA(LPCSTR lpszPath)
BOOL WINAPI PathIsNetworkPathW(LPCWSTR lpszPath)
LPSTR WINAPI PathBuildRootA(LPSTR lpszPath, int drive)
BOOL WINAPI PathMakeSystemFolderW(LPCWSTR lpszPath)
BOOL WINAPI PathIsNetworkPathA(LPCSTR lpszPath)
void WINAPI PathRemoveArgsA(LPSTR lpszPath)
BOOL WINAPI PathFindOnPathW(LPWSTR lpszFile, LPCWSTR *lppszOtherDirs)
BOOL WINAPI PathIsDirectoryEmptyW(LPCWSTR lpszPath)
BOOL WINAPI PathCompactPathExA(LPSTR lpszDest, LPCSTR lpszPath, UINT cchMax, DWORD dwFlags)
void WINAPI PathUndecorateW(WCHAR *path)
BOOL WINAPI PathIsSystemFolderA(LPCSTR lpszPath, DWORD dwAttrib)
BOOL WINAPI PathCompactPathExW(LPWSTR lpszDest, LPCWSTR lpszPath, UINT cchMax, DWORD dwFlags)
void WINAPI PathUndecorateA(char *path)
BOOL WINAPI PathMakePrettyW(LPWSTR lpszPath)
BOOL WINAPI PathCompactPathA(HDC hDC, LPSTR lpszPath, UINT dx)
BOOL WINAPI PathUnmakeSystemFolderW(LPCWSTR lpszPath)
BOOL WINAPI PathFindOnPathA(LPSTR lpszFile, LPCSTR *lppszOtherDirs)
LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive)
VOID WINAPI PathSetDlgItemPathA(HWND hDlg, int id, LPCSTR lpszPath)
BOOL WINAPI PathIsContentTypeW(LPCWSTR lpszPath, LPCWSTR lpszContentType)
BOOL WINAPI PathCompactPathW(HDC hDC, LPWSTR lpszPath, UINT dx)
BOOL WINAPI PathIsSystemFolderW(LPCWSTR lpszPath, DWORD dwAttrib)
BOOL WINAPI PathMakePrettyA(LPSTR lpszPath)
LPCSTR WINAPI PathFindSuffixArrayA(LPCSTR lpszSuffix, LPCSTR *lppszArray, int dwCount)
BOOL WINAPI PathUnmakeSystemFolderA(LPCSTR lpszPath)
VOID WINAPI PathSetDlgItemPathW(HWND hDlg, int id, LPCWSTR lpszPath)
LPCWSTR WINAPI PathFindSuffixArrayW(LPCWSTR lpszSuffix, LPCWSTR *lppszArray, int dwCount)
BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath)
BOOL WINAPI PathIsDirectoryEmptyA(LPCSTR lpszPath)
BOOL WINAPI PathIsContentTypeA(LPCSTR path, LPCSTR content_type)
DWORD WINAPI SHDeleteOrphanKeyW(HKEY hKey, LPCWSTR lpszSubKey)
DWORD WINAPI SHDeleteOrphanKeyA(HKEY hKey, LPCSTR lpszSubKey)
INT WINAPI StrFromTimeIntervalW(LPWSTR lpszStr, UINT cchMax, DWORD dwMS, int iDigits)
LPSTR WINAPI StrNCatA(LPSTR lpszStr, LPCSTR lpszCat, INT cchMax)
LPSTR WINAPI StrFormatByteSize64A(LONGLONG llBytes, LPSTR lpszDest, UINT cchMax)
LPWSTR WINAPI StrFormatKBSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
LPWSTR WINAPI StrCatW(LPWSTR lpszStr, LPCWSTR lpszSrc)
LPSTR WINAPI StrFormatByteSizeA(DWORD dwBytes, LPSTR lpszDest, UINT cchMax)
INT WINAPI StrFromTimeIntervalA(LPSTR lpszStr, UINT cchMax, DWORD dwMS, int iDigits)
LPWSTR WINAPI StrFormatByteSizeW(LONGLONG llBytes, LPWSTR lpszDest, UINT cchMax)
LPWSTR WINAPI StrNCatW(LPWSTR lpszStr, LPCWSTR lpszCat, INT cchMax)
LPWSTR WINAPI StrCpyW(LPWSTR lpszStr, LPCWSTR lpszSrc)
LPSTR WINAPI StrFormatKBSizeA(LONGLONG llBytes, LPSTR lpszDest, UINT cchMax)
int WINAPIV wnsprintfA(LPSTR lpOut, int cchLimitIn, LPCSTR lpFmt,...)
int WINAPIV wnsprintfW(LPWSTR lpOut, int cchLimitIn, LPCWSTR lpFmt,...)
INT WINAPI wvnsprintfA(LPSTR buffer, INT maxlen, LPCSTR spec, __ms_va_list args)
INT WINAPI wvnsprintfW(LPWSTR buffer, INT maxlen, LPCWSTR spec, __ms_va_list args)
static BYTE * GetData(BYTE *pData, ULONG *pLength)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE
static LPWSTR PDWORD pcchPath
static HRESULT QueryInterface(REFIID, void **)
static ULONG WINAPI AddRef(IStream *iface)
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
_In_ LPWSTR _In_ DWORD _In_ LPCVOID pvData
#define _Out_writes_to_opt_(s, c)
#define _In_reads_bytes_(s)
#define _Inout_updates_(s)
#define _Out_writes_opt_(s)
#define _Out_writes_bytes_opt_(s)
#define _Out_writes_bytes_to_opt_(s, c)
#define _Out_writes_to_(s, c)
#define _Out_writes_bytes_(s)
#define _Printf_format_string_
#define _In_reads_bytes_opt_(s)
#define DEFINE_ENUM_FLAG_OPERATORS(_ENUMTYPE)
#define PathAddExtensionA
#define PathCanonicalizeA
#define PathAddExtensionW
#define PathCanonicalizeW
#define PathAddBackslashA
#define PathRenameExtensionA
#define PathRenameExtensionW
#define PathAddBackslashW
_In_ DWORD _In_ DWORD dwOffset
@ SFBS_FLAGS_TRUNCATE_UNDISPLAYED_DECIMAL_DIGITS
@ SFBS_FLAGS_ROUND_TO_NEAREST_DISPLAYED_DIGIT
LWSTDAPI PathMatchSpecExA(_In_ LPCSTR, _In_ LPCSTR, _In_ DWORD)
LWSTDAPI SHLoadIndirectString(_In_ LPCWSTR, _Out_writes_(cchOutBuf) LPWSTR, _In_ UINT cchOutBuf, _Reserved_ PVOID *)
LWSTDAPI IUnknown_QueryService(_In_opt_ IUnknown *punk, _In_ REFGUID guidService, _In_ REFIID riid, _Outptr_ void **ppvOut)
LWSTDAPI IUnknown_GetWindow(_In_ IUnknown *punk, _Out_ HWND *phwnd)
@ ASSOCDATA_HASPERUSERASSOC
@ ASSOCDATA_MSIDESCRIPTOR
@ ASSOCDATA_NOACTIVATEHANDLER
@ ASSOCDATA_QUERYCLASSSTORE
LWSTDAPI UrlGetPartW(_In_ LPCWSTR, _Out_writes_(*pcchOut) LPWSTR, _Inout_ LPDWORD pcchOut, DWORD, DWORD)
LWSTDAPI SHCreateStreamWrapper(LPBYTE, DWORD, DWORD, struct IStream **)
@ URL_SCHEME_MSSHELLROOTED
@ URL_SCHEME_MSSHELLIDLIST
@ URL_SCHEME_MSSHELLDEVICE
LWSTDAPI PathMatchSpecExW(_In_ LPCWSTR, _In_ LPCWSTR, _In_ DWORD)
LWSTDAPI UrlGetPartA(_In_ LPCSTR, _Out_writes_(*pcchOut) LPSTR, _Inout_ LPDWORD pcchOut, DWORD, DWORD)
LWSTDAPI PathCreateFromUrlAlloc(_In_ LPCWSTR pszUrl, _Outptr_ LPWSTR *pszPath, DWORD dwReserved)
LWSTDAPI UrlHashA(_In_ LPCSTR, _Out_writes_bytes_(cbHash) unsigned char *, DWORD cbHash)
LWSTDAPI UrlHashW(_In_ LPCWSTR, _Out_writes_bytes_(cbHash) unsigned char *, DWORD cbHash)
LWSTDAPI UrlApplySchemeW(_In_ LPCWSTR, _Out_writes_(*pcchOut) LPWSTR, _Inout_ LPDWORD pcchOut, DWORD)
LWSTDAPI StrRetToBSTR(_Inout_ STRRET *, _In_opt_ PCUITEMID_CHILD, _Outptr_ BSTR *)
_In_ _Out_writes_ pcchName _Inout_ LPDWORD pcchName
LWSTDAPI SHCreateThreadRef(_Inout_ LONG *, _Outptr_ IUnknown **)
LWSTDAPI StrFormatByteSizeEx(ULONGLONG ull, SFBS_FLAGS flags, _Out_writes_(cchBuf) PWSTR pszBuf, _In_range_(>, 0) UINT cchBuf)
LWSTDAPI ParseURLW(_In_ LPCWSTR pszUrl, _Inout_ PARSEDURLW *ppu)
LWSTDAPI AssocQueryKeyW(_In_ ASSOCF, _In_ ASSOCKEY, _In_ LPCWSTR, _In_opt_ LPCWSTR, _Out_ PHKEY)
LWSTDAPI UrlUnescapeW(_Inout_ LPWSTR, _Out_writes_to_opt_(*pcchUnescaped, *pcchUnescaped) LPWSTR, _Inout_opt_ LPDWORD pcchUnescaped, DWORD)
_In_ DWORD _In_ DWORD dwDestinationProcessId
STDAPI QISearch(_Inout_ void *base, _In_ const QITAB *pqit, _In_ REFIID riid, _Outptr_ void **ppv)
LWSTDAPI IUnknown_SetSite(_In_ IUnknown *punk, _In_opt_ IUnknown *punkSite)
@ ASSOCSTR_SUPPORTED_URI_PROTOCOLS
@ ASSOCSTR_DELEGATEEXECUTE
@ ASSOCSTR_SHELLEXTENSION
@ ASSOCSTR_DDEAPPLICATION
@ ASSOCSTR_FRIENDLYDOCNAME
@ ASSOCSTR_APPICONREFERENCE
@ ASSOCSTR_FRIENDLYAPPNAME
struct tagPARSEDURLW * PPARSEDURLW
LWSTDAPI StrRetToStrA(_Inout_ STRRET *, _In_opt_ PCUITEMID_CHILD, _Outptr_ LPSTR *)
_In_opt_ _In_opt_ _In_ _In_ DWORD cbData
LWSTDAPI SHReleaseThreadRef(void)
@ ASSOCF_INIT_FIXED_PROGID
@ ASSOCF_INIT_DEFAULTTOSTAR
@ ASSOCF_PER_MACHINE_ONLY
@ ASSOCF_INIT_DEFAULTTOFOLDER
@ ASSOCF_INIT_NOREMAPCLSID
@ ASSOCF_INIT_IGNOREUNKNOWN
LWSTDAPI SHCreateStreamOnFileEx(_In_ LPCWSTR, _In_ DWORD, _In_ DWORD, _In_ BOOL, _In_opt_ struct IStream *, _Outptr_ struct IStream **)
@ ASSOCKEY_SHELLEXECCLASS
LWSTDAPI IUnknown_GetSite(_In_ IUnknown *punk, _In_ REFIID riid, _Outptr_ void **ppv)
LWSTDAPI SHAutoComplete(_In_ HWND, DWORD)
LWSTDAPI AssocCreate(_In_ CLSID, _In_ REFIID, _Outptr_ LPVOID *)
LWSTDAPI IStream_Reset(_In_ struct IStream *)
LWSTDAPI UrlEscapeA(_In_ LPCSTR, _Out_writes_to_(*pcchEscaped, *pcchEscaped) LPSTR, _Inout_ LPDWORD pcchEscaped, DWORD)
LWSTDAPI SHStrDupW(_In_ LPCWSTR psz, _Outptr_ WCHAR **ppwsz)
LWSTDAPI AssocGetPerceivedType(LPCWSTR lpszExt, PERCEIVED *lpType, INT *lpFlag, LPWSTR *lppszType)
LWSTDAPI SHCreateStreamOnFileA(_In_ LPCSTR, _In_ DWORD, _Outptr_ struct IStream **)
LWSTDAPI ParseURLA(_In_ LPCSTR pszUrl, _Inout_ PARSEDURLA *ppu)
LWSTDAPI SHCreateStreamOnFileW(_In_ LPCWSTR, _In_ DWORD, _Outptr_ struct IStream **)
_In_opt_ LPCSTR _In_opt_ LPCSTR _In_ SRRF _Out_opt_ LPDWORD pdwType
_In_opt_ _Inout_opt_ _Out_writes_bytes_to_opt_ pcbData _Inout_opt_ LPDWORD _In_ _In_ DWORD dwDefaultDataSize
LWSTDAPI UrlCombineW(_In_ LPCWSTR, _In_ LPCWSTR, _Out_writes_to_opt_(*pcchCombined, *pcchCombined) LPWSTR, _Inout_ LPDWORD pcchCombined, DWORD)
LWSTDAPI IStream_Size(_In_ IStream *pstm, _Out_ ULARGE_INTEGER *pui)
LWSTDAPI UrlCombineA(_In_ LPCSTR, _In_ LPCSTR, _Out_writes_to_opt_(*pcchCombined, *pcchCombined) LPSTR, _Inout_ LPDWORD pcchCombined, DWORD)
LWSTDAPI UrlCreateFromPathA(_In_ LPCSTR, _Out_writes_to_(*pcchUrl, *pcchUrl) LPSTR, _Inout_ LPDWORD pcchUrl, DWORD)
LWSTDAPI SHSetThreadRef(_In_opt_ IUnknown *)
LWSTDAPI AssocQueryKeyA(_In_ ASSOCF, _In_ ASSOCKEY, _In_ LPCSTR, _In_opt_ LPCSTR, _Out_ PHKEY)
_In_ _Out_writes_opt_ pcchValueName _Inout_opt_ LPDWORD pcchValueName
struct IQueryAssociations * LPQUERYASSOCIATIONS
STDAPI DllInstall(BOOL, _In_opt_ LPCWSTR) DECLSPEC_HIDDEN
struct tagPARSEDURLA PARSEDURLA
LWSTDAPI PathCreateFromUrlW(_In_ LPCWSTR pszUrl, _Out_writes_to_(*pcchPath, *pcchPath) LPWSTR pszPath, _Inout_ LPDWORD pcchPath, DWORD dwFlags)
struct tagPARSEDURLW PARSEDURLW
LWSTDAPI SHGetViewStatePropertyBag(_In_opt_ PCIDLIST_ABSOLUTE pidl, _In_opt_ LPCWSTR bag_name, _In_ DWORD flags, _In_ REFIID riid, _Outptr_ void **ppv)
_In_ _Out_writes_opt_ pcchValueName _Inout_opt_ LPDWORD _Out_opt_ _Out_writes_bytes_to_opt_ pcbData _Inout_opt_ LPDWORD pcbData
_In_opt_ LPCSTR pszSubKey
LWSTDAPI AssocQueryStringW(_In_ ASSOCF, _In_ ASSOCSTR, _In_ LPCWSTR, _In_opt_ LPCWSTR, _Out_writes_opt_(*pcchOut) LPWSTR, _Inout_ LPDWORD pcchOut)
@ FTA_AlwaysUseDirectInvoke
LWSTDAPI AssocQueryStringByKeyW(_In_ ASSOCF, _In_ ASSOCSTR, _In_ HKEY, _In_opt_ LPCWSTR, _Out_writes_opt_(*pcchOut) LPWSTR, _Inout_ LPDWORD pcchOut)
LWSTDAPI UrlUnescapeA(_Inout_ LPSTR, _Out_writes_to_opt_(*pcchUnescaped, *pcchUnescaped) LPSTR, _Inout_opt_ LPDWORD pcchUnescaped, DWORD)
LWSTDAPI StrRetToStrW(_Inout_ STRRET *, _In_opt_ PCUITEMID_CHILD, _Outptr_ LPWSTR *)
_In_opt_ LPCSTR _In_opt_ LPCWSTR int iArraySize
HRESULT(CALLBACK * DLLGETVERSIONPROC)(DLLVERSIONINFO *)
struct tagPARSEDURLA * PPARSEDURLA
struct _DLLVERSIONINFO2 DLLVERSIONINFO2
_In_opt_ LPCSTR _In_opt_ LPCSTR _In_ SRRF srrfFlags
LWSTDAPI SHGetThreadRef(_Outptr_ IUnknown **)
LWSTDAPI UrlApplySchemeA(_In_ LPCSTR, _Out_writes_(*pcchOut) LPSTR, _Inout_ LPDWORD pcchOut, DWORD)
LWSTDAPI HashData(_In_reads_bytes_(cbData) const unsigned char *, DWORD cbData, _Out_writes_bytes_(cbHash) unsigned char *lpDest, DWORD cbHash)
LWSTDAPI StrRetToBufA(_Inout_ STRRET *, _In_opt_ PCUITEMID_CHILD, _Out_writes_(cchBuf) LPSTR, UINT cchBuf)
LWSTDAPI UrlCanonicalizeW(_In_ LPCWSTR, _Out_writes_to_(*pcchCanonicalized, *pcchCanonicalized) LPWSTR, _Inout_ LPDWORD pcchCanonicalized, DWORD)
LWSTDAPI StrRetToBufW(_Inout_ STRRET *, _In_opt_ PCUITEMID_CHILD, _Out_writes_(cchBuf) LPWSTR, UINT cchBuf)
LWSTDAPI UrlCanonicalizeA(_In_ LPCSTR, _Out_writes_to_(*pcchCanonicalized, *pcchCanonicalized) LPSTR, _Inout_ LPDWORD pcchCanonicalized, DWORD)
LWSTDAPI UrlCreateFromPathW(_In_ LPCWSTR, _Out_writes_to_(*pcchUrl, *pcchUrl) LPWSTR, _Inout_ LPDWORD pcchUrl, DWORD)
LWSTDAPI AssocQueryStringA(_In_ ASSOCF, _In_ ASSOCSTR, _In_ LPCSTR, _In_opt_ LPCSTR, _Out_writes_opt_(*pcchOut) LPSTR, _Inout_ LPDWORD pcchOut)
_In_opt_ LPCSTR _In_opt_ LPCSTR pszValue
_In_opt_ void _In_ DWORD flags
_In_opt_ void _In_ DWORD _In_opt_ LPTHREAD_START_ROUTINE pfnCallback
LWSTDAPI UrlEscapeW(_In_ LPCWSTR, _Out_writes_to_(*pcchEscaped, *pcchEscaped) LPWSTR, _Inout_ LPDWORD pcchEscaped, DWORD)
LWSTDAPI PathCreateFromUrlA(_In_ LPCSTR, _Out_writes_to_(*pcchPath, *pcchPath) LPSTR, _Inout_ LPDWORD pcchPath, DWORD)
struct _DllVersionInfo DLLVERSIONINFO
LWSTDAPI AssocQueryStringByKeyA(_In_ ASSOCF, _In_ ASSOCSTR, _In_ HKEY, _In_opt_ LPCSTR, _Out_writes_opt_(*pcchOut) LPSTR, _Inout_ LPDWORD pcchOut)
LWSTDAPI SHStrDupA(_In_ LPCSTR psz, _Outptr_ WCHAR **ppwsz)
STDMETHOD() GetKey(THIS_ HKEY *phKey) PURE
STDMETHOD() GetString(THIS_ PWSTR *ppsz) PURE
enum tagPERCEIVED PERCEIVED
const ITEMID_CHILD UNALIGNED * PCUITEMID_CHILD
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
WINSHLWAPI LSTATUS WINAPI SHRegGetValueA(HKEY, LPCSTR, LPCSTR, SRRF, LPDWORD, LPVOID, LPDWORD)
WINSHLWAPI LSTATUS WINAPI SHRegGetValueW(HKEY, LPCWSTR, LPCWSTR, SRRF, LPDWORD, LPVOID, LPDWORD)