Techwiki:Win32k/CLIENTINFO

From ReactOS Wiki
Jump to: navigation, search

CLIENTINFO from Windows XP

typedef struct _CALLBACKWND
{
    HWND hWnd;
    PWND pWnd;
} CALLBACKWND, *PCALLBACKWND;

#pragma pack(1)

typedef struct _CLIENTINFO // Size: 0x84
{// Xp
/* 000 */ DWORD             CI_flags;
/* 004 */ DWORD             cSpins;
/* 008 */ DWORD             dwExpWinVer;
/* 00c */ DWORD             dwCompatFlags;
/* 010 */ DWORD             dwCompatFlags2;
/* 014 */ DWORD             dwTIFlags; // see Thread Info flags.
/* 018 */ PDESKTOPINFO      pDeskInfo;
/* 01c */ ULONG_PTR         ulClientDelta;
/* 020 */ PHOOK             phkCurrent; // Pointer to current hook in this thread.
/* 024 */ FLONG             fsHooks;
/* 028 */ CALLBACKWND       CallbackWnd;
/* 030 */ DWORD             dwHookCurrent;   // loword is Ansi, hiword is HookId.
/* 034 */ INT               cInDDEMLCallback;
/* 038 */ PCLIENTTHREADINFO pClientThreadInfo;
/* 03c */ DWORD             dwHookData;      // Save data.
/* 040 */ DWORD             dwKeyCache;
/* 044 */ DWORD             afKeyState[2];
/* 04c */ DWORD             dwAsyncKeyCache;
/* 050 */ DWORD             afAsyncKeyState[2];
/* 058 */ DWORD             afAsyncKeyStateRecentDow[2];
/* 060 */ HKL               hKL;
/* 064 */ SHORT             CodePage;
/* 066 */ SHORT             achDbcsCF;
/* 068 */ MSG               msgDbcsCB;
} CLIENTINFO, *PCLIENTINFO;

#pragma pack()

CI Flags:

#define CI_TRANSACTION       0x00000001
#define CI_QUEUEMSG          0x00000002
#define CI_WOW               0x00000004
#define CI_INITTHREAD        0x00000008 // Set in User32!ClientThreadSetup
#define CI_CURTHPRHOOK       0x00000010 // If the message was sent by the current thread/process.
#define CI_CLASSESREGISTERED 0x00000020 // Used with W32PF_CLASSESREGISTERED
#define CI_IMMACTIVATE       0x00000040


References