QAxBindable Class
QAxBindable 클래스는 QWidget 와 ActiveX 클라이언트 간의 인터페이스를 제공합니다. 더 보기...
헤더: | #include <QAxBindable> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS AxServer) target_link_libraries(mytarget PRIVATE Qt6::AxServer) |
qmake: | QT += axserver |
공용 함수
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) |
보호된 함수
IUnknown * | clientSite() const |
void | propertyChanged(const char *property) |
bool | requestPropertyChange(const char *property) |
상세 설명
이 클래스에서 제공하는 함수를 사용하면 ActiveX 컨트롤이 속성 변경 사항을 클라이언트 애플리케이션에 전달할 수 있습니다. 이 클래스의 함수에 액세스하려면 QWidget (직접 또는 간접적으로)와 이 클래스 모두에서 컨트롤 클래스를 상속해야 합니다. 메타 객체 컴파일러를 사용하려면 먼저 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); };
속성 쓰기 함수를 구현할 때 requestPropertyChange()를 사용하여 이 속성을 변경할 수 있는 권한을 ActiveX 클라이언트 애플리케이션으로부터 받습니다. 속성이 변경되면 propertyChanged()를 호출하여 ActiveX 클라이언트 애플리케이션에 변경 사항을 알립니다. 컨트롤에 치명적인 오류가 발생하면 정적 reportError() 함수를 사용하여 클라이언트에게 알립니다.
clientSite()에서 반환된 인터페이스를 사용하여 ActiveX 클라이언트를 호출합니다. ActiveX 컨트롤에서 추가 COM 인터페이스를 구현하려면 createAggregate()를 다시 구현하여 QAxAggregated 하위 클래스의 새 객체를 반환합니다.
QAxAggregated, QAxFactory, 및 ActiveQt 프레임워크도참조하십시오 .
멤버 함수 문서
QAxBindable::QAxBindable()
빈 QAxBindable 객체를 생성합니다.
[virtual noexcept]
QAxBindable::~QAxBindable()
QAxBindable 객체를 삭제합니다.
[protected]
IUnknown *QAxBindable::clientSite() const
이 ActiveX 객체에 대한 클라이언트 사이트 인터페이스에 대한 포인터를 반환하거나 클라이언트 사이트가 설정되지 않은 경우 null을 반환합니다.
반환된 인터페이스에서 QueryInterface()
을 호출하여 호출하려는 인터페이스를 가져옵니다.
[virtual]
QAxAggregated *QAxBindable::createAggregate()
ActiveX 컨트롤에서 추가 COM 인터페이스를 구현하거나 COM 인터페이스의 대체 구현을 제공하려는 경우 이 함수를 다시 구현합니다. QAxAggregated 서브클래스의 새 객체를 반환합니다.
기본 구현은 널 포인터를 반환합니다.
[protected]
void QAxBindable::propertyChanged(const char *property)
이 함수를 호출하면 이 ActiveX 컨트롤을 호스팅하는 클라이언트에 property 속성이 변경되었음을 알립니다.
이 함수는 일반적으로 속성의 쓰기 함수가 끝날 때 호출됩니다.
requestPropertyChange()도 참조하세요 .
[virtual]
bool QAxBindable::readData(QIODevice *source, const QString &format)
COM 객체가 MIME 유형을 지원하는 경우 이 함수가 호출되어 format 의 source 데이터에서 COM 객체를 초기화합니다. 읽기 전에 source 을 열어 읽어야 합니다.
참을 반환하여 성공을 나타냅니다. 함수가 false를 반환하면 ActiveQt는 메타 객체 시스템을 통해 프로퍼티를 설정하여 데이터를 처리합니다.
이 함수를 다시 구현하는 경우 writeData()도 구현해야 합니다. 기본 구현은 아무 작업도 수행하지 않고 거짓을 반환합니다.
경고: HTML에 내장된 ActiveX 컨트롤은 object
태그의 type
및 data
속성을 사용하여 데이터를 읽거나 param
태그 목록을 사용하여 속성을 초기화할 수 있습니다. param
태그가 사용되는 경우 Internet Explorer는 data
속성을 무시하고 readData를 호출하지 않습니다.
writeData()도 참조하세요 .
void QAxBindable::reportError(int code, const QString &src, const QString &desc, const QString &context = QString())
클라이언트 애플리케이션에 오류를 보고합니다. code 는 제어 정의 오류 코드입니다. desc 는 애플리케이션 사용자를 위한 사람이 읽을 수 있는 오류 설명입니다. src 는 오류의 소스 이름(일반적으로 ActiveX 서버 이름)입니다. context 는 오류에 대한 자세한 정보가 있는 도움말 파일의 위치일 수 있습니다. context 뒤에 괄호 안의 숫자(예: [12]로 끝나는 경우 이 숫자는 도움말 파일의 컨텍스트 ID로 해석됩니다.
[protected]
bool QAxBindable::requestPropertyChange(const char *property)
이 함수를 호출하여 이 ActiveX 컨트롤을 호스팅하는 클라이언트에서 property 속성을 변경할 수 있는 권한을 요청합니다. 클라이언트가 변경을 허용하면 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.
이 함수는 일반적으로 property 에 대한 쓰기 함수에서 가장 먼저 호출되며, 함수가 false를 반환하면 쓰기가 중단됩니다.
void MyActiveQt::setText(const QString &text) { if (!requestPropertyChange("text")) return; // update property propertyChanged("text"); }
propertyChanged()도 참조하세요 .
[virtual]
bool QAxBindable::writeData(QIODevice *sink)
COM 객체가 MIME 유형을 지원하는 경우 이 함수가 호출되어 COM 객체를 sink 에 저장합니다. 쓰기 전에 sink 을 열어야 합니다.
참을 반환하면 성공을 나타냅니다. 함수가 false를 반환하면 ActiveQt는 속성 값을 저장하여 객체를 직렬화합니다.
이 함수를 다시 구현하는 경우 readData()도 구현해야 합니다. 기본 구현은 아무 작업도 수행하지 않고 거짓을 반환합니다.
readData()도 참조하세요 .
© 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.