Partager via


MsiRecordGetStringA, fonction (msiquery.h)

La fonction MsiRecordGetString retourne la valeur de chaîne d’un champ d’enregistrement.

Syntaxe

UINT MsiRecordGetStringA(
  [in]      MSIHANDLE hRecord,
  [in]      UINT      iField,
  [out]     LPSTR     szValueBuf,
  [in, out] LPDWORD   pcchValueBuf
);

Paramètres

[in] hRecord

Handle vers l’enregistrement.

[in] iField

Spécifie le champ demandé.

[out] szValueBuf

Pointeur vers la mémoire tampon qui reçoit la chaîne terminée par null contenant la valeur du champ d’enregistrement. N’essayez pas de déterminer la taille de la mémoire tampon en transmettant une valeur null (valeur=0) pour szValueBuf. Vous pouvez obtenir la taille de la mémoire tampon en passant une chaîne vide (par exemple « »). La fonction retourne ensuite ERROR_MORE_DATA et pcchValueBuf contient la taille de mémoire tampon requise dans les TCHAR, sans inclure le caractère null de fin. Au retour de ERROR_SUCCESS, pcchValueBuf contient le nombre de TCHAR écrits dans la mémoire tampon, sans inclure le caractère null de fin.

[in, out] pcchValueBuf

Pointeur vers la variable qui spécifie la taille, en TCHAR, de la mémoire tampon pointée par la variable szValueBuf. Lorsque la fonction retourne ERROR_SUCCESS, cette variable contient la taille des données copiées dans szValueBuf, sans inclure le caractère null de fin. Si szValueBuf n’est pas suffisamment grand, la fonction retourne ERROR_MORE_DATA et stocke la taille requise, sans inclure le caractère null de fin, dans la variable pointée par pcchValueBuf.

Valeur retournée

La fonction MsiRecordGetString retourne l’une des valeurs suivantes :

Remarques

Si ERROR_MORE_DATA est retourné, le paramètre qui est un pointeur donne la taille de la mémoire tampon nécessaire pour contenir la chaîne. Si ERROR_SUCCESS est retourné, il donne le nombre de caractères écrits dans la mémoire tampon de chaîne. Pour obtenir la taille de la mémoire tampon, transmettez l’adresse d’une mémoire tampon à 1 caractère en tant que szValueBuf et spécifiez la taille de la mémoire tampon avec pcchValueBuf sur 0. Cela garantit qu’aucune valeur de chaîne retournée par la fonction ne tient dans la mémoire tampon. N’essayez pas de déterminer la taille de la mémoire tampon en transmettant une valeur Null (valeur=0).

Notes

L’en-tête msiquery.h définit MsiRecordGetString en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista.
Plateforme cible Windows
En-tête msiquery.h
Bibliothèque Msi.lib
DLL Msi.dll

Voir aussi

Passage de Null en tant qu’argument des fonctions Windows Installer

Fonctions de traitement des enregistrements