mshtml: Added get_body implementation.

This commit is contained in:
Jacek Caban 2006-04-28 19:58:38 +02:00 committed by Alexandre Julliard
parent d7f881f715
commit 77bb544c51
2 changed files with 69 additions and 2 deletions

View File

@ -204,8 +204,47 @@ static HRESULT WINAPI HTMLDocument_get_all(IHTMLDocument2 *iface, IHTMLElementCo
static HRESULT WINAPI HTMLDocument_get_body(IHTMLDocument2 *iface, IHTMLElement **p)
{
FIXME("(%p)->(%p)\n", iface, p);
return E_NOTIMPL;
HTMLDocument *This = HTMLDOC_THIS(iface);
nsIDOMDocument *nsdoc;
nsIDOMHTMLDocument *nshtmldoc;
nsIDOMHTMLElement *nsbody = NULL;
HTMLDOMNode *node;
nsresult nsres;
TRACE("(%p)->(%p)\n", This, p);
*p = NULL;
if(!This->nscontainer)
return S_OK;
nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
if(NS_FAILED(nsres)) {
ERR("GetDocument failed: %08lx\n", nsres);
return S_OK;
}
if(NS_FAILED(nsres) || !nsdoc)
return S_OK;
nsIDOMDocument_QueryInterface(nsdoc, &IID_nsIDOMHTMLDocument, (void**)&nshtmldoc);
nsIDOMDocument_Release(nsdoc);
nsres = nsIDOMHTMLDocument_GetBody(nshtmldoc, &nsbody);
nsIDOMHTMLDocument_Release(nshtmldoc);
if(NS_FAILED(nsres) || !nsbody) {
TRACE("Could not get body: %08lx\n", nsres);
return S_OK;
}
node = get_node(This, (nsIDOMNode*)nsbody);
nsIDOMHTMLElement_Release(nsbody);
IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)p);
TRACE("*p = %p\n", *p);
return S_OK;
}
static HRESULT WINAPI HTMLDocument_get_activeElement(IHTMLDocument2 *iface, IHTMLElement **p)

View File

@ -107,6 +107,7 @@ typedef nsISupports nsIDOMProcessingInstruction;
typedef nsISupports nsIDOMEntityReference;
typedef nsISupports nsIDOMHTMLFormElement;
typedef nsISupports nsIDOMHTMLOptionsCollection;
typedef nsISupports nsIDOMHTMLCollection;
[
object,
@ -473,6 +474,33 @@ interface nsIDOMDocument : nsIDOMNode
nsresult GetElementById(const nsAString *elementId, nsIDOMElement **_retval);
}
[
object,
uuid(a6cf9084-15b3-11d2-932e-00805f8add32)
]
interface nsIDOMHTMLDocument : nsIDOMDocument
{
nsresult GetTitle(nsAString *aTitle);
nsresult SetTitle(const nsAString *aTitle);
nsresult GetReferrer(nsAString *aReferrer);
nsresult GetDomain(nsAString *aDomain);
nsresult GetURL(nsAString *aURL);
nsresult GetBody(nsIDOMHTMLElement **aBody);
nsresult SetBody(nsIDOMHTMLElement *aBody);
nsresult GetImages(nsIDOMHTMLCollection **aImages);
nsresult GetApplets(nsIDOMHTMLCollection **aApplets);
nsresult GetLinks(nsIDOMHTMLCollection **aLinks);
nsresult GetForms(nsIDOMHTMLCollection **aForms);
nsresult GetAnchors(nsIDOMHTMLCollection **aAnchors);
nsresult GetCookie(nsAString *aCookie);
nsresult SetCookie(const nsAString *aCookie);
nsresult Open(void);
nsresult Close(void);
nsresult Write(const nsAString *text);
nsresult Writeln(const nsAString *text);
nsresult GetElementsByName(const nsAString *elementName, nsIDOMNodeList **_retval);
}
[
object,
uuid(a6cf906b-15b3-11d2-932e-00805f8add32)