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 le convertisseur de documents Microsoft XPS (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 reçue par le MXDC. La DLL de l’interface d’imprimante utilise des 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 de données envoyées à la DLL de l’interface d’imprimante à partir du MXDC. Ce paramètre n’est actuellement pas utilisé et sa valeur est NULL.

[in] cbPrintPropertiesCollection

Taille de la PrintPropertiesCollection structure de données, en octets.

pPrintPropertiesCollection

La PrintPropertiesCollection structure de données à 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 de l’interface d’imprimante doit ignorer les champs qu’elle ne comprend pas.

Valeur de retour

MxdcGetPDEVAdjustment doit retourner l’une des valeurs suivantes :

Retourner le code Description
S_OK La DLL de l’interface d’imprimante a correctement retourné une zone imageable, un type de compression ou un PPP ajusté en fonction de la structure DEVMODE donnée. Le MXDC valide la zone imageable retournée, puis l’utilise pour remplir la structure GDIINFO aux champs respectifs.
E_NOTIMPL La fonction MxdcGetPDEVAdjustment n’est pas implémentée par l’interface de l’imprimante. L’interface de l’imprimante ne doit pas modifier les champs qu’elle ne prend pas en charge. Le MXDC est défini par défaut sur 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 est défini par défaut sur la compression JPEG moyenne.
E_FAIL Pour cette valeur ou toute autre valeur d’échec, mxDC retourne -1 à la fonction DrvEnablePDEV, intercepte l’exception interne et définit un indicateur pour échouer et mettre fin au travail d’impression.

Remarques

La fonction MxdcGetPDEVAdjustment est implémentée par le fournisseur de matériel. MxDC appelle cette fonction pour obtenir des données de configuration d’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 de la tâche d’impression a une valeur inférieure ou égale à 0. Si la valeur DPI n’est pas ajustée, MXDC mappe les valeurs négatives dmPrintQuality aux résolutions suivantes.

Nom GDI (Wingdi.h) Valeur GDI(Wingdi.h) Interprétation par défaut MXDC (points par pouce)
DMRES_HIGH -4 2400
DMRES_MEDIUM -3 1200
DMRES_LOW -2 600
DMRES_DRAFT -1 400

Le nom de la propriété MXDC qui stocke la valeur DPI par défaut MXDC est L « MxdcDotsPerInch ».

Le tableau suivant répertorie les types de propriétés et les champs de conteneur de propriétés de MXDC 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 faible JPEG

4 = Compression PNG
L"MxdcDotsPerInch » Type de données : LONG

Valeurs:

Valeur positive pour points par pouce
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 n’est pas une partie du MXDC. Le MXDC revient à 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). MxDC fait pivoter à la fois la taille de page et la zone imageable en fonction de la valeur du membre dmOrientation de la structure DEVMODE pointée par pDevMode. Ainsi, l’implémentation du fournisseur de matériel de MxdcGetPDEVAdjustment doit éviter de spécifier la zone imageable en coordonnées pivotées (orientation paysage), car cela entraîne l’impression incorrecte des travaux d’impression paysage.

La valeur par défaut du MXDC est MXDC_LANDSCAPE_ROTATE_COUNTERCLOCKWISE_270_DEGREES, qui est son comportement hérité actuel.

Toutes les rotations sont effectuées sur la zone imageable. Si un composant de configuration (UniDrv/PostScript, XPSDrv Monlithique) ne comprend pas les nouvelles valeurs du conteneur de propriétés, il doit les ignorer comme c’est le cas dans la conception actuelle.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête mxdc.h (include Mxdc.h)

Voir aussi

DrvEnablePDEV

GDIINFO

interface IPrintOemUIMXDC