Aggiungere moduli al database forms
Importante
La piattaforma di stampa moderna è il mezzo preferito di Windows per comunicare con le stampanti. Ti consigliamo di usare il driver di classe 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 per stampanti.
Per altre informazioni, vedere Piattaforma di stampa moderna e 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 miglioramento della 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 da 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 dai 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 |
---|---|---|
Flag | FORM_PRINTER Questo valore viene assegnato dal driver della stampante Unidrv perché aggiunge il modulo. Un valore del file GPD non viene utilizzato 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 modulo nel database forms e deve essere univoco. |
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 utilizzata l'opzione *rcName nel file GPD, il valore per questo campo è STRING_NONE. Un valore del file GPD non viene utilizzato per questo campo. |
Specifica il modo in cui un nome visualizzato localizzato per il modulo viene ottenuto in fase di esecuzione. |
pMuiDll | Valore della voce *ResourceDLL nel file GPD se viene usata l'opzione *rcNameId. Se invece l'opzione *rcName viene usata 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. |
Nome visualizzato del modulo nella lingua specificata da wLangId quando StringType contiene STRING_LANGPAIR. |
wLangId | 0 Questo campo non viene utilizzato. |
Lingua di pDisplayName quando StringType contiene STRING_LANGPAIR. |