atributo defaultvtable
O atributo [defaultvtable] define uma interface como a interface Vtable padrão.
[
coclass-attribute-list,
defaultvtable
]
coclass coclass-name
{
coclass-interface-list
}
Parâmetros
-
coclass-attribute-list
-
Outros atributos que se aplicam à classe . Os atributos [source] e [uuid] são necessários.
-
coclass-name
-
O nome da classe.
-
coclass-interface-list
-
Uma lista de interfaces para a classe .
Comentários
Uma interface Vtable padrão não pode ser uma dispinterface, deve ser uma interface ou dual ou Vtable. Se a interface for uma interface dupla, os coletores poderão assumir que receberão eventos por meio da Vtable.
Uma classe pode ser uma interface de origem padrão e uma interface de origem Vtable padrão, conforme mostrado no exemplo. Nesse caso, um coletor de avisos deve usar IID_IDISPATCH para receber eventos de expedição e usar o identificador de interface para receber eventos Vtable.
Representação typeflag
A presença de IMPLTYPEFLAG_FDEFAULTVTABLE.
Exemplos
[
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;
}
}
Confira também