次の方法で共有


FORM_INFO_2 データ構造

Windows Vista では、印刷スプーラと Unidrv プリンター ドライバーが強化され、多言語環境でのプリンター フォームのサポートが向上しました。 スプーラーは、フォーム表示名の多言語ユーザー インターフェイス (MUI) 文字列と、MUI 文字列をサポートするために必要な追加情報を含む新しい FORM_INFO_2 データ構造をサポートします。

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 とリソース ID をフォーム データベースに追加することもできます。 StringType メンバーに STRING_MUIDLL の値があり、pMuiDll メンバーと dwResourceId メンバーに表示名のリソース DLL と識別子が含まれている場合、スプーラーの AddForm 関数は DLL 内の表示名を検索し、内部的に記録します。 GetForm 関数または EnumForms 関数が Level 値 2 で呼び出された場合、FORM_INFO_2 構造体に返される情報には、pDisplayName が参照する表示名と、wLangID 内の対応する言語 ID が含まれます。

AddForm を呼び出すときに FORM_INFO_1 構造体を使用し続けるプリンター ドライバーは、その構造体で見つかった情報のみをフォーム データベースに保存します。 FORM_INFO_1構造体に見つからないFORM_INFO_2構造体のメンバーは、FORM_INFO_2構造体を返す GetForm または EnumForms の呼び出しによってクエリを実行すると、NULL または 0 になります。

プリンター フォームの追加と、FORM_INFO_1 および FORM_INFO_2 データ構造の使用の詳細については、Microsoft Windows SDK のドキュメントを参照してください。