Condividi tramite


Metodo IPrintOemPrintTicketProvider::BindPrinter (prcomoem.h)

Il metodo IPrintOemPrintTicketProvider::BindPrinter consente al driver principale di associare un set di URI (Uniform Resource Identifier) dello spazio dei nomi privato a un dispositivo. Questo metodo consente inoltre al plug-in di memorizzare nella cache le informazioni (ad esempio l'handle della stampante) che possono essere usate in un secondo momento.

Sintassi

HRESULT BindPrinter(
  [in]  HANDLE     hPrinter,
  [in]  INT        version,
  [out] POEMPTOPTS pOptions,
  [out] INT        *cNamespaces,
  [out] BSTR       **ppNamespaces
);

Parametri

[in] hPrinter

Handle di stampa dello spooler, fornito da Unidrv. Il provider non deve chiudere questo handle in qualsiasi momento, perché il client del provider è responsabile della gestione della durata di questo handle. Il provider può memorizzare nella cache l'handle di stampa; tutte le chiamate future su questo oggetto sono relative alla stampante associata a questo handle.

[in] version

Numero di versione principale dello schema di stampa. Windows Vista supporta solo la versione 1.

[out] pOptions

Puntatore a una variabile che riceve uno dei valori enumerati seguenti:

OEMPT_DEFAULT

Il sistema inserisce una codifica binaria (un oggetto binario di grandi dimensioni [BLOB]) della struttura privata DEVMODEW nel ticket di stampa in una conversione di devMODEW in un ticket di stampa.

OEMPT_NOSNAPSHOT

Il sistema non inserisce una codifica binaria (BLOB) della struttura DEVMODEW privata nel ticket di stampa in una conversione di devMODEW in un ticket di stampa. Utilizzare questo valore se tutti i membri DEVMODEW pubblici e privati sono completamente rappresentati nel ticket di stampa.

L'oggetto OEM chiamato deve impostare il valore a cui punta questo parametro.

[out] cNamespaces

Puntatore a una variabile che riceve il numero di URI dello spazio dei nomi privati usati nel plug-in. Questo numero rappresenta il numero di stringhe nella matrice a cui punta *ppNamespaces.

[out] ppNamespaces

Puntatore a una variabile che riceve l'indirizzo del primo elemento di una matrice BSTR. Il plug-in riempie ogni posizione della matrice con un URI dello spazio dei nomi. Per altre informazioni su questo parametro, vedere la sezione Osservazioni seguente.

Valore restituito

IPrintOemPrintTicketProvider::BindPrinter deve restituire uno dei valori seguenti.

Codice restituito Descrizione
S_OK Operazione riuscita.
E_VERSION_NOT_SUPPORTED Il plug-in non supporta la versione dello schema di stampa specificato nel parametro versione.

Osservazioni

Il plug-in è responsabile dell'allocazione della memoria per la matrice a cui punta il parametro ppNamespaces e per le stringhe URI dello spazio dei nomi. La matrice deve essere allocata usando la funzione CoTaskMemAlloc; Le stringhe dello spazio dei nomi devono essere allocate usando la funzione SysAllocString. Entrambe queste funzioni sono descritte nella documentazione di Microsoft Windows SDK. La matrice a cui punta il parametro ppNamespaces non è necessario contenere gli spazi dei nomi per le parole chiave dello schema di stampa o il framework dello schema di stampa.

L'associazione a un dispositivo consente al provider di memorizzare nella cache determinati oggetti e gestisce che sarà necessario per i futuri servizi di funzionalità di stampa o di stampa su tale dispositivo. Ad esempio, l'handle della stampante in hPrinter può essere memorizzato nella cache. IPrintOemPrintTicketProvider::BindPrinter è garantito che venga chiamato una sola volta.

Un oggetto IPrintOemPrintTicketProvider non deve essere in grado di associare più volte. Il gestore ticket di stampa usa sempre istanze dell'oggetto IPrintOemPrintTicketProvider diverse per l'associazione a dispositivi diversi. Tutte le risorse acquisite in una chiamata riuscita a IPrintOemPrintTicketProvider::BindPrinter devono essere rilasciate quando il conteggio dei riferimenti di un oggetto IPrintOemPrintTicketProvider è zero. Si noti che il provider non deve chiudere l'handle passato alla chiamata a BindPrinter). Il gestore ticket di stampa potrebbe creare più provider per lo stesso dispositivo, in versioni diverse, se sono supportate più versioni.

Fabbisogno

Requisito Valore
piattaforma di destinazione Desktop
intestazione prcomoem.h (include Prcomoem.h)

Vedere anche

IPrintOemPrintTicketProvider

IPrintOemPrintTicketProvider::ConvertDevModeToPrintTicket

IPrintOemPrintTicketProvider::ConvertPrintTicketToDevMode

IPrintOemPrintTicketProvider::GetSupportedVersions