defaultvtable (attribut)
L’attribut [defaultvtable] définit une interface comme interface Vtable par défaut.
[
coclass-attribute-list,
defaultvtable
]
coclass coclass-name
{
coclass-interface-list
}
Paramètres
-
coclasse-attribute-list
-
Autres attributs qui s’appliquent à la classe . Les attributs [source] et [uuid] sont requis.
-
coclasse-name
-
Nom de la classe.
-
coclasse-interface-list
-
Liste des interfaces pour la classe .
Notes
Une interface Vtable par défaut ne peut pas être une dispinterface. Il doit s’agir d’une interface double, d’une table virtuelle ou d’une interface. Si l’interface est une interface double, les récepteurs peuvent supposer qu’ils recevront des événements via Vtable.
Une classe peut être à la fois une interface source par défaut et une interface source Vtable par défaut, comme illustré dans l’exemple. Dans ce cas, un récepteur d’avis doit utiliser IID_IDISPATCH pour recevoir des événements de distribution et utiliser l’identificateur d’interface pour recevoir des événements Vtable.
Représentation typeflag
Présence de IMPLTYPEFLAG_FDEFAULTVTABLE.
Exemples
[
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;
}
}
Voir aussi