FORM_INFO_2資料結構
Windows Vista 中的列印多工緩衝處理器和 Unidrv 印表機驅動程式已增強,在多語言環境中提供更好的印表機表單支援。 多語言使用者介面支援多語言使用者介面 (MUI) 字串表單顯示名稱和新的FORM_INFO_2資料結構,以包含支援 MUI 字串所需的其他資訊。
FORM_INFO_1資料結構的定義如下。
typedef struct _FORM_INFO_1 {
DWORD Flags;
LPTSTR pName;
SIZEL Size;
RECTL ImageableArea;
} FORM_INFO_1, *PFORM_INFO_1;
在FORM_INFO_1中,pName 成員是唯一的字串欄位,因此您可以使用它來建立內部搜尋常式用來在內部資料庫中尋找表單的索引鍵名稱,以及作為向使用者顯示的顯示名稱。
下列程式碼範例中定義的 FORM_INFO_2 結構會新增其他欄位以提供 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新增 pKeyword 成員以啟用相異關鍵字的新增,這與顯示名稱不同。
此結構也可讓您使用 pMuiDll 和 dwResourceId 成員,將資源 DLL 和資源識別碼新增至表單資料庫。 當 StringType 成員具有 STRING_MUIDLL 值,而 pMuiDll 和 dwResourceId 成員包含顯示名稱的資源 DLL 和識別碼時,多工緩衝處理器中的 AddForm 函式會在 DLL 中查閱顯示名稱,並在內部記錄它。 使用 Level 值為 2 呼叫 GetForm 或 EnumForms 函式時,FORM_INFO_2 結構中傳回的資訊將會包含 pDisplayName 參考的顯示名稱,以及 wLangID 中的對應語言識別項。
呼叫 AddForm 時,繼續使用FORM_INFO_1結構的印表機驅動程式只會儲存在表單資料庫中該結構中找到的資訊。 當呼叫傳回FORM_INFO_2結構的 GetForm 或 EnumForms 時,在FORM_INFO_1結構中找不到FORM_INFO_2結構中的成員將會是 Null 或 0。
如需新增印表機表單和使用FORM_INFO_1和FORM_INFO_2資料結構的詳細資訊,請參閱Microsoft Windows SDK檔。