Techwiki:Win32k/QUEUE
Windows XP version of Queue structures
typedef struct _CARET { PWND spwnd; UINT fVisible : 1; UINT fOn : 1; INT iHideLevel; INT x; INT y; INT cy; INT cx; HBITMAP hBitmap; HANDLE hTimer; DWORD tid; #if (_WIN32_WINNT >= 0x0501) RECT rcCaret; // XP, device coordinates. #endif } CARET; *PCARET; // typedef struct _QMSG { struct _QMSG *pqmsgNext; struct _QMSG *pqmsgPrev; MSG msg; LONG_PTR ExtraInfo; DWORD dwQEvent; PTHREADINFO pti; } QMSG, *PQMSG; // typedef struct _MLIST { PQMSG pqmsgRead; PQMSG pqmsgWriteLast; DWORD cMsgs; } MLIST, *PMLIST; // typedef struct _Q { MLIST mlInput; PTHREADINFO ptiSysLock; INT idSysLock; INT idSysPeek; PTHREADINFO ptiMouse; PTHREADINFO ptiKeyboard; PWND spwndCapture; PWND spwndFocus; PWND spwndActive; PWND spwndActivePrev; DWORD codeCapture; DWORD msgDblClk; DWORD xbtnDblClk; DWORD timeDblClk; HWND hwndDblClk; POINT ptDblClk; BYTE afKeyRecentDown[32]; BYTE afKeyState[64]; CARET caret; PCURSOR spcurCurrent; INT iCursorLevel; DWORD QF_flags; WORD cThreads; WORD cLockCount DWORD msgJournal; LONG_PTR ExtraInfo; } Q, *PQ; // // Q flags // #define QF_UPDATEKEYSTATE 0x00000001 #define QF_FMENUSTATUSBREAK 0x00000004 #define QF_FMENUSTATUS 0x00000008 #define QF_FF10STATUS 0x00000010 #define QF_MOUSEMOVED 0x00000020 #define QF_ACTIVATIONCHANGE 0x00000040 #define QF_TABSWITCHING 0x00000080 #define QF_KEYSTATERESET 0x00000100 #define QF_INDESTROY 0x00000200 #define QF_LOCKNOREMOVE 0x00000400 #define QF_FOCUSNULLSINCEACTIVE 0x00000800 #define QF_DIALOGACTIVE 0x00004000 #define QF_EVENTDEACTIVATEREMOVED 0x00008000 #define QF_TRACKMOUSELEAVE 0x00020000 #define QF_TRACKMOUSEHOVER 0x00040000 #define QF_TRACKMOUSEFIRING 0x00080000 #define QF_CAPTURELOCKED 0x00100000 #define QF_ACTIVEWNDTRACKING 0x00200000
References
- Windows Symbol files, userkdx.dll, !dso
- http://read.pudn.com/downloads52/sourcecode/windows/bitmap/178217/window%20manager/wintern.h__.htm