Cadenas de formato
Una cadena de formato es un token interpretado que el motor NDR entiende. Las cadenas de formato se conocen a menudo como MOP; en esta documentación se usa el término cadena de formato a lo largo de todo.
Para ser más preciso, un carácter de formato es un token individual (atómico) interpretable. Cada carácter de formato es un byte de tamaño. Una cadena de formato es una secuencia de caracteres de formato o caracteres de formato y datos numéricos. El término descriptor también se usa para asignar nombres a secuencias comunes; por ejemplo, una cadena de formato de parámetro o un descriptor de parámetros es una cadena de formato que se usa para describir un parámetro de una rutina.
Los caracteres de formato tienen nombres simbólicos sugerentes como FC_LONG o FC_STRUCT. Todos los caracteres de cadena de formato usados por MIDL y el motor NDR se definen en el archivo Ndrtypes.h.
Dar formato a tablas de cadenas
El motor utiliza dos tablas de cadenas de formato principal: la tabla de cadenas de formato de procedimiento, __MIDL_ProcFormatString, que mantiene los descriptores de procedimiento; y la tabla de cadenas de formato de tipo, __MIDL_TypeFormatString, que mantiene los descriptores de tipo de datos. El compilador genera ambos en los archivos de código auxiliar principales (*_c.c, *_s.c, *_p.c). La tabla de cadenas de formato de procedimiento se usa principalmente por varios intérpretes, pero también se usa para la conversión del búfer independientemente del modo del compilador. La tabla de cadenas de formato de tipo se usa al llamar al motor NDR principal para indicar tipos de datos específicos en los que se va a trabajar.
Notación de cadena de formato
La notación utilizada en este documento sigue las instrucciones comunes de descripción de programación, con una barra ( | ) usada para indicar construcciones alternativas y corchetes ( [ ] ) usadas para indicar elementos opcionales. Las cadenas de formato se apilan con frecuencia para mejorar la legibilidad (responsabilidad). A lo largo de este documento, FC denota un carácter de formato único. Los caracteres de formato se presentan en todas las CAPS, con sus nombres simbólicos reales. Otros campos arbitrarios se representan mediante un nombre y un tamaño.
Los corchetes angulares ( <> ) se usan para indicar los tamaños de los descriptores. Se emplean las convenciones que se muestran en la tabla siguiente.
Notation | Significado |
---|---|
< n> | El tamaño del descriptor es n bytes. |
<> | El tamaño del descriptor varía. |
{<>}* | El descriptor se repite cualquier número de veces (0,1,2...). |
Los caracteres de formato siguientes tienen un significado especial.
Carácter | Significado |
---|---|
FC_END | Indica el final de algunas cadenas de formato. |
FC_PAD | Carácter de relleno nointerpretado. |