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.

81 lines
1.9 KiB

  1. /******************************Module*Header*******************************\
  2. *
  3. * Module Name: mcdesc.h
  4. *
  5. * Defines the enhanced ExtEscape functionality used for MCD support.
  6. *
  7. * Copyright (c) Microsoft Corporation. All rights reserved.
  8. *
  9. \**************************************************************************/
  10. #ifndef __MCDESC_H__
  11. #define __MCDESC_H__
  12. // Escape through which all MCD functionality is accessed.
  13. #ifndef MCDFUNCS
  14. #define MCDFUNCS 3076
  15. #endif
  16. // Video memory surface description, for DDraw surface rendering.
  17. typedef struct _MCDESC_SURFACE
  18. {
  19. HANDLE hSurf;
  20. LONG lOffset;
  21. LONG lStride;
  22. RECTL rclPos;
  23. } MCDESC_SURFACE;
  24. // Data header for every escape.
  25. typedef struct _MCDESC_HEADER
  26. {
  27. ULONG flags;
  28. HANDLE hRC;
  29. HANDLE hSharedMem;
  30. VOID *pSharedMem;
  31. ULONG sharedMemSize;
  32. ULONG_PTR dwWindow;
  33. MCDESC_SURFACE msrfColor;
  34. MCDESC_SURFACE msrfDepth;
  35. ULONG cLockSurfaces;
  36. ULONG cExtraWndobj;
  37. } MCDESC_HEADER;
  38. // Data header used only on NT.
  39. typedef struct _MCDESC_HEADER_NTPRIVATE
  40. {
  41. struct _WNDOBJ *pwo;
  42. VOID *pBuffer;
  43. ULONG bufferSize;
  44. HANDLE *pLockSurfaces;
  45. HDC *pExtraWndobj;
  46. } MCDESC_HEADER_NTPRIVATE;
  47. // MCDESC_HEADER flags.
  48. #define MCDESC_FL_CREATE_CONTEXT 0x00000001
  49. #define MCDESC_FL_SURFACES 0x00000002
  50. #define MCDESC_FL_LOCK_SURFACES 0x00000004
  51. #define MCDESC_FL_EXTRA_WNDOBJ 0x00000008
  52. #define MCDESC_FL_DISPLAY_LOCK 0x00000010
  53. #define MCDESC_FL_BATCH 0x00000020
  54. // Used only for Win95.
  55. #define MCDESC_FL_SWAPBUFFER 0x00000040
  56. #define MCDESC_MAX_LOCK_SURFACES 12
  57. #define MCDESC_MAX_EXTRA_WNDOBJ 16
  58. // MCDSURFACE_HWND alias, used when creating contexts.
  59. #define MCDESC_SURFACE_HWND 0x00000001
  60. // Context creation information.
  61. typedef struct _MCDESC_CREATE_CONTEXT
  62. {
  63. ULONG flags;
  64. HWND hwnd;
  65. } MCDESC_CREATE_CONTEXT;
  66. #endif // __MCDESC_H__