GetPrivateProfileSectionNames, fonction (winbase.h)
Récupère les noms de toutes les sections d’un fichier d’initialisation.
Syntaxe
DWORD GetPrivateProfileSectionNames(
[out] LPTSTR lpszReturnBuffer,
[in] DWORD nSize,
[in] LPCTSTR lpFileName
);
Paramètres
[out] lpszReturnBuffer
Pointeur vers une mémoire tampon qui reçoit les noms de section associés au fichier nommé. 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 lpszReturnBuffer , en caractères.
[in] lpFileName
Nom du fichier d’initialisation. Si ce paramètre a la valeur NULL, la fonction recherche le fichier Win.ini. Si ce paramètre ne contient pas de chemin d’accès complet au fichier, le système recherche le fichier dans le répertoire Windows.
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 tous les noms de section associés au fichier d’initialisation spécifié, la valeur de retour est égale à la taille spécifiée par nSize moins deux.
Remarques
Cette opération est atomique ; aucune mise à jour du fichier d’initialisation n’est autorisée pendant que les noms de section sont copiés dans la mémoire tampon.
Le système mappe la plupart des références de fichier .ini au Registre, à l’aide du mappage défini sous la clé de Registre suivante :HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping
Ce mappage est probable si une application modifie les fichiers d’initialisation des composants système, tels que Control.ini, System.ini et Winfile.ini. Dans ce cas, la fonction 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 :
- Recherchez dans le Registre le nom du fichier d’initialisation sous la clé IniFileMapping .
- 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é.
- 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.
- 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é.
- 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.
- 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.
- ! - 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é.
Configuration requise
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 |