[PATCH] Add a stub IShellFolderView for IShellView
Nikolay Sivov
nsivov at codeweavers.com
Sun Mar 21 16:45:21 CDT 2010
---
dlls/shell32/shlview.c | 327 ++++++++++++++++++++++++++++++++++++++++++
dlls/shell32/tests/shlview.c | 29 ++++
include/shlobj.h | 93 ++++++++++++
include/shtypes.idl | 1 +
4 files changed, 450 insertions(+), 0 deletions(-)
diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c
index 633d767..d4247eb 100644
--- a/dlls/shell32/shlview.c
+++ b/dlls/shell32/shlview.c
@@ -86,6 +86,7 @@ typedef struct
const IDropSourceVtbl* lpvtblDropSource;
const IViewObjectVtbl* lpvtblViewObject;
const IFolderViewVtbl* lpvtblFolderView;
+ const IShellFolderViewVtbl *lpvtblShellFolderView;
IShellFolder* pSFParent;
IShellFolder2* pSF2Parent;
IShellBrowser* pShellBrowser;
@@ -117,6 +118,7 @@ static const IDropTargetVtbl dtvt;
static const IDropSourceVtbl dsvt;
static const IViewObjectVtbl vovt;
static const IFolderViewVtbl fviewvt;
+static const IShellFolderViewVtbl shellfolderviewvt;
static inline IShellViewImpl *impl_from_IOleCommandTarget( IOleCommandTarget *iface )
{
@@ -143,6 +145,11 @@ static inline IShellViewImpl *impl_from_IFolderView( IFolderView *iface )
return (IShellViewImpl *)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblFolderView));
}
+static inline IShellViewImpl *impl_from_IShellFolderView( IShellFolderView *iface )
+{
+ return (IShellViewImpl *)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblShellFolderView));
+}
+
/* ListView Header ID's */
#define LISTVIEW_COLUMN_NAME 0
#define LISTVIEW_COLUMN_SIZE 1
@@ -200,6 +207,7 @@ IShellView * IShellView_Constructor( IShellFolder * pFolder)
sv->lpvtblDropSource=&dsvt;
sv->lpvtblViewObject=&vovt;
sv->lpvtblFolderView=&fviewvt;
+ sv->lpvtblShellFolderView=&shellfolderviewvt;
sv->pSFParent = pFolder;
if(pFolder) IShellFolder_AddRef(pFolder);
@@ -1705,6 +1713,10 @@ static HRESULT WINAPI IShellView_fnQueryInterface(IShellView2 * iface,REFIID rii
{
*ppvObj = This;
}
+ else if(IsEqualIID(riid, &IID_IShellFolderView))
+ {
+ *ppvObj = &This->lpvtblShellFolderView;
+ }
else if(IsEqualIID(riid, &IID_IFolderView))
{
*ppvObj = &This->lpvtblFolderView;
@@ -2895,3 +2907,318 @@ static const IFolderViewVtbl fviewvt =
IFView_SelectItem,
IFView_SelectAndPositionItems
};
+
+/* IShellFolderView */
+static HRESULT WINAPI IShellFolderView_fnQueryInterface(
+ IShellFolderView *iface,
+ REFIID riid,
+ LPVOID *ppvObj)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ TRACE("(%p)->(IID:%s,%p)\n", This, debugstr_guid(riid), ppvObj);
+ return IShellView2_QueryInterface((IShellView2*)This, riid, ppvObj);
+}
+
+static ULONG WINAPI IShellFolderView_fnAddRef(IShellFolderView *iface)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ TRACE("(%p)->(count=%u)\n", This, This->ref);
+ return IShellView2_AddRef((IShellView2*)This);
+}
+
+static ULONG WINAPI IShellFolderView_fnRelease(IShellFolderView *iface)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ TRACE("(%p)->(count=%u)\n", This, This->ref);
+ return IShellView2_Release((IShellView2*)This);
+}
+
+static HRESULT WINAPI IShellFolderView_fnRearrange(IShellFolderView *iface, LPARAM sort)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%ld) stub\n", This, sort);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnGetArrangeParam(IShellFolderView *iface, LPARAM *sort)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, sort);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnArrangeGrid(IShellFolderView *iface)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p) stub\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnAutoArrange(IShellFolderView *iface)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p) stub\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnGetAutoArrange(IShellFolderView *iface)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p) stub\n", This);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnAddObject(
+ IShellFolderView *iface,
+ PITEMID_CHILD pidl,
+ UINT *item)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p %p) stub\n", This, pidl, item);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnGetObject(
+ IShellFolderView *iface,
+ PITEMID_CHILD *pidl,
+ UINT item)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p %d) stub\n", This, pidl, item);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnRemoveObject(
+ IShellFolderView *iface,
+ PITEMID_CHILD pidl,
+ UINT *item)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p %p) stub\n", This, pidl, item);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnGetObjectCount(
+ IShellFolderView *iface,
+ UINT *count)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, count);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnSetObjectCount(
+ IShellFolderView *iface,
+ UINT count,
+ UINT flags)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%d %x) stub\n", This, count, flags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnUpdateObject(
+ IShellFolderView *iface,
+ PITEMID_CHILD pidl_old,
+ PITEMID_CHILD pidl_new,
+ UINT *item)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p %p %p) stub\n", This, pidl_old, pidl_new, item);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnRefreshObject(
+ IShellFolderView *iface,
+ PITEMID_CHILD pidl,
+ UINT *item)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p %p) stub\n", This, pidl, item);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnSetRedraw(
+ IShellFolderView *iface,
+ BOOL redraw)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%d) stub\n", This, redraw);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnGetSelectedCount(
+ IShellFolderView *iface,
+ UINT *count)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, count);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnGetSelectedObjects(
+ IShellFolderView *iface,
+ PCITEMID_CHILD **pidl,
+ UINT *items)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p %p) stub\n", This, pidl, items);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnIsDropOnSource(
+ IShellFolderView *iface,
+ IDropTarget *drop_target)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, drop_target);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnGetDragPoint(
+ IShellFolderView *iface,
+ POINT *pt)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, pt);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnGetDropPoint(
+ IShellFolderView *iface,
+ POINT *pt)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, pt);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnMoveIcons(
+ IShellFolderView *iface,
+ IDataObject *obj)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, obj);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnSetItemPos(
+ IShellFolderView *iface,
+ PCUITEMID_CHILD pidl,
+ POINT *pt)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p %p) stub\n", This, pidl, pt);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnIsBkDropTarget(
+ IShellFolderView *iface,
+ IDropTarget *drop_target)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, drop_target);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnSetClipboard(
+ IShellFolderView *iface,
+ BOOL move)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%d) stub\n", This, move);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnSetPoints(
+ IShellFolderView *iface,
+ IDataObject *obj)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, obj);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnGetItemSpacing(
+ IShellFolderView *iface,
+ ITEMSPACING *spacing)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, spacing);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnSetCallback(
+ IShellFolderView *iface,
+ IShellFolderViewCB *new_cb,
+ IShellFolderViewCB **old_cb)
+
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p %p) stub\n", This, new_cb, old_cb);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnSelect(
+ IShellFolderView *iface,
+ UINT flags)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%d) stub\n", This, flags);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnQuerySupport(
+ IShellFolderView *iface,
+ UINT *support)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, support);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI IShellFolderView_fnSetAutomationObject(
+ IShellFolderView *iface,
+ IDispatch *disp)
+{
+ IShellViewImpl *This = impl_from_IShellFolderView(iface);
+ FIXME("(%p)->(%p) stub\n", This, disp);
+ return E_NOTIMPL;
+}
+
+static const IShellFolderViewVtbl shellfolderviewvt =
+{
+ IShellFolderView_fnQueryInterface,
+ IShellFolderView_fnAddRef,
+ IShellFolderView_fnRelease,
+ IShellFolderView_fnRearrange,
+ IShellFolderView_fnGetArrangeParam,
+ IShellFolderView_fnArrangeGrid,
+ IShellFolderView_fnAutoArrange,
+ IShellFolderView_fnGetAutoArrange,
+ IShellFolderView_fnAddObject,
+ IShellFolderView_fnGetObject,
+ IShellFolderView_fnRemoveObject,
+ IShellFolderView_fnGetObjectCount,
+ IShellFolderView_fnSetObjectCount,
+ IShellFolderView_fnUpdateObject,
+ IShellFolderView_fnRefreshObject,
+ IShellFolderView_fnSetRedraw,
+ IShellFolderView_fnGetSelectedCount,
+ IShellFolderView_fnGetSelectedObjects,
+ IShellFolderView_fnIsDropOnSource,
+ IShellFolderView_fnGetDragPoint,
+ IShellFolderView_fnGetDropPoint,
+ IShellFolderView_fnMoveIcons,
+ IShellFolderView_fnSetItemPos,
+ IShellFolderView_fnIsBkDropTarget,
+ IShellFolderView_fnSetClipboard,
+ IShellFolderView_fnSetPoints,
+ IShellFolderView_fnGetItemSpacing,
+ IShellFolderView_fnSetCallback,
+ IShellFolderView_fnSelect,
+ IShellFolderView_fnQuerySupport,
+ IShellFolderView_fnSetAutomationObject
+};
+
+
diff --git a/dlls/shell32/tests/shlview.c b/dlls/shell32/tests/shlview.c
index e941ff4..50853d4 100644
--- a/dlls/shell32/tests/shlview.c
+++ b/dlls/shell32/tests/shlview.c
@@ -542,6 +542,34 @@ static void test_GetItemObject(void)
IShellFolder_Release(desktop);
}
+static void test_IShellFolderView(void)
+{
+ IShellFolderView *folderview;
+ IShellFolder *desktop;
+ IShellView *view;
+ HRESULT hr;
+
+ hr = SHGetDesktopFolder(&desktop);
+ ok(hr == S_OK, "got (0x%08x)\n", hr);
+
+ hr = IShellFolder_CreateViewObject(desktop, NULL, &IID_IShellView, (void**)&view);
+ ok(hr == S_OK, "got (0x%08x)\n", hr);
+
+ hr = IShellView_QueryInterface(view, &IID_IShellFolderView, (void**)&folderview);
+ if (hr != S_OK)
+ {
+ win_skip("IShellView doesn't provide IShellFolderView on this platform\n");
+ IShellView_Release(view);
+ IShellFolder_Release(desktop);
+ return;
+ }
+
+ IShellFolderView_Release(folderview);
+
+ IShellView_Release(view);
+ IShellFolder_Release(desktop);
+}
+
START_TEST(shlview)
{
OleInitialize(NULL);
@@ -551,6 +579,7 @@ START_TEST(shlview)
test_IShellView_CreateViewWindow();
test_IFolderView();
test_GetItemObject();
+ test_IShellFolderView();
OleUninitialize();
}
diff --git a/include/shlobj.h b/include/shlobj.h
index 171cf3b..9f87a0a 100644
--- a/include/shlobj.h
+++ b/include/shlobj.h
@@ -24,6 +24,10 @@
#include <prsht.h>
#include <shlguid.h>
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetObject
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif /* defined(__cplusplus) */
@@ -539,6 +543,95 @@ DECLARE_INTERFACE_(IShellFolderViewCB,IUnknown)
#define IShellFolderViewCB_MessageSFVCB(p,a,b,c) (p)->lpVtbl->MessageSFVCB(p,a,b,c)
#endif
+/****************************************************************************
+ * IShellFolderView interface
+ */
+
+typedef struct _ITEMSPACING
+{
+ int cxSmall;
+ int cySmall;
+ int cxLarge;
+ int cyLarge;
+} ITEMSPACING;
+
+#define INTERFACE IShellFolderView
+DEFINE_GUID(IID_IShellFolderView,0x37a378c0,0xf82d,0x11ce,0xae,0x65,0x08,0x00,0x2b,0x2e,0x12,0x62);
+DECLARE_INTERFACE_(IShellFolderView, IUnknown)
+{
+ /*** IUnknown methods ***/
+ STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void **ppv) PURE;
+ STDMETHOD_(ULONG,AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG,Release) (THIS) PURE;
+
+ /*** IShellFolderView methods ***/
+ STDMETHOD(Rearrange) (THIS_ LPARAM lParamSort) PURE;
+ STDMETHOD(GetArrangeParam) (THIS_ LPARAM *plParamSort) PURE;
+ STDMETHOD(ArrangeGrid) (THIS) PURE;
+ STDMETHOD(AutoArrange) (THIS) PURE;
+ STDMETHOD(GetAutoArrange) (THIS) PURE;
+ STDMETHOD(AddObject) (THIS_ PITEMID_CHILD pidl, UINT *puItem) PURE;
+ STDMETHOD(GetObject) (THIS_ PITEMID_CHILD *ppidl, UINT uItem) PURE;
+ STDMETHOD(RemoveObject) (THIS_ PITEMID_CHILD pidl, UINT *puItem) PURE;
+ STDMETHOD(GetObjectCount) (THIS_ UINT *puCount) PURE;
+ STDMETHOD(SetObjectCount) (THIS_ UINT uCount, UINT dwFlags) PURE;
+ STDMETHOD(UpdateObject) (THIS_ PITEMID_CHILD pidlOld, PITEMID_CHILD pidlNew, UINT *puItem) PURE;
+ STDMETHOD(RefreshObject) (THIS_ PITEMID_CHILD pidl, UINT *puItem) PURE;
+ STDMETHOD(SetRedraw) (THIS_ BOOL bRedraw) PURE;
+ STDMETHOD(GetSelectedCount) (THIS_ UINT *puSelected) PURE;
+ STDMETHOD(GetSelectedObjects) (THIS_ PCITEMID_CHILD **pppidl, UINT *puItems) PURE;
+ STDMETHOD(IsDropOnSource) (THIS_ IDropTarget *pDropTarget) PURE;
+ STDMETHOD(GetDragPoint) (THIS_ POINT *ppt) PURE;
+ STDMETHOD(GetDropPoint) (THIS_ POINT *ppt) PURE;
+ STDMETHOD(MoveIcons) (THIS_ IDataObject *pDataObject) PURE;
+ STDMETHOD(SetItemPos) (THIS_ PCUITEMID_CHILD pidl, POINT *ppt) PURE;
+ STDMETHOD(IsBkDropTarget) (THIS_ IDropTarget *pDropTarget) PURE;
+ STDMETHOD(SetClipboard) (THIS_ BOOL bMove) PURE;
+ STDMETHOD(SetPoints) (THIS_ IDataObject *pDataObject) PURE;
+ STDMETHOD(GetItemSpacing) (THIS_ ITEMSPACING *pSpacing) PURE;
+ STDMETHOD(SetCallback) (THIS_ IShellFolderViewCB* pNewCB, IShellFolderViewCB** ppOldCB) PURE;
+ STDMETHOD(Select) ( THIS_ UINT dwFlags ) PURE;
+ STDMETHOD(QuerySupport) (THIS_ UINT * pdwSupport ) PURE;
+ STDMETHOD(SetAutomationObject)(THIS_ IDispatch* pdisp) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IShellFolderView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IShellFolderView_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IShellFolderView_Release(p) (p)->lpVtbl->Release(p)
+/*** IShellFolderView methods ***/
+#define IShellFolderView_Rearrange(p,a) (p)->lpVtbl->Rearrange(p,a)
+#define IShellFolderView_GetArrangeParam(p,a) (p)->lpVtbl->GetArrangeParam(p,a)
+#define IShellFolderView_ArrangeGrid(p) (p)->lpVtbl->ArrangeGrid(p)
+#define IShellFolderView_AutoArrange(p) (p)->lpVtbl->AutoArrange(p)
+#define IShellFolderView_GetAutoArrange(p) (p)->lpVtbl->GetAutoArrange(p)
+#define IShellFolderView_AddObject(p,a,b) (p)->lpVtbl->AddObject(p,a,b)
+#define IShellFolderView_GetObject(p,a,b) (p)->lpVtbl->GetObject(p,a,b)
+#define IShellFolderView_RemoveObject(p,a,b) (p)->lpVtbl->RemoveObject(p,a,b)
+#define IShellFolderView_GetObjectCount(p,a) (p)->lpVtbl->GetObjectCount(p,a)
+#define IShellFolderView_SetObjectCount(p,a,b) (p)->lpVtbl->SetObjectCount(p,a,b)
+#define IShellFolderView_UpdateObject(p,a,b,c) (p)->lpVtbl->UpdateObject(p,a,b,c)
+#define IShellFolderView_RefreshObject(p,a,b) (p)->lpVtbl->RefreshObject(p,a,b)
+#define IShellFolderView_SetRedraw(p,a) (p)->lpVtbl->SetRedraw(p,a)
+#define IShellFolderView_GetSelectedCount(p,a) (p)->lpVtbl->GetSelectedCount(p,a)
+#define IShellFolderView_GetSelectedObjects(p,a,b) (p)->lpVtbl->GetSelectedObjects(p,a,b)
+#define IShellFolderView_IsDropOnSource(p,a) (p)->lpVtbl->IsDropOnSource(p,a)
+#define IShellFolderView_GetDragPoint(p,a) (p)->lpVtbl->GetDragPoint(p,a)
+#define IShellFolderView_GetDropPoint(p,a) (p)->lpVtbl->GetDropPoint(p,a)
+#define IShellFolderView_MoveIcons(p,a) (p)->lpVtbl->MoveIcons(p,a)
+#define IShellFolderView_SetItemPos(p,a,b) (p)->lpVtbl->SetItemPos(p,a,b)
+#define IShellFolderView_DropTarget(p,a) (p)->lpVtbl->DropTarget(p,a)
+#define IShellFolderView_SetClipboard(p,a) (p)->lpVtbl->SetClipboard(p,a)
+#define IShellFolderView_SetPoints(p,a) (p)->lpVtbl->SetPoints(p,a)
+#define IShellFolderView_GetItemSpacing(p,a) (p)->lpVtbl->GetItemSpacing(p,a)
+#define IShellFolderView_SetCallback(p,a) (p)->lpVtbl->SetCallback(p,a)
+#define IShellFolderView_Select(p,a) (p)->lpVtbl->Select(p,a)
+#define IShellFolderView_QuerySupport(p,a) (p)->lpVtbl->QuerySupport(p,a)
+#define IShellFolderView_SetAutomationObject(p,a) (p)->lpVtbl->SetAutomationObject(p,a)
+#endif
+
/* IProgressDialog interface */
#define PROGDLG_NORMAL 0x00000000
#define PROGDLG_MODAL 0x00000001
diff --git a/include/shtypes.idl b/include/shtypes.idl
index 021d467..dd908e3 100644
--- a/include/shtypes.idl
+++ b/include/shtypes.idl
@@ -35,6 +35,7 @@ typedef struct _ITEMIDLIST
} ITEMIDLIST,*LPITEMIDLIST;
typedef const ITEMIDLIST *LPCITEMIDLIST;
typedef LPITEMIDLIST PITEMID_CHILD;
+typedef const PITEMID_CHILD PCITEMID_CHILD;
typedef LPCITEMIDLIST PCUITEMID_CHILD;
typedef LPCITEMIDLIST *PCUITEMID_CHILD_ARRAY;
cpp_quote("#include <poppack.h>")
--
1.5.6.5
--=-/rwSBKCLdXMK/zS22MPp--
More information about the wine-patches
mailing list