Partager via


Ajouter des formulaires à la base de données des formulaires

Important

La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.

Pour plus d’informations, veuillez consulter les articles Plateforme d’impression moderne et Guide de conception des applications de support d’impression.

Si votre imprimante prend en charge des formulaires supplémentaires, vous pouvez les ajouter à votre pilote d’imprimante Unidrv en les décrivant dans le fichier GPD du pilote d’imprimante. Si vous utilisez un ID de ressource avec le champ *rcNameId et une DLL de ressource pour la chaîne de nom d’affichage du formulaire, votre pilote utilise automatiquement les nouvelles fonctionnalités de localisation fournies par le pilote d’imprimante Windows Vista Unidrv. Les plug-ins de pilote d’imprimante Unidrv bénéficient également automatiquement de ces modifications apportées au spouleur et ne nécessitent aucune modification supplémentaire. Pour en savoir plus sur ces améliorations, consultez l’article Changements apportés aux formulaires d’impression dans Windows Vista.

Si vous n’utilisez pas de DLL de ressource pour les chaînes localisables dans le fichier GPD, vous devez supprimer les chaînes localisables, les stocker dans une DLL de ressource et remplacer les chaînes par l’ID de ressource correspondant dans le fichier GPD.

L’exemple de code ci-après est un extrait d’un fichier GPD qui utilise un ID de ressource pour le nom d’affichage.

*Feature: PaperSize
{
    *Option: Option2
    {
 *rcNameID: 259
        (form definition)
    }
    (other form definitions).
}

Dans le pilote d’imprimante Unidrv fourni avec Windows Vista, la structure FORM_INFO_2 est remplie avec les données lues à partir du fichier GPD, comme l’illustre le tableau suivant. Si le fichier GPD de votre imprimante contient déjà les informations requises pour remplir cette structure, vous n’avez pas besoin de modifier quoi que ce soit pour utiliser les nouvelles fonctionnalités fournies par le pilote d’imprimante Windows Vista Unidrv.

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;
Champ FORM_INFO_2 Valeur GPD utilisée Description du champ
Indicateurs FORM_PRINTER

Cette valeur est affectée par le pilote d’imprimante Unidrv puisqu’elle ajoute le formulaire. Une valeur du fichier GPD n’est pas utilisée pour ce champ.
Les propriétés de la structure.
pName Le nom localisé du formulaire obtenu à partir de la DLL de ressource ou du champ *rcName dans le fichier GPD. Un pointeur vers une chaîne terminée par un null qui spécifie le nom du formulaire. Cette chaîne est utilisée pour identifier le formulaire dans la base de données de formulaires et doit être unique.
Taille Informations de format lues à partir de l’option *PageDimensions dans le fichier GPD. La largeur et la hauteur, en millièmes de millimètres, du formulaire.
ImageableArea Informations de format lues à partir de l’option *PrintableArea dans le fichier GPD. La largeur et la hauteur, en millièmes de millimètres, de la zone de la page sur laquelle l’imprimante peut imprimer.
pKeyword La valeur de l’entrée *Option dans le fichier GPD. Un pointeur vers un identificateur de chaîne non localisable du formulaire. Lorsqu’il est passé à AddForm ou SetForm, ce pointeur permet à l’appelant d’identifier le formulaire dans tous les paramètres régionaux.
StringType STRING_MUIDLL

Si le GPD utilise l’option *rcNameId et que le nom du formulaire est disponible à partir de la DLL de ressource, la valeur STRING_MUIDLL est affectée. Si l’option *rcName est utilisée dans le fichier GPD à la place, la valeur de ce champ est STRING_NONE. Une valeur du fichier GPD n’est pas utilisée pour ce champ.
Spécifie comment un nom d’affichage localisé pour le formulaire est obtenu au moment de l’exécution.
pMuiDll Valeur de l’entrée *ResourceDLL dans le fichier GPD si l’option *rcNameId est utilisée. Si l’option *rcName est utilisée dans le fichier GPD à la place, la valeur de ce champ est NULL. La DLL de ressource localisée MUI qui contient le nom d’affichage localisé lorsque StringType contient STRING_MUIDLL.
dwResourceId La valeur de l’entrée *rcNameID dans le fichier GPD. Si l’option *rcName est utilisée dans le fichier GPD à la place, la valeur de ce champ est 0. L’ID de ressource, dans pMuiDll, du nom d’affichage du formulaire lorsque StringType contient STRING_MUIDLL.
pDisplayName NULL

Ce champ n’est pas utilisé.
Le nom d’affichage du formulaire dans la langue spécifiée par wLangId lorsque StringType contient STRING_LANGPAIR.
wLangId 0

Ce champ n’est pas utilisé.
Le langage de pDisplayName lorsque StringType contient STRING_LANGPAIR.