diff --git a/dlls/msxml3/dispex.c b/dlls/msxml3/dispex.c index bd5a46e4b34..3aafc441c1a 100644 --- a/dlls/msxml3/dispex.c +++ b/dlls/msxml3/dispex.c @@ -200,6 +200,8 @@ HRESULT get_typeinfo(enum tid_t tid, ITypeInfo **typeinfo) } *typeinfo = typeinfos[tid]; + + ITypeInfo_AddRef(typeinfos[tid]); return S_OK; } @@ -298,6 +300,7 @@ static dispex_data_t *preprocess_dispex_data(DispatchEx *This) ITypeInfo_ReleaseFuncDesc(ti, funcdesc); } + ITypeInfo_Release(ti); tid++; } @@ -319,6 +322,7 @@ static dispex_data_t *preprocess_dispex_data(DispatchEx *This) data->name_table = NULL; } + ITypeInfo_Release(dti); return data; } @@ -379,16 +383,13 @@ static HRESULT WINAPI DispatchEx_GetTypeInfoCount(IDispatchEx *iface, UINT *pcti } static HRESULT WINAPI DispatchEx_GetTypeInfo(IDispatchEx *iface, UINT iTInfo, - LCID lcid, ITypeInfo **ti) + LCID lcid, ITypeInfo **ppTInfo) { DispatchEx *This = impl_from_IDispatchEx(iface); - HRESULT hr; - TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ti); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - hr = get_typeinfo(This->data->disp_tid, ti); - ITypeInfo_AddRef(*ti); - return hr; + return get_typeinfo(This->data->disp_tid, ppTInfo); } static HRESULT WINAPI DispatchEx_GetIDsOfNames(IDispatchEx *iface, REFIID riid, @@ -602,6 +603,7 @@ static HRESULT WINAPI DispatchEx_InvokeEx(IDispatchEx *iface, DISPID id, LCID lc hres = ITypeInfo_Invoke(ti, unk, id, wFlags, pdp, pvarRes, pei, &argerr); + ITypeInfo_Release(ti); IUnknown_Release(unk); return hres; } diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c index 9d93cca7011..3f023373a85 100644 --- a/dlls/msxml3/httprequest.c +++ b/dlls/msxml3/httprequest.c @@ -1233,16 +1233,13 @@ static HRESULT WINAPI XMLHTTPRequest_GetTypeInfoCount(IXMLHTTPRequest *iface, UI } static HRESULT WINAPI XMLHTTPRequest_GetTypeInfo(IXMLHTTPRequest *iface, UINT iTInfo, - LCID lcid, ITypeInfo **ti) + LCID lcid, ITypeInfo **ppTInfo) { httprequest *This = impl_from_IXMLHTTPRequest( iface ); - HRESULT hr; - TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ti); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - hr = get_typeinfo(IXMLHTTPRequest_tid, ti); - ITypeInfo_AddRef(*ti); - return hr; + return get_typeinfo(IXMLHTTPRequest_tid, ppTInfo); } static HRESULT WINAPI XMLHTTPRequest_GetIDsOfNames(IXMLHTTPRequest *iface, REFIID riid, @@ -1260,7 +1257,10 @@ static HRESULT WINAPI XMLHTTPRequest_GetIDsOfNames(IXMLHTTPRequest *iface, REFII hr = get_typeinfo(IXMLHTTPRequest_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } return hr; } @@ -1278,8 +1278,11 @@ static HRESULT WINAPI XMLHTTPRequest_Invoke(IXMLHTTPRequest *iface, DISPID dispI hr = get_typeinfo(IXMLHTTPRequest_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_Invoke(typeinfo, &This->IXMLHTTPRequest_iface, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } return hr; } @@ -1606,16 +1609,13 @@ static HRESULT WINAPI ServerXMLHTTPRequest_GetTypeInfoCount(IServerXMLHTTPReques } static HRESULT WINAPI ServerXMLHTTPRequest_GetTypeInfo(IServerXMLHTTPRequest *iface, UINT iTInfo, - LCID lcid, ITypeInfo **ti) + LCID lcid, ITypeInfo **ppTInfo) { serverhttp *This = impl_from_IServerXMLHTTPRequest( iface ); - HRESULT hr; - TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ti); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - hr = get_typeinfo(IServerXMLHTTPRequest_tid, ti); - ITypeInfo_AddRef(*ti); - return hr; + return get_typeinfo(IServerXMLHTTPRequest_tid, ppTInfo); } static HRESULT WINAPI ServerXMLHTTPRequest_GetIDsOfNames(IServerXMLHTTPRequest *iface, REFIID riid, @@ -1633,7 +1633,10 @@ static HRESULT WINAPI ServerXMLHTTPRequest_GetIDsOfNames(IServerXMLHTTPRequest * hr = get_typeinfo(IServerXMLHTTPRequest_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } return hr; } @@ -1651,8 +1654,11 @@ static HRESULT WINAPI ServerXMLHTTPRequest_Invoke(IServerXMLHTTPRequest *iface, hr = get_typeinfo(IServerXMLHTTPRequest_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_Invoke(typeinfo, &This->IServerXMLHTTPRequest_iface, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } return hr; } diff --git a/dlls/msxml3/mxwriter.c b/dlls/msxml3/mxwriter.c index ff1f1c83e79..d62e6a3057b 100644 --- a/dlls/msxml3/mxwriter.c +++ b/dlls/msxml3/mxwriter.c @@ -2180,16 +2180,11 @@ static HRESULT WINAPI VBSAXAttributes_GetTypeInfoCount( IVBSAXAttributes *iface, static HRESULT WINAPI VBSAXAttributes_GetTypeInfo( IVBSAXAttributes *iface, - UINT iTInfo, LCID lcid, ITypeInfo** ti ) + UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo ) { mxattributes *This = impl_from_IVBSAXAttributes( iface ); - HRESULT hr; - - TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ti); - - hr = get_typeinfo(IVBSAXAttributes_tid, ti); - ITypeInfo_AddRef(*ti); - return hr; + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); + return get_typeinfo(IVBSAXAttributes_tid, ppTInfo); } static HRESULT WINAPI VBSAXAttributes_GetIDsOfNames( @@ -2212,7 +2207,10 @@ static HRESULT WINAPI VBSAXAttributes_GetIDsOfNames( hr = get_typeinfo(IVBSAXAttributes_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } return hr; } @@ -2237,8 +2235,11 @@ static HRESULT WINAPI VBSAXAttributes_Invoke( hr = get_typeinfo(IVBSAXAttributes_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_Invoke(typeinfo, &This->IVBSAXAttributes_iface, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } return hr; } diff --git a/dlls/msxml3/node.c b/dlls/msxml3/node.c index 7b6e1abb1ca..867b8907f07 100644 --- a/dlls/msxml3/node.c +++ b/dlls/msxml3/node.c @@ -1113,15 +1113,15 @@ static HRESULT WINAPI unknode_GetTypeInfo( IXMLDOMNode *iface, UINT iTInfo, LCID lcid, - ITypeInfo** ti ) + ITypeInfo** ppTInfo ) { unknode *This = unknode_from_IXMLDOMNode( iface ); HRESULT hr; - TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ti); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); + + hr = get_typeinfo(IXMLDOMNode_tid, ppTInfo); - hr = get_typeinfo(IXMLDOMNode_tid, ti); - ITypeInfo_AddRef(*ti); return hr; } @@ -1146,7 +1146,10 @@ static HRESULT WINAPI unknode_GetIDsOfNames( hr = get_typeinfo(IXMLDOMNode_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } return hr; } @@ -1171,8 +1174,11 @@ static HRESULT WINAPI unknode_Invoke( hr = get_typeinfo(IXMLDOMNode_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_Invoke(typeinfo, &This->IXMLDOMNode_iface, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } return hr; } diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c index 3b167b797c5..6c0f2ca7a32 100644 --- a/dlls/msxml3/saxreader.c +++ b/dlls/msxml3/saxreader.c @@ -727,15 +727,15 @@ static HRESULT WINAPI ivbsaxattributes_GetTypeInfoCount( IVBSAXAttributes *iface static HRESULT WINAPI ivbsaxattributes_GetTypeInfo( IVBSAXAttributes *iface, - UINT iTInfo, LCID lcid, ITypeInfo** ti ) + UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo ) { saxlocator *This = impl_from_IVBSAXAttributes( iface ); HRESULT hr; - TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ti); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); + + hr = get_typeinfo(IVBSAXAttributes_tid, ppTInfo); - hr = get_typeinfo(IVBSAXAttributes_tid, ti); - ITypeInfo_AddRef(*ti); return hr; } @@ -759,7 +759,10 @@ static HRESULT WINAPI ivbsaxattributes_GetIDsOfNames( hr = get_typeinfo(IVBSAXAttributes_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } return hr; } @@ -784,8 +787,11 @@ static HRESULT WINAPI ivbsaxattributes_Invoke( hr = get_typeinfo(IVBSAXAttributes_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_Invoke(typeinfo, &This->IVBSAXAttributes_iface, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } return hr; } @@ -1910,15 +1916,15 @@ static HRESULT WINAPI ivbsaxlocator_GetTypeInfoCount( IVBSAXLocator *iface, UINT static HRESULT WINAPI ivbsaxlocator_GetTypeInfo( IVBSAXLocator *iface, - UINT iTInfo, LCID lcid, ITypeInfo** ti ) + UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo ) { saxlocator *This = impl_from_IVBSAXLocator( iface ); HRESULT hr; - TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ti); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); + + hr = get_typeinfo(IVBSAXLocator_tid, ppTInfo); - hr = get_typeinfo(IVBSAXLocator_tid, ti); - ITypeInfo_AddRef(*ti); return hr; } @@ -1942,7 +1948,10 @@ static HRESULT WINAPI ivbsaxlocator_GetIDsOfNames( hr = get_typeinfo(IVBSAXLocator_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } return hr; } @@ -1967,8 +1976,11 @@ static HRESULT WINAPI ivbsaxlocator_Invoke( hr = get_typeinfo(IVBSAXLocator_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_Invoke(typeinfo, &This->IVBSAXLocator_iface, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } return hr; } diff --git a/dlls/msxml3/xmldoc.c b/dlls/msxml3/xmldoc.c index 134d80d0275..1cf87855878 100644 --- a/dlls/msxml3/xmldoc.c +++ b/dlls/msxml3/xmldoc.c @@ -141,16 +141,13 @@ static HRESULT WINAPI xmldoc_GetTypeInfoCount(IXMLDocument *iface, UINT* pctinfo } static HRESULT WINAPI xmldoc_GetTypeInfo(IXMLDocument *iface, UINT iTInfo, - LCID lcid, ITypeInfo** ti) + LCID lcid, ITypeInfo** ppTInfo) { xmldoc *This = impl_from_IXMLDocument(iface); - HRESULT hr; - TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ti); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); - hr = get_typeinfo(IXMLDocument_tid, ti); - ITypeInfo_AddRef(*ti); - return hr; + return get_typeinfo(IXMLDocument_tid, ppTInfo); } static HRESULT WINAPI xmldoc_GetIDsOfNames(IXMLDocument *iface, REFIID riid, @@ -169,7 +166,10 @@ static HRESULT WINAPI xmldoc_GetIDsOfNames(IXMLDocument *iface, REFIID riid, hr = get_typeinfo(IXMLDocument_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } return hr; } @@ -188,8 +188,11 @@ static HRESULT WINAPI xmldoc_Invoke(IXMLDocument *iface, DISPID dispIdMember, hr = get_typeinfo(IXMLDocument_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_Invoke(typeinfo, &This->IXMLDocument_iface, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } return hr; } diff --git a/dlls/msxml3/xmlelem.c b/dlls/msxml3/xmlelem.c index d3be63e0bb4..679e159b5dc 100644 --- a/dlls/msxml3/xmlelem.c +++ b/dlls/msxml3/xmlelem.c @@ -121,15 +121,15 @@ static HRESULT WINAPI xmlelem_GetTypeInfoCount(IXMLElement *iface, UINT* pctinfo } static HRESULT WINAPI xmlelem_GetTypeInfo(IXMLElement *iface, UINT iTInfo, - LCID lcid, ITypeInfo** ti) + LCID lcid, ITypeInfo** ppTInfo) { xmlelem *This = impl_from_IXMLElement(iface); HRESULT hr; - TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ti); + TRACE("(%p)->(%u %u %p)\n", This, iTInfo, lcid, ppTInfo); + + hr = get_typeinfo(IXMLElement_tid, ppTInfo); - hr = get_typeinfo(IXMLElement_tid, ti); - ITypeInfo_AddRef(*ti); return hr; } @@ -149,7 +149,10 @@ static HRESULT WINAPI xmlelem_GetIDsOfNames(IXMLElement *iface, REFIID riid, hr = get_typeinfo(IXMLElement_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_GetIDsOfNames(typeinfo, rgszNames, cNames, rgDispId); + ITypeInfo_Release(typeinfo); + } return hr; } @@ -168,8 +171,11 @@ static HRESULT WINAPI xmlelem_Invoke(IXMLElement *iface, DISPID dispIdMember, hr = get_typeinfo(IXMLElement_tid, &typeinfo); if(SUCCEEDED(hr)) + { hr = ITypeInfo_Invoke(typeinfo, &This->IXMLElement_iface, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); + ITypeInfo_Release(typeinfo); + } return hr; }