Hinzufügen von Formularen zur Formulardatenbank
Wichtig
Es wird empfohlen, den IPP-Klassentreiber von Microsoft zusammen mit Print Support Apps (PSA) zu verwenden, um die Druckoberfläche in Windows 10 und 11 für die Entwicklung von Druckergeräten anzupassen.
Weitere Informationen finden Sie im Leitfaden zum Erstellen von Druckunterstützungs-Apps.
Wenn Ihr Drucker zusätzliche Formulare unterstützt, können Sie sie Ihrem 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 eine Ressourcen-DLL für die Formularanzeigenamenzeichenfolge verwenden, verwendet Ihr Treiber automatisch die neuen Lokalisierungserweiterungsfeatures, die der Windows Vista Unidrv-Druckertreiber bereitstellt. Unidrv Druckertreiber-Plug-Ins profitieren ebenfalls 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).
}
Im Unidrv-Druckertreiber, der mit Windows Vista bereitgestellt wird, wird die FORM_INFO_2-Struktur mit Daten aufgefüllt, die aus der GPD-Datei gelesen werden, wie in der folgenden Tabelle gezeigt. 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 des Windows Vista Unidrv-Druckertreibers zu verwenden.
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 | Verwendeter GPD-Wert | Feldbeschreibung |
---|---|---|
Flags | FORM_PRINTER Dieser Wert wird vom Unidrv-Druckertreiber zugewiesen, da er das Formular hinzufügt. Ein Wert aus der GPD-Datei wird für dieses Feld nicht verwendet. |
Die Eigenschaften der -Struktur. |
pName | Der lokalisierte Name des Formulars, der aus der Ressourcen-DLL oder aus dem Feld *rcName in der GPD-Datei abgerufen wurde. | Ein Zeiger auf eine NULL-endende Zeichenfolge, die den Namen des Formulars angibt. Diese Zeichenfolge wird verwendet, um das Formular in der Formulardatenbank zu identifizieren und muss eindeutig sein. |
Size | Größeninformationen, die aus der Option *PageDimensions in der GPD-Datei gelesen werden. | Die Breite und Höhe der Form in Tausendstel Millimetern. |
ImageableArea | Größeninformationen, die aus der Option *PrintableArea in der GPD-Datei gelesen werden. | Die Breite und Höhe des Seitenbereichs, auf dem der Drucker drucken kann, in Tausendstel Millimetern. |
pKeyword | Der Wert des Eintrags *Option in der GPD-Datei. | Ein Zeiger auf einen nicht lokalisierbaren Zeichenfolgenbezeichner des Formulars. Wenn er an AddForm oder SetForm übergeben wird, gibt 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 in der Ressourcen-DLL verfügbar ist, wird der wert STRING_MUIDLL zugewiesen. Wenn stattdessen die Option *rcName in der GPD-Datei verwendet wird, wird der Wert für dieses Feld STRING_NONE. Ein Wert aus der GPD-Datei wird für dieses Feld nicht 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 die Option *rcName stattdessen in der GPD-Datei verwendet wird, ist der Wert für dieses Feld NULL. | Die lokalisierte RESSOURCEN-DLL der MUI, 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. |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für