QAxBaseWidget 类

QAxBaseWidget 提供静态特性和信号为 QAxWidget . 更多...

头: #include <QAxBaseWidget>
CMake: find_package(Qt6 COMPONENTS AxContainer REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
Since: Qt 6.0
继承: QWidget and QAxObjectInterface
继承者: QAxWidget

特性

信号

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 )

详细描述

特性文档编制

classContext : const ulong

This property holds the context the ActiveX control will run in (default CLSCTX_SERVER).

The property affects the "dwClsContext" argument when calling CoCreateInstance. This can be used to control in-proc vs. out-of-proc startup for controls supporting both alternatives. Also, it can be used to modify/reduce control permissions when used with CLSCTX_ENABLE_CLOAKING and an impersonation token.

Note that it must be set before setControl () to have any effect.

另请参阅 control .

control : const QString

此特性保持包裹的 COM 对象名称通过此 QAxBaseWidget 对象。

设置此特性将初始化 COM (组件对象模型) 对象。关闭先前设置的任何 COM 对象。

设置此特性的最有效方式是使用注册组件 UUID,如

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

第 2 种最快方式是使用已注册控件类名 (带或不带版本号),如

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

最慢但最轻松的方式是使用控件的完整名称,如

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

从文件初始化对象也是可能的,如

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

若使用组件 UUID 则可以使用下列模式初始化远程机器控件,以初始化许可控件或连接到正运行对象:

  • 要初始化不同机器中的控件,使用以下模式:
    <domain/username>:<password>@server/{8E27C92B-1264-101C-8A2F-040224009C02}
    							
  • 要初始化许可控件,使用以下模式:
    {8E27C92B-1264-101C-8A2F-040224009C02}:<LicenseKey>
    							
  • 要连接到已运行对象,使用以下模式:
    {8E27C92B-1264-101C-8A2F-040224009C02}&
    							

前 2 种模式可以组合,如初始化远程机器中的许可控件:

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

控件的读取函数始终返回控件的 UUID,若提供包括许可密钥和服务器名称,但不包括用户名、域或口令。

另请参阅 classContext .

成员函数文档编制

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

This signal is emitted when the COM object throws an exception while called using the OLE automation interface IDispatch. code , source , desc and help provide information about the exception as provided by the COM server and can be used to provide useful feedback to the end user. help includes the help file, and the help context ID in brackets, e.g. "filename [id]".

另请参阅 QAxBaseObject::exception ().

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

若 COM (组件对象模型) 对象支持特性通知,此信号获得发射当特性称为 name 改变。

另请参阅 QAxBaseObject::propertyChanged ().

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

This generic signal gets emitted when the COM object issues the event name . argc is the number of parameters provided by the event (DISPPARAMS.cArgs), and argv is the pointer to the parameter values (DISPPARAMS.rgvarg). Note that the order of parameter values is turned around, ie. the last element of the array is the first parameter in the function.

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

Use this signal if the event has parameters of unsupported data types. Otherwise, connect directly to the signal name .

另请参阅 QAxBaseObject::signal ().