Freigeben über


default (C++)

Gibt an, dass die benutzerdefinierte Schnittstelle oder Disp-Schnittstelle innerhalb einer Co-Klasse die Standard-Programmierschnittstelle darstellt.

Syntax

[ default(interface1, interface2) ]

Parameter

interface1
Die Standardschnittstelle, die Skriptumgebungen zur Verfügung gestellt wird, die ein Objekt basierend auf der mit dem default Attribut definierten Klasse erstellen.

Wenn keine Standardschnittstelle angegeben wird, wird das erste Vorkommen einer Nicht-Quellschnittstelle als Standard verwendet.

Schnittstelle2
(Optional) Die Standardquellschnittstelle. Sie müssen diese Schnittstelle auch beim source -Attribut angeben.

Wenn keine Standard-Quellschnittstelle angegeben ist, wird die erste Quellschnittstelle als Standard verwendet.

Hinweise

Das default C++-Attribut verfügt über die gleiche Funktionalität wie das Standardmäßige MIDL-Attribut. Das default Attribut wird auch mit dem Case-Attribut verwendet.

Beispiel

Der folgende Code zeigt, wie default in der Definition einer CoClass verwendet wird, um als Standardprogrammierbarkeitsschnittstelle anzugeben ICustomDispatch :

// 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);
}

Das Quell-Attribut weist außerdem ein Beispiel für die Verwendung defaultauf.

Anforderungen

Attributkontext Wert
Gilt für class, structDatenmememm
Wiederholbar Nein
Erforderliche Attribute coclass (bei Anwendung auf class oder struct)
Ungültige Attribute None

Weitere Informationen finden Sie unter Attributkontexte.

Siehe auch

IDL-Attribute
Klassenattribute
coclass