Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wskazuje, że niestandardowy lub dispinterface zdefiniowany w coclass reprezentuje domyślny interfejs programowy.
Składnia
[ default(interface1, interface2) ]
Parametry
interface1
Domyślny interfejs, który będzie dostępny dla środowisk skryptowych, które tworzą obiekt na podstawie klasy zdefiniowanej za pomocą atrybutu default .
Jeśli nie określono interfejsu domyślnego, jako domyślne jest używane pierwsze wystąpienie interfejsu innego niż źródło.
interface2
(Opcjonalnie) Domyślny interfejs źródłowy. Należy również określić ten interfejs z atrybutem źródłowym.
Jeśli nie określono domyślnego interfejsu źródłowego, jako domyślny zostanie użyty pierwszy interfejs źródłowy.
Uwagi
Atrybut default języka C++ ma taką samą funkcjonalność jak domyślny atrybut MIDL. Atrybut default jest również używany z atrybutem case .
Przykład
Poniższy kod pokazuje, jak default jest używany w definicji coclass, aby określić ICustomDispatch jako domyślny interfejs programowy:
// 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);
}
Atrybut źródłowy zawiera również przykład użycia elementu default.
Wymagania
| Kontekst atrybutu | Wartość |
|---|---|
| Dotyczy | class, , structelement członkowski danych |
| Powtarzalne | Nie. |
| Wymagane atrybuty | coclass (w przypadku zastosowania do class lub struct) |
| Nieprawidłowe atrybuty | Brak |
Aby uzyskać więcej informacji, zobacz Konteksty atrybutów.