- Qt 6.9
- Active Qt
- QAxContainer
- QAxObject
- Qt 6.9.3 Reference Documentation

# QAxObject Class

The QAxObject class provides a QObject that wraps a COM object. More...

Header: | `#include <QAxObject>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS AxContainer)` `target_link_libraries(mytarget PRIVATE Qt6::AxContainer)`
qmake: | `QT += axcontainer`
Inherits: | QAxBaseObject and QAxBase
Inherited By: | QAxScriptEngine

- List of all members, including inherited members

## Public Functions

| QAxObject(QObject *parent = nullptr)
| QAxObject(IUnknown *iface, QObject *parent = nullptr)
| QAxObject(const QString &c, QObject *parent = nullptr)
virtual | ~QAxObject() override
bool | doVerb(const QString &verb)

## Reimplemented Protected Functions

virtual void | connectNotify(const QMetaMethod &signal) override

## Detailed Description

A QAxObject can be instantiated as an empty object, with the name of the COM object it should wrap, or with a pointer to the IUnknown that represents an existing COM object. If the COM object implements the `IDispatch` interface, the properties, methods and events of that object become available as Qt properties, slots and signals. The base class, QAxBase, provides an API to access the COM object directly through the IUnknown pointer.

QAxObject is a QObject and can be used as such, e.g. it can be organized in an object hierarchy, receive events and connect to signals and slots.

QAxObject also inherits most of its ActiveX-related functionality from QAxBase, notably dynamicCall() and querySubObject().

Warning: You can subclass QAxObject, but you cannot use the Q_OBJECT macro in the subclass (the generated moc-file will not compile), so you cannot add further signals, slots or properties. This limitation is due to the metaobject information generated in runtime. To work around this problem, aggregate the QAxObject as a member of the QObject subclass.

See also QAxBase, QAxWidget, QAxScript, and ActiveQt Framework.

## Member Function Documentation

### `[explicit]` QAxObject::QAxObject(QObject *parent = nullptr)

Creates an empty COM object and propagates parent to the QObject constructor. To initialize the object, call setControl().

See also setControl().

### `[explicit]` QAxObject::QAxObject(IUnknown *iface, QObject *parent = nullptr)

Creates a QAxObject that wraps the COM object referenced by iface. parent is propagated to the QObject constructor.

### `[explicit]` QAxObject::QAxObject(const QString &c, QObject *parent = nullptr)

Creates a QAxObject that wraps the COM object c. parent is propagated to the QObject constructor.

See also setControl().

### `[override virtual noexcept]` QAxObject::~QAxObject()

Releases the COM object and destroys the QAxObject, cleaning up all allocated resources.

### `[override virtual protected]` void QAxObject::connectNotify(const QMetaMethod &signal)

Reimplements: QObject::connectNotify(const QMetaMethod &signal).

### bool QAxObject::doVerb(const QString &verb)

Requests the COM object to perform the action verb. The possible verbs are returned by verbs().

The function returns true if the object could perform the action, otherwise returns false.