ChString ::GetBufferSetLength, méthode (chstring.h)

[La classe CHString fait partie de l’infrastructure du fournisseur WMI, qui est maintenant considérée dans l’état final, et aucun développement, amélioration ou mise à jour supplémentaire ne sera disponible pour les problèmes non liés à la sécurité affectant ces bibliothèques. Les API MI doivent être utilisées pour tout nouveau développement.]

La méthode GetBufferSetLength retourne un pointeur vers la mémoire tampon de caractères interne de l’objet CHString , en tronqué ou en augmentant sa longueur si nécessaire pour correspondre exactement à la longueur spécifiée dans nNewLength.

Syntaxe

LPWSTR  throw(CHeap_Exception) GetBufferSetLength(
  int nNewLength
);

Paramètres

nNewLength

Taille exacte de la mémoire tampon de caractères CHString , mesurée en caractères.

Valeur retournée

Retourne un pointeur LPWSTR vers la mémoire tampon de caractères (terminée par NULL) de l’objet.

Remarques

Le pointeur LPWSTR retourné, qui n’est pas const, permet la modification directe du contenu CHString .

Si vous utilisez le pointeur retourné par GetBuffer pour modifier le contenu de la chaîne, vous devez appeler ReleaseBuffer avant d’utiliser d’autres méthodes CHString .

Après un appel à ReleaseBuffer, l’adresse retournée par GetBufferSetLength peut ne pas être valide, car des opérations CHString supplémentaires peuvent entraîner la réaffectation de la mémoire tampon CHString . Si vous ne modifiez pas la longueur de la chaîne CHString , la mémoire tampon n’est pas réaffectée. La mémoire tampon est libérée automatiquement lorsque l’objet CHString est détruit.

Notez que si vous effectuez vous-même le suivi de la longueur de chaîne, vous ne devez pas ajouter le caractère NULL de fin. Toutefois, vous devez spécifier la longueur de chaîne finale lorsque vous relâchez la mémoire tampon avec ReleaseBuffer. Si vous ajoutez un caractère NULL de fin lorsque vous appelez ReleaseBuffer, vous devez passer –1 (valeur par défaut) pour la longueur. La méthode ReleaseBuffer appelle la fonction wcslen sur la mémoire tampon pour déterminer sa longueur.

Exemples

L’exemple de code suivant montre l’utilisation de CHString ::GetBufferSetLength.

CHString str;
LPWSTR pstr = str.GetBufferSetLength(3);
pstr[0] = 'I';
pstr[1] = 'c';
pstr[2] = 'e';

// No need for trailing zero or call to ReleaseBuffer()
// because GetBufferSetLength() set it for you.

str += " hockey is best!";
printf( "str: %S\n", (LPCWSTR)str );

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 chstring.h (inclure FwCommon.h)
Bibliothèque FrameDyn.lib
DLL FrameDynOS.dll ; FrameDyn.dll

Voir aussi

CHString

CHString ::GetBuffer

CHString ::ReleaseBuffer