Atributos de campo
Los atributos de campo son los atributos que se pueden aplicar a campos de una matriz, estructura, unión o matriz de caracteres:
- [omitir], [size_is]
- [max_is]
- [length_is]
- [first_is]
- [last_is]
- [switch_is]
- [cadena]
- atributos de puntero
Por ejemplo, los atributos de campo se usan junto con declaraciones de matriz para especificar el tamaño de la matriz o la parte de la matriz que contiene datos válidos. Esto se hace asociando otro parámetro, campo de estructura o una expresión constante con la matriz.
El [omitir] atributo designa campos de puntero que se omitirán durante el proceso de serialización. Este campo omitido se establece en NULL en el lado receptor.
MIDL proporciona , variablesy matrices de abiertas. Se llama a una matriz conforme si sus límites se determinan en tiempo de ejecución. El atributo [size_is] designa el límite superior en el tamaño de asignación de la matriz y el [max_is] atributo designa el límite superior en el valor de un índice de matriz válido. Para obtener más información, vea [matrices].
Se llama a una matriz variable si sus límites se determinan en tiempo de compilación, pero el intervalo de elementos transmitidos se determina en tiempo de ejecución. Una matriz abierta (también denominada matriz variable conforme) es una matriz cuyo límite superior y intervalo de elementos transmitidos se determinan en tiempo de ejecución. Para determinar el intervalo de elementos transmitidos de una matriz, la declaración de matriz debe incluir un [length_is], [first_is], o [last_is] atributo .
El atributo [length_is] designa el número de elementos de matriz que se van a transmitir y el [first_is] atributo designa el índice del primer elemento de matriz que se va a transmitir. El atributo [last_is] designa el índice del último elemento de matriz que se va a transmitir.
El atributo [switch_is] campo designa un discriminador de unión. Cuando la unión es un parámetro de procedimiento, el discriminador de la unión debe ser otro parámetro del mismo procedimiento. Cuando la unión es un campo de una estructura, el discriminador debe ser otro campo de la estructura en el mismo nivel que el campo de unión. El discriminador debe ser un booleano , char, int, o tipo de enumeración o un tipo que se resuelva en uno de estos tipos. Para obtener más información, vea uniones sincapsulado y [switch_is].
El [cadena] atributo de campo designa que un carácter unidimensional o una matriz de bytes, o un puntero a un carácter o secuencia de bytes terminada en cero, se tratará como una cadena. El atributo string solo se aplica a matrices y punteros unidimensionales. El tipo de elemento se limita a char, byte, wchar_to un tipo con nombre que se resuelve en uno de estos tipos.
Para obtener información sobre el contexto en el que aparecen los atributos de campo, vea matrices MIDL, estructuras MIDLy uniones MIDL.