Dela via


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.