Använda CPSUI med skrivardrivrutiner
Viktig
Den moderna utskriftsplattformen är Windows bästa sätt att kommunicera med skrivare. Vi rekommenderar att du använder Microsofts IPP-drivrutin för inkorgsklass tillsammans med Print Support Apps (PSA) för att anpassa utskriftsupplevelsen i Windows 10 och 11 för enhetsutveckling av skrivare.
Mer information finns i designguiden för Print-supportappen.
Utskriftsbufferten, tillsammans med skrivargränssnitts-DLL:er, använder CPSUI för att skapa egenskapssidor för utskriftsdokument och skrivarenheter. Följande steg gäller när ett program (till exempel Microsoft Word) visar ett egenskapsblad för ett utskriftsdokument:
Programmet anropar utskriftshanterarens DocumentProperties funktion och anger den skrivare som dokumentet ska skrivas ut på.
Utskriftshanteraren anropar CPSUI:s startpunktsfunktion CommonPropertySheetUIoch anger en intern PFNPROPSHEETUI-typed callback-funktion.
CPSUI anropar spolarens PFNPROPSHEETUI-typade återkallelsefunktion.
Spoolerns PFNPROPSHEETUI-typade återanropsfunktion anropar CPSUI:s ComPropSheet-funktion (med en CPSFUNC_ADD_PFNPROPSHEETUI funktionskod) för att meddela CPSUI om adressen till lämplig DLL-DrvDocumentPropertySheets funktion.
CPSUI anropar skrivargränssnittets DLL:s funktion DrvDocumentPropertySheets.
DLL:er för skrivargränssnittet DrvDocumentPropertySheets-funktionen anropar funktionen ComPropSheet i CPSUI (vanligtvis med en CPSFUNC_ADD_PCOMPROPSHEETUI-funktionskod) för att ge CPSUI sidbeskrivningar för egenskapsblad och sidhändelseåteranrop.
CPSUI:s ComPropSheet--funktion anropar CreatePropertySheetPage- (beskrivs i Windows SDK-dokumentationen) för att skapa de egenskapsbladsidor som anges av skrivargränssnittets DLL. CPSUI anropar sedan PropertySheet för att visa egenskapsbladssidorna.
Följande diagram illustrerar de här stegen.
När programanvändaren navigerar genom egenskapssidorna och ändrar inställningsvärdena meddelar operativsystemet CPSUI om händelser på sidorna och CPSUI anropar i sin tur den sidåteranropsfunktion som tillhandahålls av skrivarens gränssnitts-DLL. Återanropet till sidhändelsen hanterar sidhändelser och lagrar nyligen valda alternativvärden internt efter behov.
När användaren stänger egenskapsbladet genom att klicka på Ok eller Avbryt-knappen förstör CPSUI sidorna och orsakar att funktionen CommonPropertySheetUI returnerar till utskriftshanteraren, vilket gör att kontrollen återgår till programmet.
När ett program visar ett egenskapsblad för en skrivarenhet i stället för ett utskriftsdokument följs samma steg, förutom att programmet anropar spoolerns PrinterProperties funktion och spooler skickar adressen till skrivargränssnittets DLL-DrvDevicePropertySheets funktion till CPSUI.