explorer: Return desktop shellview interface.

oldstable
Nikolay Sivov 2015-05-08 11:41:43 +03:00 committed by Alexandre Julliard
parent 7ce1813fed
commit 3ec3fa5eb7
2 changed files with 17 additions and 2 deletions

View File

@ -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);

View File

@ -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)