SOL9 2.0 Class: SAXErrorHandlerImpl

 SOL9 C++ Class Library  SOL9 Samples  SOL9 Tutorial  SOL9 FAQ  SOL9 ClassTree 

Source code

/*
 * SAXErrorHandlerImpl.h 
 * Copyright (c) 2011 Antillia.com TOSHIYUKI ARAI. ALL RIGHTS RESERVED. 
 */


// SOL9
// 2011/01/27
#pragma once

#include <sol/xml/XMLObject.h>

#include <sol/xml/SAXLocator.h>

//Implementation class ISAXErrorHandler COM interface.
//But, this is used to be a C++ class not COM object.
//Therefore we create an instance of this class by ordinary C++ constructor,
// not using ::CoCreateInstance API.

class SAXErrorHandlerImpl :public ISAXErrorHandler
{

public:
    SAXErrorHandlerImpl()
    {
    }

private:
    long __stdcall QueryInterface(const struct _GUID &,void **)     
    { 
        return 0;
    }

    unsigned long __stdcall AddRef(void) 
    { 
        return 0;
    }

    unsigned long __stdcall Release(void) 
    { 
        return 0;
    }

private:
    void display(const char* type, 
        ISAXLocator * locator, 
        unsigned short* message, 
        HRESULT error)
    {
        printf("%s \n", type);

        SAXLocator saxLocator(locator);
        saxLocator.display();
        printf("Message  :%S\n",  message);
        printf("ErrorCode:0x%x\n", error);

    }

private:
    virtual HRESULT __stdcall raw_error(
        __in ISAXLocator * pLocator,
        __in unsigned short * pwchErrorMessage,
        __in HRESULT hrErrorCode) 
    {
        display("Error", pLocator, pwchErrorMessage, hrErrorCode);
        return S_OK;
    } 

    virtual HRESULT __stdcall raw_fatalError(
        __in ISAXLocator * pLocator,
        __in unsigned short * pwchErrorMessage,
        __in HRESULT hrErrorCode)
    {
        display("Fatal", pLocator, pwchErrorMessage,hrErrorCode);
        return S_OK;
    }
        
    virtual HRESULT __stdcall raw_ignorableWarning(
        __in ISAXLocator * pLocator,
        __in unsigned short * pwchErrorMessage,
        __in HRESULT hrErrorCode)
    {
        display("Warning", pLocator, pwchErrorMessage,hrErrorCode);
        return S_OK;
    }

};


Last modified: 1 Feb 2012

Copyright (c) 2009-2012 Antillia.com ALL RIGHTS RESERVED.