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

coclass

Sintassi dei file ODL

Esempio di file ODL

Generazione di una libreria dei tipi con MIDL

fonte

uuid