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 <qvariant.h>
#include <qobject.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."
    Q_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 qt_invoke( int, TQUObject* );
    virtual bool qt_property( int, int, TQVariant* );
    virtual bool qt_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 QT_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 // QT_NO_DATASTREAM

#endif // TQAXBASE_H


Copyright © 2007 TrolltechTrademarks
TQt 3.3.8