Sur cette page

QAxBaseWidget Class

QAxBaseWidget fournit des propriétés statiques et des signaux pour QAxWidget. Plus...

En-tête : #include <QAxBaseWidget>
CMake : find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake : QT += axcontainer
Depuis : Qt 6.0
Hérite de : QWidget et QAxObjectInterface
Hérité par :

QAxWidget

Propriétés

Signaux

void exception(int code, const QString &source, const QString &desc, const QString &help)
void propertyChanged(const QString &name)
void signal(const QString &name, int argc, void *argv)

Description détaillée

Documentation sur les propriétés

classContext : ulong

Cette propriété définit le contexte dans lequel le contrôle ActiveX sera exécuté (par défaut CLSCTX_SERVER).

La propriété affecte l'argument "dwClsContext" lors de l'appel à CoCreateInstance. Elle peut être utilisée pour contrôler le démarrage in-proc ou out-of-proc pour les contrôles supportant les deux alternatives. Il peut également être utilisé pour modifier/réduire les autorisations de contrôle lorsqu'il est utilisé avec CLSCTX_ENABLE_CLOAKING et un jeton d'usurpation d'identité.

Notez qu'il doit être défini avant setControl() pour avoir un effet.

Voir aussi control.

control : QString

Cette propriété contient le nom de l'objet COM enveloppé par cet objet QAxBaseWidget.

La définition de cette propriété initialise l'objet COM. Tout objet COM précédemment défini est fermé.

La manière la plus efficace de définir cette propriété est d'utiliser l'UUID du composant enregistré, par ex.

ctrl->setControl("{8E27C92B-1264-101C-8A2F-040224009C02}");

La deuxième méthode la plus rapide consiste à utiliser le nom de la classe du contrôle enregistré (avec ou sans numéro de version), par exemple

ctrl->setControl("MSCal.Calendar");

La méthode la plus lente, mais la plus simple, consiste à utiliser le nom complet du contrôle, par ex.

ctrl->setControl("Calendar Control 9.0");

Il est également possible d'initialiser l'objet à partir d'un fichier, par exemple.

ctrl->setControl("c:/files/file.doc");

Si l'UUID du composant est utilisé, les modèles suivants peuvent être utilisés pour initialiser le contrôle sur une machine distante, pour initialiser un contrôle sous licence ou pour se connecter à un objet en cours d'exécution :

  • Pour initialiser le contrôle sur une machine différente, utilisez le modèle suivant :
    <domain/username>:<password>@server/{8E27C92B-1264-101C-8A2F-040224009C02}
  • Pour initialiser un contrôle sous licence, utilisez le modèle suivant :
    {8E27C92B-1264-101C-8A2F-040224009C02}:<LicenseKey>
  • Pour se connecter à un objet déjà en cours d'exécution, utilisez le modèle suivant :
    {8E27C92B-1264-101C-8A2F-040224009C02}&

Les deux premiers modèles peuvent être combinés, par exemple pour initialiser un contrôle sous licence sur une machine distante :

ctrl->setControl("DOMAIN/user:password@server/{8E27C92B-1264-101C-8A2F-040224009C02}:LicenseKey");

La fonction de lecture du contrôle renvoie toujours l'UUID du contrôle, s'il est fourni, y compris la clé de licence, et le nom du serveur, mais pas le nom d'utilisateur, le domaine ou le mot de passe.

Voir aussi classContext.

Documentation des fonctions membres

[signal] void QAxBaseWidget::exception(int code, const QString &source, const QString &desc, const QString &help)

Ce signal est émis lorsque l'objet COM lance une exception alors qu'il est appelé à l'aide de l'interface d'automatisation OLE IDispatch. code Les messages d'erreur, source, desc et help fournissent des informations sur l'exception telles qu'elles sont fournies par le serveur COM et peuvent être utilisées pour fournir un retour d'information utile à l'utilisateur final. help inclut le fichier d'aide et l'ID du contexte d'aide entre parenthèses, par exemple "nom de fichier [id]".

Voir également QAxBaseObject::exception().

[signal] void QAxBaseWidget::propertyChanged(const QString &name)

Si l'objet COM prend en charge la notification des propriétés, ce signal est émis lorsque la propriété appelée name est modifiée.

Voir également QAxBaseObject::propertyChanged().

[signal] void QAxBaseWidget::signal(const QString &name, int argc, void *argv)

Ce signal générique est émis lorsque l'objet COM émet l'événement name. argc est le nombre de paramètres fournis par l'événement (DISPPARAMS.cArgs) et argv est le pointeur sur les valeurs des paramètres (DISPPARAMS.rgvarg). Notez que l'ordre des valeurs des paramètres est inversé, c'est-à-dire que le dernier élément du tableau est le premier paramètre de la fonction.

void Receiver::slot(const QString &name, int argc, void *argv)
{
    VARIANTARG *params = (VARIANTARG*)argv;
    if (name.startsWith("BeforeNavigate2(")) {
        IDispatch *pDisp = params[argc-1].pdispVal;
        VARIANTARG URL = *params[argc-2].pvarVal;
        VARIANTARG Flags = *params[argc-3].pvarVal;
        VARIANTARG TargetFrameName = *params[argc-4].pvarVal;
        VARIANTARG PostData = *params[argc-5].pvarVal;
        VARIANTARG Headers = *params[argc-6].pvarVal;
        bool *Cancel = params[argc-7].pboolVal;
    }
}

Utilisez ce signal si l'événement a des paramètres dont le type de données n'est pas pris en charge. Sinon, connectez-vous directement au signal name.

Voir également QAxBaseObject::signal().

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