MxdcGetPDEVAdjustment, fonction (mxdc.h)
La fonction MxdcGetPDEVAdjustment est exportée par une DLL d’interface d’imprimante et fournit des données de configuration d’imprimante pour microsoft XPS Document Converter (MXDC).
Syntaxe
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
);
Paramètres
[in] hPrinter
Handle de l’imprimante actuellement instanciée.
[in] cbDevMode
Taille de la structure DEVMODE , en octets, y compris les données DEVMODE privées du pilote.
[in] pDevMode
Copie de la structure DEVMODE que le MXDC a reçue. La DLL d’interface d’imprimante utilise les informations de cette structure pour retourner les données demandées.
[in] cbIn
Paramètre d’entrée qui désigne la taille du paramètre pvIn , en octets. Ce paramètre n’est actuellement pas utilisé et sa valeur est égale à zéro.
[in, optional] pvIn
Paramètre qui se compose des données envoyées à la DLL d’interface d’imprimante à partir du MXDC. Ce paramètre n’est actuellement pas utilisé et sa valeur est NULL.
[in] cbPrintPropertiesCollection
Taille de la structure de données PrintPropertiesCollection , en octets.
pPrintPropertiesCollection
Structure de données PrintPropertiesCollection à partir de laquelle la DLL de l’interface d’imprimante obtient les données demandées. Cette structure est définie dans WinSpool.h. Les champs demandés peuvent être préremplis avec les données par défaut du MXDC. La DLL d’interface d’imprimante doit ignorer les champs qu’elle ne comprend pas.
Valeur retournée
MxdcGetPDEVAdjustment doit retourner l’une des valeurs suivantes :
Code de retour | Description |
---|---|
S_OK | La DLL de l’interface d’imprimante a correctement retourné une zone imageable ajustée, un type de compression ou un ppp en fonction de la structure DEVMODE donnée. Le MXDC valide la zone imageable retournée, puis l’utilise pour remplir la structure GDIINFO dans les champs respectifs. |
E_NOTIMPL | La fonction MxdcGetPDEVAdjustment n’est pas implémentée par l’interface d’imprimante. L’interface d’imprimante ne doit pas modifier les champs qu’elle ne prend pas en charge. Le MXDC utilise par défaut ses valeurs par défaut actuelles. Pour le cas de zone imageable, MXDC utilise par défaut la taille de page physique. Pour l’option de compression, MXDC utilise par défaut une compression JPEG moyenne. |
E_FAIL | Pour cette valeur ou toute autre valeur d’échec, le MXDC retourne -1 à la fonction DrvEnablePDEV , intercepte l’exception interne et définit un indicateur pour qu’il échoue et termine le travail d’impression. |
Remarques
La fonction MxdcGetPDEVAdjustment est implémentée par le fournisseur de matériel. Le MXDC appelle cette fonction pour obtenir les données de configuration de l’imprimante sous la forme d’un conteneur de propriétés qui inclut les données suivantes :
MXDC permet à la DLL de l’interface d’imprimante d’ajuster DPI via la fonction MxdcGetPDEVAdjustment uniquement si le champ dmPrintQuality du travail d’impression a une valeur inférieure ou égale à 0. Si la valeur ppp n’est pas ajustée, MXDC mappe les valeurs dmPrintQuality négatives aux résolutions suivantes.
Nom GDI (Wingdi.h) | Valeur GDI(Wingdi.h) | Interprétation par défaut MXDC (points par pouce) |
---|---|---|
DMRES_HIGH | -4 | 2 400 |
DMRES_MEDIUM | -3 | 1200 |
DMRES_LOW | -2 | 600 |
DMRES_DRAFT | -1 | 400 |
Le nom de la propriété MXDC qui stocke la valeur DPI MXDC par défaut est L"MxdcDotsPerInch ».
Le tableau suivant répertorie les types de propriétés du MXDC et les champs de conteneur de propriétés pour les propriétés :
Property (propertyName) | Type de propriété (ePropertyValue) | Champs du conteneur de propriétés |
---|---|---|
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 |
Le tableau suivant répertorie les types de données et les valeurs de données pris en charge par MXDC pour les propriétés :
Property (propertyName) | Types de données et valeurs |
---|---|
L"MxdcImageableArea » | Type de données : RECT Valeurs : RECT ::left (identique à FORM_INFO_1) RECT ::right (identique à FORM_INFO_1) RECT ::top (identique à FORM_INFO_1) RECT ::bottom (identique à FORM_INFO_1) |
L"MxdcImageCompressionType » | Type de données : LONG Valeurs : 1 = Compression élevée JPEG 2 = Compression moyenne JPEG 3 = compression JPEG faible 4 = Compression PNG |
L"MxdcDotsPerInch » | Type de données : LONG Valeurs : Valeur positive pour Dots Per Inch |
L"MxdcLandscapeRotation » | Type de données : LONG Valeurs : 90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_90_DEGREES 0 = MXDC_LANDSCAPE_ROTATE_NONE -90 = MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES |
La fonction MxdcGetPDEVAdjustment ne fait pas partie du MXDC. Le MXDC rappelle cette fonction dans la DLL de configuration du pilote pour obtenir des données pour la configuration de l’imprimante.
Le MXDC s’attend à ce que la zone imageable soit exprimée en coordonnées nonrotées (orientation portrait). Le MXDC fait pivoter à la fois la taille de la page et la zone imageable en fonction de la valeur du membre dmOrientation de la structure DEVMODE pointée vers pDevMode. Ainsi, l’implémentation par le fournisseur de matériel de MxdcGetPDEVAdjustment doit éviter de spécifier la zone imageable dans les coordonnées pivotées (orientation paysage), car cela entraîne une impression incorrecte des travaux d’impression de paysage.
La valeur par défaut dans le MXDC sera MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES, ce qui correspond à son comportement hérité actuel.
Toute la rotation sera effectuée sur la zone imageable. Si un composant de configuration (UniDrv/PostScript, XPSDrv Monolithic) ne comprend pas les nouvelles valeurs du conteneur de propriétés, il doit les ignorer telles quelles dans la conception actuelle.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | mxdc.h (inclure Mxdc.h) |