Partager via


Ajouter des formulaires à la base de données forms

Important

Nous vous recommandons d’utiliser le pilote de classe de boîte de réception IPP 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 d’appareils d’imprimante.

Pour plus d’informations, consultez le guide de conception d’application de prise en charge de l’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 utilisera automatiquement les nouvelles fonctionnalités d’amélioration de localisation fournies par le pilote d’imprimante Unidrv Windows Vista. 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 plus d’informations sur ces améliorations, consultez Modifications apportées à Printer Forms 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 suivant 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).
}

À l’intérieur du pilote d’imprimante Unidrv fourni avec Windows Vista, la structure FORM_INFO_2 est remplie par les données lues à partir du fichier GPD, comme le montre le tableau suivant. Si le fichier GPD de votre imprimante contient déjà les informations nécessaires 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 Unidrv Windows Vista.

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 attribuée par le pilote d’imprimante Unidrv, car il ajoute le formulaire. Une valeur du fichier GPD n’est pas utilisée pour ce champ.
Propriétés de la structure.
pName Nom localisé du formulaire obtenu à partir de la DLL de ressource ou du champ *rcName dans le fichier GPD. Pointeur vers une chaîne terminée par null qui spécifie le nom du formulaire. Cette chaîne est utilisée pour identifier le formulaire dans la base de données forms et doit être unique.
Taille Informations de taille lues à partir de l’option *PageDimensions dans le fichier GPD. Largeur et hauteur, en millièmes de millimètres, de la forme.
ImageableArea Informations de taille lues à partir de l’option *PrintableArea dans le fichier GPD. Largeur et hauteur, en millièmes de millimètres, de la zone de la page sur laquelle l’imprimante peut imprimer.
pKeyword Valeur de l’entrée *Option dans le fichier GPD. 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 de 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 la façon dont 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. DLL de ressource localisée MUI qui contient le nom d’affichage localisé lorsque StringType contient STRING_MUIDLL.
dwResourceId 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. ID de ressource, dans pMuiDll, du nom d’affichage du formulaire lorsque StringType contient STRING_MUIDLL.
pDisplayName NULL

Ce champ n’est pas utilisé.
Nom d’affichage du formulaire dans la langue que wLangId spécifie lorsque StringType contient STRING_LANGPAIR.
wLangId 0

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