Auf dieser Seite

QAxBindable Class

Die Klasse „QAxBindable“ dient als Schnittstelle zwischen einem „ QWidget “ und einem ActiveX-Client. Mehr...

Überschrift: #include <qaxbindable.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxServer)
target_link_libraries(mytarget PRIVATE Qt6::AxServer)
qmake: QT += axserver

Öffentliche Funktionen

QAxBindable()
virtual ~QAxBindable()
virtual QAxAggregated *createAggregate()
virtual bool readData(QIODevice *source, const QString &format)
void reportError(int code, const QString &src, const QString &desc, const QString &context = QString())
virtual bool writeData(QIODevice *sink)

Geschützte Funktionen

IUnknown *clientSite() const
void propertyChanged(const char *property)
bool requestPropertyChange(const char *property)

Ausführliche Beschreibung

Die von dieser Klasse bereitgestellten Funktionen ermöglichen es einem ActiveX-Steuerelement, Änderungen an Eigenschaften an eine Client-Anwendung zu übermitteln. Lassen Sie Ihre Steuerelementklasse sowohl von „ QWidget “ (direkt oder indirekt) als auch von dieser Klasse erben, um Zugriff auf die Funktionen dieser Klasse zu erhalten. Der Meta-Object Compiler verlangt, dass Sie zunächst von „ QWidget “ erben.

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);
};

Verwenden Sie bei der Implementierung der Funktion zum Schreiben der Eigenschaft „ requestPropertyChange()“, um von der ActiveX-Clientanwendung die Berechtigung zum Ändern dieser Eigenschaft einzuholen. Wenn sich die Eigenschaft ändert, rufen Sie „ propertyChanged()“ auf, um die ActiveX-Clientanwendung über die Änderung zu informieren. Tritt im Steuerelement ein schwerwiegender Fehler auf, verwenden Sie die statische Funktion „ reportError()“, um den Client zu benachrichtigen.

Verwenden Sie die von ` clientSite()` zurückgegebene Schnittstelle, um den ActiveX-Client aufzurufen. Um zusätzliche COM-Schnittstellen in Ihrem ActiveX-Steuerelement zu implementieren, implementieren Sie ` createAggregate()` neu, um ein neues Objekt einer Unterklasse von ` QAxAggregated ` zurückzugeben.

Siehe auch „ QAxAggregated “, „ QAxFactory “ und „ActiveQt Framework“.

Dokumentation zu Mitgliedsfunktionen

QAxBindable::QAxBindable()

Erstellt ein leeres QAxBindable-Objekt.

[virtual noexcept] QAxBindable::~QAxBindable()

Löscht das Objekt „ QAxBindable “.

[protected] IUnknown *QAxBindable::clientSite() const

Gibt einen Zeiger auf die Client-Site-Schnittstelle für dieses ActiveX-Objekt zurück oder „null“, wenn keine Client-Site festgelegt wurde.

Rufen Sie „ QueryInterface() “ für die zurückgegebene Schnittstelle auf, um die Schnittstelle abzurufen, die Sie aufrufen möchten.

[virtual] QAxAggregated *QAxBindable::createAggregate()

Implementieren Sie diese Funktion neu, wenn Sie zusätzliche COM-Schnittstellen im ActiveX-Steuerelement implementieren oder alternative Implementierungen von COM-Schnittstellen bereitstellen möchten. Geben Sie ein neues Objekt einer Unterklasse von ` QAxAggregated ` zurück.

Die Standardimplementierung gibt den Null-Zeiger zurück.

[protected] void QAxBindable::propertyChanged(const char *property)

Rufen Sie diese Funktion auf, um dem Client, der dieses ActiveX-Steuerelement hostet, mitzuteilen, dass die Eigenschaft „ property “ geändert wurde.

Diese Funktion wird normalerweise am Ende der Schreibfunktion der Eigenschaft aufgerufen.

Siehe auch „ requestPropertyChange()“.

[virtual] bool QAxBindable::readData(QIODevice *source, const QString &format)

Wenn das COM-Objekt einen MIME-Typ unterstützt, wird diese Funktion aufgerufen, um das COM-Objekt anhand des Daten- source s unter format zu initialisieren. Sie müssen source im Lesemodus öffnen, bevor Sie Daten daraus lesen können.

Gibt „true“ zurück, um den Erfolg anzuzeigen. Wenn die Funktion „false“ zurückgibt, verarbeitet ActiveQt die Daten, indem es die Eigenschaften über das Metaobjektsystem setzt.

Wenn Sie diese Funktion neu implementieren, müssen Sie auch writeData() implementieren. Die Standardimplementierung führt keine Aktion aus und gibt „false“ zurück.

Warnung: In HTML eingebetteteActiveX-Steuerelemente können entweder die Attribute „ type “ und „ data “ des object -Tags zum Lesen von Daten verwenden oder eine Liste von param -Tags zur Initialisierung von Eigenschaften nutzen. Wenn param -Tags verwendet werden, ignoriert Internet Explorer das Attribut „ data “, und „readData“ wird nicht aufgerufen.

Siehe auch „ writeData()“.

void QAxBindable::reportError(int code, const QString &src, const QString &desc, const QString &context = QString())

Meldet einen Fehler an die Client-Anwendung. „ code “ ist ein vom Steuerelement definierter Fehlercode. „ desc “ ist eine für den Anwendungsbenutzer verständliche Beschreibung des Fehlers. „ src “ ist der Name der Fehlerquelle, in der Regel der Name des ActiveX-Servers. „ context “ kann der Pfad zu einer Hilfedatei sein, die weitere Informationen zum Fehler enthält. Wenn context mit einer Zahl in Klammern endet, z. B. [12], wird diese Zahl in der Hilfedatei als Kontext-ID interpretiert.

[protected] bool QAxBindable::requestPropertyChange(const char *property)

Rufen Sie diese Funktion auf, um vom Client, auf dem dieses ActiveX-Steuerelement gehostet wird, die Berechtigung zum Ändern der Eigenschaft „ property “ anzufordern. Gibt „true“ zurück, wenn der Client die Änderung zulässt; andernfalls „false“.

Diese Funktion wird in der Regel als Erstes in der Schreibfunktion für ` property` aufgerufen, und der Schreibvorgang wird abgebrochen, wenn die Funktion „false“ zurückgibt.

void MyActiveQt::setText(const QString &text)
{
    if (!requestPropertyChange("text"))
        return;

    // update property

    propertyChanged("text");
}

Siehe auch ` propertyChanged()`.

[virtual] bool QAxBindable::writeData(QIODevice *sink)

Wenn das COM-Objekt einen MIME-Typ unterstützt, wird diese Funktion aufgerufen, um das COM-Objekt in „ sink “ zu speichern. Sie müssen „ sink “ zum Schreiben öffnen, bevor Sie Daten darin ablegen können.

Gibt „true“ zurück, um den Erfolg anzuzeigen. Wenn die Funktion „false“ zurückgibt, serialisiert ActiveQt das Objekt, indem es die Eigenschaftswerte speichert.

Wenn Sie diese Funktion neu implementieren, müssen Sie auch ` readData()` implementieren. Die Standardimplementierung führt keine Aktion aus und gibt `false` zurück.

Siehe auch ` readData()`.

© 2026 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.