[PATCH] Implement createComment
Alistair Leslie-Hughes
leslie_alistair at hotmail.com
Tue Jan 1 19:38:47 CST 2008
---
dlls/msxml3/domdoc.c | 25 +++++++++++++++++++++++--
dlls/msxml3/tests/domdoc.c | 10 ++++++++++
2 files changed, 33 insertions(+), 2 deletions(-)
diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index af5097c..d366840 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -909,8 +909,29 @@ static HRESULT WINAPI domdoc_createComment(
BSTR data,
IXMLDOMComment** comment )
{
- FIXME("\n");
- return E_NOTIMPL;
+ domdoc *This = impl_from_IXMLDOMDocument2( iface );
+ xmlNodePtr xmlnode;
+ xmlChar *xml_content;
+
+ TRACE("%p->(%s %p)\n", iface, debugstr_w(data), comment);
+
+ if(!comment)
+ return E_INVALIDARG;
+
+ *comment = NULL;
+
+ xml_content = xmlChar_from_wchar((WCHAR*)data);
+ xmlnode = xmlNewComment(xml_content);
+ HeapFree(GetProcessHeap(), 0, xml_content);
+
+ if(!xmlnode)
+ return E_FAIL;
+
+ xmlnode->doc = get_doc( This );
+
+ *comment = (IXMLDOMComment*)create_comment(xmlnode);
+
+ return S_OK;
}
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index c226ad3..1ea72c7 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -135,6 +135,8 @@ static const WCHAR szstr2[] = { 's','t','r','2',0 };
static const WCHAR szstar[] = { '*',0 };
static const WCHAR szfn1_txt[] = {'f','n','1','.','t','x','t',0};
+static WCHAR szComment[] = {'A',' ','C','o','m','m','n','e','t',0 };
+
#define expect_bstr_eq_and_free(bstr, expect) { \
BSTR bstrExp = alloc_str_from_narrow(expect); \
ok(lstrcmpW(bstr, bstrExp) == 0, "String differs\n"); \
@@ -334,6 +336,7 @@ static void test_domdoc( void )
IXMLDOMElement *element = NULL;
IXMLDOMNode *node;
IXMLDOMText *nodetext = NULL;
+ IXMLDOMComment *node_comment = NULL;
VARIANT_BOOL b;
VARIANT var;
BSTR str;
@@ -497,6 +500,13 @@ static void test_domdoc( void )
ok( r == S_OK, "returns %08x\n", r );
IXMLDOMText_Release( nodetext );
SysFreeString( str );
+
+ /* test Create Comment */
+ r = IXMLDOMDocument_createComment(doc, NULL, NULL);
+ ok( r == E_INVALIDARG, "returns %08x\n", r );
+ r = IXMLDOMDocument_createComment(doc, szComment, &node_comment);
+ ok( r == S_OK, "returns %08x\n", r );
+ IXMLDOMText_Release( node_comment );
r = IXMLDOMDocument_Release( doc );
ok( r == 0, "document ref count incorrect\n");
--
1.5.3.6
--------------090709060509030304000201--
More information about the wine-patches
mailing list