Funzione MxdcGetPDEVAdjustment (mxdc.h)

La funzione MxdcGetPDEVAdjustment viene esportata da una DLL dell'interfaccia della stampante e fornisce i dati di configurazione della stampante per Microsoft XPS Document Converter (MXDC).

Sintassi

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

Parametri

[in] hPrinter

Handle della stampante attualmente creata.

[in] cbDevMode

Dimensioni della struttura DEVMODE , in byte, inclusi i dati DEVMODE privati del driver.

[in] pDevMode

Copia della struttura DEVMODE ricevuta da MXDC. La DLL dell'interfaccia della stampante usa le informazioni di questa struttura per restituire i dati richiesti.

[in] cbIn

Parametro di input che definisce le dimensioni del parametro pvIn , in byte. Questo parametro non è attualmente utilizzato e il relativo valore è zero.

[in, optional] pvIn

Parametro costituito da dati inviati alla DLL dell'interfaccia della stampante da MXDC. Questo parametro non è attualmente utilizzato e il relativo valore è NULL.

[in] cbPrintPropertiesCollection

Dimensioni della struttura di dati PrintPropertiesCollection , in byte.

pPrintPropertiesCollection

Struttura dei dati PrintPropertiesCollection da cui la DLL dell'interfaccia della stampante ottiene i dati richiesti. Questa struttura è definita in WinSpool.h. I campi richiesti potrebbero essere precompilati con i dati predefiniti di MXDC. La DLL dell'interfaccia della stampante deve ignorare i campi che non riconosce.

Valore restituito

MxdcGetPDEVAdjustment deve restituire uno dei valori seguenti:

Codice restituito Descrizione
S_OK La DLL dell'interfaccia della stampante ha restituito correttamente un'area modificabile, un tipo di compressione o DPI in base alla struttura DEVMODE specificata. MXDC convaliderà l'area imageable restituita e la userà per popolare la struttura GDIINFO nei rispettivi campi.
E_NOTIMPL La funzione MxdcGetPDEVAdjustment non viene implementata dall'interfaccia della stampante. L'interfaccia della stampante non deve modificare i campi non supportati. L'impostazione predefinita MXDC è l'impostazione predefinita corrente. Per il caso dell'area di immagine, MXDC usa per impostazione predefinita le dimensioni della pagina fisica. Per l'opzione di compressione, MXDC usa per impostazione predefinita la compressione JPEG media.
E_FAIL Per questo valore o qualsiasi altro valore di errore, MXDC restituisce -1 alla funzione DrvEnablePDEV , rileva l'eccezione interna e imposta un flag per l'esito negativo e termina il processo di stampa.

Commenti

La funzione MxdcGetPDEVAdjustment viene implementata dal fornitore dell'hardware. MXDC chiama questa funzione per ottenere i dati di configurazione della stampante sotto forma di contenitore delle proprietà che include i dati seguenti:

MXDC consente alla DLL dell'interfaccia della stampante di regolare dpi tramite la funzione MxdcGetPDEVAdjustment solo se il campo dmPrintQuality del processo di stampa ha un valore minore o uguale a 0. Se il valore DPI non viene modificato, MXDC esegue il mapping dei valori dmPrintQuality negativi alle risoluzioni seguenti.

Nome GDI (Wingdi.h) Valore GDI (Wingdi.h) Interpretazione predefinita MXDC (punti per pollice)
DMRES_HIGH -4 2400
DMRES_MEDIUM -3 1200
DMRES_LOW -2 600
DMRES_DRAFT -1 400

Il nome della proprietà MXDC che archivia il valore DPI predefinito MXDC è L"MxdcDotsPerInch".

Nella tabella seguente sono elencati i tipi di proprietà e i campi contenitore delle proprietà mxDC per le proprietà:

Proprietà (propertyName) Tipo di proprietà (ePropertyValue) Campi contenitore delle proprietà
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

Nella tabella seguente sono elencati i tipi di dati e i valori di dati supportati di MXDC per le proprietà:

Proprietà (propertyName) Tipi di dati e valori
L"MxdcImageableArea" Tipo di dati: RECT

Valori:

RECT::left (uguale a FORM_INFO_1)

RECT::right (uguale a FORM_INFO_1)

RECT::top (uguale a FORM_INFO_1)

RECT::bottom (uguale a FORM_INFO_1)
L"MxdcImageCompressionType" Tipo di dati: LONG

Valori:

1 = Compressione jpeg alta

2 = Compressione media JPEG

3 = Compressione jpeg bassa

4 = Compressione PNG
L"MxdcDotsPerInch" Tipo di dati: LONG

Valori:

Valore positivo per Dots Per Inch
L"MxdcLandscapeRotation" Tipo di dati: LONG

Valori:

90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES

0 = MXDC_LANDSCAPE_ROTATE_NONE

-90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES

La funzione MxdcGetPDEVAdjustment non fa parte di MXDC. MXDC richiama questa funzione nella DLL di configurazione del driver per ottenere i dati per la configurazione della stampante.

MXDC prevede che l'area che può essere espressa in coordinate nonrotate (orientamento verticale). MXDC ruota sia le dimensioni della pagina che l'area di immagine in base al valore del membro dmOrientation della struttura DEVMODE a cui punta pDevMode. Di conseguenza, l'implementazione del fornitore hardware di MxdcGetPDEVAdjustment dovrebbe evitare di specificare l'area di immagine nelle coordinate ruotate (orientamento orizzontale) perché ciò causerà la stampa non corretta dei processi di stampa orizzontale.

Il valore predefinito in MXDC verrà MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES, ovvero il comportamento legacy corrente.

Tutta la rotazione verrà eseguita nell'area di immagine. Se un componente di configurazione (UniDrv/PostScript, XPSDrv Monolithic) non riconosce i nuovi valori del contenitore delle proprietà, deve ignorarli così come è nella progettazione corrente.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione mxdc.h (include Mxdc.h)

Vedi anche

DrvEnablePDEV

GDIINFO

Interfaccia IPrintOemUIMXDC