GetPrinterData, fonction

La fonction GetPrinterData récupère les données de configuration pour l’imprimante ou le serveur d’impression spécifié.

Dans Windows 2000 et versions ultérieures de Windows, appeler GetPrinterData équivaut à appeler GetPrinterDataEx avec le paramètre pKeyName défini sur « PrinterDriverData ».

Syntaxe

DWORD GetPrinterData(
  _In_  HANDLE  hPrinter,
  _In_  LPTSTR  pValueName,
  _Out_ LPDWORD pType,
  _Out_ LPBYTE  pData,
  _In_  DWORD   nSize,
  _Out_ LPDWORD pcbNeeded
);

Paramètres

hPrinter [in]

Handle de l’imprimante ou du serveur d’impression pour lequel la fonction récupère les données de configuration. Utilisez la fonction OpenPrinter, OpenPrinter2 ou AddPrinter pour récupérer un handle d’imprimante.

pValueName [in]

Pointeur vers une chaîne terminée par null qui identifie les données à récupérer.

Pour les imprimantes, cette chaîne est le nom d’une valeur de Registre sous la clé « PrinterDriverData » de l’imprimante dans le Registre.

Pour les serveurs d’impression, cette chaîne est l’une des chaînes prédéfinies répertoriées dans la section Remarques suivante.

pType [out]

Pointeur vers une variable qui reçoit une valeur qui indique le type de données récupérées dans pData. La fonction retourne le type spécifié dans l’appel SetPrinterData ou SetPrinterDataEx qui a stocké les données. Définissez ce paramètre sur NULL si vous n’avez pas besoin du type de données.

pData [out]

Pointeur vers une mémoire tampon qui reçoit les données de configuration.

nSize [in]

Taille, en octets, de la mémoire tampon vers laquelle pData pointe.

pcbNeeded [out]

Pointeur vers une variable qui reçoit la taille, en octets, des données de configuration. Si la taille de mémoire tampon spécifiée par nSize est trop petite, la fonction retourne ERROR_MORE_DATA et pcbNeeded 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 une valeur d’erreur.

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.

GetPrinterData récupère les données de configuration de l’imprimante qui ont été définies par la fonction SetPrinterDataEx ou SetPrinterData .

GetPrinterData peut déclencher un appel Windows à GetPrinterDataFromPort, qui peut écrire dans le Registre. Si c’est le cas, des effets secondaires peuvent se produire, tels que le déclenchement d’une mise à jour ou d’une mise à niveau de l’id d’événement d’imprimante 20 dans le client, si l’imprimante est partagée dans un réseau.

Si hPrinter est un handle pour un serveur d’impression, pValueName peut spécifier l’une des valeurs prédéfinies suivantes.

