Freigeben über


Verwendung von GetOptionAttribute

Wichtig

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 im Print support app design guide.

Diese Funktion wird nur für PostScript Printer Driver (PPD) Features unterstützt. Wenn ein bestimmtes Attribut nicht verfügbar ist, gibt GetOptionAttribute E_INVALIDARG zurück.

Ausgabeparameter für allgemeine Optionsattribute

In der folgenden Tabelle nimmt der Parameter pdwDataType Werte des Aufzählungstyps EATTRIBUTE_DATATYPE an.

Allgemeines Attribut der Option Ausgabe...parameter
DisplayName pdwDataType: kADT_UNICODE

pbData: Null-terminierte Unicode-Zeichenkette für die Übersetzung des Optionsschlüsselworts

pcbNeeded: Anzahl der Bytes der Unicode-Zeichenkette, auf die pbData zeigt (einschließlich des Nullterminators)

Dieses Optionsattribut ist für jede Option verfügbar, die EnumOptions für ein PPD-Merkmal zurückgeben kann.
Aufruf pdwDataType: kADT_BINARY

pbData: Byte-Array für den InvocationValue der Option

pcbNeeded: Bytezahl der Binärdaten, auf die pbData zeigt

Dieses Optionsattribut ist für jede Option verfügbar, die EnumOptions für ein PPD-Merkmal zurückgeben kann. Wenn der InvocationValue der Option leer ist, setzt die Funktion pdwDataType wie oben, setzt pcbNeeded = 0 und gibt dann S_OK zurück.
OrderDependencyValue pdwDataType: kADT_LONG

pbData: die relative Reihenfolge, die durch das PPD-Schlüsselwort OrderDependency oder NonUIOrderDependency für diese Option festgelegt ist. Beachten Sie, dass der erste Parameter dieser Schlüsselwörter eine reelle Zahl ist, die in einen LONG konvertiert und zurückgegeben wird.

pcbNeeded: sizeof(LONG)

Dieses Optionsattribut ist nur für eine Option verfügbar, die einen OrderDependency- oder*NonUIOrderDependency-Eintrag in der PPD hat, und der Eintrag lässt optionKeyword nicht aus.
OrderDependencySection pdwDataType: kADT_ASCII

pbData: Null-terminierte ASCII-Zeichenkette mit einem der folgenden Abschnittsnamen: „ExitServer“ „Prolog“ „DocumentSetup“ „PageSetup“ „JCLSetup“ „AnySetup“

pcbNeeded: Anzahl der Bytes der ASCII-Zeichenkette, auf die pbData zeigt (einschließlich des Nullterminators)

Dieses Optionsattribut ist nur für eine Option verfügbar, die einen OrderDependency- oder NonUIOrderDependency-Eintrag in der PPD hat, und der Eintrag lässt optionKeyword nicht aus.

Ausgabeparameter für bestimmte Optionsattribute

Zusätzlich zu den oben beschriebenen allgemeinen Optionsattributen können die in den folgenden Tabellen aufgeführten Optionsattribute Einschränkungen in Bezug auf ihre Verfügbarkeit haben. Einige Attribute sind für alle Optionen eines bestimmten PPD-Merkmals verfügbar, während andere nur für bestimmte Optionen des jeweiligen PPD-Merkmals verfügbar sind. Alle derartigen Einschränkungen sind für jedes Optionsattribut aufgeführt.

Stichwort Attribut Option Ausgabe...parameter
InputSlot
RequiresPageRegion pdwDataType: kADT_BOOL

pbData: TRUE wenn der PageRegion-Aufrufcode zusammen mit dem InputSlot-Aufrufcode gesendet werden muss, andernfalls FALSE . Dies basiert auf dem Schlüsselwort RequiresPageRegion der PPD. Wird das Schlüsselwort für diese Option des Eingabeschlitzes weggelassen, wird TRUE für dieses Attribut zurückgegeben.

pcbNeeded: sizeof(BOOL)

Dieses Optionsattribut ist für jede Option des PPD-Merkmals „InputSlot“ verfügbar, mit Ausnahme der vom Treiber generierten Option „*UseFormTrayTable“.
OutputBin
OutputOrderReversed pdwDataType: kADT_BOOL

pbData: TRUE, wenn die Ausgabereihenfolge der binOption „Reverse“ ist, und FALSE, wenn die Ausgabereihenfolge „Normal“ ist. Dies basiert auf den Schlüsselwörtern DefaultOutputOrder und ageStackOrder der PPD.

pcbNeeded: sizeof(BOOL)

Dieses Optionsattribut ist für jede Option der PPD-Funktion „OutputBin“ verfügbar.
PageSize
ImageableArea pdwDataType: kADT_RECT

pbData: Ein Begrenzungsrahmen des abbildbaren Bereichs der Option PageSize, wie durch das PPD-Schlüsselwort ImageableArea festgelegt, wird in einer RECT-Struktur zurückgegeben, deren linke und untere Mitglieder die llx- und lly-Werte enthalten und deren rechte und obere Mitglieder die urx- und ury-Werte enthalten. Alle Werte sind in Mikron angegeben. Die llx- und lly-Werte der PPD werden auf die nächste ganze Zahl aufgerundet, bevor sie in Mikrometer umgerechnet werden. Die urx- und ury-Werte der PPD werden auf die nächste ganze Zahl abgerundet, bevor sie in Mikrometer umgerechnet werden.

