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 les environnements multilingues. Le spouleur prend en charge les chaînes d’interface utilisateur multilingue (MUI) pour les noms d’affichage des formulaires 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 étant le seul champ de chaîne, vous pouvez l’utiliser pour créer le nom de clé que les routines de recherche internes utilisent pour localiser les formulaires dans la base de données interne, ainsi que le nom d’affichage affiché aux utilisateurs finaux.

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

Cette structure vous permet également d’ajouter la DLL de ressource et l’ID de ressource à la base de données forms à l’aide du membre pMuiDll et dwResourceId. Lorsque le membre StringType a la valeur 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 complet dans la DLL et l’enregistre en interne. Lorsque la fonction GetForm ou EnumForms est appelée avec une valeur Level de 2, les informations retournées dans la structure FORM_INFO_2 contiennent le nom complet que pDisplayName référence et l’ID de langue correspondant dans wLangID.

Les pilotes d’imprimante qui continuent à utiliser la structure FORM_INFO_1 lorsqu’ils appellent AddForm ne stockent que les informations qui se trouvent 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 sont 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 Microsoft Windows SDK.