MxdcGetPDEVAdjustment-Funktion (mxdc.h)
Die MxdcGetPDEVAdjustment--Funktion wird von einer Druckerschnittstellen-DLL exportiert und stellt Druckerkonfigurationsdaten für den Microsoft XPS Document Converter (MXDC) bereit.
Syntax
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
);
Parameter
[in] hPrinter
Der Handle des derzeit instanziierten Druckers.
[in] cbDevMode
Die Größe der DEVMODE- Struktur in Byte, einschließlich der privaten DEVMODE-Daten des Treibers.
[in] pDevMode
Eine Kopie der DEVMODE-Struktur, die der MXDC empfangen hat. Die Druckerschnittstellen-DLL verwendet Informationen aus dieser Struktur, um die angeforderten Daten zurückzugeben.
[in] cbIn
Ein Eingabeparameter, der die Größe des pvIn--Parameters in Byte angibt. Dieser Parameter wird zurzeit nicht verwendet, und sein Wert ist Null.
[in, optional] pvIn
Ein Parameter, der aus Daten besteht, die von der MXDC an die Druckerschnittstellen-DLL gesendet werden. Dieser Parameter wird derzeit nicht verwendet, und sein Wert ist NULL-.
[in] cbPrintPropertiesCollection
Die Größe der PrintPropertiesCollection- Datenstruktur in Byte.
pPrintPropertiesCollection
Die PrintPropertiesCollection Datenstruktur, aus der die DLL der Druckerschnittstelle die angeforderten Daten abruft. Diese Struktur wird in WinSpool.h definiert. Die angeforderten Felder sind möglicherweise bereits mit den Standarddaten des MXDC ausgefüllt. Die Druckerschnittstellen-DLL muss die Felder ignorieren, die sie nicht verstehen.
Rückgabewert
MxdcGetPDEVAdjustment- sollte einen der folgenden Werte zurückgeben:
Rückgabecode | Beschreibung |
---|---|
S_OK | Die Druckerschnittstellen-DLL hat einen angepassten bildbaren Bereich, komprimierungstyp oder DPI basierend auf der angegebenen DEVMODE-Struktur erfolgreich zurückgegeben. Der MXDC überprüft den zurückgegebenen bildbaren Bereich und verwendet ihn dann, um die GDIINFO- Struktur für die entsprechenden Felder aufzufüllen. |
E_NOTIMPL | Die MxdcGetPDEVAdjustment--Funktion wird nicht von der Druckerschnittstelle implementiert. Die Druckerschnittstelle darf die nicht unterstützten Felder nicht ändern. Der MXDC ist standardmäßig auf die aktuellen Standardwerte festgelegt. Für den Fall des bildfähigen Bereichs verwendet MXDC standardmäßig die physische Seitengröße. Für die Komprimierungsoption wird MXDC standardmäßig auf mittlere JPEG-Komprimierung festgelegt. |
E_FAIL | Für diesen Wert oder andere Fehlerwerte gibt der MXDC -1 an die DrvEnablePDEV--Funktion zurück, fängt die interne Ausnahme ab und legt ein Flag fest, um den Druckauftrag fehlzuschlagen und zu beenden. |
Bemerkungen
Die MxdcGetPDEVAdjustment--Funktion wird vom Hardwareanbieter implementiert. Der MXDC ruft diese Funktion auf, um Druckerkonfigurationsdaten in Form eines Eigenschaftenbehälters abzurufen, der die folgenden Daten enthält:
MXDC ermöglicht es der Druckerschnittstellen-DLL, dpi über das MxdcGetPDEVAdjustment Funktion nur anzupassen, wenn der dmPrintQuality- Feld des Druckauftrags einen Wert aufweist, der kleiner oder gleich 0 ist. Wenn der DPI-Wert nicht angepasst wird, ordnet MXDC negative dmPrintQuality- Werte den folgenden Auflösungen zu.
GDI-Name (Wingdi.h) | GDI-Wert(Wingdi.h) | MXDC-Standardinterpretation(Punkte pro Zoll) |
---|---|---|
DMRES_HIGH | -4 | 2400 |
DMRES_MEDIUM | -3 | 1200 |
DMRES_LOW | -2 | 600 |
DMRES_DRAFT | -1 | 400 |
Der Name der MXDC-Eigenschaft, die den MXDC-Standardwert speichert, ist "L"MxdcDotsPerInch".
In der folgenden Tabelle sind die Eigenschaftentypen und Eigenschaftenbehälterfelder des MXDC für die Eigenschaften aufgeführt:
Eigenschaft (propertyName) | Eigenschaftstyp (ePropertyValue) | Eigenschaftenbehälterfelder |
---|---|---|
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 |
In der folgenden Tabelle sind die unterstützten Datentypen und Datenwerte des MXDC für die Eigenschaften aufgeführt:
Eigenschaft (propertyName) | Datentypen und Werte |
---|---|
L"MxdcImageableArea" | Datentyp: RECT Werte: RECT::left (Identisch mit FORM_INFO_1) RECT::right (Identisch mit FORM_INFO_1) RECT::top (identisch mit FORM_INFO_1) RECT::bottom (Identisch mit FORM_INFO_1) |
L"MxdcImageCompressionType" | Datentyp: LONG Werte: 1 = JPEG High Compression 2 = JPEG Medium Compression 3 = JPEG Low Compression 4 = PNG-Komprimierung |
L"MxdcDotsPerInch" | Datentyp: LONG Werte: Ein positiver Wert für Dots Per Inch |
L"MxdcLandscapeRotation" | Datentyp: LONG Werte: 90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES 0 = MXDC_LANDSCAPE_ROTATE_NONE -90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES |
Die MxdcGetPDEVAdjustment Funktion ist kein Teil des MXDC. Der MXDC ruft diese Funktion in der Konfigurations-DLL des Treibers zurück, um Daten zum Konfigurieren des Druckers abzurufen.
Der MXDC erwartet, dass der bildbare Bereich in nicht gedrehten Koordinaten (Hochformat) ausgedrückt wird. Der MXDC dreht sowohl die Seitengröße als auch den bildbaren Bereich entsprechend dem Wert des dmOrientation Member der DEVMODE-Struktur, auf das durch pDevModeverwiesen wird. Daher sollte die Implementierung von MxdcGetPDEVAdjustment des Hardwareanbieters vermeiden, den bildbaren Bereich in gedrehten Koordinaten (Querformat) anzugeben, da dadurch Querformatdruckaufträge falsch gedruckt werden.
Der Standardwert im MXDC wird MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES, d. h. das aktuelle Legacyverhalten.
Die gesamte Drehung erfolgt im bildbaren Bereich. Wenn eine Konfigurationskomponente (UniDrv/PostScript, XPSDrv Monolithic) die neuen Eigenschaftenbehälterwerte nicht versteht, sollte sie wie im aktuellen Design ignoriert werden.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | mxdc.h (include Mxdc.h) |