msxml3: Use dispex support for IDispatch implementation of process instruction node

Nikolay Sivov nsivov at codeweavers.com
Sat Apr 28 04:20:45 CDT 2012


Use dispex support for IDispatch implementation of process instruction node
-------------- next part --------------
>From 14ccdf5d56a2fde48fac49351131880c03172a08 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <nsivov at codeweavers.com>
Date: Sat, 28 Apr 2012 11:38:03 +0400
Subject: [PATCH 1/2] Use dispex support for IDispatch implementation of process instruction node

---
 dlls/msxml3/pi.c |   49 +++++++------------------------------------------
 1 files changed, 7 insertions(+), 42 deletions(-)

diff --git a/dlls/msxml3/pi.c b/dlls/msxml3/pi.c
index 36ff563..a6034bb 100644
--- a/dlls/msxml3/pi.c
+++ b/dlls/msxml3/pi.c
@@ -126,12 +126,7 @@ static HRESULT WINAPI dom_pi_GetTypeInfoCount(
     UINT* pctinfo )
 {
     dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
-
-    TRACE("(%p)->(%p)\n", This, pctinfo);
-
-    *pctinfo = 1;
-
-    return S_OK;
+    return IDispatchEx_GetTypeInfoCount(&This->node.dispex.IDispatchEx_iface, pctinfo);
 }
 
 static HRESULT WINAPI dom_pi_GetTypeInfo(
@@ -140,10 +135,8 @@ static HRESULT WINAPI dom_pi_GetTypeInfo(
     ITypeInfo** ppTInfo )
 {
     dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
-
-    TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo);
-
-    return get_typeinfo(IXMLDOMProcessingInstruction_tid, ppTInfo);
+    return IDispatchEx_GetTypeInfo(&This->node.dispex.IDispatchEx_iface,
+        iTInfo, lcid, ppTInfo);
 }
 
 static HRESULT WINAPI dom_pi_GetIDsOfNames(
@@ -152,23 +145,8 @@ static HRESULT WINAPI dom_pi_GetIDsOfNames(
     UINT cNames, LCID lcid, DISPID* rgDispId )
 {
     dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
-    ITypeInfo *typeinfo;
-    HRESULT hr;
-
-    TRACE("(%p)->(%s %p %u %u %p)\n", This, debugstr_guid(riid), rgszNames, cNames,
-          lcid, rgDispId);
-
-    if(!rgszNames || cNames == 0 || !rgDispId)
-        return E_INVALIDARG;
-
-    hr = get_typeinfo(IXMLDOMProcessingInstruction_tid, &typeinfo);
-    if(SUCCEEDED(hr))
-    {
-        hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId);
-        ITypeInfo_Release(typeinfo);
-    }
-
-    return hr;
+    return IDispatchEx_GetIDsOfNames(&This->node.dispex.IDispatchEx_iface,
+        riid, rgszNames, cNames, lcid, rgDispId);
 }
 
 static HRESULT WINAPI dom_pi_Invoke(
@@ -178,21 +156,8 @@ static HRESULT WINAPI dom_pi_Invoke(
     EXCEPINFO* pExcepInfo, UINT* puArgErr )
 {
     dom_pi *This = impl_from_IXMLDOMProcessingInstruction( iface );
-    ITypeInfo *typeinfo;
-    HRESULT hr;
-
-    TRACE("(%p)->(%d %s %d %d %p %p %p %p)\n", This, dispIdMember, debugstr_guid(riid),
-          lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
-
-    hr = get_typeinfo(IXMLDOMProcessingInstruction_tid, &typeinfo);
-    if(SUCCEEDED(hr))
-    {
-       hr = ITypeInfo_Invoke(typeinfo, &This->IXMLDOMProcessingInstruction_iface, dispIdMember,
-                wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
-        ITypeInfo_Release(typeinfo);
-    }
-
-    return hr;
+    return IDispatchEx_Invoke(&This->node.dispex.IDispatchEx_iface,
+        dispIdMember, riid, lcid, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
 }
 
 static HRESULT WINAPI dom_pi_get_nodeName(
-- 
1.5.6.5



More information about the wine-patches mailing list