Techwiki:Win32k/CLIENTTHREADINFO
From ReactOS
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
- http://www.woodmann.com/forum/showthread.php?t=10295&page=2
- msdn QS_ Change, Wake, Bits and Mask
- Windows Symbol files, userkdx.dll

