次の方法で共有


FORM_INFO_2 データ構造

Windows Vista では、印刷スプーラーと Unidrv プリンター ドライバーが強化され、多言語環境でより適切なサポート プリンター フォームが提供されます。 スプーラーは、フォーム表示名と新しいFORM_INFO_2データ構造の多言語ユーザー インターフェイス (MUI) 文字列をサポートし、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 とリソース 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 のドキュメントを参照してください。