Shell Patch
Filip Navara <xnavara-VIXq6x/[email protected]> Thu, 01 Jan 2004 16:36:17 +0100
| Newsgroups | gmane.comp.gnu.mingw.patches |
|---|---|
| Message-ID | <[email protected]> |
Hi! [As I saw the patches are moved into CVS now, I would like to completly synchronize my local w32api version and return to using the official version. Are there any plans on new w32api release? If yes, I still have some changes that I would like to push into it, but it's hard to send it now, because it depends on lot of my previous patches.] Now back to this patch. Documentation: MSDN Changelog: 2004-01-01 Filip Navara <xnavara-VIXq6x/[email protected]> * include/shlguid.h (IID_IPersistFolder2, IID_IPersistFolder3, IID_IShellFolder2, IID_IFileSystemBindData): Added declarations. * include/shlobj.h (EXTRASEARCH, SHCOLSTATEF, SHELLDETAILS, PERSIST_FOLDER_TARGET_INFO): Added definitions. (IExtractIcon[AW], IShellLink[AW], IPersistFolder, IShellView, ICommDlgBrowser): Added COBJMACROS. (IEnumExtraSearch, IShellFolder2, IFileSystemBindData, IPersistFolder2, IPersistFolder3): Added COM interface definitions. (SHCreateDirectoryEx[AW], SHBindToParent): Added declarations. * lib/shell32.c (IID_IPersistFolder2, IID_IPersistFolder3, IID_IShellFolder2, IID_IFileSystemBindData): Added definitions. Thanks Filip
shell.log
(text/plain, 728 B)
2004-01-01 Filip Navara <xnavara-VIXq6x/[email protected]> * include/shlguid.h (IID_IPersistFolder2, IID_IPersistFolder3, IID_IShellFolder2, IID_IFileSystemBindData): Added declarations. * include/shlobj.h (EXTRASEARCH, SHCOLSTATEF, SHELLDETAILS, PERSIST_FOLDER_TARGET_INFO): Added definitions. (IExtractIcon[AW], IShellLink[AW], IPersistFolder, IShellView, ICommDlgBrowser): Added COBJMACROS. (IEnumExtraSearch, IShellFolder2, IFileSystemBindData, IPersistFolder2, IPersistFolder3): Added COM interface definitions. (SHCreateDirectoryEx[AW], SHBindToParent): Added declarations. * lib/shell32.c (IID_IPersistFolder2, IID_IPersistFolder3, IID_IShellFolder2, IID_IFileSystemBindData): Added definitions.
shell.diff
(text/plain, 17 KB)
--- include/shlguid.h Mon Dec 8 22:41:44 2003
+++ include/shlguid.h Thu Jan 1 15:11:54 2004
@@ -63,6 +63,14 @@
extern const GUID CLSID_DragDropHelper;
extern const GUID IID_IDropTargetHelper;
extern const GUID IID_IDragSourceHelper;
+#if (_WIN32_IE >= 0x400 || _WIN32_WINNT >= 0x500)
+extern const GUID IID_IPersistFolder2;
+#endif
+#if (_WIN32_WINNT >= 0x500)
+extern const GUID IID_IPersistFolder3;
+extern const GUID IID_IShellFolder2;
+extern const GUID IID_IFileSystemBindData;
+#endif
#ifdef UNICODE
#define IID_IFileViewer IID_IFileViewerW
#define IID_IShellLink IID_IShellLinkW
--- include/shlobj.h Mon Dec 8 22:41:44 2003
+++ include/shlobj.h Thu Jan 1 15:00:26 2004
@@ -449,6 +449,34 @@
SVUIA_DEACTIVATE,SVUIA_ACTIVATE_NOFOCUS,SVUIA_ACTIVATE_FOCUS,
SVUIA_INPLACEACTIVATE
} SVUIA_STATUS;
+#if (_WIN32_IE >= 0x0500)
+typedef struct tagEXTRASEARCH
+{
+ GUID guidSearch;
+ WCHAR wszFriendlyName[80];
+ WCHAR wszUrl[2084];
+} EXTRASEARCH, *LPEXTRASEARCH;
+typedef DWORD SHCOLSTATEF;
+typedef struct
+{
+ GUID fmtid;
+ DWORD pid;
+} SHCOLUMNID;
+typedef struct _SHELLDETAILS
+{
+ int fmt;
+ int cxChar;
+ STRRET str;
+} SHELLDETAILS, *LPSHELLDETAILS;
+typedef struct
+{
+ LPITEMIDLIST pidlTargetFolder;
+ WCHAR szTargetParsingName[MAX_PATH];
+ WCHAR szNetworkProvider[MAX_PATH];
+ DWORD dwAttributes;
+ int csidl;
+} PERSIST_FOLDER_TARGET_INFO;
+#endif
DECLARE_ENUMERATOR_(IEnumIDList,LPITEMIDLIST);
typedef IEnumIDList *LPENUMIDLIST;
@@ -592,6 +620,14 @@
};
typedef IExtractIconA *LPEXTRACTICONA;
+#ifdef COBJMACROS
+#define IExtractIconA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IExtractIconA_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IExtractIconA_Release(T) (T)->lpVtbl->Release(T)
+#define IExtractIconA_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)
+#define IExtractIconA_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)
+#endif
+
#undef INTERFACE
#define INTERFACE IExtractIconW
DECLARE_INTERFACE_(IExtractIconW, IUnknown)
@@ -604,6 +640,14 @@
};
typedef IExtractIconW *LPEXTRACTICONW;
+#ifdef COBJMACROS
+#define IExtractIconW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IExtractIconW_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IExtractIconW_Release(T) (T)->lpVtbl->Release(T)
+#define IExtractIconW_GetIconLocation(T,a,b,c,d,e) (T)->lpVtbl->GetIconLocation(T,a,b,c,d,e)
+#define IExtractIconW_Extract(T,a,b,c,d,e) (T)->lpVtbl->Extract(T,a,b,c,d,e)
+#endif
+
#ifdef UNICODE
#define IExtractIcon IExtractIconW
#define LPEXTRACTICON LPEXTRACTICONW
@@ -638,6 +682,31 @@
STDMETHOD(Resolve)(THIS_ HWND,DWORD) PURE;
STDMETHOD(SetPath)(THIS_ LPCSTR) PURE;
};
+
+#ifdef COBJMACROS
+#define IShellLinkA_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IShellLinkA_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IShellLinkA_Release(T) (T)->lpVtbl->Release(T)
+#define IShellLinkA_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d)
+#define IShellLinkA_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a)
+#define IShellLinkA_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a)
+#define IShellLinkA_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b)
+#define IShellLinkA_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a)
+#define IShellLinkA_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b)
+#define IShellLinkA_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a)
+#define IShellLinkA_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b)
+#define IShellLinkA_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a)
+#define IShellLinkA_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a)
+#define IShellLinkA_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a)
+#define IShellLinkA_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a)
+#define IShellLinkA_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a)
+#define IShellLinkA_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c)
+#define IShellLinkA_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b)
+#define IShellLinkA_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b)
+#define IShellLinkA_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b)
+#define IShellLinkA_SetPath(T,a) (T)->lpVtbl->SetPath(T,a)
+#endif
+
#undef INTERFACE
#define INTERFACE IShellLinkW
DECLARE_INTERFACE_(IShellLinkW, IUnknown)
@@ -665,6 +734,30 @@
STDMETHOD(SetPath)(THIS_ LPCWSTR) PURE;
};
+#ifdef COBJMACROS
+#define IShellLinkW_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IShellLinkW_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IShellLinkW_Release(T) (T)->lpVtbl->Release(T)
+#define IShellLinkW_GetPath(T,a,b,c,d) (T)->lpVtbl->GetPath(T,a,b,c,d)
+#define IShellLinkW_GetIDList(T,a) (T)->lpVtbl->GetIDList(T,a)
+#define IShellLinkW_SetIDList(T,a) (T)->lpVtbl->SetIDList(T,a)
+#define IShellLinkW_GetDescription(T,a,b) (T)->lpVtbl->GetDescription(T,a,b)
+#define IShellLinkW_SetDescription(T,a) (T)->lpVtbl->SetDescription(T,a)
+#define IShellLinkW_GetWorkingDirectory(T,a,b) (T)->lpVtbl->GetWorkingDirectory(T,a,b)
+#define IShellLinkW_SetWorkingDirectory(T,a) (T)->lpVtbl->SetWorkingDirectory(T,a)
+#define IShellLinkW_GetArguments(T,a,b) (T)->lpVtbl->GetArguments(T,a,b)
+#define IShellLinkW_SetArguments(T,a) (T)->lpVtbl->SetArguments(T,a)
+#define IShellLinkW_GetHotkey(T,a) (T)->lpVtbl->GetHotkey(T,a)
+#define IShellLinkW_SetHotkey(T,a) (T)->lpVtbl->SetHotkey(T,a)
+#define IShellLinkW_GetShowCmd(T,a) (T)->lpVtbl->GetShowCmd(T,a)
+#define IShellLinkW_SetShowCmd(T,a) (T)->lpVtbl->SetShowCmd(T,a)
+#define IShellLinkW_GetIconLocation(T,a,b,c) (T)->lpVtbl->GetIconLocation(T,a,b,c)
+#define IShellLinkW_SetIconLocation(T,a,b) (T)->lpVtbl->SetIconLocation(T,a,b)
+#define IShellLinkW_SetRelativePath(T,a,b) (T)->lpVtbl->SetRelativePath(T,a,b)
+#define IShellLinkW_Resolve(T,a,b) (T)->lpVtbl->Resolve(T,a,b)
+#define IShellLinkW_SetPath(T,a) (T)->lpVtbl->SetPath(T,a)
+#endif
+
#undef INTERFACE
#define INTERFACE IShellFolder
DECLARE_INTERFACE_(IShellFolder, IUnknown)
@@ -685,6 +778,62 @@
};
typedef IShellFolder *LPSHELLFOLDER;
+#if (_WIN32_IE >= 0x0500)
+
+DECLARE_ENUMERATOR_(IEnumExtraSearch,LPEXTRASEARCH);
+typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
+
+#undef INTERFACE
+#define INTERFACE IShellFolder2
+DECLARE_INTERFACE_(IShellFolder2, IShellFolder)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(ParseDisplayName)(THIS_ HWND,LPBC,LPOLESTR,PULONG,LPITEMIDLIST*,PULONG) PURE;
+ STDMETHOD(EnumObjects)(THIS_ HWND,DWORD,LPENUMIDLIST*) PURE;
+ STDMETHOD(BindToObject)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE;
+ STDMETHOD(BindToStorage)(THIS_ LPCITEMIDLIST,LPBC,REFIID,PVOID*) PURE;
+ STDMETHOD(CompareIDs)(THIS_ LPARAM,LPCITEMIDLIST,LPCITEMIDLIST) PURE;
+ STDMETHOD(CreateViewObject)(THIS_ HWND,REFIID,PVOID*) PURE;
+ STDMETHOD(GetAttributesOf)(THIS_ UINT,LPCITEMIDLIST*,PULONG) PURE;
+ STDMETHOD(GetUIObjectOf)(THIS_ HWND,UINT,LPCITEMIDLIST*,REFIID,PUINT,PVOID*) PURE;
+ STDMETHOD(GetDisplayNameOf)(THIS_ LPCITEMIDLIST,DWORD,LPSTRRET) PURE;
+ STDMETHOD(SetNameOf)(THIS_ HWND,LPCITEMIDLIST,LPCOLESTR,DWORD,LPITEMIDLIST*) PURE;
+ STDMETHOD(GetDefaultSearchGUID)(THIS_ GUID*) PURE;
+ STDMETHOD(EnumSearches)(THIS_ IEnumExtraSearch**) PURE;
+ STDMETHOD(GetDefaultColumn)(THIS_ DWORD,ULONG*,ULONG*) PURE;
+ STDMETHOD(GetDefaultColumnState)(THIS_ UINT,SHCOLSTATEF*) PURE;
+ STDMETHOD(GetDetailsEx)(THIS_ LPCITEMIDLIST,const SHCOLUMNID*,VARIANT*) PURE;
+ STDMETHOD(GetDetailsOf)(THIS_ LPCITEMIDLIST,UINT,SHELLDETAILS*) PURE;
+ STDMETHOD(MapColumnToSCID)(THIS_ UINT,SHCOLUMNID*) PURE;
+};
+typedef IShellFolder2 *LPSHELLFOLDER2;
+
+#ifdef COBJMACROS
+#define IShellFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IShellFolder2_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IShellFolder2_Release(T) (T)->lpVtbl->Release(T)
+#define IShellFolder2_ParseDisplayName(T,a,b,c,d,e,f) (T)->lpVtbl->ParseDisplayName(T,a,b,c,d,e,f)
+#define IShellFolder2_EnumObjects(T,a,b,c) (T)->lpVtbl->EnumObjects(T,a,b,c)
+#define IShellFolder2_BindToObject(T,a,b,c,d) (T)->lpVtbl->BindToObject(T,a,b,c,d)
+#define IShellFolder2_BindToStorage(T,a,b,c,d) (T)->lpVtbl->BindToStorage(T,a,b,c,d)
+#define IShellFolder2_CompareIDs(T,a,b,c) (T)->lpVtbl->CompareIDs(T,a,b,c)
+#define IShellFolder2_CreateViewObject(T,a,b) (T)->lpVtbl->CreateViewObject(T,a,b)
+#define IShellFolder2_GetAttributesOf(T,a,b,c) (T)->lpVtbl->GetAttributesOf(T,a,b,c)
+#define IShellFolder2_GetUIObjectOf(T,a,b,c,d,e,f) (T)->lpVtbl->GetUIObjectOf(T,a,b,c,d,e,f)
+#define IShellFolder2_GetDisplayNameOf(T,a,b,c) (T)->lpVtbl->GetDisplayNameOf(T,a,b,c)
+#define IShellFolder2_SetNameOf(T,a,b,c,d,e) (T)->lpVtbl->SetNameOf(T,a,b,c,d,e)
+#define IShellFolder2_GetDefaultSearchGUID(T,a) (T)->lpVtbl->GetDefaultSearchGUID(T,a)
+#define IShellFolder2_EnumSearches(T,a) (T)->lpVtbl->EnumSearches(T,a)
+#define IShellFolder2_GetDefaultColumn(T,a,b,c) (T)->lpVtbl->GetDefaultColumn(T,a,b,c)
+#define IShellFolder2_GetDefaultColumnState(T,a,b) (T)->lpVtbl->GetDefaultColumnState(T,a,b)
+#define IShellFolder2_GetDetailsEx(T,a,b,c) (T)->lpVtbl->GetDetailsEx(T,a,b,c)
+#define IShellFolder2_GetDetailsOf(T,a,b,c) (T)->lpVtbl->GetDetailsOf(T,a,b,c)
+#define IShellFolder2_MapColumnToSCID(T,a,b) (T)->lpVtbl->MapColumnToSCID(T,a,b)
+#endif
+
+#endif /* _WIN32_IE >= 0x0500 */
#undef INTERFACE
#define INTERFACE ICopyHook
DECLARE_INTERFACE_(ICopyHook, IUnknown)
@@ -722,6 +871,17 @@
typedef IFileViewer *LPFILEVIEWER;
#undef INTERFACE
+#define INTERFACE IFileSystemBindData
+DECLARE_INTERFACE_(IFileSystemBindData, IUnknown)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(SetFindData)(THIS_ const WIN32_FIND_DATAW*) PURE;
+ STDMETHOD(GetFindData)(THIS_ WIN32_FIND_DATAW*) PURE;
+};
+
+#undef INTERFACE
#define INTERFACE IPersistFolder
DECLARE_INTERFACE_(IPersistFolder,IPersist)
{
@@ -733,6 +893,70 @@
};
typedef IPersistFolder *LPPERSISTFOLDER;
+#ifdef COBJMACROS
+#define IPersistFolder_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IPersistFolder_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IPersistFolder_Release(T) (T)->lpVtbl->Release(T)
+#define IPersistFolder_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
+#define IPersistFolder_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
+#endif
+
+#if (_WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500)
+
+#undef INTERFACE
+#define INTERFACE IPersistFolder2
+DECLARE_INTERFACE_(IPersistFolder2,IPersistFolder)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;
+ STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE;
+ STDMETHOD(GetCurFolder)(THIS_ LPITEMIDLIST*) PURE;
+};
+typedef IPersistFolder2 *LPPERSISTFOLDER2;
+
+#ifdef COBJMACROS
+#define IPersistFolder2_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IPersistFolder2_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IPersistFolder2_Release(T) (T)->lpVtbl->Release(T)
+#define IPersistFolder2_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
+#define IPersistFolder2_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
+#define IPersistFolder2_GetCurFolder(T,a) (T)->lpVtbl->GetCurFolder(T,a)
+#endif
+
+#endif /* _WIN32_IE >= 0x0400 || _WIN32_WINNT >= 0x0500 */
+
+#if (_WIN32_WINNT >= 0x0500)
+
+#undef INTERFACE
+#define INTERFACE IPersistFolder3
+DECLARE_INTERFACE_(IPersistFolder3,IPersistFolder2)
+{
+ STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+ STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+ STDMETHOD_(ULONG,Release)(THIS) PURE;
+ STDMETHOD(GetClassID)(THIS_ CLSID*) PURE;
+ STDMETHOD(Initialize)(THIS_ LPCITEMIDLIST) PURE;
+ STDMETHOD(GetCurFolder)(THIS_ LPITEMIDLIST*) PURE;
+ STDMETHOD(InitializeEx)(THIS_ IBindCtx*,LPCITEMIDLIST,const PERSIST_FOLDER_TARGET_INFO*) PURE;
+ STDMETHOD(GetFolderTargetInfo)(THIS_ PERSIST_FOLDER_TARGET_INFO*) PURE;
+};
+typedef IPersistFolder3 *LPPERSISTFOLDER3;
+
+#ifdef COBJMACROS
+#define IPersistFolder3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IPersistFolder3_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IPersistFolder3_Release(T) (T)->lpVtbl->Release(T)
+#define IPersistFolder3_GetClassID(T,a) (T)->lpVtbl->GetClassID(T,a)
+#define IPersistFolder3_Initialize(T,a) (T)->lpVtbl->Initialize(T,a)
+#define IPersistFolder3_GetCurFolder(T,a) (T)->lpVtbl->GetCurFolder(T,a)
+#define IPersistFolder3_InitializeEx(T,a,b,c) (T)->lpVtbl->InitializeEx(T,a,b,c)
+#define IPersistFolder3_GetFolderTargetInfo(T,a) (T)->lpVtbl->GetFolderTargetInfo(T,a)
+#endif
+
+#endif /* _WIN32_WINNT >= 0x0500 */
+
typedef interface IShellBrowser *LPSHELLBROWSER;
typedef interface IShellView *LPSHELLVIEW;
@@ -764,7 +988,6 @@
#define INTERFACE IShellView
DECLARE_INTERFACE_(IShellView,IOleWindow)
{
-
STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
@@ -787,6 +1010,29 @@
STDMETHOD(GetItemObject)(THIS_ UINT,REFIID,PVOID*) PURE;
};
+#ifdef COBJMACROS
+#define IShellView_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define IShellView_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IShellView_Release(T) (T)->lpVtbl->Release(T)
+#define IShellView_GetWindow(T,a) (T)->lpVtbl->GetWindow(T,a)
+#define IShellView_ContextSensitiveHelp(T,a) (T)->lpVtbl->ContextSensitiveHelp(T,a)
+#define IShellView_TranslateAccelerator(T,a) (T)->lpVtbl->TranslateAccelerator(T,a)
+#ifdef _FIX_ENABLEMODELESS_CONFLICT
+#define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModelessSV(T,a)
+#else
+#define IShellView_EnableModeless(T,a) (T)->lpVtbl->EnableModeless(T,a)
+#endif
+#define IShellView_UIActivate(T,a) (T)->lpVtbl->UIActivate(T,a)
+#define IShellView_Refresh(T) (T)->lpVtbl->Refresh(T)
+#define IShellView_CreateViewWindow(T,a,b,c,d,e) (T)->lpVtbl->CreateViewWindow(T,a,b,c,d,e)
+#define IShellView_DestroyViewWindow(T) (T)->lpVtbl->DestroyViewWindow(T)
+#define IShellView_GetCurrentInfo(T,a) (T)->lpVtbl->GetCurrentInfo(T,a)
+#define IShellView_AddPropertySheetPages(T,a,b,c) (T)->lpVtbl->AddPropertySheetPages(T,a,b,c)
+#define IShellView_SaveViewState(T) (T)->lpVtbl->SaveViewState(T)
+#define IShellView_SelectItem(T,a,b) (T)->lpVtbl->SelectItem(T,a,b)
+#define IShellView_GetItemObject(T,a,b,c) (T)->lpVtbl->GetItemObject(T,a,b,c)
+#endif
+
#undef INTERFACE
#define INTERFACE ICommDlgBrowser
DECLARE_INTERFACE_(ICommDlgBrowser,IUnknown)
@@ -800,6 +1046,15 @@
};
typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
+#ifdef COBJMACROS
+#define ICommDlgBrowser_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,a,b)
+#define ICommDlgBrowser_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define ICommDlgBrowser_Release(T) (T)->lpVtbl->Release(T)
+#define ICommDlgBrowser_OnDefaultCommand(T,a) (T)->lpVtbl->OnDefaultCommand(T,a)
+#define ICommDlgBrowser_OnStateChange(T,a,b) (T)->lpVtbl->OnStateChange(T,a,b)
+#define ICommDlgBrowser_IncludeObject(T,a,b) (T)->lpVtbl->IncludeObject(T,a,b)
+#endif
+
typedef GUID SHELLVIEWID;
typedef struct _SV2CVW2_PARAMS {
DWORD cbSize;
@@ -994,6 +1249,11 @@
#if (_WIN32_WINDOWS >= 0x0490) || (_WIN32_WINNT >= 0x0500) /* ME or W2K */
HRESULT WINAPI SHGetFolderLocation(HWND,int,HANDLE,DWORD,LPITEMIDLIST*);
#endif
+#if (_WIN32_WINNT >= 0x0500)
+INT WINAPI SHCreateDirectoryExA(HWND,LPCSTR,LPSECURITY_ATTRIBUTES);
+INT WINAPI SHCreateDirectoryExW(HWND,LPCWSTR,LPSECURITY_ATTRIBUTES);
+HRESULT WINAPI SHBindToParent(LPCITEMIDLIST,REFIID,VOID**,LPCITEMIDLIST*);
+#endif
#if (_WIN32_WINNT >= 0x0501) /* XP */
HRESULT WINAPI SHGetFolderPathAndSubDirA(HWND,int,HANDLE,DWORD,LPCSTR,LPSTR);
HRESULT WINAPI SHGetFolderPathAndSubDirW(HWND,int,HANDLE,DWORD,LPCWSTR,LPWSTR);
@@ -1031,6 +1291,9 @@
#define SHGetSpecialFolderPath SHGetSpecialFolderPathW
#endif
#define SHGetFolderPath SHGetFolderPathW
+#if (_WIN32_WINNT >= 0x0500)
+#define SHCreateDirectoryEx SHCreateDirectoryExW
+#endif
#if (_WIN32_WINNT >= 0x0501)
#define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirW
#endif
@@ -1046,6 +1309,9 @@
#define SHGetSpecialFolderPath SHGetSpecialFolderPathA
#endif
#define SHGetFolderPath SHGetFolderPathA
+#if (_WIN32_WINNT >= 0x0500)
+#define SHCreateDirectoryEx SHCreateDirectoryExA
+#endif
#if (_WIN32_WINNT >= 0x0501)
#define SHGetFolderPathAndSubDir SHGetFolderPathAndSubDirA
#endif
--- lib/shell32.c Mon Dec 8 22:41:44 2003
+++ lib/shell32.c Thu Jan 1 15:11:16 2004
@@ -36,6 +36,10 @@
DEFINE_SHLGUID(IID_IShellExecuteHookW,0x000214FBL,0,0);
DEFINE_SHLGUID(IID_IShellCopyHookW,0x000214FCL,0,0);
DEFINE_GUID(IID_IShellView2,0x88E39E80L,0x3578,0x11CF,0xAE,0x69,0x08,0x00,0x2B,0x2E,0x12,0x62);
+DEFINE_GUID(IID_IShellFolder2,0x93F2F68C,0x1D1B,0x11D3,0xA3,0x0E,0x00,0xC0,0x4F,0x79,0xAB,0xD1);
+DEFINE_GUID(IID_IPersistFolder2,0x1AC3D9F0,0x175C,0x11D1,0x95,0xBE,0x00,0x60,0x97,0x97,0xEA,0x4F);
+DEFINE_GUID(IID_IPersistFolder3,0xCEF04FDF,0xFE72,0x11D2,0x87,0xA5,0x00,0xC0,0x4F,0x68,0x37,0xCF);
+DEFINE_GUID(IID_IFileSystemBindData,0x1E18D10,0x4D8B,0x11D2,0x85,0x5D,0x00,0x60,0x08,0x05,0x93,0x67);
DEFINE_GUID(LIBID_SHDocVw,0xEAB22AC0,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B);
DEFINE_GUID(IID_IShellExplorer,0xEAB22AC1,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B);
DEFINE_GUID(DIID_DShellExplorerEvents,0xEAB22AC2,0x30C1,0x11CF,0xA7,0xEB,0x00,0x00,0xC0,0x5B,0xAE,0x0B);