Module: wine Branch: master Commit: 4c69e86dea6eea4bfa2ac9c948a6729fc60cd199 URL: http://source.winehq.org/git/wine.git/?a=commit;h=4c69e86dea6eea4bfa2ac9c948...
Author: Piotr Caban piotr.caban@gmail.com Date: Thu Jul 31 16:47:26 2008 +0200
msxml3: Prepare functions for IVBSAX... interfaces implementation.
---
dlls/msxml3/saxreader.c | 28 ++++++++++++++++++++-------- 1 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c index d8d47e8..0268d0a 100644 --- a/dlls/msxml3/saxreader.c +++ b/dlls/msxml3/saxreader.c @@ -48,7 +48,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(msxml);
typedef struct _saxreader { - const struct IVBSAXXMLReaderVtbl *lpVtbl; + const struct IVBSAXXMLReaderVtbl *lpVBSAXXMLReaderVtbl; const struct ISAXXMLReaderVtbl *lpSAXXMLReaderVtbl; LONG ref; struct ISAXContentHandler *contentHandler; @@ -58,6 +58,7 @@ typedef struct _saxreader
typedef struct _saxlocator { + const struct IVBSAXLocatorVtbl *lpVBSAXLocatorVtbl; const struct ISAXLocatorVtbl *lpSAXLocatorVtbl; LONG ref; saxreader *saxreader; @@ -72,6 +73,7 @@ typedef struct _saxlocator
typedef struct _saxattributes { + const struct IVBSAXAttributesVtbl *lpVBSAXAttributesVtbl; const struct ISAXAttributesVtbl *lpSAXAttributesVtbl; LONG ref; int nb_attributes; @@ -84,7 +86,7 @@ typedef struct _saxattributes
static inline saxreader *impl_from_IVBSAXXMLReader( IVBSAXXMLReader *iface ) { - return (saxreader *)((char*)iface - FIELD_OFFSET(saxreader, lpVtbl)); + return (saxreader *)((char*)iface - FIELD_OFFSET(saxreader, lpVBSAXXMLReaderVtbl)); }
static inline saxreader *impl_from_ISAXXMLReader( ISAXXMLReader *iface ) @@ -92,11 +94,21 @@ static inline saxreader *impl_from_ISAXXMLReader( ISAXXMLReader *iface ) return (saxreader *)((char*)iface - FIELD_OFFSET(saxreader, lpSAXXMLReaderVtbl)); }
+static inline saxlocator *impl_from_IVBSAXLocator( IVBSAXLocator *iface ) +{ + return (saxlocator *)((char*)iface - FIELD_OFFSET(saxlocator, lpVBSAXLocatorVtbl)); +} + static inline saxlocator *impl_from_ISAXLocator( ISAXLocator *iface ) { return (saxlocator *)((char*)iface - FIELD_OFFSET(saxlocator, lpSAXLocatorVtbl)); }
+static inline saxattributes *impl_from_IVBSAXAttributes( IVBSAXAttributes *iface ) +{ + return (saxattributes *)((char*)iface - FIELD_OFFSET(saxattributes, lpVBSAXAttributesVtbl)); +} + static inline saxattributes *impl_from_ISAXAttributes( ISAXAttributes *iface ) { return (saxattributes *)((char*)iface - FIELD_OFFSET(saxattributes, lpSAXAttributesVtbl)); @@ -1065,7 +1077,7 @@ static HRESULT WINAPI saxxmlreader_Invoke( hr = get_typeinfo(IVBSAXXMLReader_tid, &typeinfo); if(SUCCEEDED(hr)) { - hr = ITypeInfo_Invoke(typeinfo, &(This->lpVtbl), dispIdMember, wFlags, pDispParams, + hr = ITypeInfo_Invoke(typeinfo, &(This->lpVBSAXXMLReaderVtbl), dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); ITypeInfo_Release(typeinfo); } @@ -1293,19 +1305,19 @@ static const struct IVBSAXXMLReaderVtbl saxreader_vtbl = static HRESULT WINAPI isaxxmlreader_QueryInterface(ISAXXMLReader* iface, REFIID riid, void **ppvObject) { saxreader *This = impl_from_ISAXXMLReader( iface ); - return saxxmlreader_QueryInterface((IVBSAXXMLReader*)&This->lpVtbl, riid, ppvObject); + return saxxmlreader_QueryInterface((IVBSAXXMLReader*)&This->lpVBSAXXMLReaderVtbl, riid, ppvObject); }
static ULONG WINAPI isaxxmlreader_AddRef(ISAXXMLReader* iface) { saxreader *This = impl_from_ISAXXMLReader( iface ); - return saxxmlreader_AddRef((IVBSAXXMLReader*)&This->lpVtbl); + return saxxmlreader_AddRef((IVBSAXXMLReader*)&This->lpVBSAXXMLReaderVtbl); }
static ULONG WINAPI isaxxmlreader_Release(ISAXXMLReader* iface) { saxreader *This = impl_from_ISAXXMLReader( iface ); - return saxxmlreader_Release((IVBSAXXMLReader*)&This->lpVtbl); + return saxxmlreader_Release((IVBSAXXMLReader*)&This->lpVBSAXXMLReaderVtbl); }
/*** ISAXXMLReader methods ***/ @@ -1686,7 +1698,7 @@ HRESULT SAXXMLReader_create(IUnknown *pUnkOuter, LPVOID *ppObj) if( !reader ) return E_OUTOFMEMORY;
- reader->lpVtbl = &saxreader_vtbl; + reader->lpVBSAXXMLReaderVtbl = &saxreader_vtbl; reader->lpSAXXMLReaderVtbl = &isaxreader_vtbl; reader->ref = 1; reader->contentHandler = NULL; @@ -1703,7 +1715,7 @@ HRESULT SAXXMLReader_create(IUnknown *pUnkOuter, LPVOID *ppObj) reader->sax.error = libxmlFatalError; reader->sax.fatalError = libxmlFatalError;
- *ppObj = &reader->lpVtbl; + *ppObj = &reader->lpVBSAXXMLReaderVtbl;
TRACE("returning iface %p\n", *ppObj);