Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
ccontenthandler.h
#ifndef CCONTENTHANDLER_H__
#define CCONTENTHANDLER_H__ 1
#include "p6loader.h"
#include "p6sax2contenthandler.h"
namespace P6EXAMPLES {
//
// This defines a private interface that will be used
// to initalize our content handler. The createInstance()
// method returns only interface pointers and this
// allows us to ask it for this interface. Once
// initialize() has been successfully called,
// queryInterface() is used to retrieve the
// p6ISAX2ContentHandler interface.
//
interface IContentHandlerInit : public P6R::p6ICom
{
P6COMMETHOD initialize( P6R::p6IConsole *pConsole, P6R::p6ISafeString* pStr ) = 0;
};
// {087553AF-CD68-4E5A-B767-BA4137E3B6D2}
#define IF_IContentHandlerInit {0x087553AF,0xCD68,0x4E5A,{0xB7,0x67,0xBA,0x41,0x37,0xE3,0xB6,0xD2}}
//
class CContentHandler : public IContentHandlerInit, public P6R::p6ISAX2ContentHandler
{
public:
//
// P6COM Helper macro declares p6ICom methods
// - queryInterface()
// - addref()
// - release()
// - createInstance() <- This is a static method
// used to create an instance
// of this component.
//
//
// p6ISAX2ContentHandler methods
//
P6COMMETHOD characters( P6R::P6SAX2STRING* pBuffer, P6R::P6SAX2METADATA meta );
P6COMMETHOD endDocument();
P6COMMETHOD endElement( P6R::P6SAX2STRING* pURI, P6R::P6SAX2STRING* pLocalName, P6R::P6SAX2STRING* pQName );
P6COMMETHOD endPrefixMapping( P6R::P6SAX2STRING* pPrefix );
P6COMMETHOD ignorableWhitespace( const P6R::P6CHAR* pBuffer, P6R::P6UINT32 start, P6R::P6UINT32 length );
P6COMMETHOD processingInstruction( P6R::P6SAX2STRING* pTarget, P6R::P6SAX2STRING* pData );
P6COMMETHOD setDocumentLocator( P6R::p6ISAX2Locator* pObject );
P6COMMETHOD skippedEntity( P6R::P6SAX2STRING* pName );
P6COMMETHOD startDocument();
P6COMMETHOD startElement( P6R::P6SAX2STRING* pURI, P6R::P6SAX2STRING* pLocalName, P6R::P6SAX2STRING* pQName, P6R::P6SAX2STRING* pRawElement, P6R::p6ISAX2Attributes* pAtts );
P6COMMETHOD startPrefixMapping( P6R::P6SAX2STRING* pPrefix, P6R::P6SAX2STRING* pURI );
//
// IContentHandlerInit methods
//
P6COMMETHOD initialize( P6R::p6IConsole *pConsole, P6R::p6ISafeString* pStr );
CContentHandler();
virtual ~CContentHandler();
protected:
P6R::P6VOID debugPrint( const P6R::P6CHAR* pHeader, P6R::P6SAX2STRING* pString );
P6R::P6BOOL m_bInitialized; // -> don't allow any operation until properly initialized
P6R::p6ComPtr<P6R::p6IConsole> m_cpConsole; // ->
P6R::P6UINT32 m_charState; // -> keep track of what is passed to characters() function
P6R::P6UINT32 m_startState; // -> keep track of what is passed to startElement() function
P6R::P6UINT32 m_endState; // -> keep track of what is passed to endElement() function
P6R::P6UINT32 m_startDoc; // -> did we see a start doc event?
P6R::P6UINT32 m_endDoc; // ->
P6R::P6UINT32 m_startMapping; // -> the Prefix mapping feature should be turned on
P6R::P6UINT32 m_endMapping; // ->
};
} // namespace
#endif