Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Indica che l'interfaccia personalizzata o dispatch definita in una coclasse rappresenta l'interfaccia di programmabilità predefinita.
Sintassi
[ default(interface1, interface2) ]
Parametri
interfaccia1
Interfaccia predefinita che verrà resa disponibile per gli ambienti di scripting che creano un oggetto basato sulla classe definita con l'attributo default .
Se non si specifica un'interfaccia predefinita, la prima occorrenza di un'interfaccia non di origine viene usata come predefinita.
interface2
(Facoltativo) Interfaccia di origine predefinita. È necessario anche specificare questa interfaccia con l'attributo source .
Se non si specifica un'interfaccia di origine predefinita, viene usata come predefinita la prima interfaccia di origine.
Osservazioni:
L'attributo default C++ ha la stessa funzionalità dell'attributo MIDL predefinito . L'attributo default viene usato anche con l'attributo case .
Esempio
Il codice seguente illustra come default viene usato nella definizione di una coclasse per specificare ICustomDispatch come interfaccia di programmabilità predefinita:
// 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);
}
L'attributo di origine include anche un esempio di come usare default.
Requisiti
| Contesto attributo | Valore |
|---|---|
| Si applica a | class, struct, membro dati |
| Ripetibile | No |
| Attributi obbligatori | coclasse (se applicata a class o struct) |
| Attributi non validi | None |
Per altre informazioni, vedere Contesti di attributi.