Spec-Zone.ru › Qt 6.1

Класс QAxBaseWidget

QAxBaseWidget предоставляет статические свойства и сигналы для QAxWidget. Подробнее...

Заголовок: #include <QAxBaseWidget>
CMake: find_package(Qt6 COMPONENTS AxContainer REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::AxContainer)
qmake: QT += axcontainer
С тех пор: Qt 6.0
Наследует: QWidget и QAxObjectInterface
Наследован(а) от:

QAxWidget

  • Список всех членов, включая наследуемые

Свойства

  • classContext : const ulong
  • control : const QString

Сигналы

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

Это свойство содержит контекст, в котором будет выполняться ActiveX-контроль (по умолчанию CLSCTX_SERVER).

Свойство влияет на аргумент "dwClsContext" при вызове CoCreateInstance. Это можно использовать для управления запуском в процессе или вне процесса для контроллеров, поддерживающих оба варианта. Кроме того, его можно использовать для изменения/сокращения прав контроля при использовании CLSCTX_ENABLE_CLOAKING и маркера имперсонации.

Обратите внимание, что его необходимо установить перед setControl(), чтобы он имел какой-либо эффект.

См. также control.

control : const QString

Это свойство содержит имя COM-объекта, обернутого этим объектом QAxBaseWidget.

Установка этого свойства инициализирует COM-объект. Любой ранее установленный COM-объект закрывается.

Самый эффективный способ установить это свойство — использовать UUID зарегистрированного компонента, например:

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

Второй по эффективности способ — использовать имя зарегистрированного элемента управления (с номером версии или без него), например:

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

Первые два шаблона можно комбинировать, например, для инициализации лицензированного элемента управления на удаленном компьютере:

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)

Этот сигнал излучается, когда COM-объект генерирует исключение при вызове его с помощью интерфейса OLE automation IDispatch. code, source, desc и help предоставляют информацию об исключении, предоставленную COM-сервером, и могут использоваться для предоставления полезной обратной связи конечному пользователю. help включает файл справки и идентификатор контекста справки в скобках, например, "имя_файла [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)

Этот универсальный сигнал излучается, когда COM-объект издает событие name. argc — это количество параметров, предоставленных событием (DISPPARAMS.cArgs), а argv — указатель на значения параметров (DISPPARAMS.rgvarg). Обратите внимание, что порядок значений параметров меняется, т. е. последний элемент массива является первым параметром в функции.

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

Используйте этот сигнал, если событие имеет параметры недопустимых типов данных. В противном случае подключитесь непосредственно к сигналу name.

См. также QAxBaseObject::signal().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qaxbasewidget.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API