Aggiungere moduli al database forms

Importante

È consigliabile usare il driver di classe posta in arrivo IPP di Microsoft, insieme a Print Support Apps (PSA), per personalizzare l'esperienza di stampa in Windows 10 e 11 per lo sviluppo di dispositivi della stampante.

Per altre informazioni, vedere la guida alla progettazione dell'app di supporto per la stampa.

Se la stampante supporta moduli aggiuntivi, è possibile aggiungerli al driver della stampante Unidrv descrivendoli nel file GPD per il driver della stampante. Se si usa un ID risorsa con il campo *rcNameId e una DLL di risorse per la stringa del nome visualizzato del modulo, il driver userà automaticamente le nuove funzionalità di miglioramenti di localizzazione fornite dal driver della stampante Unidrv di Windows Vista. I plug-in del driver della stampante Unidrv traggono vantaggio anche da queste modifiche allo spooler automaticamente e non richiedono modifiche aggiuntive. Per altre informazioni su questi miglioramenti, vedere Modifiche a Printer Forms in Windows Vista.

Se non si usa una DLL di risorse per le stringhe localizzabili nel file GPD, è necessario rimuovere le stringhe localizzabili, archiviarle in una DLL di risorse e sostituire le stringhe con l'ID risorsa corrispondente nel file GPD.

L'esempio di codice seguente è un estratto di un file GPD che usa un ID risorsa per il nome visualizzato.

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

All'interno del driver della stampante Unidrv fornito con Windows Vista, la struttura FORM_INFO_2 viene popolata da dati letti dal file GPD, come illustrato nella tabella seguente. Se il file GPD per la stampante contiene già le informazioni necessarie per compilare questa struttura, non è necessario modificare nulla per usare le nuove funzionalità fornite dal driver della stampante Unidrv di 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;
campo FORM_INFO_2 Valore GPD usato Descrizione campo
Flags FORM_PRINTER

Questo valore viene assegnato dal driver della stampante Unidrv perché aggiunge il modulo. Un valore del file GPD non viene usato per questo campo.
Proprietà della struttura.
pName Nome localizzato del modulo ottenuto dalla DLL della risorsa o dal campo *rcName nel file GPD. Puntatore a una stringa con terminazione Null che specifica il nome del form. Questa stringa viene utilizzata per identificare il form nel database forms e deve essere univoca.
Dimensione Dimensioni delle informazioni lette dall'opzione *PageDimensions nel file GPD. Larghezza e altezza, in millesimi di millimetri, della forma.
ImageableArea Informazioni sulle dimensioni lette dall'opzione *PrintableArea nel file GPD. Larghezza e altezza, in millesimi di millimetri, dell'area della pagina in cui la stampante può stampare.
pKeyword Valore della voce *Option nel file GPD. Puntatore a un identificatore di stringa non localizzabile del modulo. Quando viene passato a AddForm o SetForm, questo puntatore consente al chiamante di identificare il modulo in tutte le impostazioni locali.
StringType STRING_MUIDLL

Se l'oggetto Criteri di gruppo usa l'opzione *rcNameId e il nome del modulo è disponibile nella DLL della risorsa, viene assegnato il valore STRING_MUIDLL. Se invece viene usata l'opzione *rcName nel file GPD, il valore per questo campo è STRING_NONE. Un valore del file GPD non viene usato per questo campo.
Specifica il modo in cui viene ottenuto un nome visualizzato localizzato per il modulo in fase di esecuzione.
pMuiDll Valore della voce *ResourceDLL nel file GPD se viene usata l'opzione *rcNameId. Se invece viene usata l'opzione *rcName nel file GPD, il valore per questo campo è NULL. DLL della risorsa localizzata MUI che contiene il nome visualizzato localizzato quando StringType contiene STRING_MUIDLL.
dwResourceId Valore della voce *rcNameID nel file GPD. Se invece viene usata l'opzione *rcName nel file GPD, il valore per questo campo è 0. ID risorsa, in pMuiDll, del nome visualizzato del modulo quando StringType contiene STRING_MUIDLL.
pDisplayName NULL

Questo campo non viene utilizzato.
Il nome visualizzato del modulo nella lingua in cui wLangId specifica quando StringType contiene STRING_LANGPAIR.
wLangId 0

Questo campo non viene utilizzato.
Lingua di pDisplayName quando StringType contiene STRING_LANGPAIR.