/* * shlwapi.h Shell lightweight functions * * ========================================================================= * * Open Watcom Project * * Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved. * * This file is automatically generated. Do not edit directly. * * ========================================================================= */ #ifndef _INC_SHLWAPI #define _INC_SHLWAPI #ifndef _ENABLE_AUTODEPEND #pragma read_only_file; #endif #include #include #ifdef __cplusplus extern "C" { #endif /* Macros to specify shell lightweight functions */ #define LWSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE #define LWSTDAPI_( x ) EXTERN_C DECLSPEC_IMPORT x STDAPICALLTYPE #define LWSTDAPIV EXTERN_C DECLSPEC_IMPORT HRESULT STDAPIVCALLTYPE #define LWSTDAPIV_( x ) EXTERN_C DECLSPEC_IMPORT x STDAPIVCALLTYPE /* Forward declarations */ typedef interface IConnectionPoint IConnectionPoint; /* Shell lightweight primitive data types */ typedef int STIF_FLAGS; #if (_WIN32_IE >= 0x0602) typedef int SRRF; #endif typedef HANDLE HUSKEY; typedef HUSKEY *PHUSKEY; /* StrToIntEx() flags */ #define STIF_DEFAULT 0x00000000L #define STIF_SUPPORT_HEX 0x00000001L /* MIME type strings */ #define SZ_CONTENTTYPE_HTMLA "text/html" #define SZ_CONTENTTYPE_HTMLW L"text/html" #define SZ_CONTENTTYPE_CDFA "application/x-cdf" #define SZ_CONTENTTYPE_CDFW L"application/x-cdf" #ifdef UNICODE #define SZ_CONTENTTYPE_HTML SZ_CONTENTTYPE_HTMLW #define SZ_CONTENTTYPE_CDF SZ_CONTENTTYPE_CDFW #else #define SZ_CONTENTTYPE_HTML SZ_CONTENTTYPE_HTMLA #define SZ_CONTENTTYPE_CDF SZ_CONTENTTYPE_CDFA #endif /* PathGetCharType() return flags */ #define GCT_INVALID 0x0000 #define GCT_LFNCHAR 0x0001 #define GCT_SHORTCHAR 0x0002 #define CGT_WILD 0x0004 #define GCT_SEPARATOR 0x0008 /* PathMatchSpecEx() flags */ #if (_WIN32_IE >= 0x0700) #define PMSF_NORMAL 0x00000000L #define PMSF_MULTIPLE 0x00000001L #define PMSF_DONT_STRIP_SPACES 0x00010000L #endif /* UrlEscape() flags */ #define URL_ESCAPE_PERCENT 0x00001000L #define URL_ESCAPE_SEGMENT_ONLY 0x00002000L #define URL_FILE_USE_PATHURL 0x00010000L #if (_WIN32_IE >= 0x0602) #define URL_DONT_UNESCAPE 0x00020000L #endif #if (NTDDI_VERSION >= 0x06010000) #define URL_ESCAPE_AS_UTF8 0x00040000L #endif #define URL_UNESCAPE_INPLACE 0x00100000L #define URL_CONVERT_IF_DOSPATH 0x00200000L #define URL_UNESCAPE_HIGH_ANSI_ONLY 0x00400000L #define URL_INTERNAL_PATH 0x00800000L #define URL_DONT_ESCAPE_EXTRA_INFO 0x02000000L #define URL_DONT_UNESCAPE_EXTRA_INFO URL_DONT_ESCAPE_EXTRA_INFO #define URL_BROWSER_MODE URL_DONT_ESCAPE_EXTRA_INFO #define URL_ESCAPE_SPACES_ONLY 0x04000000L #define URL_DONT_SIMPLIFY 0x08000000L #define URL_NO_META URL_DONT_SIMPLIFY #define URL_UNESCAPE 0x10000000L #define URL_ESCAPE_UNSAFE 0x20000000L #define URL_PLUGGABLE_PROTOCOL 0x40000000L #define URL_WININET_COMPATIBILITY 0x80000000L /* URL part flags */ #define URL_PARTFLAG_KEEPSCHEME 0x00000001L /* URL apply flags */ #define URL_APPLY_DEFAULT 0x00000001L #define URL_APPLY_GUESSSCHEME 0x00000002L #define URL_APPLY_GUESSFILE 0x00000004L #define URL_APPLY_FORCEAPPLY 0x00000008L /* Shell registry routine flags */ #if (_WIN32_IE >= 0x0600) #define SRRF_RT_REG_NONE 0x00000001 #define SRRF_RT_REG_SZ 0x00000002 #define SRRF_RT_REG_EXPAND_SZ 0x00000004 #define SRRF_RT_REG_BINARY 0x00000008 #define SRRF_RT_REG_DWORD 0x00000010 #define SRRF_RT_REG_MULTI_SZ 0x00000020 #define SRRF_RT_REG_QWORD 0x00000040 #define SRRF_RT_DWORD (SRRF_RT_REG_BINARY | SRRF_RT_REG_DWORD) #define SRRF_RT_QWORD (SRRF_RT_REG_BINARY | SRRF_RT_REG_QWORD) #define SRRF_RT_ANY 0x0000FFFF #define SRRF_RM_ANY 0x00000000 #define SRRF_RM_NORMAL 0x00010000 #define SRRF_RM_SAFE 0x00020000 #define SRRF_RM_SAFENETWORK 0x00040000 #define SRRF_NOEXPAND 0x10000000 #define SRRF_ZEROONFAILURE 0x20000000 #define SRRF_NOVIRT 0x40000000 #endif /* Shell registry set flags */ #define SHREGSET_HKCU 0x00000001 #define SHREGSET_FORCE_HKCU 0x00000002 #define SHREGSET_HKLM 0x00000004 #define SHREGSET_FORCE_HKLM 0x00000008 #define SHREGSET_DEFAULT (SHREGSET_FORCE_HKCU | SHREGSET_FORCE_HKLM) /* Multilanguage cross code page flags */ #if (_WIN32_IE >= 0x0501) #define ML_NO_CROSSCODEPAGE 0L #define ML_CROSSCODEPAGE_NT 1L #define ML_CROSSCODEPAGE 2L #define ML_SHELL_LANGUAGE 4L #define ML_CROSSCODEPAGE_MASK 7L #endif /* Stopwatch modes */ #if (_WIN32_IE < 0x0700) #define SPMODE_SHELL 0x00000001L #define SPMODE_DEBUGOUT 0x00000002L #define SPMODE_TEST 0x00000004L #define SPMODE_BROWSER 0x00000008L #define SPMODE_FLUSH 0x00000010L #define SPMODE_EVENT 0x00000020L #define SPMODE_MSVM 0x00000040L #define SPMODE_FORMATTEXT 0x00000080L #define SPMODE_PROFILE 0x00000100L #define SPMODE_DEBUGBREAK 0x00000200L #define SPMODE_MSGTRACE 0x00000400L #define SPMODE_PERFTAGS 0x00000800L #define SPMODE_MEMWATCH 0x00001000L #define SPMODE_DBMON 0x00002000L #define SPMODE_MULTISTOP 0x00004000L #define SPMODE_EVENTTRACE 0x00008000L #endif /* SHGetViewStatePropertyBag() flags */ #if (_WIN32_IE >= 0x0600) #define SHGVSPB_PERUSER 0x00000001L #define SHGVSPB_ALLUSERS 0x00000002L #define SHGVSPB_PERFOLDER 0x00000004L #define SHGVSPB_ALLFOLDERS 0x00000008L #define SHGVSPB_INHERIT 0x00000010L #define SHGVSPB_ROAM 0x00000020L #define SHGVSPB_NOAUTODEFAULTS 0x80000000L #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_GLOBALDEFAULTS (SHGVSPB_ALLUSERS | SHGVSPB_ALLFOLDERS) #endif /* SHFormatDateTime() flags */ #define FDTF_SHORTTIME 0x00000001L #define FDTF_SHORTDATE 0x00000002L #define FDTF_DEFAULT (FDTF_SHORTDATE | FDTF_SHORTTIME) #define FDTF_LONGDATE 0x00000004L #define FDTF_LONGTIME 0x00000008L #define FDTF_RELATIVE 0x00000010L #define FDTF_LTRDATE 0x00000100L #define FDTF_RTLDATE 0x00000200L #define FDTF_NOAUTOREADINGORDER 0x00000400L /* IsOS() constants */ #if (_WIN32_IE >= 0x0501) #define OS_WINDOWS 0L #define OS_NT 1L #define OS_WIN95ORGREATER 2L #define OS_NT4ORGREATER 3L #define OS_WIN98ORGREATER 5L #define OS_WIN98_GOLD 6L #define OS_WIN2000ORGREATER 7L #define OS_WIN2000PRO 8L #define OS_WIN2000SERVER 9L #define OS_WIN2000ADVSERVER 10L #define OS_WIN2000DATACENTER 11L #define OS_WIN2000TERMINAL 12L #define OS_EMBEDDED 13L #define OS_TERMINALCLIENT 14L #define OS_TERMINALREMOTEADMIN 15L #define OS_WIN95_GOLD 16L #define OS_MEORGREATER 17L #define OS_XPORGREATER 18L #define OS_HOME 19L #define OS_PROFESSIONAL 20L #define OS_DATACENTER 21L #define OS_ADVSERVER 22L #define OS_SERVER 23L #define OS_TERMINALSERVER 24L #define OS_PERSONALTERMINALSERVER 25L #define OS_FASTUSERSWITCHING 26L #define OS_WELCOMELOGONUI 27L #define OS_DOMAINMEMBER 28L #define OS_ANYSERVER 29L #define OS_WOW6432 30L #define OS_WEBSERVER 31L #define OS_SMALLBUSINESSSERVER 32L #define OS_TABLETPC 33L #define OS_SERVERADMINUI 34L #define OS_MEDIACENTER 35L #define OS_APPLIANCE 36L #endif /* WhichPlatform() return values */ #if (_WIN32_IE >= 0x0501) #define PLATFORM_UNKNOWN 0 #define PLATFORM_IE3 1 #define PLATFORM_BROWSERONLY 1 #define PLATFORM_INTEGRATED 2 #endif /* SHIsLowMemoryMachine() flags */ #define ILMM_IE4 0L /* SHAutoComplete() flags */ #if (_WIN32_IE >= 0x0500) #define SHACF_DEFAULT 0x00000000L #define SHACF_FILESYSTEM 0x00000001L #define SHACF_URLHISTORY 0x00000002L #define SHACF_URLMRU 0x00000004L #define SHACF_URLALL (SHACF_URLHISTORY | SHACF_URLMRU) #define SHACF_USETAB 0x00000008L #define SHACF_FILESYS_ONLY 0x00000010L #endif #if (_WIN32_IE >= 0x0600) #define SHACF_FILESYS_DIRS 0x00000020L #endif #if (_WIN32_IE >= 0x0700) #define SHACF_VIRTUAL_NAMESPACE 0x00000040L #endif #if (_WIN32_IE >= 0x0500) #define SHACF_AUTOSUGGEST_FORCE_ON 0x10000000L #define SHACF_AUTOSUGGEST_FORCE_OFF 0x20000000L #define SHACF_AUTOAPPEND_FORCE_ON 0x40000000L #define SHACF_AUTOAPPEND_FORCE_OFF 0x80000000L #endif /* DllGetVersion() platform identifiers */ #define DLLVER_PLATFORM_WINDOWS 0x00000001L #define DLLVER_PLATFORM_NT 0x00000002L /* DllGetVersion() version number masks */ #if (_WIN32_IE >= 0x0500) #define DLLVER_MAJOR_MASK 0xFFFF000000000000LL #define DLLVER_MINOR_MASK 0x0000FFFF00000000LL #define DLLVER_BUILD_MASK 0x00000000FFFF0000LL #define DLLVER_QFE_MASK 0x000000000000FFFFLL #endif /* Macro to make version numbers for DllGetVersion() */ #define MAKEDLLVERULL( p1, p2, p3, p4 ) \ (((ULONGLONG)(p1) << 48) | ((ULONGLONG)(p2) << 32) | ((ULONGLONG)(p3) << 16)) | \ (ULONGLONG)(p4)) /* QueryInterface() table macros */ #ifndef STATIC_CAST #define STATIC_CAST( x ) static_cast< x > #endif #ifndef OFFSETOFCLASS #define OFFSETOFCLASS( p1, p2 ) \ ((DWORD)(DWORD_PTR)(STATIC_CAST( p1 * )((p2 *)8)) - 8) #endif #define QITABENTMULTI( p1, p2, p3 ) \ { (IID *)&IID_##p2, OFFSETOFCLASS( p3, p1 ) } #define QITABENTMULTI2( p1, p2, p3 ) \ { (IID *)&p2, OFFSETOFCLASS( p3, p1 ) } #define QITABENT( p1, p2 ) QITABENTMULTI( p1, p2, p2 ) /* StrFormatByteSizeEx() flags */ enum tagSFBS_FLAGS { SFBS_FLAGS_ROUND_TO_NEAREST_DISPLAYED_DIGIT = 0x0001, SFBS_FLAGS_TRUNCATE_UNDISPLAYED_DECIMAL_DIGITS = 0x0002 }; typedef int SFBS_FLAGS; /* URL schemes */ typedef enum { URL_SCHEME_INVALID = -1, URL_SCHEME_UNKNOWN = 0, URL_SCHEME_FTP = 1, URL_SCHEME_HTTP = 2, URL_SCHEME_GOPHER = 3, URL_SCHEME_MAILTO = 4, URL_SCHEME_NEWS = 5, URL_SCHEME_NNTP = 6, URL_SCHEME_TELNET = 7, URL_SCHEME_WAIS = 8, URL_SCHEME_FILE = 9, URL_SCHEME_MK = 10, URL_SCHEME_HTTPS = 11, URL_SCHEME_SHELL = 12, URL_SCHEME_SNEWS = 13, URL_SCHEME_LOCAL = 14, URL_SCHEME_JAVASCRIPT = 15, URL_SCHEME_VBSCRIPT = 16, URL_SCHEME_ABOUT = 17, URL_SCHEME_RES = 18, #if (_WIN32_IE >= 0x0600) URL_SCHEME_MSSHELLROOTED = 19, URL_SCHEME_MSSHEELIDLIST = 20, URL_SCHEME_MSHELP = 21, #endif #if (_WIN32_IE >= 0x0700) URL_SCHEME_MSSHELLDEVICE = 22, URL_SCHEME_WILDCARD = 23, #endif #if (NTDDI_VERSION >= 0x06000000) URL_SCHEME_SEARCH_MS = 24, #endif #if (NTDDI_VERSION >= 0x06000100) URL_SCHEME_SEARCH = 25, #endif #if (NTDDI_VERSION >= 0x06010000) URL_SCHEME_KNOWNFOLDER = 26, #endif URL_SCHEME_MAXVALUE = 27 } URL_SCHEME; /* URL parts */ typedef enum { URL_PART_NONE = 0, URL_PART_SCHEME = 1, URL_PART_HOSTNAME = 2, URL_PART_USERNAME = 3, URL_PART_PASSWORD = 4, URL_PART_PORT = 5, URL_PART_QUERY = 6 } URL_PART; /* UrlIs() constants */ typedef enum { URLIS_URL = 0, URLIS_OPAQUE = 1, URLIS_NOHISTORY = 2, URLIS_FILEURL = 3, URLIS_APPLICABLE = 4, URLIS_DIRECTORY = 5, URLIS_HASQUERY = 6 } URLIS; /* Parsed URL */ #if (_WIN32_IE >= 0x0500) typedef struct tagPARSEDURLA { DWORD cbSize; LPCSTR pszProtocol; UINT cchProtocol; LPCSTR pszSuffix; UINT cchSuffix; UINT nScheme; } PARSEDURLA; typedef PARSEDURLA *PPARSEDURLA; typedef struct tagPARSEDURLW { DWORD cbSize; LPCWSTR pszProtocol; UINT cchProtocol; LPCWSTR pszSuffix; UINT cchSuffix; UINT nScheme; } PARSEDURLW; typedef PARSEDURLW *PPARSEDURLW; #ifdef UNICODE typedef PARSEDURLW PARSEDURL; typedef PPARSEDURLW PPARSEDURL; #else typedef PARSEDURLA PARSEDURL; typedef PPARSEDURLA PPARSEDURL; #endif #endif /* Shell registry delete flags */ typedef enum { SHREGDEL_DEFAULT = 0x00000000, SHREGDEL_HKCU = 0x00000001, SHREGDEL_HKLM = 0x00000010, SHREGDEL_BOTH = 0x00000011 } SHREGDEL_FLAGS; /* Shell registry enumeration flags */ typedef enum { SHREGENUM_DEFAULT = 0x00000000, SHREGENUM_HKCU = 0x00000001, SHREGENUM_HKLM = 0x00000010, SHREGENUM_BOTH = 0x00000011 } SHREGENUM_FLAGS; /* Association flags */ enum { ASSOCF_INIT_NOREMAPCLSID = 0x00000001, ASSOCF_INIT_BYEXENAME = 0x00000002, ASSOCF_OPEN_BYEXENAME = 0x00000002, ASSOCF_INIT_DEFAULTTOSTAR = 0x00000004, ASSOCF_INIT_DEFAULTTOFOLDER = 0x00000008, ASSOCF_NOUSERSETTINGS = 0x00000010, ASSOCF_NOTRUNCATE = 0x00000020, ASSOCF_VERIFY = 0x00000040, ASSOCF_REMAPRUNDLL = 0x00000080, ASSOCF_NOFIXUPS = 0x00000100, ASSOCF_IGNOREBASECLASS = 0x00000200, ASSOCF_INIT_IGNOREUNKNOWN = 0x00000400 }; typedef DWORD ASSOCF; /* Association strings */ typedef enum { ASSOCSTR_COMMAND = 1, ASSOCSTR_EXECUTABLE = 2, ASSOCSTR_FRIENDLYDOCNAME = 3, ASSOCSTR_FRIENDLYAPPNAME = 4, ASSOCSTR_NOOPEN = 5, ASSOCSTR_SHELLNEWVALUE = 6, ASSOCSTR_DDECOMMAND = 7, ASSOCSTR_DDEIFEXEC = 8, ASSOCSTR_DDEAPPLICATION = 9, ASSOCSTR_DDETOPIC = 10, ASSOCSTR_INFOTIP = 11, #if (_WIN32_IE >= 0x0600) ASSOCSTR_QUICKTIP = 12, ASSOCSTR_TITLEINFO = 13, ASSOCSTR_CONTENTTYPE = 14, ASSOCSTR_DEFAULTICON = 15, ASSOCSTR_SHELLEXTENSION = 16, #endif #if (_WIN32_IE >= 0x0800) ASSOCSTR_DROPTARGET = 17, ASSOCSTR_DELEGATEEXECUTE = 18, #endif ASSOCSTR_MAX = 19 } ASSOCSTR; /* Association keys */ typedef enum { ASSOCKEY_SHELLEXECCLASS = 1, ASSOCKEY_APP = 2, ASSOCKEY_CLASS = 3, ASSOCKEY_BASECLASS = 4, ASSOCKEY_MAX = 5 } ASSOCKEY; /* Association data values */ typedef enum { ASSOCDATA_MSIDESCRIPTOR = 1, ASSOCDATA_NOACTIVATEHANDLER = 2, ASSOCDATA_QUERYCLASSSTORE = 3, ASSOCDATA_HASPERUSERASSOC = 4, #if (_WIN32_IE >= 0x0600) ASSOCDATA_EDITFLAGS = 5, ASSOCDATA_VALUE = 6, #endif ASSOCDATA_MAX = 7 } ASSOCDATA; /* Association enumeration values */ typedef enum { ASSOCENUM_NONE = 0 } ASSOCENUM; /* QueryInterface() table */ #if (_WIN32_IE >= 0x0501) typedef struct { const IID *piid; int dwOffset; } QITAB; typedef QITAB *LPQITAB; typedef const QITAB *LPCQITAB; #endif /* Shell global counters */ typedef enum { GLOBALCOUNTER_SEARCHMANAGER = 0, GLOBALCOUNTER_SEARCHOPTIONS = 1, GLOBALCOUNTER_FOLDERSETTINGSCHANGE = 2, GLOBALCOUNTER_RATING = 3, GLOBALCOUNTER_APPROVEDSITES = 4, GLOBALCOUNTER_RESTRICTIONS = 5, GLOBALCOUNTER_SHELLSETTINGSCHANGED = 6, GLOBALCOUNTER_SYSTEMPIDLCHANGE = 7, GLOBALCOUNTER_OVERLAYMANAGER = 8, GLOBALCOUNTER_QUERYASSOCIATIONS = 9, GLOBALCOUNTER_IESESSIONS = 10, GLOBALCOUNTER_IEONLY_SESSIONS = 11, GLOBALCOUNTER_APPLICATION_DESTINATIONS = 12, GLOBALCOUNTER_BITBUCKETNUMDELETERS = 14, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_SHARES = 15, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_A = 16, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_B = 17, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_C = 18, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_D = 19, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_E = 20, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_F = 21, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_G = 22, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_H = 23, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_I = 24, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_J = 25, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_K = 26, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_L = 27, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_M = 28, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_N = 29, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_O = 30, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_P = 31, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Q = 32, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_R = 33, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_S = 34, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_T = 35, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_U = 36, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_V = 37, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_W = 38, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_X = 39, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Y = 40, GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Z = 41, GLOBALCOUNTER_RECYCLEBINENUM = 44, GLOBALCOUNTER_RECYCLEBINCORRUPTED = 45, GLOBALCOUNTER_RATINGS_STATECOUNTER = 46, GLOBALCOUNTER_PRIVATE_PROFILE_CACHE = 47, GLOBALCOUNTER_INTERNETTOOLBAR_LAYOUT = 48, GLOBALCOUNTER_FOLDERDEFINITION_CACHE = 49, GLOBALCOUNTER_COMMONPLACES_LIST_CACHE = 50, GLOBALCOUNTER_PRIVATE_PROFILE_CACHE_MACHINEWIDE = 51, GLOBALCOUNTER_ASSOCCHANGED = 52, GLOBALCOUNTER_MAXIMUMVALUE = 53 } SHGLOBALCOUNTER; /* SHCreateThread() flags */ enum { CTF_INSIST = 0x00000001, CTF_THREAD_REF = 0x00000002, CTF_PROCESS_REF = 0x00000004, CTF_COINIT_STA = 0x00000008, CTF_COINIT = CTF_COINIT_STA, #if (_WIN32_IE >= 0x0600) CTF_FREELIBANDEXIT = 0x00000010, CTF_REF_COUNTED = 0x00000020, CTF_WAIT_ALLOWCOM = 0x00000040, #endif #if (_WIN32_IE >= 0x0700) CTF_UNUSED = 0x00000080, CTF_INHERITWOW64 = 0x00000100, #endif #if (NTDDI_VERSION >= 0x06000000) CTF_WAIT_NO_REENTRANCY = 0x00000200, #endif #if (NTDDI_VERSION >= 0x06010000) CTF_KEYBOARD_LOCALE = 0x00000400, CTF_OLEINITIALIZE = 0x00000800, CTF_COINIT_MTA = 0x00001000, CTF_NOADDREFLIB = 0x00002000 #endif }; typedef DWORD SHCT_FLAGS; /* DllGetVersion() parameters */ typedef struct _DLLVERSIONINFO { DWORD cbSize; DWORD dwMajorVersion; DWORD dwMinorVersion; DWORD dwBuildNumber; DWORD dwPlatformID; } DLLVERSIONINFO; /* DllGetVersion() parameters (version 2) */ #if (_WIN32_IE >= 0x0501) typedef struct _DLLVERSIONINFO2 { DLLVERSIONINFO info1; DWORD dwFlags; ULONGLONG ullVersion; } DLLVERSIONINFO2; #endif /* DllGetVersion() function pointer */ typedef HRESULT (CALLBACK *DLLGETVERSIONPROC)( DLLVERSIONINFO * ); /* IQueryAssociations interface */ #undef INTERFACE #define INTERFACE IQueryAssociations DECLARE_INTERFACE_( IQueryAssociations, IUnknown ) { /* IUnknown methods */ STDMETHOD( QueryInterface )( THIS_ REFIID, void ** ) PURE; STDMETHOD_( ULONG, AddRef )( THIS ) PURE; STDMETHOD_( ULONG, Release )( THIS ) PURE; /* IQueryAssociations methods */ STDMETHOD( Init )( THIS_ ASSOCF, LPCWSTR, HKEY, HWND ) PURE; STDMETHOD( GetString )( THIS_ ASSOCF, ASSOCSTR, LPCWSTR, LPWSTR, DWORD * ) PURE; STDMETHOD( GetKey )( THIS_ ASSOCF, ASSOCKEY, LPCWSTR, HKEY * ) PURE; STDMETHOD( GetData )( THIS_ ASSOCF, ASSOCDATA, LPCWSTR, void *, DWORD * ) PURE; STDMETHOD( GetEnum )( THIS_ ASSOCF, ASSOCENUM, LPCWSTR, REFIID, void ** ) PURE; }; /* Undefine C object macros that conflict with functions defined below. */ #if (_WIN32_IE >= 0x0501) && !defined( __cplusplus ) && defined( COBJMACROS ) #undef IStream_Read #undef IStream_Write #endif /* Functions in SHLWAPI.DLL */ LWSTDAPI AssocCreate( CLSID, REFIID, void ** ); LWSTDAPI AssocQueryKeyA( ASSOCF, ASSOCKEY, LPCSTR, LPCSTR, HKEY * ); LWSTDAPI AssocQueryKeyW( ASSOCF, ASSOCKEY, LPCWSTR, LPCWSTR, HKEY * ); LWSTDAPI AssocQueryStringA( ASSOCF, ASSOCSTR, LPCSTR, LPCSTR, LPSTR, DWORD * ); LWSTDAPI AssocQueryStringByKeyA( ASSOCF, ASSOCSTR, HKEY, LPCSTR, LPSTR, DWORD * ); LWSTDAPI AssocQueryStringByKeyW( ASSOCF, ASSOCSTR, HKEY, LPCWSTR, LPWSTR, DWORD * ); LWSTDAPI AssocQueryStringW( ASSOCF, ASSOCSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD * ); LWSTDAPI_( BOOL ) ChrCmpIA( WORD, WORD ); LWSTDAPI_( BOOL ) ChrCmpIW( WCHAR, WCHAR ); LWSTDAPI_( int ) GetMenuPosFromID( HMENU, UINT ); LWSTDAPI HashData( LPBYTE, DWORD, LPBYTE, DWORD ); LWSTDAPI_( BOOL ) IntlStrEqWorkerA( BOOL, LPCSTR, LPCSTR, int ); LWSTDAPI_( BOOL ) IntlStrEqWorkerW( BOOL, LPCWSTR, LPCWSTR, int ); LWSTDAPI_( LPSTR ) PathAddBackslashA( LPSTR ); LWSTDAPI_( LPWSTR ) PathAddBackslashW( LPWSTR ); LWSTDAPI_( BOOL ) PathAddExtensionA( LPSTR, LPCSTR ); LWSTDAPI_( BOOL ) PathAddExtensionW( LPWSTR, LPCWSTR ); LWSTDAPI_( BOOL ) PathAppendA( LPSTR, LPCSTR ); LWSTDAPI_( BOOL ) PathAppendW( LPWSTR, LPCWSTR ); LWSTDAPI_( LPSTR ) PathBuildRootA( LPSTR, int ); LWSTDAPI_( LPWSTR ) PathBuildRootW( LPWSTR, int ); LWSTDAPI_( BOOL ) PathCanonicalizeA( LPSTR, LPCSTR ); LWSTDAPI_( BOOL ) PathCanonicalizeW( LPWSTR, LPCWSTR ); LWSTDAPI_( LPSTR ) PathCombineA( LPSTR, LPCSTR, LPCSTR ); LWSTDAPI_( LPWSTR ) PathCombineW( LPWSTR, LPCWSTR, LPCWSTR ); LWSTDAPI_( int ) PathCommonPrefixA( LPCSTR, LPCSTR, LPSTR ); LWSTDAPI_( int ) PathCommonPrefixW( LPCWSTR, LPCWSTR, LPWSTR ); LWSTDAPI_( BOOL ) PathCompactPathA( HDC, LPSTR, UINT ); LWSTDAPI_( BOOL ) PathCompactPathExA( LPSTR, LPCSTR, UINT, DWORD ); LWSTDAPI_( BOOL ) PathCompactPathExW( LPWSTR, LPCWSTR, UINT, DWORD ); LWSTDAPI_( BOOL ) PathCompactPathW( HDC, LPWSTR, UINT ); LWSTDAPI PathCreateFromUrlA( LPCSTR, LPSTR, LPDWORD, DWORD ); LWSTDAPI PathCreateFromUrlW( LPCWSTR, LPWSTR, LPDWORD, DWORD ); LWSTDAPI_( BOOL ) PathFileExistsA( LPCSTR ); LWSTDAPI_( BOOL ) PathFileExistsW( LPCWSTR ); LWSTDAPI_( LPSTR ) PathFindExtensionA( LPCSTR ); LWSTDAPI_( LPWSTR ) PathFindExtensionW( LPCWSTR ); LWSTDAPI_( LPSTR ) PathFindFileNameA( LPCSTR ); LWSTDAPI_( LPWSTR ) PathFindFileNameW( LPCWSTR ); LWSTDAPI_( LPSTR ) PathFindNextComponentA( LPCSTR ); LWSTDAPI_( LPWSTR ) PathFindNextComponentW( LPCWSTR ); LWSTDAPI_( BOOL ) PathFindOnPathA( LPSTR, LPCSTR * ); LWSTDAPI_( BOOL ) PathFindOnPathW( LPWSTR, LPCWSTR * ); LWSTDAPI_( LPCSTR ) PathFindSuffixArrayA( LPCSTR, const LPCSTR *, int ); LWSTDAPI_( LPCWSTR ) PathFindSuffixArrayW( LPCWSTR, const LPCWSTR *, int ); LWSTDAPI_( LPSTR ) PathGetArgsA( LPCSTR ); LWSTDAPI_( LPWSTR ) PathGetArgsW( LPCWSTR ); LWSTDAPI_( UINT ) PathGetCharTypeA( UCHAR ); LWSTDAPI_( UINT ) PathGetCharTypeW( WCHAR ); LWSTDAPI_( int ) PathGetDriveNumberA( LPCSTR ); LWSTDAPI_( int ) PathGetDriveNumberW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsContentTypeA( LPCSTR, LPCSTR ); LWSTDAPI_( BOOL ) PathIsContentTypeW( LPCWSTR, LPCWSTR ); LWSTDAPI_( BOOL ) PathIsDirectoryA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsDirectoryEmptyA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsDirectoryEmptyW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsDirectoryW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsFileSpecA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsFileSpecW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsLFNFileSpecA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsLFNFileSpecW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsNetworkPathA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsNetworkPathW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsPrefixA( LPCSTR, LPCSTR ); LWSTDAPI_( BOOL ) PathIsPrefixW( LPCWSTR, LPCWSTR ); LWSTDAPI_( BOOL ) PathIsRelativeA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsRelativeW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsRootA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsRootW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsSameRootA( LPCSTR, LPCSTR ); LWSTDAPI_( BOOL ) PathIsSameRootW( LPCWSTR, LPCWSTR ); LWSTDAPI_( BOOL ) PathIsSystemFolderA( LPCSTR, DWORD ); LWSTDAPI_( BOOL ) PathIsSystemFolderW( LPCWSTR, DWORD ); LWSTDAPI_( BOOL ) PathIsUNCA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsUNCServerA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsUNCServerShareA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsUNCServerShareW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsUNCServerW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsUNCW( LPCWSTR ); LWSTDAPI_( BOOL ) PathIsURLA( LPCSTR ); LWSTDAPI_( BOOL ) PathIsURLW( LPCWSTR ); LWSTDAPI_( BOOL ) PathMakePrettyA( LPSTR ); LWSTDAPI_( BOOL ) PathMakePrettyW( LPWSTR ); LWSTDAPI_( BOOL ) PathMakeSystemFolderA( LPCSTR ); LWSTDAPI_( BOOL ) PathMakeSystemFolderW( LPCWSTR ); LWSTDAPI_( BOOL ) PathMatchSpecA( LPCSTR, LPCSTR ); LWSTDAPI_( BOOL ) PathMatchSpecW( LPCWSTR, LPCWSTR ); LWSTDAPI_( int ) PathParseIconLocationA( LPSTR ); LWSTDAPI_( int ) PathParseIconLocationW( LPWSTR ); LWSTDAPI_( BOOL ) PathQuoteSpacesA( LPSTR ); LWSTDAPI_( BOOL ) PathQuoteSpacesW( LPWSTR ); LWSTDAPI_( BOOL ) PathRelativePathToA( LPSTR, LPCSTR, DWORD, LPCSTR, DWORD ); LWSTDAPI_( BOOL ) PathRelativePathToW( LPWSTR, LPCWSTR, DWORD, LPCWSTR, DWORD ); LWSTDAPI_( void ) PathRemoveArgsA( LPSTR ); LWSTDAPI_( void ) PathRemoveArgsW( LPWSTR ); LWSTDAPI_( LPSTR ) PathRemoveBackslashA( LPSTR ); LWSTDAPI_( LPWSTR ) PathRemoveBackslashW( LPWSTR ); LWSTDAPI_( void ) PathRemoveBlanksA( LPSTR ); LWSTDAPI_( void ) PathRemoveBlanksW( LPWSTR ); LWSTDAPI_( void ) PathRemoveExtensionA( LPSTR ); LWSTDAPI_( void ) PathRemoveExtensionW( LPWSTR ); LWSTDAPI_( BOOL ) PathRemoveFileSpecA( LPSTR ); LWSTDAPI_( BOOL ) PathRemoveFileSpecW( LPWSTR ); LWSTDAPI_( BOOL ) PathRenameExtensionA( LPSTR, LPCSTR ); LWSTDAPI_( BOOL ) PathRenameExtensionW( LPWSTR, LPCWSTR ); LWSTDAPI_( BOOL ) PathSearchAndQualifyA( LPCSTR, LPSTR, UINT ); LWSTDAPI_( BOOL ) PathSearchAndQualifyW( LPCWSTR, LPWSTR, UINT ); LWSTDAPI_( void ) PathSetDlgItemPathA( HWND, int, LPCSTR ); LWSTDAPI_( void ) PathSetDlgItemPathW( HWND, int, LPCWSTR ); LWSTDAPI_( LPSTR ) PathSkipRootA( LPCSTR ); LWSTDAPI_( LPWSTR ) PathSkipRootW( LPCWSTR ); LWSTDAPI_( void ) PathStripPathA( LPSTR ); LWSTDAPI_( void ) PathStripPathW( LPWSTR ); LWSTDAPI_( BOOL ) PathStripToRootA( LPSTR ); LWSTDAPI_( BOOL ) PathStripToRootW( LPWSTR ); LWSTDAPI_( BOOL ) PathUnExpandEnvStringsA( LPCSTR, LPSTR, UINT ); LWSTDAPI_( BOOL ) PathUnExpandEnvStringsW( LPCWSTR, LPWSTR, UINT ); LWSTDAPI_( void ) PathUndecorateA( LPSTR ); LWSTDAPI_( void ) PathUndecorateW( LPWSTR ); LWSTDAPI_( BOOL ) PathUnmakeSystemFolderA( LPCSTR ); LWSTDAPI_( BOOL ) PathUnmakeSystemFolderW( LPCWSTR ); LWSTDAPI_( BOOL ) PathUnquoteSpacesA( LPSTR ); LWSTDAPI_( BOOL ) PathUnquoteSpacesW( LPWSTR ); LWSTDAPI_( LSTATUS ) SHCopyKeyA( HKEY, LPCSTR, HKEY, DWORD ); LWSTDAPI_( LSTATUS ) SHCopyKeyW( HKEY, LPCWSTR, HKEY, DWORD ); LWSTDAPI_( HPALETTE ) SHCreateShellPalette( HDC ); LWSTDAPI SHCreateStreamOnFileA( LPCSTR, DWORD, IStream ** ); LWSTDAPI SHCreateStreamOnFileW( LPCWSTR, DWORD, IStream ** ); LWSTDAPI_( BOOL ) SHCreateThread( LPTHREAD_START_ROUTINE, void *, SHCT_FLAGS, LPTHREAD_START_ROUTINE ); LWSTDAPI_( BOOL ) SHCreateThreadWithHandle( LPTHREAD_START_ROUTINE, void *, SHCT_FLAGS, LPTHREAD_START_ROUTINE, HANDLE * ); LWSTDAPI_( LSTATUS ) SHDeleteEmptyKeyA( HKEY, LPCSTR ); LWSTDAPI_( LSTATUS ) SHDeleteEmptyKeyW( HKEY, LPCWSTR ); LWSTDAPI_( LSTATUS ) SHDeleteKeyA( HKEY, LPCSTR ); LWSTDAPI_( LSTATUS ) SHDeleteKeyW( HKEY, LPCWSTR ); LWSTDAPI_( LSTATUS ) SHDeleteValueA( HKEY, LPCSTR, LPCSTR ); LWSTDAPI_( LSTATUS ) SHDeleteValueW( HKEY, LPCWSTR, LPCWSTR ); LWSTDAPI_( LSTATUS ) SHEnumKeyExA( HKEY, DWORD, LPSTR, LPDWORD ); LWSTDAPI_( LSTATUS ) SHEnumKeyExW( HKEY, DWORD, LPWSTR, LPDWORD ); LWSTDAPI_( LSTATUS ) SHEnumValueA( HKEY, DWORD, PSTR, LPDWORD, LPDWORD, void *, LPDWORD ); LWSTDAPI_( LSTATUS ) SHEnumValueW( HKEY, DWORD, PWSTR, LPDWORD, LPDWORD, void *, LPDWORD ); LWSTDAPI_( int ) SHFormatDateTimeA( const FILETIME UNALIGNED *, DWORD *, LPSTR, UINT ); LWSTDAPI_( int ) SHFormatDateTimeW( const FILETIME UNALIGNED *, DWORD *, LPWSTR, UINT ); LWSTDAPI SHGetInverseCMAP( BYTE *, ULONG ); LWSTDAPI_( LSTATUS ) SHGetValueA( HKEY, LPCSTR, LPCSTR, DWORD *, void *, DWORD * ); LWSTDAPI_( LSTATUS ) SHGetValueW( HKEY, LPCWSTR, LPCWSTR, DWORD *, void *, DWORD * ); LWSTDAPI_( long ) SHGlobalCounterDecrement( const SHGLOBALCOUNTER ); LWSTDAPI_( long ) SHGlobalCounterGetValue( const SHGLOBALCOUNTER ); LWSTDAPI_( long ) SHGlobalCounterIncrement( const SHGLOBALCOUNTER ); LWSTDAPI_( BOOL ) SHIsLowMemoryMachine( DWORD ); LWSTDAPI_( IStream * ) SHOpenRegStream2A( HKEY, LPCSTR, LPCSTR, DWORD ); LWSTDAPI_( IStream * ) SHOpenRegStream2W( HKEY, LPCWSTR, LPCWSTR, DWORD ); LWSTDAPI_( IStream * ) SHOpenRegStreamA( HKEY, LPCSTR, LPCSTR, DWORD ); LWSTDAPI_( IStream * ) SHOpenRegStreamW( HKEY, LPCWSTR, LPCWSTR, DWORD ); LWSTDAPI_( LSTATUS ) SHQueryInfoKeyA( HKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD ); LWSTDAPI_( LSTATUS ) SHQueryInfoKeyW( HKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD ); LWSTDAPI_( LSTATUS ) SHQueryValueExA( HKEY, LPCSTR, DWORD *, DWORD *, void *, DWORD * ); LWSTDAPI_( LSTATUS ) SHQueryValueExW( HKEY, LPCWSTR, DWORD *, DWORD *, void *, DWORD * ); LWSTDAPI_( LSTATUS ) SHRegCloseUSKey( HUSKEY ); LWSTDAPI_( LSTATUS ) SHRegCreateUSKeyA( LPCSTR, REGSAM, HUSKEY, PHUSKEY, DWORD ); LWSTDAPI_( LSTATUS ) SHRegCreateUSKeyW( LPCWSTR, REGSAM, HUSKEY, PHUSKEY, DWORD ); LWSTDAPI_( LSTATUS ) SHRegDeleteEmptyUSKeyA( HUSKEY, LPCSTR, SHREGDEL_FLAGS ); LWSTDAPI_( LSTATUS ) SHRegDeleteEmptyUSKeyW( HUSKEY, LPCWSTR, SHREGDEL_FLAGS ); LWSTDAPI_( LSTATUS ) SHRegDeleteUSValueA( HUSKEY, LPCSTR, SHREGDEL_FLAGS ); LWSTDAPI_( LSTATUS ) SHRegDeleteUSValueW( HUSKEY, LPCWSTR, SHREGDEL_FLAGS ); LWSTDAPI_( HKEY ) SHRegDuplicateHKey( HKEY ); LWSTDAPI_( LSTATUS ) SHRegEnumUSKeyA( HUSKEY, DWORD, LPSTR, LPDWORD, SHREGENUM_FLAGS ); LWSTDAPI_( LSTATUS ) SHRegEnumUSKeyW( HUSKEY, DWORD, LPWSTR, LPDWORD, SHREGENUM_FLAGS ); LWSTDAPI_( LSTATUS ) SHRegEnumUSValueA( HUSKEY, DWORD, LPSTR, LPDWORD, LPDWORD, void *, LPDWORD, SHREGENUM_FLAGS ); LWSTDAPI_( LSTATUS ) SHRegEnumUSValueW( HUSKEY, DWORD, LPWSTR, LPDWORD, LPDWORD, void *, LPDWORD, SHREGENUM_FLAGS ); LWSTDAPI_( BOOL ) SHRegGetBoolUSValueA( LPCSTR, LPCSTR, BOOL, BOOL ); LWSTDAPI_( BOOL ) SHRegGetBoolUSValueW( LPCWSTR, LPCWSTR, BOOL, BOOL ); LWSTDAPI_( int ) SHRegGetIntW( HKEY, PCWSTR, int ); LWSTDAPI_( LSTATUS ) SHRegGetPathA( HKEY, LPCSTR, LPCSTR, LPSTR, DWORD ); LWSTDAPI_( LSTATUS ) SHRegGetPathW( HKEY, LPCWSTR, LPCWSTR, LPWSTR, DWORD ); LWSTDAPI_( LSTATUS ) SHRegGetUSValueA( LPCSTR, LPCSTR, DWORD *, void *, DWORD *, BOOL, void *, DWORD ); LWSTDAPI_( LSTATUS ) SHRegGetUSValueW( LPCWSTR, LPCWSTR, DWORD *, void *, DWORD *, BOOL, void *, DWORD ); LWSTDAPI_( LSTATUS ) SHRegOpenUSKeyA( LPCSTR, REGSAM, HUSKEY, PHUSKEY, BOOL ); LWSTDAPI_( LSTATUS ) SHRegOpenUSKeyW( LPCWSTR, REGSAM, HUSKEY, PHUSKEY, BOOL ); LWSTDAPI_( LSTATUS ) SHRegQueryInfoUSKeyA( HUSKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD, SHREGENUM_FLAGS ); LWSTDAPI_( LSTATUS ) SHRegQueryInfoUSKeyW( HUSKEY, LPDWORD, LPDWORD, LPDWORD, LPDWORD, SHREGENUM_FLAGS ); LWSTDAPI_( LSTATUS ) SHRegQueryUSValueA( HUSKEY, LPCSTR, DWORD *, void *, DWORD *, BOOL, void *, DWORD ); LWSTDAPI_( LSTATUS ) SHRegQueryUSValueW( HUSKEY, LPCWSTR, DWORD *, void *, DWORD *, BOOL, void *, DWORD ); LWSTDAPI_( LSTATUS ) SHRegSetPathA( HKEY, LPCSTR, LPCSTR, LPCSTR, DWORD ); LWSTDAPI_( LSTATUS ) SHRegSetPathW( HKEY, LPCWSTR, LPCWSTR, LPCWSTR, DWORD ); LWSTDAPI_( LSTATUS ) SHRegSetUSValueA( LPCSTR, LPCSTR, DWORD, const void *, DWORD, DWORD ); LWSTDAPI_( LSTATUS ) SHRegSetUSValueW( LPCWSTR, LPCWSTR, DWORD, const void *, DWORD, DWORD ); LWSTDAPI_( LSTATUS ) SHRegWriteUSValueA( HUSKEY, LPCSTR, DWORD, const void *, DWORD, DWORD ); LWSTDAPI_( LSTATUS ) SHRegWriteUSValueW( HUSKEY, LPCWSTR, DWORD, const void *, DWORD, DWORD ); LWSTDAPI_( LSTATUS ) SHSetValueA( HKEY, LPCSTR, LPCSTR, DWORD, LPCVOID, DWORD ); LWSTDAPI_( LSTATUS ) SHSetValueW( HKEY, LPCWSTR, LPCWSTR, DWORD, LPCVOID, DWORD ); LWSTDAPI SHStrDupA( LPCSTR, LPWSTR * ); LWSTDAPI SHStrDupW( LPCWSTR, LPWSTR * ); LWSTDAPI_( int ) StrCSpnA( LPCSTR, LPCSTR ); LWSTDAPI_( int ) StrCSpnIA( LPCSTR, LPCSTR ); LWSTDAPI_( int ) StrCSpnIW( LPCWSTR, LPCWSTR ); LWSTDAPI_( int ) StrCSpnW( LPCWSTR, LPCWSTR ); LWSTDAPI_( LPSTR ) StrCatBuffA( LPSTR, LPCSTR, int ); LWSTDAPI_( LPWSTR ) StrCatBuffW( LPWSTR, LPCWSTR, int ); LWSTDAPI_( LPWSTR ) StrCatW( LPWSTR, LPCWSTR ); LWSTDAPI_( LPSTR ) StrChrA( LPCSTR, WORD ); LWSTDAPI_( LPSTR ) StrChrIA( LPCSTR, WORD ); LWSTDAPI_( LPWSTR ) StrChrIW( LPCWSTR, WCHAR ); LWSTDAPI_( LPWSTR ) StrChrW( LPCWSTR, WCHAR ); LWSTDAPI_( int ) StrCmpIW( LPCWSTR, LPCWSTR ); LWSTDAPI_( int ) StrCmpNA( LPCSTR, LPCSTR, int ); LWSTDAPI_( int ) StrCmpNIA( LPCSTR, LPCSTR, int ); LWSTDAPI_( int ) StrCmpNIW( LPCWSTR, LPCWSTR, int ); LWSTDAPI_( int ) StrCmpNW( LPCWSTR, LPCWSTR, int ); LWSTDAPI_( int ) StrCmpW( LPCWSTR, LPCWSTR ); LWSTDAPI_( LPWSTR ) StrCpyNW( LPWSTR, LPCWSTR, int ); LWSTDAPI_( LPWSTR ) StrCpyW( LPWSTR, LPCWSTR ); LWSTDAPI_( LPSTR ) StrDupA( LPCSTR ); LWSTDAPI_( LPWSTR ) StrDupW( LPCWSTR ); LWSTDAPI_( LPSTR ) StrFormatByteSize64A( LONGLONG, LPSTR, UINT ); LWSTDAPI_( LPSTR ) StrFormatByteSizeA( DWORD, LPSTR, UINT ); LWSTDAPI StrFormatByteSizeEx( ULONGLONG, SFBS_FLAGS, LPWSTR, UINT ); LWSTDAPI_( LPWSTR ) StrFormatByteSizeW( LONGLONG, LPWSTR, UINT ); LWSTDAPI_( LPSTR ) StrFormatKBSizeA( LONGLONG, LPSTR, UINT ); LWSTDAPI_( LPWSTR ) StrFormatKBSizeW( LONGLONG, LPWSTR, UINT ); LWSTDAPI_( int ) StrFromTimeIntervalA( LPSTR, UINT, DWORD, int ); LWSTDAPI_( int ) StrFromTimeIntervalW( LPWSTR, UINT, DWORD, int ); LWSTDAPI_( BOOL ) StrIsIntlEqualA( BOOL, LPCSTR, LPCSTR, int ); LWSTDAPI_( BOOL ) StrIsIntlEqualW( BOOL, LPCWSTR, LPCWSTR, int ); LWSTDAPI_( LPSTR ) StrNCatA( LPSTR, LPCSTR, int ); LWSTDAPI_( LPWSTR ) StrNCatW( LPWSTR, LPCWSTR, int ); LWSTDAPI_( LPSTR ) StrPBrkA( LPCSTR, LPCSTR ); LWSTDAPI_( LPWSTR ) StrPBrkW( LPCWSTR, LPCWSTR ); LWSTDAPI_( LPSTR ) StrRChrA( LPCSTR, LPCSTR, WORD ); LWSTDAPI_( LPSTR ) StrRChrIA( LPCSTR, LPCSTR, WORD ); LWSTDAPI_( LPWSTR ) StrRChrIW( LPCWSTR, LPCWSTR, WCHAR ); LWSTDAPI_( LPWSTR ) StrRChrW( LPCWSTR, LPCWSTR, WCHAR ); LWSTDAPI_( LPSTR ) StrRStrIA( LPCSTR, LPCSTR, LPCSTR ); LWSTDAPI_( LPWSTR ) StrRStrIW( LPCWSTR, LPCWSTR, LPCWSTR ); LWSTDAPI StrRetToBufA( STRRET *, PCUITEMID_CHILD, LPSTR, UINT ); LWSTDAPI StrRetToBufW( STRRET *, PCUITEMID_CHILD, LPWSTR, UINT ); LWSTDAPI StrRetToStrA( STRRET *, PCUITEMID_CHILD, LPSTR * ); LWSTDAPI StrRetToStrW( STRRET *, PCUITEMID_CHILD, LPWSTR * ); LWSTDAPI_( int ) StrSpnA( LPCSTR, LPCSTR ); LWSTDAPI_( int ) StrSpnW( LPCWSTR, LPCWSTR ); LWSTDAPI_( LPSTR ) StrStrA( LPCSTR, LPCSTR ); LWSTDAPI_( LPSTR ) StrStrIA( LPCSTR, LPCSTR ); LWSTDAPI_( LPWSTR ) StrStrIW( LPCWSTR, LPCWSTR ); LWSTDAPI_( LPWSTR ) StrStrW( LPCWSTR, LPCWSTR ); LWSTDAPI_( int ) StrToIntA( LPCSTR ); LWSTDAPI_( BOOL ) StrToIntExA( LPCSTR, STIF_FLAGS, int * ); LWSTDAPI_( BOOL ) StrToIntExW( LPCWSTR, STIF_FLAGS, int * ); LWSTDAPI_( int ) StrToIntW( LPCWSTR ); LWSTDAPI_( BOOL ) StrTrimA( LPSTR, LPCSTR ); LWSTDAPI_( BOOL ) StrTrimW( LPWSTR, LPCWSTR ); LWSTDAPI UrlApplySchemeA( LPCSTR, LPSTR, LPDWORD, DWORD ); LWSTDAPI UrlApplySchemeW( LPCWSTR, LPWSTR, LPDWORD, DWORD ); LWSTDAPI UrlCanonicalizeA( LPCSTR, LPSTR, LPDWORD, DWORD ); LWSTDAPI UrlCanonicalizeW( LPCWSTR, LPWSTR, LPDWORD, DWORD ); LWSTDAPI UrlCombineA( LPCSTR, LPCSTR, LPSTR, LPDWORD, DWORD ); LWSTDAPI UrlCombineW( LPCWSTR, LPCWSTR, LPWSTR, LPDWORD, DWORD ); LWSTDAPI_( int ) UrlCompareA( LPCSTR, LPCSTR, BOOL ); LWSTDAPI_( int ) UrlCompareW( LPCWSTR, LPCWSTR, BOOL ); LWSTDAPI UrlCreateFromPathA( LPCSTR, LPSTR, LPDWORD, DWORD ); LWSTDAPI UrlCreateFromPathW( LPCWSTR, LPWSTR, LPDWORD, DWORD ); LWSTDAPI UrlEscapeA( LPCSTR, LPSTR, LPDWORD, DWORD ); LWSTDAPI UrlEscapeW( LPCWSTR, LPWSTR, LPDWORD, DWORD ); LWSTDAPI UrlFixupW( LPCWSTR, LPWSTR, DWORD ); LWSTDAPI_( LPCSTR ) UrlGetLocationA( LPCSTR ); LWSTDAPI_( LPCWSTR ) UrlGetLocationW( LPCWSTR ); LWSTDAPI UrlGetPartA( LPCSTR, LPSTR, LPDWORD, DWORD, DWORD ); LWSTDAPI UrlGetPartW( LPCWSTR, LPWSTR, LPDWORD, DWORD, DWORD ); LWSTDAPI UrlHashA( LPCSTR, LPBYTE, DWORD ); LWSTDAPI UrlHashW( LPCWSTR, LPBYTE, DWORD ); LWSTDAPI_( BOOL ) UrlIsA( LPCSTR, URLIS ); LWSTDAPI_( BOOL ) UrlIsNoHistoryA( LPCSTR ); LWSTDAPI_( BOOL ) UrlIsNoHistoryW( LPCWSTR ); LWSTDAPI_( BOOL ) UrlIsOpaqueA( LPCSTR ); LWSTDAPI_( BOOL ) UrlIsOpaqueW( LPCWSTR ); LWSTDAPI_( BOOL ) UrlIsW( LPCWSTR, URLIS ); LWSTDAPI UrlUnescapeA( LPSTR, LPSTR, LPDWORD, DWORD ); LWSTDAPI UrlUnescapeW( LPWSTR, LPWSTR, LPDWORD, DWORD ); LWSTDAPIV_( int ) wnsprintfA( LPSTR, int, LPCSTR, ... ); LWSTDAPIV_( int ) wnsprintfW( LPWSTR, int, LPCWSTR, ... ); LWSTDAPI_( int ) wvnsprintfA( LPSTR, int, LPCSTR, void * ); LWSTDAPI_( int ) wvnsprintfW( LPWSTR, int, LPCWSTR, void * ); #if (_WIN32_IE >= 0x0500) LWSTDAPI_( COLORREF ) ColorAdjustLuma( COLORREF, int, BOOL ); LWSTDAPI_( COLORREF ) ColorHLSToRGB( WORD, WORD, WORD ); LWSTDAPI_( void ) ColorRGBToHLS( COLORREF, WORD *, WORD *, WORD * ); LWSTDAPI ParseURLA( LPCSTR, PARSEDURLA * ); LWSTDAPI ParseURLW( LPCWSTR, PARSEDURLW * ); LWSTDAPI SHAutoComplete( HWND, DWORD ); LWSTDAPI SHGetThreadRef( IUnknown ** ); LWSTDAPI SHSetThreadRef( IUnknown * ); LWSTDAPI_( BOOL ) SHSkipJunction( IBindCtx *, const CLSID * ); LWSTDAPI_( int ) StrCmpNCA( LPCSTR, LPCSTR, int ); LWSTDAPI_( int ) StrCmpNCW( LPCWSTR, LPCWSTR, int ); LWSTDAPI_( int ) StrCmpNICA( LPCSTR, LPCSTR, int ); LWSTDAPI_( int ) StrCmpNICW( LPCWSTR, LPCWSTR, int ); #endif #if (_WIN32_IE >= 0x0501) LWSTDAPI ConnectToConnectionPoint( IUnknown *, REFIID, BOOL, IUnknown *, DWORD *, IConnectionPoint ** ); LWSTDAPI IStream_Read( IStream *, void *, ULONG ); LWSTDAPI IStream_Reset( IStream * ); LWSTDAPI IStream_Size( IStream *, ULARGE_INTEGER * ); LWSTDAPI IStream_Write( IStream *, const void *, ULONG ); LWSTDAPI_( void ) IUnknown_AtomicRelease( void ** ); LWSTDAPI IUnknown_GetSite( IUnknown *, REFIID, void ** ); LWSTDAPI IUnknown_GetWindow( IUnknown *, HWND * ); LWSTDAPI IUnknown_QueryService( IUnknown *, REFGUID, REFIID, void ** ); LWSTDAPI_( void ) IUnknown_Set( IUnknown **, IUnknown * ); LWSTDAPI IUnknown_SetSite( IUnknown *, IUnknown * ); LWSTDAPI_( BOOL ) IsOS( DWORD ); LWSTDAPI_( BOOL ) MLFreeLibrary( HMODULE ); LWSTDAPI_( HINSTANCE ) MLLoadLibraryA( LPCSTR, HMODULE, DWORD ); LWSTDAPI_( HINSTANCE ) MLLoadLibraryW( LPCWSTR, HMODULE, DWORD ); LWSTDAPI QISearch( void *, LPCQITAB, REFIID, void ** ); LWSTDAPI_( int ) SHAnsiToAnsi( LPCSTR, LPSTR, int ); LWSTDAPI_( int ) SHAnsiToUnicode( LPCSTR, LPWSTR, int ); LWSTDAPI_( IStream * ) SHCreateMemStream( const BYTE *, UINT ); LWSTDAPI_( int ) SHMessageBoxCheckA( HWND, LPCSTR, LPCSTR, UINT, int, LPCSTR ); LWSTDAPI_( int ) SHMessageBoxCheckW( HWND, LPCWSTR, LPCWSTR, UINT, int, LPCWSTR ); LWSTDAPI_( LRESULT ) SHSendMessageBroadcastA( UINT, WPARAM, LPARAM ); LWSTDAPI_( LRESULT ) SHSendMessageBroadcastW( UINT, WPARAM, LPARAM ); LWSTDAPI_( CHAR ) SHStripMneumonicA( LPSTR ); LWSTDAPI_( WCHAR ) SHStripMneumonicW( LPWSTR ); LWSTDAPI_( int ) SHUnicodeToAnsi( LPCWSTR, LPSTR, int ); LWSTDAPI_( int ) SHUnicodeToUnicode( LPCWSTR, LPWSTR, int ); LWSTDAPI_( UINT ) WhichPlatform( void ); #endif #if (_WIN32_IE >= 0x0550) LWSTDAPI SHLoadIndirectString( LPCWSTR, LPWSTR, UINT, void ** ); LWSTDAPI_( DWORD ) StrCatChainW( LPWSTR, DWORD, DWORD, LPCWSTR ); LWSTDAPI_( int ) StrCmpLogicalW( LPCWSTR, LPCWSTR ); LWSTDAPI StrRetToBSTR( STRRET *, PCUITEMID_CHILD, BSTR * ); #endif #if (_WIN32_IE >= 0x0600) LWSTDAPI IStream_ReadPidl( IStream *, PIDLIST_RELATIVE * ); LWSTDAPI IStream_WritePidl( IStream *, PCUIDLIST_RELATIVE ); LWSTDAPI_( BOOL ) IsInternetESCEnabled(); LWSTDAPI SHCreateStreamOnFileEx( LPCWSTR, DWORD, DWORD, BOOL, IStream *, IStream ** ); LWSTDAPI SHGetViewStatePropertyBag( PCIDLIST_ABSOLUTE, LPCWSTR, DWORD, REFIID, void ** ); LWSTDAPI SHReleaseThreadRef(); LWSTDAPI_( LPWSTR ) StrChrNIW( LPCWSTR, WCHAR, UINT ); LWSTDAPI_( LPWSTR ) StrChrNW( LPCWSTR, WCHAR, UINT ); LWSTDAPI_( LPWSTR ) StrStrNIW( LPCWSTR, LPCWSTR, UINT ); LWSTDAPI_( LPWSTR ) StrStrNW( LPCWSTR, LPCWSTR, UINT ); LWSTDAPI_( BOOL ) StrToInt64ExA( LPCSTR, STIF_FLAGS, LONGLONG * ); LWSTDAPI_( BOOL ) StrToInt64ExW( LPCWSTR, STIF_FLAGS, LONGLONG * ); #endif #if (_WIN32_IE >= 0x0601) LWSTDAPI_( BOOL ) AssocIsDangerous( LPCWSTR ); #endif #if (_WIN32_IE >= 0x0602) LWSTDAPI AssocGetPerceivedType( LPCWSTR, PERCEIVED *, PERCEIVEDFLAG *, LPWSTR * ); LWSTDAPI_( BOOL ) IsCharSpaceA( CHAR ); LWSTDAPI_( BOOL ) IsCharSpaceW( WCHAR ); LWSTDAPI SHCreateThreadRef( LONG *, IUnknown ** ); LWSTDAPI_( LSTATUS ) SHRegGetValueA( HKEY, LPCSTR, LPCSTR, SRRF, DWORD *, void *, DWORD * ); LWSTDAPI_( LSTATUS ) SHRegGetValueW( HKEY, LPCWSTR, LPCWSTR, SRRF, DWORD *, void *, DWORD * ); LWSTDAPI_( int ) StrCmpCA( LPCSTR, LPCSTR ); LWSTDAPI_( int ) StrCmpCW( LPCWSTR, LPCWSTR ); LWSTDAPI_( int ) StrCmpICA( LPCSTR, LPCSTR ); LWSTDAPI_( int ) StrCmpICW( LPCWSTR, LPCWSTR ); #endif #if (_WIN32_IE >= 0x0603) LWSTDAPI GetAcceptLanguagesA( LPSTR, LPDWORD ); LWSTDAPI GetAcceptLanguagesW( LPWSTR, LPDWORD ); LWSTDAPI_( HANDLE ) SHAllocShared( const void *, DWORD, DWORD ); LWSTDAPI_( BOOL ) SHFreeShared( HANDLE, DWORD ); LWSTDAPI_( void * ) SHLockShared( HANDLE, DWORD ); LWSTDAPI_( BOOL ) SHUnlockShared( void * ); #endif #if (_WIN32_IE >= 0x0700) LWSTDAPI IStream_Copy( IStream *, IStream *, DWORD ); LWSTDAPI IStream_ReadStr( IStream *, PWSTR * ); LWSTDAPI IStream_WriteStr( IStream *, PCWSTR ); LWSTDAPI PathCreateFromUrlAlloc( LPCWSTR, LPWSTR *, DWORD ); LWSTDAPI PathMatchSpecExA( LPCSTR, LPCSTR, DWORD ); LWSTDAPI PathMatchSpecExW( LPCWSTR, LPCWSTR, DWORD ); #endif /* Functions implemented as macros */ #define IntlStrEqNA( p1, p2, p3 ) IntlStrEqWorkerA( TRUE, p1, p2, p3 ) #define IntlStrEqNIA( p1, p2, p3 ) IntlStrEqWorkerA( FALSE, p1, p2, p3 ) #define IntlStrEqNIW( p1, p2, p3 ) IntlStrEqWorkerW( FALSE, p1, p2, p3 ) #define IntlStrEqNW( p1, p2, p3 ) IntlStrEqWorkerW( TRUE, p1, p2, p3 ) #define PathIsHTMLFileA( x ) PathIsContentTypeA( x, SZ_CONTENTTYPE_HTMLA ) #define PathIsHTMLFileW( x ) PathIsContentTypeW( x, SZ_CONTENTTYPE_HTMLW ) #define StrIntlEqNA( p1, p2, p3 ) StrIsIntlEqualA( TRUE, p1, p2, p3 ) #define StrIntlEqNIA( p1, p2, p3 ) StrIsIntlEqualA( FALSE, p1, p2, p3 ) #define StrIntlEqNIW( p1, p2, p3 ) StrIsIntlEqualW( FALSE, p1, p2, p3 ) #define StrIntlEqNW( p1, p2, p3 ) StrIsIntlEqualW( TRUE, p1, p2, p3 ) #define UrlEscapeInPlace( p1, p2 ) \ UrlUnescape( p1, NULL, NULL, p2 | URL_UNESCAPE_INPLACE ) #define UrlEscapeSpaces( p1, p2, p3 ) \ UrlCanonicalize( p1, p2, p3, URL_ESCAPE_SPACES_ONLY | URL_DONT_ESCAPE_EXTRA_INFO ) #define UrlIsFileUrlA( x ) UrlIsA( x, URLIS_FILEURL ) #define UrlIsFileUrlW( x ) UrlIsW( x, URLIS_FILEURL ) /* Microsoft defines va_list differently from Open Watcom, so it must be indexed * before being passed to any Win32 API functions. */ #define wvnsprintfA( p1, p2, p3, p4 ) wvnsprintfA( p1, p2, p3, (p4)[0] ) #define wvnsprintfW( p1, p2, p3, p4 ) wvnsprintfW( p1, p2, p3, (p4)[0] ) /* Aliases */ #define StrCatA lstrcatA #define StrCmpA lstrcmpA #define StrCmpIA lstrcmpiA #define StrCpyA lstrcpyA #define StrCpyNA lstrcpynA #if (_WIN32_IE >= 0x0501) #ifdef UNICODE #define SHAnsiToTChar SHAnsiToUnicode #define SHTCharToAnsi SHUnicodeToAnsi #define SHTCharToUnicode SHUnicodeToUnicode #define SHUnicodeToTChar SHUnicodeToUnicode #else #define SHAnsiToTChar SHAnsiToAnsi #define SHTCharToAnsi SHAnsiToAnsi #define SHTCharToUnicode SHAnsiToUnicode #define SHUnicodeToTChar SHUnicodeToAnsi #endif #endif /* Map generic function names to the appropriate ANSI or Unicode version. */ #ifdef UNICODE #define AssocQueryKey AssocQueryKeyW #define AssocQueryString AssocQueryStringW #define AssocQueryStringByKey AssocQueryStringByKeyW #define ChrCmpI ChrCmpIW #define IntlStrEqN IntlStrEqNW #define IntlStrEqNI IntlStrEqNIW #define IsCharSpace IsCharSpaceW #define PathAddBackslash PathAddBackslashW #define PathAddExtension PathAddExtensionW #define PathAppend PathAppendW #define PathBuildRoot PathBuildRootW #define PathCanonicalize PathCanonicalizeW #define PathCombine PathCombineW #define PathCommonPrefix PathCommonPrefixW #define PathCompactPath PathCompactPathW #define PathCompactPathEx PathCompactPathExW #define PathCreateFromUrl PathCreateFromUrlW #define PathFileExists PathFileExistsW #define PathFindExtension PathFindExtensionW #define PathFindFileName PathFindFileNameW #define PathFindNextComponent PathFindNextComponentW #define PathFindOnPath PathFindOnPathW #define PathFindSuffixArray PathFindSuffixArrayW #define PathGetArgs PathGetArgsW #define PathGetCharType PathGetCharTypeW #define PathGetDriveNumber PathGetDriveNumberW #define PathIsContentType PathIsContentTypeW #define PathIsDirectory PathIsDirectoryW #define PathIsDirectoryEmpty PathIsDirectoryEmptyW #define PathIsFileSpec PathIsFileSpecW #define PathIsHTMLFile PathIsHTMLFileW #define PathIsLFNFileSpec PathIsLFNFileSpecW #define PathIsNetworkPath PathIsNetworkPathW #define PathIsPrefix PathIsPrefixW #define PathIsRelative PathIsRelativeW #define PathIsRoot PathIsRootW #define PathIsSameRoot PathIsSameRootW #define PathIsSystemFolder PathIsSystemFolderW #define PathIsUNC PathIsUNCW #define PathIsUNCServer PathIsUNCServerW #define PathIsUNCServerShare PathIsUNCServerShareW #define PathIsURL PathIsURLW #define PathMakePretty PathMakePrettyW #define PathMakeSystemFolder PathMakeSystemFolderW #define PathMatchSpec PathMatchSpecW #define PathParseIconLocation PathParseIconLocationW #define PathQuoteSpaces PathQuoteSpacesW #define PathRelativePathTo PathRelativePathToW #define PathRemoveArgs PathRemoveArgsW #define PathRemoveBackslash PathRemoveBackslashW #define PathRemoveBlanks PathRemoveBlanksW #define PathRemoveExtension PathRemoveExtensionW #define PathRemoveFileSpec PathRemoveFileSpecW #define PathRenameExtension PathRenameExtensionW #define PathSearchAndQualify PathSearchAndQualifyW #define PathSetDlgItemPath PathSetDlgItemPathW #define PathSkipRoot PathSkipRootW #define PathStripPath PathStripPathW #define PathStripToRoot PathStripToRootW #define PathUnExpandEnvStrings PathUnExpandEnvStringsW #define PathUndecorate PathUndecorateW #define PathUnmakeSystemFolder PathUnmakeSystemFolderW #define PathUnquoteSpaces PathUnquoteSpacesW #define SHCopyKey SHCopyKeyW #define SHCreateStreamOnFile SHCreateStreamOnFileW #define SHDeleteEmptyKey SHDeleteEmptyKeyW #define SHDeleteKey SHDeleteKeyW #define SHDeleteValue SHDeleteValueW #define SHEnumKeyEx SHEnumKeyExW #define SHEnumValue SHEnumValueW #define SHFormatDateTime SHFormatDateTimeW #define SHGetValue SHGetValueW #define SHOpenRegStream SHOpenRegStreamW #define SHOpenRegStream2 SHOpenRegStream2W #define SHQueryInfoKey SHQueryInfoKeyW #define SHQueryValueEx SHQueryValueExW #define SHRegCreateUSKey SHRegCreateUSKeyW #define SHRegDeleteEmptyUSKey SHRegDeleteEmptyUSKeyW #define SHRegDeleteUSValue SHRegDeleteUSValueW #define SHRegEnumUSKey SHRegEnumUSKeyW #define SHRegEnumUSValue SHRegEnumUSValueW #define SHRegGetBoolUSValue SHRegGetBoolUSValueW #define SHRegGetInt SHRegGetIntW #define SHRegGetPath SHRegGetPathW #define SHRegGetUSValue SHRegGetUSValueW #define SHRegOpenUSKey SHRegOpenUSKeyW #define SHRegQueryInfoUSKey SHRegQueryInfoUSKeyW #define SHRegQueryUSValue SHRegQueryUSValueW #define SHRegSetPath SHRegSetPathW #define SHRegSetUSValue SHRegSetUSValueW #define SHRegWriteUSValue SHRegWriteUSValueW #define SHSetValue SHSetValueW #define SHStrDup SHStrDupW #define StrCSpn StrCSpnW #define StrCSpnI StrCSpnIW #define StrCat StrCatW #define StrCatBuff StrCatBuffW #define StrChr StrChrW #define StrChrI StrChrIW #define StrCmp StrCmpW #define StrCmpC StrCmpCW #define StrCmpI StrCmpIW #define StrCmpIC StrCmpICW #define StrCmpN StrCmpNW #define StrCmpNI StrCmpNIW #define StrCpy StrCpyW #define StrCpyN StrCpyNW #define StrDup StrDupW #define StrFormatByteSize StrFormatByteSizeW #define StrFormatByteSize64 StrFormatByteSizeW #define StrFormatKBSize StrFormatKBSizeW #define StrFromTimeInterval StrFromTimeFromIntervalW #define StrIntlEqN StrIntlEqNW #define StrIntlEqNI StrIntlEqNIW #define StrIsIntlEqual StrIsIntlEqualW #define StrNCat StrNCatW #define StrPBrk StrPBrkW #define StrRChr StrRChrW #define StrRChrI StrRChrIW #define StrRStr StrRStrW #define StrRetToBuf StrRetToBufW #define StrRetToStr StrRetToStrW #define StrSpn StrSpnW #define StrStr StrStrW #define StrStrI StrStrIW #define StrToInt StrToIntW #define StrToIntEx StrToIntExW #define StrTrim StrTrimW #define UrlApplyScheme UrlApplySchemeW #define UrlCanonicalize UrlCanonicalizeW #define UrlCombine UrlCombineW #define UrlCompare UrlCompareW #define UrlCreateFromPath UrlCreateFromPathW #define UrlEscape UrlEscapeW #define UrlFixup UrlFixupW #define UrlGetLocation UrlGetLocationW #define UrlGetPart UrlGetPartW #define UrlHash UrlHashW #define UrlIs UrlIsW #define UrlIsFileUrl UrlIsFileUrlW #define UrlIsOpaque UrlIsOpaqueW #define UrlUnescape UrlUnescapeW #define wnsprintf wnsprintfW #define wvnsprintf wvnsprintfW #if (_WIN32_IE >= 0x0500) #define ParseURL ParseURLW #define StrCmpNC StrCmpNCW #define StrCmpNIC StrCmpNICW #endif #if (_WIN32_IE >= 0x0501) #define MLLoadLibrary MLLoadLibraryW #define SHMessageBoxCheck SHMessageBoxCheckW #define SHSendMessageBroadcast SHSendMessageBroadcastW #define SHStripMneumonic SHStripMneumonicW #endif #if (_WIN32_IE >= 0x0600) #define StrToInt64Ex StrToInt64ExW #endif #if (_WIN32_IE >= 0x0602) #define SHRegGetValue SHRegGetValueW #endif #if (_WIN32_IE >= 0x0603) #define GetAcceptLanguages GetAcceptLanguagesW #endif #if (_WIN32_IE >= 0x0700) #define PathMatchSpecEx PathMatchSpecExW #endif #else #define AssocQueryKey AssocQueryKeyA #define AssocQueryString AssocQueryStringA #define AssocQueryStringByKey AssocQueryStringByKeyA #define ChrCmpI ChrCmpIA #define IntlStrEqN IntlStrEqNA #define IntlStrEqNI IntlStrEqNIA #define IsCharSpace IsCharSpaceA #define PathAddBackslash PathAddBackslashA #define PathAddExtension PathAddExtensionA #define PathAppend PathAppendA #define PathBuildRoot PathBuildRootA #define PathCanonicalize PathCanonicalizeA #define PathCombine PathCombineA #define PathCommonPrefix PathCommonPrefixA #define PathCompactPath PathCompactPathA #define PathCompactPathEx PathCompactPathExA #define PathCreateFromUrl PathCreateFromUrlA #define PathFileExists PathFileExistsA #define PathFindExtension PathFindExtensionA #define PathFindFileName PathFindFileNameA #define PathFindNextComponent PathFindNextComponentA #define PathFindOnPath PathFindOnPathA #define PathFindSuffixArray PathFindSuffixArrayA #define PathGetArgs PathGetArgsA #define PathGetCharType PathGetCharTypeA #define PathGetDriveNumber PathGetDriveNumberA #define PathIsContentType PathIsContentTypeA #define PathIsDirectory PathIsDirectoryA #define PathIsDirectoryEmpty PathIsDirectoryEmptyA #define PathIsFileSpec PathIsFileSpecA #define PathIsHTMLFile PathIsHTMLFileA #define PathIsLFNFileSpec PathIsLFNFileSpecA #define PathIsNetworkPath PathIsNetworkPathA #define PathIsPrefix PathIsPrefixA #define PathIsRelative PathIsRelativeA #define PathIsRoot PathIsRootA #define PathIsSameRoot PathIsSameRootA #define PathIsSystemFolder PathIsSystemFolderA #define PathIsUNC PathIsUNCA #define PathIsUNCServer PathIsUNCServerA #define PathIsUNCServerShare PathIsUNCServerShareA #define PathIsURL PathIsURLA #define PathMakePretty PathMakePrettyA #define PathMakeSystemFolder PathMakeSystemFolderA #define PathParseIconLocation PathParseIconLocationA #define PathQuoteSpaces PathQuoteSpacesA #define PathRelativePathTo PathRelativePathToA #define PathRemoveArgs PathRemoveArgsA #define PathRemoveBackslash PathRemoveBackslashA #define PathRemoveBlanks PathRemoveBlanksA #define PathRemoveExtension PathRemoveExtensionA #define PathRemoveFileSpec PathRemoveFileSpecA #define PathRenameExtension PathRenameExtensionA #define PathSearchAndQualify PathSearchAndQualifyA #define PathSetDlgItemPath PathSetDlgItemPathA #define PathSkipRoot PathSkipRootA #define PathStripPath PathStripPathA #define PathStripToRoot PathStripToRootA #define PathUnExpandEnvStrings PathUnExpandEnvStringsA #define PathUndecorate PathUndecorateA #define PathUnmakeSystemFolder PathUnmakeSystemFolderA #define PathUnqouteSpaces PathUnquoteSpacesA #define SHCopyKey SHCopyKeyA #define SHCreateStreamOnFile SHCreateStreamOnFileA #define SHDeleteEmptyKey SHDeleteEmptyKeyA #define SHDeleteKey SHDeleteKeyA #define SHDeleteValue SHDeleteValueA #define SHEnumKeyEx SHEnumKeyExA #define SHEnumValue SHEnumValueA #define SHFormatDateTime SHFormatDateTimeA #define SHGetValue SHGetValueA #define SHOpenRegStream SHOpenRegStreamA #define SHOpenRegStream2 SHOpenRegStream2A #define SHQueryInfoKey SHQueryInfoKeyA #define SHQueryValueEx SHQueryValueExA #define SHRegCreateUSKey SHRegCreateUSKeyA #define SHRegDeleteEmptyUSKey SHRegDeleteEmptyUSKeyA #define SHRegDeleteUSValue SHRegDeleteUSValueA #define SHRegEnumUSKey SHRegEnumUSKeyA #define SHRegEnumUSValue SHRegEnumUSValueA #define SHRegGetBoolUSValue SHRegGetBoolUSValueA #define SHRegGetPath SHRegGetPathA #define SHRegGetUSValue SHRegGetUSValueA #define SHRegOpenUSKey SHRegOpenUSKeyA #define SHRegQueryInfoUSKey SHRegQueryInfoUSKeyA #define SHRegQueryUSValue SHRegQueryUSValueA #define SHRegSetPath SHRegSetPathA #define SHRegSetUSValue SHRegSetUSValueA #define SHRegWriteUSValue SHRegWriteUSValueA #define SHSetValue SHSetValueA #define SHStrDup SHStrDupA #define StrCSpn StrCSpnA #define StrCSpnI StrCSpnIA #define StrCat lstrcatA #define StrCatBuff StrCatBuffA #define StrChr StrChrA #define StrChrI StrChrIA #define StrCmp lstrcmpA #define StrCmpC StrCmpCA #define StrCmpI lstrcmpiA #define StrCmpIC StrCmpICA #define StrCmpN StrCmpNA #define StrCmpNI StrCmpNIA #define StrCpy lstrcpyA #define StrCpyN lstrcpynA #define StrDup StrDupA #define StrFromTimeInterval StrFromTimeIntervalA #define StrFormatByteSize StrFormatByteSizeA #define StrFormatByteSize64 StrFormatByteSize64A #define StrFormatKBSize StrFormatKBSizeA #define StrIntlEqN StrIntlEqNA #define StrIntlEqNI StrIntlEqNIA #define StrIsIntlEqual StrIsIntlEqualA #define StrNCat StrNCatA #define StrPBrk StrPBrkA #define StrRChr StrRChrA #define StrRChrI StrRChrIA #define StrRStrI StrRStrIA #define StrRetToBuf StrRetToBufA #define StrRetToStr StrRetToStrA #define StrSpn StrSpnA #define StrStr StrStrA #define StrStrI StrStrIA #define StrToInt StrToIntA #define StrToIntEx StrToIntExA #define StrTrim StrTrimA #define UrlApplyScheme UrlApplySchemeA #define UrlCanonicalize UrlCanonicalizeA #define UrlCombine UrlCombineA #define UrlCompare UrlCompareA #define UrlCreateFromPath UrlCreateFromPathA #define UrlEscape UrlEscapeA #define UrlGetLocation UrlGetLocationA #define UrlGetPart UrlGetPartA #define UrlHash UrlHashA #define UrlIs UrlIsA #define UrlIsFileUrl UrlIsFileUrlA #define UrlIsOpaque UrlIsOpaqueA #define UrlUnescape UrlUnescapeA #define wnsprintf wnsprintfA #define wvnsprintf wvnsprintfA #if (_WIN32_IE >= 0x0500) #define ParseURL ParseURLA #define StrCmpNC StrCmpNCA #define StrCmpNIC StrCmpNICA #endif #if (_WIN32_IE >= 0x0501) #define MLLoadLibrary MLLoadLibraryA #define SHMessageBoxCheck SHMessageBoxCheckA #define SHSendMessageBroadcast SHSendMessageBroadcastA #define SHStripMneumonic SHStripMneumonicA #endif #if (_WIN32_IE >= 0x0600) #define StrToInt64Ex StrToInt64ExA #endif #if (_WIN32_IE >= 0x0602) #define SHRegGetValue SHRegGetValueA #endif #if (_WIN32_IE >= 0x0603) #define GetAcceptLanguages GetAcceptLanguagesA #endif #if (_WIN32_IE >= 0x0700) #define PathMatchSpecEx PathMatchSpecExA #endif #endif /* Aliases */ #define StrCatN StrNCat #define StrNCmp StrCmpN #define StrNCmpI StrCmpNI #define StrNCpy StrCpyN #define StrToLong StrToInt #ifdef __cplusplus } /* extern "C" */ #endif #endif /* _INC_SHLWAPI */