QAxBaseWidget Class
QAxBaseWidget은 QAxWidget 에 대한 정적 프로퍼티와 신호를 제공합니다. 더 보기...
Header: | #include <QAxBaseWidget> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS AxContainer) target_link_libraries(mytarget PRIVATE Qt6::AxContainer) |
qmake: | QT += axcontainer |
이후: | Qt 6.0 |
상속합니다: | QWidget 및 QAxObjectInterface |
상속된 사람: |
속성
- 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).
이 속성은 CoCreateInstance를 호출할 때 "dwClsContext" 인수에 영향을 줍니다. 이 속성은 두 가지 대안을 모두 지원하는 컨트롤의 인-프로크 시작과 아웃-오브-프로크 시작을 제어하는 데 사용할 수 있습니다. 또한 CLSCTX_ENABLE_CLOAKING 및 가장 토큰과 함께 사용할 경우 제어 권한을 수정/축소하는 데 사용할 수 있습니다.
setControl() 앞에 설정해야 효과를 볼 수 있습니다.
control 를참조하세요 .
control : const QString
이 속성은 이 QAxBaseWidget 개체로 래핑된 COM 개체의 이름을 보유합니다.
이 속성을 설정하면 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 자동화 인터페이스 IDispatch를 사용하여 호출되는 동안 예외를 던질 때 발생합니다. code source , desc 및 help 는 COM 서버에서 제공하는 예외에 대한 정보를 제공하며 최종 사용자에게 유용한 피드백을 제공하는 데 사용할 수 있습니다. help 에는 도움말 파일과 괄호 안에 도움말 컨텍스트 ID(예: "파일 이름 [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()도 참조하세요 .
© 2025 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.