default (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.