Jacek Caban : mshtml: Added IHTMLDocument2::createElement implementation.

Alexandre Julliard julliard at winehq.org
Fri Jun 20 06:22:03 CDT 2008


Module: wine
Branch: master
Commit: f13c5685b5789e2cff5fe3b6501123c64ae181e7
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=f13c5685b5789e2cff5fe3b6501123c64ae181e7

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jun 19 16:14:03 2008 -0500

mshtml: Added IHTMLDocument2::createElement implementation.

---

 dlls/mshtml/htmldoc.c |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index fa9e16f..189ea43 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -878,8 +878,31 @@ static HRESULT WINAPI HTMLDocument_createElement(IHTMLDocument2 *iface, BSTR eTa
                                                  IHTMLElement **newElem)
 {
     HTMLDocument *This = HTMLDOC_THIS(iface);
-    FIXME("(%p)->(%s %p)\n", This, debugstr_w(eTag), newElem);
-    return E_NOTIMPL;
+    nsIDOMDocument *nsdoc;
+    nsIDOMElement *nselem;
+    HTMLElement *elem;
+    nsAString tag_str;
+    nsresult nsres;
+
+    TRACE("(%p)->(%s %p)\n", This, debugstr_w(eTag), newElem);
+
+    nsIWebNavigation_GetDocument(This->nscontainer->navigation, &nsdoc);
+
+    nsAString_Init(&tag_str, eTag);
+    nsres = nsIDOMDocument_CreateElement(nsdoc, &tag_str, &nselem);
+    nsAString_Finish(&tag_str);
+    nsIDOMDocument_Release(nsdoc);
+    if(NS_FAILED(nsres)) {
+        ERR("CreateElement failed: %08x\n", nsres);
+        return E_FAIL;
+    }
+
+    elem = HTMLElement_Create(This, (nsIDOMNode*)nselem);
+    nsIDOMElement_Release(nselem);
+
+    *newElem = HTMLELEM(elem);
+    IHTMLElement_AddRef(HTMLELEM(elem));
+    return S_OK;
 }
 
 static HRESULT WINAPI HTMLDocument_put_onhelp(IHTMLDocument2 *iface, VARIANT v)




More information about the wine-cvs mailing list