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 по умолчанию, как показано в примере. В этом случае приемник рекомендаций должен использовать 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;
    }
}

См. также раздел

кокласс

Синтаксис ODL-файла

Пример ODL-файла

Создание библиотеки типов с помощью MIDL

Источник

uuid