Jacek Caban : mshtml: Make HTMLBodyElement child object of HTMLTextContainer.
Module: wine Branch: master Commit: ea52235f8f3d4ba501ab9eb56921cbd25a62a893 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ea52235f8f3d4ba501ab9eb569... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Sat Sep 15 16:07:52 2007 +0200 mshtml: Make HTMLBodyElement child object of HTMLTextContainer. --- dlls/mshtml/htmlbody.c | 24 ++++++++++++------------ dlls/mshtml/htmltextcont.c | 17 ++++++++--------- dlls/mshtml/mshtml_private.h | 7 +++---- 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/dlls/mshtml/htmlbody.c b/dlls/mshtml/htmlbody.c index bb616cd..35be04f 100644 --- a/dlls/mshtml/htmlbody.c +++ b/dlls/mshtml/htmlbody.c @@ -36,7 +36,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(mshtml); typedef struct { - HTMLElement element; + HTMLTextContainer textcont; const IHTMLBodyElementVtbl *lpHTMLBodyElementVtbl; @@ -83,7 +83,7 @@ static HRESULT WINAPI HTMLBodyElement_QueryInterface(IHTMLBodyElement *iface, return S_OK; } - hres = HTMLElement_QI(&This->element, riid, ppv); + hres = HTMLElement_QI(&This->textcont.element, riid, ppv); if(FAILED(hres)) WARN("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv); @@ -96,7 +96,7 @@ static ULONG WINAPI HTMLBodyElement_AddRef(IHTMLBodyElement *iface) TRACE("(%p)\n", This); - return IHTMLDocument2_AddRef(HTMLDOC(This->element.node.doc)); + return IHTMLDocument2_AddRef(HTMLDOC(This->textcont.element.node.doc)); } static ULONG WINAPI HTMLBodyElement_Release(IHTMLBodyElement *iface) @@ -105,7 +105,7 @@ static ULONG WINAPI HTMLBodyElement_Release(IHTMLBodyElement *iface) TRACE("(%p)\n", This); - return IHTMLDocument2_Release(HTMLDOC(This->element.node.doc)); + return IHTMLDocument2_Release(HTMLDOC(This->textcont.element.node.doc)); } static HRESULT WINAPI HTMLBodyElement_GetTypeInfoCount(IHTMLBodyElement *iface, UINT *pctinfo) @@ -407,18 +407,18 @@ static HRESULT WINAPI HTMLBodyElement_createTextRange(IHTMLBodyElement *iface, I TRACE("(%p)->(%p)\n", This, range); - if(This->element.node.doc->nscontainer) { + if(This->textcont.element.node.doc->nscontainer) { nsIDOMDocument *nsdoc; nsIDOMDocumentRange *nsdocrange; nsresult nsres; - nsIWebNavigation_GetDocument(This->element.node.doc->nscontainer->navigation, &nsdoc); + nsIWebNavigation_GetDocument(This->textcont.element.node.doc->nscontainer->navigation, &nsdoc); nsIDOMDocument_QueryInterface(nsdoc, &IID_nsIDOMDocumentRange, (void**)&nsdocrange); nsIDOMDocument_Release(nsdoc); nsres = nsIDOMDocumentRange_CreateRange(nsdocrange, &nsrange); if(NS_SUCCEEDED(nsres)) { - nsres = nsIDOMRange_SelectNodeContents(nsrange, This->element.node.nsnode); + nsres = nsIDOMRange_SelectNodeContents(nsrange, This->textcont.element.node.nsnode); if(NS_FAILED(nsres)) ERR("SelectNodeContents failed: %08x\n", nsres); }else { @@ -428,7 +428,7 @@ static HRESULT WINAPI HTMLBodyElement_createTextRange(IHTMLBodyElement *iface, I nsIDOMDocumentRange_Release(nsdocrange); } - *range = HTMLTxtRange_Create(This->element.node.doc, nsrange); + *range = HTMLTxtRange_Create(This->textcont.element.node.doc, nsrange); return S_OK; } @@ -493,7 +493,7 @@ HTMLElement *HTMLBodyElement_Create(nsIDOMHTMLElement *nselem) ret->lpHTMLBodyElementVtbl = &HTMLBodyElementVtbl; - HTMLTextContainer_Init(&ret->text_container, &ret->element); + HTMLTextContainer_Init(&ret->text_container); ConnectionPoint_Init(&ret->cp_propnotif, CONPTCONT(&ret->cp_container), &IID_IPropertyNotifySink, NULL); @@ -506,8 +506,8 @@ HTMLElement *HTMLBodyElement_Create(nsIDOMHTMLElement *nselem) if(NS_FAILED(nsres)) ERR("Could not get nsDOMHTMLBodyElement: %08x\n", nsres); - ret->element.impl = (IUnknown*)HTMLBODY(ret); - ret->element.destructor = HTMLBodyElement_destructor; + ret->textcont.element.impl = (IUnknown*)HTMLBODY(ret); + ret->textcont.element.destructor = HTMLBodyElement_destructor; - return &ret->element; + return &ret->textcont.element; } diff --git a/dlls/mshtml/htmltextcont.c b/dlls/mshtml/htmltextcont.c index e67e668..20bdeab 100644 --- a/dlls/mshtml/htmltextcont.c +++ b/dlls/mshtml/htmltextcont.c @@ -40,19 +40,19 @@ static HRESULT WINAPI HTMLTextContainer_QueryInterface(IHTMLTextContainer *iface REFIID riid, void **ppv) { HTMLTextContainer *This = HTMLTEXTCONT_THIS(iface); - return IHTMLElement_QueryInterface(HTMLELEM(This->element), riid, ppv); + return IHTMLElement_QueryInterface(HTMLELEM(&This->element), riid, ppv); } static ULONG WINAPI HTMLTextContainer_AddRef(IHTMLTextContainer *iface) { HTMLTextContainer *This = HTMLTEXTCONT_THIS(iface); - return IHTMLElement_AddRef(HTMLELEM(This->element)); + return IHTMLElement_AddRef(HTMLELEM(&This->element)); } static ULONG WINAPI HTMLTextContainer_Release(IHTMLTextContainer *iface) { HTMLTextContainer *This = HTMLTEXTCONT_THIS(iface); - return IHTMLElement_Release(HTMLELEM(This->element)); + return IHTMLElement_Release(HTMLELEM(&This->element)); } static HRESULT WINAPI HTMLTextContainer_GetTypeInfoCount(IHTMLTextContainer *iface, UINT *pctinfo) @@ -107,7 +107,7 @@ static HRESULT WINAPI HTMLTextContainer_get_scrollHeight(IHTMLTextContainer *ifa TRACE("(%p)->(%p)\n", This, p); - nsres = nsIDOMElement_QueryInterface(This->element->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); + nsres = nsIDOMElement_QueryInterface(This->element.nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); if(NS_SUCCEEDED(nsres)) { nsIDOMNSHTMLElement_GetScrollHeight(nselem, &height); nsIDOMNSHTMLElement_Release(nselem); @@ -130,7 +130,7 @@ static HRESULT WINAPI HTMLTextContainer_get_scrollWidth(IHTMLTextContainer *ifac TRACE("(%p)->(%p)\n", This, p); - nsres = nsIDOMElement_QueryInterface(This->element->nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); + nsres = nsIDOMElement_QueryInterface(This->element.nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); if(NS_SUCCEEDED(nsres)) { nsIDOMNSHTMLElement_GetScrollWidth(nselem, &width); nsIDOMNSHTMLElement_Release(nselem); @@ -152,7 +152,7 @@ static HRESULT WINAPI HTMLTextContainer_put_scrollTop(IHTMLTextContainer *iface, TRACE("(%p)->(%ld)\n", This, v); - nsres = nsIDOMHTMLElement_QueryInterface(This->element->nselem, &IID_nsIDOMNSHTMLElement, + nsres = nsIDOMHTMLElement_QueryInterface(This->element.nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); if(NS_SUCCEEDED(nsres)) { nsIDOMNSHTMLElement_SetScrollTop(nselem, v); @@ -179,7 +179,7 @@ static HRESULT WINAPI HTMLTextContainer_put_scrollLeft(IHTMLTextContainer *iface TRACE("(%p)->(%ld)\n", This, v); - nsres = nsIDOMHTMLElement_QueryInterface(This->element->nselem, &IID_nsIDOMNSHTMLElement, + nsres = nsIDOMHTMLElement_QueryInterface(This->element.nselem, &IID_nsIDOMNSHTMLElement, (void**)&nselem); if(NS_SUCCEEDED(nsres)) { nsIDOMNSHTMLElement_SetScrollLeft(nselem, v); @@ -233,8 +233,7 @@ static const IHTMLTextContainerVtbl HTMLTextContainerVtbl = { HTMLTextContainer_get_onscroll }; -void HTMLTextContainer_Init(HTMLTextContainer *This, HTMLElement *elem) +void HTMLTextContainer_Init(HTMLTextContainer *This) { This->lpHTMLTextContainerVtbl = &HTMLTextContainerVtbl; - This->element = elem; } diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index e39b2e8..408dc52 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -284,9 +284,9 @@ typedef struct { } HTMLElement; typedef struct { - const IHTMLTextContainerVtbl *lpHTMLTextContainerVtbl; + HTMLElement element; - HTMLElement *element; + const IHTMLTextContainerVtbl *lpHTMLTextContainerVtbl; } HTMLTextContainer; #define HTMLWINDOW2(x) ((IHTMLWindow2*) &(x)->lpHTMLWindow2Vtbl) @@ -423,8 +423,7 @@ HTMLElement *HTMLSelectElement_Create(nsIDOMHTMLElement*); HTMLElement *HTMLTextAreaElement_Create(nsIDOMHTMLElement*); void HTMLElement2_Init(HTMLElement*); - -void HTMLTextContainer_Init(HTMLTextContainer*,HTMLElement*); +void HTMLTextContainer_Init(HTMLTextContainer*); HRESULT HTMLDOMNode_QI(HTMLDOMNode*,REFIID,void**); HRESULT HTMLElement_QI(HTMLElement*,REFIID,void**);
participants (1)
-
Alexandre Julliard