QAxBindable Class
La classe QAxBindable fournit une interface entre QWidget et un client ActiveX. Plus d'informations...
| En-tête : | #include <QAxBindable> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS AxServer)target_link_libraries(mytarget PRIVATE Qt6::AxServer) |
| qmake : | QT += axserver |
Fonctions publiques
| 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) |
Fonctions protégées
| IUnknown * | clientSite() const |
| void | propertyChanged(const char *property) |
| bool | requestPropertyChange(const char *property) |
Description détaillée
Les fonctions fournies par cette classe permettent à un contrôle ActiveX de communiquer les changements de propriété à une application cliente. Héritez votre classe de contrôle de QWidget (directement ou indirectement) et de cette classe pour avoir accès aux fonctions de cette classe. Le compilateur de Meta-Object Compiler vous demande d'hériter d'abord de 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); };
Lors de l'implémentation de la fonction d'écriture de la propriété, utilisez requestPropertyChange() pour obtenir l'autorisation de l'application client ActiveX de modifier cette propriété. Lorsque la propriété est modifiée, appelez propertyChanged() pour en informer l'application client ActiveX. Si une erreur fatale se produit dans le contrôle, utilisez la fonction statique reportError() pour en informer le client.
Utilisez l'interface renvoyée par clientSite() pour appeler le client ActiveX. Pour implémenter des interfaces COM supplémentaires dans votre contrôle ActiveX, réimplémentez createAggregate() pour renvoyer un nouvel objet d'une sous-classe de QAxAggregated.
Voir également QAxAggregated, QAxFactory, et ActiveQt Framework.
Documentation des fonctions membres
QAxBindable::QAxBindable()
Construit un objet QAxBindable vide.
[virtual noexcept] QAxBindable::~QAxBindable()
Détruit l'objet QAxBindable.
[protected] IUnknown *QAxBindable::clientSite() const
Renvoie un pointeur sur l'interface du site client pour cet objet ActiveX, ou null si aucun site client n'a été défini.
Appelez QueryInterface() sur l'interface renvoyée pour obtenir l'interface que vous souhaitez appeler.
[virtual] QAxAggregated *QAxBindable::createAggregate()
Réimplémentez cette fonction lorsque vous souhaitez implémenter des interfaces COM supplémentaires dans le contrôle ActiveX ou lorsque vous souhaitez fournir des implémentations alternatives d'interfaces COM. Renvoie un nouvel objet d'une sous-classe de QAxAggregated.
L'implémentation par défaut renvoie le pointeur null.
[protected] void QAxBindable::propertyChanged(const char *property)
Appeler cette fonction pour notifier au client qui héberge ce contrôle ActiveX que la propriété property a été modifiée.
Cette fonction est généralement appelée à la fin de la fonction d'écriture de la propriété.
Voir également requestPropertyChange().
[virtual] bool QAxBindable::readData(QIODevice *source, const QString &format)
Si l'objet COM prend en charge un type MIME, cette fonction est appelée pour initialiser l'objet COM à partir des données source dans format. Vous devez ouvrir source pour la lecture avant de pouvoir lire à partir de celui-ci.
La fonction renvoie true pour indiquer le succès. Si la fonction renvoie false, ActiveQt traitera les données en définissant les propriétés par le biais du système de métaobjets.
Si vous réimplémentez cette fonction, vous devez également implémenter writeData(). L'implémentation par défaut ne fait rien et renvoie false.
Attention : Les contrôles ActiveX intégrés dans HTML peuvent utiliser les attributs type et data de la balise object pour lire les données, ou utiliser une liste de balises param pour initialiser les propriétés. Si les balises param sont utilisées, Internet Explorer ignorera l'attribut data et readData ne sera pas appelé.
Voir aussi writeData().
void QAxBindable::reportError(int code, const QString &src, const QString &desc, const QString &context = QString())
Signale une erreur à l'application cliente. code est un code d'erreur défini par le contrôle. desc est une description lisible par l'homme de l'erreur destinée à l'utilisateur de l'application. src est le nom de la source de l'erreur, généralement le nom du serveur ActiveX. context peut être l'emplacement d'un fichier d'aide contenant plus d'informations sur l'erreur. Si context se termine par un nombre entre parenthèses, par exemple [12], ce nombre sera interprété comme l'ID du contexte dans le fichier d'aide.
[protected] bool QAxBindable::requestPropertyChange(const char *property)
Appeler cette fonction pour demander l'autorisation de modifier la propriété property au client qui héberge ce contrôle ActiveX. Elle renvoie la valeur true si le client autorise la modification, sinon elle renvoie la valeur false.
Cette fonction est généralement appelée en premier dans la fonction d'écriture de property, et l'écriture est abandonnée si la fonction renvoie un faux.
void MyActiveQt::setText(const QString &text) { if (!requestPropertyChange("text")) return; // update property propertyChanged("text"); }
Voir également propertyChanged().
[virtual] bool QAxBindable::writeData(QIODevice *sink)
Si l'objet COM prend en charge un type MIME, cette fonction est appelée pour stocker l'objet COM dans sink. Vous devez ouvrir sink en écriture avant de pouvoir y écrire.
Retourne true pour indiquer le succès. Si la fonction renvoie false, ActiveQt sérialise l'objet en stockant les valeurs des propriétés.
Si vous réimplémentez cette fonction, vous devez également implémenter readData(). L'implémentation par défaut ne fait rien et renvoie false.
Voir aussi 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.