Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Mit der PSCRIPT5_PRIVATE_DEVMODE-Struktur können Pscript5-Plug-Ins die Größe des privaten Teils der DEVMODEW-Struktur von Pscript5 bestimmen.
Syntax
typedef struct _PSCRIPT5_PRIVATE_DEVMODE {
WORD wReserved[57];
WORD wSize;
} PSCRIPT5_PRIVATE_DEVMODE, *PPSCRIPT5_PRIVATE_DEVMODE;
Elemente
wReserved[57]
Reserviert für die Systemverwendung.
wSize
Die Größe des privaten Teils der DEVMODEW-Struktur von Pscript5 in Bytes.
Bemerkungen
Informationen zu den öffentlichen und privaten Abschnitten der DEVMODEW-Struktur finden Sie unter DEVMODEW.
Printoem.h definiert ein Makro, mit dem Sie die Größe des privaten Teils der DEVMODEW-Struktur von Pscript5 bestimmen können.
#define GET_PSCRIPT5_PRIVATE_DEVMODE_SIZE(pdm)\
( ( (pdm)->dmDriverExtra > (FIELD_OFFSET(PSCRIPT5_PRIVATE_DEVMODE, wSize) + sizeof(WORD)) ) ? \
((PPSCRIPT5_PRIVATE_DEVMODE)((PBYTE)(pdm) + (pdm)-> dmSize)) -> wSize : 0 )
Das pdm-Argument im GET_PSCRIPT5_PRIVATE_DEVMODE_SIZE Makro ist ein Zeiger auf eine DEVMODEW-Struktur . Das Makro bestimmt, ob der Wert des dmDriverExtra-Elements der DEVMODEW-Struktur größer als der Byte-Offset des wSize-Elements der PSCRIPT5_PRIVATE_DEVMODE-Struktur ist. Wenn ja, gibt das Makro den Wert des wSize-Elements in der PSCRIPT5_PRIVATE_DEVMODE Struktur zurück. Ist dies nicht der Fehler, gibt das Makro null zurück.
Gehen Sie wie folgt vor, um die Adresse des privaten Teils der DEVMODEW-Struktur Ihres Plug-Ins sicher zu ermitteln:
Rufen Sie das GET_PSCRIPT5_PRIVATE_DEVMODE_SIZE Makro auf, und übergeben Sie die Adresse der DEVMODEW-Struktur im Aufruf.
Stellen Sie sicher, dass (pdm)->dmDriverExtra größer als der vom Makro zurückgegebene Wert ist. (Das Makro gibt den Wert des wSize-Elements der PSCRIPT5_PRIVATE_DEVMODE Struktur zurück.)
Ermitteln Sie die Adresse des privaten Teils der DEVMODEW-Struktur Ihres Plug-Ins wie folgt.
pdmPlugin = (PBYTE)(pdm) + (pdm)->dmSize + wSize;Das vorangehende Beispiel beginnt mit der Adresse der öffentlichen DEVMODEW-Struktur (pdm), fügt die Anzahl der Bytes dieser Struktur (pdm-dmSize>) hinzu und fügt dann die Größe in Byte der privaten Pscript5 DEVMODEW-Struktur (wSize) hinzu. Die privaten DEVMODEW-Daten eines Plug-Ins beginnen an dieser Speicheradresse. Wenn mehrere Plug-Ins miteinander verkettet sind, ist die von diesem Beispiel zurückgegebene Adresse die der privaten DEVMODEW-Daten des ersten Plug-Ins.
Die privaten DEVMODEW-Daten des zweiten Plug-Ins folgen den privaten DEVMODEW-Daten des ersten Plug-Ins, die privaten DEVMODEW-Daten des dritten Plug-Ins folgen dem der privaten DEVMODEW-Daten des zweiten Plug-Ins usw. Ein Plug-In-Entwickler, der die Adresse der privaten DEVMODEW-Daten des n-th-Plug-Ins ermitteln muss, muss die Größen der privaten DEVMODEW-Daten für die ersten n - 1 Plug-Ins kennen.
Stellen Sie sicher, dass der private Teil der DEVMODEW-Struktur Ihres Plug-Ins mit einer gültigen OEM_DMEXTRAHEADER struktur beginnt.
Anforderungen
| Anforderung | Wert |
|---|---|
| Header | printoem.h (include Printoem.h) |