Condividi tramite


Funzione PTMergeAndValidatePrintTicket (prntvpt.h)

Unisce due biglietti di stampa e restituisce un biglietto di stampa valido e valida.

Sintassi

HRESULT PTMergeAndValidatePrintTicket(
  [in]  HPTPROVIDER       hProvider,
  [in]  IStream           *pBaseTicket,
  [in]  IStream           *pDeltaTicket,
  [in]  EPrintTicketScope scope,
        IStream           *pResultTicket,
  [out] BSTR              *pbstrErrorMessage
);

Parametri

[in] hProvider

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

[in] pBaseTicket

Puntatore a un biglietto di stampa. La posizione di ricerca del flusso deve essere all'inizio del contenuto del ticket di stampa.

NotaPTMergeAndValidatePrintTicket convalida il ticket di base su Print Schema Framework prima dell'unione.
 

[in] pDeltaTicket

Puntatore a un biglietto di stampa. La posizione di ricerca del flusso deve essere all'inizio del contenuto del ticket di stampa. È possibile passare NULL a questo parametro. Vedere la sezione Osservazioni.

NotaPTMergeAndValidatePrintTicket convalida il ticket differenziale rispetto al framework dello schema di stampa prima dell'unione.
 

[in] scope

Valore che specifica se l'ambito di pDeltaTicket e pResultTicket è una singola pagina, un intero documento o tutti i documenti nel processo di stampa. Vedere la sezione Osservazioni.

pResultTicket

Puntatore al flusso in cui verrà scritto il ticket unito. La posizione di ricerca sarà alla fine del biglietto di stampa. Vedere la sezione Osservazioni.

[out] pbstrErrorMessage

Puntatore a una stringa che specifica cosa, se qualcosa, non è valido per pBaseTicket o pDeltaTicket. Se entrambi sono validi, questo è NULL. I problemi di affidabilità non vengono segnalati in pbstrErrorMessage.

Valore restituito

Se l'operazione ha esito positivo senza conflitti tra le impostazioni del ticket unito e le funzionalità della stampante, HRESULT è S_PT_NO_CONFLICT.

Se l'operazione ha esito positivo, ma il ticket unito deve essere modificato in una o più impostazioni perché ha richiesto funzionalità che la stampante non supporta, HRESULT è S_PT_CONFLICT_RESOLVED. Vedere la sezione Osservazioni.

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

Se pBaseTicket non è valido, HRESULT è E_PRINTTICKET_FORMAT.

Se pDeltaTicket non è valido, HRESULT è E_DELTA_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à con cui questa funzione restituisce dipende da fattori di runtime, ad esempio lo stato di rete, la configurazione del server di stampa e l'implementazione del driver della stampante, fattori difficili da prevedere durante la scrittura di un'applicazione. La chiamata a questa funzione da un thread che gestisce l'interazione con l'interfaccia utente potrebbe rendere l'applicazione non rispondente.
 
hProvider deve essere un handle aperto nello stesso thread del thread in cui viene usato per questa funzione.

Questa funzione viene convalidata in due modi: convalida prima entrambi i ticket di input in Print Schema Framework, segnalando errori in pbstrErrorMessage. Verifica quindi la redditività del ticket di stampa unito con il driver della stampante. Se la funzionalità del ticket unito richiede che la stampante non supporti, le impostazioni non valide vengono sostituite e il driver della stampante determina l'impostazione di sostituzione da usare. In genere, il driver della stampante usa l'impostazione predefinita del ticket di stampa dell'utente. Se il driver della stampante non usa lo stesso ticket di stampa che pBaseTicket punta all'origine per i valori sostitutivi, è possibile che pResultTicket differisca in alcune impostazioni da entrambi i biglietti di stampa di input.

In genere, pBaseTicket contiene un'ampia gamma di impostazioni di processo, documento e pagina. In genere l'utente predefinito o il ticket di stampa predefinito del dispositivo viene usato per pBaseTicket.

Se pDeltaTicket è NULL, il metodo convalida pBaseTicket, controlla la sua redditività e lo restituisce, eventualmente modificato, nel flusso a cui fa riferimento pResultTicket.

I valori di pDeltaTicket 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.

Le impostazioni esterne all'ambito non sono incluse nel pResultTicket.

Quando la funzione restituisce un valore, la posizione di ricerca di pResultTicket si trova alla fine del contenuto del ticket di stampa. Il chiamante è responsabile della reimpostazione della posizione di ricerca prima di leggere i dati.

Se pbstrErrorMessage non è NULL quando la funzione restituisce, 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

Schema di stampa

Funzioni dell'API spooler di stampa

Stampa