Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Indique que l’interface personnalisée ou dispinterface définie dans une coclasse représente l’interface de programmabilité par défaut.
Syntaxe
[ default(interface1, interface2) ]
Paramètres
interface1
Interface par défaut qui sera mise à la disposition des environnements de script qui créent un objet basé sur la classe définie avec l’attribut default .
Si aucune interface par défaut n’est spécifiée, la première occurrence d’une interface non source est utilisée par défaut.
interface2
(Facultatif) Interface source par défaut. Vous devez aussi spécifier cette interface avec l’attribut source .
Si aucune interface source par défaut n’est spécifiée, la première interface source est utilisée par défaut.
Notes
L’attribut default C++ a les mêmes fonctionnalités que l’attribut MIDL par défaut . L’attribut default est également utilisé avec l’attribut case .
Exemple
Le code suivant montre comment default utiliser la définition d’une coclasse pour spécifier ICustomDispatch comme interface de programmabilité par défaut :
// 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’attribut source a également un exemple d’utilisation default.
Spécifications
| Contexte d’attribut | Valeur |
|---|---|
| S’applique à | class, , structmembre de données |
| Renouvelable | Non |
| Attributs requis | coclasse (lorsqu’elle est appliquée à class ou struct) |
| Attributs non valides | Aucun(e) |
Pour plus d'informations, consultez Contextes d'attribut.