Atributos IDL

Tradicionalmente, mantener un archivo .idl significaba que tenía que:

  • Familiarícese con la estructura y la sintaxis de un archivo .idl para poder modificarlo.

  • Confíe en un asistente, que le permitiría modificar algunos aspectos del archivo .idl.

Ahora, puede modificar el archivo .idl desde un archivo de código fuente mediante atributos IDL de Visual C++. En muchos casos, los atributos IDL de Visual C++ tienen el mismo nombre que los atributos MIDL. Cuando el nombre de un atributo IDL de Visual C++ y un atributo MIDL son los mismos, significa que colocar el atributo de Visual C++ en el archivo de código fuente dará como resultado un archivo .idl que contenga su atributo MIDL de nombres. Sin embargo, es posible que un atributo IDL de Visual C++ no proporcione toda la funcionalidad de un atributo MIDL.

Cuando no se usa con atributos COM, los atributos IDL permiten definir interfaces. Cuando se compila el código fuente, los atributos se usan para definir el archivo .idl generado. Cuando se usa con atributos COM en un proyecto ATL, algunos atributos IDL, como coclass, hacen que el código se inserte en el proyecto.

Tenga en cuenta que idl_quote permite usar construcciones MIDL que no se admiten en la versión actual de Visual C++. Este y otros atributos, como importlib e includelib , le ayudan a usar los archivos .idl existentes en el proyecto actual de Visual Studio C++.

