#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 /* * The URL_ defines were determined by trial and error. If they become * documented please check them and add the missing ones including: * * URL_ESCAPE_PERCENT * URL_PLUGGABLE_PROTOCOL * URL_DONT_ESCAPE_EXTRA_INFO * URL_ESCAPE_SEGMENT_ONLY */ #define URL_UNESCAPE_INPLACE 0x00100000 #define URL_DONT_UNESCAPE_EXTRA_INFO 0x02000000 #define URL_ESCAPE_SPACES_ONLY 0x04000000 #define URL_UNESCAPE 0x10000000 #define URL_ESCAPE_UNSAFE 0x20000000 #define URL_DONT_SIMPLIFY 0x40000000 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 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) 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 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) 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) 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) DWORD WINAPI SHDeleteEmptyKeyA(HKEY hKey, LPCSTR lpszSubKey); DWORD WINAPI SHDeleteEmptyKeyW(HKEY hKey, LPCWSTR lpszSubKey); #define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey) 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; 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 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) 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 */