Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
2.1 KiB

  1. //************************************************************************
  2. // Common header file for generic Win 3.1 fax printer driver support.
  3. //
  4. // History:
  5. // 02-jan-95 nandurir created.
  6. // 01-feb-95 reedb Clean-up, support printer install and bug fixes.
  7. // 14-mar-95 reedb Use GDI hooks to move most functionality to UI.
  8. // 16-aug-95 reedb Move to kernel mode. Move many declarations and
  9. // definitions to WOWFAXDD.H and WOWFAXUI.H.
  10. //
  11. //************************************************************************
  12. #include "wowfax.h"
  13. // The following structure ID appears as wfax when dumping byte (db) a FAXDEV:
  14. #define FAXDEV_ID ((DWORD)'xafw')
  15. //
  16. // This structure is shared between wowfax and wowfaxui - this keeps
  17. // the interface reliable, consistent and easy to maintain
  18. //
  19. typedef struct _FAXDEV {
  20. ULONG id; // String to verify what we have
  21. struct _FAXDEV *lpNext;
  22. struct _FAXDEV *lpClient; // Pointer to client side FAXDEV
  23. HDEV hdev; // Engine's handle to this structure
  24. DWORD idMap; // Unique ID
  25. DWORD cbMapLow; // Loword of size of mapped area
  26. HANDLE hMap; // Handle to mapped file
  27. TCHAR szMap[16]; // Name of mapped file
  28. LPWOWFAXINFO lpMap;
  29. DWORD offbits;
  30. HBITMAP hbm; // Handle to bitmap for drawing
  31. DWORD cPixPerByte;
  32. DWORD bmFormat;
  33. DWORD bmWidthBytes;
  34. HSURF hbmSurf; // Associated surface
  35. HWND hwnd;
  36. DWORD tid;
  37. DWORD lpinfo16;
  38. HANDLE hDriver; // For access to spooler data
  39. GDIINFO gdiinfo;
  40. DEVINFO devinfo;
  41. PDEVMODE pdevmode;
  42. } FAXDEV, *LPFAXDEV;
  43. // Macro to dword align for RISC
  44. //#define DRVFAX_DWORDALIGN(dw) ((dw) += ((dw) % 4) ? (4 - ((dw) % 4)) : 0)
  45. #define DRVFAX_DWORDALIGN(dw) ((dw) = (((dw) + 3) & ~3))
  46. // DrvEscape escape/action codes:
  47. #define DRV_ESC_GET_FAXDEV_PTR 0x8000
  48. #define DRV_ESC_GET_DEVMODE_PTR 0x8001
  49. #define DRV_ESC_GET_BITMAP_BITS 0x8002
  50. #define DRV_ESC_GET_SURF_INFO 0x8003