Compartir a través de


Aplicar el atributo personalizado para etiquetar propiedades Get/Set de COM no administradas

Las interfaces COM no administradas pueden ser objetos enumerables que tienen acceso a las enumeraciones a través de un método Item. En .NET Framework, este método se especifica como .Item. La única manera de tener acceso a este método correctamente es etiquetar el elemento como propget mediante atributos en el archivo IDL, pero al hacerlo se cambiaría la firma de la función en la biblioteca de tipos. Puede utilizar este atributo custom para etiquetar el método como propget durante la importación. La sintaxis de este atributo custom es la siguiente:

GUID = 2941ff83-88d8-4f73-b6a9-bdf8712d000d // for propget

Además, puede utilizar otro atributo custom para etiquetar un método como propput durante la importación. La sintaxis de este atributo custom es la siguiente:

GUID = 29533527-3683-4364-abc0-db1add822fa2 // for propput

Observe que este atributo custom sólo se puede aplicar en métodos. Además, se aplican las reglas siguientes:

  • Sólo puede aplicar un atributo cada vez; si aplica varios atributos, se omiten todos menos el primero.

  • Para propget, el atributo custom omite todas las firmas de método sin un valor devuelto.

  • Para propput, el atributo custom omite todas las firmas de método sin parámetros de entrada (los parámetros se pueden marcar con [in] o [out], pero no con [out, retval]) y también omite todas las firmas con un valor devuelto.

  • Para propget y propput, el atributo custom omite el método GetEnumerator si se utilizan junto con un identificador(-4) o el dispid(-4) personalizado.

  • Al importar la biblioteca de tipos mediante Tlbimp.exe, utilice siempre el modificador /transform:dispret después de aplicar el atributo custom a las interfaces sólo de envío (dispinterfaces).

Ejemplo

El ejemplo siguiente, escrito en el Lenguaje de definición de interfaces (IDL), muestra el uso del atributo propget:

[custom(2941ff83-88d8-4f73-b6a9-bdf8712d000d, ""), id(6)] 
HRESULT cget(int i, [out, retval] short *pVal);

En el ejemplo siguiente se muestra el uso del atributo propput:

[custom(29533527-3683-4364-abc0-db1add822fa2, ""), id(7)] 
HRESULT cset([in] int i);

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 sobrescribir el identificador de envío (DISPID) de COM predeterminado

Importar una biblioteca de tipos como un ensamblado