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.

ObservaçãoPTMergeAndValidatePrintTicket validará o tíquete base em relação à Estrutura de Esquema de Impressão antes da mesclagem.
 

[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.

ObservaçãoPTMergeAndValidatePrintTicket validará o tíquete delta em relação à Estrutura de Esquema de Impressão antes da mesclagem.
 

[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

Nota Essa é uma função de bloqueio ou síncrona e pode não retornar imediatamente. A rapidez com que essa função retorna depende de fatores de tempo de execução, como status de rede, configuração do servidor de impressão e implementação de driver de impressora, fatores difíceis de prever ao escrever um aplicativo. Chamar essa função de um thread que gerencia a interação com a interface do usuário pode fazer com que o aplicativo pareça não responder.
 
hProvider deve ser um identificador que foi aberto no mesmo thread que o thread no qual ele é usado para essa função.

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

Confira também

Esquema de Impressão

Funções da API do Spooler de impressão

Impressão