Compartir a través de


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

TypeLibConverter

ITypeLibConverter

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

Importar una biblioteca de tipos como un ensamblado