Techwiki:Win32k/CLIENTTHREADINFO

From ReactOS Wiki
Jump to: navigation, search

CLIENTTHREADINFO from Windows XP

typedef struct tagCLIENTTHREADINFO
{
  /* 000 */  UINT  CTIF_flags;
  /* 004 */  WORD  fsChangeBits;           // Bits changes since last compared
  /* 006 */  WORD  fsWakeBits;             // Bits currently available
  /* 008 */  WORD  fsWakeBitsJournal;      // Bits saved while journalling
  /* 00a */  WORD  fsWakeMask;             // Bits looking for when asleep
  /* 00c */  LONG  timeLastRead;           // Time of last input read
  /* 010 */  DWORD dwcPumpHook;            // Pump Hook count
} CLIENTTHREADINFO;

#define CTIF_THREADSYSLOCK  0x00000001     // Message thread queue locked.
#define CTIF_INSENDMESSAGE  0x00000002     // When in send message this bit is set.

//
// From sdk WinUser.h
//
#define PM_QS_POSTMESSAGE   ((QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16)
#define QS_KEY              0x0001
#define QS_MOUSEMOVE        0x0002
#define QS_MOUSEBUTTON      0x0004
#define QS_POSTMESSAGE      0x0008
#define QS_TIMER            0x0010
#define QS_PAINT            0x0020
#define QS_SENDMESSAGE      0x0040
#define QS_HOTKEY           0x0080
#define QS_ALLPOSTMESSAGE   0x0100
#if (_WIN32_WINNT >= 0x0501)
#define QS_RAWINPUT         0x0400
#endif
#define QS_MOUSE           (QS_MOUSEMOVE|QS_MOUSEBUTTON)
#if (_WIN32_WINNT >= 0x0501)
#define QS_INPUT           (QS_MOUSE|QS_KEY|QS_RAWINPUT)
#else
#define QS_INPUT           (QS_MOUSE|QS_KEY)
#endif
#define QS_ALLEVENTS       (QS_INPUT|QS_POSTMESSAGE|QS_TIMER|QS_PAINT|QS_HOTKEY)
#define QS_ALLINPUT        (QS_INPUT|QS_POSTMESSAGE|QS_TIMER|QS_PAINT|QS_HOTKEY|QS_SENDMESSAGE)
//
// From userkdx
//
#define QS_SMSREPLY        0x0200
#define QS_SYSEXPUNGE      0x0400
#define QS_THREADATTACHED  0x0800
#define QS_EXCLUSIVE       0x1000
#define QS_EVENT           0x2000
#define QS_TRANSFER        0X4000
//
// From Wine
//
#define QS_SMRESULT        0x8000

References