Estructura de PASSSTRUCT
La estructura PASSSTRUCT se define de la siguiente manera:
Sintaxis
typedef struct tagPassParm {
WORD parm_length;
WORD exit_code;
WORD in_length;
LPBYTE in_addr;
WORD out_length;
LPBYTE out_addr;
WORD trns_id;
WORD in_page;
WORD out_page;
WORD option;
} PASSSTRUCT;
Members
parm_length
Parámetro proporcionado. Longitud de la estructura pasada, normalmente establecida en 24. Si el miembro de opción no es necesario o se usa, este parámetro se puede establecer en 22.
exit_code
Parámetro proporcionado y devuelto. Al entrar, este miembro debe establecerse en cero. Al devolver, este miembro indica el estado de salida. Los valores legales para los valores devueltos exit_code son los siguientes:
0
Código de salida normal que indica que la función se completó correctamente.
1
No se admite la conversión solicitada.
12
El campo exit_code no se inicializó correctamente en cero.
128
El último carácter de la cadena de entrada de origen era un byte principal de DBCS.
256
La conversión no se pudo completar correctamente, ya que la longitud de la cadena de destino convertida resultante supera los 65535 bytes.
257
Error al intentar cargar uno e inicializar uno de los archivos TrnsDTx.dll.
in_length
Parámetro proporcionado. Especifica la longitud de la cadena de origen de entrada en bytes.
in_addr
Parámetro proporcionado. Puntero al búfer que contiene la cadena de origen que se va a convertir.
out_length
Parámetro proporcionado y devuelto. Especifica la longitud máxima disponible para la cadena traducida de salida en bytes. Cuando se devuelve, este miembro se establece en la longitud de la cadena de salida convertida correctamente o la longitud del búfer de salida necesaria si el búfer era demasiado pequeño.
out_addr
Parámetro proporcionado. Puntero al búfer que contendrá la cadena de destino de salida después de la conversión.
trns_id
Parámetro proporcionado. Identificador de conversión, que siempre es cero.
in_page
Parámetro proporcionado. Especifica la página de códigos de la cadena de origen entrante.
out_page
Parámetro proporcionado. Especifica la página de códigos de la cadena traducida de salida.
Opción
Se proporcionó y devolvió el parámetro si parm_length se estableció en 24. Como parámetro proporcionado, especifica un conjunto de opciones que se pueden aplicar al proceso de traducción. Los valores posibles para estas opciones son los siguientes:
Bits 15-9
Reservado.
Bit 8
Agregue desplazamiento (SO)/mayús en bytes (SI) a las cadenas de salida convertidas.
Bits 3-7
Reservado.
Bit 2
Si se establece este bit, convierta la cadena de entrada mediante la tabla de código de 1 byte especificada por IBM. Esta opción solo es válida al convertir de la página de códigos 932 a una de las páginas de códigos siguientes: 037, 290, 930 o 931.
Si este bit es cero, convierta la cadena de origen de entrada mediante la tabla de conversión que se crea mediante la utilidad SYSCTBL.
En el caso de caracteres de doble byte, use siempre la tabla de conversión creada por la utilidad SYSCTBL.
El archivo SYSCTBL.EXE es un programa de utilidad incluido con Host Integration Server que proporciona una herramienta que se puede usar para crear tablas de conversión personalizadas para usarlas con la función TrnsDT .
Bit 1
Si se establece este bit, indica que la cadena de origen de entrada comienza con un carácter de 2 bytes. Por lo general, los datos del host siempre incluyen caracteres de control SO/SI en pares, pero al convertir parte de cadenas de datos mixtas, es necesario iniciar la conversión desde un carácter de doble byte sin el carácter de control SO. En este caso, los datos en sí no tienen información adecuada para determinar si es de doble byte o no, por lo que se debe establecer el bit 1.
Bit 0
Si se establece este bit, indica que la cadena de origen de entrada contiene caracteres de control SO/SI. El bit 8 y el bit 0 deben establecerse de la siguiente manera:
Conversión de PC a host Bit 8=1, bit 0 =0 Conversión de host a PC Bit 8=0, bit 0=1
Al devolver, la opción se establece en 4 si el último carácter era un carácter de doble byte.