Udostępnij przez


struktura danych FORM_INFO_2

Bufor wydruku i sterownik drukarki Unidrv są ulepszone w systemie Windows Vista, aby zapewnić lepszą obsługę formularzy drukarek w środowiskach wielojęzycznych. Bufor obsługuje ciągi wielojęzycznego interfejsu użytkownika (MUI) dla nazw wyświetlanych formularzy oraz nową strukturę danych FORM_INFO_2, aby uwzględnić dodatkowe informacje potrzebne do obsługi ciągów MUI.

Struktura danych FORM_INFO_1 jest zdefiniowana w następujący sposób.

typedef struct _FORM_INFO_1 { 
  DWORD  Flags; 
  LPTSTR  pName; 
  SIZEL   Size; 
  RECTL   ImageableArea; 
} FORM_INFO_1, *PFORM_INFO_1;

W FORM_INFO_1 element członkowski pName jest jedynym polem ciągu, więc można go użyć do utworzenia nazwy klucza używanej przez wewnętrzne procedury wyszukiwania do lokalizowania formularzy w wewnętrznej bazie danych, a także jako nazwy wyświetlanej użytkownikom końcowym.

Struktura FORM_INFO_2 zdefiniowana w poniższym przykładzie kodu dodaje dodatkowe pola w celu zapewnienia obsługi interfejsu MUI.

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 dodaje element członkowski pKeyword w celu włączenia dodawania odrębnego słowa kluczowego, który może różnić się od nazwy wyświetlanej.

Ta struktura umożliwia również dodawanie biblioteki DLL zasobu i identyfikatora zasobu do bazy danych formularzy przy użyciu elementu członkowskiego pMuiDll i dwResourceId. Gdy element członkowski StringType ma wartość STRING_MUIDLL, a elementy członkowskie pMuiDll i dwResourceId zawierają bibliotekę DLL zasobu i identyfikator nazwy wyświetlanej, funkcja AddForm w buforze wyszukuje nazwę wyświetlaną w bibliotece DLL i rejestruje ją wewnętrznie. Gdy funkcja GetForm lub EnumForms jest wywoływana z wartością poziomu 2, informacje zwrócone w strukturze FORM_INFO_2 będą zawierać nazwę wyświetlaną, do którego odwołuje się pDisplayName, oraz odpowiadający mu identyfikator języka wlangID.

Sterowniki drukarek, które nadal używają struktury FORM_INFO_1 podczas wywoływania metody AddForm, będą przechowywać tylko informacje znalezione w tej strukturze w bazie danych formularzy. Elementy członkowskie w strukturze FORM_INFO_2, które nie znajdują się w strukturze FORM_INFO_1, będą wartości NULL lub 0 podczas wykonywania zapytań przez wywołanie metody GetForm lub EnumForms zwracającej strukturę FORM_INFO_2.

Aby uzyskać więcej informacji na temat dodawania formularzy drukarek i używania struktur danych FORM_INFO_1 i FORM_INFO_2, zobacz dokumentację zestawu Microsoft Windows SDK.