SOL9 2.0 Class: SAXXMLAttributes

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

Source code

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


// SOL9
// 2011/02/03
#pragma once

#include <sol/xml/XMLObject.h>

// Simple C++ wrapper class to IMXAttributes COM interface.
// IMXAttribues is a list of 'writable'XML attributes.

namespace SOL {

class SAXXMLAttributes :public XMLObject {
private:
    IMXAttributesPtr mxAttributes;

public:
    SAXXMLAttributes()
        :mxAttributes(NULL)
    {
        mxAttributes.CreateInstance(__uuidof(SAXAttributes));
    }

public:
    ~SAXXMLAttributes()
    {
        mxAttributes = NULL;
    }

public:
    IMXAttributesPtr getAttributesPtr()
    {
        return mxAttributes;
    }

public:
    HRESULT addAttribute(__in const _bstr_t name, 
            __in const _bstr_t value)
    {
        return getAttributesPtr()->addAttribute(
            _bstr_t(""), 
            _bstr_t(""), 
            name, 
            _bstr_t(""), 
            value);
    }


    HRESULT addAttribute(
        __in const _bstr_t uri,
        __in const _bstr_t localName,
        __in const _bstr_t qName,
        __in const _bstr_t type,
        __in const _bstr_t value)
    {
        return getAttributesPtr()->addAttribute(
            uri,
            localName,
            qName,
            type,
            value);
    }

    HRESULT addAttributeFromIndex(
        __in const _variant_t & varAtts,
        __in int index)
    {
        return mxAttributes->addAttributeFromIndex(
            varAtts,
            index);
    }

    HRESULT clear()
    {
        return getAttributesPtr()->clear();
    }

    HRESULT removeAttribute(
        int index)
    {
        return getAttributesPtr()->removeAttribute(
            index);
    }

    HRESULT setAttribute(
        __in int index,
        _bstr_t uri,
        _bstr_t localName,
        _bstr_t qName,
        _bstr_t type,
        _bstr_t value)
    {
        return getAttributesPtr()->setAttribute(
            index,
            uri,
            localName,
            qName,
            type,
            value);
    }

    HRESULT setAttributes(
        const _variant_t & varAtts)
    {
        return getAttributesPtr()->setAttributes(
                varAtts);
    }

    HRESULT setLocalName(
        __in int index,
        __in _bstr_t localName)
    {
        return getAttributesPtr()->setLocalName(
            index,
            localName);
    }

    HRESULT setQName(
        __in int index,
        __in _bstr_t qName)
    {
        return getAttributesPtr()->setQName(
            index,
            qName);
    }

    HRESULT setType(
        __in int index,
        __in _bstr_t type)
    {
        return getAttributesPtr()->setType(
            index,
            type);
    }

    HRESULT setURI(
        __in int index,
        __in _bstr_t uri)
    {
        return getAttributesPtr()->setURI(
            index,
            uri);
    }

    HRESULT setValue(
        __in int index,
        __in _bstr_t value)
    {
        return getAttributesPtr()->setValue(
            index,
            value);
    }

public:
    ISAXAttributesPtr getAttributes()
    {
        ISAXAttributesPtr attributes = mxAttributes;
        return attributes;
    }

public:
    operator ISAXAttributes*()
    {
        ISAXAttributesPtr attributes = mxAttributes;
        return(ISAXAttributes*)attributes;
    }
};

}

Last modified: 1 Feb 2012

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