Udostępnij przez


Dodawanie formularzy do bazy danych formularzy

Ważne

Nowoczesna platforma drukowania jest preferowanym sposobem komunikacji z drukarkami w systemie Windows. Zalecamy używanie sterownika klasy skrzynki odbiorczej IPP firmy Microsoft wraz z aplikacjami do obsługi drukowania (PSA), aby dostosować środowisko drukowania w systemie Windows 10 i 11 na potrzeby opracowywania urządzeń drukarki.

Aby uzyskać więcej informacji, zobacz Print Support App v1 and v2 design guide (Przewodnik projektowania aplikacji do obsługi wydruku w wersji 1 i 2).

Jeśli drukarka obsługuje dodatkowe formularze, możesz dodać je do sterownika drukarki Unidrv, opisując je w pliku GPD sterownika drukarki. Jeśli używasz identyfikatora zasobu z polem *rcNameId i biblioteką DLL zasobu dla nazwy wyświetlanej formularza, sterownik automatycznie użyje najnowszych funkcji lokalizacyjnych oferowanych przez sterownik drukarki Unidrv w systemie Windows Vista. Wtyczki sterownika drukarki Unidrv automatycznie korzystają z tych zmian w buforze i nie wymagają żadnych dodatkowych modyfikacji. Aby uzyskać więcej informacji na temat tych ulepszeń, zobacz Zmiany formularzy drukarek w systemie Windows Vista.

Jeśli nie używasz biblioteki DLL zasobów dla ciągów lokalizowalnych w pliku GPD, usuń ciągi lokalizowalne, zapisz je w biblioteki DLL zasobu i zastąp ciągi odpowiednim identyfikatorem zasobu w pliku GPD.

Poniższy przykład kodu to fragment pliku GPD, który używa identyfikatora zasobu dla nazwy wyświetlanej.

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

Wewnątrz sterownika drukarki Unidrv, który jest dostarczany z systemem Windows Vista, struktura FORM_INFO_2 jest wypełniana danymi odczytanymi z pliku GPD, jak pokazano w poniższej tabeli. Jeśli plik GPD drukarki zawiera już informacje wymagane do wypełnienia tej struktury, nie trzeba nic zmienić, aby korzystać z nowych funkcji oferowanych przez sterownik drukarki Unidrv systemu Windows Vista.

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 Użyto wartości GPD Opis pola
Flagi DRUKARKA_FORMULARZY

Ta wartość jest przypisywana przez sterownik drukarki Unidrv, ponieważ dodaje formularz. Wartość z pliku GPD nie jest używana dla tego pola.
Właściwości struktury.
pName Zlokalizowana nazwa formularza uzyskana z biblioteki dynamicznej DLL zasobu lub z pola *rcName w pliku GPD. Wskaźnik do ciągu zakończonego wartością null, który określa nazwę formularza. Ten ciąg służy do identyfikowania formularza w bazie danych formularzy i musi być unikatowy.
Rozmiar Informacje o rozmiarze odczytywane z opcji *PageDimensions w pliku GPD. Szerokość i wysokość, w tysiącach milimetrów, formy.
Obszar obrazu Informacje o rozmiarze odczytane z opcji *PrintableArea w pliku GPD. Szerokość i wysokość, w tysiącach milimetrów, obszaru strony, na której drukarka może drukować.
pKeyword Wartość wpisu *Opcja w pliku GPD. Wskaźnik do nielokalizowalnego identyfikatora ciągu formularza. Po przekazaniu do AddForm lub SetForm ten wskaźnik daje modułowi wywołującemu sposób identyfikacji formularza we wszystkich wersjach językowych.
TypCiągu STRING_MUIDLL

Jeśli GPD używa opcji *rcNameId, a nazwa formularza jest dostępna z biblioteki DLL zasobu, przypisana zostaje wartość STRING_MUIDLL. Jeśli zamiast tego w pliku GPD jest używana opcja *rcName, wartość tego pola jest STRING_NONE. Wartość z pliku GPD nie jest używana dla tego pola.
Określa sposób uzyskiwania zlokalizowanej nazwy wyświetlanej formularza w czasie wykonywania.
pMuiDll Wartość wpisu *ResourceDLL w pliku GPD, jeśli jest używana opcja *rcNameId. Jeśli zamiast tego w pliku GPD jest używana opcja *rcName, wartość tego pola ma wartość NULL. Zlokalizowana biblioteka DLL zasobu MUI zawierająca zlokalizowaną nazwę wyświetlaną, gdy parametr StringType zawiera STRING_MUIDLL.
dwResourceId Wartość wpisu *rcNameID w pliku GPD. Jeśli zamiast tego w pliku GPD jest używana opcja *rcName, wartość tego pola to 0. Identyfikator zasobu w pliku pMuiDll nazwy wyświetlanej formularza, gdy parametr StringType zawiera STRING_MUIDLL.
pDisplayName null

To pole nie jest używane.
Nazwa wyświetlana formularza w języku, który wLangId określa, kiedy StringType zawiera STRING_LANGPAIR.
wLangId 0

To pole nie jest używane.
Język parametru pDisplayName , gdy parametr StringType zawiera STRING_LANGPAIR.