pcbNeeded: sizeof(RECT)

Dieses Optionsattribut ist für jede Option der PPD-Funktion „PageSize“ verfügbar, außer für die Option „CustomPageSize“.
PapierDimension pdwDataType: kADT_SIZE

pbData: Die physische Abmessung der Option PageSize, wie sie durch das PPD-Schlüsselwort PaperDimension festgelegt ist, wird in einer SIZE-Struktur zurückgegeben, deren cx-Mitglied den Breitenwert und deren cy-Mitglied den Höhenwert enthält. Alle Werte sind in Mikron angegeben.

pcbNeeded: sizeof(SIZE)

Dieses Optionsattribut ist für jede Option der PPD-Funktion „PageSize“ verfügbar, außer für die Option „CustomPageSize“.
PageSize: CustomPageSize
HWMargins pdwDataType: kADT_RECT

pbData: Die vier durch das PPD-Schlüsselwort HWMargins angegebenen Werte werden in einer RECT-Struktur zurückgegeben. Alle Werte sind in Mikron angegeben.

pcbNeeded: sizeof(RECT)

Dieses Optionsattribut ist nur für die Option „CustomPageSize“ der PPD-Funktion „PageSize“ verfügbar.
MaxMediaHeight pdwDataType: kADT_DWORD

pbData: der durch das PPD-Schlüsselwort *MaxMediaHeight angegebene Wert in Mikron.

pcbNeeded: sizeof(DWORD)

Dieses Optionsattribut ist nur für die Option „CustomPageSize“ der PPD-Funktion „PageSize“ verfügbar.
MaxMediaWidth pdwDataType: kADT_DWORD

pbData: der durch das PPD-Schlüsselwort MaxMediaWidth festgelegte Wert in Mikron.

pcbNeeded: sizeof(DWORD)

Dieses Optionsattribut ist nur für die Option „CustomPageSize“ der PPD-Funktion „PageSize“ verfügbar.
ParamCustomPageSize pdwDataType: kADT_CUSTOMSIZEPARAMS

pbData: ein Array von CUSTOMPARAM_MAX Elementen, wobei jedes Element eine CUSTOMSIZEPARAM Struktur ist. Jedes Element dieses Arrays speichert die im Eintrag paramOption des PPD-Schlüsselworts ParamCustomPageSize angegebenen Werte. Bei einer anderen paramOption als „Orientation“ sind die Werte lMinVal und lMaxVal in Mikron angegeben. Für „Orientierung“ liegen die Werte lMinVal und lMaxVal im Bereich von [0, 3].

pcbNeeded: sizeof(CUSTOMSIZEPARAM) * CUSTOMPARAM_MAX

Dieses Optionsattribut ist nur für die Option „CustomPageSize“ der PPD-Funktion „PageSize“ verfügbar.

Weitere Informationen finden Sie im folgenden Hinweis zu ParamCustomPageSize.
InstallierterSpeicher
VMOption pdwDataType: kADT_DWORD

pbData: der durch das Schlüsselwort VMOption der PPD angegebene Wert oder 0, wenn die PPD das Schlüsselwort VMOption für diese Option nicht angibt.

pcbNeeded: sizeof(DWORD)

Dieses Optionsattribut ist für jede Option der PPD-Funktion „InstalledMemory“ verfügbar.
FCacheSize pdwDataType: kADT_DWORD

pbData: der durch das Schlüsselwort FCacheSize der PPD angegebene Wert oder 0, wenn die PPD das Schlüsselwort FCacheSize für diese Option nicht angibt.

pcbNeeded: sizeof(DWORD)

Dieses Optionsattribut ist für jede Option der PPD-Funktion „InstalledMemory“ verfügbar.

Hinweis zu ParamCustomPageSize

Hier ein Beispielcode, der zeigt, wie man die ursprüngliche Reihenfolge sowie die Minimal- und Maximalwerte des Eintrags „ParamCustomPageSize Width“ aus der PPD-Datei erhält. Die Konstante CUSTOMPARAM_WIDTH, die in printoem.h definiert ist, gibt den Offset der Struktur CUSTOMSIZEPARAM an, die die Informationen in Bezug auf den Eintrag Width enthält. Diese Struktur ist eine von CUSTOMPARAM_MAX CUSTOMSIZEPARAM-Strukturen, die ein Array solcher Strukturen bilden. Der Header von printoem.h definiert eine Reihe von Konstanten mit dem Namen CUSTOMPARAM_XXX, die die Offsets der Strukturen in diesem Array auflisten (Width, Height, WidthOffset, HeightOffset und Orientation).

PCUSTOMSIZEPARAM  pCSParam;

pCSParam = (PCUSTOMSIZEPARAM)pbData + CUSTOMPARAM_WIDTH;

order = pCSParam->dwOrder;
// Convert lMinVal and lMaxVal from microns to points.
//   To convert microns to inches, divide by 25400.
//   To convert inches to points, multiply by 72.
min = pCSParam->lMinVal / 25400.0 * 72.0;
max = pCSParam->lMaxVal / 25400.0 * 72.0;