Partager via


Utiliser CPSUI avec des pilotes d'imprimante

Important

La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.

Pour plus d’informations, veuillez consulter la section Plateforme d’impression moderne et le Guide de conception des applications de support d’impression.

Le spouleur d'impression, en conjonction avec les DLL d'interface d'impression, utilise CPSUI pour créer des pages de propriété pour les documents d'impression et les appareils d'impression. Les étapes suivantes se déroulent lorsqu'une application (telle que Microsoft Word) affiche une feuille de propriétés pour un document imprimé :

  1. L'application appelle la fonction DocumentProperties du spouleur d'impression, en spécifiant l'imprimante sur laquelle le document doit être imprimé.

  2. Le spouleur d'impression appelle la fonction de point d'entrée de CPSUI, CommonPropertySheetUI, en spécifiant une fonction de rappel interne de type PFNPROPSHEETUI.

  3. CPSUI appelle la fonction de rappel PFNPROPSHEETUI du spouleur.

  4. La fonction de rappel PFNPROPSHEETUI du spouleur appelle la fonction ComPropSheet de CPSUI (avec un code de fonction CPSFUNC_ADD_PFNPROPSHEETUI) pour notifier à CPSUI l'adresse de la fonction DrvDocumentPropertySheets de la DLL de l'interface d'impression appropriée.

  5. CPSUI appelle la fonction DrvDocumentPropertySheets de la DLL d'interface avec l'imprimante.

  6. La fonction DrvDocumentPropertySheets de la DLL de l'interface d'impression appelle la fonction ComPropSheet de CPSUI (généralement avec un code de fonction CPSFUNC_ADD_PCOMPROPSHEETUI) pour fournir à CPSUI des descriptions de pages de feuilles de propriété et des rappels d'événements de page.

  7. La fonction ComPropSheet de CPSUI appelle CreatePropertySheetPage (décrite dans la documentation du SDK Windows) pour créer les pages de la feuille de propriété spécifiées par la DLL d'interface de l'imprimante. Le CPSUI appelle ensuite PropertySheet pour afficher les pages de la feuille de propriété.

Le diagramme suivant illustre ces étapes.

Le diagramme suivant illustre les modules impliqués dans l'affichage d'une feuille de propriété.

Lorsque l'utilisateur de l'application parcourt les pages de la feuille de propriétés et modifie les valeurs des options, le système d'exploitation informe CPSUI des événements de page et CPSUI, à son tour, appelle la fonction de rappel d'événement de page fournie par la DLL d'interface de l'imprimante. Le rappel d'événement de page gère les événements de page et stocke les nouvelles valeurs d'option sélectionnées en interne, si nécessaire.

Lorsque l'utilisateur quitte la feuille de propriété en cliquant sur le bouton Ok ou Annuler, CPSUI détruit les pages et renvoie la fonction CommonPropertySheetUI au spouleur d'impression, qui rend alors le contrôle à l'application.

Lorsqu'une application affiche une fiche de propriétés pour un appareil d'impression au lieu d'un document d'impression, les mêmes étapes sont suivies, sauf que l'application appelle la fonction PrinterProperties du spouleur et que le spouleur transmet l'adresse de la fonction DrvDevicePropertySheets de la DLL de l'interface d'imprimante à CPSUI.