PSCRIPT5_PRIVATE_DEVMODE-Struktur (printoem.h)

Die PSCRIPT5_PRIVATE_DEVMODE-Struktur ermöglicht es Pscript5-Plug-Ins, die Größe des privaten Teils der DEVMODEW-Struktur von Pscript5 zu bestimmen.

Syntax

typedef struct _PSCRIPT5_PRIVATE_DEVMODE {
  WORD wReserved[57];
  WORD wSize;
} PSCRIPT5_PRIVATE_DEVMODE, *PPSCRIPT5_PRIVATE_DEVMODE;

Member

wReserved[57]

Ist für das System reserviert.

wSize

Die Größe des privaten Teils der DEVMODEW-Struktur von Pscript5 in Bytes.

Hinweise

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 Makros ist ein Zeiger auf eine DEVMODEW-Struktur . Das Makro bestimmt, ob der Wert des dmDriverExtra-Elements der DEVMODEW-Struktur größer als der Byteoffset 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. Wenn dies nicht der Fehler ist, 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 bestimmen:

  1. Rufen Sie das makro GET_PSCRIPT5_PRIVATE_DEVMODE_SIZE auf, und übergeben Sie dabei die Adresse der DEVMODEW-Struktur im Aufruf.

  2. 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_PR****IVATE_DEVMODE-Struktur zurück.)

  3. Bestimmen Sie die Adresse des privaten Teils der DEVMODEW-Struktur Ihres Plug-Ins wie folgt.

    pdmPlugin = (PBYTE)(pdm) + (pdm)->dmSize + wSize;
    

    Das obige 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 der privaten Pscript5 DEVMODEW-Struktur (wSize) in Byte hinzu. Die privaten DEVMODEW-Daten eines Plug-Ins beginnen an dieser Speicheradresse. Wenn mehrere Plug-Ins miteinander verkettet sind, wird in diesem Beispiel die Adresse der privaten DEVMODEW-Daten des ersten Plug-Ins zurückgegeben.

    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 den privaten DEVMODEW-Daten des zweiten Plug-Ins usw. Ein Plug-In-Entwickler, der die Adresse der privaten DEVMODEW-Daten des n-ten Plug-Ins ermitteln muss, muss die Größe der privaten DEVMODEW-Daten für die ersten n - 1 Plug-Ins kennen.

  4. 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)

Weitere Informationen

UNIDRV_PRIVATE_DEVMODE