RegEnumKeyExW, fonction (winreg.h)
Énumère les sous-clés de la clé de Registre ouverte spécifiée. La fonction récupère des informations sur une sous-clé chaque fois qu’elle est appelée.
Syntaxe
LSTATUS RegEnumKeyExW(
[in] HKEY hKey,
[in] DWORD dwIndex,
[out] LPWSTR lpName,
[in, out] LPDWORD lpcchName,
LPDWORD lpReserved,
[in, out] LPWSTR lpClass,
[in, out, optional] LPDWORD lpcchClass,
[out, optional] PFILETIME lpftLastWriteTime
);
Paramètres
[in] hKey
Handle vers une clé de Registre ouverte. La clé doit avoir été ouverte avec le droit d’accès KEY_ENUMERATE_SUB_KEYS. Pour plus d’informations, consultez sécurité des clés de Registre et droits d’accès.
Ce handle est retourné par le RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyExou fonction RegOpenKeyTransacted. Il peut également s’agir de l’une des clés prédéfinies:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_CONFIG
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_PERFORMANCE_DATA
- HKEY_USERS
[in] dwIndex
Index de la sous-clé à récupérer. Ce paramètre doit être égal à zéro pour le premier appel à la fonction RegEnumKeyEx, puis incrémenté pour les appels suivants.
Étant donné que les sous-clés ne sont pas ordonnées, toute nouvelle sous-clé aura un index arbitraire. Cela signifie que la fonction peut retourner des sous-clés dans n’importe quel ordre.
[out] lpName
Pointeur vers une mémoire tampon qui reçoit le nom de la sous-clé, y compris la fin caractère null. La fonction copie uniquement le nom de la sous-clé, et non la hiérarchie de clé complète, dans la mémoire tampon.
Si la fonction échoue, aucune information n’est copiée dans cette mémoire tampon.
Pour plus d’informations, consultez Limites de taille des éléments de Registre.
[in, out] lpcchName
Pointeur vers une variable qui spécifie la taille de la mémoire tampon spécifiée par le paramètre lpName, en caractères. Cette taille doit inclure la fin caractère null. Si la fonction réussit, la variable pointée par lpcName contient le nombre de caractères stockés dans la mémoire tampon, sans inclure la fin caractère null.
Pour déterminer la taille de mémoire tampon requise, utilisez la fonction
lpReserved
Ce paramètre est réservé et doit être NULL.
[in, out] lpClass
Pointeur vers une mémoire tampon qui reçoit la classe définie par l’utilisateur de la sous-clé énumérée. Ce paramètre peut être NULL.
[in, out, optional] lpcchClass
Pointeur vers une variable qui spécifie la taille de la mémoire tampon spécifiée par le paramètre lpClass, en caractères. La taille doit inclure la fin caractère null. Si la fonction réussit, lpcClass contient le nombre de caractères stockés dans la mémoire tampon, sans inclure la fin caractère null. Ce paramètre peut être NULL uniquement si lpClass est NULL.
[out, optional] lpftLastWriteTime
Pointeur vers structure FILETIME qui reçoit l’heure à laquelle la sous-clé énumérée a été écrite pour la dernière fois. Ce paramètre peut être NULL.
Valeur de retour
Si la fonction réussit, la valeur de retour est ERROR_SUCCESS.
Si la fonction échoue, la valeur de retour est un code d’erreur système . S’il n’y a plus de sous-clés disponibles, la fonction retourne ERROR_NO_MORE_ITEMS.
Si la mémoire tampon
Remarques
Pour énumérer les sous-clés, une application doit initialement appeler la fonction RegEnumKeyEx avec le paramètre dwIndex défini sur zéro. L’application doit ensuite incrémenter le paramètre dwIndex et appeler RegEnumKeyEx jusqu’à ce qu’il n’y ait plus de sous-clés (ce qui signifie que la fonction retourne ERROR_NO_MORE_ITEMS).
L’application peut également définir dwIndex à l’index de la dernière sous-clé lors du premier appel à la fonction et décrémenter l’index jusqu’à ce que la sous-clé avec l’index 0 soit énumérée. Pour récupérer l’index de la dernière sous-clé, utilisez la fonction RegQueryInfoKey.
Bien qu’une application utilise la fonction RegEnumKeyEx, elle ne doit pas effectuer d’appels à des fonctions d’inscription susceptibles de modifier la clé énumérée.
Notez que les opérations qui accèdent à certaines clés de Registre sont redirigées. Pour plus d’informations, consultez Registry Virtualization et données d’application 32 bits et 64 bits dans le registre.
Exemples
Pour obtenir un exemple, consultez énumération des sous-clés de Registre.
Note
L’en-tête winreg.h définit RegEnumKeyEx comme 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.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | winreg.h (inclure Windows.h) |
bibliothèque | Advapi32.lib |
DLL | Advapi32.dll |