Auf dieser Seite

QAxBaseWidget Class

QAxBaseWidget stellt statische Eigenschaften und Signale für „ QAxWidget “ bereit. Mehr...

Header: #include <qaxwidget.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS AxContainer)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
Seit: Qt 6.0
Erbt von:QWidget und QAxObjectInterface
Vererbt an:

QAxWidget

Eigenschaften

Signale

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)

Ausführliche Beschreibung

Dokumentation der Eigenschaften

classContext : ulong

Diese Eigenschaft enthält den Kontext, in dem das ActiveX-Steuerelement ausgeführt wird (Standard: CLSCTX_SERVER).

Die Eigenschaft wirkt sich auf das Argument „dwClsContext“ beim Aufruf von CoCreateInstance aus. Dies kann verwendet werden, um den Start im Prozess (in-proc) oder außerhalb des Prozesses (out-of-proc) für Steuerelemente zu steuern, die beide Alternativen unterstützen. Außerdem kann sie verwendet werden, um die Berechtigungen des Steuerelements zu ändern oder einzuschränken, wenn sie zusammen mit CLSCTX_ENABLE_CLOAKING und einem Impersonationstoken verwendet wird.

Beachten Sie, dass sie vor dem Aufruf von ` setControl()` gesetzt werden muss, um wirksam zu sein.

Siehe auch control.

control : QString

Diese Eigenschaft enthält den Namen des COM-Objekts, das von diesem „ QAxBaseWidget “-Objekt umschlossen wird.

Durch das Setzen dieser Eigenschaft wird das COM-Objekt initialisiert. Jedes zuvor festgelegte COM-Objekt wird beendet.

Am effizientesten lässt sich diese Eigenschaft mithilfe der UUID der registrierten Komponente setzen, z. B.

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

Die zweitschnellste Methode ist die Verwendung des Klassennamens des registrierten Steuerelements (mit oder ohne Versionsnummer), z. B.

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

Die langsamste, aber einfachste Methode ist die Verwendung des vollständigen Namens des Steuerelements, z. B.

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

Es ist auch möglich, das Objekt aus einer Datei zu initialisieren, z. B.

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

Wird die UUID der Komponente verwendet, können die folgenden Muster genutzt werden, um das Steuerelement auf einem Remote-Rechner zu initialisieren, ein lizenziertes Steuerelement zu initialisieren oder eine Verbindung zu einem laufenden Objekt herzustellen:

  • Um das Steuerelement auf einem anderen Rechner zu initialisieren, verwenden Sie das folgende Muster:
    <domain/username>:<password>@server/{8E27C92B-1264-101C-8A2F-040224009C02}
  • Um ein lizenziertes Steuerelement zu initialisieren, verwenden Sie das folgende Muster:
    {8E27C92B-1264-101C-8A2F-040224009C02}:<LicenseKey>
  • Um eine Verbindung zu einem bereits laufenden Objekt herzustellen, verwenden Sie das folgende Muster:
    {8E27C92B-1264-101C-8A2F-040224009C02}&

Die ersten beiden Muster lassen sich kombinieren, z. B. um ein lizenziertes Steuerelement auf einem Remote-Rechner zu initialisieren:

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

Die Lesefunktion des Steuerelements gibt immer die UUID des Steuerelements zurück – sofern angegeben, einschließlich des Lizenzschlüssels – sowie den Namen des Servers, jedoch ohne den Benutzernamen, die Domäne oder das Passwort.

Siehe auch classContext.

Dokumentation zu den Mitgliedsfunktionen

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

Dieses Signal wird ausgelöst, wenn das COM-Objekt eine Ausnahme auslöst, während es über die OLE-Automatisierungsschnittstelle „IDispatch“ aufgerufen wird. code, source, desc und help liefern Informationen über die vom COM-Server bereitgestellte Ausnahme und können verwendet werden, um dem Endbenutzer nützliches Feedback zu geben. help enthält den Namen der Hilfedatei sowie die Hilfe-Kontext-ID in Klammern, z. B. „Dateiname [id]“.

Siehe auch QAxBaseObject::exception().

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

Wenn das COM-Objekt die Benachrichtigung über Eigenschaftsänderungen unterstützt, wird dieses Signal ausgelöst, sobald die Eigenschaft „ name “ geändert wird.

Siehe auch „ QAxBaseObject::propertyChanged()“.

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

Dieses generische Signal wird ausgelöst, wenn das COM-Objekt das Ereignis „ name “ auslöst. „ argc “ ist die Anzahl der vom Ereignis bereitgestellten Parameter (DISPPARAMS.cArgs), und „ argv “ ist der Zeiger auf die Parameterwerte (DISPPARAMS.rgvarg). Beachten Sie, dass die Reihenfolge der Parameterwerte umgekehrt ist, d. h., das letzte Element des Arrays ist der erste Parameter in der Funktion.

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

Verwenden Sie dieses Signal, wenn das Ereignis Parameter mit nicht unterstützten Datentypen enthält. Andernfalls verbinden Sie sich direkt mit dem Signal „ name “.

Siehe auch „ 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.