Leaked source code of windows server 2003
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.

91 lines
2.9 KiB

  1. /****************************** Module Header ******************************\
  2. * Module Name: w32gdip.h
  3. *
  4. * Copyright (c) 1985 - 1999, Microsoft Corporation
  5. *
  6. * This header file contains macros used to access kernel mode data
  7. * from user mode for wow64.
  8. *
  9. * History:
  10. * 08-18-98 PeterHal Created.
  11. \***************************************************************************/
  12. #ifndef _W32GDIP_
  13. #define _W32GDIP_
  14. #include <wingdip.h>
  15. #include "w32w64a.h"
  16. // internal GDI/USER cursor structures and defines
  17. #define CURSORF_FROMRESOURCE 0x0001 // it was loaded from a resource
  18. #define CURSORF_GLOBAL 0x0002 // it never dies
  19. #define CURSORF_LRSHARED 0x0004 // its cached
  20. #define CURSORF_ACON 0x0008 // its animated
  21. #define CURSORF_WOWCLEANUP 0x0010 // marked for cleanup at wow task exit time
  22. #define CURSORF_ACONFRAME 0x0040 // its a frame of an acon
  23. #define CURSORF_SECRET 0x0080 // created internally - not exposed to apps
  24. #define CURSORF_LINKED 0x0100 // linked into a cache
  25. #define CURSORF_SYSTEM 0x0200 // it's a system cursor
  26. #define CURSORF_SHADOW 0x0400 // GDI created the shadow effect
  27. /*
  28. * The CURSINFO structure defines cursor elements that both GRE and USER care
  29. * about. This information is persistent for a particular object. Thus, when
  30. * GRE needs to add a new object where it wants to cache some information
  31. * about a cursor, such as the combined bitmap image, it can be added here.
  32. * USER will copy the data about cursors starting from xHotspot, the flags
  33. * are normally not stored and are reinitialized. Thus, new elements like the
  34. * common bitmap image should be added after xHotspot, preferably last.
  35. *
  36. * BE VERY CAREFUL about changing CI_FIRST and CI_COPYSTART members, they
  37. * serve for casting purpose in the USER code. Don't make changes to
  38. * these structure members without understanding all implications first.
  39. */
  40. #define CI_FIRST CURSORF_flags
  41. #define CI_COPYSTART xHotspot
  42. typedef struct _CURSINFO /* ci */
  43. {
  44. DWORD CURSORF_flags; // CURSORF_flags must be the first member of this
  45. // struct, see CI_FIRST, tagCURSOR, and tagACON.
  46. SHORT xHotspot; // see comment above on CI_COPYSTART
  47. SHORT yHotspot;
  48. KHBITMAP hbmMask; // AND/XOR bits
  49. KHBITMAP hbmColor;
  50. KHBITMAP hbmAlpha; // GDI alpha bitmap cache
  51. RECT rcBounds; // GDI created tight bounds of the visible shape
  52. KHBITMAP hbmUserAlpha; // USER alpha bitmap cache
  53. } CURSINFO, *PCURSINFO;
  54. //
  55. // PolyPatBlt
  56. //
  57. typedef struct _POLYPATBLT
  58. {
  59. int x;
  60. int y;
  61. int cx;
  62. int cy;
  63. union {
  64. KHBRUSH hbr;
  65. COLORREF clr;
  66. } BrClr;
  67. } POLYPATBLT,*PPOLYPATBLT;
  68. #define PPB_BRUSH 0
  69. #define PPB_COLORREF 1
  70. WINGDIAPI
  71. BOOL
  72. WINAPI
  73. PolyPatBlt(
  74. HDC,
  75. DWORD,
  76. PPOLYPATBLT,
  77. DWORD,
  78. DWORD
  79. );
  80. #endif // _W32GDIP_