defaultvtable (attributo)
L'attributo [defaultvtable] definisce un'interfaccia come interfaccia Vtable predefinita.
[
coclass-attribute-list,
defaultvtable
]
coclass coclass-name
{
coclass-interface-list
}
Parametri
-
coclass-attribute-list
-
Altri attributi che si applicano alla classe . Gli attributi [source] e [uuid] sono obbligatori.
-
coclasse-name
-
Nome della classe.
-
coclass-interface-list
-
Elenco di interfacce per la classe .
Commenti
Un'interfaccia Vtable predefinita non può essere un'interfaccia dispinterfaccia, ma deve essere un'interfaccia o una doppia tabella virtuale. Se l'interfaccia è un'interfaccia doppia, i sink possono presupporre che riceveranno eventi tramite Vtable.
Una classe può essere sia un'interfaccia di origine predefinita che un'interfaccia di origine Vtable predefinita, come illustrato nell'esempio. In questo caso, un sink consigliato deve usare IID_IDISPATCH per ricevere eventi di invio e usare l'identificatore dell'interfaccia per ricevere gli eventi della tabella virtuale.
Rappresentazione typeflag
Presenza di IMPLTYPEFLAG_FDEFAULTVTABLE.
Esempi
[
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;
}
}
Vedere anche