Sdílet prostřednictvím


Přidání formulářů do databáze formulářů

Důležitý

Moderní tisková platforma je upřednostňovaná pro komunikaci s tiskárnami ve Windows. Doporučujeme použít ovladač třídy doručené pošty IPP od Microsoftu spolu s tiskovými podpůrnými aplikacemi (PSA) k přizpůsobení prostředí tisku ve Windows 10 a 11 pro vývoj zařízení tiskárny.

Další informace najdete v průvodci návrhem aplikace Podpora tisku.

Pokud tiskárna podporuje další formuláře, můžete je přidat do ovladače tiskárny Unidrv jejich popisem v souboru GPD ovladače tiskárny. Pokud použijete ID prostředku v poli *rcNameId a knihovnu DLL prostředků pro řetězec zobrazující název formuláře, ovladač automaticky použije nové lokalizační vylepšení, které poskytuje ovladač tiskárny Windows Vista Unidrv. Moduly plug-in ovladače tiskárny Unidrv také využívají tyto změny zařazování automaticky a nevyžadují žádné další úpravy. Další informace o těchto vylepšeních naleznete v tématu Změny formulářů tiskáren v systému Windows Vista.

Pokud nepoužíváte knihovnu DLL prostředků pro lokalizovatelné řetězce v souboru GPD, měli byste odebrat lokalizovatelné řetězce, uložit je do knihovny DLL prostředků a nahradit řetězce odpovídajícím ID prostředku v souboru GPD.

Následující příklad kódu je výňatek ze souboru GPD, který používá ID prostředku pro zobrazovaný název.

*Feature: PaperSize
{
    *Option: Option2
    {
 *rcNameID: 259
        (form definition)
    }
    (other form definitions).
}

Uvnitř ovladače tiskárny Unidrv, který je součástí systému Windows Vista, je FORM_INFO_2 struktura naplněna daty načtenými ze souboru GPD, jak ukazuje následující tabulka. Pokud soubor GPD pro vaši tiskárnu již obsahuje informace potřebné k vyplnění této struktury, nemusíte nic měnit, aby používal nové funkce, které poskytuje ovladač tiskárny Windows Vista Unidrv.

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;
pole "FORM_INFO_2" Použitá hodnota GPD Popis pole
Vlajky TISKÁRNA_FORMULÁŘŮ

Tato hodnota je přiřazena ovladačem tiskárny Unidrv, protože přidává formulář. Pro toto pole se nepoužívá hodnota ze souboru GPD.
Vlastnosti struktury.
pName Lokalizovaný název formuláře získaný z DLL prostředků nebo z pole *rcName v souboru GPD. Ukazatel na řetězec ukončený hodnotou null, který určuje název formuláře. Tento řetězec slouží k identifikaci formuláře v databázi formulářů a musí být jedinečný.
Velikost Informace o velikosti přečtené z nastavení *PageDimensions v souboru GPD. Šířka a výška ve tvaru v tisících milimetrů.
ImageableArea Informace o velikosti přečtené z možnosti *PrintableArea v souboru GPD. Šířka a výška v tisících milimetrů v oblasti stránky, na které může tiskárna tisknout.
pKeyword Hodnota položky *Option v souboru GPD. Ukazatel na nelokalizovatelný identifikátor řetězce formuláře. Při předání do AddForm nebo SetForm tento ukazatel umožňuje volajícím identifikovat formulář ve všech místních nastaveních.
Typ řetězce STRING_MUIDLL

Pokud GPD používá volbu *rcNameId a název formuláře je dostupný z DLL knihovny zdrojů, je přiřazena hodnota STRING_MUIDLL. Pokud se místo toho v souboru GPD používá možnost *rcName, hodnota tohoto pole je STRING_NONE. Pro toto pole se nepoužívá hodnota ze souboru GPD.
Určuje, jak se za běhu získá lokalizovaný zobrazovaný název formuláře.
pMuiDll Hodnota položky *ResourceDLL v souboru GPD, pokud se používá možnost *rcNameId. Pokud se místo toho v souboru GPD používá možnost *rcName, hodnota tohoto pole je null. Knihovna DLL lokalizovaných prostředků MUI, která obsahuje lokalizovaný zobrazovaný název, pokud StringType obsahuje STRING_MUIDLL.
dwResourceId Hodnota položky *rcNameID v souboru GPD. Pokud se místo toho v souboru GPD používá možnost *rcName, hodnota tohoto pole je 0. ID prostředku v pMuiDllzobrazovaného názvu formuláře, pokud StringType obsahuje STRING_MUIDLL.
pDisplayName null

Toto pole se nepoužívá.
Zobrazovaný název formuláře v jazyce, který wLangId určuje, když StringType obsahuje STRING_LANGPAIR.
wLangId 0

Toto pole se nepoužívá.
Když StringType obsahuje STRING_LANGPAIR, jazyk pDisplayName.