[SHELL32_NEW]
[reactos.git] / include / psdk / shlwapi.h
index c3a823f..079b97e 100644 (file)
@@ -83,10 +83,38 @@ DWORD WINAPI SHCopyKeyA(HKEY,LPCSTR,HKEY,DWORD);
 DWORD WINAPI SHCopyKeyW(HKEY,LPCWSTR,HKEY,DWORD);
 #define SHCopyKey WINELIB_NAME_AW(SHCopyKey)
 
-/* Undocumented registry functions */
-
 HKEY WINAPI  SHRegDuplicateHKey(HKEY);
 
+/* SHRegGetValue flags */
+typedef INT SRRF;
+
+#define SRRF_RT_REG_NONE 0x1
+#define SRRF_RT_REG_SZ 0x2
+#define SRRF_RT_REG_EXPAND_SZ 0x4
+#define SRRF_RT_REG_BINARY 0x8
+#define SRRF_RT_REG_DWORD 0x10
+#define SRRF_RT_REG_MULTI_SZ 0x20
+#define SRRF_RT_REG_QWORD 0x40
+
+#define SRRF_RT_DWORD (SRRF_RT_REG_BINARY|SRRF_RT_REG_DWORD)
+#define SRRF_RT_QWORD (SRRF_RT_REG_BINARY|SRRF_RT_REG_QWORD)
+#define SRRF_RT_ANY 0xffff
+
+#define SRRF_RM_ANY 0
+#define SRRF_RM_NORMAL 0x10000
+#define SRRF_RM_SAFE 0x20000
+#define SRRF_RM_SAFENETWORK 0x40000
+
+#define SRRF_NOEXPAND 0x10000000
+#define SRRF_ZEROONFAILURE 0x20000000
+#define SRRF_NOVIRT 0x40000000
+
+LSTATUS WINAPI SHRegGetValueA(HKEY,LPCSTR,LPCSTR,SRRF,LPDWORD,LPVOID,LPDWORD);
+LSTATUS WINAPI SHRegGetValueW(HKEY,LPCWSTR,LPCWSTR,SRRF,LPDWORD,LPVOID,LPDWORD);
+#define SHRegGetValue WINELIB_NAME_AW(SHRegGetValue)
+
+/* Undocumented registry functions */
+
 DWORD WINAPI SHDeleteOrphanKeyA(HKEY,LPCSTR);
 DWORD WINAPI SHDeleteOrphanKeyW(HKEY,LPCWSTR);
 #define SHDeleteOrphanKey WINELIB_NAME_AW(SHDeleteOrphanKey)
@@ -193,6 +221,7 @@ enum
     ASSOCF_REMAPRUNDLL          = 0x080, /* Get rundll args */
     ASSOCF_NOFIXUPS             = 0x100, /* Don't fixup errors */
     ASSOCF_IGNOREBASECLASS      = 0x200, /* Don't read baseclass */
+    ASSOCF_INIT_IGNOREUNKNOWN   = 0x400, /* Fail for unknown progid */
 };
 
 typedef DWORD ASSOCF;
@@ -245,9 +274,7 @@ typedef enum
 
 typedef struct IQueryAssociations *LPQUERYASSOCIATIONS;
 
-#ifndef INTERFACE
 #define INTERFACE IQueryAssociations
-#endif
 DECLARE_INTERFACE_(IQueryAssociations,IUnknown)
 {
     /*** IUnknown methods ***/
@@ -341,7 +368,7 @@ int WINAPI PathCommonPrefixW(LPCWSTR,LPCWSTR,LPWSTR);
 
 HRESULT WINAPI PathCreateFromUrlA(LPCSTR pszUrl, LPSTR pszPath, LPDWORD pcchPath, DWORD dwReserved);
 HRESULT WINAPI PathCreateFromUrlW(LPCWSTR pszUrl, LPWSTR pszPath, LPDWORD pcchPath, DWORD dwReserved);
-#define PathCreateFromUrl WINELIB_NANE_AW(PathCreateFromUrl)
+#define PathCreateFromUrl WINELIB_NAME_AW(PathCreateFromUrl)
 
 BOOL WINAPI PathFileExistsA(LPCSTR);
 BOOL WINAPI PathFileExistsW(LPCWSTR);
@@ -552,6 +579,11 @@ typedef enum {
     URL_SCHEME_MSSHELLROOTED,
     URL_SCHEME_MSSHELLIDLIST,
     URL_SCHEME_MSHELP,
+    URL_SCHEME_MSSHELLDEVICE,
+    URL_SCHEME_WILDCARD,
+    URL_SCHEME_SEARCH_MS,
+    URL_SCHEME_SEARCH,
+    URL_SCHEME_KNOWNFOLDER,
     URL_SCHEME_MAXVALUE
 } URL_SCHEME;
 
@@ -668,17 +700,17 @@ BOOL    WINAPI UrlIsOpaqueW(LPCWSTR);
 
 HRESULT WINAPI UrlUnescapeA(LPSTR,LPSTR,LPDWORD,DWORD);
 HRESULT WINAPI UrlUnescapeW(LPWSTR,LPWSTR,LPDWORD,DWORD);
-#define UrlUnescape WINELIB_AW_NAME(UrlUnescape)
+#define UrlUnescape WINELIB_NAME_AW(UrlUnescape)
 
 #define UrlUnescapeInPlaceA(x,y) UrlUnescapeA(x, NULL, NULL, \
                                               y | URL_UNESCAPE_INPLACE)
 #define UrlUnescapeInPlaceW(x,y) UrlUnescapeW(x, NULL, NULL, \
                                               y | URL_UNESCAPE_INPLACE)
