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.