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: |
プロパティ
- 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) |
プロパティ 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 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()も参照してください 。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。