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. |