Partager via


ber_printf, fonction (winber.h)

La fonction ber_printf est utilisée pour encoder un élément BER et est similaire à sprintf_s. Une différence importante est que les données d’état sont stockées dans l’argument BerElement afin que plusieurs appels puissent être effectués à ber_printf à ajouter à la fin de l’élément BER. L’argument BerElement passé à cette fonction doit être un pointeur vers un BerElement retourné par ber_alloc_t.

Syntaxe

WINBERAPI INT BERAPI ber_printf(
  [in, out] BerElement *pBerElement,
  [in]      PSTR       fmt,
            ...        
);

Paramètres

[in, out] pBerElement

Pointeur vers la structure BerElement encodée.

[in] fmt

Chaîne de format d’encodage. Pour plus d'informations, consultez la section Notes.

...

Valeurs à encoder comme spécifié par l’argument fmt .

Valeur retournée

Si la fonction réussit, un nombre non négatif est retourné. Si la fonction échoue, -1 est retourné.

Remarques

La chaîne de format peut contenir des caractères de format répertoriés dans le tableau suivant.

Caractère Description
t Balise. L’argument suivant est un ber_tag_t qui spécifie la balise pour remplacer l’élément suivant écrit dans le BerElement. Cela fonctionne sur les appels.
b Boolean. L’argument suivant est un ber_int_t, qui contient 0 pour FALSE ou 1 pour TRUE. Un élément booléen est une sortie. Si ce caractère de format n’est pas précédé du modificateur de format t , la balise 0x01U est utilisée pour l’élément .
e Énuméré. L’argument suivant est un ber_int_t qui contient la valeur énumérée. Un élément énuméré est une sortie. Si ce caractère de format n’est pas précédé du modificateur de format t , la balise 0x0AU est utilisée pour l’élément .
i Integer. L’argument suivant est un ber_int_t, qui contient la valeur entière. Un élément entier est une sortie. Si ce caractère de format n’est pas précédé du modificateur de format t , la balise 0x02U est utilisée pour l’élément .
n Null. Aucun argument n’est requis. Un élément NULL ASN.1 est généré. Si ce caractère de format n’est pas précédé du modificateur de format t , la balise 0x05U est utilisée pour l’élément .
o Chaîne d’octets. Les deux arguments suivants sont un char*, suivi d’un ber_len_t avec la longueur de la chaîne. La chaîne peut contenir des octets NULL et ne doit pas être terminée à zéro. Un élément de chaîne d’octets est une sortie et aucune conversion de format caractère sur les données de chaîne n’est effectuée. Le passage d’un pointeur NULL suivi d’une longueur de 0 est acceptable si un élément de chaîne d’octets NULL est requis. Si ce caractère de format n’est pas précédé du modificateur de format t , la balise 0x04U est utilisée pour l’élément .
s Chaîne d’octets. L’argument suivant est un char* pointant vers une chaîne de caractères ANSI sans fin. Les caractères de chaîne ANSI sont convertis au format UTF-8 et un élément de chaîne d’octets est une sortie, qui n’inclut pas l’octet de fin « \0 » (null). La transmission d’un pointeur NULL est acceptable si un élément de chaîne d’octets NULL est requis. Si ce caractère de format n’est pas précédé du modificateur de format t , la balise 0x04U est utilisée pour l’élément .
C Plusieurs chaînes d’octets. L’argument suivant est un char**, un tableau de pointeurs char* vers des chaînes ANSI sans fin. Le dernier élément du tableau doit être un pointeur NULL . Les chaînes d’octets n’incluent pas l’octet de fin « \0 » (null). N’oubliez pas qu’une construction telle que {v} est utilisée pour obtenir une chaîne d’octets SEQUENCE OF réelle. Le modificateur de format t ne peut pas être utilisé avec ce caractère de format.
V Plusieurs chaînes d’octets. Un tableau de berval* terminé par null est fourni. N’oubliez pas qu’une construction telle que {v} est utilisée pour obtenir une chaîne d’octets SEQUENCE OF réelle. Le modificateur de format t ne peut pas être utilisé avec ce caractère de format.
X Chaîne de bits. Les deux arguments suivants sont un pointeur char* vers le début de la chaîne de bits, suivi d’un ber_len_t qui contient le nombre de bits dans la chaîne de bits. Un élément de chaîne de bits est une sortie. Si ce caractère de format n’est pas précédé du modificateur de format t , la balise 0x03U est utilisée pour l’élément .
{ Commencer la séquence. Aucun argument n’est requis. Si ce caractère de format n’est pas précédé du modificateur de format t , la balise 0x30U est utilisée.
} Séquence de fin. Aucun argument n’est requis. Le modificateur de format t ne peut pas être utilisé avec ce caractère de format.
[ Commencer l’ensemble. Aucun argument n’est requis. Si ce caractère de format n’est pas précédé du modificateur de format t , la balise 0x31U est utilisée.
] Jeu de fin. Aucun argument n’est requis. Le modificateur de format t ne peut pas être utilisé avec ce caractère de format.
 

Chaque accolade gauche ({) doit être associée à un caractère d’accolade droite (}) plus loin dans la chaîne de format, ou dans la chaîne de format d’un appel ultérieur à ber_printf pour ce BerElement spécifique. Il en va de même pour les caractères de crochet gauche ([) et de crochet droit (]).

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête winber.h
Bibliothèque Wldap32.lib
DLL Wldap32.dll

Voir aussi

BerElement

Fonctions

ber_scanf

berval