msxml3: Implement ownerDocument

Alistair Leslie-Hughes leslie_alistair at hotmail.com
Wed Jan 23 19:31:26 CST 2008


Dont apply this patch.

"Alistair Leslie-Hughes" <leslie_alistair at hotmail.com> wrote in message 
news:fn6308$1gf$1 at 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 at hotmail.com>
> Date: Wed, 23 Jan 2008 11:07:59 +1100
> Subject: [PATCH] Implement ownerDocument
> To: wine-patches <wine-patches at 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
>
>


--------------------------------------------------------------------------------


>
> 





More information about the wine-devel mailing list