Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenshlwapi.h
Go to the documentation of this file.
00001 /* 00002 * SHLWAPI.DLL functions 00003 * 00004 * Copyright (C) 2000 Juergen Schmied 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with this library; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00019 */ 00020 00021 #ifndef __WINE_SHLWAPI_H 00022 #define __WINE_SHLWAPI_H 00023 00024 /* FIXME: #include <specstrings.h> */ 00025 #include <objbase.h> 00026 #include <shtypes.h> 00027 00028 #ifdef __cplusplus 00029 extern "C" { 00030 #endif /* defined(__cplusplus) */ 00031 00032 #include <pshpack8.h> 00033 00034 #ifndef NO_SHLWAPI_REG 00035 00036 /* Registry functions */ 00037 00038 DWORD WINAPI SHDeleteEmptyKeyA(HKEY,LPCSTR); 00039 DWORD WINAPI SHDeleteEmptyKeyW(HKEY,LPCWSTR); 00040 #define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey) 00041 00042 DWORD WINAPI SHDeleteKeyA(HKEY,LPCSTR); 00043 DWORD WINAPI SHDeleteKeyW(HKEY,LPCWSTR); 00044 #define SHDeleteKey WINELIB_NAME_AW(SHDeleteKey) 00045 00046 DWORD WINAPI SHDeleteValueA(HKEY,LPCSTR,LPCSTR); 00047 DWORD WINAPI SHDeleteValueW(HKEY,LPCWSTR,LPCWSTR); 00048 #define SHDeleteValue WINELIB_NAME_AW(SHDeleteValue) 00049 00050 DWORD WINAPI SHGetValueA(HKEY,LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD); 00051 DWORD WINAPI SHGetValueW(HKEY,LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD); 00052 #define SHGetValue WINELIB_NAME_AW(SHGetValue) 00053 00054 DWORD WINAPI SHSetValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPCVOID,DWORD); 00055 DWORD WINAPI SHSetValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPCVOID,DWORD); 00056 #define SHSetValue WINELIB_NAME_AW(SHSetValue) 00057 00058 DWORD WINAPI SHQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); 00059 DWORD WINAPI SHQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); 00060 #define SHQueryValueEx WINELIB_NAME_AW(SHQueryValueEx) 00061 00062 LONG WINAPI SHEnumKeyExA(HKEY,DWORD,LPSTR,LPDWORD); 00063 LONG WINAPI SHEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD); 00064 #define SHEnumKeyEx WINELIB_NAME_AW(SHEnumKeyEx) 00065 00066 LONG WINAPI SHEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); 00067 LONG WINAPI SHEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD); 00068 #define SHEnumValue WINELIB_NAME_AW(SHEnumValue) 00069 00070 LONG WINAPI SHQueryInfoKeyA(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD); 00071 LONG WINAPI SHQueryInfoKeyW(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD); 00072 #define SHQueryInfoKey WINELIB_NAME_AW(SHQueryInfoKey) 00073 00074 DWORD WINAPI SHRegGetPathA(HKEY,LPCSTR,LPCSTR,LPSTR,DWORD); 00075 DWORD WINAPI SHRegGetPathW(HKEY,LPCWSTR,LPCWSTR,LPWSTR,DWORD); 00076 #define SHRegGetPath WINELIB_NAME_AW(SHRegGetPath) 00077 00078 DWORD WINAPI SHRegSetPathA(HKEY,LPCSTR,LPCSTR,LPCSTR,DWORD); 00079 DWORD WINAPI SHRegSetPathW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR,DWORD); 00080 #define SHRegSetPath WINELIB_NAME_AW(SHRegSetPath) 00081 00082 DWORD WINAPI SHCopyKeyA(HKEY,LPCSTR,HKEY,DWORD); 00083 DWORD WINAPI SHCopyKeyW(HKEY,LPCWSTR,HKEY,DWORD); 00084 #define SHCopyKey WINELIB_NAME_AW(SHCopyKey) 00085 00086 HKEY WINAPI SHRegDuplicateHKey(HKEY); 00087 00088 /* SHRegGetValue flags */ 00089 typedef INT SRRF; 00090 00091 #define SRRF_RT_REG_NONE 0x1 00092 #define SRRF_RT_REG_SZ 0x2 00093 #define SRRF_RT_REG_EXPAND_SZ 0x4 00094 #define SRRF_RT_REG_BINARY 0x8 00095 #define SRRF_RT_REG_DWORD 0x10 00096 #define SRRF_RT_REG_MULTI_SZ 0x20 00097 #define SRRF_RT_REG_QWORD 0x40 00098 00099 #define SRRF_RT_DWORD (SRRF_RT_REG_BINARY|SRRF_RT_REG_DWORD) 00100 #define SRRF_RT_QWORD (SRRF_RT_REG_BINARY|SRRF_RT_REG_QWORD) 00101 #define SRRF_RT_ANY 0xffff 00102 00103 #define SRRF_RM_ANY 0 00104 #define SRRF_RM_NORMAL 0x10000 00105 #define SRRF_RM_SAFE 0x20000 00106 #define SRRF_RM_SAFENETWORK 0x40000 00107 00108 #define SRRF_NOEXPAND 0x10000000 00109 #define SRRF_ZEROONFAILURE 0x20000000 00110 #define SRRF_NOVIRT 0x40000000 00111 00112 LSTATUS WINAPI SHRegGetValueA(HKEY,LPCSTR,LPCSTR,SRRF,LPDWORD,LPVOID,LPDWORD); 00113 LSTATUS WINAPI SHRegGetValueW(HKEY,LPCWSTR,LPCWSTR,SRRF,LPDWORD,LPVOID,LPDWORD); 00114 #define SHRegGetValue WINELIB_NAME_AW(SHRegGetValue) 00115 00116 /* Undocumented registry functions */ 00117 00118 DWORD WINAPI SHDeleteOrphanKeyA(HKEY,LPCSTR); 00119 DWORD WINAPI SHDeleteOrphanKeyW(HKEY,LPCWSTR); 00120 #define SHDeleteOrphanKey WINELIB_NAME_AW(SHDeleteOrphanKey) 00121 00122 00123 /* User registry functions */ 00124 00125 typedef enum 00126 { 00127 SHREGDEL_DEFAULT = 0, 00128 SHREGDEL_HKCU = 0x1, 00129 SHREGDEL_HKLM = 0x10, 00130 SHREGDEL_BOTH = SHREGDEL_HKLM | SHREGDEL_HKCU 00131 } SHREGDEL_FLAGS; 00132 00133 typedef enum 00134 { 00135 SHREGENUM_DEFAULT = 0, 00136 SHREGENUM_HKCU = 0x1, 00137 SHREGENUM_HKLM = 0x10, 00138 SHREGENUM_BOTH = SHREGENUM_HKLM | SHREGENUM_HKCU 00139 } SHREGENUM_FLAGS; 00140 00141 #define SHREGSET_HKCU 0x1 /* Apply to HKCU if empty */ 00142 #define SHREGSET_FORCE_HKCU 0x2 /* Always apply to HKCU */ 00143 #define SHREGSET_HKLM 0x4 /* Apply to HKLM if empty */ 00144 #define SHREGSET_FORCE_HKLM 0x8 /* Always apply to HKLM */ 00145 #define SHREGSET_DEFAULT (SHREGSET_FORCE_HKCU | SHREGSET_HKLM) 00146 00147 typedef HANDLE HUSKEY; 00148 typedef HUSKEY *PHUSKEY; 00149 00150 LONG WINAPI SHRegCreateUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,DWORD); 00151 LONG WINAPI SHRegCreateUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,DWORD); 00152 #define SHRegCreateUSKey WINELIB_NAME_AW(SHRegCreateUSKey) 00153 00154 LONG WINAPI SHRegOpenUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,BOOL); 00155 LONG WINAPI SHRegOpenUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,BOOL); 00156 #define SHRegOpenUSKey WINELIB_NAME_AW(SHRegOpenUSKey) 00157 00158 LONG WINAPI SHRegQueryUSValueA(HUSKEY,LPCSTR,LPDWORD,LPVOID,LPDWORD, 00159 BOOL,LPVOID,DWORD); 00160 LONG WINAPI SHRegQueryUSValueW(HUSKEY,LPCWSTR,LPDWORD,LPVOID,LPDWORD, 00161 BOOL,LPVOID,DWORD); 00162 #define SHRegQueryUSValue WINELIB_NAME_AW(SHRegQueryUSValue) 00163 00164 LONG WINAPI SHRegWriteUSValueA(HUSKEY,LPCSTR,DWORD,LPVOID,DWORD,DWORD); 00165 LONG WINAPI SHRegWriteUSValueW(HUSKEY,LPCWSTR,DWORD,LPVOID,DWORD,DWORD); 00166 #define SHRegWriteUSValue WINELIB_NAME_AW(SHRegWriteUSValue) 00167 00168 LONG WINAPI SHRegDeleteUSValueA(HUSKEY,LPCSTR,SHREGDEL_FLAGS); 00169 LONG WINAPI SHRegDeleteUSValueW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS); 00170 #define SHRegDeleteUSValue WINELIB_NAME_AW(SHRegDeleteUSValue) 00171 00172 LONG WINAPI SHRegDeleteEmptyUSKeyA(HUSKEY,LPCSTR,SHREGDEL_FLAGS); 00173 LONG WINAPI SHRegDeleteEmptyUSKeyW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS); 00174 #define SHRegDeleteEmptyUSKey WINELIB_NAME_AW(SHRegDeleteEmptyUSKey) 00175 00176 LONG WINAPI SHRegEnumUSKeyA(HUSKEY,DWORD,LPSTR,LPDWORD,SHREGENUM_FLAGS); 00177 LONG WINAPI SHRegEnumUSKeyW(HUSKEY,DWORD,LPWSTR,LPDWORD,SHREGENUM_FLAGS); 00178 #define SHRegEnumUSKey WINELIB_NAME_AW(SHRegEnumUSKey) 00179 00180 LONG WINAPI SHRegEnumUSValueA(HUSKEY,DWORD,LPSTR,LPDWORD,LPDWORD, 00181 LPVOID,LPDWORD,SHREGENUM_FLAGS); 00182 LONG WINAPI SHRegEnumUSValueW(HUSKEY,DWORD,LPWSTR,LPDWORD,LPDWORD, 00183 LPVOID,LPDWORD,SHREGENUM_FLAGS); 00184 #define SHRegEnumUSValue WINELIB_NAME_AW(SHRegEnumUSValue) 00185 00186 LONG WINAPI SHRegQueryInfoUSKeyA(HUSKEY,LPDWORD,LPDWORD,LPDWORD, 00187 LPDWORD,SHREGENUM_FLAGS); 00188 LONG WINAPI SHRegQueryInfoUSKeyW(HUSKEY,LPDWORD,LPDWORD,LPDWORD, 00189 LPDWORD,SHREGENUM_FLAGS); 00190 #define SHRegQueryInfoUSKey WINELIB_NAME_AW(SHRegQueryInfoUSKey) 00191 00192 LONG WINAPI SHRegCloseUSKey(HUSKEY); 00193 00194 LONG WINAPI SHRegGetUSValueA(LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD, 00195 BOOL,LPVOID,DWORD); 00196 LONG WINAPI SHRegGetUSValueW(LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD, 00197 BOOL,LPVOID,DWORD); 00198 #define SHRegGetUSValue WINELIB_NAME_AW(SHRegGetUSValue) 00199 00200 LONG WINAPI SHRegSetUSValueA(LPCSTR,LPCSTR,DWORD,LPVOID,DWORD,DWORD); 00201 LONG WINAPI SHRegSetUSValueW(LPCWSTR,LPCWSTR,DWORD,LPVOID,DWORD,DWORD); 00202 #define SHRegSetUSValue WINELIB_NAME_AW(SHRegSetUSValue) 00203 00204 BOOL WINAPI SHRegGetBoolUSValueA(LPCSTR,LPCSTR,BOOL,BOOL); 00205 BOOL WINAPI SHRegGetBoolUSValueW(LPCWSTR,LPCWSTR,BOOL,BOOL); 00206 #define SHRegGetBoolUSValue WINELIB_NAME_AW(SHRegGetBoolUSValue) 00207 00208 int WINAPI SHRegGetIntW(HKEY,LPCWSTR,int); 00209 00210 /* IQueryAssociation and helpers */ 00211 enum 00212 { 00213 ASSOCF_INIT_NOREMAPCLSID = 0x001, /* Don't map clsid->progid */ 00214 ASSOCF_INIT_BYEXENAME = 0x002, /* .exe name given */ 00215 ASSOCF_OPEN_BYEXENAME = 0x002, /* Synonym */ 00216 ASSOCF_INIT_DEFAULTTOSTAR = 0x004, /* Use * as base */ 00217 ASSOCF_INIT_DEFAULTTOFOLDER = 0x008, /* Use folder as base */ 00218 ASSOCF_NOUSERSETTINGS = 0x010, /* No HKCU reads */ 00219 ASSOCF_NOTRUNCATE = 0x020, /* Don't truncate return */ 00220 ASSOCF_VERIFY = 0x040, /* Verify data */ 00221 ASSOCF_REMAPRUNDLL = 0x080, /* Get rundll args */ 00222 ASSOCF_NOFIXUPS = 0x100, /* Don't fixup errors */ 00223 ASSOCF_IGNOREBASECLASS = 0x200, /* Don't read baseclass */ 00224 ASSOCF_INIT_IGNOREUNKNOWN = 0x400, /* Fail for unknown progid */ 00225 }; 00226 00227 typedef DWORD ASSOCF; 00228 00229 typedef enum 00230 { 00231 ASSOCSTR_COMMAND = 1, /* Verb command */ 00232 ASSOCSTR_EXECUTABLE, /* .exe from command string */ 00233 ASSOCSTR_FRIENDLYDOCNAME, /* Friendly doc type name */ 00234 ASSOCSTR_FRIENDLYAPPNAME, /* Friendly .exe name */ 00235 ASSOCSTR_NOOPEN, /* noopen value */ 00236 ASSOCSTR_SHELLNEWVALUE, /* Use shellnew key */ 00237 ASSOCSTR_DDECOMMAND, /* DDE command template */ 00238 ASSOCSTR_DDEIFEXEC, /* DDE command for process create */ 00239 ASSOCSTR_DDEAPPLICATION, /* DDE app name */ 00240 ASSOCSTR_DDETOPIC, /* DDE topic */ 00241 ASSOCSTR_INFOTIP, /* Infotip */ 00242 ASSOCSTR_QUICKTIP, /* Quick infotip */ 00243 ASSOCSTR_TILEINFO, /* Properties for tileview */ 00244 ASSOCSTR_CONTENTTYPE, /* Mimetype */ 00245 ASSOCSTR_DEFAULTICON, /* Icon */ 00246 ASSOCSTR_SHELLEXTENSION, /* GUID for shell extension handler */ 00247 ASSOCSTR_MAX 00248 } ASSOCSTR; 00249 00250 typedef enum 00251 { 00252 ASSOCKEY_SHELLEXECCLASS = 1, /* Key for ShellExec */ 00253 ASSOCKEY_APP, /* Application */ 00254 ASSOCKEY_CLASS, /* Progid or class */ 00255 ASSOCKEY_BASECLASS, /* Base class */ 00256 ASSOCKEY_MAX 00257 } ASSOCKEY; 00258 00259 typedef enum 00260 { 00261 ASSOCDATA_MSIDESCRIPTOR = 1, /* Component descriptor */ 00262 ASSOCDATA_NOACTIVATEHANDLER, /* Don't activate */ 00263 ASSOCDATA_QUERYCLASSSTORE, /* Look in Class Store */ 00264 ASSOCDATA_HASPERUSERASSOC, /* Use user association */ 00265 ASSOCDATA_EDITFLAGS, /* Edit flags */ 00266 ASSOCDATA_VALUE, /* pszExtra is value */ 00267 ASSOCDATA_MAX 00268 } ASSOCDATA; 00269 00270 typedef enum 00271 { 00272 ASSOCENUM_NONE 00273 } ASSOCENUM; 00274 00275 typedef struct IQueryAssociations *LPQUERYASSOCIATIONS; 00276 00277 #define INTERFACE IQueryAssociations 00278 DECLARE_INTERFACE_(IQueryAssociations,IUnknown) 00279 { 00280 /*** IUnknown methods ***/ 00281 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; 00282 STDMETHOD_(ULONG,AddRef)(THIS) PURE; 00283 STDMETHOD_(ULONG,Release)(THIS) PURE; 00284 /*** IQueryAssociations methods ***/ 00285 STDMETHOD(Init)(THIS_ ASSOCF flags, LPCWSTR pszAssoc, HKEY hkProgid, HWND hwnd) PURE; 00286 STDMETHOD(GetString)(THIS_ ASSOCF flags, ASSOCSTR str, LPCWSTR pszExtra, LPWSTR pszOut, DWORD * pcchOut) PURE; 00287 STDMETHOD(GetKey)(THIS_ ASSOCF flags, ASSOCKEY key, LPCWSTR pszExtra, HKEY * phkeyOut) PURE; 00288 STDMETHOD(GetData)(THIS_ ASSOCF flags, ASSOCDATA data, LPCWSTR pszExtra, LPVOID pvOut, DWORD * pcbOut) PURE; 00289 STDMETHOD(GetEnum)(THIS_ ASSOCF flags, ASSOCENUM assocenum, LPCWSTR pszExtra, REFIID riid, LPVOID * ppvOut) PURE; 00290 }; 00291 #undef INTERFACE 00292 00293 #if !defined(__cplusplus) || defined(CINTERFACE) 00294 #define IQueryAssociations_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b) 00295 #define IQueryAssociations_AddRef(p) (p)->lpVtbl->AddRef(p) 00296 #define IQueryAssociations_Release(p) (p)->lpVtbl->Release(p) 00297 #define IQueryAssociations_Init(p,a,b,c,d) (p)->lpVtbl->Init(p,a,b,c,d) 00298 #define IQueryAssociations_GetString(p,a,b,c,d,e) (p)->lpVtbl->GetString(p,a,b,c,d,e) 00299 #define IQueryAssociations_GetKey(p,a,b,c,d) (p)->lpVtbl->GetKey(p,a,b,c,d) 00300 #define IQueryAssociations_GetData(p,a,b,c,d,e) (p)->lpVtbl->GetData(p,a,b,c,d,e) 00301 #define IQueryAssociations_GetEnum(p,a,b,c,d,e) (p)->lpVtbl->GetEnum(p,a,b,c,d,e) 00302 #endif 00303 00304 HRESULT WINAPI AssocCreate(CLSID,REFIID,LPVOID*); 00305 00306 HRESULT WINAPI AssocQueryStringA(ASSOCF,ASSOCSTR,LPCSTR,LPCSTR,LPSTR,LPDWORD); 00307 HRESULT WINAPI AssocQueryStringW(ASSOCF,ASSOCSTR,LPCWSTR,LPCWSTR,LPWSTR,LPDWORD); 00308 #define AssocQueryString WINELIB_NAME_AW(AssocQueryString) 00309 00310 HRESULT WINAPI AssocQueryStringByKeyA(ASSOCF,ASSOCSTR,HKEY,LPCSTR,LPSTR,LPDWORD); 00311 HRESULT WINAPI AssocQueryStringByKeyW(ASSOCF,ASSOCSTR,HKEY,LPCWSTR,LPWSTR,LPDWORD); 00312 #define AssocQueryStringByKey WINELIB_NAME_AW(AssocQueryStringByKey) 00313 00314 HRESULT WINAPI AssocQueryKeyA(ASSOCF,ASSOCKEY,LPCSTR,LPCSTR,PHKEY); 00315 HRESULT WINAPI AssocQueryKeyW(ASSOCF,ASSOCKEY,LPCWSTR,LPCWSTR,PHKEY); 00316 #define AssocQueryKey WINELIB_NAME_AW(AssocQueryKey) 00317 00318 BOOL WINAPI AssocIsDangerous(LPCWSTR); 00319 00320 #endif /* NO_SHLWAPI_REG */ 00321 00322 HRESULT WINAPI IUnknown_SetSite(IUnknown *punk, IUnknown *punkSite); 00323 HRESULT WINAPI IUnknown_QueryService(IUnknown *punk, REFGUID guidService, REFIID riid, void **ppvOut); 00324 00325 /* Path functions */ 00326 #ifndef NO_SHLWAPI_PATH 00327 00328 /* GetPathCharType return flags */ 00329 #define GCT_INVALID 0x0 00330 #define GCT_LFNCHAR 0x1 00331 #define GCT_SHORTCHAR 0x2 00332 #define GCT_WILD 0x4 00333 #define GCT_SEPARATOR 0x8 00334 00335 LPSTR WINAPI PathAddBackslashA(LPSTR); 00336 LPWSTR WINAPI PathAddBackslashW(LPWSTR); 00337 #define PathAddBackslash WINELIB_NAME_AW(PathAddBackslash) 00338 00339 BOOL WINAPI PathAddExtensionA(LPSTR,LPCSTR); 00340 BOOL WINAPI PathAddExtensionW(LPWSTR,LPCWSTR); 00341 #define PathAddExtension WINELIB_NAME_AW(PathAddExtension) 00342 00343 BOOL WINAPI PathAppendA(LPSTR,LPCSTR); 00344 BOOL WINAPI PathAppendW(LPWSTR,LPCWSTR); 00345 #define PathAppend WINELIB_NAME_AW(PathAppend) 00346 00347 LPSTR WINAPI PathBuildRootA(LPSTR,int); 00348 LPWSTR WINAPI PathBuildRootW(LPWSTR,int); 00349 #define PathBuildRoot WINELIB_NAME_AW(PathBuiltRoot) 00350 00351 BOOL WINAPI PathCanonicalizeA(LPSTR,LPCSTR); 00352 BOOL WINAPI PathCanonicalizeW(LPWSTR,LPCWSTR); 00353 #define PathCanonicalize WINELIB_NAME_AW(PathCanonicalize) 00354 00355 LPSTR WINAPI PathCombineA(LPSTR,LPCSTR,LPCSTR); 00356 LPWSTR WINAPI PathCombineW(LPWSTR,LPCWSTR,LPCWSTR); 00357 #define PathCombine WINELIB_NAME_AW(PathCombine) 00358 00359 BOOL WINAPI PathCompactPathA(HDC,LPSTR,UINT); 00360 BOOL WINAPI PathCompactPathW(HDC,LPWSTR,UINT); 00361 #define PathCompactPath WINELIB_NAME_AW(PathCompactPath) 00362 00363 BOOL WINAPI PathCompactPathExA(LPSTR,LPCSTR,UINT,DWORD); 00364 BOOL WINAPI PathCompactPathExW(LPWSTR,LPCWSTR,UINT,DWORD); 00365 #define PathCompactPathEx WINELIB_NAME_AW(PathCompactPathEx) 00366 00367 int WINAPI PathCommonPrefixA(LPCSTR,LPCSTR,LPSTR); 00368 int WINAPI PathCommonPrefixW(LPCWSTR,LPCWSTR,LPWSTR); 00369 #define PathCommonPrefix WINELIB_NAME_AW(PathCommonPrefix) 00370 00371 HRESULT WINAPI PathCreateFromUrlA(LPCSTR pszUrl, LPSTR pszPath, LPDWORD pcchPath, DWORD dwReserved); 00372 HRESULT WINAPI PathCreateFromUrlW(LPCWSTR pszUrl, LPWSTR pszPath, LPDWORD pcchPath, DWORD dwReserved); 00373 #define PathCreateFromUrl WINELIB_NAME_AW(PathCreateFromUrl) 00374 00375 BOOL WINAPI PathFileExistsA(LPCSTR); 00376 BOOL WINAPI PathFileExistsW(LPCWSTR); 00377 #define PathFileExists WINELIB_NAME_AW(PathFileExists) 00378 00379 BOOL WINAPI PathFileExistsAndAttributesA(LPCSTR lpszPath, DWORD *dwAttr); 00380 BOOL WINAPI PathFileExistsAndAttributesW(LPCWSTR lpszPath, DWORD *dwAttr); 00381 #define PathFileExistsAndAttributes WINELIB_NAME_AW(PathFileExistsAndAttributes) 00382 00383 LPSTR WINAPI PathFindExtensionA(LPCSTR); 00384 LPWSTR WINAPI PathFindExtensionW(LPCWSTR); 00385 #define PathFindExtension WINELIB_NAME_AW(PathFindExtension) 00386 00387 LPSTR WINAPI PathFindFileNameA(LPCSTR); 00388 LPWSTR WINAPI PathFindFileNameW(LPCWSTR); 00389 #define PathFindFileName WINELIB_NAME_AW(PathFindFileName) 00390 00391 LPSTR WINAPI PathFindNextComponentA(LPCSTR); 00392 LPWSTR WINAPI PathFindNextComponentW(LPCWSTR); 00393 #define PathFindNextComponent WINELIB_NAME_AW(PathFindNextComponent) 00394 00395 BOOL WINAPI PathFindOnPathA(LPSTR,LPCSTR*); 00396 BOOL WINAPI PathFindOnPathW(LPWSTR,LPCWSTR*); 00397 #define PathFindOnPath WINELIB_NAME_AW(PathFindOnPath) 00398 00399 LPSTR WINAPI PathGetArgsA(LPCSTR); 00400 LPWSTR WINAPI PathGetArgsW(LPCWSTR); 00401 #define PathGetArgs WINELIB_NAME_AW(PathGetArgs) 00402 00403 UINT WINAPI PathGetCharTypeA(UCHAR); 00404 UINT WINAPI PathGetCharTypeW(WCHAR); 00405 #define PathGetCharType WINELIB_NAME_AW(PathGetCharType) 00406 00407 int WINAPI PathGetDriveNumberA(LPCSTR); 00408 int WINAPI PathGetDriveNumberW(LPCWSTR); 00409 #define PathGetDriveNumber WINELIB_NAME_AW(PathGetDriveNumber) 00410 00411 BOOL WINAPI PathIsDirectoryA(LPCSTR); 00412 BOOL WINAPI PathIsDirectoryW(LPCWSTR); 00413 #define PathIsDirectory WINELIB_NAME_AW(PathIsDirectory) 00414 00415 BOOL WINAPI PathIsDirectoryEmptyA(LPCSTR); 00416 BOOL WINAPI PathIsDirectoryEmptyW(LPCWSTR); 00417 #define PathIsDirectoryEmpty WINELIB_NAME_AW(PathIsDirectoryEmpty) 00418 00419 BOOL WINAPI PathIsFileSpecA(LPCSTR); 00420 BOOL WINAPI PathIsFileSpecW(LPCWSTR); 00421 #define PathIsFileSpec WINELIB_NAME_AW(PathIsFileSpec); 00422 00423 BOOL WINAPI PathIsPrefixA(LPCSTR,LPCSTR); 00424 BOOL WINAPI PathIsPrefixW(LPCWSTR,LPCWSTR); 00425 #define PathIsPrefix WINELIB_NAME_AW(PathIsPrefix) 00426 00427 BOOL WINAPI PathIsRelativeA(LPCSTR); 00428 BOOL WINAPI PathIsRelativeW(LPCWSTR); 00429 #define PathIsRelative WINELIB_NAME_AW(PathIsRelative) 00430 00431 BOOL WINAPI PathIsRootA(LPCSTR); 00432 BOOL WINAPI PathIsRootW(LPCWSTR); 00433 #define PathIsRoot WINELIB_NAME_AW(PathIsRoot) 00434 00435 BOOL WINAPI PathIsSameRootA(LPCSTR,LPCSTR); 00436 BOOL WINAPI PathIsSameRootW(LPCWSTR,LPCWSTR); 00437 #define PathIsSameRoot WINELIB_NAME_AW(PathIsSameRoot) 00438 00439 BOOL WINAPI PathIsUNCA(LPCSTR); 00440 BOOL WINAPI PathIsUNCW(LPCWSTR); 00441 #define PathIsUNC WINELIB_NAME_AW(PathIsUNC) 00442 00443 BOOL WINAPI PathIsUNCServerA(LPCSTR); 00444 BOOL WINAPI PathIsUNCServerW(LPCWSTR); 00445 #define PathIsUNCServer WINELIB_NAME_AW(PathIsUNCServer) 00446 00447 BOOL WINAPI PathIsUNCServerShareA(LPCSTR); 00448 BOOL WINAPI PathIsUNCServerShareW(LPCWSTR); 00449 #define PathIsUNCServerShare WINELIB_NAME_AW(PathIsUNCServerShare) 00450 00451 BOOL WINAPI PathIsContentTypeA(LPCSTR,LPCSTR); 00452 BOOL WINAPI PathIsContentTypeW(LPCWSTR,LPCWSTR); 00453 #define PathIsContentType WINELIB_NAME_AW(PathIsContentType) 00454 00455 BOOL WINAPI PathIsURLA(LPCSTR); 00456 BOOL WINAPI PathIsURLW(LPCWSTR); 00457 #define PathIsURL WINELIB_NAME_AW(PathIsURL) 00458 00459 BOOL WINAPI PathMakePrettyA(LPSTR); 00460 BOOL WINAPI PathMakePrettyW(LPWSTR); 00461 #define PathMakePretty WINELIB_NAME_AW(PathMakePretty) 00462 00463 BOOL WINAPI PathMatchSpecA(LPCSTR,LPCSTR); 00464 BOOL WINAPI PathMatchSpecW(LPCWSTR,LPCWSTR); 00465 #define PathMatchSpec WINELIB_NAME_AW(PathMatchSpec) 00466 00467 int WINAPI PathParseIconLocationA(LPSTR); 00468 int WINAPI PathParseIconLocationW(LPWSTR); 00469 #define PathParseIconLocation WINELIB_NAME_AW(PathParseIconLocation) 00470 00471 VOID WINAPI PathQuoteSpacesA(LPSTR); 00472 VOID WINAPI PathQuoteSpacesW(LPWSTR); 00473 #define PathQuoteSpaces WINELIB_NAME_AW(PathQuoteSpaces) 00474 00475 BOOL WINAPI PathRelativePathToA(LPSTR,LPCSTR,DWORD,LPCSTR,DWORD); 00476 BOOL WINAPI PathRelativePathToW(LPWSTR,LPCWSTR,DWORD,LPCWSTR,DWORD); 00477 #define PathRelativePathTo WINELIB_NAME_AW(PathRelativePathTo) 00478 00479 VOID WINAPI PathRemoveArgsA(LPSTR); 00480 VOID WINAPI PathRemoveArgsW(LPWSTR); 00481 #define PathRemoveArgs WINELIB_NAME_AW(PathRemoveArgs) 00482 00483 LPSTR WINAPI PathRemoveBackslashA(LPSTR); 00484 LPWSTR WINAPI PathRemoveBackslashW(LPWSTR); 00485 #define PathRemoveBackslash WINELIB_NAME_AW(PathRemoveBackslash) 00486 00487 VOID WINAPI PathRemoveBlanksA(LPSTR); 00488 VOID WINAPI PathRemoveBlanksW(LPWSTR); 00489 #define PathRemoveBlanks WINELIB_NAME_AW(PathRemoveBlanks) 00490 00491 VOID WINAPI PathRemoveExtensionA(LPSTR); 00492 VOID WINAPI PathRemoveExtensionW(LPWSTR); 00493 #define PathRemoveExtension WINELIB_NAME_AW(PathRemoveExtension) 00494 00495 BOOL WINAPI PathRemoveFileSpecA(LPSTR); 00496 BOOL WINAPI PathRemoveFileSpecW(LPWSTR); 00497 #define PathRemoveFileSpec WINELIB_NAME_AW(PathRemoveFileSpec) 00498 00499 BOOL WINAPI PathRenameExtensionA(LPSTR,LPCSTR); 00500 BOOL WINAPI PathRenameExtensionW(LPWSTR,LPCWSTR); 00501 #define PathRenameExtension WINELIB_NAME_AW(PathRenameExtension) 00502 00503 BOOL WINAPI PathSearchAndQualifyA(LPCSTR,LPSTR,UINT); 00504 BOOL WINAPI PathSearchAndQualifyW(LPCWSTR,LPWSTR,UINT); 00505 #define PathSearchAndQualify WINELIB_NAME_AW(PathSearchAndQualify) 00506 00507 VOID WINAPI PathSetDlgItemPathA(HWND,int,LPCSTR); 00508 VOID WINAPI PathSetDlgItemPathW(HWND,int,LPCWSTR); 00509 #define PathSetDlgItemPath WINELIB_NAME_AW(PathSetDlgItemPath) 00510 00511 LPSTR WINAPI PathSkipRootA(LPCSTR); 00512 LPWSTR WINAPI PathSkipRootW(LPCWSTR); 00513 #define PathSkipRoot WINELIB_NAME_AW(PathSkipRoot) 00514 00515 VOID WINAPI PathStripPathA(LPSTR); 00516 VOID WINAPI PathStripPathW(LPWSTR); 00517 #define PathStripPath WINELIB_NAME_AW(PathStripPath) 00518 00519 BOOL WINAPI PathStripToRootA(LPSTR); 00520 BOOL WINAPI PathStripToRootW(LPWSTR); 00521 #define PathStripToRoot WINELIB_NAME_AW(PathStripToRoot) 00522 00523 VOID WINAPI PathUnquoteSpacesA(LPSTR); 00524 VOID WINAPI PathUnquoteSpacesW(LPWSTR); 00525 #define PathUnquoteSpaces WINELIB_NAME_AW(PathUnquoteSpaces) 00526 00527 BOOL WINAPI PathMakeSystemFolderA(LPCSTR); 00528 BOOL WINAPI PathMakeSystemFolderW(LPCWSTR); 00529 #define PathMakeSystemFolder WINELIB_NAME_AW(PathMakeSystemFolder) 00530 00531 BOOL WINAPI PathUnmakeSystemFolderA(LPCSTR); 00532 BOOL WINAPI PathUnmakeSystemFolderW(LPCWSTR); 00533 #define PathUnmakeSystemFolder WINELIB_NAME_AW(PathUnmakeSystemFolder) 00534 00535 BOOL WINAPI PathIsSystemFolderA(LPCSTR,DWORD); 00536 BOOL WINAPI PathIsSystemFolderW(LPCWSTR,DWORD); 00537 #define PathIsSystemFolder WINELIB_NAME_AW(PathIsSystemFolder) 00538 00539 BOOL WINAPI PathIsNetworkPathA(LPCSTR); 00540 BOOL WINAPI PathIsNetworkPathW(LPCWSTR); 00541 #define PathIsNetworkPath WINELIB_NAME_AW(PathIsNetworkPath) 00542 00543 BOOL WINAPI PathIsLFNFileSpecA(LPCSTR); 00544 BOOL WINAPI PathIsLFNFileSpecW(LPCWSTR); 00545 #define PathIsLFNFileSpec WINELIB_NAME_AW(PathIsLFNFileSpec) 00546 00547 LPCSTR WINAPI PathFindSuffixArrayA(LPCSTR,LPCSTR *,int); 00548 LPCWSTR WINAPI PathFindSuffixArrayW(LPCWSTR,LPCWSTR *,int); 00549 #define PathFindSuffixArray WINELIB_NAME_AW(PathFindSuffixArray) 00550 00551 VOID WINAPI PathUndecorateA(LPSTR); 00552 VOID WINAPI PathUndecorateW(LPWSTR); 00553 #define PathUndecorate WINELIB_NAME_AW(PathUndecorate) 00554 00555 BOOL WINAPI PathUnExpandEnvStringsA(LPCSTR,LPSTR,UINT); 00556 BOOL WINAPI PathUnExpandEnvStringsW(LPCWSTR,LPWSTR,UINT); 00557 #define PathUnExpandEnvStrings WINELIB_NAME_AW(PathUnExpandEnvStrings) 00558 00559 /* Url functions */ 00560 typedef enum { 00561 URL_SCHEME_INVALID = -1, 00562 URL_SCHEME_UNKNOWN = 0, 00563 URL_SCHEME_FTP, 00564 URL_SCHEME_HTTP, 00565 URL_SCHEME_GOPHER, 00566 URL_SCHEME_MAILTO, 00567 URL_SCHEME_NEWS, 00568 URL_SCHEME_NNTP, 00569 URL_SCHEME_TELNET, 00570 URL_SCHEME_WAIS, 00571 URL_SCHEME_FILE, 00572 URL_SCHEME_MK, 00573 URL_SCHEME_HTTPS, 00574 URL_SCHEME_SHELL, 00575 URL_SCHEME_SNEWS, 00576 URL_SCHEME_LOCAL, 00577 URL_SCHEME_JAVASCRIPT, 00578 URL_SCHEME_VBSCRIPT, 00579 URL_SCHEME_ABOUT, 00580 URL_SCHEME_RES, 00581 URL_SCHEME_MSSHELLROOTED, 00582 URL_SCHEME_MSSHELLIDLIST, 00583 URL_SCHEME_MSHELP, 00584 URL_SCHEME_MSSHELLDEVICE, 00585 URL_SCHEME_WILDCARD, 00586 URL_SCHEME_SEARCH_MS, 00587 URL_SCHEME_SEARCH, 00588 URL_SCHEME_KNOWNFOLDER, 00589 URL_SCHEME_MAXVALUE 00590 } URL_SCHEME; 00591 00592 /* These are used by UrlGetPart routine */ 00593 typedef enum { 00594 URL_PART_NONE = 0, 00595 URL_PART_SCHEME = 1, 00596 URL_PART_HOSTNAME, 00597 URL_PART_USERNAME, 00598 URL_PART_PASSWORD, 00599 URL_PART_PORT, 00600 URL_PART_QUERY 00601 } URL_PART; 00602 00603 #define URL_PARTFLAG_KEEPSCHEME 0x00000001 00604 00605 /* These are used by the UrlIs... routines */ 00606 typedef enum { 00607 URLIS_URL, 00608 URLIS_OPAQUE, 00609 URLIS_NOHISTORY, 00610 URLIS_FILEURL, 00611 URLIS_APPLIABLE, 00612 URLIS_DIRECTORY, 00613 URLIS_HASQUERY 00614 } URLIS; 00615 00616 /* This is used by the UrlApplyScheme... routines */ 00617 #define URL_APPLY_FORCEAPPLY 0x00000008 00618 #define URL_APPLY_GUESSFILE 0x00000004 00619 #define URL_APPLY_GUESSSCHEME 0x00000002 00620 #define URL_APPLY_DEFAULT 0x00000001 00621 00622 /* The following are used by UrlEscape..., UrlUnEscape..., 00623 * UrlCanonicalize..., and UrlCombine... routines 00624 */ 00625 #define URL_WININET_COMPATIBILITY 0x80000000 00626 #define URL_PLUGGABLE_PROTOCOL 0x40000000 00627 #define URL_ESCAPE_UNSAFE 0x20000000 00628 #define URL_UNESCAPE 0x10000000 00629 00630 #define URL_DONT_SIMPLIFY 0x08000000 00631 #define URL_NO_META URL_DONT_SIMPLIFY 00632 #define URL_ESCAPE_SPACES_ONLY 0x04000000 00633 #define URL_DONT_ESCAPE_EXTRA_INFO 0x02000000 00634 #define URL_DONT_UNESCAPE_EXTRA_INFO URL_DONT_ESCAPE_EXTRA_INFO 00635 #define URL_BROWSER_MODE URL_DONT_ESCAPE_EXTRA_INFO 00636 00637 #define URL_INTERNAL_PATH 0x00800000 /* Will escape #'s in paths */ 00638 #define URL_UNESCAPE_HIGH_ANSI_ONLY 0x00400000 00639 #define URL_CONVERT_IF_DOSPATH 0x00200000 00640 #define URL_UNESCAPE_INPLACE 0x00100000 00641 00642 #define URL_FILE_USE_PATHURL 0x00010000 00643 00644 #define URL_ESCAPE_SEGMENT_ONLY 0x00002000 00645 #define URL_ESCAPE_PERCENT 0x00001000 00646 00647 HRESULT WINAPI UrlApplySchemeA(LPCSTR,LPSTR,LPDWORD,DWORD); 00648 HRESULT WINAPI UrlApplySchemeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); 00649 #define UrlApplyScheme WINELIB_NAME_AW(UrlApplyScheme) 00650 00651 HRESULT WINAPI UrlCanonicalizeA(LPCSTR,LPSTR,LPDWORD,DWORD); 00652 HRESULT WINAPI UrlCanonicalizeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); 00653 #define UrlCanonicalize WINELIB_NAME_AW(UrlCanonicalize) 00654 00655 HRESULT WINAPI UrlCombineA(LPCSTR,LPCSTR,LPSTR,LPDWORD,DWORD); 00656 HRESULT WINAPI UrlCombineW(LPCWSTR,LPCWSTR,LPWSTR,LPDWORD,DWORD); 00657 #define UrlCombine WINELIB_NAME_AW(UrlCombine) 00658 00659 INT WINAPI UrlCompareA(LPCSTR,LPCSTR,BOOL); 00660 INT WINAPI UrlCompareW(LPCWSTR,LPCWSTR,BOOL); 00661 #define UrlCompare WINELIB_NAME_AW(UrlCompare) 00662 00663 HRESULT WINAPI UrlEscapeA(LPCSTR,LPSTR,LPDWORD,DWORD); 00664 HRESULT WINAPI UrlEscapeW(LPCWSTR,LPWSTR,LPDWORD,DWORD); 00665 #define UrlEscape WINELIB_NAME_AW(UrlEscape) 00666 00667 #define UrlEscapeSpacesA(x,y,z) UrlCanonicalizeA(x, y, z, \ 00668 URL_DONT_ESCAPE_EXTRA_INFO|URL_ESCAPE_SPACES_ONLY) 00669 #define UrlEscapeSpacesW(x,y,z) UrlCanonicalizeW(x, y, z, \ 00670 URL_DONT_ESCAPE_EXTRA_INFO|URL_ESCAPE_SPACES_ONLY) 00671 #define UrlEscapeSpaces WINELIB_NAME_AW(UrlEscapeSpaces) 00672 00673 LPCSTR WINAPI UrlGetLocationA(LPCSTR); 00674 LPCWSTR WINAPI UrlGetLocationW(LPCWSTR); 00675 #define UrlGetLocation WINELIB_NAME_AW(UrlGetLocation) 00676 00677 HRESULT WINAPI UrlGetPartA(LPCSTR,LPSTR,LPDWORD,DWORD,DWORD); 00678 HRESULT WINAPI UrlGetPartW(LPCWSTR,LPWSTR,LPDWORD,DWORD,DWORD); 00679 #define UrlGetPart WINELIB_NAME_AW(UrlGetPart) 00680 00681 HRESULT WINAPI HashData(const unsigned char *,DWORD,unsigned char *lpDest,DWORD); 00682 00683 HRESULT WINAPI UrlHashA(LPCSTR,unsigned char *,DWORD); 00684 HRESULT WINAPI UrlHashW(LPCWSTR,unsigned char *,DWORD); 00685 #define UrlHash WINELIB_NAME_AW(UrlHash) 00686 00687 BOOL WINAPI UrlIsA(LPCSTR,URLIS); 00688 BOOL WINAPI UrlIsW(LPCWSTR,URLIS); 00689 #define UrlIs WINELIB_NAME_AW(UrlIs) 00690 00691 BOOL WINAPI UrlIsNoHistoryA(LPCSTR); 00692 BOOL WINAPI UrlIsNoHistoryW(LPCWSTR); 00693 #define UrlIsNoHistory WINELIB_NAME_AW(UrlIsNoHistory) 00694 00695 BOOL WINAPI UrlIsOpaqueA(LPCSTR); 00696 BOOL WINAPI UrlIsOpaqueW(LPCWSTR); 00697 #define UrlIsOpaque WINELIB_NAME_AW(UrlIsOpaque) 00698 00699 #define UrlIsFileUrlA(x) UrlIsA(x, URLIS_FILEURL) 00700 #define UrlIsFileUrlW(y) UrlIsW(x, URLIS_FILEURL) 00701 #define UrlIsFileUrl WINELIB_NAME_AW(UrlIsFileUrl) 00702 00703 HRESULT WINAPI UrlUnescapeA(LPSTR,LPSTR,LPDWORD,DWORD); 00704 HRESULT WINAPI UrlUnescapeW(LPWSTR,LPWSTR,LPDWORD,DWORD); 00705 #define UrlUnescape WINELIB_NAME_AW(UrlUnescape) 00706 00707 #define UrlUnescapeInPlaceA(x,y) UrlUnescapeA(x, NULL, NULL, \ 00708 y | URL_UNESCAPE_INPLACE) 00709 #define UrlUnescapeInPlaceW(x,y) UrlUnescapeW(x, NULL, NULL, \ 00710 y | URL_UNESCAPE_INPLACE) 00711 #define UrlUnescapeInPlace WINELIB_NAME_AW(UrlUnescapeInPlace) 00712 00713 HRESULT WINAPI UrlCreateFromPathA(LPCSTR,LPSTR,LPDWORD,DWORD); 00714 HRESULT WINAPI UrlCreateFromPathW(LPCWSTR,LPWSTR,LPDWORD,DWORD); 00715 #define UrlCreateFromPath WINELIB_NAME_AW(UrlCreateFromPath) 00716 00717 typedef struct tagPARSEDURLA { 00718 DWORD cbSize; 00719 LPCSTR pszProtocol; 00720 UINT cchProtocol; 00721 LPCSTR pszSuffix; 00722 UINT cchSuffix; 00723 UINT nScheme; 00724 } PARSEDURLA, *PPARSEDURLA; 00725 00726 typedef struct tagPARSEDURLW { 00727 DWORD cbSize; 00728 LPCWSTR pszProtocol; 00729 UINT cchProtocol; 00730 LPCWSTR pszSuffix; 00731 UINT cchSuffix; 00732 UINT nScheme; 00733 } PARSEDURLW, *PPARSEDURLW; 00734 00735 HRESULT WINAPI ParseURLA(LPCSTR pszUrl, PARSEDURLA *ppu); 00736 HRESULT WINAPI ParseURLW(LPCWSTR pszUrl, PARSEDURLW *ppu); 00737 #define ParseURL WINELIB_NAME_AW(ParseUrl) 00738 00739 #endif /* NO_SHLWAPI_PATH */ 00740 00741 00742 /* String functions */ 00743 #ifndef NO_SHLWAPI_STRFCNS 00744 00745 /* StrToIntEx flags */ 00746 #define STIF_DEFAULT 0x0L 00747 #define STIF_SUPPORT_HEX 0x1L 00748 00749 BOOL WINAPI ChrCmpIA (WORD,WORD); 00750 BOOL WINAPI ChrCmpIW (WCHAR,WCHAR); 00751 #define ChrCmpI WINELIB_NAME_AW(ChrCmpI) 00752 00753 INT WINAPI StrCSpnA(LPCSTR,LPCSTR); 00754 INT WINAPI StrCSpnW(LPCWSTR,LPCWSTR); 00755 #define StrCSpn WINELIB_NAME_AW(StrCSpn) 00756 00757 INT WINAPI StrCSpnIA(LPCSTR,LPCSTR); 00758 INT WINAPI StrCSpnIW(LPCWSTR,LPCWSTR); 00759 #define StrCSpnI WINELIB_NAME_AW(StrCSpnI) 00760 00761 #define StrCatA lstrcatA 00762 LPWSTR WINAPI StrCatW(LPWSTR,LPCWSTR); 00763 #define StrCat WINELIB_NAME_AW(StrCat) 00764 00765 LPSTR WINAPI StrCatBuffA(LPSTR,LPCSTR,INT); 00766 LPWSTR WINAPI StrCatBuffW(LPWSTR,LPCWSTR,INT); 00767 #define StrCatBuff WINELIB_NAME_AW(StrCatBuff) 00768 00769 DWORD WINAPI StrCatChainW(LPWSTR,DWORD,DWORD,LPCWSTR); 00770 00771 LPSTR WINAPI StrChrA(LPCSTR,WORD); 00772 LPWSTR WINAPI StrChrW(LPCWSTR,WCHAR); 00773 #define StrChr WINELIB_NAME_AW(StrChr) 00774 00775 LPSTR WINAPI StrChrIA(LPCSTR,WORD); 00776 LPWSTR WINAPI StrChrIW(LPCWSTR,WCHAR); 00777 #define StrChrI WINELIB_NAME_AW(StrChrI) 00778 00779 #define StrCmpA lstrcmpA 00780 int WINAPI StrCmpW(LPCWSTR,LPCWSTR); 00781 #define StrCmp WINELIB_NAME_AW(StrCmp) 00782 00783 #define StrCmpIA lstrcmpiA 00784 int WINAPI StrCmpIW(LPCWSTR,LPCWSTR); 00785 #define StrCmpI WINELIB_NAME_AW(StrCmpI) 00786 00787 #define StrCpyA lstrcpyA 00788 LPWSTR WINAPI StrCpyW(LPWSTR,LPCWSTR); 00789 #define StrCpy WINELIB_NAME_AW(StrCpy) 00790 00791 #define StrCpyNA lstrcpynA 00792 LPWSTR WINAPI StrCpyNW(LPWSTR,LPCWSTR,int); 00793 #define StrCpyN WINELIB_NAME_AW(StrCpyN) 00794 #define StrNCpy WINELIB_NAME_AW(StrCpyN) 00795 00796 INT WINAPI StrCmpLogicalW(LPCWSTR,LPCWSTR); 00797 00798 INT WINAPI StrCmpNA(LPCSTR,LPCSTR,INT); 00799 INT WINAPI StrCmpNW(LPCWSTR,LPCWSTR,INT); 00800 #define StrCmpN WINELIB_NAME_AW(StrCmpN) 00801 #define StrNCmp WINELIB_NAME_AW(StrCmpN) 00802 00803 INT WINAPI StrCmpNIA(LPCSTR,LPCSTR,INT); 00804 INT WINAPI StrCmpNIW(LPCWSTR,LPCWSTR,INT); 00805 #define StrCmpNI WINELIB_NAME_AW(StrCmpNI) 00806 #define StrNCmpI WINELIB_NAME_AW(StrCmpNI) 00807 00808 LPSTR WINAPI StrDupA(LPCSTR); 00809 LPWSTR WINAPI StrDupW(LPCWSTR); 00810 #define StrDup WINELIB_NAME_AW(StrDup) 00811 00812 HRESULT WINAPI SHStrDupA(LPCSTR,WCHAR**); 00813 HRESULT WINAPI SHStrDupW(LPCWSTR,WCHAR**); 00814 #define SHStrDup WINELIB_NAME_AW(SHStrDup) 00815 00816 LPSTR WINAPI StrFormatByteSizeA (DWORD,LPSTR,UINT); 00817 00818 /* A/W Pairing is broken for this function */ 00819 LPSTR WINAPI StrFormatByteSize64A (LONGLONG,LPSTR,UINT); 00820 LPWSTR WINAPI StrFormatByteSizeW (LONGLONG,LPWSTR,UINT); 00821 #ifndef WINE_NO_UNICODE_MACROS 00822 #ifdef UNICODE 00823 #define StrFormatByteSize StrFormatByteSizeW 00824 #else 00825 #define StrFormatByteSize StrFormatByteSize64A 00826 #endif 00827 #endif 00828 00829 LPSTR WINAPI StrFormatKBSizeA(LONGLONG,LPSTR,UINT); 00830 LPWSTR WINAPI StrFormatKBSizeW(LONGLONG,LPWSTR,UINT); 00831 #define StrFormatKBSize WINELIB_NAME_AW(StrFormatKBSize) 00832 00833 int WINAPI StrFromTimeIntervalA(LPSTR,UINT,DWORD,int); 00834 int WINAPI StrFromTimeIntervalW(LPWSTR,UINT,DWORD,int); 00835 #define StrFromTimeInterval WINELIB_NAME_AW(StrFromTimeInterval) 00836 00837 BOOL WINAPI StrIsIntlEqualA(BOOL,LPCSTR,LPCSTR,int); 00838 BOOL WINAPI StrIsIntlEqualW(BOOL,LPCWSTR,LPCWSTR,int); 00839 #define StrIsIntlEqual WINELIB_NAME_AW(StrIsIntlEqual) 00840 00841 #define StrIntlEqNA(a,b,c) StrIsIntlEqualA(TRUE,a,b,c) 00842 #define StrIntlEqNW(a,b,c) StrIsIntlEqualW(TRUE,a,b,c) 00843 00844 #define StrIntlEqNIA(a,b,c) StrIsIntlEqualA(FALSE,a,b,c) 00845 #define StrIntlEqNIW(a,b,c) StrIsIntlEqualW(FALSE,a,b,c) 00846 00847 LPSTR WINAPI StrNCatA(LPSTR,LPCSTR,int); 00848 LPWSTR WINAPI StrNCatW(LPWSTR,LPCWSTR,int); 00849 #define StrNCat WINELIB_NAME_AW(StrNCat) 00850 #define StrCatN WINELIB_NAME_AW(StrNCat) 00851 00852 LPSTR WINAPI StrPBrkA(LPCSTR,LPCSTR); 00853 LPWSTR WINAPI StrPBrkW(LPCWSTR,LPCWSTR); 00854 #define StrPBrk WINELIB_NAME_AW(StrPBrk) 00855 00856 LPSTR WINAPI StrRChrA(LPCSTR,LPCSTR,WORD); 00857 LPWSTR WINAPI StrRChrW(LPCWSTR,LPCWSTR,WORD); 00858 #define StrRChr WINELIB_NAME_AW(StrRChr) 00859 00860 LPSTR WINAPI StrRChrIA(LPCSTR,LPCSTR,WORD); 00861 LPWSTR WINAPI StrRChrIW(LPCWSTR,LPCWSTR,WORD); 00862 #define StrRChrI WINELIB_NAME_AW(StrRChrI) 00863 00864 LPSTR WINAPI StrRStrIA(LPCSTR,LPCSTR,LPCSTR); 00865 LPWSTR WINAPI StrRStrIW(LPCWSTR,LPCWSTR,LPCWSTR); 00866 #define StrRStrI WINELIB_NAME_AW(StrRStrI) 00867 00868 int WINAPI StrSpnA(LPCSTR,LPCSTR); 00869 int WINAPI StrSpnW(LPCWSTR,LPCWSTR); 00870 #define StrSpn WINELIB_NAME_AW(StrSpn) 00871 00872 LPSTR WINAPI StrStrA(LPCSTR,LPCSTR); 00873 LPWSTR WINAPI StrStrW(LPCWSTR,LPCWSTR); 00874 #define StrStr WINELIB_NAME_AW(StrStr) 00875 00876 LPSTR WINAPI StrStrIA(LPCSTR,LPCSTR); 00877 LPWSTR WINAPI StrStrIW(LPCWSTR,LPCWSTR); 00878 #define StrStrI WINELIB_NAME_AW(StrStrI) 00879 00880 int WINAPI StrToIntA(LPCSTR); 00881 int WINAPI StrToIntW(LPCWSTR); 00882 #define StrToInt WINELIB_NAME_AW(StrToInt) 00883 #define StrToLong WINELIB_NAME_AW(StrToInt) 00884 00885 BOOL WINAPI StrToIntExA(LPCSTR,DWORD,int*); 00886 BOOL WINAPI StrToIntExW(LPCWSTR,DWORD,int*); 00887 #define StrToIntEx WINELIB_NAME_AW(StrToIntEx) 00888 00889 BOOL WINAPI StrToInt64ExA(LPCSTR,DWORD,LONGLONG*); 00890 BOOL WINAPI StrToInt64ExW(LPCWSTR,DWORD,LONGLONG*); 00891 #define StrToIntEx64 WINELIB_NAME_AW(StrToIntEx64) 00892 00893 BOOL WINAPI StrTrimA(LPSTR,LPCSTR); 00894 BOOL WINAPI StrTrimW(LPWSTR,LPCWSTR); 00895 #define StrTrim WINELIB_NAME_AW(StrTrim) 00896 00897 INT WINAPI wvnsprintfA(LPSTR,INT,LPCSTR,__ms_va_list); 00898 INT WINAPI wvnsprintfW(LPWSTR,INT,LPCWSTR,__ms_va_list); 00899 #define wvnsprintf WINELIB_NAME_AW(wvnsprintf) 00900 00901 INT WINAPIV wnsprintfA(LPSTR,INT,LPCSTR, ...); 00902 INT WINAPIV wnsprintfW(LPWSTR,INT,LPCWSTR, ...); 00903 #define wnsprintf WINELIB_NAME_AW(wnsprintf) 00904 00905 HRESULT WINAPI SHLoadIndirectString(LPCWSTR,LPWSTR,UINT,PVOID*); 00906 00907 BOOL WINAPI IntlStrEqWorkerA(BOOL,LPCSTR,LPCSTR,int); 00908 BOOL WINAPI IntlStrEqWorkerW(BOOL,LPCWSTR,LPCWSTR,int); 00909 #define IntlStrEqWorker WINELIB_NAME_AW(IntlStrEqWorker) 00910 00911 #define IntlStrEqNA(s1,s2,n) IntlStrEqWorkerA(TRUE,s1,s2,n) 00912 #define IntlStrEqNW(s1,s2,n) IntlStrEqWorkerW(TRUE,s1,s2,n) 00913 #define IntlStrEqN WINELIB_NAME_AW(IntlStrEqN) 00914 00915 #define IntlStrEqNIA(s1,s2,n) IntlStrEqWorkerA(FALSE,s1,s2,n) 00916 #define IntlStrEqNIW(s1,s2,n) IntlStrEqWorkerW(FALSE,s1,s2,n) 00917 #define IntlStrEqNI WINELIB_NAME_AW(IntlStrEqNI) 00918 00919 HRESULT WINAPI StrRetToStrA(STRRET*,LPCITEMIDLIST,LPSTR*); 00920 HRESULT WINAPI StrRetToStrW(STRRET*,LPCITEMIDLIST,LPWSTR*); 00921 #define StrRetToStr WINELIB_NAME_AW(StrRetToStr) 00922 00923 HRESULT WINAPI StrRetToBufA(STRRET*,LPCITEMIDLIST,LPSTR,UINT); 00924 HRESULT WINAPI StrRetToBufW(STRRET*,LPCITEMIDLIST,LPWSTR,UINT); 00925 #define StrRetToBuf WINELIB_NAME_AW(StrRetToBuf) 00926 00927 HRESULT WINAPI StrRetToBSTR(STRRET*,LPCITEMIDLIST,BSTR*); 00928 00929 #endif /* NO_SHLWAPI_STRFCNS */ 00930 00931 00932 /* GDI functions */ 00933 #ifndef NO_SHLWAPI_GDI 00934 00935 HPALETTE WINAPI SHCreateShellPalette(HDC); 00936 00937 COLORREF WINAPI ColorHLSToRGB(WORD,WORD,WORD); 00938 00939 COLORREF WINAPI ColorAdjustLuma(COLORREF,int,BOOL); 00940 00941 VOID WINAPI ColorRGBToHLS(COLORREF,LPWORD,LPWORD,LPWORD); 00942 00943 #endif /* NO_SHLWAPI_GDI */ 00944 00945 00946 /* Stream functions */ 00947 #ifndef NO_SHLWAPI_STREAM 00948 00949 struct IStream * WINAPI SHOpenRegStreamA(HKEY,LPCSTR,LPCSTR,DWORD); 00950 struct IStream * WINAPI SHOpenRegStreamW(HKEY,LPCWSTR,LPCWSTR,DWORD); 00951 #define SHOpenRegStream WINELIB_NAME_AW(SHOpenRegStream2) /* Uses version 2 */ 00952 00953 struct IStream * WINAPI SHOpenRegStream2A(HKEY,LPCSTR,LPCSTR,DWORD); 00954 struct IStream * WINAPI SHOpenRegStream2W(HKEY,LPCWSTR,LPCWSTR,DWORD); 00955 #define SHOpenRegStream2 WINELIB_NAME_AW(SHOpenRegStream2) 00956 00957 HRESULT WINAPI SHCreateStreamOnFileA(LPCSTR,DWORD,struct IStream**); 00958 HRESULT WINAPI SHCreateStreamOnFileW(LPCWSTR,DWORD,struct IStream**); 00959 #define SHCreateStreamOnFile WINELIB_NAME_AW(SHCreateStreamOnFile) 00960 00961 HRESULT WINAPI SHCreateStreamOnFileEx(LPCWSTR,DWORD,DWORD,BOOL,struct IStream*,struct IStream**); 00962 00963 HRESULT WINAPI SHCreateStreamWrapper(LPBYTE,DWORD,DWORD,struct IStream**); 00964 00965 #endif /* NO_SHLWAPI_STREAM */ 00966 00967 /* SHAutoComplete flags */ 00968 #define SHACF_DEFAULT 0x00000000 00969 #define SHACF_FILESYSTEM 0x00000001 00970 #define SHACF_URLHISTORY 0x00000002 00971 #define SHACF_URLMRU 0x00000004 00972 #define SHACF_URLALL (SHACF_URLHISTORY|SHACF_URLMRU) 00973 #define SHACF_USETAB 0x00000008 00974 #define SHACF_FILESYS_ONLY 0x00000010 00975 #define SHACF_FILESYS_DIRS 0x00000020 00976 #define SHACF_AUTOSUGGEST_FORCE_ON 0x10000000 00977 #define SHACF_AUTOSUGGEST_FORCE_OFF 0x20000000 00978 #define SHACF_AUTOAPPEND_FORCE_ON 0x40000000 00979 #define SHACF_AUTOAPPEND_FORCE_OFF 0x80000000 00980 00981 HRESULT WINAPI SHAutoComplete(HWND,DWORD); 00982 00983 /* Threads */ 00984 HRESULT WINAPI SHGetThreadRef(IUnknown**); 00985 HRESULT WINAPI SHSetThreadRef(IUnknown*); 00986 HRESULT WINAPI SHReleaseThreadRef(void); 00987 00988 /* SHCreateThread flags */ 00989 #define CTF_INSIST 0x01 /* Always call */ 00990 #define CTF_THREAD_REF 0x02 /* Hold thread ref */ 00991 #define CTF_PROCESS_REF 0x04 /* Hold process ref */ 00992 #define CTF_COINIT 0x08 /* Startup COM first */ 00993 #define CTF_FREELIBANDEXIT 0x10 /* Hold DLL ref */ 00994 #define CTF_REF_COUNTED 0x20 /* Thread is ref counted */ 00995 #define CTF_WAIT_ALLOWCOM 0x40 /* Allow marshalling */ 00996 00997 BOOL WINAPI SHCreateThread(LPTHREAD_START_ROUTINE,void*,DWORD,LPTHREAD_START_ROUTINE); 00998 00999 BOOL WINAPI SHSkipJunction(struct IBindCtx*,const CLSID*); 01000 01001 /* Version Information */ 01002 01003 typedef struct _DllVersionInfo { 01004 DWORD cbSize; 01005 DWORD dwMajorVersion; 01006 DWORD dwMinorVersion; 01007 DWORD dwBuildNumber; 01008 DWORD dwPlatformID; 01009 } DLLVERSIONINFO; 01010 01011 #define DLLVER_PLATFORM_WINDOWS 0x01 /* Win9x */ 01012 #define DLLVER_PLATFORM_NT 0x02 /* WinNT */ 01013 01014 typedef HRESULT (CALLBACK *DLLGETVERSIONPROC)(DLLVERSIONINFO *); 01015 01016 #ifdef __WINESRC__ 01017 /* shouldn't be here, but is nice for type checking */ 01018 HRESULT WINAPI DllGetVersion(DLLVERSIONINFO *) DECLSPEC_HIDDEN; 01019 #endif 01020 01021 typedef struct _DLLVERSIONINFO2 { 01022 DLLVERSIONINFO info1; 01023 DWORD dwFlags; /* Reserved */ 01024 ULONGLONG DECLSPEC_ALIGN(8) ullVersion; /* 16 bits each for Major, Minor, Build, QFE */ 01025 } DLLVERSIONINFO2; 01026 01027 #define DLLVER_MAJOR_MASK 0xFFFF000000000000 01028 #define DLLVER_MINOR_MASK 0x0000FFFF00000000 01029 #define DLLVER_BUILD_MASK 0x00000000FFFF0000 01030 #define DLLVER_QFE_MASK 0x000000000000FFFF 01031 01032 #define MAKEDLLVERULL(mjr, mnr, bld, qfe) (((ULONGLONG)(mjr)<< 48)| \ 01033 ((ULONGLONG)(mnr)<< 32) | ((ULONGLONG)(bld)<< 16) | (ULONGLONG)(qfe)) 01034 01035 HRESULT WINAPI DllInstall(BOOL,LPCWSTR) DECLSPEC_HIDDEN; 01036 01037 01038 #if (_WIN32_IE >= 0x0600) 01039 #define SHGVSPB_PERUSER 0x00000001 01040 #define SHGVSPB_ALLUSERS 0x00000002 01041 #define SHGVSPB_PERFOLDER 0x00000004 01042 #define SHGVSPB_ALLFOLDERS 0x00000008 01043 #define SHGVSPB_INHERIT 0x00000010 01044 #define SHGVSPB_ROAM 0x00000020 01045 #define SHGVSPB_NOAUTODEFAULTS 0x80000000 01046 01047 #define SHGVSPB_FOLDER (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER) 01048 #define SHGVSPB_FOLDERNODEFAULTS (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER | SHGVSPB_NOAUTODEFAULTS) 01049 #define SHGVSPB_USERDEFAULTS (SHGVSPB_PERUSER | SHGVSPB_ALLFOLDERS) 01050 #define SHGVSPB_GLOBALDEAFAULTS (SHGVSPB_ALLUSERS | SHGVSPB_ALLFOLDERS) 01051 01052 HRESULT WINAPI SHGetViewStatePropertyBag(LPCITEMIDLIST pidl, LPWSTR bag_name, DWORD flags, REFIID riid, void **ppv); 01053 #endif /* (_WIN32_IE >= 0x0600) */ 01054 01055 01056 /* IsOS definitions */ 01057 01058 #define OS_WIN32SORGREATER 0x00 01059 #define OS_NT 0x01 01060 #define OS_WIN95ORGREATER 0x02 01061 #define OS_NT4ORGREATER 0x03 01062 #define OS_WIN2000ORGREATER_ALT 0x04 01063 #define OS_WIN98ORGREATER 0x05 01064 #define OS_WIN98_GOLD 0x06 01065 #define OS_WIN2000ORGREATER 0x07 01066 #define OS_WIN2000PRO 0x08 01067 #define OS_WIN2000SERVER 0x09 01068 #define OS_WIN2000ADVSERVER 0x0A 01069 #define OS_WIN2000DATACENTER 0x0B 01070 #define OS_WIN2000TERMINAL 0x0C 01071 #define OS_EMBEDDED 0x0D 01072 #define OS_TERMINALCLIENT 0x0E 01073 #define OS_TERMINALREMOTEADMIN 0x0F 01074 #define OS_WIN95_GOLD 0x10 01075 #define OS_MEORGREATER 0x11 01076 #define OS_XPORGREATER 0x12 01077 #define OS_HOME 0x13 01078 #define OS_PROFESSIONAL 0x14 01079 #define OS_DATACENTER 0x15 01080 #define OS_ADVSERVER 0x16 01081 #define OS_SERVER 0x17 01082 #define OS_TERMINALSERVER 0x18 01083 #define OS_PERSONALTERMINALSERVER 0x19 01084 #define OS_FASTUSERSWITCHING 0x1A 01085 #define OS_WELCOMELOGONUI 0x1B 01086 #define OS_DOMAINMEMBER 0x1C 01087 #define OS_ANYSERVER 0x1D 01088 #define OS_WOW6432 0x1E 01089 #define OS_WEBSERVER 0x1F 01090 #define OS_SMALLBUSINESSSERVER 0x20 01091 #define OS_TABLETPC 0x21 01092 #define OS_SERVERADMINUI 0x22 01093 #define OS_MEDIACENTER 0x23 01094 #define OS_APPLIANCE 0x24 01095 01096 BOOL WINAPI IsOS(DWORD); 01097 01098 /* SHSetTimerQueueTimer definitions */ 01099 #define TPS_EXECUTEIO 0x00000001 01100 #define TPS_LONGEXECTIME 0x00000008 01101 01102 /* SHFormatDateTimeA/SHFormatDateTimeW flags */ 01103 #define FDTF_SHORTTIME 0x00000001 01104 #define FDTF_SHORTDATE 0x00000002 01105 #define FDTF_DEFAULT (FDTF_SHORTDATE | FDTF_SHORTTIME) 01106 #define FDTF_LONGDATE 0x00000004 01107 #define FDTF_LONGTIME 0x00000008 01108 #define FDTF_RELATIVE 0x00000010 01109 #define FDTF_LTRDATE 0x00000100 01110 #define FDTF_RTLDATE 0x00000200 01111 #define FDTF_NOAUTOREADINGORDER 0x00000400 01112 01113 01114 typedef struct 01115 { 01116 const IID *piid; 01117 int dwOffset; 01118 } QITAB, *LPQITAB; 01119 01120 HRESULT WINAPI QISearch(void* base, const QITAB *pqit, REFIID riid, void **ppv); 01121 01122 HANDLE WINAPI SHAllocShared(LPVOID pv, ULONG cb, DWORD pid); 01123 BOOL WINAPI SHFreeShared(HANDLE hMem, DWORD pid); 01124 LPVOID WINAPI SHLockShared(HANDLE hMem, DWORD pid); 01125 BOOL WINAPI SHUnlockShared(LPVOID pv); 01126 01127 #include <poppack.h> 01128 01129 #ifdef __cplusplus 01130 } /* extern "C" */ 01131 #endif /* defined(__cplusplus) */ 01132 01133 #endif /* __WINE_SHLWAPI_H */ Generated on Sun May 27 2012 04:32:21 for ReactOS by
1.7.6.1
|