Partager via


default (C++)

Indique que le personnalisé ou la dispinterface définie dans une coclasse représente l'interface par défaut de programmabilité.

[ default( 
   interface1, 
   interface2 
) ]

Paramètres

  • interface1
    L'interface par défaut qui sera transmises aux environnements de script qui créent un objet basé sur la classe a défini avec l'attribut de valeur par défaut .

    Si aucune interface par défaut n'est spécifiée, la première occurrence d'une interface de non-source est utilisée comme valeur par défaut.

  • interface2(facultatif)
    l'interface source par défaut. vous devez également 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 comme valeur par défaut.

Notes

L'attribut de valeur par défaut C++ a les mêmes fonctionnalités que l'attribut de valeur par défaut MIDL. l'attribut de valeur par défaut est également utilisé avec l'attribut d' événement .

Exemple

Le code suivant montre comment valeur par défaut est utilisé dans la définition d'une coclasse pour spécifier ICustomDispatch en tant qu'interface par défaut de programmabilité :

// 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 est également un exemple d'utilisation valeur par défaut.

Configuration requise

contexte d'attribut

S'applique à

classe, struct, une donnée membre

reproductible

Non

attributs requis

coclasse (appliqué à classe ou à struct)

attributs valides

Aucun

Pour plus d'informations, consultez contextes d'attribut.

Voir aussi

Référence

coclass

Autres ressources

Attributs IDL

Attributs de classe

Attributes Samples