Condividi tramite


il valore predefinito (C++)

Indica che una personalizzata o l'interfaccia dispatch definita all'interno di una coclasse rappresenta l'interfaccia predefinita di programmazione.

[ default(
   interface1,
   interface2
) ]

Parametri

  • interface1
    Interfaccia predefinita che verrà resa disponibile agli ambienti di script che creano un oggetto in base alla classe definita con impostazione predefinita attributo.

    Se nessuna interfaccia predefinita è specificata, la prima occorrenza di un'interfaccia di nonsource viene utilizzata come predefinito.

  • interface2(facoltativo)
    l'interfaccia di origine predefinita.È inoltre necessario specificare questa interfaccia con database di origine attributo.

    Se nessuna interfaccia di origine predefinito è specificata, la prima interfaccia di origine viene utilizzata come predefinito.

Note

impostazione predefinita L'attributo di C++ ha la stessa funzionalità di impostazione predefinita Attributo MIDL.impostazione predefinita l'attributo viene utilizzato con evento attributo.

Esempio

Nel codice seguente viene illustrato come impostazione predefinita viene utilizzato sulla definizione di una coclasse per specificare ICustomDispatch come interfaccia predefinita di programmazione:

// cpp_attr_ref_default.cpp
// compile with: /LD
#include "windows.h"
[module(name="MyLibrary")];

[object, uuid("9E66A290-4365-11D2-A997-00C04FA37DDB")]
__interface ICustom {
   HRESULT Custom([in] long l, [out, retval] long *pLong);
};

[dual, uuid("9E66A291-4365-11D2-A997-00C04FA37DDB")] 
__interface IDual {
   HRESULT Dual([in] long l, [out, retval] long *pLong);
};

[object, uuid("9E66A293-4365-11D2-A997-00C04FA37DDB")]
__interface ICustomDispatch : public IDispatch {
   HRESULT Dispatch([in] long l, [out, retval] long *pLong);
};

[   coclass,
   default(ICustomDispatch), 
   source(IDual),
   uuid("9E66A294-4365-11D2-A997-00C04FA37DDB")
]
class CClass : public ICustom, public IDual, public ICustomDispatch {
   HRESULT Custom(long l, long *pLong) { return(S_OK); }
   HRESULT Dual(long l, long *pLong) { return(S_OK); }
   HRESULT Dispatch(long l, long *pLong) { return(S_OK); }
};

int main() {
#if 0 // Can't instantiate without implementations of IUnknown/IDispatch
   CClass *pClass = new CClass;

   long llong;

   pClass->custom(1, &llong);
   pClass->dual(1, &llong);
   pClass->dispinterface(1, &llong);
   pClass->dispatch(1, &llong);

   delete pClass;
#endif
   return(0);
}

database di origine l'attributo ha anche un esempio di come utilizzare impostazione predefinita.

Requisiti

contesto di attributo

Si applica a

classe, struct, un membro dati

ripetibile

No

attributi obbligatori

coclasse (se applicato a classe o struct)

attributi non validi

Nessuno

Per ulteriori informazioni, vedere Associare ai contesti.

Vedere anche

Riferimenti

coclasse

Altre risorse

Attributi IDL

Attributi di classe

Attributes Samples