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 default
auf.
Anforderungen
Attributkontext | Wert |
---|---|
Gilt für | class , struct Datenmememm |
Wiederholbar | No |
Erforderliche Attribute | coclass (bei Anwendung auf class oder struct ) |
Ungültige Attribute | Keine |
Weitere Informationen finden Sie unter Attributkontexte.