IPrintOemPrintTicketProvider::BindPrinter-Methode (prcomoem.h)
Die IPrintOemPrintTicketProvider::BindPrinter--Methode ermöglicht dem Kerntreiber das Zuordnen eines Satzes privater namespace uniform resource identifiers (URIs) zu einem Gerät. Diese Methode ermöglicht es dem Plug-In auch, Informationen (z. B. den Druckerhandle) zwischenzuspeichern, die zu einem späteren Zeitpunkt verwendet werden können.
Syntax
HRESULT BindPrinter(
[in] HANDLE hPrinter,
[in] INT version,
[out] POEMPTOPTS pOptions,
[out] INT *cNamespaces,
[out] BSTR **ppNamespaces
);
Parameter
[in] hPrinter
Der Druckpunkt des Spoolers, der von Unidrv bereitgestellt wird. Der Anbieter sollte dieses Handle nicht jederzeit schließen, da der Client des Anbieters für die Verwaltung der Lebensdauer dieses Handles verantwortlich ist. Der Anbieter kann den Druckhandle zwischenspeichern; alle zukünftigen Aufrufe dieses Objekts beziehen sich auf den Drucker, der diesem Handle zugeordnet ist.
[in] version
Die Hauptversionsnummer des Druckschemas. Windows Vista unterstützt nur Version 1.
[out] pOptions
Ein Zeiger auf eine Variable, die einen der folgenden Aufzählungswerte empfängt:
OEMPT_DEFAULT
Das System platziert eine binäre Codierung (ein binäres großes Objekt [BLOB]) der privaten DEVMODEW- Struktur in das Druckticket in einer Konvertierung eines DEVMODEW in ein Druckticket.
OEMPT_NOSNAPSHOT
Das System platziert keine binäre Codierung (blob) der privaten DEVMODEW-Struktur in das Druckticket in einer Konvertierung eines DEVMODEW in ein Druckticket. Verwenden Sie diesen Wert, wenn alle öffentlichen und privaten DEVMODEW-Mitglieder im Druckticket vollständig dargestellt werden.
Das aufgerufene OEM-Objekt sollte den wert festlegen, auf den dieser Parameter verweist.
[out] cNamespaces
Ein Zeiger auf eine Variable, die die Anzahl der privaten Namespace-URIs empfängt, die im Plug-In verwendet werden. Diese Zahl stellt die Anzahl der Zeichenfolgen im Array dar, auf die durch *ppNamespacesverwiesen wird.
[out] ppNamespaces
Ein Zeiger auf eine Variable, die die Adresse des ersten Elements eines BSTR-Arrays empfängt. Das Plug-In füllt jede Arrayposition mit einem Namespace-URI aus. Weitere Informationen zu diesem Parameter finden Sie im folgenden Abschnitt "Hinweise".
Rückgabewert
IPrintOemPrintTicketProvider::BindPrinter sollte einen der folgenden Werte zurückgeben.
Rückgabecode | Beschreibung |
---|---|
S_OK | Der Vorgang war erfolgreich. |
E_VERSION_NOT_SUPPORTED | Das Plug-In unterstützt nicht die Version des Druckschemas, das in der Version Parameter angegeben ist. |
Bemerkungen
Das Plug-In ist für das Zuordnen des Speichers für das Array verantwortlich, auf das durch die ppNamespaces Parameter und für die Namespace-URI-Zeichenfolgen verwiesen wird. Das Array sollte mithilfe der CoTaskMemAlloc-Funktion zugewiesen werden; Die Namespacezeichenfolgen sollten mithilfe der SysAllocString--Funktion zugewiesen werden. Beide Funktionen werden in der Microsoft Windows SDK-Dokumentation beschrieben. Das Array, auf das durch die ppNamespaces Parameter verwiesen wird, ist nicht erforderlich, um die Namespaces für die Druckschemastichwörter oder das Print Schema Framework zu enthalten.
Die Bindung an ein Gerät ermöglicht es dem Anbieter, bestimmte Objekte zwischenzuspeichern und Handles zu behandeln, die für zukünftige Druckticket- oder Druckfunktionendienste auf diesem Gerät benötigt werden. Beispielsweise kann das Druckerhandle in hPrinter- zwischengespeichert werden. IPrintOemPrintTicketProvider::BindPrinter wird garantiert nur einmal aufgerufen.
Ein IPrintOemPrintTicketProvider--Objekt muss nicht mehr als einmal gebunden werden können. Der Druckticket-Manager verwendet immer unterschiedliche IPrintOemPrintTicketProvider Objektinstanzen zum Binden an verschiedene Geräte. Alle Ressourcen, die in einem erfolgreichen Aufruf von IPrintOemPrintTicketProvider::BindPrinter abgerufen werden, sollten freigegeben werden, wenn die Referenzanzahl eines IPrintOemPrintTicketProvider-Objekt null ist. (Beachten Sie, dass der Anbieter das Handle, das an den Aufruf von BindPrinterübergeben wurde, nicht schließen sollte). Der Druckticket-Manager erstellt möglicherweise mehrere Anbieter für dasselbe Gerät in unterschiedlichen Versionen, wenn mehrere Versionen unterstützt werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | prcomoem.h (einschließlich Prcomoem.h) |
Siehe auch
IPrintOemPrintTicketProvider::ConvertDevModeToPrintTicket