Partager via


MXDC_ESCAPE fonction

La fonction d’échappement d’imprimante MXDC_ESCAPE permet aux applications d’écrire des documents dans un fichier ou dans une imprimante au format XML Paper Specification (XPS) au moyen de Microsoft XPS Document Converter (MXDC).

Pour effectuer cette opération, appelez la fonction ExtEscape avec les paramètres suivants.

Syntaxe

int MXDC_ESCAPE(
    hdc,
    cbInput,
    lpszInData,
    cbOutput,
    lpszOutData
);

Paramètres

Hdc

Handle pour le contexte du périphérique d’imprimante.

cbInput

Taille, en octets, des données pointées par le paramètre lpszInData .

lpszInData

Pointeur vers une mémoire tampon contenant les données d’entrée, qui sont toujours stockées dans l’une des structures suivantes.

**MxdcEscapeHeader**
**MxdcPrintTicketEscape**
**MxdcS0PagePassthroughEscape**
**MxdcS0PageResourceEscape**

Chacune de ces structures a un membre opcode qui spécifie ce que le MXDC est censé faire. Pour obtenir des remarques détaillées sur ces codes, consultez MxdcEscapeHeader.

Code d’opération (opcode) Action
MXDCOP_GET_FILENAME
Définit le paramètre lpszOutData de la fonction ExtEscape sur, soit le chemin d’accès complet du fichier de sortie sous la forme d’une chaîne terminée à zéro, soit la taille de cette chaîne.
MXDCOP_PRINTTICKET_FIXED_DOC_SEQ
Associe un ticket d’impression à une séquence de documents fixe XPS.
MXDCOP_PRINTTICKET_FIXED_DOC
Associe un ticket d’impression à un document XPS.
MXDCOP_PRINTTICKET_FIXED_PAGE
Associe un ticket d’impression à une page XPS.
MXDCOP_SET_S0PAGE
Envoie le balisage XPS de la page active à la sortie.
MXDCOP_SET_S0PAGE_RESOURCE
Envoie une ressource sur la page, telle qu’une image ou une police, à la sortie.
MXDCOP_SET_XPSPASSTHRU_MODE
Place le MXDC dans un état pass through, ce qui permet à une application d’écrire XPS directement dans le fichier de sortie sans aucun traitement par le MXDC. Un document entier ou même une séquence de documents peut être écrit de cette façon.

cbOutput

Taille, en octets, des données pointées par le paramètre lpszOutData .

lpszOutData

Pointeur vers une mémoire tampon contenant les données de sortie.

Valeur retournée

Si la fonction réussit, la valeur de retour est supérieure à zéro. Si la fonction échoue ou n’est pas prise en charge, la valeur de retour est inférieure ou égale à zéro.

Notes

Cette sortie d’échappement est prise en charge par MXDC et XPSDrv, mais pas par GDI.

Pour déterminer si le pilote d’imprimante est le MXDC, appelez ExtEscape avec l’échappement GETTECHNOLOGY . Si le pilote est le MXDC, ExtEscape retourne la chaîne à terminaison zéro, «http://schemas.microsoft.com/xps/2005/06" ;. Assurez-vous que la mémoire tampon référencée par le paramètre lpszOutData est suffisamment grande pour contenir cette chaîne.

Pour déterminer si le pilote d’imprimante est le pilote Enregistreur de documents Microsoft XPS intégré à Windows, vérifiez que le pilote d’imprimante est le MXDC, puis déterminez si le nom du pilote d’imprimante est « Microsoft XPS Document Writer ».

Pour obtenir le nom du pilote d’imprimante, utilisez l’une des techniques suivantes.

Appelez GetPrinterDriver avec la valeur du paramètre Level définie sur 1. Le nom du pilote d’imprimante est retourné dans le membre pName de la structure DRIVER_INFO_1 .
or
Appelez GetPrinter avec la valeur du paramètre Level définie sur 2. Le nom du pilote d’imprimante est retourné dans le membre pDriverName de la structure PRINTER_INFO_2 .

Le tableau suivant indique où trouver différents objets dans le fichier XPS différents types d’objets seront écrits.

Object Emplacement dans le fichier de sortie
Page corrigée /Documents/1/Pages/Esc%d.fpage
Thumbnail /Documents/1/Metadata
Imprimer le ticket /Documents/1/Metadata
Police /Documents/1/Resources/Fonts
Image /Documents/1/Resources/Images

Configuration requise

Condition requise Valeur
Client minimal pris en charge
Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2008 [applications de bureau uniquement]
En-tête
Mxdc.h

Voir aussi

Impression

Fonctions d’échappement d’imprimante

ExtEscape