defaultvtable 특성

[defaultvtable] 특성은 인터페이스를 기본 Vtable 인터페이스로 정의합니다.

[
    coclass-attribute-list, 
    defaultvtable
]
coclass coclass-name
{
    coclass-interface-list
}

매개 변수

coclass-attribute-list

클래스에 적용되는 기타 특성입니다. [source][uuid] 특성이 필요합니다.

coclass-name

클래스의 이름입니다.

coclass-interface-list

클래스에 대한 인터페이스 목록입니다.

설명

기본 Vtable 인터페이스는 dispinterface일 수 없으며 이중 또는 Vtable 또는 인터페이스여야 합니다. 인터페이스가 이중 인터페이스인 경우 싱크는 Vtable을 통해 이벤트를 수신한다고 가정할 수 있습니다.

클래스는 예제와 같이 기본 소스 인터페이스와 기본 Vtable 원본 인터페이스일 수 있습니다. 이 경우 advise 싱크는 IID_IDISPATCH 사용하여 디스패치 이벤트를 수신하고 인터페이스 식별자를 사용하여 Vtable 이벤트를 수신해야 합니다.

Typeflag 표현

IMPLTYPEFLAG_FDEFAULTVTABLE 존재.

[
    dual,
    uuid(12345678-1234-1234-1234-123456789ABC),
    restricted
]
interface IForm: IDispatch
{
    [propget] HRESULT Backcolor([out, retval] long *Value);
    [propput] HRESULT Backcolor([in] long Value);
    [propget] HRESULT Name([out, retval] BSTR *Value);
    [propput] HRESULT Name([in] BSTR Value);}

[
    dual,
    uuid(1e196b20-1f3c-1069-996b-00dd010fe676),
    restricted
]
interface IFormEvents: IDispatch
{
    HRESULT Click();
    HRESULT Resize();}

    [
        uuid(1e123456-1f3c-1069-996b-123456789ABC)
    ]
    coclass Form
    {
        [default] interface IForm;
        [default, defaultvtable, source] interface IFormEvents;
    }
}

참고 항목

coclass

ODL 파일 구문

ODL 파일 예제

MIDL을 사용하여 형식 라이브러리 생성

소스

uuid