Dont apply this patch.
"Alistair Leslie-Hughes" <leslie_alistair(a)hotmail.com> wrote in message
news:fn6308$1gf$1@ger.gmane.org...
> Hi,
>
> Changelog:
> msxml3: Implement ownerDocument
>
> Best Regards
> Alistair Leslie-Hughes
>
--------------------------------------------------------------------------------
> From 422440f49888d555c6031e3e40cafda0523c6ad8 Mon Sep 17 00:00:00 2001
> From: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com>
> Date: Wed, 23 Jan 2008 11:07:59 +1100
> Subject: [PATCH] Implement ownerDocument
> To: wine-patches <wine-patches(a)winehq.org>
>
> ---
> dlls/msxml3/node.c | 22 ++++++++++++++++++++--
> dlls/msxml3/tests/domdoc.c | 23 +++++++++++++++++++++--
> 2 files changed, 41 insertions(+), 4 deletions(-)
>
> diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c
> index 9d43c09..bc7a2a0 100644
> --- a/dlls/msxml3/node.c
> +++ b/dlls/msxml3/node.c
> @@ -602,8 +602,26 @@ static HRESULT WINAPI xmlnode_get_ownerDocument(
> IXMLDOMNode *iface,
> IXMLDOMDocument** DOMDocument)
> {
> - FIXME("\n");
> - return E_NOTIMPL;
> + HRESULT hr = S_OK;
> + xmlnode *This = impl_from_IXMLDOMNode( iface );
> + TRACE("\n");
> +
> + if(!DOMDocument)
> + return E_INVALIDARG;
> +
> + *DOMDocument = NULL;
> +
> + switch( This->node->type )
> + {
> + case XML_DOCUMENT_NODE:
> + hr = S_FALSE;
> + break;
> + default:
> + *DOMDocument = (IXMLDOMDocument*)create_basic_node(
> (xmlNodePtr)This->node->doc, NULL );
>
> + break;
> + }
> +
> + return hr;
> }
>
> static HRESULT WINAPI xmlnode_cloneNode(
> diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
> index 4507d08..8802053 100644
> --- a/dlls/msxml3/tests/domdoc.c
> +++ b/dlls/msxml3/tests/domdoc.c
> @@ -687,10 +687,9 @@ static void test_domnode( void )
> {
> owner = NULL;
> r = IXMLDOMNode_get_ownerDocument( element, &owner );
> - todo_wine {
> ok( r == S_OK, "get_ownerDocument return code\n");
> - }
> ok( owner != doc, "get_ownerDocument return\n");
> + IXMLDOMDocument_Release(owner);
>
> type = NODE_INVALID;
> r = IXMLDOMNode_get_nodeType( element, &type);
> @@ -1869,6 +1868,7 @@ static void test_cloneNode(void )
> static void test_xmlTypes(void)
> {
> IXMLDOMDocument *doc = NULL;
> + IXMLDOMDocument *docOwner = NULL;
> IXMLDOMElement *pRoot;
> HRESULT hr;
> IXMLDOMComment *pComment;
> @@ -1923,6 +1923,25 @@ static void test_xmlTypes(void)
> ok(hr == S_OK, "ret %08x\n", hr );
> ok( !lstrcmpW( str, _bstr_("document") ), "incorrect nodeTypeString
> string\n");
> SysFreeString(str);
> +
> + /* test ownerDocument */
> + hr = IXMLDOMDocument_get_ownerDocument(doc, NULL);
> + ok(hr == E_INVALIDARG, "ret %08x\n", hr );
> +
> + hr = IXMLDOMDocument_get_ownerDocument(doc, &docOwner);
> + ok(hr == S_FALSE, "ret %08x\n", hr );
> + ok(docOwner == NULL, "ownerDocument return a value\n");
> + if(docOwner != NULL)
> + {
> + str = NULL;
> + hr = IXMLDOMDocument_get_nodeName( docOwner, &str );
> + ok ( hr == S_OK, "get_nodeName wrong code\n");
> + ok ( str != NULL, "str is null\n");
> + ok( !lstrcmpW( str, szDocument ), "incorrect nodeName\n");
> + SysFreeString( str );
> +
> + IXMLDOMDocument_Release(docOwner);
> + }
>
> /* test implementation */
> hr = IXMLDOMDocument_get_implementation(doc, NULL);
> --
> 1.5.3.7
>
>
--------------------------------------------------------------------------------
>
>