QAxAggregated Class

QAxAggregated クラスは、追加の COM インターフェースを実装するための抽象基底クラスです。詳細...

Header: #include <QAxAggregated>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxServer)
target_link_libraries(mytarget PRIVATE Qt6::AxServer)
qmake: QT += axserver

保護された関数

virtual ~QAxAggregated()
IUnknown *controllingUnknown() const
int *object() const

詳細説明

QAxAggregated のサブクラスを作成し、追加の COM インターフェイスをサポートするために queryInterface() を再実装します。これらの COM インタフェースからの多重継承を使用します。QueryInterface()AddRef() 、およびRelease() への呼び出しをcontrollingUnknown() によって提供されるインターフェイスに委譲することにより、これらの COM インターフェイスの IUnknown インターフェイスを実装します。

ActiveX コントロールを実装するQWidget への呼び出しが必要な場合は、 widget() メソッドを使用します。QWidget は ActiveQt フレームワークによっていつでも破棄される可能性があるため、(QPointer を使用しない限り)サブクラスにそのポインタを保存してはなりません。

QAxBindableQAxFactoryActive Qtも参照してください

メンバ関数のドキュメント

[virtual constexpr noexcept protected] QAxAggregated::~QAxAggregated()

デストラクタはQtによって内部的に呼び出されます。

[protected] IUnknown *QAxAggregated::controllingUnknown() const

ActiveX コントロールのIUnknown インタフェースを返します。QAxAggregated のサブクラスでIUnknown インターフェイスを実装し、QueryInterface()AddRef()Release() への呼び出しを、この関数が提供するインターフェイスに委譲します。

HRESULT AxImpl::QueryInterface(REFIID iid, void **iface)
{
    return controllingUnknown()->QueryInterface(iid, iface);
}

ulong AxImpl::AddRef()
{
    return controllingUnknown()->AddRef();
}

ulong AxImpl::Release()
{
    return controllingUnknown()->Release();
}

これらの 3 つの関数を手動で宣言および実装する代わりに、サブクラスのクラス宣言でQAXAGG_IUNKNOWN マクロを使用できます。

[protected] int *QAxAggregated::object() const

COM オブジェクトを実装するQObject サブクラスへのポインタを返します。この関数は 0 を返すことがあります。

警告: QObject は ActiveQt によっていつでも破棄される可能性があるため、QPointer を使用しない限り、返されたポインタを保存してはいけません。

ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。