Freigeben über


AddPrinterConnection2-Funktion

Fügt dem angegebenen Drucker für den aktuellen Benutzer eine Verbindung hinzu und gibt Verbindungsdetails an.

Syntax

BOOL AddPrinterConnection2(
  _In_ HWND    hWnd,
  _In_ LPCTSTR pszName,
       DWORD   dwLevel,
  _In_ PVOID   pConnectionInfo
);

Parameter

hWnd [in]

Ein Handle für das übergeordnete Fenster, in dem das Dialogfeld angezeigt wird, wenn das Drucksystem einen Druckertreiber vom Druckserver für diese Verbindung herunterladen muss.

pszName [in]

Ein Zeiger auf eine konstante NULL-endende Zeichenfolge, die den Namen des Druckers angibt, mit dem der aktuelle Benutzer eine Verbindung herstellen möchte.

dwLevel

Die Version der Struktur, auf die pConnectionInfo verweist. Derzeit ist nur Ebene 1 definiert, sodass der Wert von dwLevel 1 sein muss.

pConnectionInfo [in]

Ein Zeiger auf eine PRINTER_CONNECTION_INFO_1-Struktur . Weitere Informationen zu diesem Parameter finden Sie im Abschnitt Hinweise.

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 erweiterte Fehlerinformationen zu erhalten.

Bemerkungen

Hinweis

Dies ist eine blockierende oder synchrone Funktion, die möglicherweise nicht sofort zurückgegeben wird. Wie schnell diese Funktion zurückgibt, hängt von Laufzeitfaktoren wie Netzwerk-status, Druckserverkonfiguration und Druckertreiberimplementierungsfaktoren ab, die beim Schreiben einer Anwendung schwer vorherzusagen sind. Das Aufrufen dieser Funktion aus einem Thread, der die Interaktion mit der Benutzeroberfläche verwaltet, könnte dazu führen, dass die Anwendung nicht mehr reagiert.

Wenn Windows Vista eine Verbindung mit einem Drucker herstellt, müssen möglicherweise Druckertreiberdateien von dem Server kopiert werden, an den der Drucker angeschlossen ist. Wenn der Benutzer nicht über die Berechtigung zum Kopieren von Dateien an den entsprechenden Speicherort verfügt, schlägt die AddPrinterConnection2-Funktion fehl, und GetLastError gibt ERROR_ACCESS_DENIED zurück.

Wenn die Druckertreiberdateien vom Druckserver kopiert werden müssen, aber aufgrund der in Kraft stehenden Gruppenrichtlinien nicht automatisch kopiert werden können und PRINTER_CONNECTION_NO_UI in pConnectionInfo-dwFlags> festgelegt ist, werden keine Dialogfelder angezeigt, und der Aufruf schlägt fehl.

Wenn der lokale Druckertreiber zum Rendern von Druckaufträgen für diesen Drucker verwendet werden kann und die Version des lokalen Treibers nicht mit der Version des Druckertreibers auf dem Server übereinstimmen darf, legen Sie PRINTER_CONNECTION_MISMATCH in pConnectionInfo-dwFlags> fest, und weisen Sie den Zeiger auf eine Zeichenfolgenvariable zu, die den Pfad zum lokalen Druckertreiber zu pConnectionInfo-pszDriverName> enthält.

Eine Druckerverbindung, die durch Aufrufen von AddPrinterConnection2 hergestellt wird, wird aufgelistet, wenn EnumPrinters aufgerufen wird, wobei dwType auf PRINTER_ENUM_CONNECTION festgelegt ist.

Die ANSI-Version dieser Funktion, AddPrinterConnection2A, 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
AddPrinterConnection2W (Unicode)

Siehe auch

Drucken

Druckspooler-API-Funktionen

ConnectToPrinterDlg

EnumPrinters

DeletePrinterConnection