Partager via


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)

Voir aussi

DrvEnablePDEV

GDIINFO

IPrintOemUIMXDC Interface