SOL9 2.0 Class: SAXSchemaDeclHandlerImpl

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

Source code

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


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

#include <sol/xml/XMLObject.h>
#include <sol/WString.h>

//Implementation class ISAXSchemaDeclHandler 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.

namespace SOL {
//Implementation IDispatch interface.

class SAXSchemaDeclHandlerImpl : public IMXSchemaDeclHandler
{
private:
    long refCount;

public:
    SAXSchemaDeclHandlerImpl()
        :refCount(0)
    {
    }

public:
    ~SAXSchemaDeclHandlerImpl()
    {
    }

private:
    long __stdcall QueryInterface(const struct _GUID & riid, void **ppvObject)     
    {
        //printf("QueryInterface\n");
        HRESULT hr = S_OK;
        if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, __uuidof(MSXML2::IMXSchemaDeclHandler) ) ) {
            *ppvObject = reinterpret_cast<MSXML2::IMXSchemaDeclHandler*>(this) ;
        }
        else {
            *ppvObject = NULL;
            hr = E_NOINTERFACE;
        }
        return hr;
    }

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

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

    HRESULT __stdcall GetTypeInfo(
            __in UINT iTInfo,
            __in LCID lcid,
            __out  ITypeInfo **ppTInfo)
    {
        return E_NOTIMPL;//E_NOINTERFACE;
    }

    HRESULT __stdcall GetTypeInfoCount(__out UINT *pctinfo)
    {
        return E_NOTIMPL;//E_NOINTERFACE;
    }


    HRESULT __stdcall GetIDsOfNames(
            __in REFIID riid,
            __in LPOLESTR *rgszNames,
            __in UINT cNames,
            __in LCID lcid,
            __out DISPID *rgDispId) 
    { 
        return E_NOTIMPL;//E_NOINTERFACE; 
    }

    HRESULT __stdcall Invoke(
            __in DISPID dispIdMember,
            __in REFIID riid,
            __in LCID lcid,
            __in WORD wFlags,
            __in DISPPARAMS *pDispParams,
            __out VARIANT *pVarResult, 
            __out EXCEPINFO *pExcepInfo,
            __out UINT *puArgErr) 
    {
        return E_NOTIMPL;//E_NOINTERFACE; 
    }

private:
    HRESULT __stdcall raw_schemaElementDecl(
        __in struct MSXML2::ISchemaElement * oSchemaElement)
    {
        schemaElementDecl(oSchemaElement);
        return S_OK;
    }

    //Please redefine this method in your own specific class dervide from this class.
public:
    virtual void schemaElementDecl(
        __in struct MSXML2::ISchemaElement * oSchemaElement)
    {
    }
};

}

Last modified: 1 Feb 2012

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