Module: wine Branch: master Commit: 3ec3fa5eb7d4eefd3157dfce31dbe561a6cda474 URL: http://source.winehq.org/git/wine.git/?a=commit;h=3ec3fa5eb7d4eefd3157dfce31...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Fri May 8 11:41:43 2015 +0300
explorer: Return desktop shellview interface.
---
dlls/shell32/tests/shelldispatch.c | 4 ++++ programs/explorer/desktop.c | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/tests/shelldispatch.c b/dlls/shell32/tests/shelldispatch.c index f034132..8e2e399 100644 --- a/dlls/shell32/tests/shelldispatch.c +++ b/dlls/shell32/tests/shelldispatch.c @@ -631,6 +631,10 @@ if (hr == S_OK) hr = IShellBrowser_QueryInterface(sb, &IID_IDispatch, (void**)&unk); ok(hr == E_NOINTERFACE, "got 0x%08x\n", hr);
+ hr = IShellBrowser_QueryActiveShellView(sb, &sv); + ok(hr == S_OK, "got 0x%08x\n", hr); + IShellView_Release(sv); + IShellBrowser_Release(sb2); IShellBrowser_Release(sb);
diff --git a/programs/explorer/desktop.c b/programs/explorer/desktop.c index 7ee6174..d2a4932 100644 --- a/programs/explorer/desktop.c +++ b/programs/explorer/desktop.c @@ -141,6 +141,7 @@ struct shellbrowserwindow IWebBrowser2 IWebBrowser2_iface; IServiceProvider IServiceProvider_iface; IShellBrowser IShellBrowser_iface; + IShellView *view; };
static struct shellwindows shellwindows; @@ -2103,8 +2104,11 @@ static HRESULT WINAPI shellbrowser_SendControlMsg(IShellBrowser *iface, UINT id,
static HRESULT WINAPI shellbrowser_QueryActiveShellView(IShellBrowser *iface, IShellView **view) { - FIXME("%p\n", view); - return E_NOTIMPL; + TRACE("%p\n", view); + + *view = desktopshellbrowserwindow.view; + IShellView_AddRef(*view); + return S_OK; }
static HRESULT WINAPI shellbrowser_OnViewWindowActive(IShellBrowser *iface, IShellView *view) @@ -2143,9 +2147,16 @@ static const IShellBrowserVtbl shellbrowservtbl = {
static void desktopshellbrowserwindow_init(void) { + IShellFolder *folder; + desktopshellbrowserwindow.IWebBrowser2_iface.lpVtbl = &webbrowser2vtbl; desktopshellbrowserwindow.IServiceProvider_iface.lpVtbl = &serviceprovidervtbl; desktopshellbrowserwindow.IShellBrowser_iface.lpVtbl = &shellbrowservtbl; + + if (FAILED(SHGetDesktopFolder(&folder))) + return; + + IShellFolder_CreateViewObject(folder, NULL, &IID_IShellView, (void**)&desktopshellbrowserwindow.view); }
static void shellwindows_init(void)