Piotr Caban : msxml3: Added ISAXXMLReader_putContentHandler implementation.
Alexandre Julliard
julliard at winehq.org
Wed Jul 9 06:10:17 CDT 2008
Module: wine
Branch: master
Commit: 3fa75f49b45872a7b79be0dfd190ff81d72e349b
URL: http://source.winehq.org/git/wine.git/?a=commit;h=3fa75f49b45872a7b79be0dfd190ff81d72e349b
Author: Piotr Caban <piotr.caban at gmail.com>
Date: Tue Jul 8 21:00:20 2008 +0200
msxml3: Added ISAXXMLReader_putContentHandler implementation.
---
dlls/msxml3/saxreader.c | 23 +++++++++++++++--------
1 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/dlls/msxml3/saxreader.c b/dlls/msxml3/saxreader.c
index e7c2d21..b2e5418 100644
--- a/dlls/msxml3/saxreader.c
+++ b/dlls/msxml3/saxreader.c
@@ -49,6 +49,7 @@ typedef struct _saxreader
const struct IVBSAXXMLReaderVtbl *lpVtbl;
const struct ISAXXMLReaderVtbl *lpSAXXMLReaderVtbl;
LONG ref;
+ struct ISAXContentHandler *contentHandler;
xmlSAXHandler sax;
} saxreader;
@@ -111,6 +112,9 @@ static ULONG WINAPI saxxmlreader_Release(
ref = InterlockedDecrement( &This->ref );
if ( ref == 0 )
{
+ if(This->contentHandler)
+ ISAXContentHandler_Release(This->contentHandler);
+
HeapFree( GetProcessHeap(), 0, This );
}
@@ -505,12 +509,8 @@ static HRESULT WINAPI isaxxmlreader_getContentHandler(
{
saxreader *This = impl_from_ISAXXMLReader( iface );
- TRACE("(%p)->(%p)\n", This, pContentHandler);
- if(This->contentHandler)
- ISAXContentHandler_AddRef(This->contentHandler);
- *pContentHandler = This->contentHandler;
-
- return S_OK;
+ FIXME("(%p)->(%p) stub\n", This, pContentHandler);
+ return E_NOTIMPL;
}
static HRESULT WINAPI isaxxmlreader_putContentHandler(
@@ -519,8 +519,14 @@ static HRESULT WINAPI isaxxmlreader_putContentHandler(
{
saxreader *This = impl_from_ISAXXMLReader( iface );
- FIXME("(%p)->(%p) stub\n", This, contentHandler);
- return E_NOTIMPL;
+ TRACE("(%p)->(%p)\n", This, contentHandler);
+ if(contentHandler)
+ ISAXContentHandler_AddRef(contentHandler);
+ if(This->contentHandler)
+ ISAXContentHandler_Release(This->contentHandler);
+ This->contentHandler = contentHandler;
+
+ return S_OK;
}
static HRESULT WINAPI isaxxmlreader_getDTDHandler(
@@ -661,6 +667,7 @@ HRESULT SAXXMLReader_create(IUnknown *pUnkOuter, LPVOID *ppObj)
reader->lpVtbl = &saxreader_vtbl;
reader->lpSAXXMLReaderVtbl = &isaxreader_vtbl;
reader->ref = 1;
+ reader->contentHandler = NULL;
*ppObj = &reader->lpVtbl;
More information about the wine-cvs
mailing list