Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Nowoczesna platforma drukowania jest preferowanym sposobem komunikacji z drukarkami w systemie Windows. Zalecamy używanie sterownika klasy skrzynki odbiorczej IPP firmy Microsoft wraz z aplikacjami do obsługi drukowania (PSA), aby dostosować środowisko drukowania w systemie Windows 10 i 11 na potrzeby opracowywania urządzeń drukarki.
Aby uzyskać więcej informacji, zobacz Print Support App v1 and v2 design guide (Przewodnik projektowania aplikacji do obsługi wydruku w wersji 1 i 2).
Ta funkcja jest obsługiwana tylko w przypadku funkcji sterownika drukarki PostScript (PPD). Jeśli określony atrybut jest niedostępny, funkcja GetOptionAttribute zwraca E_INVALIDARG.
Parametry wyjściowe dla atrybutów opcji ogólnych
W poniższej tabeli parametr pdwDataType przyjmuje wartości typu EATTRIBUTE_DATATYPE wyliczonego.
| Atrybut opcji ogólnej | Parametry wyjściowe |
|---|---|
| Nazwa wyświetlana |
pdwDataType: kADT_UNICODE pbData: ciąg Unicode zakończony znakiem null, będący tłumaczeniem nazwy słowa kluczowego opcji pcbNeeded: liczba bajtów ciągu Unicode wskazywanego przez pbData (w tym terminator null) Ten atrybut opcji jest dostępny dla dowolnej opcji, którą enumOptions mogą zwrócić w funkcji PPD. |
| Wywołanie |
pdwDataType: kADT_BINARY pbData: tablica bajtów dla wartości wywołania opcji pcbNeeded: liczba bajtów danych binarnych wskazywanych przez pbData Ten atrybut opcji jest dostępny dla dowolnej opcji, którą enumOptions mogą zwrócić w funkcji PPD. Jeśli InvocationValue opcji jest puste, funkcja ustawia pdwDataType jak powyżej, ustawia pcbNeeded = 0, a następnie zwraca S_OK. |
| OrderDependencyValue |
pdwDataType: kADT_LONG pbData: względna kolejność określona przez słowo kluczowe OrderDependency lub NonUIOrderDependency dla tej opcji. Zwróć uwagę, że pierwszym parametrem tych słów kluczowych jest liczba rzeczywista, która jest konwertowana na wartość LONG i zwracana. Rozmiar buforu potrzebnego: sizeof(LONG) Ten atrybut opcji jest dostępny tylko dla opcji, która ma właściwość OrderDependency lub*NonUIOrderDependency we wpisie PPD, a wpis nie pomija opcjiKeyword. |
| OrderDependencySection |
pdwDataType: kADT_ASCII pbData: ciąg ASCII zakończony o wartości null zawierający jedną z następujących nazw sekcji: "ExitServer" "Prolog" "DocumentSetup" "PageSetup" "JCLSetup" "AnySetup" pcbNeeded: liczba bajtów ciągu ASCII wskazywana przez pbData (w tym terminator null) Ten atrybut opcji jest dostępny tylko dla opcji, która ma wpis OrderDependency lub NonUIOrderDependency w PPD, a w tym wpisie optionKeyword nie jest pomijany. |
Parametry wyjściowe dla określonych atrybutów opcji
Oprócz ogólnych atrybutów opcji opisanych wcześniej atrybuty opcji wymienione w poniższych tabelach mogą mieć ograniczenia dotyczące ich dostępności. Niektóre atrybuty są dostępne dla wszystkich opcji określonej funkcji PPD, podczas gdy inne są dostępne tylko dla określonych opcji ich funkcji PPD. Wszystkie takie ograniczenia są wyświetlane dla każdego atrybutu opcji.
| Keyword | Atrybut opcji | Parametry wyjściowe |
|---|---|---|
| InputSlot | ||
| RequiresPageRegion |
pdwDataType: kADT_BOOL pbData: PRAWDA, jeśli kod wywołania PageRegion musi zostać wysłany przy użyciu kodu wywołania InputSlot i FALSE w przeciwnym razie. Jest to oparte na kluczowym słowie RequiresPageRegion PPD. Jeśli słowo kluczowe zostanie pominięte dla tej opcji miejsca wejściowego, dla tego atrybutu zostanie zwrócona wartość TRUE . pcbNeeded: sizeof(BOOL) Ten atrybut opcji jest dostępny dla dowolnej opcji funkcji PPD „InputSlot”, z wyjątkiem opcji generowanej przez sterownik „*UseFormTrayTable”. |
|
| OutputBin | ||
| OutputOrderReversed |
pdwDataType: kADT_BOOL pbData: TRUE, jeśli kolejność danych wyjściowych binOption jest "Reverse", a FALSE, jeśli kolejność danych wyjściowych jest "Normal". Jest to oparte na słowach kluczowych PPD: DefaultOutputOrder i ageStackOrder. pcbNeeded: sizeof(BOOL) Ten atrybut opcji jest dostępny dla dowolnej opcji funkcji PPD "OutputBin". |
|
| Pagesize | ||
| Obszar drukowalny |
pdwDataType: kADT_RECT pbData: pole ograniczające obszar obrazu opcji PageSize, określone przez słowo kluczowe ImageableArea PPD, jest zwracane w strukturze RECT, którego lewe i dolne pola zawierają wartości llx i lly, a prawe i górne pola zawierają wartości urx i ury. Wszystkie wartości znajdują się w mikronach. Wartości llx i lly PPD są zaokrąglane do najbliższej liczby całkowitej przed przekonwertowaniem na mikrony. Wartości urx i ury PPD są zaokrąglane w dół do najbliższej liczby całkowitej przed przekonwertowaniem na mikrony. pcbNeeded: rozmiar(RECT) Ten atrybut opcji jest dostępny dla dowolnej opcji funkcji PPD "PageSize", z wyjątkiem opcji "CustomPageSize". |
|
| PaperDimension |
pdwDataType: kADT_SIZE pbData: fizyczny wymiar opcji PageSize, określony przez słowo kluczowe PaperDimension PPD, jest zwracany w strukturze SIZE, którego element członkowski cx zawiera wartość szerokości i którego element członkowski cy zawiera wartość wysokości. Wszystkie wartości znajdują się w mikronach. pcbNeeded: sizeof(SIZE) Ten atrybut opcji jest dostępny dla dowolnej opcji funkcji PPD "PageSize", z wyjątkiem opcji "CustomPageSize". |
|
| PageSize: CustomPageSize | ||
| HWMargins |
pdwDataType: kADT_RECT pbData: cztery wartości określone przez słowo kluczowe HWMargins PPD są zwracane w strukturze RECT. Wszystkie wartości znajdują się w mikronach. pcbNeeded: sizeof(RECT) Ten atrybut opcji jest dostępny tylko dla opcji "CustomPageSize" funkcji PPD "PageSize". |
|
| MaxMediaHeight |
pdwDataType: kADT_DWORD pbData: wartość określona przez słowo kluczowe *MaxMediaHeight PPD w mikronach. pcbNeeded: sizeof(DWORD) Ten atrybut opcji jest dostępny tylko dla opcji "CustomPageSize" funkcji PPD "PageSize". |
|
| MaxMediaWidth |
pdwDataType: kADT_DWORD pbData: wartość określona przez słowo kluczowe MaxMediaWidth ppD w mikronach. pcbNeeded: sizeof(DWORD) Ten atrybut opcji jest dostępny tylko dla opcji "CustomPageSize" w funkcji "PageSize" PPD. |
|
| ParamCustomPageSize |
pdwDataType: kADT_CUSTOMSIZEPARAMS pbData: tablica składająca się z CUSTOMPARAM_MAX elementów, z których każdy jest strukturą CUSTOMSIZEPARAM. Każdy element tej tablicy przechowuje wartości określone we wpisie paramOption słowa kluczowego ParamCustomPageSize w PPD. W przypadku paramOption innych niż "Orientacja", wartości lMinVal i lMaxVal są podawane w mikronach. W przypadku wartości "Orientacja" wartości lMinVal i lMaxVal znajdują się w zakresie [0, 3]. pcbNeeded: sizeof(CUSTOMSIZEPARAM) * CUSTOMPARAM_MAX Ten atrybut opcji jest dostępny tylko dla opcji "CustomPageSize" funkcji PPD "PageSize". Aby uzyskać więcej informacji, zobacz poniższą notatkę dotyczącą parametru ParamCustomPageSize. |
|
| Zainstalowana pamięć | ||
| VmOption |
pdwDataType: kADT_DWORD pbData: wartość określona przez słowo kluczowe VMOption ppD lub 0, jeśli ppD nie określa słowa kluczowego VMOption dla tej opcji. pcbNeeded: sizeof(DWORD) Ten atrybut opcji jest dostępny dla dowolnej opcji funkcji PPD "InstalledMemory". |
|
| FCacheSize |
pdwDataType: kADT_DWORD pbData: wartość określona przez słowo kluczowe FCacheSize ppD lub 0, jeśli PPD nie określa słowa kluczowego FCacheSize dla tej opcji. pcbNeeded: sizeof(DWORD) Ten atrybut opcji jest dostępny dla dowolnej opcji funkcji PPD "InstalledMemory". |
Uwaga dotycząca parametru ParamCustomPageSize
Oto przykładowy kod, który pokazuje, jak uzyskać oryginalną kolejność pliku PPD, minimalną i maksymalną wartość wpisu "ParamCustomPageSize Width". Stała CUSTOMPARAM_WIDTH zdefiniowana w pliku printoem.h wskazuje przesunięcie struktury CUSTOMSIZEPARAM, która zawiera informacje związane z polem Width. Ta struktura jest jedną ze struktur CUSTOMSIZEPARAM spośród CUSTOMPARAM_MAX, które tworzą tablicę takich struktur. Nagłówek printoem.h definiuje zestaw stałych o nazwie CUSTOMPARAM_XXX wyświetlając przesunięcia struktur w tej tablicy (Width, Height, WidthOffset, HeightOffset i 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;