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