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 |
|
Libreria |
|
DLL |
|
Nomi Unicode e ANSI |
EnumPrinterKeyW (Unicode) e EnumPrinterKeyA (ANSI) |