diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index 7c8455c2aca..8cee880b935 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -4761,16 +4761,8 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
*ppv = &This->IOleObject_iface;
else if(IsEqualGUID(&IID_IOleDocument, riid))
*ppv = &This->IOleDocument_iface;
- else if(IsEqualGUID(&IID_IOleDocumentView, riid))
- *ppv = &This->IOleDocumentView_iface;
else if(IsEqualGUID(&IID_IOleInPlaceActiveObject, riid))
*ppv = &This->IOleInPlaceActiveObject_iface;
- else if(IsEqualGUID(&IID_IViewObject, riid))
- *ppv = &This->IViewObjectEx_iface;
- else if(IsEqualGUID(&IID_IViewObject2, riid))
- *ppv = &This->IViewObjectEx_iface;
- else if(IsEqualGUID(&IID_IViewObjectEx, riid))
- *ppv = &This->IViewObjectEx_iface;
else if(IsEqualGUID(&IID_IOleWindow, riid))
*ppv = &This->IOleInPlaceActiveObject_iface;
else if(IsEqualGUID(&IID_IOleInPlaceObject, riid))
@@ -4861,7 +4853,6 @@ static void init_doc(HTMLDocument *doc, IUnknown *outer, IDispatchEx *dispex)
HTMLDocument_Persist_Init(doc);
HTMLDocument_OleCmd_Init(doc);
HTMLDocument_OleObj_Init(doc);
- HTMLDocument_View_Init(doc);
HTMLDocument_Service_Init(doc);
ConnectionPointContainer_Init(&doc->cp_container, (IUnknown*)&doc->IHTMLDocument2_iface, HTMLDocument_cpc);
@@ -5247,6 +5238,14 @@ static HRESULT WINAPI HTMLDocumentObj_QueryInterface(IUnknown *iface, REFIID rii
return *ppv ? S_OK : E_NOINTERFACE;
}else if(IsEqualGUID(&IID_ICustomDoc, riid)) {
*ppv = &This->ICustomDoc_iface;
+ }else if(IsEqualGUID(&IID_IOleDocumentView, riid)) {
+ *ppv = &This->IOleDocumentView_iface;
+ }else if(IsEqualGUID(&IID_IViewObject, riid)) {
+ *ppv = &This->IViewObjectEx_iface;
+ }else if(IsEqualGUID(&IID_IViewObject2, riid)) {
+ *ppv = &This->IViewObjectEx_iface;
+ }else if(IsEqualGUID(&IID_IViewObjectEx, riid)) {
+ *ppv = &This->IViewObjectEx_iface;
}else if(IsEqualGUID(&IID_ITargetContainer, riid)) {
*ppv = &This->ITargetContainer_iface;
}else if(dispex_query_interface(&This->dispex, riid, ppv)) {
@@ -5304,7 +5303,7 @@ static ULONG WINAPI HTMLDocumentObj_Release(IUnknown *iface)
if(This->in_place_active)
IOleInPlaceObjectWindowless_InPlaceDeactivate(&This->basedoc.IOleInPlaceObjectWindowless_iface);
if(This->ipsite)
- IOleDocumentView_SetInPlaceSite(&This->basedoc.IOleDocumentView_iface, NULL);
+ IOleDocumentView_SetInPlaceSite(&This->IOleDocumentView_iface, NULL);
if(This->undomgr)
IOleUndoManager_Release(This->undomgr);
if(This->editsvcs)
@@ -5450,7 +5449,7 @@ static HRESULT create_document_object(BOOL is_mhtml, IUnknown *outer, REFIID rii
doc->usermode = UNKNOWN_USERMODE;
doc->task_magic = get_task_target_magic();
- init_binding_ui(doc);
+ HTMLDocument_View_Init(doc);
hres = create_nscontainer(doc, &doc->nscontainer);
if(FAILED(hres)) {
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index eece46ec695..ff52dae5721 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -595,9 +595,7 @@ struct HTMLDocument {
IMonikerProp IMonikerProp_iface;
IOleObject IOleObject_iface;
IOleDocument IOleDocument_iface;
- IOleDocumentView IOleDocumentView_iface;
IOleInPlaceActiveObject IOleInPlaceActiveObject_iface;
- IViewObjectEx IViewObjectEx_iface;
IOleInPlaceObjectWindowless IOleInPlaceObjectWindowless_iface;
IServiceProvider IServiceProvider_iface;
IOleCommandTarget IOleCommandTarget_iface;
@@ -642,6 +640,8 @@ struct HTMLDocumentObj {
DispatchEx dispex;
IUnknown IUnknown_outer;
ICustomDoc ICustomDoc_iface;
+ IOleDocumentView IOleDocumentView_iface;
+ IViewObjectEx IViewObjectEx_iface;
ITargetContainer ITargetContainer_iface;
IWindowForBindingUI IWindowForBindingUI_iface;
@@ -876,11 +876,10 @@ HRESULT create_storage(IHTMLStorage**) DECLSPEC_HIDDEN;
void HTMLDocument_Persist_Init(HTMLDocument*) DECLSPEC_HIDDEN;
void HTMLDocument_OleCmd_Init(HTMLDocument*) DECLSPEC_HIDDEN;
void HTMLDocument_OleObj_Init(HTMLDocument*) DECLSPEC_HIDDEN;
-void HTMLDocument_View_Init(HTMLDocument*) DECLSPEC_HIDDEN;
void HTMLDocument_Service_Init(HTMLDocument*) DECLSPEC_HIDDEN;
+void HTMLDocument_View_Init(HTMLDocumentObj*) DECLSPEC_HIDDEN;
void TargetContainer_Init(HTMLDocumentObj*) DECLSPEC_HIDDEN;
-void init_binding_ui(HTMLDocumentObj*) DECLSPEC_HIDDEN;
void HTMLDocumentNode_SecMgr_Init(HTMLDocumentNode*) DECLSPEC_HIDDEN;
diff --git a/dlls/mshtml/oleobj.c b/dlls/mshtml/oleobj.c
index bb54ead045b..60e7814a5e2 100644
--- a/dlls/mshtml/oleobj.c
+++ b/dlls/mshtml/oleobj.c
@@ -547,17 +547,17 @@ static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, LPMSG lpms
HTMLDocument_LockContainer(This->doc_obj, TRUE);
/* FIXME: Create new IOleDocumentView. See CreateView for more info. */
- hres = IOleDocumentSite_ActivateMe(pDocSite, &This->IOleDocumentView_iface);
+ hres = IOleDocumentSite_ActivateMe(pDocSite, &This->doc_obj->IOleDocumentView_iface);
IOleDocumentSite_Release(pDocSite);
}else {
- hres = IOleDocumentView_UIActivate(&This->IOleDocumentView_iface, TRUE);
+ hres = IOleDocumentView_UIActivate(&This->doc_obj->IOleDocumentView_iface, TRUE);
if(SUCCEEDED(hres)) {
if(lprcPosRect) {
RECT rect; /* We need to pass rect as not const pointer */
rect = *lprcPosRect;
- IOleDocumentView_SetRect(&This->IOleDocumentView_iface, &rect);
+ IOleDocumentView_SetRect(&This->doc_obj->IOleDocumentView_iface, &rect);
}
- IOleDocumentView_Show(&This->IOleDocumentView_iface, TRUE);
+ IOleDocumentView_Show(&This->doc_obj->IOleDocumentView_iface, TRUE);
}
}
@@ -751,7 +751,7 @@ static HRESULT WINAPI OleDocument_CreateView(IOleDocument *iface, IOleInPlaceSit
*/
if(pIPSite) {
- hres = IOleDocumentView_SetInPlaceSite(&This->IOleDocumentView_iface, pIPSite);
+ hres = IOleDocumentView_SetInPlaceSite(&This->doc_obj->IOleDocumentView_iface, pIPSite);
if(FAILED(hres))
return hres;
}
@@ -759,8 +759,8 @@ static HRESULT WINAPI OleDocument_CreateView(IOleDocument *iface, IOleInPlaceSit
if(pstm)
FIXME("pstm is not supported\n");
- IOleDocumentView_AddRef(&This->IOleDocumentView_iface);
- *ppView = &This->IOleDocumentView_iface;
+ IOleDocumentView_AddRef(&This->doc_obj->IOleDocumentView_iface);
+ *ppView = &This->doc_obj->IOleDocumentView_iface;
return S_OK;
}
@@ -1127,7 +1127,7 @@ static HRESULT WINAPI OleInPlaceObjectWindowless_InPlaceDeactivate(IOleInPlaceOb
TRACE("(%p)\n", This);
if(This->doc_obj->ui_active)
- IOleDocumentView_UIActivate(&This->IOleDocumentView_iface, FALSE);
+ IOleDocumentView_UIActivate(&This->doc_obj->IOleDocumentView_iface, FALSE);
This->doc_obj->window_active = FALSE;
if(!This->doc_obj->in_place_active)
diff --git a/dlls/mshtml/view.c b/dlls/mshtml/view.c
index c266ce92197..531c680523e 100644
--- a/dlls/mshtml/view.c
+++ b/dlls/mshtml/view.c
@@ -279,11 +279,6 @@ static HRESULT activate_window(HTMLDocumentObj *This)
SetWindowPos(This->hwnd, NULL, 0, 0, 0, 0,
SWP_NOSIZE | SWP_NOMOVE | SWP_NOZORDER | SWP_NOREDRAW | SWP_NOACTIVATE | SWP_SHOWWINDOW);
RedrawWindow(This->hwnd, NULL, NULL, RDW_INVALIDATE | RDW_NOERASE | RDW_ALLCHILDREN);
-
- /* NOTE:
- * Windows implementation calls:
- * RegisterWindowMessage("MSWHEEL_ROLLMSG");
- */
SetTimer(This->hwnd, TIMER_ID, 100, NULL);
}
@@ -428,76 +423,76 @@ HRESULT call_set_active_object(IOleInPlaceUIWindow *window, IOleInPlaceActiveObj
* IOleDocumentView implementation
*/
-static inline HTMLDocument *impl_from_IOleDocumentView(IOleDocumentView *iface)
+static inline HTMLDocumentObj *impl_from_IOleDocumentView(IOleDocumentView *iface)
{
- return CONTAINING_RECORD(iface, HTMLDocument, IOleDocumentView_iface);
+ return CONTAINING_RECORD(iface, HTMLDocumentObj, IOleDocumentView_iface);
}
static HRESULT WINAPI OleDocumentView_QueryInterface(IOleDocumentView *iface, REFIID riid, void **ppvObject)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
- return htmldoc_query_interface(This, riid, ppvObject);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
+ return htmldoc_query_interface(&This->basedoc, riid, ppvObject);
}
static ULONG WINAPI OleDocumentView_AddRef(IOleDocumentView *iface)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
- return htmldoc_addref(This);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
+ return htmldoc_addref(&This->basedoc);
}
static ULONG WINAPI OleDocumentView_Release(IOleDocumentView *iface)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
- return htmldoc_release(This);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
+ return htmldoc_release(&This->basedoc);
}
static HRESULT WINAPI OleDocumentView_SetInPlaceSite(IOleDocumentView *iface, IOleInPlaceSite *pIPSite)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
TRACE("(%p)->(%p)\n", This, pIPSite);
if(pIPSite)
IOleInPlaceSite_AddRef(pIPSite);
- if(This->doc_obj->ipsite)
- IOleInPlaceSite_Release(This->doc_obj->ipsite);
+ if(This->ipsite)
+ IOleInPlaceSite_Release(This->ipsite);
- This->doc_obj->ipsite = pIPSite;
- This->doc_obj->request_uiactivate = TRUE;
+ This->ipsite = pIPSite;
+ This->request_uiactivate = TRUE;
return S_OK;
}
static HRESULT WINAPI OleDocumentView_GetInPlaceSite(IOleDocumentView *iface, IOleInPlaceSite **ppIPSite)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
TRACE("(%p)->(%p)\n", This, ppIPSite);
if(!ppIPSite)
return E_INVALIDARG;
- if(This->doc_obj->ipsite)
- IOleInPlaceSite_AddRef(This->doc_obj->ipsite);
+ if(This->ipsite)
+ IOleInPlaceSite_AddRef(This->ipsite);
- *ppIPSite = This->doc_obj->ipsite;
+ *ppIPSite = This->ipsite;
return S_OK;
}
static HRESULT WINAPI OleDocumentView_GetDocument(IOleDocumentView *iface, IUnknown **ppunk)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
TRACE("(%p)->(%p)\n", This, ppunk);
if(!ppunk)
return E_INVALIDARG;
- htmldoc_addref(This);
- *ppunk = (IUnknown*)&This->IHTMLDocument2_iface;
+ *ppunk = (IUnknown*)&This->basedoc.IHTMLDocument2_iface;
+ IUnknown_AddRef(*ppunk);
return S_OK;
}
static HRESULT WINAPI OleDocumentView_SetRect(IOleDocumentView *iface, LPRECT prcView)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
RECT rect;
TRACE("(%p)->(%p)\n", This, prcView);
@@ -505,11 +500,11 @@ static HRESULT WINAPI OleDocumentView_SetRect(IOleDocumentView *iface, LPRECT pr
if(!prcView)
return E_INVALIDARG;
- if(This->doc_obj->hwnd) {
- GetClientRect(This->doc_obj->hwnd, &rect);
+ if(This->hwnd) {
+ GetClientRect(This->hwnd, &rect);
if(!EqualRect(prcView, &rect)) {
- InvalidateRect(This->doc_obj->hwnd, NULL, TRUE);
- SetWindowPos(This->doc_obj->hwnd, NULL, prcView->left, prcView->top, prcView->right,
+ InvalidateRect(This->hwnd, NULL, TRUE);
+ SetWindowPos(This->hwnd, NULL, prcView->left, prcView->top, prcView->right,
prcView->bottom, SWP_NOZORDER | SWP_NOACTIVATE);
}
}
@@ -519,49 +514,49 @@ static HRESULT WINAPI OleDocumentView_SetRect(IOleDocumentView *iface, LPRECT pr
static HRESULT WINAPI OleDocumentView_GetRect(IOleDocumentView *iface, LPRECT prcView)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
TRACE("(%p)->(%p)\n", This, prcView);
if(!prcView)
return E_INVALIDARG;
- GetClientRect(This->doc_obj->hwnd, prcView);
+ GetClientRect(This->hwnd, prcView);
return S_OK;
}
static HRESULT WINAPI OleDocumentView_SetRectComplex(IOleDocumentView *iface, LPRECT prcView,
LPRECT prcHScroll, LPRECT prcVScroll, LPRECT prcSizeBox)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
FIXME("(%p)->(%p %p %p %p)\n", This, prcView, prcHScroll, prcVScroll, prcSizeBox);
return E_NOTIMPL;
}
static HRESULT WINAPI OleDocumentView_Show(IOleDocumentView *iface, BOOL fShow)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
HRESULT hres;
TRACE("(%p)->(%x)\n", This, fShow);
if(fShow) {
- if(!This->doc_obj->ui_active) {
- hres = activate_window(This->doc_obj);
+ if(!This->ui_active) {
+ hres = activate_window(This);
if(FAILED(hres))
return hres;
}
- update_doc(This->doc_obj, UPDATE_UI);
- ShowWindow(This->doc_obj->hwnd, SW_SHOW);
+ update_doc(This, UPDATE_UI);
+ ShowWindow(This->hwnd, SW_SHOW);
}else {
- ShowWindow(This->doc_obj->hwnd, SW_HIDE);
+ ShowWindow(This->hwnd, SW_HIDE);
- if(This->doc_obj->in_place_active)
- IOleInPlaceObjectWindowless_InPlaceDeactivate(&This->IOleInPlaceObjectWindowless_iface);
+ if(This->in_place_active)
+ IOleInPlaceObjectWindowless_InPlaceDeactivate(&This->basedoc.IOleInPlaceObjectWindowless_iface);
- if(This->doc_obj->ip_window) {
- IOleInPlaceUIWindow_Release(This->doc_obj->ip_window);
- This->doc_obj->ip_window = NULL;
+ if(This->ip_window) {
+ IOleInPlaceUIWindow_Release(This->ip_window);
+ This->ip_window = NULL;
}
}
@@ -570,13 +565,13 @@ static HRESULT WINAPI OleDocumentView_Show(IOleDocumentView *iface, BOOL fShow)
static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL fUIActivate)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
HRESULT hres;
TRACE("(%p)->(%x)\n", This, fUIActivate);
- if(!This->doc_obj->ipsite) {
- IOleClientSite *cs = This->doc_obj->client;
+ if(!This->ipsite) {
+ IOleClientSite *cs = This->client;
IOleInPlaceSite *ips;
if(!cs) {
@@ -586,15 +581,15 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
hres = IOleClientSite_QueryInterface(cs, &IID_IOleInPlaceSiteWindowless, (void**)&ips);
if(SUCCEEDED(hres))
- This->doc_obj->ipsite = ips;
+ This->ipsite = ips;
else {
hres = IOleClientSite_QueryInterface(cs, &IID_IOleInPlaceSiteEx, (void**)&ips);
if(SUCCEEDED(hres))
- This->doc_obj->ipsite = ips;
+ This->ipsite = ips;
else {
hres = IOleClientSite_QueryInterface(cs, &IID_IOleInPlaceSite, (void**)&ips);
if(SUCCEEDED(hres))
- This->doc_obj->ipsite = ips;
+ This->ipsite = ips;
else {
WARN("this->ipsite = NULL\n");
return E_NOINTERFACE;
@@ -602,71 +597,71 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
}
}
- IOleInPlaceSite_AddRef(This->doc_obj->ipsite);
- This->doc_obj->request_uiactivate = FALSE;
- HTMLDocument_LockContainer(This->doc_obj, TRUE);
+ IOleInPlaceSite_AddRef(This->ipsite);
+ This->request_uiactivate = FALSE;
+ HTMLDocument_LockContainer(This, TRUE);
}
if(fUIActivate) {
RECT rcBorderWidths;
- if(This->doc_obj->ui_active)
+ if(This->ui_active)
return S_OK;
- if(!This->doc_obj->window_active) {
- hres = activate_window(This->doc_obj);
+ if(!This->window_active) {
+ hres = activate_window(This);
if(FAILED(hres))
return hres;
}
- This->doc_obj->focus = TRUE;
- if(This->doc_obj->nscontainer)
- nsIWebBrowserFocus_Activate(This->doc_obj->nscontainer->focus);
- notif_focus(This->doc_obj);
+ This->focus = TRUE;
+ if(This->nscontainer)
+ nsIWebBrowserFocus_Activate(This->nscontainer->focus);
+ notif_focus(This);
- update_doc(This->doc_obj, UPDATE_UI);
+ update_doc(This, UPDATE_UI);
- hres = IOleInPlaceSite_OnUIActivate(This->doc_obj->ipsite);
+ hres = IOleInPlaceSite_OnUIActivate(This->ipsite);
if(SUCCEEDED(hres)) {
- call_set_active_object((IOleInPlaceUIWindow*)This->doc_obj->frame,
- &This->IOleInPlaceActiveObject_iface);
+ call_set_active_object((IOleInPlaceUIWindow*)This->frame,
+ &This->basedoc.IOleInPlaceActiveObject_iface);
}else {
FIXME("OnUIActivate failed: %08x\n", hres);
- IOleInPlaceFrame_Release(This->doc_obj->frame);
- This->doc_obj->frame = NULL;
- This->doc_obj->ui_active = FALSE;
+ IOleInPlaceFrame_Release(This->frame);
+ This->frame = NULL;
+ This->ui_active = FALSE;
return hres;
}
- if(This->doc_obj->hostui) {
- hres = IDocHostUIHandler_ShowUI(This->doc_obj->hostui,
- This->doc_obj->usermode == EDITMODE ? DOCHOSTUITYPE_AUTHOR : DOCHOSTUITYPE_BROWSE,
- &This->IOleInPlaceActiveObject_iface, &This->IOleCommandTarget_iface,
- This->doc_obj->frame, This->doc_obj->ip_window);
+ if(This->hostui) {
+ hres = IDocHostUIHandler_ShowUI(This->hostui,
+ This->usermode == EDITMODE ? DOCHOSTUITYPE_AUTHOR : DOCHOSTUITYPE_BROWSE,
+ &This->basedoc.IOleInPlaceActiveObject_iface, &This->basedoc.IOleCommandTarget_iface,
+ This->frame, This->ip_window);
if(FAILED(hres))
- IDocHostUIHandler_HideUI(This->doc_obj->hostui);
+ IDocHostUIHandler_HideUI(This->hostui);
}
- if(This->doc_obj->ip_window)
- call_set_active_object(This->doc_obj->ip_window, &This->IOleInPlaceActiveObject_iface);
+ if(This->ip_window)
+ call_set_active_object(This->ip_window, &This->basedoc.IOleInPlaceActiveObject_iface);
SetRectEmpty(&rcBorderWidths);
- IOleInPlaceFrame_SetBorderSpace(This->doc_obj->frame, &rcBorderWidths);
+ IOleInPlaceFrame_SetBorderSpace(This->frame, &rcBorderWidths);
- This->doc_obj->ui_active = TRUE;
+ This->ui_active = TRUE;
}else {
- This->doc_obj->focus = FALSE;
- nsIWebBrowserFocus_Deactivate(This->doc_obj->nscontainer->focus);
- if(This->doc_obj->ui_active) {
- This->doc_obj->ui_active = FALSE;
- if(This->doc_obj->ip_window)
- call_set_active_object(This->doc_obj->ip_window, NULL);
- if(This->doc_obj->frame)
- call_set_active_object((IOleInPlaceUIWindow*)This->doc_obj->frame, NULL);
- if(This->doc_obj->hostui)
- IDocHostUIHandler_HideUI(This->doc_obj->hostui);
- if(This->doc_obj->ipsite)
- IOleInPlaceSite_OnUIDeactivate(This->doc_obj->ipsite, FALSE);
+ This->focus = FALSE;
+ nsIWebBrowserFocus_Deactivate(This->nscontainer->focus);
+ if(This->ui_active) {
+ This->ui_active = FALSE;
+ if(This->ip_window)
+ call_set_active_object(This->ip_window, NULL);
+ if(This->frame)
+ call_set_active_object((IOleInPlaceUIWindow*)This->frame, NULL);
+ if(This->hostui)
+ IDocHostUIHandler_HideUI(This->hostui);
+ if(This->ipsite)
+ IOleInPlaceSite_OnUIDeactivate(This->ipsite, FALSE);
}
}
return S_OK;
@@ -674,39 +669,33 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
static HRESULT WINAPI OleDocumentView_Open(IOleDocumentView *iface)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
FIXME("(%p)\n", This);
return E_NOTIMPL;
}
static HRESULT WINAPI OleDocumentView_CloseView(IOleDocumentView *iface, DWORD dwReserved)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
TRACE("(%p)->(%x)\n", This, dwReserved);
if(dwReserved)
WARN("dwReserved = %d\n", dwReserved);
- /* NOTE:
- * Windows implementation calls QueryInterface(IID_IOleCommandTarget),
- * QueryInterface(IID_IOleControlSite) and KillTimer
- */
-
IOleDocumentView_Show(iface, FALSE);
-
return S_OK;
}
static HRESULT WINAPI OleDocumentView_SaveViewState(IOleDocumentView *iface, IStream *pstm)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
FIXME("(%p)->(%p)\n", This, pstm);
return E_NOTIMPL;
}
static HRESULT WINAPI OleDocumentView_ApplyViewState(IOleDocumentView *iface, IStream *pstm)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
FIXME("(%p)->(%p)\n", This, pstm);
return E_NOTIMPL;
}
@@ -714,7 +703,7 @@ static HRESULT WINAPI OleDocumentView_ApplyViewState(IOleDocumentView *iface, IS
static HRESULT WINAPI OleDocumentView_Clone(IOleDocumentView *iface, IOleInPlaceSite *pIPSiteNew,
IOleDocumentView **ppViewNew)
{
- HTMLDocument *This = impl_from_IOleDocumentView(iface);
+ HTMLDocumentObj *This = impl_from_IOleDocumentView(iface);
FIXME("(%p)->(%p %p)\n", This, pIPSiteNew, ppViewNew);
return E_NOTIMPL;
}
@@ -742,34 +731,34 @@ static const IOleDocumentViewVtbl OleDocumentViewVtbl = {
* IViewObject implementation
*/
-static inline HTMLDocument *impl_from_IViewObjectEx(IViewObjectEx *iface)
+static inline HTMLDocumentObj *impl_from_IViewObjectEx(IViewObjectEx *iface)
{
- return CONTAINING_RECORD(iface, HTMLDocument, IViewObjectEx_iface);
+ return CONTAINING_RECORD(iface, HTMLDocumentObj, IViewObjectEx_iface);
}
static HRESULT WINAPI ViewObject_QueryInterface(IViewObjectEx *iface, REFIID riid, void **ppv)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
- return htmldoc_query_interface(This, riid, ppv);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
+ return htmldoc_query_interface(&This->basedoc, riid, ppv);
}
static ULONG WINAPI ViewObject_AddRef(IViewObjectEx *iface)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
- return htmldoc_addref(This);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
+ return htmldoc_addref(&This->basedoc);
}
static ULONG WINAPI ViewObject_Release(IViewObjectEx *iface)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
- return htmldoc_release(This);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
+ return htmldoc_release(&This->basedoc);
}
static HRESULT WINAPI ViewObject_Draw(IViewObjectEx *iface, DWORD dwDrawAspect, LONG lindex, void *pvAspect,
DVTARGETDEVICE *ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds,
LPCRECTL lprcWBounds, BOOL (CALLBACK *pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%d %d %p %p %p %p %p %p %p %ld)\n", This, dwDrawAspect, lindex, pvAspect,
ptd, hdcTargetDev, hdcDraw, lprcBounds, lprcWBounds, pfnContinue, dwContinue);
return E_NOTIMPL;
@@ -778,7 +767,7 @@ static HRESULT WINAPI ViewObject_Draw(IViewObjectEx *iface, DWORD dwDrawAspect,
static HRESULT WINAPI ViewObject_GetColorSet(IViewObjectEx *iface, DWORD dwDrawAspect, LONG lindex, void *pvAspect,
DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE **ppColorSet)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%d %d %p %p %p %p)\n", This, dwDrawAspect, lindex, pvAspect, ptd, hicTargetDev, ppColorSet);
return E_NOTIMPL;
}
@@ -786,39 +775,39 @@ static HRESULT WINAPI ViewObject_GetColorSet(IViewObjectEx *iface, DWORD dwDrawA
static HRESULT WINAPI ViewObject_Freeze(IViewObjectEx *iface, DWORD dwDrawAspect, LONG lindex,
void *pvAspect, DWORD *pdwFreeze)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%d %d %p %p)\n", This, dwDrawAspect, lindex, pvAspect, pdwFreeze);
return E_NOTIMPL;
}
static HRESULT WINAPI ViewObject_Unfreeze(IViewObjectEx *iface, DWORD dwFreeze)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%d)\n", This, dwFreeze);
return E_NOTIMPL;
}
static HRESULT WINAPI ViewObject_SetAdvise(IViewObjectEx *iface, DWORD aspects, DWORD advf, IAdviseSink *pAdvSink)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
TRACE("(%p)->(%d %d %p)\n", This, aspects, advf, pAdvSink);
if(aspects != DVASPECT_CONTENT || advf != ADVF_PRIMEFIRST)
FIXME("unsupported arguments\n");
- if(This->doc_obj->view_sink)
- IAdviseSink_Release(This->doc_obj->view_sink);
+ if(This->view_sink)
+ IAdviseSink_Release(This->view_sink);
if(pAdvSink)
IAdviseSink_AddRef(pAdvSink);
- This->doc_obj->view_sink = pAdvSink;
+ This->view_sink = pAdvSink;
return S_OK;
}
static HRESULT WINAPI ViewObject_GetAdvise(IViewObjectEx *iface, DWORD *pAspects, DWORD *pAdvf, IAdviseSink **ppAdvSink)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%p %p %p)\n", This, pAspects, pAdvf, ppAdvSink);
return E_NOTIMPL;
}
@@ -826,21 +815,21 @@ static HRESULT WINAPI ViewObject_GetAdvise(IViewObjectEx *iface, DWORD *pAspects
static HRESULT WINAPI ViewObject_GetExtent(IViewObjectEx *iface, DWORD dwDrawAspect, LONG lindex,
DVTARGETDEVICE* ptd, LPSIZEL lpsizel)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%d %d %p %p)\n", This, dwDrawAspect, lindex, ptd, lpsizel);
return E_NOTIMPL;
}
static HRESULT WINAPI ViewObject_GetRect(IViewObjectEx *iface, DWORD dwAspect, LPRECTL pRect)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%d %p)\n", This, dwAspect, pRect);
return E_NOTIMPL;
}
static HRESULT WINAPI ViewObject_GetViewStatus(IViewObjectEx *iface, DWORD *pdwStatus)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%p)\n", This, pdwStatus);
return E_NOTIMPL;
}
@@ -848,7 +837,7 @@ static HRESULT WINAPI ViewObject_GetViewStatus(IViewObjectEx *iface, DWORD *pdwS
static HRESULT WINAPI ViewObject_QueryHitPoint(IViewObjectEx* iface, DWORD dwAspect,
LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%d %p (%d %d) %d %p)\n", This, dwAspect, pRectBounds, ptlLoc.x,
ptlLoc.y, lCloseHint, pHitResult);
return E_NOTIMPL;
@@ -857,7 +846,7 @@ static HRESULT WINAPI ViewObject_QueryHitPoint(IViewObjectEx* iface, DWORD dwAsp
static HRESULT WINAPI ViewObject_QueryHitRect(IViewObjectEx *iface, DWORD dwAspect,
LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%d %p %p %d %p)\n", This, dwAspect, pRectBounds, pRectLoc, lCloseHint, pHitResult);
return E_NOTIMPL;
}
@@ -865,7 +854,7 @@ static HRESULT WINAPI ViewObject_QueryHitRect(IViewObjectEx *iface, DWORD dwAspe
static HRESULT WINAPI ViewObject_GetNaturalExtent(IViewObjectEx *iface, DWORD dwAspect, LONG lindex,
DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel)
{
- HTMLDocument *This = impl_from_IViewObjectEx(iface);
+ HTMLDocumentObj *This = impl_from_IViewObjectEx(iface);
FIXME("(%p)->(%d %d %p %p %p %p\n", This, dwAspect,lindex, ptd,
hicTargetDev, pExtentInfo, pSizel);
return E_NOTIMPL;
@@ -889,12 +878,6 @@ static const IViewObjectExVtbl ViewObjectVtbl = {
ViewObject_GetNaturalExtent
};
-void HTMLDocument_View_Init(HTMLDocument *This)
-{
- This->IOleDocumentView_iface.lpVtbl = &OleDocumentViewVtbl;
- This->IViewObjectEx_iface.lpVtbl = &ViewObjectVtbl;
-}
-
static inline HTMLDocumentObj *impl_from_IWindowForBindingUI(IWindowForBindingUI *iface)
{
return CONTAINING_RECORD(iface, HTMLDocumentObj, IWindowForBindingUI_iface);
@@ -949,7 +932,9 @@ static const IWindowForBindingUIVtbl WindowForBindingUIVtbl = {
WindowForBindingUI_GetWindow
};
-void init_binding_ui(HTMLDocumentObj *doc)
+void HTMLDocument_View_Init(HTMLDocumentObj *doc)
{
+ doc->IOleDocumentView_iface.lpVtbl = &OleDocumentViewVtbl;
+ doc->IViewObjectEx_iface.lpVtbl = &ViewObjectVtbl;
doc->IWindowForBindingUI_iface.lpVtbl = &WindowForBindingUIVtbl;
}