qaxbase.h Include File

Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |

# qaxbase.h

This is the verbatim text of the qaxbase.h include file. It is provided only for illustration; the copyright remains with Trolltech.

    /****************************************************************************
    ** $Id: qt/qaxbase.h   3.3.8   edited Jan 11 14:46 $
    **
    ** Declaration of the TQAxBase class
    **
    ** Copyright (C) 2001-2007 Trolltech ASA.  All rights reserved.
    **
    ** This file is part of the Active TQt integration.
    **
    ** Licensees holding valid TQt Enterprise Edition
    ** licenses for Windows may use this file in accordance with the TQt Commercial
    ** License Agreement provided with the Software.
    **
    ** This file is not available for use under any other license without
    ** express written permission from the copyright holder.
    **
    ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
    ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    **
    ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
    **   information about TQt Commercial License Agreements.
    **
    ** Contact info@trolltech.com if any conditions of this licensing are
    ** not clear to you.
    **
    **********************************************************************/

    #ifndef UNICODE
    #define UNICODE
    #endif

    #ifndef TQAXBASE_H
    #define TQAXBASE_H

    #include <ntqvariant.h>
    #include <ntqobject.h>

    struct IUnknown;
    struct TQUuid;
    class TQAxEventSink;
    class TQAxObject;
    class TQAxBasePrivate;

    class TQAxBase
    {
    #ifdef Q_QDOC
    #error "The Symbol Q_QDOC is reserved for documentation purposes."
        TQ_PROPERTY( TQString control READ control WRITE setControl )
    #endif
    public:
    #ifndef Q_QDOC
        typedef TQMap<TQCString, TQVariant> PropertyBag;
    #endif

        TQAxBase( IUnknown *iface = 0 );
        virtual ~TQAxBase();

        TQString control() const;

        long queryInterface( const TQUuid &, void** ) const;

        TQVariant dynamicCall( const TQCString&, const TQVariant &v1 = TQVariant(),
    					   const TQVariant &v2 = TQVariant(),
    					   const TQVariant &v3 = TQVariant(),
    					   const TQVariant &v4 = TQVariant(),
    					   const TQVariant &v5 = TQVariant(),
    					   const TQVariant &v6 = TQVariant(),
    					   const TQVariant &v7 = TQVariant(),
    					   const TQVariant &v8 = TQVariant() );
        TQVariant dynamicCall( const TQCString&, TQValueList<TQVariant> &vars );
        TQAxObject *querySubObject( const TQCString &name, const TQVariant &v1 = TQVariant(),
    					    const TQVariant &v2 = TQVariant(),
    					    const TQVariant &v3 = TQVariant(),
    					    const TQVariant &v4 = TQVariant(),
    					    const TQVariant &v5 = TQVariant(),
    					    const TQVariant &v6 = TQVariant(),
    					    const TQVariant &v7 = TQVariant(),
    					    const TQVariant &v8 = TQVariant() );

        virtual TQMetaObject *metaObject() const;
        virtual bool tqt_invoke( int, TQUObject* );
        virtual bool tqt_property( int, int, TQVariant* );
        virtual bool tqt_emit( int, TQUObject* ) = 0;
        virtual const char *className() const = 0;
        virtual TQObject *qObject() = 0;

        PropertyBag propertyBag() const;
        void setPropertyBag( const PropertyBag& );

        TQString generateDocumentation();

        virtual bool propertyWritable( const char* ) const;
        virtual void setPropertyWritable( const char*, bool );

        bool isNull() const;

        TQVariant asVariant() const;

    #ifdef Q_QDOC
    #error "The Symbol Q_QDOC is reserved for documentation purposes."
        enum PropertyBag {};
    signals:
        void signal(const TQString&,int,void*);
        void propertyChanged(const TQString&);
        void exception(int,const TQString&,const TQString&,const TQString&);
    #endif

    public:
        virtual void clear();
        bool setControl( const TQString& );

        void disableMetaObject();
        void disableClassInfo();
        void disableEventSink();

    protected:
        virtual bool initialize( IUnknown** ptr );
        bool initializeRemote(IUnknown** ptr);
        bool initializeLicensed(IUnknown** ptr);
        bool initializeActive(IUnknown** ptr);

    private:
        bool initializeLicensedHelper(void *factory, const TQString &key, IUnknown **ptr);
        TQAxBasePrivate *d;

        static TQMetaObject *staticMetaObject() { return 0; }
        virtual TQMetaObject *parentMetaObject() const = 0;
        bool internalInvoke( const TQCString &name, void *out, TQVariant var[], TQCString &type );

        TQString ctrl;
    };

    inline TQString TQAxBase::generateDocumentation()
    {
        extern TQString qax_generateDocumentation(TQAxBase *, TQAxBasePrivate *);
        return qax_generateDocumentation(this, d);
    }

    #ifndef TQT_NO_DATASTREAM
    inline TQDataStream &operator >>( TQDataStream &s, TQAxBase &c )
    {
        TQAxBase::PropertyBag bag;
        c.qObject()->blockSignals( true );
        TQString control;
        s >> control;
        c.setControl( control );
        s >> bag;
        c.setPropertyBag( bag );
        c.qObject()->blockSignals( false );

        return s;
    }

    inline TQDataStream &operator <<( TQDataStream &s, const TQAxBase &c )
    {
        TQAxBase::PropertyBag bag = c.propertyBag();
        s << c.control();
        s << bag;

        return s;
    }
    #endif // TQT_NO_DATASTREAM

    #endif // TQAXBASE_H