Utiliser CPSUI avec des pilotes d’imprimante

Important

Nous vous recommandons d’utiliser le pilote de classe de boîte de réception IPP 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 d’appareils d’imprimante.

Pour plus d’informations, consultez le guide de conception d’application de prise en charge de l’impression.

Le spouleur d’impression, conjointement avec les DLL d’interface d’imprimante, utilise CPSUI pour créer des pages de feuille de propriétés pour imprimer des documents et des périphériques d’imprimante. Les étapes suivantes sont effectuées lorsqu’une application (telle que Microsoft Word) affiche une feuille de propriétés pour un document d’impression :

  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 du CPSUI, CommonPropertySheetUI, en spécifiant une fonction de rappel de type PFNPROPSHEETUI interne.

  3. CPSUI appelle la fonction de rappel de type 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 de l’adresse de la fonction DrvDocumentPropertySheets de la DLL d’imprimante appropriée.

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

  6. La fonction DrvDocumentPropertySheets de la DLL d’interface d’imprimante appelle la fonction ComPropSheet du CPSUI (généralement avec un code de fonction CPSFUNC_ADD_PCOMPROPSHEETUI ) pour fournir à CPSUI des descriptions de page de propriétés et des rappels d’événements de page.

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

Le schéma suivant illustre ces étapes.

diagramme illustrant les modules impliqués dans l’affichage d’une feuille de propriétés.

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

Lorsque l’utilisateur ignore la feuille de propriétés en cliquant sur le bouton Ok ou Annuler , CPSUI détruit les pages et provoque le retour de la fonction CommonPropertySheetUI au spouleur d’impression, qui retourne ensuite le contrôle à l’application.

Lorsqu’une application affiche une feuille de propriétés pour un périphérique d’imprimante 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 d’imprimante à CPSUI.