From 7d4dfae2b8014371a06661452eb40a6e3689a343 Mon Sep 17 00:00:00 2001 From: Michael Stefaniuc Date: Mon, 23 May 2011 00:59:00 +0200 Subject: [PATCH] shell32: COM cleanup for the IShellView2 iface. --- dlls/shell32/shlview.c | 120 +++++++++++++++++++++-------------------- 1 file changed, 61 insertions(+), 59 deletions(-) diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index a6cea0f6db9..ab71f4c5d6c 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c @@ -79,7 +79,7 @@ typedef struct typedef struct { - const IShellView2Vtbl* lpVtbl; + IShellView2 IShellView2_iface; LONG ref; const IOleCommandTargetVtbl* lpvtblOleCommandTarget; const IDropTargetVtbl* lpvtblDropTarget; @@ -120,6 +120,11 @@ static const IViewObjectVtbl vovt; static const IFolderViewVtbl fviewvt; static const IShellFolderViewVtbl shellfolderviewvt; +static inline IShellViewImpl *impl_from_IShellView2(IShellView2 *iface) +{ + return CONTAINING_RECORD(iface, IShellViewImpl, IShellView2_iface); +} + static inline IShellViewImpl *impl_from_IOleCommandTarget( IOleCommandTarget *iface ) { return (IShellViewImpl *)((char*)iface - FIELD_OFFSET(IShellViewImpl, lpvtblOleCommandTarget)); @@ -201,7 +206,7 @@ IShellView * IShellView_Constructor( IShellFolder * pFolder) { IShellViewImpl * sv; sv=HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IShellViewImpl)); sv->ref=1; - sv->lpVtbl=&svvt; + sv->IShellView2_iface.lpVtbl = &svvt; sv->lpvtblOleCommandTarget=&ctvt; sv->lpvtblDropTarget=&dtvt; sv->lpvtblDropSource=&dsvt; @@ -698,7 +703,7 @@ static HRESULT ShellView_FillList(IShellViewImpl *This) */ static LRESULT ShellView_OnCreate(IShellViewImpl *This) { - IShellView2 *iface = (IShellView2*)This; + IShellView2 *iface = &This->IShellView2_iface; static const WCHAR accel_nameW[] = {'s','h','v','_','a','c','c','e','l',0}; IPersistFolder2 *ppf2; IDropTarget* pdt; @@ -1719,9 +1724,9 @@ static LRESULT CALLBACK ShellView_WndProc(HWND hWnd, UINT uMessage, WPARAM wPara ********************************************************** * IShellView_QueryInterface */ -static HRESULT WINAPI IShellView_fnQueryInterface(IShellView2 * iface,REFIID riid, LPVOID *ppvObj) +static HRESULT WINAPI IShellView_fnQueryInterface(IShellView2 *iface, REFIID riid, void **ppvObj) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); @@ -1777,9 +1782,9 @@ static HRESULT WINAPI IShellView_fnQueryInterface(IShellView2 * iface,REFIID rii /********************************************************** * IShellView_AddRef */ -static ULONG WINAPI IShellView_fnAddRef(IShellView2 * iface) +static ULONG WINAPI IShellView_fnAddRef(IShellView2 *iface) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); ULONG refCount = InterlockedIncrement(&This->ref); TRACE("(%p)->(count=%u)\n", This, refCount - 1); @@ -1789,9 +1794,9 @@ static ULONG WINAPI IShellView_fnAddRef(IShellView2 * iface) /********************************************************** * IShellView_Release */ -static ULONG WINAPI IShellView_fnRelease(IShellView2 * iface) +static ULONG WINAPI IShellView_fnRelease(IShellView2 *iface) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); ULONG refCount = InterlockedDecrement(&This->ref); TRACE("(%p)->(count=%i)\n", This, refCount + 1); @@ -1821,9 +1826,9 @@ static ULONG WINAPI IShellView_fnRelease(IShellView2 * iface) /********************************************************** * ShellView_GetWindow */ -static HRESULT WINAPI IShellView_fnGetWindow(IShellView2 * iface,HWND * phWnd) +static HRESULT WINAPI IShellView_fnGetWindow(IShellView2 *iface, HWND *phWnd) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); TRACE("(%p)\n",This); @@ -1834,7 +1839,7 @@ static HRESULT WINAPI IShellView_fnGetWindow(IShellView2 * iface,HWND * phWnd) static HRESULT WINAPI IShellView_fnContextSensitiveHelp(IShellView2 *iface, BOOL mode) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); TRACE("(%p)->(%d)\n", This, mode); return E_NOTIMPL; } @@ -1860,18 +1865,18 @@ static HRESULT WINAPI IShellView_fnTranslateAccelerator(IShellView2 * iface,LPMS return S_FALSE; /* not handled */ } -static HRESULT WINAPI IShellView_fnEnableModeless(IShellView2 * iface,BOOL fEnable) +static HRESULT WINAPI IShellView_fnEnableModeless(IShellView2 *iface, BOOL fEnable) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); FIXME("(%p) stub\n",This); return E_NOTIMPL; } -static HRESULT WINAPI IShellView_fnUIActivate(IShellView2 * iface,UINT uState) +static HRESULT WINAPI IShellView_fnUIActivate(IShellView2 *iface, UINT uState) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); /* CHAR szName[MAX_PATH]; @@ -1912,9 +1917,9 @@ static HRESULT WINAPI IShellView_fnUIActivate(IShellView2 * iface,UINT uState) return S_OK; } -static HRESULT WINAPI IShellView_fnRefresh(IShellView2 * iface) +static HRESULT WINAPI IShellView_fnRefresh(IShellView2 *iface) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); TRACE("(%p)\n", This); @@ -1945,9 +1950,9 @@ static HRESULT WINAPI IShellView_fnCreateViewWindow(IShellView2 *iface, IShellVi return hr; } -static HRESULT WINAPI IShellView_fnDestroyViewWindow(IShellView2 * iface) +static HRESULT WINAPI IShellView_fnDestroyViewWindow(IShellView2 *iface) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); TRACE("(%p)\n",This); @@ -1967,9 +1972,9 @@ static HRESULT WINAPI IShellView_fnDestroyViewWindow(IShellView2 * iface) return S_OK; } -static HRESULT WINAPI IShellView_fnGetCurrentInfo(IShellView2 * iface, LPFOLDERSETTINGS lpfs) +static HRESULT WINAPI IShellView_fnGetCurrentInfo(IShellView2 *iface, LPFOLDERSETTINGS lpfs) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); TRACE("(%p)->(%p) vmode=%x flags=%x\n",This, lpfs, This->FolderSettings.ViewMode, This->FolderSettings.fFlags); @@ -1980,30 +1985,28 @@ static HRESULT WINAPI IShellView_fnGetCurrentInfo(IShellView2 * iface, LPFOLDERS return NOERROR; } -static HRESULT WINAPI IShellView_fnAddPropertySheetPages(IShellView2 * iface, DWORD dwReserved,LPFNADDPROPSHEETPAGE lpfn, LPARAM lparam) +static HRESULT WINAPI IShellView_fnAddPropertySheetPages(IShellView2 *iface, DWORD dwReserved, + LPFNADDPROPSHEETPAGE lpfn, LPARAM lparam) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); FIXME("(%p) stub\n",This); return E_NOTIMPL; } -static HRESULT WINAPI IShellView_fnSaveViewState(IShellView2 * iface) +static HRESULT WINAPI IShellView_fnSaveViewState(IShellView2 *iface) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); FIXME("(%p) stub\n",This); return S_OK; } -static HRESULT WINAPI IShellView_fnSelectItem( - IShellView2 * iface, - LPCITEMIDLIST pidl, - UINT flags) +static HRESULT WINAPI IShellView_fnSelectItem(IShellView2 *iface, LPCITEMIDLIST pidl, UINT flags) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); IFolderView *view = (IFolderView*)&This->lpvtblFolderView; int i; @@ -2015,9 +2018,10 @@ static HRESULT WINAPI IShellView_fnSelectItem( return IFolderView_SelectItem(view, i, flags); } -static HRESULT WINAPI IShellView_fnGetItemObject(IShellView2 * iface, UINT uItem, REFIID riid, LPVOID *ppvOut) +static HRESULT WINAPI IShellView_fnGetItemObject(IShellView2 *iface, UINT uItem, REFIID riid, + void **ppvOut) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); HRESULT hr = E_NOINTERFACE; TRACE("(%p)->(0x%08x, %s, %p)\n",This, uItem, debugstr_guid(riid), ppvOut); @@ -2057,9 +2061,10 @@ static HRESULT WINAPI IShellView2_fnGetView(IShellView2* iface, SHELLVIEWID *vie return E_NOTIMPL; } -static HRESULT WINAPI IShellView2_fnCreateViewWindow2(IShellView2* iface, LPSV2CVW2_PARAMS view_params) +static HRESULT WINAPI IShellView2_fnCreateViewWindow2(IShellView2 *iface, + LPSV2CVW2_PARAMS view_params) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); WNDCLASSW wc; HRESULT hr; HWND wnd; @@ -2159,13 +2164,10 @@ static HRESULT WINAPI IShellView2_fnHandleRename(IShellView2* iface, LPCITEMIDLI return E_NOTIMPL; } -static HRESULT WINAPI IShellView2_fnSelectAndPositionItem( - IShellView2* iface, - LPCITEMIDLIST item, - UINT flags, - POINT *point) +static HRESULT WINAPI IShellView2_fnSelectAndPositionItem(IShellView2 *iface, LPCITEMIDLIST item, + UINT flags, POINT *point) { - IShellViewImpl *This = (IShellViewImpl *)iface; + IShellViewImpl *This = impl_from_IShellView2(iface); IFolderView *view; HRESULT hr; @@ -2216,7 +2218,7 @@ static HRESULT WINAPI ISVOleCmdTarget_QueryInterface( { IShellViewImpl *This = impl_from_IOleCommandTarget(iface); - return IShellView2_QueryInterface((IShellView2*)This, iid, ppvObj); + return IShellView2_QueryInterface(&This->IShellView2_iface, iid, ppvObj); } /********************************************************** @@ -2227,7 +2229,7 @@ static ULONG WINAPI ISVOleCmdTarget_AddRef( { IShellViewImpl *This = impl_from_IOleCommandTarget(iface); - return IShellView2_AddRef((IShellView2*)This); + return IShellView2_AddRef(&This->IShellView2_iface); } /********************************************************** @@ -2238,7 +2240,7 @@ static ULONG WINAPI ISVOleCmdTarget_Release( { IShellViewImpl *This = impl_from_IOleCommandTarget(iface); - return IShellView2_Release((IShellView2*)This); + return IShellView2_Release(&This->IShellView2_iface); } /********************************************************** @@ -2321,7 +2323,7 @@ static HRESULT WINAPI ISVDropTarget_QueryInterface( TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - return IShellView2_QueryInterface((IShellView2*)This, riid, ppvObj); + return IShellView2_QueryInterface(&This->IShellView2_iface, riid, ppvObj); } static ULONG WINAPI ISVDropTarget_AddRef( IDropTarget *iface) @@ -2330,7 +2332,7 @@ static ULONG WINAPI ISVDropTarget_AddRef( IDropTarget *iface) TRACE("(%p)->(count=%u)\n",This,This->ref); - return IShellView2_AddRef((IShellView2*)This); + return IShellView2_AddRef(&This->IShellView2_iface); } static ULONG WINAPI ISVDropTarget_Release( IDropTarget *iface) @@ -2339,7 +2341,7 @@ static ULONG WINAPI ISVDropTarget_Release( IDropTarget *iface) TRACE("(%p)->(count=%u)\n",This,This->ref); - return IShellView2_Release((IShellView2*)This); + return IShellView2_Release(&This->IShellView2_iface); } /****************************************************************************** @@ -2509,7 +2511,7 @@ static HRESULT WINAPI ISVDropSource_QueryInterface( TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - return IShellView2_QueryInterface((IShellView2*)This, riid, ppvObj); + return IShellView2_QueryInterface(&This->IShellView2_iface, riid, ppvObj); } static ULONG WINAPI ISVDropSource_AddRef( IDropSource *iface) @@ -2518,7 +2520,7 @@ static ULONG WINAPI ISVDropSource_AddRef( IDropSource *iface) TRACE("(%p)->(count=%u)\n",This,This->ref); - return IShellView2_AddRef((IShellView2*)This); + return IShellView2_AddRef(&This->IShellView2_iface); } static ULONG WINAPI ISVDropSource_Release( IDropSource *iface) @@ -2527,7 +2529,7 @@ static ULONG WINAPI ISVDropSource_Release( IDropSource *iface) TRACE("(%p)->(count=%u)\n",This,This->ref); - return IShellView2_Release((IShellView2*)This); + return IShellView2_Release(&This->IShellView2_iface); } static HRESULT WINAPI ISVDropSource_QueryContinueDrag( @@ -2577,7 +2579,7 @@ static HRESULT WINAPI ISVViewObject_QueryInterface( TRACE("(%p)->(\n\tIID:\t%s,%p)\n",This,debugstr_guid(riid),ppvObj); - return IShellView2_QueryInterface((IShellView2*)This, riid, ppvObj); + return IShellView2_QueryInterface(&This->IShellView2_iface, riid, ppvObj); } static ULONG WINAPI ISVViewObject_AddRef( IViewObject *iface) @@ -2586,7 +2588,7 @@ static ULONG WINAPI ISVViewObject_AddRef( IViewObject *iface) TRACE("(%p)->(count=%u)\n",This,This->ref); - return IShellView2_AddRef((IShellView2*)This); + return IShellView2_AddRef(&This->IShellView2_iface); } static ULONG WINAPI ISVViewObject_Release( IViewObject *iface) @@ -2595,7 +2597,7 @@ static ULONG WINAPI ISVViewObject_Release( IViewObject *iface) TRACE("(%p)->(count=%u)\n",This,This->ref); - return IShellView2_Release((IShellView2*)This); + return IShellView2_Release(&This->IShellView2_iface); } static HRESULT WINAPI ISVViewObject_Draw( @@ -2726,21 +2728,21 @@ static HRESULT WINAPI IFView_QueryInterface( { IShellViewImpl *This = impl_from_IFolderView(iface); TRACE("(%p)->(IID:%s,%p)\n", This, debugstr_guid(riid), ppvObj); - return IShellView2_QueryInterface((IShellView2*)This, riid, ppvObj); + return IShellView2_QueryInterface(&This->IShellView2_iface, riid, ppvObj); } static ULONG WINAPI IFView_AddRef( IFolderView *iface) { IShellViewImpl *This = impl_from_IFolderView(iface); TRACE("(%p)->(count=%u)\n", This, This->ref); - return IShellView2_AddRef((IShellView2*)This); + return IShellView2_AddRef(&This->IShellView2_iface); } static ULONG WINAPI IFView_Release( IFolderView *iface) { IShellViewImpl *This = impl_from_IFolderView(iface); TRACE("(%p)->(count=%u)\n", This, This->ref); - return IShellView2_Release((IShellView2*)This); + return IShellView2_Release(&This->IShellView2_iface); } static HRESULT WINAPI IFView_GetCurrentViewMode(IFolderView *iface, UINT *mode) @@ -2971,21 +2973,21 @@ static HRESULT WINAPI IShellFolderView_fnQueryInterface( { IShellViewImpl *This = impl_from_IShellFolderView(iface); TRACE("(%p)->(IID:%s,%p)\n", This, debugstr_guid(riid), ppvObj); - return IShellView2_QueryInterface((IShellView2*)This, riid, ppvObj); + return IShellView2_QueryInterface(&This->IShellView2_iface, 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); + return IShellView2_AddRef(&This->IShellView2_iface); } 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); + return IShellView2_Release(&This->IShellView2_iface); } static HRESULT WINAPI IShellFolderView_fnRearrange(IShellFolderView *iface, LPARAM sort)