diff --git a/dlls/msxml3/nodelist.c b/dlls/msxml3/nodelist.c index beda9e0063f..2cc69604dff 100644 --- a/dlls/msxml3/nodelist.c +++ b/dlls/msxml3/nodelist.c @@ -48,7 +48,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml); typedef struct _xmlnodelist { - const struct IXMLDOMNodeListVtbl *lpVtbl; + IXMLDOMNodeList IXMLDOMNodeList_iface; LONG ref; xmlNodePtr parent; xmlNodePtr current; @@ -56,7 +56,7 @@ typedef struct _xmlnodelist static inline xmlnodelist *impl_from_IXMLDOMNodeList( IXMLDOMNodeList *iface ) { - return (xmlnodelist *)((char*)iface - FIELD_OFFSET(xmlnodelist, lpVtbl)); + return CONTAINING_RECORD(iface, xmlnodelist, IXMLDOMNodeList_iface); } static HRESULT WINAPI xmlnodelist_QueryInterface( @@ -188,8 +188,8 @@ static HRESULT WINAPI xmlnodelist_Invoke( hr = get_typeinfo(IXMLDOMNodeList_tid, &typeinfo); if(SUCCEEDED(hr)) { - hr = ITypeInfo_Invoke(typeinfo, &(This->lpVtbl), dispIdMember, wFlags, pDispParams, - pVarResult, pExcepInfo, puArgErr); + hr = ITypeInfo_Invoke(typeinfo, &This->IXMLDOMNodeList_iface, dispIdMember, wFlags, + pDispParams, pVarResult, pExcepInfo, puArgErr); ITypeInfo_Release(typeinfo); } @@ -319,14 +319,14 @@ IXMLDOMNodeList* create_children_nodelist( xmlNodePtr node ) if ( !nodelist ) return NULL; - nodelist->lpVtbl = &xmlnodelist_vtbl; + nodelist->IXMLDOMNodeList_iface.lpVtbl = &xmlnodelist_vtbl; nodelist->ref = 1; nodelist->parent = node; nodelist->current = node->children; xmldoc_add_ref( node->doc ); - return (IXMLDOMNodeList*) &nodelist->lpVtbl; + return &nodelist->IXMLDOMNodeList_iface; } #endif