CPSUI gebruiken met printerstuurprogramma's
Belangrijk
Het moderne afdrukplatform is de voorkeursmiddel van Windows om te communiceren met printers. U wordt aangeraden de IPP-inboxclassedriver van Microsoft te gebruiken, samen met PSA (Print Support Apps), om voor de ontwikkeling van printerapparaten de afdrukervaring in Windows 10 en 11 aan te passen.
Zie de Print support app design guidevoor meer informatie.
De afdrukspooler gebruikt, in combinatie met printerinterface-DLL's, CPSUI om eigenschapspagina's te maken voor documenten en printerapparaten. De volgende stappen zijn betrokken wanneer een toepassing (zoals Microsoft Word) een eigenschappenvenster voor een afdrukdocument weergeeft:
De toepassing roept de functie DocumentProperties van de afdrukspooler aan, waarbij de printer wordt opgegeven waarop het document moet worden afgedrukt.
De afdrukspooler roept de toegangspuntfunctie van CPSUI aan, CommonPropertySheetUI, waarbij een interne callback-functie van het type PFNPROPSHEETUIwordt opgegeven.
CPSUI roept de PFNPROPSHEETUI-getypeerde callbackfunctie van de spooler aan.
De PFNPROPSHEETUI-getypte callbackfunctie van de spooler roept de CPSUI-functie ComPropSheet aan (met een CPSFUNC_ADD_PFNPROPSHEETUI functiecode) om CPSUI te informeren over het adres van de juiste DrvDocumentPropertySheets-functie in de printerinterface-DLL.
CPSUI roept de drvDocumentPropertySheets functie van de printerinterface-DLL aan.
De DrvDocumentPropertySheets functie van de printerinterface roept de functie ComPropSheet van CPSUI (meestal met een CPSFUNC_ADD_PCOMPROPSHEETUI functiecode) aan om CPSUI te voorzien van beschrijvingen van eigenschappenpagina's en callbacks van paginagebeurtenissen.
De functie ComPropSheet van CPSUI roept CreatePropertySheetPage (beschreven in de Windows SDK-documentatie) aan om de eigenschappenvensterpagina's te maken die zijn opgegeven door de DLL van de printerinterface. CPSUI roept vervolgens PropertySheet aan om de eigenschappenpagina's weer te geven.
In het volgende diagram ziet u deze stappen.
Wanneer de gebruiker van de toepassing de pagina's van het eigenschappenvenster doorloopt en optiewaarden wijzigt, meldt het besturingssysteem paginagebeurtenissen aan CPSUI, dat vervolgens de callback voor de paginagebeurtenis aanroept die wordt geleverd door de printerinterface DLL. De callback van paginagebeurtenissen verwerkt paginagebeurtenissen en slaat indien nodig zo nodig nieuw geselecteerde optiewaarden op.
Wanneer de gebruiker het eigenschappenvenster sluit door te klikken op de Ok-knop of de Annuleren-knop, vernietigt CPSUI de pagina's en zorgt ervoor dat de CommonPropertySheetUI-functie terugkeert naar de afdrukspooler, die vervolgens de besturing naar de toepassing teruggeeft.
Wanneer een toepassing een eigenschappenvenster voor een printerapparaat weergeeft in plaats van een afdrukdocument, worden dezelfde stappen gevolgd, behalve dat de toepassing de PrinterProperties van de spooler functie aanroept en de spooler het adres doorgeeft van de DLL van de printerinterface DrvDevicePropertySheets functie aan CPSUI.