Partager via


GetProfileSectionA, fonction (winbase.h)

Récupère toutes les clés et valeurs de la section spécifiée du fichier Win.ini.

Note Cette fonction est fournie uniquement pour la compatibilité avec les applications Windows 16 bits. Les applications doivent stocker des informations d’initialisation dans le Registre.
 

Syntaxe

DWORD GetProfileSectionA(
  [in]  LPCSTR lpAppName,
  [out] LPSTR  lpReturnedString,
  [in]  DWORD  nSize
);

Paramètres

[in] lpAppName

Nom de la section dans le fichier Win.ini.

[out] lpReturnedString

Pointeur vers une mémoire tampon qui reçoit les clés et les valeurs associées à la section nommée. La mémoire tampon est remplie d’une ou plusieurs chaînes terminées par null ; la dernière chaîne est suivie d’un deuxième caractère null.

[in] nSize

Taille de la mémoire tampon pointée vers le paramètre lpReturnedString , en caractères.

La taille maximale de la section de profil est de 32 767 caractères.

Valeur retournée

La valeur de retour spécifie le nombre de caractères copiés dans la mémoire tampon spécifiée, à l’exception du caractère null de fin. Si la mémoire tampon n’est pas assez grande pour contenir toutes les clés et valeurs associées à la section nommée, la valeur de retour est égale à la taille spécifiée par nSize moins deux.

Remarques

Le format des clés et des valeurs retournées est une ou plusieurs chaînes terminées par null, suivies d’un caractère null final. Chaque chaîne a la forme suivante :chaîne declé=

La fonction GetProfileSection ne respecte pas la casse ; les chaînes peuvent être une combinaison de lettres majuscules et minuscules.

Cette opération est atomique ; aucune mise à jour du fichier Win.ini n’est autorisée tant que les clés et les valeurs de la section sont copiées dans la mémoire tampon.

Windows Server 2003 et Windows XP/2000 : Les appels aux fonctions de profil peuvent être mappés au Registre plutôt qu’aux fichiers d’initialisation. Ce mappage se produit lorsque le fichier d’initialisation et la section sont spécifiés dans le Registre sous la clé suivante : HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping.

Une fois l’opération mappée, la fonction GetProfileSection récupère des informations à partir du Registre, et non du fichier d’initialisation ; le changement de l’emplacement de stockage n’a aucun effet sur le comportement de la fonction.

Les fonctions de profil utilisent les étapes suivantes pour localiser les informations d’initialisation :

  1. Recherchez dans le Registre le nom du fichier d’initialisation sous la clé IniFileMapping .
  2. Recherchez le nom de section spécifié par lpAppName. Il s’agit d’une valeur nommée sous la clé portant le nom du fichier d’initialisation, ou d’une sous-clé portant ce nom, ou le nom n’existe pas en tant que valeur ou sous-clé.
  3. Si le nom de section spécifié par lpAppName est une valeur nommée, cette valeur spécifie où, dans le Registre, vous trouverez les clés de la section.
  4. Si le nom de section spécifié par lpAppName est une sous-clé, les valeurs nommées sous cette sous-clé spécifient où, dans le Registre, vous trouverez les clés de la section. Si la clé que vous recherchez n’existe pas en tant que valeur nommée, il y aura une valeur sans nom (affichée sous la forme <No Name>) qui spécifie l’emplacement par défaut dans le Registre où vous trouverez la clé.
  5. Si le nom de section spécifié par lpAppName n’existe pas en tant que valeur nommée ou sous-clé, il y aura une valeur sans nom (affichée sous la forme <No Name>) qui spécifie l’emplacement par défaut dans le Registre où vous trouverez les clés de la section.
  6. S’il n’existe aucune sous-clé ou entrée pour le nom de section, recherchez le fichier d’initialisation réel sur le disque et lisez son contenu.
Lorsque vous examinez les valeurs dans le Registre qui spécifient d’autres emplacements de Registre, plusieurs préfixes modifient le comportement du mappage de fichiers .ini :
  • ! - ce caractère force toutes les écritures à accéder au Registre et au fichier .ini sur le disque.
  • # : ce caractère entraîne la définition de la valeur du Registre sur la valeur dans le fichier .ini Windows 3.1 lorsqu’un nouvel utilisateur se connecte pour la première fois après l’installation.
  • @ : ce caractère empêche toute lecture d’atteindre le fichier .ini sur le disque si les données demandées sont introuvables dans le Registre.
  • USR : - ce préfixe correspond à HKEY_CURRENT_USER, et le texte après le préfixe est relatif à cette clé.
  • SYS : - ce préfixe représente HKEY_LOCAL_MACHINE\SOFTWARE, et le texte après le préfixe est relatif à cette clé.

Notes

L’en-tête winbase.h définit GetProfileSection comme un 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. Le mélange 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 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

GetPrivateProfileSection

WriteProfileSection