Hinzufügen von Formularen zur Formulardatenbank
Wichtig
Die moderne Druckplattform ist die bevorzugte Methode von Windows für die Kommunikation mit Druckern. Wir empfehlen die Verwendung des Microsoft IPP-Treibers für die Posteingangsklasse zusammen mit Print Support Apps (PSA), um das Druckverhalten in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.
Weitere Informationen finden Sie unter Moderne Druckplattform und im Designhandbuch für die Drucksupport-App.
Wenn Ihr Drucker zusätzliche Formulare unterstützt, können Sie diese dem Unidrv-Druckertreiber hinzufügen, indem Sie sie in der GPD-Datei für den Druckertreiber beschreiben. Wenn Sie eine Ressourcen-ID mit dem Feld *rcNameId und einer Ressourcen-DLL für die Zeichenfolge des Formularanzeigenamens verwenden, verwendet Ihr Treiber automatisch die neuen Lokalisierungsverbesserungsfeatures, die der Windows Vista Unidrv-Druckertreiber bereitstellt. Unidrv-Druckertreiber-Plug-Ins profitieren auch von diesen Änderungen am Spooler automatisch und erfordern keine zusätzlichen Änderungen. Weitere Informationen zu diesen Verbesserungen finden Sie unter Änderungen an Druckerformularen in Windows Vista.
Wenn Sie keine Ressourcen-DLL für die lokalisierbaren Zeichenfolgen in der GPD-Datei verwenden, sollten Sie die lokalisierbaren Zeichenfolgen entfernen, sie in einer Ressourcen-DLL speichern und die Zeichenfolgen durch die entsprechende Ressourcen-ID in der GPD-Datei ersetzen.
Das folgende Codebeispiel ist ein Auszug aus einer GPD-Datei, die eine Ressourcen-ID für den Anzeigenamen verwendet.
*Feature: PaperSize
{
*Option: Option2
{
*rcNameID: 259
(form definition)
}
(other form definitions).
}
Innerhalb des Unidrv-Druckertreibers, der mit Windows Vista bereitgestellt wird, wird die FORM_INFO_2-Struktur durch Daten aufgefüllt, die aus der GPD-Datei gelesen werden, wie in der folgenden Tabelle dargestellt. Wenn die GPD-Datei für Ihren Drucker bereits die Informationen enthält, die zum Ausfüllen dieser Struktur erforderlich sind, müssen Sie nichts ändern, um die neuen Features zu verwenden, die der Windows Vista Unidrv-Druckertreiber bereitstellt.
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-Feld | GPD-Wert verwendet | Feldbeschreibung |
---|---|---|
Flags | FORM_PRINTER Dieser Wert wird vom Unidrv-Druckertreiber zugewiesen, da es das Formular hinzufügt. Für dieses Feld wird kein Wert aus der GPD-Datei verwendet. |
Die Eigenschaften der Struktur. |
pName | Der lokalisierte Name des Formulars, wie aus der Ressourcen-DLL oder aus dem Feld *rcName in der GPD-Datei abgerufen. | Ein Zeiger auf eine mit Null beendete Zeichenfolge, die den Namen des Formulars angibt. Diese Zeichenfolge wird verwendet, um das Formular in der Formulardatenbank zu identifizieren und muss eindeutig sein. |
Größe | Größeninformationen, die aus der Option *PageDimensions in der GPD-Datei gelesen werden. | Die Breite und Höhe des Formulars in Tausendstel Millimetern. |
ImageableArea | Größeninformationen, die aus der Option *PrintableArea in der GPD-Datei gelesen werden. | Die Breite und Höhe in Tausendstel Millimetern des Seitenbereichs, auf dem der Drucker drucken kann. |
pKeyword | Der Wert des *Option-Eintrags in der GPD-Datei. | Ein Zeiger auf einen nicht lokalisierbaren Zeichenfolgenbezeichner des Formulars. Wenn dieser Zeiger an AddForm oder SetForm übergeben wird, bietet dieser Zeiger dem Aufrufer eine Möglichkeit, das Formular in allen Gebietsschemas zu identifizieren. |
StringType | STRING_MUIDLL Wenn die GPD die Option *rcNameId verwendet und der Formularname über die Ressourcen-DLL verfügbar ist, wird der STRING_MUIDLL Wert zugewiesen. Wenn stattdessen die Option *rcName in der GPD-Datei verwendet wird, ist der Wert für dieses Feld STRING_NONE. Für dieses Feld wird kein Wert aus der GPD-Datei verwendet. |
Gibt an, wie ein lokalisierter Anzeigename für das Formular zur Laufzeit abgerufen wird. |
pMuiDll | Der Wert des *ResourceDLL-Eintrags in der GPD-Datei, wenn die Option *rcNameId verwendet wird. Wenn stattdessen die Option *rcName in der GPD-Datei verwendet wird, ist der Wert für dieses Feld NULL. | Die lokalisierte MUI-Ressourcen-DLL, die den lokalisierten Anzeigenamen enthält, wenn StringType STRING_MUIDLL enthält. |
dwResourceId | Der Wert des *rcNameID-Eintrags in der GPD-Datei. Wenn stattdessen die Option *rcName in der GPD-Datei verwendet wird, ist der Wert für dieses Feld 0. | Die Ressourcen-ID in pMuiDll des Anzeigenamens des Formulars, wenn StringType STRING_MUIDLL enthält. |
pDisplayName | NULL Dieses Feld wird nicht verwendet. |
Der Anzeigename des Formulars in der Sprache, die wLangId angibt, wenn StringType STRING_LANGPAIR enthält. |
wLangId | 0 Dieses Feld wird nicht verwendet. |
Die Sprache von pDisplayName, wenn StringType STRING_LANGPAIR enthält. |