이 페이지에서

QAxBindable Class

QAxBindable 클래스는 바인딩 가능한 객체( QWidget )와 ActiveX 클라이언트 간의 인터페이스를 제공합니다. 더 보기...

헤더: #include <qaxbindable.h>
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 (직접 또는 간접적으로)과 이 클래스 모두로부터 상속받아야 합니다. Meta-Object Compiler에서는 먼저 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 Framework도 참조하십시오 .

멤버 함수 문서

QAxBindable::QAxBindable()

빈 QAxBindable 객체를 생성합니다.

[virtual noexcept] QAxBindable::~QAxBindable()

QAxBindable 객체를 삭제합니다.

[protected] IUnknown *QAxBindable::clientSite() const

이 ActiveX 개체의 클라이언트 측 인터페이스에 대한 포인터를 반환하며, 클라이언트 측이 설정되지 않은 경우에는 null을 반환합니다.

반환된 인터페이스에서 ` QueryInterface() `를 호출하여 호출하려는 인터페이스를 가져옵니다.

[virtual] QAxAggregated *QAxBindable::createAggregate()

ActiveX 컨트롤에 추가적인 COM 인터페이스를 구현하거나, COM 인터페이스에 대한 대체 구현을 제공하려는 경우 이 함수를 재구현하십시오. ` QAxAggregated `의 하위 클래스에 속하는 새로운 객체를 반환하십시오.

기본 구현은 null 포인터를 반환합니다.

[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 에서 데이터를 읽으려면 먼저 해당 파일을 읽기 모드로 열어야 합니다.

성공 시 true를 반환합니다. 함수가 false를 반환하면 ActiveQt는 메타 객체 시스템을 통해 속성을 설정하여 데이터를 처리합니다.

이 함수를 재구현하는 경우 writeData()도 구현해야 합니다. 기본 구현은 아무 작업도 수행하지 않고 false를 반환합니다.

경고: 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 속성을 변경할 수 있는 권한을 요청하려면 이 함수를 호출하십시오. 클라이언트가 변경을 허용하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

이 함수는 일반적으로 ` 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 에 데이터를 쓰기 위해서는 먼저 해당 파일을 쓰기 모드로 열어야 합니다.

성공 시 true를 반환합니다. 함수가 false를 반환하면, ActiveQt는 속성 값을 저장하여 객체를 직렬화합니다.

이 함수를 재구현하는 경우 readData()도 구현해야 합니다. 기본 구현은 아무 작업도 수행하지 않고 false를 반환합니다.

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.