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.
Наличие 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;
}
}