538 lines
20 KiB
C
538 lines
20 KiB
C
#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 */
|