Condividi tramite


Metodo IPrintTicketProvider2::ConvertPrintTicketToDevMode (prdrvcom.h)

Il metodo IPrintTicketProvider2::ConvertPrintTicketToDevMode converte un ticket di stampa in una struttura DEVMODEW.

Sintassi

HRESULT ConvertPrintTicketToDevMode(
  [in]  IN IXMLDOMDocument2 *pPrintTicket,
  [in]  IN ULONG            cbDevmodeIn,
  [in]  IN PDEVMODE         pDevmodeIn,
  [out] OUT ULONG           *pcbDevmodeOut,
  [out] OUT PDEVMODE        *ppDevmodeOut
);

Parametri

[in] pPrintTicket

Puntatore al ticket di stampa di input. IPrintTicketProvider2::ConvertPrintTicketToDevMode converte le impostazioni nel ticket di stampa di input in campi nella struttura DEVMODEW.

[in] cbDevmodeIn

Dimensioni, in byte, della struttura di input DEVMODEW. Queste dimensioni includono sia le sezioni pubbliche che private della struttura di DEVMODEW.

[in] pDevmodeIn

Puntatore alla struttura di input DEVMODEW che contiene le impostazioni predefinite. La struttura DEVMODEW può essere la struttura predefinita della coda di stampa DEVMODEW oppure può essere la struttura predefinita dell'utente DEVMODEW. Poiché questo parametro può rappresentare l'impostazione predefinita dell'utente struttura di DEVMODEW, il provider di plug-in OEM deve convalidare i dati in tale struttura. Un utente predefinito struttura DEVMODEW potrebbe non essere valida per un driver specifico, ad esempio quando il driver della coda di stampa cambia o viene aggiornato.

[out] pcbDevmodeOut

Puntatore a una variabile contenente le dimensioni, in byte, della struttura di output DEVMODEW.

[out] ppDevmodeOut

Puntatore a una variabile che contiene l'indirizzo dell'output struttura di DEVMODEW. Quando IPrintTicketProvider2::ConvertPrintTicketToDevMode viene restituito correttamente, i membri della struttura di output DEVMODEW verranno reimpostati in modo da riflettere le impostazioni nel ticket di stampa. Per altre informazioni, vedere la sezione Osservazioni seguente.

Valore restituito

IPrintTicketProvider2::ConvertPrintTicketToDevMode deve restituire S_OK se l'operazione ha esito positivo. In caso contrario, questo metodo deve restituire un codice di errore COM standard.

Osservazioni

Il driver principale chiama il metodo IPrintTicketProvider2::ConvertPrintTicketToDevMode prima di eseguire la conversione di un ticket di stampa in una struttura DEVMODEW. Nella chiamata a questo metodo, il driver principale passa un ticket di stampa di input completamente popolato e una struttura DEVMODEW impostata sui valori predefiniti. Nella conversione, il plug-in deve annullare le modifiche apportate al ticket di stampa durante la conversione precedente da una struttura DEVMODEW a un ticket di stampa. Se, durante questa conversione precedente, il plug-in ha spostato una funzionalità da uno spazio dei nomi privato allo spazio dei nomi pubblico, il plug-in deve ripristinare la funzionalità nello spazio dei nomi privato in un formato adatto al driver principale, ovvero al formato in cui il driver principale aveva inserito in precedenza la funzionalità nel ticket di stampa fornito al plug-in nel IPrintOemPrintTicketProvider:: Metodo ConvertDevModeToPrintTicket. Questo ripristino è necessario in modo che il driver principale possa riconoscere una funzionalità nel ticket di stampa e riflettere le relative impostazioni nella parte privata del driver principale DEVMODEW struttura mentre il driver principale esegue la sua parte del ticket di stampa daDEVMODEW conversione.

Prima che il sistema converta nuovamente un ticket di stampa in una struttura DEVMODEW, carica prima di tutto il DEVMODEW predefinito. Il sistema chiama quindi il metodo IPrintTicketProvider2::BindPrinter del provider. Questo metodo dovrebbe quindi leggere tutte le impostazioni supportate dal ticket di stampa e inserire tali impostazioni nella struttura DEVMODEW. Si noti che non tutte le funzionalità saranno necessariamente rappresentate e che spesso le istanze option presenti potrebbero non contenere tutte le istanze della proprietà con punteggio che il provider popola normalmente. Se il provider apporta modifiche alle impostazioni popolate dal sistema durante la conversione da ticket di stampa a DEVMODEW, il provider deve eseguire il contrario di tale modifica in questo metodo. Al termine del provider, il sistema sovrascrive tutte le impostazioni pubbliche DEVMODEW rappresentate nel ticket di stampa, ma che non sono disabilitate in modo esplicito dal provider.

Fabbisogno

Requisito Valore
intestazione prdrvcom.h (include Prdrvcom.h)

Vedere anche

IPrintTicketProvider2

IPrintTicketProvider2::ConvertDevModeToPrintTicket