Share via


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
Winspool.h (incluye Windows.h)
Biblioteca
Winspool.lib
Archivo DLL
Winspool.drv
Nombres Unicode y ANSI
EnumPrinterKeyW (Unicode) y EnumPrinterKeyA (ANSI)

Consulte también

Impresión

Funciones de la API del administrador de trabajos de impresión

DeletePrinterDataEx

GetPrinterDataEx

OpenPrinter

SetPrinterDataEx