From: Nikolay Sivov Date: Mon, 22 Mar 2010 00:04:49 +0000 (+0300) Subject: shell32: Add IShellFolderView::SetRedraw implementation. X-Git-Tag: wine-1.1.42~409 X-Git-Url: http://git.etersoft.ru/projects/?a=commitdiff_plain;h=9958b80e9d900a116bdb357eb50da2eca5bb5a47;p=wine%2Feterwine.git shell32: Add IShellFolderView::SetRedraw implementation. --- diff --git a/dlls/shell32/shlview.c b/dlls/shell32/shlview.c index 4852fed1c0..e60a765a09 100644 --- a/dlls/shell32/shlview.c +++ b/dlls/shell32/shlview.c @@ -644,6 +644,7 @@ static INT CALLBACK fill_list( LPVOID ptr, LPVOID arg ) static HRESULT ShellView_FillList(IShellViewImpl *This) { + IShellFolderView *folderview = (IShellFolderView*)&This->lpvtblShellFolderView; LPENUMIDLIST pEnumIDList; LPITEMIDLIST pidl; DWORD fetched; @@ -676,9 +677,9 @@ static HRESULT ShellView_FillList(IShellViewImpl *This) /* sort the array */ DPA_Sort(hdpa, ShellView_CompareItems, (LPARAM)This->pSFParent); - SendMessageW(This->hWndList, WM_SETREDRAW, FALSE, 0); + IShellFolderView_SetRedraw(folderview, FALSE); DPA_DestroyCallback(hdpa, fill_list, This); - SendMessageW(This->hWndList, WM_SETREDRAW, TRUE, 0); + IShellFolderView_SetRedraw(folderview, TRUE); IEnumIDList_Release(pEnumIDList); @@ -3041,8 +3042,11 @@ static HRESULT WINAPI IShellFolderView_fnSetRedraw( BOOL redraw) { IShellViewImpl *This = impl_from_IShellFolderView(iface); - FIXME("(%p)->(%d) stub\n", This, redraw); - return E_NOTIMPL; + TRACE("(%p)->(%d)\n", This, redraw); + + SendMessageW(This->hWndList, WM_SETREDRAW, redraw, 0); + + return S_OK; } static HRESULT WINAPI IShellFolderView_fnGetSelectedCount( diff --git a/dlls/shell32/tests/shlview.c b/dlls/shell32/tests/shlview.c index 077c491b30..6f08f18931 100644 --- a/dlls/shell32/tests/shlview.c +++ b/dlls/shell32/tests/shlview.c @@ -568,6 +568,10 @@ static void test_IShellFolderView(void) hr = IShellFolderView_MoveIcons(folderview, NULL); ok(hr == E_NOTIMPL, "got (0x%08x)\n", hr); + /* ::SetRedraw without list created */ + hr = IShellFolderView_SetRedraw(folderview, TRUE); + ok(hr == S_OK, "got (0x%08x)\n", hr); + IShellFolderView_Release(folderview); IShellView_Release(view);