Atributo Descripción
aggregatable Indica que otro control puede agregar un control.
appobject Identifica la coclase como un objeto de aplicación, que está asociado a una aplicación .EXE completa, e indica que las funciones y propiedades de la coclase están disponibles globalmente en esta biblioteca de tipos.
async_uuid Especifica el UUID que dirige al compilador MIDL para definir versiones sincrónicas y asincrónicas de una interfaz COM.
bindable Indica que la propiedad admite enlace de datos.
call_as Permite asignar una función no utilizable a una función remota.
case Se usa con el atributo switch_type en una unión.
coclass Coloca la definición de clase en un archivo .idl como coclase.
control Especifica que el tipo definido por el usuario es un control.
cpp_quote Emite la cadena especificada, sin los caracteres de comillas, en el archivo de encabezado generado.
defaultbind Indica la única propiedad enlazable que representa mejor el objeto.
defaultcollelem Se usa para la optimización de código de Visual Basic.
defaultvalue Permite la especificación de un valor predeterminado para un parámetro opcional con tipo.
default Indica que la interfaz personalizada o dispinterface definida en una coclase representa la interfaz de programación predeterminada.
defaultvtable Define una interfaz como interfaz vtable predeterminada para un control.
dispinterface Coloca una interfaz en el archivo .idl como interfaz de envío.
displaybind Indica una propiedad que se debe mostrar al usuario como enlazable.
dual Coloca una interfaz en el archivo .idl como interfaz doble.
entry Especifica una función o constante exportada en un módulo mediante la identificación del punto de entrada en el archivo DLL.
first_is Especifica el índice del primer elemento de matriz que se va a transmitir.
helpcontext Especifica un identificador de contexto que permite al usuario ver información sobre este elemento en el archivo de Ayuda.
helpfile Establece el nombre del archivo de Ayuda para una biblioteca de tipos.
helpstringcontext Especifica el identificador de un tema de ayuda en un archivo .hlp o .chm.
helpstringdll Especifica el nombre del archivo DLL que se va a usar para realizar una búsqueda de cadenas del documento (localización).
helpstring Especifica una cadena de caracteres que se usa para describir el elemento al que se aplica.
hidden Indica que el elemento existe, pero que no se debe mostrar en un explorador orientado al usuario.
idl_module Especifica un punto de entrada en un DLL.
idl_quote Permite usar atributos o construcciones IDL que no se admiten en la versión actual de Visual C++.
id Especifica un DISPID para una función miembro (ya sea una propiedad o un método, en una interfaz o dispinterface).
iid_is Especifica el IID de la interfaz COM a la que apunta un puntero de interfaz.
immediatebind Indica que todos los cambios en una propiedad de un objeto enlazado a datos se notificarán inmediatamente a la base de datos.
importlib Hace que los tipos que ya se han compilado en otra biblioteca de tipos estén disponibles en la biblioteca de tipos que se está creando.
import Especifica otro archivo .idl, .odl o de encabezado que contiene las definiciones a las que quiere hacer referencia desde el idl. principal.
include Especifica uno o varios archivos de encabezado que se incluirán en el archivo .idl generado.
includelib Hace que un archivo .idl o .h se incluya en el archivo .idl generado.
in Indica que un parámetro se debe pasar del procedimiento que realiza la llamada al procedimiento que se llama.
last_is Especifica el índice del último elemento de matriz que se va a transmitir.
lcid Permite pasar un identificador de configuración regional a una función.
length_is Especifica el número de elementos de matriz que se van a transmitir.
licensed Indica que la coclase a la que se aplica tiene licencia y se debe crear una instancia de mediante IClassFactory2.
local Cuando se usa en el encabezado de la interfaz, permite utilizar el compilador MIDL como generador de encabezados. Cuando se usa en una función individual, designa un procedimiento local para el que no se genera código auxiliar.
max_is Designa el valor máximo de un índice de matriz válido.
module Define el bloque de biblioteca en el archivo .idl.
ms_union Controla la alineación de la representación de datos de red de uniones no encapsuladas.
no_injected_text Impide que el compilador inserte código como resultado del uso de atributos.
nonbrowsable Indica que un miembro de la interfaz no debe mostrarse en un explorador de propiedades.
noncreatable Define un objeto que no puede crear por su cuenta una instancia de sí mismo.
nonextensible Especifica que la implementación IDispatch incluye solo las propiedades y los métodos enumerados en la descripción de la interfaz y que no se pueden ampliar con miembros adicionales en tiempo de ejecución.
object Identifica una interfaz personalizada; sinónimo de atributo personalizado.
odl Identifica una interfaz como interfaz de Lenguaje de descripción de objetos (ODL).
oleautomation Indica que una interfaz es compatible con Automation.
opcional Especifica un parámetro opcional para una función miembro.
out Identifica los parámetros de puntero devueltos desde el procedimiento llamado al procedimiento que realiza la llamada (desde el servidor al cliente).
pointer_default Especifica el atributo de puntero predeterminado para todos los punteros, excepto los punteros de nivel superior que aparecen en las listas de parámetros.
pragma Emite la cadena especificada, sin los caracteres de comillas, en el archivo de .idl generado.
progid Especifica el objeto ProgID para un objeto COM.
propget Especifica una función de descriptor de acceso de propiedad (get).
propputref Especifica una función de configuración de propiedades que usa una referencia en lugar de un valor.
propput Especifica una función de valor de propiedad.
ptr Designa un puntero como puntero completo.
public Garantiza que una definición de tipo irá a la biblioteca de tipos incluso si no se hace referencia a ella desde el archivo .idl.
range Especifica un intervalo de valores permitidos para argumentos o campos cuyos valores se establecen en tiempo de ejecución.
readonly Prohíbe la asignación a una variable.
ref Identifica un puntero de referencia.
requestedit Indica que la propiedad admite la notificación OnRequestEdit.
restricted Especifica que no se puede llamar arbitrariamente a una biblioteca o miembro de un módulo, interfaz o dispinterface.
retval Designa el parámetro que recibe el valor devuelto del miembro.
size_is Especifica el tamaño de la memoria asignada para punteros con tamaño, punteros con tamaño a punteros con tamaño, y matrices unidimensionales o multidimensionales.
source Indica que un miembro de una clase, una propiedad o un método es un origen de eventos.
string Indica que la matriz unidimensional char, wchar_t, byte (o equivalente) o el puntero a dicha matriz se debe tratar como una cadena.
switch_is Especifica la expresión o identificador que actúa como el discriminante de unión que selecciona el miembro de unión.
switch_type Identifica el tipo de la variable que se usa como discriminante de unión.
transmit_as Indica al compilador que asocie un tipo presentado, que las aplicaciones cliente y servidor manipulan, con un tipo transmitido.
uidefault Indica que el miembro de la información de tipos es el miembro predeterminado que se mostrará en la interfaz de usuario.
unique Especifica un puntero único.
usesgetlasterror Indica al autor de la llamada que, si hay un error al llamar a esa función, el autor de la llamada puede llamar a GetLastError para recuperar el código de error.
uuid Especifica el identificador único de una clase o interfaz.
v1_enum Indica que el tipo enumerado especificado se transmitirá como una entidad de 32 bits, en lugar del valor predeterminado de 16 bits.
vararg Especifica que la función toma un número variable de argumentos.
vi_progid Especifica una forma independiente de la versión de ProgID.
wire_marshal Especifica un tipo de datos que se usará para la transmisión, en lugar de un tipo de datos específico de la aplicación.

Consulte también

Atributos por grupo