msxml3: Use an iface instead of a vtbl pointer in domimpl.

This commit is contained in:
Michael Stefaniuc 2010-12-16 01:04:11 +01:00 committed by Alexandre Julliard
parent 45f1825e72
commit 0be2929b03
1 changed files with 6 additions and 6 deletions

View File

@ -39,13 +39,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct _domimpl typedef struct _domimpl
{ {
const struct IXMLDOMImplementationVtbl *lpVtbl; IXMLDOMImplementation IXMLDOMImplementation_iface;
LONG ref; LONG ref;
} domimpl; } domimpl;
static inline domimpl *impl_from_IXMLDOMImplementation( IXMLDOMImplementation *iface ) static inline domimpl *impl_from_IXMLDOMImplementation( IXMLDOMImplementation *iface )
{ {
return (domimpl *)((char*)iface - FIELD_OFFSET(domimpl, lpVtbl)); return CONTAINING_RECORD(iface, domimpl, IXMLDOMImplementation_iface);
} }
static HRESULT WINAPI dimimpl_QueryInterface( static HRESULT WINAPI dimimpl_QueryInterface(
@ -164,8 +164,8 @@ static HRESULT WINAPI dimimpl_Invoke(
hr = get_typeinfo(IXMLDOMImplementation_tid, &typeinfo); hr = get_typeinfo(IXMLDOMImplementation_tid, &typeinfo);
if(SUCCEEDED(hr)) if(SUCCEEDED(hr))
{ {
hr = ITypeInfo_Invoke(typeinfo, &(This->lpVtbl), dispIdMember, wFlags, pDispParams, hr = ITypeInfo_Invoke(typeinfo, &This->IXMLDOMImplementation_iface, dispIdMember, wFlags,
pVarResult, pExcepInfo, puArgErr); pDispParams, pVarResult, pExcepInfo, puArgErr);
ITypeInfo_Release(typeinfo); ITypeInfo_Release(typeinfo);
} }
@ -220,10 +220,10 @@ IUnknown* create_doc_Implementation(void)
if ( !This ) if ( !This )
return NULL; return NULL;
This->lpVtbl = &dimimpl_vtbl; This->IXMLDOMImplementation_iface.lpVtbl = &dimimpl_vtbl;
This->ref = 1; This->ref = 1;
return (IUnknown*) &This->lpVtbl; return (IUnknown*)&This->IXMLDOMImplementation_iface;
} }
#endif #endif