MSDN Library
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

Aplicar el atributo personalizado para sobrescribir el 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

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.

Adiciones de comunidad

Mostrar:
© 2016 Microsoft