Valeur Commentaires
SPLREG_ALLOW_USER_MANAGEFORMS Windows XP avec Service Pack 2 (SP2) et versions ultérieures
Windows Server 2003 avec Service Pack 1 (SP1) et versions ultérieures
SPLREG_ARCHITECTURE
SPLREG_BEEP_ENABLED
SPLREG_DEFAULT_SPOOL_DIRECTORY
SPLREG_DNS_MACHINE_NAME
SPLREG_DS_PRESENT En cas de retour réussi, pData contient 0x0001 si l’ordinateur se trouve sur un domaine DS, 0 dans le cas contraire.
SPLREG_DS_PRESENT_FOR_USER En cas de retour réussi, pData contient 0x0001 si l’utilisateur est connecté à un domaine DS, 0 dans le cas contraire.
SPLREG_EVENT_LOG
SPLREG_MAJOR_VERSION
SPLREG_MINOR_VERSION
SPLREG_NET_POPUP Non pris en charge dans Windows Server 2003 et versions ultérieures
SPLREG_NET_POPUP_TO_COMPUTER En cas de retour réussi, pData contient 1 si les notifications de travail doivent être envoyées à l’ordinateur client, ou 0 si les notifications de travail doivent être envoyées à l’utilisateur.
Non pris en charge dans Windows Server 2003 et versions ultérieures
SPLREG_OS_VERSION Windows XP et versions ultérieures
SPLREG_OS_VERSIONEX
SPLREG_PORT_THREAD_PRIORITY_DEFAULT
SPLREG_PORT_THREAD_PRIORITY
SPLREG_PRINT_DRIVER_ISOLATION_GROUPS Windows 7 et ultérieur
SPLREG_PRINT_DRIVER_ISOLATION_TIME_BEFORE_RECYCLE Windows 7 et ultérieur
SPLREG_PRINT_DRIVER_ISOLATION_MAX_OBJECTS_BEFORE_RECYCLE Windows 7 et ultérieur
SPLREG_PRINT_DRIVER_ISOLATION_IDLE_TIMEOUT Windows 7 et ultérieur
SPLREG_PRINT_DRIVER_ISOLATION_EXECUTION_POLICY Windows 7 et ultérieur
SPLREG_PRINT_DRIVER_ISOLATION_OVERRIDE_POLICY Windows 7 et ultérieur
SPLREG_REMOTE_FAX En cas de retour réussi, pData contient 0x0001 si le service FAX prend en charge les clients distants, 0 dans le cas contraire.
SPLREG_RETRY_POPUP En cas de retour réussi, pData contient 1 si le serveur est configuré pour réessayer des fenêtres contextuelles pour tous les travaux, ou 0 si le serveur ne tente pas de nouvelles fenêtres contextuelles pour tous les travaux.
Non pris en charge dans Windows Server 2003 et versions ultérieures
SPLREG_SCHEDULER_THREAD_PRIORITY
SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT
SPLREG_WEBSHAREMGMT Windows Server 2003 et versions ultérieures

Les valeurs suivantes de pValueName indiquent le comportement d’impression du pool en cas d’erreur.

Valeur Commentaires
SPLREG_RESTART_JOB_ON_POOL_ERROR La valeur de pData indique l’heure, en secondes, où un travail est redémarré sur un autre port après qu’une erreur se produit. Ce paramètre est utilisé avec SPLREG_RESTART_JOB_ON_POOL_ENABLED.
SPLREG_RESTART_JOB_ON_POOL_ENABLED Une valeur différente de zéro dans pData indique que SPLREG_RESTART_JOB_ON_POOL_ERROR est activé.

L’heure spécifiée dans SPLREG_RESTART_JOB_ON_POOL_ERROR est une durée minimale. Le temps réel peut être plus long, en fonction des paramètres de surveillance de port suivants, qui sont des valeurs de Registre sous cette clé de Registre :

HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\<MonitorName>\Ports

Appelez la fonction RegQueryValueEx pour interroger ces valeurs.

Paramètre de moniteur de port Type de données Signification
StatusUpdateEnabled REG_DWORD Si une valeur différente de zéro, permet au moniteur de port de mettre à jour le spouleur avec le port status.
StatusUpdateInterval REG_DWORD Spécifie l’intervalle, en minutes, auquel le moniteur de port met à jour le spouleur avec le port status.

Dans Windows 7 et versions ultérieures de Windows, les travaux d’impression envoyés à un serveur d’impression sont affichés sur le client par défaut. Les valeurs suivantes configurent le rendu côté client d’un travail d’impression et peuvent être lues si vous définissez les valeurs suivantes dans pValueName.

Paramètre Type de données Description
EMFDespoolingSetting REG_DWORD La valeur 0, ou si cette valeur n’est pas présente dans le Registre, active le rendu côté client par défaut des travaux d’impression.
La valeur 1 désactive le rendu côté client des travaux d’impression.
ForceClientSideRendering REG_DWORD La valeur 0, ou si cette valeur n’est pas présente dans le Registre, entraîne le rendu des travaux d’impression sur le client. Si un travail d’impression ne peut pas être affiché sur le client, il le sera sur le serveur. Si un travail d’impression ne peut pas être affiché sur le serveur, il échoue.
La valeur 1 affiche les travaux d’impression sur le client. Si un travail d’impression ne peut pas être affiché sur le client, il échoue.

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
GetPrinterDataW (Unicode) et GetPrinterDataA (ANSI)

Voir aussi

Impression

Fonctions API du spouleur d’impression

GetPrinterDataEx

OpenPrinter

SetPrinter

SetPrinterData

SetPrinterDataEx

PRINTPROCESSOR_CAPS_1