Structure PASSSTRUCT
La structure PASSSTRUCT est définie comme suit :
Syntaxe
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;
Membres
parm_length
Paramètre fourni. Longueur de la structure passée, normalement définie sur 24. Si le membre d’option n’est pas nécessaire ou utilisé, ce paramètre peut être défini sur 22.
exit_code
Paramètre fourni et retourné. Lors de l’entrée, ce membre doit être défini sur zéro. Au retour, ce membre indique le status de sortie. Les valeurs légales pour les valeurs exit_code retournées sont les suivantes :
0
Code de sortie normal indiquant que la fonction s’est terminée avec succès.
1
La conversion demandée n’est pas prise en charge.
12
Le champ exit_code n’a pas été correctement initialisé à zéro.
128
Le dernier caractère de la chaîne d’entrée source était un octet de prospect DBCS.
256
La conversion n’a pas pu être effectuée correctement, car la longueur de la chaîne de destination convertie résultante dépasse 6 5535 octets.
257
Une erreur s’est produite lors de la tentative de chargement et d’initialisation de l’un des fichiers TrnsDTx.dll.
in_length
Paramètre fourni. Spécifie la longueur de la chaîne source d’entrée en octets.
in_addr
Paramètre fourni. Pointeur vers la mémoire tampon contenant la chaîne source à convertir.
out_length
Paramètre fourni et retourné. Spécifie la longueur maximale disponible pour la chaîne traduite de sortie en octets. Au retour, ce membre est défini sur la longueur de la chaîne de sortie convertie en cas de réussite ou sur la longueur de mémoire tampon de sortie nécessaire si la mémoire tampon était trop petite.
out_addr
Paramètre fourni. Pointeur vers la mémoire tampon qui contiendra la chaîne de destination de sortie après la conversion.
trns_id
Paramètre fourni. Identificateur de conversion, qui est toujours égal à zéro.
in_page
Paramètre fourni. Spécifie la page de codes de la chaîne source entrante.
out_page
Paramètre fourni. Spécifie la page de codes de la chaîne traduite de sortie.
option
Paramètre fourni et retourné si parm_length a été défini sur 24. En tant que paramètre fourni, spécifie un ensemble d’options qui peuvent être appliquées au processus de traduction. Les valeurs possibles pour ces options sont les suivantes :
Bits 15-9
Réservé.
Bit 8
Ajoutez shift out (SO)/shift in (SI) octets aux chaînes de sortie converties.
Bits 3-7
Réservé.
Bit 2
Si ce bit est défini, convertissez la chaîne d’entrée à l’aide de la table de code de 1 octet spécifiée par IBM. Cette option n’est valide que lors de la conversion de la page de codes 932 vers l’une des pages de codes suivantes : 037, 290, 930 ou 931.
Si ce bit est égal à zéro, convertissez la chaîne source d’entrée à l’aide de la table de conversion créée à l’aide de l’utilitaire SYSCTBL.
En cas de caractères codés sur deux octets, utilisez toujours la table de conversion créée par l’utilitaire SYSCTBL.
Le fichier SYSCTBL.EXE est un programme utilitaire inclus avec Host Integration Server qui fournit un outil qui peut être utilisé pour créer des tables de conversion personnalisées à utiliser avec la fonction TrnsDT .
Bit 1
Si ce bit est défini, il indique que la chaîne source d’entrée commence par un caractère de 2 octets. En règle générale, les données de l’hôte incluent toujours des caractères de contrôle SO/SI par paires, mais lors de la conversion d’une partie de chaînes de données mixtes, il est nécessaire de commencer la conversion à partir d’un caractère codé sur deux octets sans le caractère de contrôle SO. Dans ce cas, les données elles-mêmes ne disposent pas d’informations suffisantes pour déterminer si elles sont codées sur deux octets ou non. Le bit 1 doit donc être défini.
Bit 0
Si ce bit est défini, il indique que la chaîne source d’entrée contient des caractères de contrôle SO/SI. Les bits 8 et 0 doivent être définis comme suit :
Conversion du PC vers l’hôte Bit 8=1, bit 0 =0 Conversion de l’hôte en PC Bit 8=0, bit 0=1
Lors du retour, l’option est définie sur 4 si le dernier caractère était un caractère codé sur deux octets.