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) |