Condividi tramite


Funzione PTConvertPrintTicketToDevMode (prntvpt.h)

Converte un ticket di stampa in una struttura DEVMODE .

Sintassi

HRESULT PTConvertPrintTicketToDevMode(
  [in]  HPTPROVIDER         hProvider,
  [in]  IStream             *pPrintTicket,
        EDefaultDevmodeType baseDevmodeType,
  [in]  EPrintTicketScope   scope,
  [out] ULONG               *pcbDevmode,
  [out] PDEVMODE            *ppDevmode,
  [out] BSTR                *pbstrErrorMessage
);

Parametri

[in] hProvider

Handle per un provider di ticket di stampa aperto. Questo handle viene restituito dalla funzione PTOpenProvider o PTOpenProviderEx .

[in] pPrintTicket

Puntatore a un IStream con la relativa posizione di ricerca all'inizio del ticket di stampa.

baseDevmodeType

Valore che indica se l'impostazione DEVMODE predefinita dell'utente o la coda di stampa devMODE predefinita viene usata per fornire valori all'output DEVMODE quando pPrintTicket non specifica tutte le possibili impostazioni per devMODE.

[in] scope

Valore che specifica l'ambito di pPrintTicket. Questo valore può specificare una singola pagina, un intero documento o tutti i documenti nel processo di stampa. Le impostazioni in pPrintTicket esterne all'ambito specificato vengono ignorate. Vedere la sezione Osservazioni.

[out] pcbDevmode

Puntatore alle dimensioni di DEVMODE in byte.

[out] ppDevmode

Puntatore all'oggetto DEVMODE appena creato.

[out] pbstrErrorMessage

Puntatore a una stringa che specifica cosa, se qualcosa, non è valido su pPrintTicket. Se è valido, questo valore è NULL.

Valore restituito

Se l'operazione ha esito positivo, il valore restituito viene S_OK.

Se hProvider è stato aperto in un thread diverso, HRESULT viene E_INVALIDARG.

Se pPrintTicket non è valido, HRESULT è E_PRINTTICKET_FORMAT.

In caso contrario, viene restituito un altro codice di errore in HRESULT. Per altre informazioni sui codici di errore COM, vedere Gestione degli errori.

Commenti

Nota Si tratta di una funzione di blocco o sincrona e potrebbe non restituire immediatamente. La velocità di restituzione di questa funzione dipende da fattori di runtime, ad esempio lo stato della rete, la configurazione del server di stampa e l'implementazione del driver della stampante, fattori difficili da prevedere durante la scrittura di un'applicazione. Chiamando questa funzione da un thread che gestisce l'interazione con l'interfaccia utente, l'applicazione potrebbe sembrare non rispondente.
 
Il parametro hProvider deve essere un handle aperto nello stesso thread del thread in cui viene usato per questa funzione.

Se baseDevmodeType è kUserDefaultDevmode, ma il valore predefinito dell'utente non è disponibile, verrà usato il valore predefinito del dispositivo.

DevMODE restituito può essere internamente incoerente o in conflitto con le impostazioni della stampante hard, anche se ogni impostazione all'interno è valida singolarmente. Ad esempio, se la stampante supporta un duplex facoltativo ma pPrintTicket chiama per il duplex, devMODE restituito chiamerà anche per il duplex, anche se il duplex non è installato. Utilizzare DocumentProperties per correggere l'oggetto DEVMODE restituito.

Il buffer nel ppDevmode restituito deve essere rilasciato con PTReleaseMemory.

I valori di pPrintTicket esterni all'ambito vengono ignorati. Ad esempio, se l'ambito è solo una singola pagina, le impostazioni a livello di processo e le impostazioni a livello di documento vengono ignorate. L'ambito del processo include l'ambito del documento e l'ambito della pagina. L'ambito del documento include l'ambito della pagina.

Se pbstrErrorMessage non è NULL quando la funzione viene restituita, il chiamante deve liberare la stringa con SysFreeString.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione prntvpt.h
Libreria Prntvpt.lib
DLL Prntvpt.dll

Vedi anche

Stampa schema

Funzioni dell'API spooler di stampa

Stampa