Partager via


Structure de données FORM_INFO_2

Le spouleur d’impression et le pilote d’imprimante Unidrv sont améliorés dans Windows Vista pour fournir une meilleure prise en charge des formulaires d’imprimante dans des environnements multilingues. Le spouleur prend en charge les chaînes MUI (Multi language User Interface) pour les noms d’affichage du formulaire et la nouvelle structure de données FORM_INFO_2 pour inclure les informations supplémentaires dont vous avez besoin pour prendre en charge les chaînes MUI.

La structure de données FORM_INFO_1 est définie comme suit.

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

Dans FORM_INFO_1, le membre pName est le seul champ de chaîne. Vous pouvez donc l’utiliser pour créer le nom de clé que les routines de recherche internes utilisent pour localiser des formulaires dans la base de données interne et également comme nom d’affichage affiché aux utilisateurs finaux.

La structure FORM_INFO_2, définie dans l’exemple de code suivant, ajoute des champs supplémentaires pour fournir la prise en charge 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 ajoute le membre pKeyword pour activer l’ajout d’un mot clé distinct, qui peut être différent du nom d’affichage.

Cette structure vous permet également d’ajouter la DLL de ressource et l’ID de ressource à la base de données de formulaires à l’aide du membre pMuiDll et dwResourceId. Lorsque le membre StringType a la valeur de STRING_MUIDLL et que les membres pMuiDll et dwResourceId contiennent la DLL de ressource et l’identificateur du nom d’affichage, la fonction AddForm dans le spouleur recherche le nom d’affichage dans la DLL et l’enregistre en interne. Lorsque la fonction GetForm ou EnumForms est appelée avec une valeur de niveau 2, les informations retournées dans la structure FORM_INFO_2 contiennent le nom complet référencé par pDisplayName et l’ID de langue correspondant dans wLangID.

Les pilotes d’imprimante qui continuent d’utiliser la structure FORM_INFO_1 lorsqu’ils appellent AddForm stockent uniquement les informations trouvées dans cette structure dans la base de données de formulaires. Les membres de la structure FORM_INFO_2 qui ne se trouvent pas dans la structure FORM_INFO_1 seront NULL ou 0 lorsqu’ils sont interrogés par un appel à GetForm ou EnumForms qui retourne une structure FORM_INFO_2.

Pour plus d’informations sur l’ajout de formulaires d’imprimante et sur l’utilisation des structures de données FORM_INFO_1 et FORM_INFO_2, consultez la documentation du Kit de développement logiciel (SDK) Microsoft Windows.