#ifndef EXTAX_H #define EXTAX_H #include #include template class QExtAxObject : public QAxObject { public: T * operator ->() const { return mPtr; } bool setControl( const QString & control ) { if (QAxObject::setControl(control)) { queryInterface(QUuid(__uuidof(T)), (void**)&mPtr); return true; } return false; } void clear() { if(mPtr) mPtr->Release(); mPtr = 0; QAxObject::clear(); } ~QExtAxObject() { clear(); } QExtAxObject( QObject * parent = 0 ) : QAxObject(parent) { mPtr = 0; } private: T * mPtr; }; template class QExtAxWidget : public QAxWidget { public: QExtAxWidget(QWidget * parent = 0, Qt::WindowFlags f = 0) : QAxWidget(parent, f) { mPtr = 0; } ~QExtAxWidget() { clear(); } virtual void clear() { if(mPtr) mPtr->Release(); mPtr = 0; QAxWidget::clear(); } bool setControl( const QString & control ) { if (QAxWidget::setControl(control)) { queryInterface(QUuid(__uuidof(T)), (void**)&mPtr); return true; } return false; } T * operator ->() const { return mPtr; } private: T * mPtr; }; #endif