mshtml: Added get_documentElement implementation.

This commit is contained in:
Jacek Caban 2006-03-05 20:41:18 +01:00 committed by Alexandre Julliard
parent 874fd57841
commit 6ef5f95562
2 changed files with 65 additions and 5 deletions

View File

@ -112,11 +112,34 @@ static HRESULT WINAPI HTMLDocument3_createTextNode(IHTMLDocument3 *iface, BSTR t
return E_NOTIMPL;
}
static HRESULT WINAPI HTMLDocument3_documentElement(IHTMLDocument3 *iface, IHTMLElement **p)
static HRESULT WINAPI HTMLDocument3_get_documentElement(IHTMLDocument3 *iface, IHTMLElement **p)
{
HTMLDocument *This = HTMLDOC3_THIS(iface);
FIXME("(%p)->(%p)\n", This, p);
return E_NOTIMPL;
nsIDOMDocument *nsdoc;
HTMLDOMNode *node;
nsresult nsres;
TRACE("(%p)->(%p)\n", This, p);
if(!This->nscontainer) {
*p = NULL;
return S_OK;
}
nsres = nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
if(NS_FAILED(nsres))
ERR("GetDocument failed: %08lx\n", nsres);
if(nsdoc) {
node = get_node(This, (nsIDOMNode*)nsdoc);
nsIDOMDocument_Release(nsdoc);
IHTMLDOMNode_QueryInterface(HTMLDOMNODE(node), &IID_IHTMLElement, (void**)p);
}else {
*p = NULL;
}
return S_OK;
}
static HRESULT WINAPI HTMLDocument3_uniqueID(IHTMLDocument3 *iface, BSTR *p)
@ -402,7 +425,7 @@ static const IHTMLDocument3Vtbl HTMLDocument3Vtbl = {
HTMLDocument3_releaseCapture,
HTMLDocument3_recalc,
HTMLDocument3_createTextNode,
HTMLDocument3_documentElement,
HTMLDocument3_get_documentElement,
HTMLDocument3_uniqueID,
HTMLDocument3_attachEvent,
HTMLDocument3_detachEvent,

View File

@ -55,6 +55,7 @@ typedef nsStringContainer nsAString;
interface nsIWebBrowserChrome;
interface nsILoadGroup;
interface nsIDOMNode;
interface nsIDOMDocument;
[
object,
@ -69,7 +70,6 @@ interface nsISupports
/* Currently we don't need a full declaration of these interfaces */
typedef nsISupports nsIWeakReference;
typedef nsISupports nsIDOMDocument;
typedef nsISupports nsISHistory;
typedef nsISupports nsISimpleEnumerator;
typedef nsISupports nsIWidget;
@ -86,6 +86,14 @@ typedef nsISupports nsIPrompt;
typedef nsISupports nsIAuthPrompt;
typedef nsISupports nsIDOMNamedNodeMap;
typedef nsISupports nsIDOMAttr;
typedef nsISupports nsIDOMDocumentType;
typedef nsISupports nsIDOMDOMImplementation;
typedef nsISupports nsIDOMDocumentFragment;
typedef nsISupports nsIDOMText;
typedef nsISupports nsIDOMComment;
typedef nsISupports nsIDOMCDATASection;
typedef nsISupports nsIDOMProcessingInstruction;
typedef nsISupports nsIDOMEntityReference;
[
object,
@ -392,6 +400,35 @@ interface nsIDOMHTMLElement : nsIDOMElement
nsresult SetClassName(const nsAString *aClassName);
}
[
object,
uuid(a6cf9075-15b3-11d2-932e-00805f8add32)
]
interface nsIDOMDocument : nsIDOMNode
{
nsresult GetDoctype(nsIDOMDocumentType **aDoctype);
nsresult GetImplementation(nsIDOMDOMImplementation **aImplementation);
nsresult GetDocumentElement(nsIDOMElement **aDocumentElement);
nsresult CreateElement(const nsAString *tagName, nsIDOMElement **_retval);
nsresult CreateDocumentFragment(nsIDOMDocumentFragment **_retval);
nsresult CreateTextNode(const nsAString *data, nsIDOMText **_retval);
nsresult CreateComment(const nsAString *data, nsIDOMComment **_retval);
nsresult CreateCDATASection(const nsAString *data, nsIDOMCDATASection **_retval);
nsresult CreateProcessingInstruction(const nsAString *target, const nsAString *data,
nsIDOMProcessingInstruction **_retval);
nsresult CreateAttribute(const nsAString *name, nsIDOMAttr **_retval);
nsresult CreateEntityReference(const nsAString *name, nsIDOMEntityReference **_retval);
nsresult GetElementsByTagName(const nsAString *tagname, nsIDOMNodeList **_retval);
nsresult ImportNode(nsIDOMNode *importedNode, PRBool deep, nsIDOMNode **_retval);
nsresult CreateElementNS(const nsAString *namespaceURI, const nsAString *qualifiedName,
nsIDOMElement **_retval);
nsresult CreateAttributeNS(const nsAString *namespaceURI, const nsAString *qualifiedName,
nsIDOMAttr **_retval);
nsresult GetElementsByTagNameNS(const nsAString *namespaceURI, const nsAString *localName,
nsIDOMNodeList **_retval);
nsresult GetElementById(const nsAString *elementId, nsIDOMElement **_retval);
}
[
object,
uuid(a6cf906b-15b3-11d2-932e-00805f8add32)