Função MxdcGetPDEVAdjustment (mxdc.h)

A função MxdcGetPDEVAdjustment é exportada por uma DLL de interface de impressora e fornece dados de configuração da impressora para o MXDC (Conversor de Documentos do Microsoft XPS).

Sintaxe

HRESULT MxdcGetPDEVAdjustment(
  [in]           HANDLE                    hPrinter,
  [in]           ULONG                     cbDevMode,
  [in]           const DEVMODE             *pDevMode,
  [in]           ULONG                     cbIn,
  [in, optional] const VOID                *pvIn,
  [in]           ULONG                     cbPrintPropertiesCollection,
                 PrintPropertiesCollection *pPrintPropertiesCollection
);

Parâmetros

[in] hPrinter

O identificador da impressora instanciada no momento.

[in] cbDevMode

O tamanho da estrutura DEVMODE , em bytes, incluindo os dados DEVMODE privados do driver.

[in] pDevMode

Uma cópia da estrutura DEVMODE que o MXDC recebeu. A DLL da interface da impressora usa informações dessa estrutura para retornar os dados solicitados.

[in] cbIn

Um parâmetro de entrada que designa o tamanho do parâmetro pvIn , em bytes. Atualmente, esse parâmetro não é usado e seu valor é zero.

[in, optional] pvIn

Um parâmetro que consiste em dados enviados para a DLL da interface da impressora do MXDC. Atualmente, esse parâmetro não é usado e seu valor é NULL.

[in] cbPrintPropertiesCollection

O tamanho da estrutura de dados PrintPropertiesCollection , em bytes.

pPrintPropertiesCollection

A estrutura de dados PrintPropertiesCollection da qual a DLL da interface da impressora obtém os dados solicitados. Essa estrutura é definida em WinSpool.h. Os campos solicitados podem ser preenchidos previamente com os dados padrão do MXDC. A DLL da interface da impressora deve ignorar os campos que ela não entende.

Retornar valor

MxdcGetPDEVAdjustment deve retornar um dos seguintes valores:

Código de retorno Descrição
S_OK A DLL da interface da impressora retornou com êxito uma área imagens ajustada, um tipo de compactação ou um DPI com base na estrutura DEVMODE fornecida. O MXDC validará a área imagens retornada e a usará para preencher a estrutura GDIINFO nos respectivos campos.
E_NOTIMPL A função MxdcGetPDEVAdjustment não é implementada pela interface da impressora. A interface da impressora não deve modificar os campos aos quais não dá suporte. O MXDC usa como padrão seus padrões atuais. Para o caso de área imagens, o MXDC usa como padrão o uso do tamanho da página física. Para a opção de compactação, o MXDC usa como padrão a compactação JPEG média.
E_FAIL Para esse valor ou qualquer outro valor de falha, o MXDC retorna -1 para a função DrvEnablePDEV , captura a exceção interna e define um sinalizador para falhar e encerrar o trabalho de impressão.

Comentários

A função MxdcGetPDEVAdjustment é implementada pelo fornecedor de hardware. O MXDC chama essa função para obter dados de configuração da impressora na forma de um recipiente de propriedades que inclui os seguintes dados:

O MXDC permite que a DLL da interface da impressora ajuste o DPI por meio da função MxdcGetPDEVAdjustment somente se o campo dmPrintQuality do trabalho de impressão tiver um valor menor ou igual a 0. Se o valor de DPI não for ajustado, o MXDC mapeará valores dmPrintQuality negativos para as resoluções a seguir.

Nome da GDI (Wingdi.h) Valor GDI(Wingdi.h) Interpretação padrão do MXDC(pontos por polegada)
DMRES_HIGH -4 2400
DMRES_MEDIUM -3 1200
DMRES_LOW -2 600
DMRES_DRAFT -1 400

O nome da propriedade MXDC que armazena o valor de DPI padrão MXDC é L"MxdcDotsPerInch".

A tabela a seguir lista os tipos de propriedade do MXDC e os campos do recipiente de propriedades para as propriedades:

Propriedade (propertyName) Tipo de propriedade (ePropertyValue) Campos de recipiente de propriedades
L"MxdcImageableArea" kPropertyTypeBuffer PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyBlob.cbBuf = sizeof(RECT) PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyBlob.pBuf
L"MxdcImageCompressionType" kPropertyTypeInt32 PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32
L"MxdcDotsPerInch" kPropertyTypeInt32 PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32
L"MxdcLandscapeRotation" kPropertyTypeInt32 PrintPropertiesCollection::p ropertiesCollection[i].propertyValue.value.propertyInt32

A tabela a seguir lista os tipos de dados e os valores de dados com suporte do MXDC para as propriedades:

Propriedade (propertyName) Tipos e valores de dados
L"MxdcImageableArea" Tipo de dados: RECT

Valores:

RECT::left (o mesmo que FORM_INFO_1)

RECT::right (o mesmo que FORM_INFO_1)

RECT::top (o mesmo que FORM_INFO_1)

RECT::bottom (o mesmo que FORM_INFO_1)
L"MxdcImageCompressionType" Tipo de dados: LONG

Valores:

1 = Alta Compactação JPEG

2 = Compactação média JPEG

3 = Baixa compactação JPEG

4 = Compactação PNG
L"MxdcDotsPerInch" Tipo de dados: LONG

Valores:

Um valor positivo para Pontos por Polegada
L"MxdcLandscapeRotation" Tipo de dados: LONG

Valores:

90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES

0 = MXDC_LANDSCAPE_ROTATE_NONE

-90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES

A função MxdcGetPDEVAdjustment não faz parte do MXDC. O MXDC chama essa função na DLL de configuração do driver para obter dados para configurar a impressora.

O MXDC espera que a área imagens seja expressa em coordenadas não detalhadas (orientação retrato). O MXDC gira o tamanho da página e a área imagens de acordo com o valor do membro dmOrientation da estrutura DEVMODE apontada por pDevMode. Assim, a implementação do MxdcGetPDEVAdjustment pelo fornecedor de hardware deve evitar especificar a área imagens em coordenadas giradas (orientação paisagem), pois isso fará com que os trabalhos de impressão paisagem sejam impressos incorretamente.

O valor padrão no MXDC será MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES, que é seu comportamento herdado atual.

Toda a rotação será feita na área imagens. Se um componente de configuração (UniDrv/PostScript, XPSDrv Monolithic) não entender os novos valores do recipiente de propriedades, ele deverá ignorá-los como está no design atual.

Requisitos

Requisito Valor
Plataforma de Destino Área de Trabalho
Cabeçalho mxdc.h (inclua Mxdc.h)

Confira também

DrvEnablePDEV

GDIINFO

IPrintOemUIMXDC Interface