Función EnumPrinterKey
La función EnumPrinterKey enumera las subclaves de una clave especificada para una impresora especificada.
Los datos de la impresora se almacenan en el registro. Al enumerar los datos de la impresora, no llame a funciones del Registro que puedan cambiar los datos.
Sintaxis
DWORD EnumPrinterKey(
_In_ HANDLE hPrinter,
_In_ LPCTSTR pKeyName,
_Out_ LPTSTR pSubkey,
_In_ DWORD cbSubkey,
_Out_ LPDWORD pcbSubkey
);
Parámetros
-
hPrinter [in]
-
Identificador de la impresora para la que la función enumera las subclaves. Use la función OpenPrinter o AddPrinter para recuperar un identificador de impresora.
-
pKeyName [in]
-
Puntero a una cadena terminada en null que especifica la clave que contiene las subclaves que se van a enumerar. Use el carácter de barra diagonal inversa '\' como delimitador para especificar una ruta de acceso con una o varias subclaves. EnumPrinterKey enumera todas las subclaves de la clave, pero no enumera las subclaves de esas subclaves.
Si pKeyName es una cadena vacía (""), EnumPrinterKey enumera la clave de nivel superior de la impresora. Si pKeyName es NULL, EnumPrinterKey devuelve ERROR_INVALID_PARAMETER.
-
pSubkey [out]
-
Puntero a un búfer que recibe una matriz de nombres de subclave terminados en null. La matriz finaliza con dos caracteres NULL.
-
cbSubkey [in]
-
Tamaño, en bytes, del búfer al que apunta pSubkey. Si establece cbSubkey en cero, el parámetro pcbSubkey devuelve el tamaño de búfer necesario.
-
pcbSubkey [out]
-
Puntero a una variable que recibe el número de bytes recuperados en el búfer pSubkey . Si el tamaño del búfer especificado por cbSubkey es demasiado pequeño, la función devuelve ERROR_MORE_DATA y pcbSubkey indica el tamaño de búfer necesario.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.
Si se produce un error en la función, el valor devuelto es un código de error del sistema. Si pKeyName no existe, el valor devuelto es ERROR_FILE_NOT_FOUND.
Comentarios
Nota:
Se trata de una función de bloqueo o sincrónica y podría no devolverse inmediatamente. La rapidez con la que devuelve esta función depende de factores en tiempo de ejecución, como el estado de red, la configuración del servidor de impresión y los factores de implementación de controladores de impresora que son difíciles de predecir al escribir una aplicación. Llamar a esta función desde un subproceso que administra la interacción con la interfaz de usuario podría hacer que la aplicación parezca que no responde.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows 2000 Server [solo aplicaciones de escritorio] |
Encabezado |
|
Biblioteca |
|
Archivo DLL |
|
Nombres Unicode y ANSI |
EnumPrinterKeyW (Unicode) y EnumPrinterKeyA (ANSI) |