Funzione EnumPrinterKey

La funzione EnumPrinterKey enumera le sottochiavi di una chiave specificata per una stampante specificata.

I dati della stampante vengono archiviati nel Registro di sistema. Durante l'enumerazione dei dati della stampante, non chiamare funzioni del Registro di sistema che potrebbero modificare i dati.

Sintassi

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

Parametri

hPrinter [in]

Handle per la stampante per cui la funzione enumera le sottochiavi. Utilizzare la funzione OpenPrinter o AddPrinter per recuperare un handle della stampante.

pKeyName [in]

Puntatore a una stringa con terminazione Null che specifica la chiave contenente le sottochiavi da enumerare. Usare il carattere barra rovesciata '\' come delimitatore per specificare un percorso con una o più sottochiavi. EnumPrinterKey enumera tutte le sottochiavi della chiave, ma non enumera le sottochiavi di tali sottochiavi.

Se pKeyName è una stringa vuota (""), EnumPrinterKey enumera la chiave di primo livello per la stampante. Se pKeyName è NULL, EnumPrinterKey restituisce ERROR_INVALID_PARAMETER.

pSubkey [out]

Puntatore a un buffer che riceve una matrice di nomi di sottochiave con terminazione Null. La matrice viene terminata da due caratteri Null.

cbSubkey [in]

Dimensione, in byte, del buffer a cui punta pSubkey. Se si imposta cbSubkey su zero, il parametro pcbSubkey restituisce le dimensioni del buffer necessarie.

pcbSubkey [out]

Puntatore a una variabile che riceve il numero di byte recuperati nel buffer pSubkey . Se la dimensione del buffer specificata da cbSubkey è troppo piccola, la funzione restituisce ERROR_MORE_DATA e pcbSubkey indica le dimensioni del buffer necessarie.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene ERROR_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è un codice di errore di sistema. Se pKeyName non esiste, il valore restituito è ERROR_FILE_NOT_FOUND.

Commenti

Nota

Si tratta di una funzione di blocco o sincrona e potrebbe non restituire immediatamente. La velocità di restituzione di questa funzione dipende da fattori di runtime, ad esempio lo stato della rete, la configurazione del server di stampa e i fattori di implementazione del driver della stampante difficili da prevedere durante la scrittura di un'applicazione. Chiamando questa funzione da un thread che gestisce l'interazione con l'interfaccia utente, l'applicazione potrebbe sembrare non rispondente.

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Winspool.h (includere Windows.h)
Libreria
Winspool.lib
DLL
Winspool.drv
Nomi Unicode e ANSI
EnumPrinterKeyW (Unicode) e EnumPrinterKeyA (ANSI)

Vedi anche

Stampa

Funzioni dell'API spooler di stampa

DeletePrinterDataEx

GetPrinterDataEx

OpenPrinter

SetPrinterDataEx