Função PTConvertPrintTicketToDevMode (prntvpt.h)

Converte um tíquete de impressão em uma estrutura DEVMODE .

Sintaxe

HRESULT PTConvertPrintTicketToDevMode(
  [in]  HPTPROVIDER         hProvider,
  [in]  IStream             *pPrintTicket,
        EDefaultDevmodeType baseDevmodeType,
  [in]  EPrintTicketScope   scope,
  [out] ULONG               *pcbDevmode,
  [out] PDEVMODE            *ppDevmode,
  [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] pPrintTicket

Um ponteiro para um IStream com sua posição de busca no início do tíquete de impressão.

baseDevmodeType

Um valor que indica se o DEVMODE padrão do usuário ou o DEVMODE padrão da fila de impressão é usado para fornecer valores para a saída DEVMODE quando pPrintTicket não especifica todas as configurações possíveis para um DEVMODE.

[in] scope

Um valor que especifica o escopo de pPrintTicket. Esse valor pode especificar uma única página, um documento inteiro ou todos os documentos no trabalho de impressão. As configurações em pPrintTicket que estão fora do escopo especificado são ignoradas. Consulte Observações.

[out] pcbDevmode

Um ponteiro para o tamanho do DEVMODE em bytes.

[out] ppDevmode

Um ponteiro para o DEVMODE recém-criado.

[out] pbstrErrorMessage

Um ponteiro para uma cadeia de caracteres que especifica o que, se alguma coisa, é inválido sobre pPrintTicket. Se for válido, isso será NULL.

Retornar valor

Se a operação for bem-sucedida, o valor retornado será S_OK.

Se hProvider foi aberto em um thread diferente, o HRESULT será E_INVALIDARG.

Se pPrintTicket for inválido, o HRESULT será E_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 do 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.
 
O parâmetro hProvider deve ser um identificador aberto no mesmo thread que o thread no qual ele é usado para essa função.

Se baseDevmodeType for kUserDefaultDevmode, mas o padrão do usuário não estiver disponível, o padrão do dispositivo será usado.

O DEVMODE retornado pode ser internamente inconsistente ou entrar em conflito com as configurações da impressora rígida, embora cada configuração dentro dela seja viável individualmente. Por exemplo, se a impressora der suporte a um duplexer opcional, mas o pPrintTicket chamar duplexing, o DEVMODE retornado também chamará para duplexing, mesmo se o duplexer não estiver instalado. Use DocumentProperties para corrigir o DEVMODE retornado.

O buffer no ppDevmode retornado deve ser liberado com PTReleaseMemory.

Os valores de pPrintTicket que estão fora do escopo são ignorados. Por exemplo, se o escopo for apenas uma única página, as configurações de todo o trabalho e as configurações de todo o documento serão ignoradas. O escopo do trabalho inclui o escopo do documento e o escopo da página. O escopo do documento inclui o escopo da página.

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