QAxBindable Class
La classe QAxBindable assure l'interface entre un « QWidget » et un client ActiveX. En savoir plus...
| En-tête : | #include <qaxbindable.h> |
| 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 modifications de propriétés à une application cliente. Faites hériter votre classe de contrôle à la fois de QWidget (directement ou indirectement) et de cette classe pour accéder aux fonctions de cette dernière. Le Meta-Object Compiler exige que vous héritiez 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 propriété, utilisez ` requestPropertyChange()` pour obtenir l’autorisation de l’application cliente ActiveX de modifier cette propriété. Lorsque la propriété change, appelez ` propertyChanged()` pour notifier l’application cliente ActiveX de cette modification. 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() afin de renvoyer un nouvel objet d’une sous-classe de QAxAggregated.
Voir également QAxAggregated, QAxFactory et ActiveQt Framework.
Documentation sur les fonctions membres
QAxBindable::QAxBindable()
Crée un objet QAxBindable vide.
[virtual noexcept] QAxBindable::~QAxBindable()
Supprime l'objet « QAxBindable ».
[protected] IUnknown *QAxBindable::clientSite() const
Renvoie un pointeur vers l'interface côté client de cet objet ActiveX, ou la valeur null si aucun côté client n'a été défini.
Appelez la méthode ` 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 d'autres implémentations d'interfaces COM. Renvoyez 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)
Appelez cette fonction pour signaler au client hébergeant 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 disponibles à l'adresse format. Vous devez ouvrir le fichier source en mode lecture avant de pouvoir y accéder.
Renvoie « true » en cas de réussite. Si la fonction renvoie « false », ActiveQt traitera les données en définissant les propriétés via le système de méta-objets.
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 ».
Avertissement : les contrôlesActiveX intégrés dans du code HTML peuvent soit utiliser les attributs ` type ` et ` data ` de la balise ` object ` pour lire les données, soit utiliser une liste de balises ` param ` pour initialiser les propriétés. Si des balises ` param ` sont utilisées, Internet Explorer ignorera l’attribut ` data ` et la fonction `readData` ne sera pas appelée.
Voir également 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'utilisateur de l'application. « src » est le nom de la source de l'erreur, généralement le nom du serveur ActiveX. « context » peut correspondre à l'emplacement d'un fichier d'aide contenant plus d'informations sur l'erreur. Si context se termine par un nombre entre crochets, par exemple [12], ce nombre sera interprété comme l'ID de contexte dans le fichier d'aide.
[protected] bool QAxBindable::requestPropertyChange(const char *property)
Appelez cette fonction pour demander l'autorisation de modifier la propriété property du client qui héberge ce contrôle ActiveX. Renvoie « true » si le client autorise la modification ; sinon, renvoie « false ».
Cette fonction est généralement appelée en premier dans la fonction d'écriture de ` property`, et l'écriture est interrompue si la fonction renvoie `false`.
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 enregistrer l'objet COM dans le fichier sink. Vous devez ouvrir le fichier sink en mode écriture avant de pouvoir y écrire.
Renvoie « true » en cas de réussite. Si la fonction renvoie « false », ActiveQt sérialisera l'objet en enregistrant les valeurs de ses 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 également 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.