#ifndef __WINE_SHLWAPI_H #define __WINE_SHLWAPI_H #include "objbase.h" #ifdef __cplusplus extern "C" { #endif /* defined(__cplusplus) */ /* Mask returned by GetPathCharType */ #define GCT_INVALID 0x0000 #define GCT_LFNCHAR 0x0001 #define GCT_SHORTCHAR 0x0002 #define GCT_WILD 0x0004 #define GCT_SEPARATOR 0x0008 /* These are used by UrlGetPart routine */ typedef enum { URL_PART_NONE = 0, URL_PART_SCHEME = 1, URL_PART_HOSTNAME, URL_PART_USERNAME, URL_PART_PASSWORD, URL_PART_PORT, URL_PART_QUERY, } URL_PART; #define URL_PARTFLAG_KEEPSCHEME 0x00000001 /* These are used by the UrlIs... routines */ typedef enum { URLIS_URL, URLIS_OPAQUE, URLIS_NOHISTORY, URLIS_FILEURL, URLIS_APPLIABLE, URLIS_DIRECTORY, URLIS_HASQUERY, } URLIS; /* This is used by the UrlApplyScheme... routines */ #define URL_APPLY_FORCEAPPLY 0x00000008 #define URL_APPLY_GUESSFILE 0x00000004 #define URL_APPLY_GUESSSCHEME 0x00000002 #define URL_APPLY_DEFAULT 0x00000001 /* This is used by shlwapi ordinal.1 & .2 */ 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_MAXVALUE } URL_SCHEME; /* The following are used by UrlEscape..., UrlUnEscape..., * UrlCanonicalize..., and UrlCombine... routines */ #define URL_WININET_COMPATIBILITY 0x80000000 #define URL_PLUGGABLE_PROTOCOL 0x40000000 #define URL_ESCAPE_UNSAFE 0x20000000 #define URL_UNESCAPE 0x10000000 #define URL_DONT_SIMPLIFY 0x08000000 #define URL_NO_META URL_DONT_SIMPLIFY #define URL_ESCAPE_SPACES_ONLY 0x04000000 #define URL_DONT_ESCAPE_EXTRA_INFO 0x02000000 #define URL_DONT_UNESCAPE_EXTRA_INFO URL_DONT_ESCAPE_EXTRA_INFO #define URL_BROWSER_MODE URL_DONT_ESCAPE_EXTRA_INFO #define URL_INTERNAL_PATH 0x00800000 /* Will escape #'s in paths */ #define URL_UNESCAPE_HIGH_ANSI_ONLY 0x00400000 #define URL_CONVERT_IF_DOSPATH 0x00200000 #define URL_UNESCAPE_INPLACE 0x00100000 #define URL_FILE_USE_PATHURL 0x00010000 #define URL_ESCAPE_SEGMENT_ONLY 0x00002000 #define URL_ESCAPE_PERCENT 0x00001000 LPSTR WINAPI PathAddBackslashA(LPSTR path); LPWSTR WINAPI PathAddBackslashW(LPWSTR path); #define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash) BOOL WINAPI PathAddExtensionA(LPSTR pszPath, LPCSTR pszExt); BOOL WINAPI PathAddExtensionW(LPWSTR pszPath, LPCWSTR pszExt); #define PathAddExtension WINELIB_NAME_AW(PathAddExtension) BOOL WINAPI PathAppendA(LPSTR lpszPath1,LPCSTR lpszPath2); BOOL WINAPI PathAppendW(LPWSTR lpszPath1,LPCWSTR lpszPath2); #define PathAppend WINELIB_NAME_AW(PathAppend) LPSTR WINAPI PathBuildRootA(LPSTR lpszPath, int drive); LPWSTR WINAPI PathBuildRootW(LPWSTR lpszPath, int drive); #define PathBuildRoot WINELIB_NAME_AW(PathBuiltRoot) BOOL WINAPI PathCanonicalizeA(LPSTR lpszDst, LPCSTR lpszSrc); BOOL WINAPI PathCanonicalizeW(LPWSTR lpszDst, LPCWSTR lpszSrc); #define PathCanonicalize WINELIB_NAME_AW(PathCanonicalize) LPSTR WINAPI PathCombineA(LPSTR szDest, LPCSTR lpszDir, LPCSTR lpszFile); LPWSTR WINAPI PathCombineW(LPWSTR szDest, LPCWSTR lpszDir, LPCWSTR lpszFile); #define PathCombine WINELIB_NAME_AW(PathCombine) BOOL WINAPI PathFileExistsA(LPCSTR lpszPath); BOOL WINAPI PathFileExistsW(LPCWSTR lpszPath); #define PathFileExists WINELIB_NAME_AW(PathFileExists) LPSTR WINAPI PathFindExtensionA(LPCSTR path); LPWSTR WINAPI PathFindExtensionW(LPCWSTR path); #define PathFindExtension WINELIB_NAME_AW(PathFindExtension) LPSTR WINAPI PathFindFileNameA(LPCSTR pPath); LPWSTR WINAPI PathFindFileNameW(LPCWSTR pPath); #define PathFindFileName WINELIB_NAME_AW(PathFindFileName) LPSTR WINAPI PathFindNextComponentA(LPCSTR pszPath); LPWSTR WINAPI PathFindNextComponentW(LPCWSTR pszPath); #define PathFindNextComponent WINELIB_NAME_AW(PathFindNextComponent) BOOL WINAPI PathFindOnPathA(LPSTR sFile, LPCSTR sOtherDirs); BOOL WINAPI PathFindOnPathW(LPWSTR sFile, LPCWSTR sOtherDirs); #define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath) LPSTR WINAPI PathGetArgsA(LPCSTR lpszPath); LPWSTR WINAPI PathGetArgsW(LPCWSTR lpszPath); #define PathGetArgs WINELIB_NAME_AW(PathGetArgs) int WINAPI PathGetDriveNumberA(LPCSTR lpszPath); int WINAPI PathGetDriveNumberW(LPCWSTR lpszPath); #define PathGetDriveNumber WINELIB_NAME_AW(PathGetDriveNumber) BOOL WINAPI PathIsDirectoryA(LPCSTR lpszPath); BOOL WINAPI PathIsDirectoryW(LPCWSTR lpszPath); #define PathIsDirectory WINELIB_NAME_AW(PathIsDirectory) BOOL WINAPI PathIsRelativeA(LPCSTR lpszPath); BOOL WINAPI PathIsRelativeW(LPCWSTR lpszPath); #define PathIsRelative WINELIB_NAME_AW(PathIsRelative) BOOL WINAPI PathIsRootA(LPCSTR x); BOOL WINAPI PathIsRootW(LPCWSTR x); #define PathIsRoot WINELIB_NAME_AW(PathIsRoot) BOOL WINAPI PathIsSameRootA(LPCSTR lpszPath1, LPCSTR lpszPath2); BOOL WINAPI PathIsSameRootW(LPCWSTR lpszPath1, LPCWSTR lpszPath2); #define PathIsSameRoot WINELIB_NAME_AW(PathIsSameRoot) BOOL WINAPI PathIsUNCA(LPCSTR lpszPath); BOOL WINAPI PathIsUNCW(LPCWSTR lpszPath); #define PathIsUNC WINELIB_NAME_AW(PathIsUNC) BOOL WINAPI PathIsURLA(LPCSTR pszPath); BOOL WINAPI PathIsURLW(LPCWSTR pszPath); #define PathIsURL WINELIB_NAME_AW(PathIsURL) BOOL WINAPI PathMatchSpecA(LPCSTR lpszPath, LPCSTR lpszSpec); BOOL WINAPI PathMatchSpecW(LPCWSTR lpszPath, LPCWSTR lpszSpec); #define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec) int WINAPI PathParseIconLocationA(LPSTR lpszPath); int WINAPI PathParseIconLocationW(LPWSTR lpszPath); #define PathParseIconLocation WINELIB_NAME_AW(PathParseIconLocation) LPSTR WINAPI PathQuoteSpacesA(LPSTR path); LPWSTR WINAPI PathQuoteSpacesW(LPWSTR path); #define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces) void WINAPI PathRemoveArgsA(LPSTR lpszPath); void WINAPI PathRemoveArgsW(LPWSTR lpszPath); #define PathRemoveArgs WINELIB_NAME_AW(PathRemoveArgs) LPSTR WINAPI PathRemoveBackslashA(LPSTR lpszPath); LPWSTR WINAPI PathRemoveBackslashW(LPWSTR lpszPath); #define PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash) void WINAPI PathRemoveBlanksA(LPSTR lpszPath); void WINAPI PathRemoveBlanksW(LPWSTR lpszPath); #define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks) void WINAPI PathRemoveExtensionA(LPSTR lpszPath); void WINAPI PathRemoveExtensionW(LPWSTR lpszPath); #define PathRemoveExtension WINELIB_NAME_AW(PathRemoveExtension) BOOL WINAPI PathRemoveFileSpecA(LPSTR lpszPath); BOOL WINAPI PathRemoveFileSpecW(LPWSTR lpszPath); #define PathRemoveFileSpec WINELIB_NAME_AW(PathRemoveFileSpec) BOOL WINAPI PathRenameExtensionA(LPSTR pszPath, LPCSTR pszExt); BOOL WINAPI PathRenameExtensionW(LPWSTR pszPath, LPCWSTR pszExt); #define PathRenameExtension WINELIB_NAME_AW(PathRenameExtension) BOOL WINAPI PathSetDlgItemPathA(HWND hDlg, int id, LPCSTR pszPath); BOOL WINAPI PathSetDlgItemPathW(HWND hDlg, int id, LPCWSTR pszPath); #define PathSetDlgItemPath WINELIB_NAME_AW(PathSetDlgItemPath) void WINAPI PathStripPathA(LPSTR lpszPath); void WINAPI PathStripPathW(LPWSTR lpszPath); #define PathStripPath WINELIB_NAME_AW(PathStripPath) BOOL WINAPI PathStripToRootA(LPSTR pszPath); BOOL WINAPI PathStripToRootW(LPWSTR pszPath); #define PathStripToRoot WINELIB_NAME_AW(PathStripToRoot) void WINAPI PathUnquoteSpacesA(LPSTR str); void WINAPI PathUnquoteSpacesW(LPWSTR str); #define PathUnquoteSpaces WINELIB_NAME_AW(PathUnquoteSpaces) BOOL WINAPI ChrCmpIA (WORD w1, WORD w2); BOOL WINAPI ChrCmpIW (WCHAR w1, WCHAR w2); #define ChrCmpI WINELIB_NAME_AW(ChrCmpI) INT WINAPI StrCSpnA(LPCSTR lpStr, LPCSTR lpSet); INT WINAPI StrCSpnW(LPCWSTR lpStr, LPCWSTR lpSet); #define StrCSpn WINELIB_NAME_AW(StrCSpn) INT WINAPI StrCSpnIA(LPCSTR lpStr, LPCSTR lpSet); INT WINAPI StrCSpnIW(LPCWSTR lpStr, LPCWSTR lpSet); #define StrCSpnI WINELIB_NAME_AW(StrCSpnI) #define StrCatA lstrcatA LPWSTR WINAPI StrCatW(LPWSTR front, LPCWSTR back); #define StrCat WINELIB_NAME_AW(StrCat) LPSTR WINAPI StrCatBuffA(LPSTR front, LPCSTR back, INT size); LPWSTR WINAPI StrCatBuffW(LPWSTR front, LPCWSTR back, INT size); #define StrCatBuff WINELIB_NAME_AW(StrCatBuff) LPSTR WINAPI StrChrA(LPCSTR lpStart, WORD wMatch); LPWSTR WINAPI StrChrW(LPCWSTR lpStart, WCHAR wMatch); #define StrChr WINELIB_NAME_AW(StrChr) LPSTR WINAPI StrChrIA(LPCSTR lpStart, WORD wMatch); LPWSTR WINAPI StrChrIW(LPCWSTR lpStart, WCHAR wMatch); #define StrChrI WINELIB_NAME_AW(StrChrI) INT WINAPI StrCmpIW(LPCWSTR lpStr1, LPCWSTR lpStr2); INT WINAPI StrCmpNA(LPCSTR lpStr1, LPCSTR lpStr2, INT nChar); INT WINAPI StrCmpNW(LPCWSTR lpStr1, LPCWSTR lpStr2, INT nChar); #define StrCmpN WINELIB_NAME_AW(StrCmpN) INT WINAPI StrCmpNIA(LPCSTR lpStr1, LPCSTR lpStr2, INT nChar); INT WINAPI StrCmpNIW(LPCWSTR lpStr1, LPCWSTR lpStr2, INT nChar); #define StrCmpNI WINELIB_NAME_AW(StrCmpNI) INT WINAPI StrCmpW(LPCWSTR lpStr1, LPCWSTR lpStr2); LPWSTR WINAPI StrCpyW(LPWSTR lpStr1, LPCWSTR lpStr2); LPWSTR WINAPI StrCpyNW(LPWSTR lpStr1, LPCWSTR lpStr2, int n); LPSTR WINAPI StrDupA(LPCSTR lpSrc); LPWSTR WINAPI StrDupW(LPCWSTR lpSrc); #define StrDup WINELIB_NAME_AW(StrDup) LPSTR WINAPI StrFormatByteSizeA ( DWORD dw, LPSTR pszBuf, UINT cchBuf ); LPWSTR WINAPI StrFormatByteSizeW ( DWORD dw, LPWSTR pszBuf, UINT cchBuf ); #define StrFormatByteSize WINELIB_NAME_AW(StrFormatByteSize) LPSTR WINAPI StrNCatA(LPSTR front, LPCSTR back, INT cchMax); LPWSTR WINAPI StrNCatW(LPWSTR front, LPCWSTR back, INT cchMax); #define StrNCat WINELIB_NAME_AW(StrNCat) LPSTR WINAPI StrRChrA(LPCSTR lpStart, LPCSTR lpEnd, WORD wMatch); LPWSTR WINAPI StrRChrW(LPCWSTR lpStart, LPCWSTR lpEnd, WCHAR wMatch); #define StrRChr WINELIB_NAME_AW(StrRChr) LPSTR WINAPI StrRChrIA(LPCSTR lpStart, LPCSTR lpEnd, WORD wMatch); LPWSTR WINAPI StrRChrIW(LPCWSTR lpStart, LPCWSTR lpEnd, WCHAR wMatch); #define StrRChrI WINELIB_NAME_AW(StrRChrI) LPSTR WINAPI StrStrA(LPCSTR lpFirst, LPCSTR lpSrch); LPWSTR WINAPI StrStrW(LPCWSTR lpFirst, LPCWSTR lpSrch); #define StrStr WINELIB_NAME_AW(StrStr) LPSTR WINAPI StrStrIA(LPCSTR lpFirst, LPCSTR lpSrch); LPWSTR WINAPI StrStrIW(LPCWSTR lpFirst, LPCWSTR lpSrch); #define StrStrI WINELIB_NAME_AW(StrStrI) int WINAPI StrToIntA(LPCSTR lpSrc); int WINAPI StrToIntW(LPCWSTR lpSrc); #define StrToInt WINELIB_NAME_AW(StrToInt) int WINAPI StrToIntExA(LPCSTR lpSrc, DWORD dwFlags, LPINT piRet); int WINAPI StrToIntExW(LPCWSTR lpSrc, DWORD dwFlags, LPINT piRet); #define StrToIntEx WINELIB_NAME_AW(StrToIntEx) BOOL WINAPI StrTrimA(LPSTR pszSrc, LPCSTR pszTrimChars); BOOL WINAPI StrTrimW(LPWSTR pszSrc, LPCWSTR pszTrimChars); #define StrTrim WINELIB_NAME_AW(StrTrim) INT WINAPI wvnsprintfA(LPSTR lpOut, INT cchLimitIn, LPCSTR lpFmt, va_list arglist); INT WINAPI wvnsprintfW(LPWSTR lpOut, INT cchLimitIn, LPCWSTR lpFmt, va_list arglist); #define wvnsprintf WINELIB_NAME_AW(wvnsprintf) INT WINAPIV wnsprintfA(LPSTR lpOut, INT cchLimitIn, LPCSTR lpFmt, ...); INT WINAPIV wnsprintfW(LPWSTR lpOut, INT cchLimitIn, LPCWSTR lpFmt, ...); #define wnsprintf WINELIB_NAME_AW(wnsprintf) struct _STRRET; struct _ITEMIDLIST; HRESULT WINAPI StrRetToBufA(struct _STRRET *src, const struct _ITEMIDLIST *pidl, LPSTR dest, DWORD len); HRESULT WINAPI StrRetToBufW(struct _STRRET *src, const struct _ITEMIDLIST *pidl, LPWSTR dest, DWORD len); #define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf) /* Shell Registry interfaces */ HRESULT WINAPI SHQueryValueExA(HKEY hkey, LPSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData); HRESULT WINAPI SHQueryValueExW(HKEY hkey, LPWSTR pszValue, LPDWORD pdwReserved, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData); #define SHQueryValueEx WINELIB_NAME_AW(SHQueryValueEx) HRESULT WINAPI SHDeleteKeyA(HKEY hKey, LPCSTR lpszSubKey); HRESULT WINAPI SHDeleteKeyW(HKEY hkey, LPCWSTR pszSubKey); #define SHDeleteKey WINELIB_NAME_AW(SHDeleteKey) HRESULT WINAPI SHDeleteValueA(HKEY hKey, LPCSTR lpszSubKey, LPCSTR pszValue); HRESULT WINAPI SHDeleteValueW(HKEY hkey, LPCWSTR pszSubKey, LPCWSTR pszValue); #define SHDeleteValue WINELIB_NAME_AW(SHDeleteValue) DWORD WINAPI SHDeleteEmptyKeyA(HKEY hKey, LPCSTR lpszSubKey); DWORD WINAPI SHDeleteEmptyKeyW(HKEY hKey, LPCWSTR lpszSubKey); #define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey) HKEY WINAPI SHRegDuplicateHKey(HKEY hKey); DWORD WINAPI SHRegGetPathA(HKEY hKey, LPCSTR pcszSubKey, LPCSTR pcszValue, LPSTR pszPath, DWORD dwFlags); DWORD WINAPI SHRegGetPathW(HKEY hKey, LPCWSTR pcszSubKey, LPCWSTR pcszValue, LPWSTR pszPath, DWORD dwFlags); #define SHRegGetPath WINELIB_NAME_AW(SHRegGetPath) DWORD WINAPI SHGetValueA(HKEY hKey, LPCSTR pSubKey, LPCSTR pValue, LPDWORD pwType, LPVOID pvData, LPDWORD pbData); DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR pSubKey, LPCWSTR pValue, LPDWORD pwType, LPVOID pvData, LPDWORD pbData); #define SHGetValue WINELIB_NAME_AW(SHGetValue) HRESULT WINAPI SHSetValueA(HKEY hKey, LPCSTR pszSubKey, LPCSTR pszValue, DWORD dwType, LPCVOID pvData, DWORD cbData); HRESULT WINAPI SHSetValueW(HKEY hKey, LPCWSTR pszSubKey, LPCWSTR pszValue, DWORD dwType, LPCVOID pvData, DWORD cbData); #define SHSetValue WINELIB_NAME_AW(SHSetValue) typedef HANDLE HUSKEY; typedef HUSKEY *PHUSKEY; typedef enum { SHREGDEL_DEFAULT = 0, /* delete HKCU if found or HKLM if not */ SHREGDEL_HKCU = 0x01, /* delete HKCU */ SHREGDEL_HKLM = 0x10, /* delete HKLM */ SHREGDEL_BOTH = 0x11, /* delete HKCU *and* HKLM */ } SHREGDEL_FLAGS; typedef enum { SHREGENUM_DEFAULT = 0, /* do HKCU or HKLM if not found */ SHREGENUM_HKCU = 0x01, /* do HKCU only */ SHREGENUM_HKLM = 0x10, /* do HKLM only */ SHREGENUM_BOTH = 0x11, /* do both HKCU and HKLM without dups */ } SHREGENUM_FLAGS; #define SHREGSET_HKCU 0x00000001 /* Write to HKCU if empty */ #define SHREGSET_FORCE_HKCU 0x00000002 /* Write to HKCU */ #define SHREGSET_HKLM 0x00000004 /* Write to HKLM if empty */ #define SHREGSET_FORCE_HKLM 0x00000008 /* Write to HKLM */ #define SHREGSET_DEFAULT (SHREGSET_FORCE_HKCU | SHREGSET_HKLM) /* Shell User Key Registry interfaces */ LONG WINAPI SHRegOpenUSKeyA(LPCSTR Path, REGSAM AccessType, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, BOOL fIgnoreHKCU); LONG WINAPI SHRegOpenUSKeyW(LPCWSTR Path, REGSAM AccessType, HUSKEY hRelativeUSKey, PHUSKEY phNewUSKey, BOOL fIgnoreHKCU); #define SHRegOpenUSKey WINELIB_NAME_AW(SHRegOpenUSKey) LONG WINAPI SHRegCloseUSKey(HUSKEY hUSKey); LONG WINAPI SHRegGetUSValueA(LPCSTR pszSubKey, LPCSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize); LONG WINAPI SHRegGetUSValueW(LPCWSTR pszSubKey, LPCWSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize); #define SHRegGetUSValue WINELIB_NAME_AW(SHRegGetUSValue) BOOL WINAPI SHRegGetBoolUSValueA(LPCSTR pszSubKey, LPCSTR pszValue, BOOL fIgnoreHKCU, BOOL fDefault); BOOL WINAPI SHRegGetBoolUSValueW(LPCWSTR pszSubKey, LPCWSTR pszValue, BOOL fIgnoreHKCU, BOOL fDefault); #define SHRegGetBoolUSValue WINELIB_NAME_AW(SHRegGetBoolUSValue) LONG WINAPI SHRegQueryUSValueA(HUSKEY hUSKey, LPCSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize); LONG WINAPI SHRegQueryUSValueW(HUSKEY hUSKey, LPCWSTR pszValue, LPDWORD pdwType, LPVOID pvData, LPDWORD pcbData, BOOL fIgnoreHKCU, LPVOID pvDefaultData, DWORD dwDefaultDataSize); #define SHRegQueryUSValue WINELIB_NAME_AW(SHRegQueryUSValue) DWORD WINAPI SHRegQueryInfoUSKeyA(HUSKEY hUSKey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen, SHREGENUM_FLAGS enumRegFlags); DWORD WINAPI SHRegQueryInfoUSKeyW(HUSKEY hUSKey, LPDWORD pcSubKeys, LPDWORD pcchMaxSubKeyLen, LPDWORD pcValues, LPDWORD pcchMaxValueNameLen, SHREGENUM_FLAGS enumRegFlags); #define SHRegQueryInfoUSKey WINELIB_NAME_AW(SHRegQueryInfoUSKey) LONG WINAPI SHRegEnumUSKeyA(HUSKEY hUSKey, DWORD dwIndex, LPSTR pszName, LPDWORD pcchValueNameLen, SHREGENUM_FLAGS enumRegFlags); LONG WINAPI SHRegEnumUSKeyW(HUSKEY hUSKey, DWORD dwIndex, LPWSTR pszName, LPDWORD pcchValueNameLen, SHREGENUM_FLAGS enumRegFlags); #define SHRegEnumUSKey WINELIB_NAME_AW(SHRegEnumUSKey) LONG WINAPI SHRegWriteUSValueA(HUSKEY hUSKey, LPCSTR pszValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags); LONG WINAPI SHRegWriteUSValueW(HUSKEY hUSKey, LPCWSTR pszValue, DWORD dwType, LPVOID pvData, DWORD cbData, DWORD dwFlags); #define SHRegWriteUSValue WINELIB_NAME_AW(SHRegWriteUSValue) /* Shell URL interfaces */ HRESULT WINAPI UrlApplySchemeA(LPCSTR pszIn, LPSTR pszOut, LPDWORD pcchOut, DWORD dwFlags); HRESULT WINAPI UrlApplySchemeW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwFlags); #define UrlApplyScheme WINELIB_NAME_AW(UrlApplyScheme) HRESULT WINAPI UrlCanonicalizeA(LPCSTR pszUrl, LPSTR pszCanonicalized, LPDWORD pcchCanonicalized, DWORD dwFlags); HRESULT WINAPI UrlCanonicalizeW(LPCWSTR pszUrl, LPWSTR pszCanonicalized, LPDWORD pcchCanonicalized, DWORD dwFlags); #define UrlCanonicalize WINELIB_NAME_AW(UrlCanoncalize) HRESULT WINAPI UrlCombineA(LPCSTR pszBase, LPCSTR pszRelative, LPSTR pszCombined, LPDWORD pcchCombined, DWORD dwFlags); HRESULT WINAPI UrlCombineW(LPCWSTR pszBase, LPCWSTR pszRelative, LPWSTR pszCombined, LPDWORD pcchCombined, DWORD dwFlags); #define UrlCombine WINELIB_NAME_AW(UrlCombine) INT WINAPI UrlCompareA(LPCSTR pszUrl1, LPCSTR pszUrl2, BOOL fIgnoreSlash); INT WINAPI UrlCompareW(LPCWSTR pszUrl1, LPCWSTR pszUrl2, BOOL fIgnoreSlash); #define UrlCompare WINELIB_NAME_AW(UrlCompare) HRESULT WINAPI UrlEscapeA(LPCSTR pszUrl, LPSTR pszEscaped, LPDWORD pcchEscaped, DWORD dwFlags); HRESULT WINAPI UrlEscapeW(LPCWSTR pszUrl, LPWSTR pszEscaped, LPDWORD pcchEscaped, DWORD dwFlags); #define UrlEscape WINELIB_NAME_AW(UrlEscape) LPCSTR WINAPI UrlGetLocationA(LPCSTR pszUrl); LPCWSTR WINAPI UrlGetLocationW(LPCWSTR pszUrl); #define UrlGetLocation WINELIB_NAME_AW(UrlGetLocation) HRESULT WINAPI UrlGetPartA(LPCSTR pszIn, LPSTR pszOut, LPDWORD pcchOut, DWORD dwPart, DWORD dwFlags); HRESULT WINAPI UrlGetPartW(LPCWSTR pszIn, LPWSTR pszOut, LPDWORD pcchOut, DWORD dwPart, DWORD dwFlags); #define UrlGetPart WINELIB_NAME_AW(UrlGetPart) BOOL WINAPI HashData(const unsigned char *lpSrc, INT nSrcLen, unsigned char *lpDest, INT nDestLen); HRESULT WINAPI UrlHashA(LPCSTR pszUrl, unsigned char *lpDest, INT nDestlen); HRESULT WINAPI UrlHashW(LPCWSTR pszUrl, unsigned char *lpDest, INT nDestlen); #define UrlHash WINELIB_NAME_AW(UrlHash) BOOL WINAPI UrlIsA(LPCSTR pszUrl, URLIS UrlIs); BOOL WINAPI UrlIsW(LPCWSTR pszUrl, URLIS UrlIs); #define UrlIs WINELIB_NAME_AW(UrlIs) BOOL WINAPI UrlIsNoHistoryA(LPCSTR pszUrl); BOOL WINAPI UrlIsNoHistoryW(LPCWSTR pszUrl); #define UrlIsNoHistory WINELIB_NAME_AW(UrlIsNoHistory) BOOL WINAPI UrlIsOpaqueA(LPCSTR pszUrl); BOOL WINAPI UrlIsOpaqueW(LPCWSTR pszUrl); #define UrlIsOpaque WINELIB_NAME_AW(UrlIsOpaque) HRESULT WINAPI UrlUnescapeA(LPCSTR pszUrl, LPSTR pszUnescaped, LPDWORD pcchUnescaped, DWORD dwFlags); HRESULT WINAPI UrlUnescapeW(LPCWSTR pszUrl, LPWSTR pszUnescaped, LPDWORD pcchUnescaped, DWORD dwFlags); #define UrlUnescape WINELIB_AW_NAME(UrlUnescape) typedef struct _DllVersionInfo { DWORD cbSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformID; } DLLVERSIONINFO; #define DLLVER_PLATFORM_WINDOWS 0x00000001 // Windows 9x #define DLLVER_PLATFORM_NT 0x00000002 // Windows NT typedef HRESULT CALLBACK (*DLLGETVERSIONPROC)(DLLVERSIONINFO *); #ifdef __cplusplus } /* extern "C" */ #endif /* defined(__cplusplus) */ #endif /* __WINE_SHLWAPI_H */