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 サブクラスの新しいオブジェクトを返します。

QAxAggregatedQAxFactoryActiveQt 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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。