Verweisen auf Gebietsschemas

Wichtig

Es wird empfohlen, den IPP-Posteingangsklassentreiber von Microsoft zusammen mit Druckunterstützungs-Apps (PSA) zu verwenden, um die Druckoberfläche in Windows 10 und 11 für die Druckergeräteentwicklung anzupassen.

Weitere Informationen finden Sie im Designhandbuch für Druckunterstützungs-Apps.

Verwenden von GPD-Dateien

GPD-Dateien können auf das Gebietsschema eines Systems verweisen. In der Regel werden Gebietsschemabezeichner in *Switch-Anweisungen verwendet, wobei Parameter wie Standardpapiergrößen und Ressourcen-DLLs in einer gebietsschemaspezifischen Weise angegeben werden können.

Um auf Gebietsschemainformationen zu verweisen, muss die GPD-Datei eine *Include-Anweisung enthalten, die die Datei locale.gpd enthält, die mit dem Windows Driver Kit (WDK) wie folgt enthalten ist:

*Include: locale.gpd

Diese GPD-Datei definiert ein Feature mit dem Namen "Gebietsschema" und definiert Optionen für viele Gebietsschemas. (Lesen Sie die Datei, um zu sehen, welche Gebietsschemas definiert sind.) Es folgt ein Beispiel für die Verwendung dieser Gebietsschemaoptionen. Das Beispiel basiert auf dem Standardpapierformat auf dem Gebietsschema.

*Feature: PaperSize
{
...
    Option: A4
    {
    }
    ...
*switch: Locale
{
    *case: English_United_States
    {
        *DefaultOption: Letter
    }
    *case: English_United_Kingdom
    {
        *DefaultOption: A4
    }
    *default:
    {
        *DefaultOption: Letter
    }
} *% End of switch
} *% End of Feature: PaperSize

Zur Laufzeit bestimmt Unidrv das Standardgebietsschema des Systems, indem GetSystemDefaultLCID aufgerufen wird. Wenn ein Drucker installiert ist, liest der GPD-Parser die GPD-Datei des Druckers und verwendet Informationen in der *Case-Anweisung, die dem Standardgebietsschema zugeordnet ist. Beachten Sie, dass gebietsschemabasierte Optionen nicht geändert werden, wenn das Gebietsschema des Systems nach der Installation des Druckers geändert wird.

Hier sehen Sie ein weiteres Beispiel, das eine Ressourcen-DLL basierend auf dem Gebietsschema auswählt. Die Ressourcen-DLL kann gebietsschemaspezifische Ressourcen enthalten, z. B. Anzeigezeichenfolgen.

*switch: Locale
{
    *case: English_United_States
    {
        *ResourceDLL: english.dll
    }
    *case: German_Standard
    {
        *ResourceDLL: german.dll
    }
    *default:
    {
        *ResourceDLL: english.dll
    }
}

Festlegen des Standardpapierformats nach Gebietsschema

Möglicherweise möchten Sie vom Treiber das Standardpapierformat zuweisen, entweder Metrik oder Nichtmetrik, basierend auf dem geografischen Standort des Benutzers.

Der folgende Algorithmus ruft das Standardgebietsschema des Systems ab und verwendet dann Länder-/Regionscodes, um zu bestimmen, ob das Systemgebietsschema ein Land darstellt, das in der Regel Metrik- oder Nicht-Metrikpapiergrößen verwendet. Mit diesen Informationen kann Ihr Treiber das Standardpapierformat entsprechend festlegen, z. B. A4 für Länder, die das Metriksystem verwenden, und letter size for countries that not't.

  1. Verwenden Sie die GetLocaleInfo-Funktion , um das Standardsystemgebietsschema abzurufen. Verwenden Sie LOCALE_SYSTEM_DEFAULT für den ersten Parameter, gebietsschema und LOCALE_ICOUNTRY für den zweiten Parameter LCType.

  2. Verwenden Sie das Standardgebietsschema des Systems, das von GetLocaleInfo abgerufen wurde, um die Metrik- oder Nicht-Metrikpapiergröße zu bestimmen.

    • Nicht-Metrik, wenn das Standardsystemgebietsschema folgendes ist:

      • CTRY_UNITED_STATES oder

      • CTRY_CANADA oder

      • Größer als oder gleich 50, aber kleiner als 60 und nicht CTRY_BRAZIL, oder

      • Größer als oder gleich 500, aber kleiner als 600

    • Metrik andernfalls.