Udostępnij za pośrednictwem


default (C++)

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 None

Aby uzyskać więcej informacji, zobacz Konteksty atrybutów.

Zobacz też

Atrybuty IDL
Atrybuty klasy
coclass