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 を使用しない限り)サブクラスにそのポインタを保存してはなりません。
QAxBindable 、QAxFactory 、Active 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 を返すことがあります。
ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。