/*********************** Module Header ********************************** * pdev.h * Stuff associated with the pdev, or physical device. A PDEV is * created by dhpdevEnablePDEV() function, and is then used to * maintain state and other information about the physical device. * * 14:36 on Mon 19 Nov 1990 -by- Lindsay Harris [lindsayh] * * Copyright (C) 1990 - 1992 Microsoft Corporation * ***********************************************************************/ #define PDEV_ID 0x72706476 /* "rpdv" in ASCII */ typedef struct { ULONG ulID; /* String to verify what we have */ HANDLE hheap; /* The heap handle - all storage access! */ HDEV hdev; /* Engine's handle to this structure */ HANDLE hPrinter; /* For access to spooler data */ HBITMAP hbm; /* Handle to bitmap for drawing */ HPALETTE hpal; /* Our palette, so we can delete it */ PWSTR pstrDataFile; /* Printer data file name */ PWSTR pstrPrtName; /* Printer name used in CreateDC() */ PWSTR pstrModel; /* Model name of printer, e.g LaserJet II */ void *pPSHeader; /* Position sorting header (posnsort.[hc]) */ void *pvWhiteText; /* White text structures, if needed */ void *pvWinResData; /* WinResData information */ void *pUDPDev; /* Pointer to unidriv's PDev structure */ void *pGPCData; /* Pointer to characterisation data */ void *pNTRes; /* NT's additional GPC style data */ DWORD *pdwTrans; /* Transpose table, if required */ DWORD *pdwColrSep; /* Colour separation data, if required */ DWORD *pdwBitMask; /* Bitmask table, white skip code */ void *pvRenderData; /* Rendering summary data */ void *pvRenderDataTmp; /* Temporary copy for use in banding */ void *pRuleData; /* Rule finding data area, if != 0 */ void *pPalData; /* Palette information */ void *pFileList; /* Pointer to File List */ HANDLE hImageMod; /* Image Module Handle for callbacks */ HANDLE hModDrv; /* Rasdd Module Handle for resources */ } PDEV;