msxml3: Use ifaces instead of vtbl pointers in xmlnodemap.

oldstable
Michael Stefaniuc 2010-12-16 01:04:17 +01:00 committed by Alexandre Julliard
parent 41ac7a3b5c
commit 11b24354ff
1 changed files with 13 additions and 13 deletions

View File

@ -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