From: Nikolay Sivov Date: Sun, 21 Mar 2010 22:49:44 +0000 (+0300) Subject: shell32: Implement some IShellFolderView methods over IFolderView. X-Git-Tag: wine-1.1.42~410 X-Git-Url: http://git.etersoft.ru/projects/?a=commitdiff_plain;h=61fc3f9004acd0c0e617fa8a201f7ea16174a221;p=wine%2Feterwine.git shell32: Implement some IShellFolderView methods over IFolderView. --- diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index e3f170e88d..4852fed1c0 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 50853d4be6..077c491b30 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);