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;
}
}
См. также раздел