このページでは

QAxBaseWidget Class

QAxBaseWidget は、QAxWidget 向けの静的プロパティおよびシグナルを提供します。詳細...

ヘッダー: #include <qaxwidget.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
以下のように: Qt 6.0
継承元:QWidget およびQAxObjectInterface
継承元:

QAxWidget

プロパティ

シグナル

void exception(int code, const QString &source, const QString &desc, const QString &help)
void propertyChanged(const QString &name)
void signal(const QString &name, int argc, void *argv)

詳細説明

プロパティのドキュメント

classContext : ulong

このプロパティは、ActiveX コントロールが実行されるコンテキストを保持します(デフォルトは CLSCTX_SERVER)。

このプロパティは、CoCreateInstance を呼び出す際の「dwClsContext」引数に影響を与えます。これにより、両方の起動方法をサポートするコントロールについて、インプロセス起動とアウトオブプロセス起動を切り替えることができます。 また、CLSCTX_ENABLE_CLOAKING および偽装トークンと組み合わせて使用することで、コントロールのアクセス許可を変更または制限することもできます。

なお、この設定が有効になるには、setControl() の呼び出し前に設定しておく必要があります。

controlも参照してください 。

control : QString

このプロパティには、このQAxBaseWidget オブジェクトによってラップされたCOMオブジェクトの名前が格納されます。

このプロパティを設定すると、COM オブジェクトが初期化されます。以前に設定されていた COM オブジェクトはすべてシャットダウンされます。

このプロパティを設定する最も効率的な方法は、登録済みコンポーネントの UUID を使用することです。例:

ctrl->setControl("{8E27C92B-1264-101C-8A2F-040224009C02}");

2番目に速い方法は、登録済みのコントロールのクラス名(バージョン番号の有無にかかわらず)を使用することです。例:

ctrl->setControl("MSCal.Calendar");

最も遅いですが、最も簡単な方法は、コントロールの完全な名前を使用することです。例:

ctrl->setControl("Calendar Control 9.0");

ファイルからオブジェクトを初期化することも可能です。例:

ctrl->setControl("c:/files/file.doc");

コンポーネントの UUID を使用する場合、以下のパターンを使って、リモートマシン上のコントロールを初期化したり、ライセンス付きコントロールを初期化したり、実行中のオブジェクトに接続したりできます。

  • 別のマシン上でコントロールを初期化するには、次のパターンを使用します。
    <domain/username>:<password>@server/{8E27C92B-1264-101C-8A2F-040224009C02}
  • ライセンス付きコントロールを初期化するには、次のパターンを使用します:
    {8E27C92B-1264-101C-8A2F-040224009C02}:<LicenseKey>
  • すでに実行中のオブジェクトに接続するには、次のパターンを使用します:
    {8E27C92B-1264-101C-8A2F-040224009C02}&

最初の2つのパターンを組み合わせることも可能です。例えば、リモートマシン上のライセンス付きコントロールを初期化する場合などです:

ctrl->setControl("DOMAIN/user:password@server/{8E27C92B-1264-101C-8A2F-040224009C02}:LicenseKey");

コントロールの読み取り関数は、常にそのコントロールの UUID を返します。ライセンスキーが指定されている場合はそれも含め、サーバー名も返しますが、ユーザー名、ドメイン、パスワードは含みません。

classContextも参照してください 。

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

[signal] void QAxBaseWidget::exception(int code, const QString &source, const QString &desc, const QString &help)

このシグナルは、OLEオートメーションインターフェース IDispatch を使用して COM オブジェクトを呼び出した際に、そのオブジェクトが例外をスローしたときに発生します。code 、source 、desc 、およびhelp は、COM サーバーから提供される例外に関する情報を提供し、エンドユーザーに有用なフィードバックを提供するために使用できます。help には、ヘルプファイル名と、括弧内にヘルプコンテキスト ID が含まれます(例: "filename [id]")。

QAxBaseObject::exception()も参照してください 。

[signal] void QAxBaseWidget::propertyChanged(const QString &name)

COMオブジェクトがプロパティ通知をサポートしている場合、name というプロパティが変更されると、このシグナルが発生します。

「QAxBaseObject::propertyChanged()」も参照してください 。

[signal] void QAxBaseWidget::signal(const QString &name, int argc, void *argv)

この汎用シグナルは、COM オブジェクトがイベント `name` を発行したときに発生します。argc はイベントによって提供されるパラメータの数 (DISPPARAMS.cArgs) であり、argv はパラメータ値へのポインタ (DISPPARAMS.rgvarg) です。 なお、パラメータ値の順序は逆になっていることに注意してください。つまり、配列の最後の要素が関数内の最初のパラメータになります。

void Receiver::slot(const QString &name, int argc, void *argv)
{
    VARIANTARG *params = (VARIANTARG*)argv;
    if (name.startsWith("BeforeNavigate2(")) {
        IDispatch *pDisp = params[argc-1].pdispVal;
        VARIANTARG URL = *params[argc-2].pvarVal;
        VARIANTARG Flags = *params[argc-3].pvarVal;
        VARIANTARG TargetFrameName = *params[argc-4].pvarVal;
        VARIANTARG PostData = *params[argc-5].pvarVal;
        VARIANTARG Headers = *params[argc-6].pvarVal;
        bool *Cancel = params[argc-7].pboolVal;
    }
}

イベントにサポートされていないデータ型のパラメータが含まれている場合は、このシグナルを使用してください。それ以外の場合は、シグナルname に直接接続してください。

QAxBaseObject::signal()も参照してください 。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.