valor predeterminado (C++)

Indica que la personalizado o el dispinterface definido dentro de una coclase representa la interfaz predeterminada de la programación.

[ default(
   interface1,
   interface2
) ]

Parámetros

  • interface1
    La interfaz predeterminada que se pone a disposición de los entornos de script que crean un objeto basándose en la clase definida con el atributo de predeterminado .

    Si no se especifica ninguna interfaz predeterminada, la primera aparición de una interfaz de fuente se utiliza como valor predeterminado.

  • interface2(opcional)
    La interfaz predeterminada de origen.También debe especificar esta interfaz con el atributo de origen .

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

Comentarios

el atributo de predeterminado C++ tiene la misma funcionalidad que el atributo de predeterminado MIDL.el atributo de predeterminado también se utiliza con el atributo de mayúsculas/minúsculas .

Ejemplo

El código siguiente muestra cómo predeterminado se utiliza en la definición de una coclase para especificar ICustomDispatch como predeterminada de programación:

// 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 de origen también tiene un ejemplo de cómo utilizar predeterminado.

Requisitos

Contexto de atributo

Se aplica a

clase, struct, un miembro de datos

repetible

No

Atributos necesarios

CoClass (cuando se aplica a clase o a struct)

Atributos no válidos

None

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

Vea también

Referencia

coclase

Otros recursos

Atributos IDL

Atributos

Attributes Samples