Nikolay Sivov : explorer: Return desktop shellview interface.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri May 8 05:21:28 CDT 2015
Module: wine
Branch: master
Commit: 3ec3fa5eb7d4eefd3157dfce31dbe561a6cda474
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3ec3fa5eb7d4eefd3157dfce31dbe561a6cda474
Author: Nikolay Sivov <nsivov at 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)
More information about the wine-cvs
mailing list