PSCRIPT5_PRIVATE_DEVMODE struttura (printoem.h)
La struttura PSCRIPT5_PRIVATE_DEVMODE consente ai plug-in Pscript5 di determinare le dimensioni della parte privata della struttura DEVMODEW di Pscript5.
Sintassi
typedef struct _PSCRIPT5_PRIVATE_DEVMODE {
WORD wReserved[57];
WORD wSize;
} PSCRIPT5_PRIVATE_DEVMODE, *PPSCRIPT5_PRIVATE_DEVMODE;
Members
wReserved[57]
Riservato per l'utilizzo nel sistema.
wSize
Dimensioni, in byte, della parte privata della struttura DEVMODEW di Pscript5.
Commenti
Per informazioni sulle sezioni pubbliche e private della struttura DEVMODEW, vedere DEVMODEW.
Printoem.h definisce una macro che è possibile usare per determinare le dimensioni della parte privata della struttura DEVMODEW di Pscript5.
#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 )
L'argomento pdm nella macro GET_PSCRIPT5_PRIVATE_DEVMODE_SIZE è un puntatore a una struttura DEVMODEW . La macro determina se il valore del membro dmDriverExtra della struttura DEVMODEW è maggiore dell'offset di byte del membro wSize della struttura PSCRIPT5_PRIVATE_DEVMODE . In tal caso, la macro restituisce il valore del membro wSize nella struttura PSCRIPT5_PRIVATE_DEVMODE . In caso contrario, la macro restituisce zero.
Per determinare in modo sicuro l'indirizzo della parte privata della struttura DEVMODEW del plug-in, eseguire le operazioni seguenti:
Chiamare la macro GET_PSCRIPT5_PRIVATE_DEVMODE_SIZE , passando l'indirizzo della struttura DEVMODEW nella chiamata.
Verificare che (pdm)->dmDriverExtra sia maggiore del valore restituito dalla macro. La macro restituisce il valore del membro wSize della struttura PSCRIPT5_PR**IVATE_DEVMODE.
Determinare l'indirizzo della parte privata della struttura DEVMODEW del plug-in come indicato di seguito.
pdmPlugin = (PBYTE)(pdm) + (pdm)->dmSize + wSize;
L'esempio precedente inizia con l'indirizzo della struttura DEVMODEW pubblica (pdm), aggiunge il numero di byte di questa struttura (pdm-dmSize>), quindi aggiunge le dimensioni in byte della struttura DEVMODEW privata Pscript5 (wSize). I dati DI DEVMODEW privati di un plug-in iniziano a questo indirizzo di memoria. Se sono presenti più plug-in concatenati, l'indirizzo restituito da questo esempio è quello dei primi dati DEVMODEW privati del plug-in.
I dati DI DEVMODEW privati del secondo plug-in seguono i primi dati DEVMODEW privati del plug-in, i dati DEVMODEW privati del terzo plug-in seguono quello dei dati DEVMODEW privati del secondo plug-in e così via. Uno sviluppatore di plug-in che deve determinare l'indirizzo dei dati DEVMODEW privati del plug-in n-1 deve conoscere le dimensioni dei dati DEVMODEW privati per i primi plug-in n - 1.
Verificare che la parte privata della struttura DEVMODEW del plug-in inizi con una struttura di OEM_DMEXTRAHEADER valida.
Requisiti
Requisito | Valore |
---|---|
Intestazione | printoem.h (include Printoem.h) |