Compartir a través de


default (C++)

Indica que la interfaz personalizada o dispinterface definida en una coclase representa la interfaz de programación predeterminada.

Sintaxis

[ default(interface1, interface2) ]

Parámetros

interface1
La interfaz predeterminada que estará disponible para los entornos de scripting que crean un objeto basado en la clase definida con el atributo default.

Si no se especifica ninguna interfaz predeterminada, se usa la primera aparición de una interfaz sin origen como valor predeterminado.

interface2
(Opcional) Interfaz de origen predeterminada. También debe especificar esta interfaz con el atributo source .

Si no se especifica ninguna interfaz de origen predeterminada, se usa la primera interfaz de origen como valor predeterminado.

Comentarios

El atributo de C++ default tiene la misma funcionalidad que el atributo de MIDL default. El atributo default también se usa con el atributo case.

Ejemplo

El siguiente código muestra cómo se usa default en la definición de una coclase para especificar ICustomDispatch como la interfaz de programabilidad predeterminada:

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

El atributo source también tiene un ejemplo de cómo usar default.

Requisitos

Contexto de atributo Valor
Se aplica a class, struct, miembro de datos
Reiterativo No
Atributos requeridos coclase (cuando se aplica a class o struct)
Atributos no válidos Ninguno

Para obtener más información, vea Contextos de atributo.

Consulte también

Atributos IDL
Atributos de clase
coclass