Compartilhar via


Método IPrintTicketProvider::ConvertPrintTicketToDevMode (prdrvcom.h)

O método IPrintTicketProvider::ConvertPrintTicketToDevMode converte um tíquete de impressão em uma estrutura DEVMODEW .

Sintaxe

HRESULT ConvertPrintTicketToDevMode(
  [in]  IN IXMLDOMDocument2 *pPrintTicket,
  [in]  IN ULONG            cbDevmodeIn,
  [in]  IN PDEVMODE         pDevmodeIn,
  [out] OUT ULONG           *pcbDevmodeOut,
  [out] OUT PDEVMODE        *ppDevmodeOut
);

Parâmetros

[in] pPrintTicket

Um ponteiro para o tíquete de impressão de entrada. IPrintTicketProvider::ConvertPrintTicketToDevMode converte as configurações no tíquete de impressão de entrada em campos na estrutura DEVMODEW .

[in] cbDevmodeIn

O tamanho, em bytes, da estrutura DEVMODEW de entrada. Esse tamanho inclui as seções pública e privada da estrutura DEVMODEW .

[in] pDevmodeIn

Um ponteiro para a estrutura DEVMODEW de entrada, que contém as configurações padrão. A estrutura DEVMODEW pode ser a estrutura DEVMODEW padrão da fila de impressão ou pode ser a estrutura DEVMODEW padrão do usuário. Como esse parâmetro pode representar a estrutura DEVMODEW padrão do usuário, o provedor de plug-in OEM deve validar os dados nessa estrutura. Uma estrutura DEVMODEW padrão do usuário pode não ser válida para um driver específico, por exemplo, quando o driver da fila de impressão é alterado ou atualizado.

[out] pcbDevmodeOut

Um ponteiro para uma variável que contém o tamanho, em bytes, da estrutura DEVMODEW de saída.

[out] ppDevmodeOut

Um ponteiro para uma variável que contém o endereço da estrutura DEVMODEW de saída. Quando IPrintTicketProvider::ConvertPrintTicketToDevMode retornar com êxito, os membros da estrutura DEVMODEW de saída serão redefinidos para refletir as configurações no tíquete de impressão. Para obter mais informações, consulte a seção Comentários a seguir.

Retornar valor

IPrintTicketProvider::ConvertPrintTicketToDevMode deverá retornar S_OK se a operação for bem-sucedida. Caso contrário, esse método deve retornar um código de erro COM padrão.

Comentários

O driver principal chama o método IPrintTicketProvider::ConvertPrintTicketToDevMode antes de executar sua parte da conversão de um tíquete de impressão em uma estrutura DEVMODEW . Na chamada para esse método, o driver principal passa um tíquete de impressão de entrada totalmente preenchido e uma estrutura DEVMODEW definida como valores padrão. Na conversão, o plug-in deve desfazer as alterações feitas no tíquete de impressão durante a conversão anterior de uma estrutura DEVMODEW em um tíquete de impressão. Se, durante essa conversão anterior, o plug-in tiver movido um recurso de um namespace privado para o namespace público, o plug-in deverá restaurar o recurso para o namespace privado em um formato adequado para o driver principal, ou seja, para o formato no qual o driver principal havia colocado anteriormente o recurso no tíquete de impressão que foi fornecido ao plug-in no IPrintOemPrintTicketProvider:: Método ConvertDevModeToPrintTicket . Essa restauração é necessária para que o driver principal possa reconhecer um recurso no tíquete de impressão e refletir suas configurações na parte privada da estrutura DEVMODEW do driver principal enquanto o driver principal executa sua parte da conversão de tíquete de impressão para DEVMODEW .

Antes que o sistema converta um tíquete de impressão novamente em uma estrutura DEVMODEW , ele primeiro carrega o DEVMODEW padrão. Em seguida, o sistema chama o método IPrintTicketProvider::BindPrinter do provedor. Esse método deve ler todas as configurações compatíveis com o tíquete de impressão e colocar essas configurações na estrutura DEVMODEW . Observe que nem todos os recursos necessariamente serão representados e que, muitas vezes, as instâncias option presentes podem não conter todas as instâncias de Propriedade Pontuada que o provedor normalmente preencheria. Se o provedor fizer alterações nas configurações que foram preenchidas pelo sistema durante a conversão do tíquete de impressão para DEVMODEW, o provedor deverá executar o inverso dessa alteração nesse método. Depois que o provedor retorna, o sistema substitui todas as configurações de DEVMODEW públicas representadas no tíquete de impressão, mas que não são explicitamente desabilitadas pelo provedor.

Requisitos

Requisito Valor
Cabeçalho prdrvcom.h (inclua Prdrvcom.h)

Confira também

IPrintTicketProvider

IPrintTicketProvider::ConvertDevModeToPrintTicket