QAxBaseWidget Class
QAxBaseWidget は、QAxWidget の静的プロパティとシグナルを提供します。さらに...
ヘッダ | #include <QAxBaseWidget> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS AxContainer) target_link_libraries(mytarget PRIVATE Qt6::AxContainer) |
qmake: | QT += axcontainer |
以来: | Qt 6.0 |
を継承する: | QWidget そしてQAxObjectInterface |
継承元: |
プロパティ
- classContext : const ulong
- control : const QString
信号
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 : 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 source 、desc 、help は、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()も参照 。
© 2025 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.