Module: wine Branch: master Commit: 61fc3f9004acd0c0e617fa8a201f7ea16174a221 URL: http://source.winehq.org/git/wine.git/?a=commit;h=61fc3f9004acd0c0e617fa8a20...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Mon Mar 22 01:49:44 2010 +0300
shell32: Implement some IShellFolderView methods over IFolderView.
---
dlls/shell32/shlview.c | 32 +++++++++++++++----------------- dlls/shell32/tests/shlview.c | 4 ++++ 2 files changed, 19 insertions(+), 17 deletions(-)
diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index e3f170e..4852fed 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c @@ -1980,8 +1980,7 @@ static HRESULT WINAPI IShellView_fnSelectItem( UINT flags) { IShellViewImpl *This = (IShellViewImpl *)iface; - IFolderView *view; - HRESULT hr; + IFolderView *view = (IFolderView*)&This->lpvtblFolderView; int i;
TRACE("(%p)->(pidl=%p, 0x%08x)\n",This, pidl, flags); @@ -1989,14 +1988,7 @@ static HRESULT WINAPI IShellView_fnSelectItem( i = LV_FindItemByPidl(This, pidl); if (i == -1) return S_OK;
- hr = IShellView2_QueryInterface(iface, &IID_IFolderView, (void**)&view); - if (hr == S_OK) - { - hr = IFolderView_SelectItem(view, i, flags); - IFolderView_Release(view); - } - - return hr; + return IFolderView_SelectItem(view, i, flags); }
static HRESULT WINAPI IShellView_fnGetItemObject(IShellView2 * iface, UINT uItem, REFIID riid, LPVOID *ppvOut) @@ -2964,8 +2956,10 @@ static HRESULT WINAPI IShellFolderView_fnAutoArrange(IShellFolderView *iface) static HRESULT WINAPI IShellFolderView_fnGetAutoArrange(IShellFolderView *iface) { IShellViewImpl *This = impl_from_IShellFolderView(iface); - FIXME("(%p) stub\n", This); - return E_NOTIMPL; + IFolderView *view = (IFolderView*)&This->lpvtblFolderView; + + TRACE("(%p)\n", This); + return IFolderView_GetAutoArrange(view); }
static HRESULT WINAPI IShellFolderView_fnAddObject( @@ -2984,8 +2978,10 @@ static HRESULT WINAPI IShellFolderView_fnGetObject( UINT item) { IShellViewImpl *This = impl_from_IShellFolderView(iface); - FIXME("(%p)->(%p %d) stub\n", This, pidl, item); - return E_NOTIMPL; + IFolderView *view = (IFolderView*)&This->lpvtblFolderView; + + TRACE("(%p)->(%p %d)\n", This, pidl, item); + return IFolderView_Item(view, item, pidl); }
static HRESULT WINAPI IShellFolderView_fnRemoveObject( @@ -3003,8 +2999,10 @@ static HRESULT WINAPI IShellFolderView_fnGetObjectCount( UINT *count) { IShellViewImpl *This = impl_from_IShellFolderView(iface); - FIXME("(%p)->(%p) stub\n", This, count); - return E_NOTIMPL; + IFolderView *view = (IFolderView*)&This->lpvtblFolderView; + + TRACE("(%p)->(%p)\n", This, count); + return IFolderView_ItemCount(view, SVGIO_ALLVIEW, (INT*)count); }
static HRESULT WINAPI IShellFolderView_fnSetObjectCount( @@ -3111,7 +3109,7 @@ static HRESULT WINAPI IShellFolderView_fnMoveIcons( IDataObject *obj) { IShellViewImpl *This = impl_from_IShellFolderView(iface); - FIXME("(%p)->(%p) stub\n", This, obj); + TRACE("(%p)->(%p)\n", This, obj); return E_NOTIMPL; }
diff --git a/dlls/shell32/tests/shlview.c b/dlls/shell32/tests/shlview.c index 50853d4..077c491 100644 --- a/dlls/shell32/tests/shlview.c +++ b/dlls/shell32/tests/shlview.c @@ -564,6 +564,10 @@ static void test_IShellFolderView(void) return; }
+ /* ::MoveIcons */ + hr = IShellFolderView_MoveIcons(folderview, NULL); + ok(hr == E_NOTIMPL, "got (0x%08x)\n", hr); + IShellFolderView_Release(folderview);
IShellView_Release(view);