Partager via


Step 1: Creating the Header File (Windows CE 5.0)

Send Feedback

Introduction

The first step of creating a SAX2 application is to implement handler classes. When you use SAX2, the most useful handler class is ContentHandler. You derive this class from the ISAXContentHandler interface.

To use the SAX2 interfaces that come with MSXML, you need to declare them using the following code example.

#include <msxml2.h>

Note   For the JumpStart application, declare the interfaces in the StdAfx.h file.

Example

The following code example shows how to create the header file, named MyContent.h. This file is required to implement the ContentHandler.

#include "SAXContentHandlerImpl.h"

class MyContent : public SAXContentHandlerImpl  
{
public:
    MyContent();
    virtual ~MyContent();
        
        virtual HRESULT STDMETHODCALLTYPE startElement( 
        // Receives notification of the beginning of an element. 
        // The reader invokes the startElement method at the beginning of every element in the XML document.

            wchar_t __RPC_FAR *pwchNamespaceUri, //in, the namespace URI
            int cchNamespaceUri,                 //in, the length of the namespace URI
            wchar_t __RPC_FAR *pwchLocalName,    //in, the local name string.
            int cchLocalName,                   //in, the length of the local name string
            wchar_t __RPC_FAR *pwchQName,       //in, the XML 1.0 qualified name (QName), with prefix, 
                                                //or, an empty string (if QNames are not available).
            int cchQName,                       //in, the length of the QName
            ISAXAttributes __RPC_FAR *pAttributes); //in, the attributes attached to the element
        
        virtual HRESULT STDMETHODCALLTYPE endElement( 
        // Receives notification of the end of an element. 
        // The reader invokes this method at the end of every element in the XML document.

            wchar_t __RPC_FAR *pwchNamespaceUri, //in, the namespace URI
            int cchNamespaceUri,                 //in, the length of the namespace URI
            wchar_t __RPC_FAR *pwchLocalName,    //in, the local name string.
            int cchLocalName,                   //in, the length of the local name string
            wchar_t __RPC_FAR *pwchQName,       //in, the XML 1.0 qualified name (QName), with prefix, 
                                                //or, an empty string (if QNames are not available).
            int cchQName);                      //in, the length of the QName

        virtual HRESULT STDMETHODCALLTYPE startDocument();
        // Receives notification of the beginning of a document. 
        // The reader invokes the startDocument method only once.


private:
        void prt(
        // conversion method for output
        // converts element specified by pwchVal to the format specified by pwchFmt
            const wchar_t * pwchFmt,          //in, format for output
            const wchar_t __RPC_FAR *pwchVal, // in, element to be converted
            int cchVal);                      // in, length of element to be converted
      int idnt; // current depth in document tree, that is, number of unclosed elements encountered
};

#endif // !defined(AFX_MYCONTENT_H__E1B3AF99_0FA6_44CD_82E3_55719F9E3806__INCLUDED_)

See Also

Step 2: Creating the MyContent Class | Tutorial: JumpStart for Creating a SAX2 Application with C++ | Getting Started with SAX2 | SAX2 Developer Guide

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.