QAxBindable Class
QAxBindable クラスは、QWidget と ActiveX クライアントの間のインターフェイスを提供します。詳細...
Header: | #include <QAxBindable> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS AxServer) target_link_libraries(mytarget PRIVATE Qt6::AxServer) |
qmake: | QT += axserver |
パブリック関数
virtual | ~QAxBindable() |
virtual QAxAggregated * | createAggregate() |
virtual bool | readData(QIODevice *source, const int &format) |
void | reportError(int code, const int &src, const int &desc, const int &context = QString()) |
virtual bool | writeData(QIODevice *sink) |
保護された関数
IUnknown * | clientSite() const |
void | propertyChanged(const char *property) |
bool | requestPropertyChange(const char *property) |
詳細説明
このクラスが提供する関数を使用すると、ActiveX コントロールのプロパティの変更をクライアント アプリケーションに伝えることができます。このクラスの関数にアクセスするには、QWidget (直接または間接的に) とこのクラスの両方からコントロール・クラスを継承します。メタ・オブジェクト・コンパイラは、最初にQWidget から継承することを要求します。
class MyActiveX : public QWidget, public QAxBindable { Q_OBJECT Q_PROPERTY(int value READ value WRITE setValue) public: MyActiveX(QWidget *parent = 0); ... int value() const; void setValue(int); };
プロパティ書き込み関数を実装する場合は、requestPropertyChange ()を使用して、ActiveX クライアント・アプリケーションからこのプロパティを変更する許可を取得します。プロパティが変更されたら、propertyChanged() を呼び出して、ActiveX クライアント・アプリケーションに変更を通知します。コントロールで致命的なエラーが発生した場合は、静的なreportError() 関数を使用してクライアントに通知します。
ActiveX クライアントを呼び出すには、clientSite() が返すインタフェースを使用します。ActiveX コントロールに追加の COM インタフェースを実装するには、createAggregate() を再実装して、QAxAggregated サブクラスの新しいオブジェクトを返します。
QAxAggregated 、QAxFactory 、ActiveQt Frameworkも参照してください 。
メンバ関数 ドキュメント
[virtual noexcept]
QAxBindable::~QAxBindable()
QAxBindable オブジェクトを破棄します。
[protected]
IUnknown *QAxBindable::clientSite() const
この ActiveX オブジェクトのクライアント・サイト・インターフェイスへのポインタを返すか、 クライアント・サイトが設定されていない場合は null を返す。
呼び出したいインターフェイスを取得するには、返されたインターフェイスでQueryInterface()
を呼び出します。
[virtual]
QAxAggregated *QAxBindable::createAggregate()
ActiveX コントロールに COM インタフェースを追加実装する場合、または COM インタフェースの代替実装を提供する場合は、この関数を再実装します。QAxAggregated サブクラスの新しいオブジェクトを返します。
デフォルトの実装では、NULL ポインタを返します。
[protected]
void QAxBindable::propertyChanged(const char *property)
この関数を呼び出して、この ActiveX コントロールをホストしているクライアントに、プロパティproperty が変更されたことを通知します。
この関数は通常、プロパティの書き込み関数の最後で呼び出されます。
requestPropertyChange()も参照 。
[virtual]
bool QAxBindable::readData(QIODevice *source, const int &format)
COMオブジェクトがMIMEタイプをサポートしている場合、この関数はformat のデータsource からCOMオブジェクトを初期化するために呼び出されます。source から読み込む前に、読み込み用に を開く必要があります。
成功した場合はtrueを返す。この関数がfalseを返した場合、ActiveQtはメタ・オブジェクト・システムを通してプロパティを設定し、データを処理します。
この関数を再実装する場合は、writeData ()も実装する必要があります。デフォルトの実装は何もせず、falseを返します。
警告 HTMLに埋め込まれたActiveXコントロールは、object
タグのtype
属性とdata
属性を使用してデータを読み取るか、param
タグのリストを使用してプロパティを初期化することができます。param
タグを使用する場合、Internet Explorerはdata
属性を無視し、readDataは呼び出されません。
writeData()も参照のこと 。
void QAxBindable::reportError(int code, const int &src, const int &desc, const int &context = QString())
code は、制御定義のエラー・コードです。desc は、アプリケーション・ユーザー向けの、人間が読めるエラーの説明です。src は、エラーの発生源の名前で、通常はActiveXサーバー名です。context は、エラーに関する詳細情報を含むヘルプ・ファイルの場所です。context の末尾が[12]などの括弧内の数字で終わっている場合、この数字はヘルプファイル内のコンテキストIDと解釈されます。
[protected]
bool QAxBindable::requestPropertyChange(const char *property)
この関数を呼び出して、この ActiveX コントロールをホストしているクライアントに、プロパティproperty の変更許可を要求します。クライアントが変更を許可している場合はtrueを返し、そうでない場合はfalseを返します。
この関数は通常、property の書き込み関数で最初に呼び出され、false を返した場合は書き込みが中止されます。
void MyActiveQt::setText(const QString &text) { if (!requestPropertyChange("text")) return; // update property propertyChanged("text"); }
propertyChanged()も参照 。
[virtual]
bool QAxBindable::writeData(QIODevice *sink)
COM オブジェクトが MIME タイプをサポートしている場合、この関数は COM オブジェクトをsink に格納するために呼び出される。書き込みを行う前に、sink をオープンする必要があります。
成功を示すtrueを返す。この関数が false を返した場合、ActiveQt はプロパティ値を格納してオブジェクトをシリアライズします。
この関数を再実装する場合は、readData ()も実装する必要があります。デフォルトの実装は何もせず、false を返します。
readData()も参照してください 。
©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。