-#define UrlUnescapeInPlace WINELIB_AW_NAME(UrlUnescapeInPlace)
+#define UrlUnescapeInPlace WINELIB_NAME_AW(UrlUnescapeInPlace)
 
 HRESULT WINAPI UrlCreateFromPathA(LPCSTR,LPSTR,LPDWORD,DWORD);
 HRESULT WINAPI UrlCreateFromPathW(LPCWSTR,LPWSTR,LPDWORD,DWORD);
-#define UrlCreateFromPath WINELIB_AW_NAME(UrlCreateFromPath)
+#define UrlCreateFromPath WINELIB_NAME_AW(UrlCreateFromPath)
 
 typedef struct tagPARSEDURLA {
     DWORD cbSize;
@@ -700,7 +732,7 @@ typedef struct tagPARSEDURLW {
 
 HRESULT WINAPI ParseURLA(LPCSTR pszUrl, PARSEDURLA *ppu);
 HRESULT WINAPI ParseURLW(LPCWSTR pszUrl, PARSEDURLW *ppu);
-#define ParseURL WINELIB_AW_NAME(ParseUrl)
+#define ParseURL WINELIB_NAME_AW(ParseUrl)
 
 #endif /* NO_SHLWAPI_PATH */
 
@@ -784,7 +816,7 @@ LPSTR WINAPI StrFormatByteSizeA (DWORD,LPSTR,UINT);
 /* A/W Pairing is broken for this function */
 LPSTR WINAPI StrFormatByteSize64A (LONGLONG,LPSTR,UINT);
 LPWSTR WINAPI StrFormatByteSizeW (LONGLONG,LPWSTR,UINT);
-#ifndef __WINESRC__
+#ifndef WINE_NO_UNICODE_MACROS
 #ifdef UNICODE
 #define StrFormatByteSize StrFormatByteSizeW
 #else
@@ -860,8 +892,8 @@ BOOL WINAPI StrTrimA(LPSTR,LPCSTR);
 BOOL WINAPI StrTrimW(LPWSTR,LPCWSTR);
 #define StrTrim WINELIB_NAME_AW(StrTrim)
 
-INT WINAPI wvnsprintfA(LPSTR,INT,LPCSTR,va_list);
-INT WINAPI wvnsprintfW(LPWSTR,INT,LPCWSTR,va_list);
+INT WINAPI wvnsprintfA(LPSTR,INT,LPCSTR,__ms_va_list);
+INT WINAPI wvnsprintfW(LPWSTR,INT,LPCWSTR,__ms_va_list);
 #define wvnsprintf WINELIB_NAME_AW(wvnsprintf)
 
 INT WINAPIV wnsprintfA(LPSTR,INT,LPCSTR, ...);
@@ -1015,7 +1047,7 @@ HRESULT WINAPI DllInstall(BOOL,LPCWSTR) DECLSPEC_HIDDEN;
 #define SHGVSPB_USERDEFAULTS     (SHGVSPB_PERUSER | SHGVSPB_ALLFOLDERS)
 #define SHGVSPB_GLOBALDEAFAULTS  (SHGVSPB_ALLUSERS | SHGVSPB_ALLFOLDERS)
 
-HRESULT WINAPI SHGetViewStatePropertyBag(PCIDLIST_ABSOLUTE pidl, LPCWSTR pszBagName, DWORD dwFlags, REFIID riid, void** ppv);
+HRESULT WINAPI SHGetViewStatePropertyBag(LPCITEMIDLIST pidl, LPWSTR bag_name, DWORD flags, REFIID riid, void **ppv);
 #endif  /* (_WIN32_IE >= 0x0600) */
 
 
@@ -1065,7 +1097,32 @@ BOOL WINAPI IsOS(DWORD);
 #define TPS_EXECUTEIO    0x00000001
 #define TPS_LONGEXECTIME 0x00000008
 
-#include <poppack.h>
+/* SHFormatDateTimeA/SHFormatDateTimeW flags */
+#define FDTF_SHORTTIME          0x00000001
+#define FDTF_SHORTDATE          0x00000002
+#define FDTF_DEFAULT            (FDTF_SHORTDATE | FDTF_SHORTTIME)
+#define FDTF_LONGDATE           0x00000004
+#define FDTF_LONGTIME           0x00000008
+#define FDTF_RELATIVE           0x00000010
+#define FDTF_LTRDATE            0x00000100
+#define FDTF_RTLDATE            0x00000200
+#define FDTF_NOAUTOREADINGORDER 0x00000400
+
+
+typedef struct
+{
+    const IID *piid;
+    int        dwOffset;
+} QITAB, *LPQITAB;
+
+HRESULT WINAPI QISearch(void* base, const QITAB *pqit, REFIID riid, void **ppv);
+
+HANDLE WINAPI SHAllocShared(LPVOID pv, ULONG cb, DWORD pid);
+BOOL WINAPI SHFreeShared(HANDLE hMem, DWORD pid);
+LPVOID WINAPI SHLockShared(HANDLE hMem, DWORD pid);
+BOOL WINAPI SHUnlockShared(LPVOID pv);
+
+#include <poppack.h> 
 
 #ifdef __cplusplus
 } /* extern "C" */