Freigeben über


Verweisen auf Gebietsschemata

Wichtig

Die Modern Print-Plattform ist die von Windows bevorzugte Methode zur 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 Modern Print-Plattform und der Anleitung zum Design der Print-Support-App.

Verwenden von GPD-Dateien

GPD-Dateien können auf das Gebietsschema eines Systems verweisen. In der Regel werden Gebietsschema-IDs in *Switch-Anweisungen verwendet, bei denen Parameter wie Standardpapierformate und Ressourcen-DLLs auf eine gebietsschemaspezifische 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 im Windows Driver Kit (WDK) enthalten ist:

*Include: locale.gpd

Diese GPD-Datei definiert ein Feature namens "Gebietsschema" und definiert Optionen für viele Gebietsschemas. (Lesen Sie die Datei, um zu sehen, welche Gebietsschemas definiert sind.) Nachfolgend sehen Sie 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 durch Aufrufen von GetSystemDefaultLCID. 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, wenn das Gebietsschema des Systems nach der Installation des Druckers geändert wird, gebietsschemabasierte Optionen nicht geändert werden.

Hier ist 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 dem Treiber basierend auf dem geografischen Standort des Benutzers das Standardpapierformat zuweisen, entweder metrisch oder nicht metrisch.

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 normalerweise metrische oder nicht metrische Papierformate verwendet. Mit diesen Informationen kann Ihr Treiber das Standardpapierformat entsprechend festlegen, z. B. A4 für Länder, die das Metriksystem und die Briefgröße für Länder verwenden, die nicht.

  1. Verwenden Sie die GetLocaleInfo-Funktion, um das Standardgebietsschema des Systems abzurufen. Verwenden Sie LOCALE_SYSTEM_DEFAULT für den ersten Parameter Locale und LOCALE_ICOUNTRY für den zweiten Parameter LCType.

  2. Verwenden Sie das Standardsystemgebietsschema, das von GetLocaleInfo abgerufen wird, um metrisches oder nicht-metrisches Papierformat zu bestimmen.

    • Nicht metrisch, wenn das Standardgebietsschema des Systems lautet:

      • CTRY_UNITED_STATES, oder

      • CTRY_CANADA oder

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

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

    • Metrik andernfalls.