ieframe: Added INewWindowManager stub implementation.
This commit is contained in:
parent
9c448d1dbf
commit
dcbfd3d0a5
|
@ -685,6 +685,11 @@ static HRESULT WINAPI ClServiceProvider_QueryService(IServiceProvider *iface, RE
|
|||
return IShellBrowser_QueryInterface(&This->browser_service->IShellBrowser_iface, riid, ppv);
|
||||
}
|
||||
|
||||
if(IsEqualGUID(&SID_SNewWindowManager, guidService)) {
|
||||
TRACE("SID_SNewWindowManager service\n");
|
||||
return INewWindowManager_QueryInterface(&This->nwm.INewWindowManager_iface, riid, ppv);
|
||||
}
|
||||
|
||||
FIXME("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
|
||||
|
||||
return E_NOINTERFACE;
|
||||
|
|
|
@ -888,6 +888,7 @@ void DocHost_Init(DocHost *This, IDispatch *disp, const IDocHostContainerVtbl* c
|
|||
|
||||
ConnectionPointContainer_Init(&This->cps, (IUnknown*)disp);
|
||||
IEHTMLWindow_Init(This);
|
||||
NewWindowManager_Init(This);
|
||||
}
|
||||
|
||||
void DocHost_Release(DocHost *This)
|
||||
|
|
|
@ -89,6 +89,11 @@ typedef struct {
|
|||
DocHost *doc_host;
|
||||
} IEHTMLWindow;
|
||||
|
||||
typedef struct {
|
||||
INewWindowManager INewWindowManager_iface;
|
||||
DocHost *doc_host;
|
||||
} NewWindowManager;
|
||||
|
||||
typedef struct _IDocHostContainerVtbl
|
||||
{
|
||||
ULONG (*addref)(DocHost*);
|
||||
|
@ -145,6 +150,7 @@ struct DocHost {
|
|||
|
||||
ConnectionPointContainer cps;
|
||||
IEHTMLWindow html_window;
|
||||
NewWindowManager nwm;
|
||||
};
|
||||
|
||||
struct WebBrowser {
|
||||
|
@ -233,6 +239,7 @@ void DocHost_Frame_Init(DocHost*) DECLSPEC_HIDDEN;
|
|||
void release_dochost_client(DocHost*) DECLSPEC_HIDDEN;
|
||||
|
||||
void IEHTMLWindow_Init(DocHost*) DECLSPEC_HIDDEN;
|
||||
void NewWindowManager_Init(DocHost*) DECLSPEC_HIDDEN;
|
||||
|
||||
void HlinkFrame_Init(HlinkFrame*,IUnknown*,DocHost*) DECLSPEC_HIDDEN;
|
||||
BOOL HlinkFrame_QI(HlinkFrame*,REFIID,void**) DECLSPEC_HIDDEN;
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
* Implementation of IShellBrowser interface
|
||||
*
|
||||
* Copyright 2011 Piotr Caban for CodeWeavers
|
||||
* Copyright 2012 Jacek Caban for CodeWeavers
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
|
@ -913,3 +914,69 @@ void detach_browser_service(ShellBrowser *sb)
|
|||
sb->doc_host = NULL;
|
||||
IShellBrowser_Release(&sb->IShellBrowser_iface);
|
||||
}
|
||||
|
||||
static inline NewWindowManager *impl_from_INewWindowManager(INewWindowManager *iface)
|
||||
{
|
||||
return CONTAINING_RECORD(iface, NewWindowManager, INewWindowManager_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI NewWindowManager_QueryInterface(INewWindowManager *iface, REFIID riid, void **ppv)
|
||||
{
|
||||
NewWindowManager *This = impl_from_INewWindowManager(iface);
|
||||
|
||||
if(IsEqualGUID(&IID_IUnknown, riid)) {
|
||||
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
|
||||
*ppv = &This->INewWindowManager_iface;
|
||||
}else if(IsEqualGUID(&IID_INewWindowManager, riid)) {
|
||||
TRACE("(%p)->(IID_INewWindowManager %p)\n", This, ppv);
|
||||
*ppv = &This->INewWindowManager_iface;
|
||||
}else {
|
||||
WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
|
||||
*ppv = NULL;
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
|
||||
IUnknown_AddRef((IUnknown*)*ppv);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static ULONG WINAPI NewWindowManager_AddRef(INewWindowManager *iface)
|
||||
{
|
||||
NewWindowManager *This = impl_from_INewWindowManager(iface);
|
||||
|
||||
TRACE("(%p)\n", This);
|
||||
|
||||
return IOleClientSite_AddRef(&This->doc_host->IOleClientSite_iface);
|
||||
}
|
||||
|
||||
static ULONG WINAPI NewWindowManager_Release(INewWindowManager *iface)
|
||||
{
|
||||
NewWindowManager *This = impl_from_INewWindowManager(iface);
|
||||
|
||||
TRACE("(%p)\n", This);
|
||||
|
||||
return IOleClientSite_Release(&This->doc_host->IOleClientSite_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI NewWindowManager_EvaluateNewWindow(INewWindowManager *iface, LPCWSTR pszUrl,
|
||||
LPCWSTR pszName, LPCWSTR pszUrlContext, LPCWSTR pszFeatures, BOOL fReplace, DWORD dwFlags,
|
||||
DWORD dwUserActionTime)
|
||||
{
|
||||
NewWindowManager *This = impl_from_INewWindowManager(iface);
|
||||
FIXME("(%p)->(%s %s %s %s %x %x %d)\n", This, debugstr_w(pszUrl), debugstr_w(pszName), debugstr_w(pszUrlContext),
|
||||
debugstr_w(pszFeatures), fReplace, dwFlags, dwUserActionTime);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
static const INewWindowManagerVtbl NewWindowManagerVtbl = {
|
||||
NewWindowManager_QueryInterface,
|
||||
NewWindowManager_AddRef,
|
||||
NewWindowManager_Release,
|
||||
NewWindowManager_EvaluateNewWindow
|
||||
};
|
||||
|
||||
void NewWindowManager_Init(DocHost *doc_host)
|
||||
{
|
||||
doc_host->nwm.INewWindowManager_iface.lpVtbl = &NewWindowManagerVtbl;
|
||||
doc_host->nwm.doc_host = doc_host;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue