GetPrivateProfileStruct, fonction (winbase.h)
Récupère les données associées à une clé dans la section spécifiée d’un fichier d’initialisation. Lorsqu’elle récupère les données, la fonction calcule une somme de contrôle et la compare à la somme de contrôle calculée par la fonction WritePrivateProfileStruct lorsque les données ont été ajoutées au fichier.
Syntaxe
BOOL GetPrivateProfileStruct(
[in] LPCTSTR lpszSection,
[in] LPCTSTR lpszKey,
[out] LPVOID lpStruct,
[in] UINT uSizeStruct,
[in] LPCTSTR szFile
);
Paramètres
[in] lpszSection
Nom de la section dans le fichier d’initialisation.
[in] lpszKey
Nom de la clé dont les données doivent être récupérées.
[out] lpStruct
Pointeur vers la mémoire tampon qui reçoit les données associées aux noms de fichier, de section et de clé.
[in] uSizeStruct
Taille de la mémoire tampon pointée vers par le paramètre lpStruct , en octets.
[in] szFile
Nom du fichier d’initialisation. 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
Si la fonction réussit, la valeur de retour est différente de zéro.
Si la fonction échoue, la valeur de retour est égale à zéro.
Remarques
Une section du fichier d’initialisation doit avoir la forme suivante :
[section]
key=data
.
.
.
Le système mappe la plupart des références de fichiers .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 ; la modification 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, par exemple MyFile.ini, sous IniFileMapping.
- Recherchez le nom de section spécifié par lpAppName. Il s’agit d’une valeur nommée sous myfile.ini, ou d’une sous-clé demyfile.ini, ou n’existe pas.
- Si le nom de section spécifié par lpAppName est une valeur nommée sous myfile.ini, 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é demyfile.ini, 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 existe 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 sous la forme d’une valeur nommée ou d’une sous-clé sous myfile.ini, il y aura une valeur sans nom (affichée sous <la forme No Name>) sous myfile.ini 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é myfile.ini ou si elle ne contient pas d’entrée pour le nom de section, recherchez la MyFile.ini réelle 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 de Registre 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’aller au fichier .ini sur le disque si les données demandées sont introuvables dans le Registre.
- USR : - ce préfixe signifie HKEY_CURRENT_USER, et le texte qui suit le préfixe est relatif à cette clé.
- SYS : - ce préfixe signifie HKEY_LOCAL_MACHINE\SOFTWARE, et le texte qui suit le préfixe est relatif à cette clé.
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 |