Verwendung von GetOptionAttribute
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.
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 | Ausgabeparameter |
---|---|
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.
Schlüsselwort | Attribut Option | Ausgabeparameter |
---|---|---|
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;