QAxBindable Class
La clase QAxBindable proporciona una interfaz entre un QWidget y un cliente ActiveX. Más...
| Cabecera: | #include <QAxBindable> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS AxServer)target_link_libraries(mytarget PRIVATE Qt6::AxServer) |
| qmake: | QT += axserver |
Funciones Públicas
| 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) |
Funciones protegidas
| IUnknown * | clientSite() const |
| void | propertyChanged(const char *property) |
| bool | requestPropertyChange(const char *property) |
Descripción detallada
Las funciones proporcionadas por esta clase permiten a un control ActiveX comunicar cambios de propiedades a una aplicación cliente. Herede su clase de control tanto de QWidget (directa o indirectamente) como de esta clase para obtener acceso a las funciones de esta clase. El compilador de meta-objetos requiere que herede primero 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); };
Cuando implemente la función de escritura de propiedades, utilice requestPropertyChange() para obtener permiso de la aplicación cliente ActiveX para cambiar esta propiedad. Cuando la propiedad cambie, llame a propertyChanged() para notificar el cambio a la aplicación cliente ActiveX. Si se produce un error fatal en el control, utilice la función estática reportError() para notificar al cliente.
Utilice la interfaz devuelta por clientSite() para llamar al cliente ActiveX. Para implementar interfaces COM adicionales en su control ActiveX, reimplemente createAggregate() para devolver un nuevo objeto de una subclase de QAxAggregated.
Véase también QAxAggregated, QAxFactory, y ActiveQt Framework.
Documentación de funciones miembro
QAxBindable::QAxBindable()
Construye un objeto QAxBindable vacío.
[virtual noexcept] QAxBindable::~QAxBindable()
Destruye el objeto QAxBindable.
[protected] IUnknown *QAxBindable::clientSite() const
Devuelve un puntero a la interfaz del sitio cliente para este objeto ActiveX, o null si no se ha establecido ningún sitio cliente.
Llame a QueryInterface() en la interfaz devuelta para obtener la interfaz que desea llamar.
[virtual] QAxAggregated *QAxBindable::createAggregate()
Reimplemente esta función cuando desee implementar interfaces COM adicionales en el control ActiveX, o cuando desee proporcionar implementaciones alternativas de interfaces COM. Devuelve un nuevo objeto de una subclase de QAxAggregated.
La implementación por defecto devuelve el puntero nulo.
[protected] void QAxBindable::propertyChanged(const char *property)
Llame a esta función para notificar al cliente que aloja este control ActiveX que la propiedad property ha sido modificada.
Esta función se llama normalmente al final de la función de escritura de la propiedad.
Véase también requestPropertyChange().
[virtual] bool QAxBindable::readData(QIODevice *source, const QString &format)
Si el objeto COM admite un tipo MIME, se llama a esta función para inicializar el objeto COM a partir de los datos source en format. Hay que abrir source para su lectura antes de poder leer de él.
Devuelve true para indicar éxito. Si la función devuelve false, entonces ActiveQt procesará los datos estableciendo las propiedades a través del sistema de metaobjetos.
Si reimplementas esta función también tienes que implementar writeData(). La implementación por defecto no hace nada y devuelve false.
Advertencia: Los controles ActiveX incrustados en HTML pueden utilizar los atributos type y data de la etiqueta object para leer datos, o utilizar una lista de etiquetas param para inicializar propiedades. Si se utilizan etiquetas param, Internet Explorer ignorará el atributo data y no se llamará a readData.
Véase también writeData().
void QAxBindable::reportError(int code, const QString &src, const QString &desc, const QString &context = QString())
Informa de un error a la aplicación cliente. code es un código de error definido por el control. desc es una descripción del error legible para el usuario de la aplicación. src es el nombre de la fuente del error, normalmente el nombre del servidor ActiveX. context puede ser la ubicación de un archivo de ayuda con más información sobre el error. Si context termina con un número entre paréntesis, por ejemplo [12], este número se interpretará como el ID de contexto en el archivo de ayuda.
[protected] bool QAxBindable::requestPropertyChange(const char *property)
Llame a esta función para solicitar permiso para cambiar la propiedad property al cliente que aloja este control ActiveX. Devuelve true si el cliente permite el cambio; en caso contrario devuelve false.
Esta función suele llamarse primero en la función de escritura de property, y la escritura se abandona si la función devuelve false.
void MyActiveQt::setText(const QString &text) { if (!requestPropertyChange("text")) return; // update property propertyChanged("text"); }
Véase también propertyChanged().
[virtual] bool QAxBindable::writeData(QIODevice *sink)
Si el objeto COM admite un tipo MIME, se llama a esta función para almacenar el objeto COM en sink. Tiene que abrir sink para escritura antes de poder escribir en él.
Devuelve true para indicar éxito. Si la función devuelve false, entonces ActiveQt serializará el objeto almacenando los valores de las propiedades.
Si reimplementas esta función también tienes que implementar readData(). La implementación por defecto no hace nada y devuelve false.
Véase también 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.