Função PTMergeAndValidatePrintTicket (prntvpt.h)
Mescla dois tíquetes de impressão e retorna um tíquete de impressão válido e viável.
Sintaxe
HRESULT PTMergeAndValidatePrintTicket(
[in] HPTPROVIDER hProvider,
[in] IStream *pBaseTicket,
[in] IStream *pDeltaTicket,
[in] EPrintTicketScope scope,
IStream *pResultTicket,
[out] BSTR *pbstrErrorMessage
);
Parâmetros
[in] hProvider
Um identificador para um provedor de tíquete de impressão aberto. Esse identificador é retornado pela função PTOpenProvider ou PTOpenProviderEx .
[in] pBaseTicket
Um ponteiro para um tíquete de impressão. A posição de busca do fluxo deve estar no início do conteúdo do tíquete de impressão.
[in] pDeltaTicket
Um ponteiro para um tíquete de impressão. A posição de busca do fluxo deve estar no início do conteúdo do tíquete de impressão. NULL pode ser passado para esse parâmetro. Consulte Observações.
[in] scope
Um valor que especifica se o escopo de pDeltaTicket e pResultTicket é uma única página, um documento inteiro ou todos os documentos no trabalho de impressão. Consulte Observações.
pResultTicket
Um ponteiro para o fluxo em que o tíquete viável e mesclado será gravado. A posição de busca será no final do tíquete de impressão. Consulte Observações.
[out] pbstrErrorMessage
Um ponteiro para uma cadeia de caracteres que especifica o que, se alguma coisa, é inválido sobre pBaseTicket ou pDeltaTicket. Se ambos forem válidos, isso será NULL. Problemas de viabilidade não são relatados em pbstrErrorMessage.
Retornar valor
Se a operação for bem-sucedida sem conflito entre as configurações do tíquete mesclado e os recursos da impressora, o HRESULT será S_PT_NO_CONFLICT.
Se a operação for bem-sucedida, mas o tíquete mesclado tiver que ser alterado em uma ou mais configurações porque solicitou a funcionalidade à qual a impressora não dá suporte, o HRESULT será S_PT_CONFLICT_RESOLVED. Consulte Observações.
Se hProvider tiver sido aberto em um thread diferente, o HRESULT será E_INVALIDARG.
Se pBaseTicket for inválido, o HRESULT será E_PRINTTICKET_FORMAT.
Se pDeltaTicket for inválido, o HRESULT será E_DELTA_PRINTTICKET_FORMAT.
Caso contrário, algum outro código de erro será retornado no HRESULT. Para obter mais informações sobre códigos de erro do COM, confira Tratamento de erros.
Comentários
Essa função é validada de duas maneiras: primeiro valida os dois tíquetes de entrada em relação à Estrutura de Esquema de Impressão, relatando erros em pbstrErrorMessage. Em seguida, ele verifica a viabilidade do tíquete de impressão mesclado com o driver da impressora. Se o tíquete mesclado solicitar a funcionalidade à qual a impressora não dá suporte, as configurações inviáveis serão substituídas e o driver da impressora determinará qual configuração substituta usar. Normalmente, o driver de impressora usa a configuração de tíquete de impressão padrão do usuário. Se o driver da impressora não usar o mesmo tíquete de impressão para o qual pBaseTicket aponta como a origem para valores substitutos, é possível que pResultTicket difere em algumas configurações de ambos os tíquetes de impressão de entrada.
Normalmente, pBaseTicket contém uma gama completa de configurações de trabalho, documento e página. Normalmente, o padrão do usuário ou o tíquete de impressão padrão do dispositivo é usado para pBaseTicket.
Se pDeltaTicket for NULL, o método validará pBaseTicket, verificará sua viabilidade e a retornará, possivelmente modificada, no fluxo apontado por pResultTicket.
Os valores de pDeltaTicket que estão fora do escopo são ignorados. Por exemplo, se o escopo for apenas uma única página, as configurações em todo o trabalho e as configurações de todo o documento serão ignoradas. O escopo do trabalho inclui escopo do documento e escopo da página. O escopo do documento inclui o escopo da página.
As configurações que estão fora do escopo não estão incluídas no pResultTicket.
Quando a função retorna um valor, a posição de busca de pResultTicket está no final do conteúdo do tíquete de impressão. O chamador é responsável por redefinir a posição de busca antes de ler os dados.
Se pbstrErrorMessage não for NULL quando a função retornar, o chamador deverá liberar a cadeia de caracteres com SysFreeString.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | prntvpt.h |
Biblioteca | Prntvpt.lib |
DLL | Prntvpt.dll |