On 2/05/2021 1:28 pm, Liu Hao wrote: > > Please use `WINBOOL` instead of `BOOL` as the latter is a builtin type > on Mac. > > There are more `BOOL`s in the original file, they should be replaced as > well. >
See attached patch with changes you requested. -- David May
--- doc/mingw64-shlwapi.h 2021-04-28 21:40:36.145098000 +0800 +++ shlwapi.h 2021-05-02 14:40:21.915360200 +0800 @@ -14,6 +14,7 @@ #include <objbase.h> #include <shtypes.h> +#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM) #ifndef WINSHLWAPI #if !defined(_SHLWAPI_) #define LWSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI @@ -28,8 +29,6 @@ #endif #endif -#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) - #ifndef _WINRESRC_ #ifndef _WIN32_IE #define _WIN32_IE 0x0601 @@ -38,6 +37,11 @@ #include <pshpack8.h> +#ifndef __IBindCtx_FWD_DEFINED__ +#define __IBindCtx_FWD_DEFINED__ + typedef interface IBindCtx IBindCtx; +#endif + #ifdef __cplusplus extern "C" { #endif @@ -47,10 +51,23 @@ LWSTDAPI_(LPWSTR) StrChrW(LPCWSTR lpStart,WCHAR wMatch); LWSTDAPI_(LPSTR) StrChrIA(LPCSTR lpStart,WORD wMatch); LWSTDAPI_(LPWSTR) StrChrIW(LPCWSTR lpStart,WCHAR wMatch); + LWSTDAPI_(PCWSTR) StrChrNW(PCWSTR pszStart, WCHAR wMatch, UINT cchMax); + LWSTDAPI_(PCWSTR) StrChrNIW(PCWSTR pszStart, WCHAR wMatch, UINT cchMax); LWSTDAPI_(int) StrCmpNA(LPCSTR lpStr1,LPCSTR lpStr2,int nChar); LWSTDAPI_(int) StrCmpNW(LPCWSTR lpStr1,LPCWSTR lpStr2,int nChar); LWSTDAPI_(int) StrCmpNIA(LPCSTR lpStr1,LPCSTR lpStr2,int nChar); LWSTDAPI_(int) StrCmpNIW(LPCWSTR lpStr1,LPCWSTR lpStr2,int nChar); + + LWSTDAPI_(int) StrCmpNCA(LPCSTR pszStr1, LPCSTR pszStr2, int nChar); + LWSTDAPI_(int) StrCmpNCW(LPCWSTR pszStr1, LPCWSTR pszStr2, int nChar); + +#define StrCmpNC __MINGW_NAME_AW(StrCmpNC) + + LWSTDAPI_(int) StrCmpNICA(LPCSTR pszStr1, LPCSTR pszStr2, int nChar); + LWSTDAPI_(int) StrCmpNICW(LPCWSTR pszStr1, LPCWSTR pszStr2, int nChar); + +#define StrCmpNIC __MINGW_NAME_AW(StrCmpNIC) + LWSTDAPI_(int) StrCSpnA(LPCSTR lpStr,LPCSTR lpSet); LWSTDAPI_(int) StrCSpnW(LPCWSTR lpStr,LPCWSTR lpSet); LWSTDAPI_(int) StrCSpnIA(LPCSTR lpStr,LPCSTR lpSet); @@ -82,13 +99,20 @@ LWSTDAPI_(LPWSTR) StrStrW(LPCWSTR lpFirst,LPCWSTR lpSrch); LWSTDAPI_(LPSTR) StrStrIA(LPCSTR lpFirst,LPCSTR lpSrch); LWSTDAPI_(LPWSTR) StrStrIW(LPCWSTR lpFirst,LPCWSTR lpSrch); + LWSTDAPI_(PCWSTR) StrStrNW(PCWSTR pszFirst, PCWSTR pszSrch, UINT cchMax); + LWSTDAPI_(PCWSTR) StrStrNIW(PCWSTR pszFirst, PCWSTR pszSrch, UINT cchMax); LWSTDAPI_(int) StrToIntA(LPCSTR lpSrc); LWSTDAPI_(int) StrToIntW(LPCWSTR lpSrc); - LWSTDAPI_(WINBOOL) StrToIntExA(LPCSTR pszString,DWORD dwFlags,int *piRet); - LWSTDAPI_(WINBOOL) StrToIntExW(LPCWSTR pszString,DWORD dwFlags,int *piRet); + +#define STIF_DEFAULT __MSABI_LONG(0x00000000) +#define STIF_SUPPORT_HEX __MSABI_LONG(0x00000001) + typedef int STIF_FLAGS; + + LWSTDAPI_(WINBOOL) StrToIntExA(LPCSTR pszString,STIF_FLAGS dwFlags,int *piRet); + LWSTDAPI_(WINBOOL) StrToIntExW(LPCWSTR pszString,STIF_FLAGS dwFlags,int *piRet); #if (_WIN32_IE >= 0x0600) - LWSTDAPI_(WINBOOL) StrToInt64ExA(LPCSTR pszString,DWORD dwFlags,LONGLONG *pllRet); - LWSTDAPI_(WINBOOL) StrToInt64ExW(LPCWSTR pszString,DWORD dwFlags,LONGLONG *pllRet); + LWSTDAPI_(WINBOOL) StrToInt64ExA(LPCSTR pszString,STIF_FLAGS dwFlags,LONGLONG *pllRet); + LWSTDAPI_(WINBOOL) StrToInt64ExW(LPCWSTR pszString,STIF_FLAGS dwFlags,LONGLONG *pllRet); #endif LWSTDAPI_(WINBOOL) StrTrimA(LPSTR psz,LPCSTR pszTrimChars); LWSTDAPI_(WINBOOL) StrTrimW(LPWSTR psz,LPCWSTR pszTrimChars); @@ -122,9 +146,25 @@ LWSTDAPI StrRetToBSTR(STRRET *pstr,LPCITEMIDLIST pidl,BSTR *pbstr); LWSTDAPI SHStrDupA(LPCSTR psz,WCHAR **ppwsz); LWSTDAPI SHStrDupW(LPCWSTR psz,WCHAR **ppwsz); + +#ifdef __cplusplus + inline HRESULT SHLocalStrDupW(PCWSTR psz, PWSTR *ppsz) { + *ppsz = StrDupW(psz); + return *ppsz ? S_OK : E_OUTOFMEMORY; + } + + inline HRESULT SHLocalStrDupA(PCSTR psz, PSTR *ppsz) { + *ppsz = StrDupA(psz); + return *ppsz ? S_OK : E_OUTOFMEMORY; + } + +#define SHLocalStrDup __MINGW_NAME_AW(SHLocalStrDup) +#endif + LWSTDAPI_(int) StrCmpLogicalW(LPCWSTR psz1,LPCWSTR psz2); LWSTDAPI_(DWORD) StrCatChainW(LPWSTR pszDst,DWORD cchDst,DWORD ichAt,LPCWSTR pszSrc); LWSTDAPI SHLoadIndirectString(LPCWSTR pszSource,LPWSTR pszOutBuf,UINT cchOutBuf,void **ppvReserved); + #if (_WIN32_IE >= 0x0603) LWSTDAPI_(WINBOOL) IsCharSpaceA(CHAR wch); LWSTDAPI_(WINBOOL) IsCharSpaceW(WCHAR wch); @@ -206,9 +246,6 @@ #define PathIsHTMLFileA(pszPath) PathIsContentTypeA(pszPath,SZ_CONTENTTYPE_HTMLA) #define PathIsHTMLFileW(pszPath) PathIsContentTypeW(pszPath,SZ_CONTENTTYPE_HTMLW) -#define STIF_DEFAULT __MSABI_LONG(0x00000000) -#define STIF_SUPPORT_HEX __MSABI_LONG(0x00000001) - #define StrCatA lstrcatA #define StrCmpA lstrcmpA #define StrCmpIA lstrcmpiA @@ -239,6 +276,17 @@ #endif +#if (NTDDI_VERSION >= NTDDI_VISTASP1) + enum tagSFBS_FLAGS { + SFBS_FLAGS_ROUND_TO_NEAREST_DISPLAYED_DIGIT = 0x0001, + SFBS_FLAGS_TRUNCATE_UNDISPLAYED_DECIMAL_DIGITS = 0x0002 + }; + + typedef int SFBS_FLAGS; + + LWSTDAPI StrFormatByteSizeEx(ULONGLONG ull, SFBS_FLAGS flags, PWSTR pszBuf, UINT cchBuf); +#endif + #ifndef NO_SHLWAPI_PATH LWSTDAPI_(LPSTR) PathAddBackslashA(LPSTR pszPath); @@ -454,6 +502,18 @@ LWSTDAPI_(WINBOOL) PathUnExpandEnvStringsW(LPCWSTR pszPath,LPWSTR pszBuf,UINT cchBuf); #define PathUnExpandEnvStrings __MINGW_NAME_AW(PathUnExpandEnvStrings) + +#if (_WIN32_IE >= _WIN32_IE_IE70) +#define PMSF_NORMAL 0x00000000 +#define PMSF_MULTIPLE 0x00000001 +#define PMSF_DONT_STRIP_SPACES 0x00010000 +LWSTDAPI PathMatchSpecExA(LPCSTR pszFile, LPCSTR pszSpec, DWORD dwFlags); +LWSTDAPI PathMatchSpecExW(LPCWSTR pszFile, LPCWSTR pszSpec, DWORD dwFlags); +#endif + +#define PathMatchSpecEx __MINGW_NAME_AW(PathMatchSpecEx) + +#define PathParseIconLocation __MINGW_NAME_AW(PathParseIconLocation) #define PathAppend __MINGW_NAME_AW(PathAppend) #define PathCanonicalize __MINGW_NAME_AW(PathCanonicalize) #define PathCompactPath __MINGW_NAME_AW(PathCompactPath) @@ -465,7 +525,6 @@ #define PathIsHTMLFile __MINGW_NAME_AW(PathIsHTMLFile) #define PathMakePretty __MINGW_NAME_AW(PathMakePretty) #define PathMatchSpec __MINGW_NAME_AW(PathMatchSpec) -#define PathParseIconLocation __MINGW_NAME_AW(PathParseIconLocation) #define PathQuoteSpaces __MINGW_NAME_AW(PathQuoteSpaces) #define PathRelativePathTo __MINGW_NAME_AW(PathRelativePathTo) #define PathRemoveArgs __MINGW_NAME_AW(PathRemoveArgs) @@ -478,7 +537,45 @@ #define PathUnquoteSpaces __MINGW_NAME_AW(PathUnquoteSpaces) typedef enum { - URL_SCHEME_INVALID = -1,URL_SCHEME_UNKNOWN = 0,URL_SCHEME_FTP,URL_SCHEME_HTTP,URL_SCHEME_GOPHER,URL_SCHEME_MAILTO,URL_SCHEME_NEWS,URL_SCHEME_NNTP,URL_SCHEME_TELNET,URL_SCHEME_WAIS,URL_SCHEME_FILE,URL_SCHEME_MK,URL_SCHEME_HTTPS,URL_SCHEME_SHELL,URL_SCHEME_SNEWS,URL_SCHEME_LOCAL,URL_SCHEME_JAVASCRIPT,URL_SCHEME_VBSCRIPT,URL_SCHEME_ABOUT,URL_SCHEME_RES,URL_SCHEME_MSSHELLROOTED,URL_SCHEME_MSSHELLIDLIST,URL_SCHEME_MSHELP,URL_SCHEME_MAXVALUE + URL_SCHEME_INVALID = -1, + URL_SCHEME_UNKNOWN = 0, + URL_SCHEME_FTP, + URL_SCHEME_HTTP, + URL_SCHEME_GOPHER, + URL_SCHEME_MAILTO, + URL_SCHEME_NEWS, + URL_SCHEME_NNTP, + URL_SCHEME_TELNET, + URL_SCHEME_WAIS, + URL_SCHEME_FILE, + URL_SCHEME_MK, + URL_SCHEME_HTTPS, + URL_SCHEME_SHELL, + URL_SCHEME_SNEWS, + URL_SCHEME_LOCAL, + URL_SCHEME_JAVASCRIPT, + URL_SCHEME_VBSCRIPT, + URL_SCHEME_ABOUT, + URL_SCHEME_RES, +#if (_WIN32_IE >= _WIN32_IE_IE60) + URL_SCHEME_MSSHELLROOTED, + URL_SCHEME_MSSHELLIDLIST, + URL_SCHEME_MSHELP, +#endif +#if (_WIN32_IE >= _WIN32_IE_IE70) + URL_SCHEME_MSSHELLDEVICE, + URL_SCHEME_WILDCARD, +#endif +#if (NTDDI_VERSION >= NTDDI_VISTA) + URL_SCHEME_SEARCH_MS, +#endif +#if (NTDDI_VERSION >= NTDDI_VISTASP1) + URL_SCHEME_SEARCH, +#endif +#if (NTDDI_VERSION >= NTDDI_WIN7) + URL_SCHEME_KNOWNFOLDER, +#endif + URL_SCHEME_MAXVALUE } URL_SCHEME; typedef enum { @@ -539,6 +636,9 @@ LWSTDAPI UrlCreateFromPathW(LPCWSTR pszPath,LPWSTR pszUrl,LPDWORD pcchUrl,DWORD dwFlags); LWSTDAPI PathCreateFromUrlA(LPCSTR pszUrl,LPSTR pszPath,LPDWORD pcchPath,DWORD dwFlags); LWSTDAPI PathCreateFromUrlW(LPCWSTR pszUrl,LPWSTR pszPath,LPDWORD pcchPath,DWORD dwFlags); +#if (_WIN32_IE >= _WIN32_IE_IE70) + LWSTDAPI PathCreateFromUrlAlloc(PCWSTR pszIn, PWSTR *ppszOut, DWORD dwFlags); +#endif LWSTDAPI UrlHashA(LPCSTR pszUrl,LPBYTE pbHash,DWORD cbHash); LWSTDAPI UrlHashW(LPCWSTR pszUrl,LPBYTE pbHash,DWORD cbHash); LWSTDAPI UrlGetPartW(LPCWSTR pszIn,LPWSTR pszOut,LPDWORD pcchOut,DWORD dwPart,DWORD dwFlags); @@ -546,6 +646,10 @@ LWSTDAPI UrlApplySchemeA(LPCSTR pszIn,LPSTR pszOut,LPDWORD pcchOut,DWORD dwFlags); LWSTDAPI UrlApplySchemeW(LPCWSTR pszIn,LPWSTR pszOut,LPDWORD pcchOut,DWORD dwFlags); LWSTDAPI HashData(LPBYTE pbData,DWORD cbData,LPBYTE pbHash,DWORD cbHash); + LWSTDAPI UrlFixupW(PCWSTR pcszUrl, PWSTR pszTranslatedUrl, DWORD cchMax); +#if defined(UNICODE) +#define UrlFixup UrlFixupW +#endif #define UrlCompare __MINGW_NAME_AW(UrlCompare) #define UrlCombine __MINGW_NAME_AW(UrlCombine) @@ -564,6 +668,38 @@ #define UrlEscapeSpaces(pszUrl,pszEscaped,pcchEscaped) UrlCanonicalize(pszUrl,pszEscaped,pcchEscaped,URL_ESCAPE_SPACES_ONLY |URL_DONT_ESCAPE_EXTRA_INFO) #define UrlUnescapeInPlace(pszUrl,dwFlags) UrlUnescape(pszUrl,NULL,NULL,dwFlags | URL_UNESCAPE_INPLACE) + + typedef struct tagPARSEDURLA { + DWORD cbSize; + LPCSTR pszProtocol; + UINT cchProtocol; + LPCSTR pszSuffix; + UINT cchSuffix; + UINT nScheme; + } PARSEDURLA, *PPARSEDURLA; + + typedef struct tagPARSEDURLW { + DWORD cbSize; + LPCWSTR pszProtocol; + UINT cchProtocol; + LPCWSTR pszSuffix; + UINT cchSuffix; + UINT nScheme; + } PARSEDURLW, *PPARSEDURLW; + + LWSTDAPI ParseURLA(LPCSTR pcszURL, PARSEDURLA *ppu); + LWSTDAPI ParseURLW(LPCWSTR pcszURL, PARSEDURLW *ppu); + +#if defined(UNICODE) +#define ParseURL ParseURLW + typedef PARSEDURLW PARSEDURL; + typedef PPARSEDURLW PPARSEDURL; +#else +#define ParseURL ParseURLA + typedef PARSEDURLA PARSEDURL; + typedef PPARSEDURLA PPARSEDURL; +#endif + #endif #ifndef NO_SHLWAPI_REG @@ -623,6 +759,13 @@ LWSTDAPI_(LONG) SHRegGetValueW(HKEY hkey,LPCWSTR pszSubKey,LPCWSTR pszValue,SRRF dwFlags,DWORD *pdwType,void *pvData,DWORD *pcbData); #define SHRegGetValue __MINGW_NAME_AW(SHRegGetValue) + + LWSTDAPI_(LSTATUS) SHRegSetValue(HKEY hkey, LPCWSTR pszSubKey, LPCWSTR pszValue, SRRF srrfFlags, + DWORD dwType, LPCVOID pvData, DWORD cbData); + + LWSTDAPI_(LSTATUS) SHRegGetValueFromHKCUHKLM(PCWSTR pwszKey, PCWSTR pwszValue, SRRF srrfFlags, + DWORD *pdwType, void *pvData, DWORD * pcbData); + STDAPI_(WINBOOL) SHRegGetBoolValueFromHKCUHKLM(PCWSTR pszKey, PCWSTR pszValue, WINBOOL fDefault); #endif #define SHQueryValueEx __MINGW_NAME_AW(SHQueryValueEx) @@ -749,6 +892,13 @@ ASSOCSTR_DROPTARGET, ASSOCSTR_DELEGATEEXECUTE, #endif + ASSOCSTR_SUPPORTED_URI_PROTOCOLS, +#if (NTDDI_VERSION >= NTDDI_WIN10) + ASSOCSTR_PROGID, + ASSOCSTR_APPID, + ASSOCSTR_APPPUBLISHER, + ASSOCSTR_APPICONREFERENCE, +#endif ASSOCSTR_MAX } ASSOCSTR; @@ -774,9 +924,39 @@ ASSOCENUM_NONE } ASSOCENUM; + typedef enum { + FTA_None = 0x00000000, + FTA_Exclude = 0x00000001, + FTA_Show = 0x00000002, + FTA_HasExtension = 0x00000004, + FTA_NoEdit = 0x00000008, + FTA_NoRemove = 0x00000010, + FTA_NoNewVerb = 0x00000020, + FTA_NoEditVerb = 0x00000040, + FTA_NoRemoveVerb = 0x00000080, + FTA_NoEditDesc = 0x00000100, + FTA_NoEditIcon = 0x00000200, + FTA_NoEditDflt = 0x00000400, + FTA_NoEditVerbCmd = 0x00000800, + FTA_NoEditVerbExe = 0x00001000, + FTA_NoDDE = 0x00002000, + + FTA_NoEditMIME = 0x00008000, + FTA_OpenIsSafe = 0x00010000, + FTA_AlwaysUnsafe = 0x00020000, + + FTA_NoRecentDocs = 0x00100000, + FTA_SafeForElevation = 0x00200000, + FTA_AlwaysUseDirectInvoke = 0x00400000 + } FILETYPEATTRIBUTEFLAGS; + + DEFINE_ENUM_FLAG_OPERATORS(FILETYPEATTRIBUTEFLAGS) + #undef INTERFACE #define INTERFACE IQueryAssociations DECLARE_INTERFACE_(IQueryAssociations,IUnknown) { + BEGIN_INTERFACE + STDMETHOD (QueryInterface)(THIS_ REFIID riid,void **ppv) PURE; STDMETHOD_(ULONG,AddRef) (THIS) PURE; STDMETHOD_(ULONG,Release) (THIS) PURE; @@ -785,6 +965,8 @@ STDMETHOD (GetKey)(THIS_ ASSOCF flags,ASSOCKEY key,LPCWSTR pszExtra,HKEY *phkeyOut) PURE; STDMETHOD (GetData)(THIS_ ASSOCF flags,ASSOCDATA data,LPCWSTR pszExtra,LPVOID pvOut,DWORD *pcbOut) PURE; STDMETHOD (GetEnum)(THIS_ ASSOCF flags,ASSOCENUM assocenum,LPCWSTR pszExtra,REFIID riid,LPVOID *ppvOut) PURE; + + END_INTERFACE }; #define AssocQueryString __MINGW_NAME_AW(AssocQueryString) @@ -792,6 +974,7 @@ #define AssocQueryKey __MINGW_NAME_AW(AssocQueryKey) LWSTDAPI AssocCreate(CLSID clsid,REFIID riid,LPVOID *ppv); + STDAPI_(DWORD) SHGetAssocKeys(IQueryAssociations *pqa, HKEY *rgKeys, DWORD cKeys); LWSTDAPI AssocQueryStringA(ASSOCF flags,ASSOCSTR str,LPCSTR pszAssoc,LPCSTR pszExtra,LPSTR pszOut,DWORD *pcchOut); LWSTDAPI AssocQueryStringW(ASSOCF flags,ASSOCSTR str,LPCWSTR pszAssoc,LPCWSTR pszExtra,LPWSTR pszOut,DWORD *pcchOut); LWSTDAPI AssocQueryStringByKeyA(ASSOCF flags,ASSOCSTR str,HKEY hkAssoc,LPCSTR pszExtra,LPSTR pszOut,DWORD *pcchOut); @@ -806,9 +989,17 @@ #if (_WIN32_IE >= 0x0603) LWSTDAPI AssocGetPerceivedType(LPCWSTR pszExt,PERCEIVED *ptype,PERCEIVEDFLAG *pflag,LPWSTR *ppszType); #endif + #endif #ifndef NO_SHLWAPI_STREAM +#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + +#ifndef __IStream_FWD_DEFINED__ +#define __IStream_FWD_DEFINED__ + typedef interface IStream IStream; +#endif + #define SHOpenRegStream __MINGW_NAME_AW(SHOpenRegStream) #define SHOpenRegStream2 __MINGW_NAME_AW(SHOpenRegStream2) #define SHCreateStreamOnFile __MINGW_NAME_AW(SHCreateStreamOnFile) @@ -826,23 +1017,126 @@ #if (_WIN32_IE >= 0x0600) LWSTDAPI SHCreateStreamOnFileEx(LPCWSTR pszFile,DWORD grfMode,DWORD dwAttributes,WINBOOL fCreate,struct IStream *pstmTemplate,struct IStream **ppstm); #endif + + LWSTDAPI_(IStream *) SHCreateMemStream(const BYTE *pInit, UINT cbInit); + +#endif #endif -#if (_WIN32_IE >= 0x0601) -#define SHGVSPB_PERUSER 0x00000001 -#define SHGVSPB_ALLUSERS 0x00000002 -#define SHGVSPB_PERFOLDER 0x00000004 -#define SHGVSPB_ALLFOLDERS 0x00000008 -#define SHGVSPB_INHERIT 0x00000010 -#define SHGVSPB_ROAM 0x00000020 -#define SHGVSPB_NOAUTODEFAULTS 0x80000000 +#if !defined(NO_SHLWAPI_ISOS) +#define OS_WINDOWS 0 +#define OS_NT 1 +#define OS_WIN95ORGREATER 2 +#define OS_NT4ORGREATER 3 +#define OS_WIN98ORGREATER 5 +#define OS_WIN98_GOLD 6 +#define OS_WIN2000ORGREATER 7 +#define OS_WIN2000PRO 8 +#define OS_WIN2000SERVER 9 +#define OS_WIN2000ADVSERVER 10 +#define OS_WIN2000DATACENTER 11 +#define OS_WIN2000TERMINAL 12 +#define OS_EMBEDDED 13 +#define OS_TERMINALCLIENT 14 +#define OS_TERMINALREMOTEADMIN 15 +#define OS_WIN95_GOLD 16 +#define OS_MEORGREATER 17 +#define OS_XPORGREATER 18 +#define OS_HOME 19 +#define OS_PROFESSIONAL 20 +#define OS_DATACENTER 21 +#define OS_ADVSERVER 22 +#define OS_SERVER 23 +#define OS_TERMINALSERVER 24 +#define OS_PERSONALTERMINALSERVER 25 +#define OS_FASTUSERSWITCHING 26 +#define OS_WELCOMELOGONUI 27 +#define OS_DOMAINMEMBER 28 +#define OS_ANYSERVER 29 +#define OS_WOW6432 30 +#define OS_WEBSERVER 31 +#define OS_SMALLBUSINESSSERVER 32 +#define OS_TABLETPC 33 +#define OS_SERVERADMINUI 34 +#define OS_MEDIACENTER 35 +#define OS_APPLIANCE 36 -#define SHGVSPB_FOLDER (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER) -#define SHGVSPB_FOLDERNODEFAULTS (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER | SHGVSPB_NOAUTODEFAULTS) -#define SHGVSPB_USERDEFAULTS (SHGVSPB_PERUSER | SHGVSPB_ALLFOLDERS) -#define SHGVSPB_GLOBALDEAFAULTS (SHGVSPB_ALLUSERS | SHGVSPB_ALLFOLDERS) + LWSTDAPI_(WINBOOL) IsOS(DWORD dwOS); +#endif - LWSTDAPI SHGetViewStatePropertyBag(LPCITEMIDLIST pidl,LPCWSTR pszBagName,DWORD dwFlags,REFIID riid,void **ppv); + typedef enum { + GLOBALCOUNTER_SEARCHMANAGER, + GLOBALCOUNTER_SEARCHOPTIONS, + GLOBALCOUNTER_FOLDERSETTINGSCHANGE, + GLOBALCOUNTER_RATINGS, + GLOBALCOUNTER_APPROVEDSITES, + GLOBALCOUNTER_RESTRICTIONS, + GLOBALCOUNTER_SHELLSETTINGSCHANGED, + GLOBALCOUNTER_SYSTEMPIDLCHANGE, + GLOBALCOUNTER_OVERLAYMANAGER, + GLOBALCOUNTER_QUERYASSOCIATIONS, + GLOBALCOUNTER_IESESSIONS, + GLOBALCOUNTER_IEONLY_SESSIONS, + GLOBALCOUNTER_APPLICATION_DESTINATIONS, + __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_CSCSYNCINPROGRESS, + GLOBALCOUNTER_BITBUCKETNUMDELETERS, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_SHARES, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_A, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_B, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_C, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_D, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_E, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_F, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_G, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_H, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_I, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_J, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_K, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_L, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_M, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_N, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_O, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_P, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Q, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_R, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_S, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_T, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_U, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_V, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_W, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_X, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Y, + GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Z, + __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_RECYCLEDIRTYCOUNT_SERVERDRIVE, + __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_RECYCLEGLOBALDIRTYCOUNT, + GLOBALCOUNTER_RECYCLEBINENUM, + GLOBALCOUNTER_RECYCLEBINCORRUPTED, + GLOBALCOUNTER_RATINGS_STATECOUNTER, + GLOBALCOUNTER_PRIVATE_PROFILE_CACHE, + GLOBALCOUNTER_INTERNETTOOLBAR_LAYOUT, + GLOBALCOUNTER_FOLDERDEFINITION_CACHE, + GLOBALCOUNTER_COMMONPLACES_LIST_CACHE, + GLOBALCOUNTER_PRIVATE_PROFILE_CACHE_MACHINEWIDE, + GLOBALCOUNTER_ASSOCCHANGED, +#if (NTDDI_VERSION >= NTDDI_WIN8) + GLOBALCOUNTER_APP_ITEMS_STATE_STORE_CACHE, + GLOBALCOUNTER_SETTINGSYNC_ENABLED, + GLOBALCOUNTER_APPSFOLDER_FILETYPEASSOCIATION_COUNTER, + GLOBALCOUNTER_USERINFOCHANGED, +#if (NTDDI_VERSION >= NTDDI_WINBLUE) + GLOBALCOUNTER_SYNC_ENGINE_INFORMATION_CACHE_MACHINEWIDE, +#endif +#endif +#if (NTDDI_VERSION >= NTDDI_WIN10_RS1) + GLOBALCOUNTER_BANNERS_DATAMODEL_CACHE_MACHINEWIDE, +#endif + GLOBALCOUNTER_MAXIMUMVALUE + } SHGLOBALCOUNTER; + +#if (NTDDI_VERSION >= NTDDI_WIN7) + LWSTDAPI_(long) SHGlobalCounterGetValue(const SHGLOBALCOUNTER id); + LWSTDAPI_(long) SHGlobalCounterIncrement(const SHGLOBALCOUNTER id); + LWSTDAPI_(long) SHGlobalCounterDecrement(const SHGLOBALCOUNTER id); #endif #if (_WIN32_IE >= 0x0603) @@ -881,9 +1175,9 @@ STDAPI QISearch(void *that, LPCQITAB pqit, REFIID riid, void **ppv); #define ILMM_IE4 0 - LWSTDAPI_(BOOL) SHIsLowMemoryMachine(DWORD dwType); - LWSTDAPI_(int) GetMenuPosFromId(HMENU hMenu, UINT id); - LWSTDAPI SHGetInverseCMAP(__out_bcount(cbMap) BYTE *pbMap, ULONG cbMap); + LWSTDAPI_(WINBOOL) SHIsLowMemoryMachine(DWORD dwType); + LWSTDAPI_(int) GetMenuPosFromID(HMENU hMenu, UINT id); + LWSTDAPI SHGetInverseCMAP(BYTE *pbMap, ULONG cbMap); #endif #define SHACF_DEFAULT 0x00000000 @@ -920,12 +1214,38 @@ #define CTF_THREAD_REF 0x00000002 #define CTF_PROCESS_REF 0x00000004 #define CTF_COINIT 0x00000008 +#if (_WIN32_IE >= _WIN32_IE_IE60) #define CTF_FREELIBANDEXIT 0x00000010 #define CTF_REF_COUNTED 0x00000020 #define CTF_WAIT_ALLOWCOM 0x00000040 +#endif +#if (_WIN32_IE >= _WIN32_IE_IE70) +#define CTF_UNUSED 0x00000080 +#define CTF_INHERITWOW64 0x00000100 +#endif +#if (NTDDI_VERSION >= NTDDI_VISTA) +#define CTF_WAIT_NO_REENTRANCY 0x00000200 +#endif +#if (NTDDI_VERSION >= NTDDI_WIN7) +#define CTF_KEYBOARD_LOCALE 0x00000400 +#define CTF_OLEINITIALIZE 0x00000800 +#define CTF_COINIT_MTA 0x00001000 +#define CTF_NOADDREFLIB 0x00002000 +#endif + + typedef DWORD SHCT_FLAGS; + + LWSTDAPI_(WINBOOL) SHCreateThread(LPTHREAD_START_ROUTINE pfnThreadProc,void *pData, SHCT_FLAGS dwFlags,LPTHREAD_START_ROUTINE pfnCallback); + LWSTDAPI_(WINBOOL) SHCreateThreadWithHandle(LPTHREAD_START_ROUTINE pfnThreadProc, void *pData, SHCT_FLAGS dwflags, LPTHREAD_START_ROUTINE pfnCallback, HANDLE *pHandle); - LWSTDAPI_(WINBOOL) SHCreateThread(LPTHREAD_START_ROUTINE pfnThreadProc,void *pData,DWORD dwFlags,LPTHREAD_START_ROUTINE pfnCallback); +#if (NTDDI_VERSION >= NTDDI_WIN8) + LWSTDAPI_(void) SetProcessReference(IUnknown *punk); + LWSTDAPI GetProcessReference(IUnknown **punk); +#endif + +#if (_WIN32_IE >= _WIN32_IE_IE60) LWSTDAPI SHReleaseThreadRef(void); +#endif #ifndef NO_SHLWAPI_GDI LWSTDAPI_(HPALETTE) SHCreateShellPalette(HDC hdc); @@ -967,27 +1287,159 @@ LWSTDAPI_(WINBOOL) IsInternetESCEnabled(void); #endif -LWSTDAPI_(IStream *) SHCreateMemStream(const BYTE *pInit, _In_ UINT cbInit); +#ifndef NO_SHLWAPI_HTTP -#ifdef __cplusplus -} +#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) + +#if (_WIN32_IE >= 0x0603) +#define GetAcceptLanguages __MINGW_NAME_AW(GetAcceptLanguages) + LWSTDAPI GetAcceptLanguagesA(LPSTR psz,DWORD *pcch); + LWSTDAPI GetAcceptLanguagesW(LPWSTR psz,DWORD *pcch); #endif -#include <poppack.h> #endif -#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) -#ifndef NO_SHLWAPI_HTTP -#if (_WIN32_IE >= 0x0603) +#endif -#define GetAcceptLanguages __MINGW_NAME_AW(GetAcceptLanguages) +#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) - LWSTDAPI GetAcceptLanguagesA(LPSTR psz,DWORD *pcch); - LWSTDAPI GetAcceptLanguagesW(LPWSTR psz,DWORD *pcch); +#if (_WIN32_IE < _WIN32_IE_IE70) && !defined(NO_SHLWAPI_STOPWATCH) +#define SPMODE_SHELL 0x00000001 +#define SPMODE_DEBUGOUT 0x00000002 +#define SPMODE_TEST 0x00000004 +#define SPMODE_BROWSER 0x00000008 +#define SPMODE_FLUSH 0x00000010 +#define SPMODE_EVENT 0x00000020 +#define SPMODE_MSVM 0x00000040 +#define SPMODE_FORMATTEXT 0x00000080 +#define SPMODE_PROFILE 0x00000100 +#define SPMODE_DEBUGBREAK 0x00000200 +#define SPMODE_MSGTRACE 0x00000400 +#define SPMODE_PERFTAGS 0x00000800 +#define SPMODE_MEMWATCH 0x00001000 +#define SPMODE_DBMON 0x00002000 +#define SPMODE_MULTISTOP 0x00004000 +#if !defined(NO_ETW_TRACING) +#define SPMODE_EVENTTRACE 0x00008000 +#endif + + DWORD WINAPI StopWatchMode(void); + DWORD WINAPI StopWatchFlush(void); +#endif + + LWSTDAPI_(void) IUnknown_Set(IUnknown **ppunk, IUnknown *punk); + LWSTDAPI_(void) IUnknown_AtomicRelease(void **ppunk); + LWSTDAPI IUnknown_GetWindow(IUnknown *punk, HWND *phwnd); + LWSTDAPI IUnknown_SetSite(IUnknown *punk, IUnknown *punkSite); + LWSTDAPI IUnknown_GetSite(IUnknown *punk, REFIID riid, void **ppv); + LWSTDAPI IUnknown_QueryService(IUnknown *punk, REFGUID guidService, REFIID riid, void **ppvOut); +#ifndef COBJMACROS + LWSTDAPI IStream_Read(IStream *pstm, void *pv, ULONG cb); + LWSTDAPI IStream_Write(IStream *pstm, const void *pv, ULONG cb); +#endif + LWSTDAPI IStream_Reset(IStream *pstm); + LWSTDAPI IStream_Size(IStream *pstm, ULARGE_INTEGER *pui); + +#ifndef __IConnectionPoint_FWD_DEFINED__ +#define __IConnectionPoint_FWD_DEFINED__ + typedef interface IConnectionPoint IConnectionPoint; +#endif + + LWSTDAPI ConnectToConnectionPoint(IUnknown *punk, REFIID riidEvent, WINBOOL fConnect, IUnknown *punkTarget, DWORD *pdwCookie, IConnectionPoint **ppcpOut); + +#if (NTDDI_VERSION >= NTDDI_VISTA) + LWSTDAPI IStream_ReadPidl(IStream *pstm, PIDLIST_RELATIVE *ppidlOut); + LWSTDAPI IStream_WritePidl(IStream *pstm, PCUIDLIST_RELATIVE pidlWrite); +#endif + +#if (_WIN32_IE >= _WIN32_IE_IE70) + LWSTDAPI IStream_ReadStr(IStream *pstm, PWSTR *ppsz); + LWSTDAPI IStream_WriteStr(IStream *pstm, PCWSTR psz); + LWSTDAPI IStream_Copy(IStream *pstmFrom, IStream *pstmTo, DWORD cb); #endif + +#if (_WIN32_IE >= 0x0601) +#define SHGVSPB_PERUSER 0x00000001 +#define SHGVSPB_ALLUSERS 0x00000002 +#define SHGVSPB_PERFOLDER 0x00000004 +#define SHGVSPB_ALLFOLDERS 0x00000008 +#define SHGVSPB_INHERIT 0x00000010 +#define SHGVSPB_ROAM 0x00000020 +#define SHGVSPB_NOAUTODEFAULTS 0x80000000 + +#define SHGVSPB_FOLDER (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER) +#define SHGVSPB_FOLDERNODEFAULTS (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER | SHGVSPB_NOAUTODEFAULTS) +#define SHGVSPB_USERDEFAULTS (SHGVSPB_PERUSER | SHGVSPB_ALLFOLDERS) +#define SHGVSPB_GLOBALDEAFAULTS (SHGVSPB_ALLUSERS | SHGVSPB_ALLFOLDERS) + + LWSTDAPI SHGetViewStatePropertyBag(LPCITEMIDLIST pidl,LPCWSTR pszBagName,DWORD dwFlags,REFIID riid,void **ppv); +#endif + +#define FDTF_SHORTTIME 0x00000001 +#define FDTF_SHORTDATE 0x00000002 +#define FDTF_DEFAULT (FDTF_SHORTDATE | FDTF_SHORTTIME) +#define FDTF_LONGDATE 0x00000004 +#define FDTF_LONGTIME 0x00000008 +#define FDTF_RELATIVE 0x00000010 +#define FDTF_LTRDATE 0x00000100 +#define FDTF_RTLDATE 0x00000200 +#define FDTF_NOAUTOREADINGORDER 0x00000400 + + LWSTDAPI_(int) SHFormatDateTimeA(const FILETIME UNALIGNED *pft, DWORD *pdwFlags, LPSTR pszBuf, UINT cchBuf); + LWSTDAPI_(int) SHFormatDateTimeW(const FILETIME UNALIGNED *pft, DWORD *pdwFlags, LPWSTR pszBuf, UINT cchBuf); + +#define SHFormatDateTime __MINGW_NAME_AW(SHFormatDateTime) + +#endif + +#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM) + + LWSTDAPI_(int) SHAnsiToUnicode(PCSTR pszSrc, PWSTR pwszDst, int cwchBuf); + LWSTDAPI_(int) SHAnsiToAnsi(PCSTR pszSrc, PSTR pszDst, int cchBuf); + LWSTDAPI_(int) SHUnicodeToAnsi(PCWSTR pwszSrc, PSTR pszDst, int cchBuf); + LWSTDAPI_(int) SHUnicodeToUnicode(PCWSTR pwzSrc, PWSTR pwzDst, int cwchBuf); + +#if defined(UNICODE) +#define SHTCharToUnicode(wzSrc, wzDest, cchSize) SHUnicodeToUnicode(wzSrc, wzDest, cchSize) +#define SHTCharToAnsi(wzSrc, szDest, cchSize) SHUnicodeToAnsi(wzSrc, szDest, cchSize) +#define SHUnicodeToTChar(wzSrc, wzDest, cchSize) SHUnicodeToUnicode(wzSrc, wzDest, cchSize) +#define SHAnsiToTChar(szSrc, wzDest, cchSize) SHAnsiToUnicode(szSrc, wzDest, cchSize) +#else +#define SHTCharToUnicode(szSrc, wzDest, cchSize) SHAnsiToUnicode(szSrc, wzDest, cchSize) +#define SHTCharToAnsi(szSrc, szDest, cchSize) SHAnsiToAnsi(szSrc, szDest, cchSize) +#define SHUnicodeToTChar(wzSrc, szDest, cchSize) SHUnicodeToAnsi(wzSrc, szDest, cchSize) +#define SHAnsiToTChar(szSrc, szDest, cchSize) SHAnsiToAnsi(szSrc, szDest, cchSize) #endif -#endif /* WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) */ +#endif -#endif /* !NOSHLWAPI */ -#endif /* _INC_SHLWAPI */ +#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) + + LWSTDAPI_(int) SHMessageBoxCheckA(HWND hwnd, LPCSTR pszText, LPCSTR pszCaption, UINT uType, int iDefault, LPCSTR pszRegVal); + LWSTDAPI_(int) SHMessageBoxCheckW(HWND hwnd, LPCWSTR pszText, LPCWSTR pszCaption, UINT uType, int iDefault, LPCWSTR pszRegVal); + +#define SHMessageBoxCheck __MINGW_NAME_AW(SHMessageBoxCheck) + + LWSTDAPI_(LRESULT) SHSendMessageBroadcastA(UINT uMsg, WPARAM wParam, LPARAM lParam); + LWSTDAPI_(LRESULT) SHSendMessageBroadcastW(UINT uMsg, WPARAM wParam, LPARAM lParam); + +#define SHSendMessageBroadcast __MINGW_NAME_AW(SHSendMessageBroadcast) + + LWSTDAPI_(CHAR) SHStripMneumonicA(LPSTR pszMenu); + LWSTDAPI_(WCHAR) SHStripMneumonicW(LPWSTR pszMenu); + +#define SHStripMneumonic __MINGW_NAME_AW(SHStripMneumonic) + +#endif + +#if defined(__cplusplus) +} +#endif + +#include <poppack.h> + +#endif + +#endif + +#endif
_______________________________________________ Mingw-w64-public mailing list Mingw-w64-public@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/mingw-w64-public