Partager via


GetPrinterDriver, fonction

La fonction GetPrinterDriver récupère les données du pilote pour l’imprimante spécifiée. Si le pilote n’est pas installé sur l’ordinateur local, GetPrinterDriver l’installe.

Syntaxe

BOOL GetPrinterDriver(
  _In_  HANDLE  hPrinter,
  _In_  LPTSTR  pEnvironment,
  _In_  DWORD   Level,
  _Out_ LPBYTE  pDriverInfo,
  _In_  DWORD   cbBuf,
  _Out_ LPDWORD pcbNeeded
);

Paramètres

hPrinter [in]

Handle de l’imprimante pour laquelle les données du pilote doivent être récupérées. Utilisez la fonction OpenPrinter ou AddPrinter pour récupérer un handle d’imprimante.

pEnvironment [in]

Pointeur vers une chaîne terminée par un caractère Null qui spécifie l’environnement (par exemple, Windows x86, Windows IA64 ou Windows x64). Si ce paramètre a la valeur NULL, l’environnement actuel de l’application appelante et de l’ordinateur client (et non de l’application de destination et du serveur d’impression) est utilisé.

Niveau [in]

Structure du pilote d’imprimante retournée dans la mémoire tampon pDriverInfo . Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
1
DRIVER_INFO_1
2
DRIVER_INFO_2
3
DRIVER_INFO_3
4
DRIVER_INFO_4
5
DRIVER_INFO_5
6
DRIVER_INFO_6
8
DRIVER_INFO_8

pDriverInfo [out]

Pointeur vers une mémoire tampon qui reçoit une structure contenant des informations sur le pilote, comme spécifié par Level. La mémoire tampon doit être suffisamment grande pour stocker les chaînes pointées par les membres de la structure.

Pour déterminer la taille de mémoire tampon requise, appelez GetPrinterDriver avec cbBuf défini sur zéro. GetPrinterDriver échoue, GetLastError retourne ERROR_INSUFFICIENT_BUFFER et le paramètre pcbNeeded retourne la taille, en octets, de la mémoire tampon requise pour contenir le tableau de structures et leurs données.

cbBuf [in]

Taille, en octets, du tableau vers lequel pDriverInfo pointe.

pcbNeeded [out]

Pointeur vers une valeur qui reçoit le nombre d’octets copiés si la fonction réussit ou le nombre d’octets requis si cbBuf est trop petit.

Valeur retournée

Si la fonction réussit, la valeur de retour est une valeur différente de zéro.

Si la fonction échoue, la valeur de retour est égale à zéro.

Pour un pilote inexistant, la fonction retourne ERROR_UNKNOWN_PRINTER_DRIVER.

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.

Les structures DRIVER_INFO_2, DRIVER_INFO_3, DRIVER_INFO_4, DRIVER_INFO_5 et DRIVER_INFO_6 contiennent le nom de fichier ou le chemin d’accès complet et le nom de fichier du pilote d’imprimante dans le membre pDriverPath . Une application peut utiliser le chemin d’accès et le nom de fichier pour charger un pilote d’imprimante en appelant la fonction LoadLibrary et en fournissant le chemin d’accès et le nom de fichier comme argument unique.

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
GetPrinterDriverW (Unicode) et GetPrinterDriverA (ANSI)

Voir aussi

Impression

Fonctions API du spouleur d’impression

AddPrinterDriver

DRIVER_INFO_1

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_5

DRIVER_INFO_6

EnumPrinterDrivers

OpenPrinter