Aplicar el atributo personalizado para sobrescribir el identificador de envío (DISPID) de COM predeterminado
Las interfaces de distribución en COM no administrado tienen un miembro predeterminado (DISPID_VALUE o 0) al que se llama en ausencia de un DISPID específico. .NET Framework no puede hacer referencia a un método o a una propiedad predeterminados; así, puede utilizar este atributo custom para especificar cualquier DISPID como miembro predeterminado durante la importación. La sintaxis de este atributo custom es la siguiente:
GUID = CD2BC5C9-F452-4326-B714-F9C539D4DA58
Value = number indicating the default DISPID
Ejemplo
El ejemplo siguiente, escrito el Lenguaje de definición de interfaces (IDL), muestra el uso del atributo DISPID custom para especificar, durante la importación, que el miembro method1, con un DISPID 2, se utilizará como miembro predeterminado.
[
object,
uuid(5EA05866-2E49-421C-BE47-FF62C5B9504E),
dual,
helpstring("IMyClass Interface"),
pointer_default(unique)
]
interface IMyClass : IDispatch
{
// Use the default dispID.
[custom(CD2BC5C9-F452-4326-B714-F9C539D4DA58, 0), id(2), helpstring("method method1")] HRESULT method1();
};
[
uuid(186D98EE-6750-42B9-947D-B82CF4A94600),
helpstring("MyClass Class")
]
coclass MyClass
{
[default] interface IMyClass;
};
El MSIL resultante después de importar la biblioteca de tipos sería similar al siguiente:
.method public hidebysig newslot abstract virtual
instance void method1() runtime managed internalcall
{
.custom instance void [mscorlib]System.Runtime.InteropServices.DispIdAttribute::.ctor(int32) = ( 01 00 03 00 00 00 00 00 )
} // This is the end of method IMyClass::method1.
Vea también
Referencia
TlbImp.exe (Importador de la biblioteca de tipos)
Conceptos
Aplicar el atributo personalizado para implementar IEnumerable
Aplicar el atributo personalizado para etiquetar propiedades Get/Set de COM no administradas