QAxBaseWidget Class

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

Header: #include <QAxBaseWidget>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
Since: Qt 6.0
Inherits: QWidget and QAxObjectInterface
Inherited By:

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)

詳細説明

プロパティ Documentation

classContext : const ulong

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

このプロパティは、CoCreateInstanceを呼び出すときの引数 "dwClsContext "に影響する。このプロパティを使用して、in-procとout-of-procの両方の起動をサポートするコントロールの起動を制御することができます。また、CLSCTX_ENABLE_CLOAKINGとインパーソネーショントークンを使用する場合、コントロールのパーミッションを変更/削減するために使用できます。

setControl() の前に設定しないと効果がないことに注意してください。

controlも参照

control : const 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");

コントロールのread関数は、常にコントロールのUUIDを返し、ライセンスキーとサーバー名が提供されている場合はそれを返しますが、ユーザー名、ドメイン名、パスワードは返しません。

classContextも参照のこと

メンバ関数ドキュメント

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

このシグナルは、OLE オートメーションインターフェース IDispatch を使用して呼び出された COM オブジェクトが例外をスローしたときに発行されます。code sourcedeschelp は、COM サーバーから提供された例外に関する情報を提供し、エンドユーザーに有用なフィードバックを提供するために使用することができます。help は、ヘルプファイルと、"filename [id]"などの括弧内のヘルプコンテキスト 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()も参照してください

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