ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

shlwapi.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.