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.