Freigeben über


GetPrinterDriver2-Funktion

Die GetPrinterDriver2-Funktion ruft Treiberdaten für den angegebenen Drucker ab. Wenn der Treiber nicht auf dem lokalen Computer installiert ist, installiert GetPrinterDriver2 ihn und zeigt eine beliebige Benutzeroberfläche für das angegebene Fenster an.

Syntax

BOOL GetPrinterDriver2(
  _In_opt_ HWND    hWnd,
  _In_     HANDLE  hPrinter,
  _In_opt_ LPTSTR  pEnvironment,
  _In_     DWORD   Level,
  _Out_    LPBYTE  pDriverInfo,
  _In_     DWORD   cbBuf,
  _Out_    LPDWORD pcbNeeded
);

Parameter

hWnd [in, optional]

Ein Handle des Fensters, das als übergeordnetes Fenster einer beliebigen Benutzeroberfläche verwendet wird, z. B. ein Dialogfeld, das der Treiber während der Installation anzeigt. Wenn der Wert dieses Parameters NULL ist, wird dem Benutzer die Benutzeroberfläche des Treibers während der Installation weiterhin angezeigt, es gibt jedoch kein übergeordnetes Fenster.

hPrinter [in]

Ein Handle für den Drucker, für den die Treiberdaten abgerufen werden sollen. Verwenden Sie die OpenPrinter - oder AddPrinter-Funktion , um einen Druckerhandle abzurufen.

pEnvironment [in, optional]

Ein Zeiger auf eine NULL-endende Zeichenfolge, die die Umgebung angibt (z. B. Windows x86, Windows IA64 oder Windows x64). Wenn dieser Parameter NULL ist, wird die aktuelle Umgebung der aufrufenden Anwendung und des Clientcomputers (nicht der Zielanwendung und des Druckservers) verwendet.

Ebene [in]

Die im pDriverInfo-Puffer zurückgegebene Druckertreiberstruktur. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
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]

Ein Zeiger auf einen Puffer, der eine Struktur empfängt, die Informationen zum Treiber enthält, wie durch Level angegeben. Der Puffer muss groß genug sein, um die Zeichenfolgen zu speichern, auf die die Strukturmember verweisen.

Um die erforderliche Puffergröße zu bestimmen, rufen Sie GetPrinterDriver2 auf, wobei cbBuf auf 0 festgelegt ist. GetPrinterDriver2 schlägt fehl, GetLastError gibt ERROR_INSUFFICIENT_BUFFER zurück, und der parameter pcbNeeded gibt die Größe des Puffers in Bytes zurück, der zum Speichern des Arrays von Strukturen und deren Daten erforderlich ist.

cbBuf [in]

Die Größe des Arrays in Bytes, auf das pDriverInfo zeigt.

pcbNeeded [ out]

Ein Zeiger auf einen Wert, der die Anzahl der kopierten Bytes empfängt, wenn die Funktion erfolgreich ist, oder die Anzahl der erforderlichen Bytes, wenn cbBuf zu klein ist.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Wert ungleich null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Rufen Sie GetLastError auf, um die rückgabe status zu erhalten.

Bemerkungen

Die Strukturen DRIVER_INFO_2, DRIVER_INFO_3, DRIVER_INFO_4, DRIVER_INFO_5, DRIVER_INFO_6 und DRIVER_INFO_8 enthalten den Dateinamen oder den vollständigen Pfad und Dateinamen des Druckertreibers im pDriverPath-Element . Eine Anwendung kann den Pfad und dateinamen verwenden, um einen Druckertreiber zu laden, indem die LoadLibrary-Funktion aufgerufen und der Pfad und der Dateiname als einzelnes Argument angegeben werden.

Die ANSI-Version dieser Funktion GetPrinterDriver2A wird nicht unterstützt und gibt ERROR_NOT_SUPPORTED zurück.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 [nur Desktop-Apps]
Header
Winspool.h (Einschließen von Windows.h)
Bibliothek
Winspool.lib
DLL
Winspool.drv
Unicode- und ANSI-Name
GetPrinterDriver2W (Unicode)

Siehe auch

Drucken

Druckspooler-API-Funktionen

AddPrinterDriver

DRIVER_INFO_1

DRIVER_INFO_2

DRIVER_INFO_3

DRIVER_INFO_4

DRIVER_INFO_5

DRIVER_INFO_6

EnumPrinterDrivers

GetPrinterDriver

OpenPrinter