Partager via


Fonction EnumPrinterKey

La fonction EnumPrinterKey énumère les sous-clés d’une clé spécifiée pour une imprimante spécifiée.

Les données d’imprimante sont stockées dans le Registre. Lors de l’énumération des données d’imprimante, n’appelez pas les fonctions du Registre susceptibles de modifier les données.

Syntaxe

DWORD EnumPrinterKey(
  _In_  HANDLE  hPrinter,
  _In_  LPCTSTR pKeyName,
  _Out_ LPTSTR  pSubkey,
  _In_  DWORD   cbSubkey,
  _Out_ LPDWORD pcbSubkey
);

Paramètres

hPrinter [in]

Handle de l’imprimante pour laquelle la fonction énumère les sous-clés. Utilisez la fonction OpenPrinter ou AddPrinter pour récupérer un handle d’imprimante.

pKeyName [in]

Pointeur vers une chaîne terminée par null qui spécifie la clé contenant les sous-clés à énumérer. Utilisez le caractère de barre oblique inverse « \ » comme délimiteur pour spécifier un chemin d’accès avec une ou plusieurs sous-clés. EnumPrinterKey énumère toutes les sous-clés de la clé, mais n’énumère pas les sous-clés de ces sous-clés.

Si pKeyName est une chaîne vide («  »), EnumPrinterKey énumère la clé de niveau supérieur de l’imprimante. Si pKeyName a lavaleur NULL, EnumPrinterKey retourne ERROR_INVALID_PARAMETER.

pSubkey [out]

Pointeur vers une mémoire tampon qui reçoit un tableau de noms de sous-clés null. Le tableau est terminé par deux caractères null.

cbSubkey [in]

Taille, en octets, de la mémoire tampon pointée vers pSubkey. Si vous définissez cbSubkey sur zéro, le paramètre pcbSubkey retourne la taille de mémoire tampon requise.

pcbSubkey [out]

Pointeur vers une variable qui reçoit le nombre d’octets récupérés dans la mémoire tampon pSubkey . Si la taille de mémoire tampon spécifiée par cbSubkey est trop petite, la fonction retourne ERROR_MORE_DATA et pcbSubkey indique la taille de mémoire tampon requise.

Valeur retournée

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. Si pKeyName n’existe pas, la valeur de retour est ERROR_FILE_NOT_FOUND.

Notes

Notes

Il s’agit d’une fonction bloquante ou synchrone qui peut ne pas être retournée immédiatement. La rapidité avec laquelle cette fonction retourne dépend de facteurs d’exécution tels que l’status réseau, la configuration du serveur d’impression et les facteurs d’implémentation du pilote d’imprimante qui sont difficiles à prédire lors de l’écriture d’une application. L’appel de cette fonction à partir d’un thread qui gère l’interaction avec l’interface utilisateur peut donner l’impression que l’application ne répond pas.

Spécifications

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]
En-tête
Winspool.h (inclure Windows.h)
Bibliothèque
Winspool.lib
DLL
Winspool.drv
Noms Unicode et ANSI
EnumPrinterKeyW (Unicode) et EnumPrinterKeyA (ANSI)

Voir aussi

Impression

Fonctions API du spouleur d’impression

DeletePrinterDataEx

GetPrinterDataEx

OpenPrinter

SetPrinterDataEx