forked from Mirrors/wine-wine
msxml3: Use ifaces instead of vtbl pointers in xmlnodemap.
parent
41ac7a3b5c
commit
11b24354ff
|
@ -40,8 +40,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml);
|
||||||
|
|
||||||
typedef struct _xmlnodemap
|
typedef struct _xmlnodemap
|
||||||
{
|
{
|
||||||
const struct IXMLDOMNamedNodeMapVtbl *lpVtbl;
|
IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap_iface;
|
||||||
const struct ISupportErrorInfoVtbl *lpSEIVtbl;
|
ISupportErrorInfo ISupportErrorInfo_iface;
|
||||||
LONG ref;
|
LONG ref;
|
||||||
IXMLDOMNode *node;
|
IXMLDOMNode *node;
|
||||||
LONG iterator;
|
LONG iterator;
|
||||||
|
@ -49,12 +49,12 @@ typedef struct _xmlnodemap
|
||||||
|
|
||||||
static inline xmlnodemap *impl_from_IXMLDOMNamedNodeMap( IXMLDOMNamedNodeMap *iface )
|
static inline xmlnodemap *impl_from_IXMLDOMNamedNodeMap( IXMLDOMNamedNodeMap *iface )
|
||||||
{
|
{
|
||||||
return (xmlnodemap *)((char*)iface - FIELD_OFFSET(xmlnodemap, lpVtbl));
|
return CONTAINING_RECORD(iface, xmlnodemap, IXMLDOMNamedNodeMap_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline xmlnodemap *impl_from_ISupportErrorInfo( ISupportErrorInfo *iface )
|
static inline xmlnodemap *impl_from_ISupportErrorInfo( ISupportErrorInfo *iface )
|
||||||
{
|
{
|
||||||
return (xmlnodemap *)((char*)iface - FIELD_OFFSET(xmlnodemap, lpSEIVtbl));
|
return CONTAINING_RECORD(iface, xmlnodemap, ISupportErrorInfo_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI xmlnodemap_QueryInterface(
|
static HRESULT WINAPI xmlnodemap_QueryInterface(
|
||||||
|
@ -72,7 +72,7 @@ static HRESULT WINAPI xmlnodemap_QueryInterface(
|
||||||
}
|
}
|
||||||
else if( IsEqualGUID( riid, &IID_ISupportErrorInfo ))
|
else if( IsEqualGUID( riid, &IID_ISupportErrorInfo ))
|
||||||
{
|
{
|
||||||
*ppvObject = &This->lpSEIVtbl;
|
*ppvObject = &This->ISupportErrorInfo_iface;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -172,8 +172,8 @@ static HRESULT WINAPI xmlnodemap_Invoke(
|
||||||
hr = get_typeinfo(IXMLDOMNamedNodeMap_tid, &typeinfo);
|
hr = get_typeinfo(IXMLDOMNamedNodeMap_tid, &typeinfo);
|
||||||
if(SUCCEEDED(hr))
|
if(SUCCEEDED(hr))
|
||||||
{
|
{
|
||||||
hr = ITypeInfo_Invoke(typeinfo, &(This->lpVtbl), dispIdMember, wFlags, pDispParams,
|
hr = ITypeInfo_Invoke(typeinfo, &This->IXMLDOMNamedNodeMap_iface, dispIdMember, wFlags,
|
||||||
pVarResult, pExcepInfo, puArgErr);
|
pDispParams, pVarResult, pExcepInfo, puArgErr);
|
||||||
ITypeInfo_Release(typeinfo);
|
ITypeInfo_Release(typeinfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -513,21 +513,21 @@ static HRESULT WINAPI support_error_QueryInterface(
|
||||||
{
|
{
|
||||||
xmlnodemap *This = impl_from_ISupportErrorInfo( iface );
|
xmlnodemap *This = impl_from_ISupportErrorInfo( iface );
|
||||||
TRACE("%p %s %p\n", iface, debugstr_guid(riid), ppvObject);
|
TRACE("%p %s %p\n", iface, debugstr_guid(riid), ppvObject);
|
||||||
return IXMLDOMNamedNodeMap_QueryInterface((IXMLDOMNamedNodeMap*)&This->lpVtbl, riid, ppvObject);
|
return IXMLDOMNamedNodeMap_QueryInterface(&This->IXMLDOMNamedNodeMap_iface, riid, ppvObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI support_error_AddRef(
|
static ULONG WINAPI support_error_AddRef(
|
||||||
ISupportErrorInfo *iface )
|
ISupportErrorInfo *iface )
|
||||||
{
|
{
|
||||||
xmlnodemap *This = impl_from_ISupportErrorInfo( iface );
|
xmlnodemap *This = impl_from_ISupportErrorInfo( iface );
|
||||||
return IXMLDOMNamedNodeMap_AddRef((IXMLDOMNamedNodeMap*)&This->lpVtbl);
|
return IXMLDOMNamedNodeMap_AddRef(&This->IXMLDOMNamedNodeMap_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI support_error_Release(
|
static ULONG WINAPI support_error_Release(
|
||||||
ISupportErrorInfo *iface )
|
ISupportErrorInfo *iface )
|
||||||
{
|
{
|
||||||
xmlnodemap *This = impl_from_ISupportErrorInfo( iface );
|
xmlnodemap *This = impl_from_ISupportErrorInfo( iface );
|
||||||
return IXMLDOMNamedNodeMap_Release((IXMLDOMNamedNodeMap*)&This->lpVtbl);
|
return IXMLDOMNamedNodeMap_Release(&This->IXMLDOMNamedNodeMap_iface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI support_error_InterfaceSupportsErrorInfo(
|
static HRESULT WINAPI support_error_InterfaceSupportsErrorInfo(
|
||||||
|
@ -554,8 +554,8 @@ IXMLDOMNamedNodeMap *create_nodemap( IXMLDOMNode *node )
|
||||||
if ( !nodemap )
|
if ( !nodemap )
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
nodemap->lpVtbl = &xmlnodemap_vtbl;
|
nodemap->IXMLDOMNamedNodeMap_iface.lpVtbl = &xmlnodemap_vtbl;
|
||||||
nodemap->lpSEIVtbl = &support_error_vtbl;
|
nodemap->ISupportErrorInfo_iface.lpVtbl = &support_error_vtbl;
|
||||||
nodemap->node = node;
|
nodemap->node = node;
|
||||||
nodemap->ref = 1;
|
nodemap->ref = 1;
|
||||||
nodemap->iterator = 0;
|
nodemap->iterator = 0;
|
||||||
|
@ -563,7 +563,7 @@ IXMLDOMNamedNodeMap *create_nodemap( IXMLDOMNode *node )
|
||||||
IXMLDOMNode_AddRef( node );
|
IXMLDOMNode_AddRef( node );
|
||||||
/* Since we AddRef a node here, we don't need to call xmldoc_add_ref() */
|
/* Since we AddRef a node here, we don't need to call xmldoc_add_ref() */
|
||||||
|
|
||||||
return (IXMLDOMNamedNodeMap*) &nodemap->lpVtbl;
|
return &nodemap->IXMLDOMNamedNodeMap_iface;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue