Techwiki:Win32k/CURSOR

From ReactOS Wiki
Jump to: navigation, search
typedef struct tagCURSOR
{
   PROCMARKHEAD head;
   struct _tagCURSOR* pcurNext;
   UNICODE_STRING strName;
   USHORT atomModName;
   USHORT rt;
   ULONG CURSORF_flags;
   SHORT xHotspot;
   SHORT yHotspot;
   HBITMAP hbmMask;
   HBITMAP hbmColor;
   HBITMAP hbmAlpha;
   RECT rcBounds;
   HBITMAP hbmUserAlpha;
   ULONG bpp;
   ULONG cx;
   ULONG cy;
} CURSOR, *PCURSOR; // W7U sym tagCURSOR

typedef struct tagACON
{
   PROCMARKHEAD head;
   struct _tagCURSOR* pcurNext;
   UNICODE_STRING strName;
   USHORT atomModName;
   USHORT rt;
   ULONG CURSORF_flags;
   INT cpcur;
   INT cicur;
   PCURSOR * aspcur;
   DWORD * aicur;
   INT * ajifRate;
   INT iicur;
} ACON, *PACON; /* !dso ACON, W7U verified */

// Used with NtUserSetCursorIconData, last parameter.
typedef struct tagCURSORDATA
{
   LPWSTR lpName;
   LPWSTR lpModName;
   USHORT rt;
   USHORT dummy;
   ULONG CURSORF_flags;
   SHORT xHotspot;
   SHORT yHotspot;
   HBITMAP hbmMask;
   HBITMAP hbmColor;
   HBITMAP hbmAlpha;
   RECT rcBounds;
   HBITMAP hbmUserAlpha; // Could be in W7U, not in W2k
   ULONG bpp;
   ULONG cx;
   ULONG cy;
   INT cpcur;
   INT cicur;
   PCURSOR * aspcur;
   DWORD * aicur;
   INT * ajifRate;
   INT iicur;
} CURSORDATA, *PCURSORDATA; /* !dso CURSORDATA */

// CURSORF_flags:
#define CURSORF_FROMRESOURCE 0x0001
#define CURSORF_GLOBAL       0x0002
#define CURSORF_LRSHARED     0x0004
#define CURSORF_ACON         0x0008
#define CURSORF_WOWCLEANUP   0x0010
#define CURSORF_ACONFRAME    0x0040
#define CURSORF_SECRET       0x0080
#define CURSORF_LINKED       0x0100

// Used with NtUserDrawIconEx, last parameter.
typedef struct _DRAWICONEXDATA
{
   HBITMAP hbmMask;
   HBITMAP hbmColor;
   int cx;
   int cy;
} DRAWICONEXDATA, *PDRAWICONEXDATA;
 
// ReactOS
typedef struct _CURSOR
{
  LIST_ENTRY pcurNext;
  UINT CURSORF_flags;
  UNICODE_STRING strName;
  ATOM atomModName;
  UINT rt;
  INT cx;
  INT cy;
  UINT xhotspot;
  UINT yhotspot;
  HBITMAP hbmMask;
  HBITMAP hbmColor;
} CURSOR, *PCURSOR;

CURSORF_flags

Optional flags containing CURSORF_+ LINKED, SECRET, ACONFRAME, WOWCLEANUP, ACON, LRSHARED, GLOBAL, FROMRESOURCE

strName

The name of the resource

atomModName

An optional ATOM containing the module to which the resource belongs

rt

The resource type, probably containing RT_ICON or RT_CURSOR

References

  • Windows Symbol files, userkdx.dll, !dso, W7U symbols