shlwapi.h revision 589fd26cedb2b4ebbed14f2964cad03cc8ebbca2
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * SHLWAPI.DLL functions
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * Copyright (C) 2000 Juergen Schmied
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * This library is free software; you can redistribute it and/or
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * modify it under the terms of the GNU Lesser General Public
c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsync * License as published by the Free Software Foundation; either
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * version 2.1 of the License, or (at your option) any later version.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * This library is distributed in the hope that it will be useful,
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * Lesser General Public License for more details.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * You should have received a copy of the GNU Lesser General Public
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * License along with this library; if not, write to the Free Software
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
e6ad2e18e663b076aeabfec994947514566a7accvboxsync * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
e6ad2e18e663b076aeabfec994947514566a7accvboxsync * other than GPL or LGPL is available it will apply instead, Sun elects to use only
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * a choice of LGPL license versions is made available with the language indicating
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync * of the LGPL is applied is otherwise unspecified.
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/* FIXME: #include <specstrings.h> */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncextern "C" {
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#endif /* defined(__cplusplus) */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/* Registry functions */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHDeleteEmptyKey WINELIB_NAME_AW(SHDeleteEmptyKey)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHDeleteValue WINELIB_NAME_AW(SHDeleteValue)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncDWORD WINAPI SHGetValueA(HKEY,LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncDWORD WINAPI SHGetValueW(HKEY,LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncDWORD WINAPI SHSetValueA(HKEY,LPCSTR,LPCSTR,DWORD,LPCVOID,DWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncDWORD WINAPI SHSetValueW(HKEY,LPCWSTR,LPCWSTR,DWORD,LPCVOID,DWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncDWORD WINAPI SHQueryValueExA(HKEY,LPCSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncDWORD WINAPI SHQueryValueExW(HKEY,LPCWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHQueryValueEx WINELIB_NAME_AW(SHQueryValueEx)
ad290511521ce8388a9926b165241ecf83c330a7vboxsyncLONG WINAPI SHEnumKeyExW(HKEY,DWORD,LPWSTR,LPDWORD);
41fcf8465b641c7083d3b440451f17c1210fce33vboxsyncLONG WINAPI SHEnumValueA(HKEY,DWORD,LPSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
3ea1dbf096240fc221aea99352a74c17a367a9b6vboxsyncLONG WINAPI SHEnumValueW(HKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,LPVOID,LPDWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHQueryInfoKeyA(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHQueryInfoKeyW(HKEY,LPDWORD,LPDWORD,LPDWORD,LPDWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHQueryInfoKey WINELIB_NAME_AW(SHQueryInfoKey)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncDWORD WINAPI SHRegGetPathA(HKEY,LPCSTR,LPCSTR,LPSTR,DWORD);
441b60f8b0601cc1718368c9c3ef082223ad12a2vboxsyncDWORD WINAPI SHRegGetPathW(HKEY,LPCWSTR,LPCWSTR,LPWSTR,DWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncDWORD WINAPI SHRegSetPathA(HKEY,LPCSTR,LPCSTR,LPCSTR,DWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncDWORD WINAPI SHRegSetPathW(HKEY,LPCWSTR,LPCWSTR,LPCWSTR,DWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/* Undocumented registry functions */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHDeleteOrphanKey WINELIB_NAME_AW(SHDeleteOrphanKey)
3fa7a7e633f46a212052b510cdb8cee41f279a67vboxsync/* User registry functions */
3fa7a7e633f46a212052b510cdb8cee41f279a67vboxsynctypedef enum
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsynctypedef enum
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHREGSET_HKCU 0x1 /* Apply to HKCU if empty */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHREGSET_FORCE_HKCU 0x2 /* Always apply to HKCU */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHREGSET_HKLM 0x4 /* Apply to HKLM if empty */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHREGSET_FORCE_HKLM 0x8 /* Always apply to HKLM */
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHREGSET_DEFAULT (SHREGSET_FORCE_HKCU | SHREGSET_HKLM)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegCreateUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,DWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegCreateUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,DWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHRegCreateUSKey WINELIB_NAME_AW(SHRegCreateUSKey)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegOpenUSKeyA(LPCSTR,REGSAM,HUSKEY,PHUSKEY,BOOL);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegOpenUSKeyW(LPCWSTR,REGSAM,HUSKEY,PHUSKEY,BOOL);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHRegOpenUSKey WINELIB_NAME_AW(SHRegOpenUSKey)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegQueryUSValueA(HUSKEY,LPCSTR,LPDWORD,LPVOID,LPDWORD,
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegQueryUSValueW(HUSKEY,LPCWSTR,LPDWORD,LPVOID,LPDWORD,
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHRegQueryUSValue WINELIB_NAME_AW(SHRegQueryUSValue)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegWriteUSValueA(HUSKEY,LPCSTR,DWORD,LPVOID,DWORD,DWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegWriteUSValueW(HUSKEY,LPCWSTR,DWORD,LPVOID,DWORD,DWORD);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHRegWriteUSValue WINELIB_NAME_AW(SHRegWriteUSValue)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegDeleteUSValueA(HUSKEY,LPCSTR,SHREGDEL_FLAGS);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegDeleteUSValueW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHRegDeleteUSValue WINELIB_NAME_AW(SHRegDeleteUSValue)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegDeleteEmptyUSKeyA(HUSKEY,LPCSTR,SHREGDEL_FLAGS);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegDeleteEmptyUSKeyW(HUSKEY,LPCWSTR,SHREGDEL_FLAGS);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync#define SHRegDeleteEmptyUSKey WINELIB_NAME_AW(SHRegDeleteEmptyUSKey)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegEnumUSKeyA(HUSKEY,DWORD,LPSTR,LPDWORD,SHREGENUM_FLAGS);
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsyncLONG WINAPI SHRegEnumUSKeyW(HUSKEY,DWORD,LPWSTR,LPDWORD,SHREGENUM_FLAGS);
eb2d4958f7faf812c3bdb2d7587d815022f0bd55vboxsync#define SHRegEnumUSKey WINELIB_NAME_AW(SHRegEnumUSKey)
9cdd4d805ecb43126372f7cf12e4032836cb738avboxsyncLONG WINAPI SHRegEnumUSValueA(HUSKEY,DWORD,LPSTR,LPDWORD,LPDWORD,
706ec8d33965b04fc59fb0b1b0981b81ae23600dvboxsyncLONG WINAPI SHRegEnumUSValueW(HUSKEY,DWORD,LPWSTR,LPDWORD,LPDWORD,
3a343ca21a267ec3c54e2317e2ed18fe99b8ebbbvboxsync#define SHRegEnumUSValue WINELIB_NAME_AW(SHRegEnumUSValue)
3a343ca21a267ec3c54e2317e2ed18fe99b8ebbbvboxsyncLONG WINAPI SHRegQueryInfoUSKeyA(HUSKEY,LPDWORD,LPDWORD,LPDWORD,
3a343ca21a267ec3c54e2317e2ed18fe99b8ebbbvboxsyncLONG WINAPI SHRegQueryInfoUSKeyW(HUSKEY,LPDWORD,LPDWORD,LPDWORD,
3a343ca21a267ec3c54e2317e2ed18fe99b8ebbbvboxsync#define SHRegQueryInfoUSKey WINELIB_NAME_AW(SHRegQueryInfoUSKey)
e637cb22e348f5665d5473dae55ed785aa7b6e9avboxsyncLONG WINAPI SHRegGetUSValueA(LPCSTR,LPCSTR,LPDWORD,LPVOID,LPDWORD,
e637cb22e348f5665d5473dae55ed785aa7b6e9avboxsyncLONG WINAPI SHRegGetUSValueW(LPCWSTR,LPCWSTR,LPDWORD,LPVOID,LPDWORD,
e637cb22e348f5665d5473dae55ed785aa7b6e9avboxsync#define SHRegGetUSValue WINELIB_NAME_AW(SHRegGetUSValue)
e637cb22e348f5665d5473dae55ed785aa7b6e9avboxsyncLONG WINAPI SHRegSetUSValueA(LPCSTR,LPCSTR,DWORD,LPVOID,DWORD,DWORD);
e637cb22e348f5665d5473dae55ed785aa7b6e9avboxsyncLONG WINAPI SHRegSetUSValueW(LPCWSTR,LPCWSTR,DWORD,LPVOID,DWORD,DWORD);
e637cb22e348f5665d5473dae55ed785aa7b6e9avboxsync#define SHRegSetUSValue WINELIB_NAME_AW(SHRegSetUSValue)
5159c4c6485473c77871b515c15b59c3caa60b46vboxsyncBOOL WINAPI SHRegGetBoolUSValueA(LPCSTR,LPCSTR,BOOL,BOOL);
5159c4c6485473c77871b515c15b59c3caa60b46vboxsyncBOOL WINAPI SHRegGetBoolUSValueW(LPCWSTR,LPCWSTR,BOOL,BOOL);
5159c4c6485473c77871b515c15b59c3caa60b46vboxsync#define SHRegGetBoolUSValue WINELIB_NAME_AW(SHRegGetBoolUSValue)
9055f61bb57d2a625c6434d55beac7565c3b3c0dvboxsync/* IQueryAssociation and helpers */
} ASSOCSTR;
} ASSOCKEY;
} ASSOCDATA;
} ASSOCENUM;
STDMETHOD(GetString)(THIS_ ASSOCF flags, ASSOCSTR str, LPCWSTR pszExtra, LPWSTR pszOut, DWORD * pcchOut) PURE;
STDMETHOD(GetData)(THIS_ ASSOCF flags, ASSOCDATA data, LPCWSTR pszExtra, LPVOID pvOut, DWORD * pcbOut) PURE;
STDMETHOD(GetEnum)(THIS_ ASSOCF flags, ASSOCENUM assocenum, LPCWSTR pszExtra, REFIID riid, LPVOID * ppvOut) PURE;
#ifndef NO_SHLWAPI_PATH
HRESULT WINAPI PathCreateFromUrlA(LPCSTR pszUrl, LPSTR pszPath, LPDWORD pcchPath, DWORD dwReserved);
HRESULT WINAPI PathCreateFromUrlW(LPCWSTR pszUrl, LPWSTR pszPath, LPDWORD pcchPath, DWORD dwReserved);
URL_SCHEME_UNKNOWN = 0,
} URL_SCHEME;
URL_PART_NONE = 0,
} URL_PART;
} URLIS;
y | URL_UNESCAPE_INPLACE)
y | URL_UNESCAPE_INPLACE)
typedef struct tagPARSEDURLA {
typedef struct tagPARSEDURLW {
#ifndef NO_SHLWAPI_STRFCNS
#ifndef WINE_NO_UNICODE_MACROS
#ifdef UNICODE
#ifndef NO_SHLWAPI_GDI
#ifndef NO_SHLWAPI_STREAM
typedef struct _DllVersionInfo {
#ifdef __WINESRC__
typedef struct _DLLVERSIONINFO2 {
#include <poppack.h>
#ifdef __cplusplus