Lägga till formulär i formulärdatabasen
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.
Om skrivaren stöder ytterligare formulär kan du lägga till dem i unidrv-skrivardrivrutinen genom att beskriva dem i GPD-filen för skrivardrivrutinen. Om du använder ett resurs-ID med fältet *rcNameId och en resurs-DLL för formulärvisningsnamnsträngen använder drivrutinen automatiskt de nya lokaliseringsförbättringsfunktionerna som windows Vista Unidrv-skrivardrivrutinen tillhandahåller. Unidrv-skrivardrivrutinstillägg drar också automatiskt nytta av dessa ändringar i spoolern och kräver inga ytterligare ändringar. Mer information om dessa förbättringar finns i Ändringar i skrivarformulär i Windows Vista.
Om du inte använder en resurs-DLL för de lokala strängarna i GPD-filen bör du ta bort de lokala strängarna, lagra dem i en resurs-DLL och ersätta strängarna med motsvarande resurs-ID i GPD-filen.
Följande kodexempel är ett utdrag från en GPD-fil som använder ett resurs-ID för visningsnamnet.
*Feature: PaperSize
{
*Option: Option2
{
*rcNameID: 259
(form definition)
}
(other form definitions).
}
Inuti Unidrv-skrivardrivrutinen som medföljer Windows Vista fylls strukturen FORM_INFO_2 med data som läses från GPD-filen, som följande tabell visar. Om GPD-filen för skrivaren redan innehåller den information som krävs för att fylla i den här strukturen behöver du inte ändra något för att använda de nya funktionerna som windows Vista Unidrv-skrivardrivrutinen tillhandahåller.
typedef struct _FORM_INFO_2 {
DWORD Flags;
LPTSTR pName;
SIZEL Size;
RECTL ImageableArea;
LPCSTR pKeyword;
DWORD StringType;
LPCTSTR pMuiDll;
DWORD dwResourceId;
LPCTSTR pDisplayName;
LANGID wLangId;
} FORM_INFO_2, *PFORM_INFO_2;
FORM_INFO_2 fält | GPD-värde som används | Fältbeskrivning |
---|---|---|
Flaggor | FORM-SKRIVARE Det här värdet tilldelas av Unidrv-skrivardrivrutinen eftersom det lägger till formuläret. Ett värde från GPD-filen används inte för det här fältet. |
Egenskaperna för strukturen. |
pName | Det lokaliserade namnet på formuläret som hämtats från resurs-DLL eller från fältet *rcName i GPD-filen. | En pekare till en null-avslutad sträng som anger namnet på formuläret. Den här strängen används för att identifiera formuläret i formulärdatabasen och måste vara unik. |
Storlek | Storleksinformation som läss från alternativet *PageDimensions i GPD-filen. | Bredden och höjden, i tusendelar av millimeter, av formen. |
Bildbar yta | Storleksinformationen som läses från *PrintableArea-alternativet i GPD-filen. | Bredden och höjden, i tusendelar av millimeter, på det område på sidan där skrivaren kan skriva ut. |
pKeyword | Värdet för posten *Alternativ i GPD-filen. | En pekare till en icke-lokaliserbar strängidentifierare av formen. När den skickas till AddForm eller SetForm ger den här pekaren anroparen ett sätt att identifiera formuläret i alla nationella inställningar. |
Strängtyp | STRING_MUIDLL Om GPD använder alternativet *rcNameId och formulärnamnet är tillgängligt från resurs-DLL:n tilldelas värdet STRING_MUIDLL. Om alternativet *rcName används i GPD-filen istället, är värdet för det här fältet STRING_NONE. Ett värde från GPD-filen används inte för det här fältet. |
Anger hur ett lokaliserat visningsnamn för formuläret hämtas vid drift. |
pMuiDll | Värdet för posten *ResourceDLL i GPD-filen om alternativet *rcNameId används. Om alternativet *rcName används i GPD-filen i stället är värdet för det här fältet NULL-. | Den lokaliserade MUI-resurs-DLL som innehåller det lokaliserade visningsnamnet när StringType innehåller STRING_MUIDLL. |
dwResourceId | Värdet för posten *rcNameID i GPD-filen. Om alternativet *rcName används i GPD-filen i stället är värdet för det här fältet 0. | Resurs-ID:t i pMuiDlli formulärets visningsnamn när StringType- innehåller STRING_MUIDLL. |
pDisplayName |
NULL Det här fältet används inte. |
Formulärets visningsnamn på det språk som wLangId anger när StringType innehåller STRING_LANGPAIR. |
wLangId | 0 Det här fältet används inte. |
Språket i pDisplayName när StringType innehåller STRING_LANGPAIR. |