- Move W32CLTINFO_TEB structure out of NDK, since it's module-internal structure.

- Add a define for easier accessing this field.

svn path=/trunk/; revision=29069
This commit is contained in:
Aleksey Bragin 2007-09-16 17:37:41 +00:00
parent 0a844e24f0
commit ab5811a512
3 changed files with 23 additions and 24 deletions

View file

@ -674,21 +674,6 @@ typedef struct _GDI_TEB_BATCH
ULONG Buffer[0x136];
} GDI_TEB_BATCH, *PGDI_TEB_BATCH;
//
// Window Client Information structure
//
typedef struct _W32CLTINFO_TEB
{
ULONG Win32ClientInfo0[2];
ULONG ulWindowsVersion;
ULONG ulAppCompatFlags;
ULONG ulAppCompatFlags2;
ULONG Win32ClientInfo1[5];
HWND hWND;
PVOID pvWND;
ULONG Win32ClientInfo2[50];
} W32CLTINFO_TEB, *PW32CLTINFO_TEB;
//
// Initial TEB
//
@ -748,7 +733,7 @@ typedef struct _TEB
ULONG GdiClientPID;
ULONG GdiClientTID;
PVOID GdiThreadLocalInfo;
W32CLTINFO_TEB Win32ClientInfo;
ULONG Win32ClientInfo[62];
PVOID glDispatchTable[0xE9];
ULONG glReserved1[0x1D];
PVOID glReserved2;

View file

@ -8,5 +8,19 @@
ULONG FASTCALL IntSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni);
/* Window Client Information structure */
typedef struct _W32CLTINFO_TEB
{
ULONG Win32ClientInfo0[2];
ULONG ulWindowsVersion;
ULONG ulAppCompatFlags;
ULONG ulAppCompatFlags2;
ULONG Win32ClientInfo1[5];
HWND hWND;
PVOID pvWND;
ULONG Win32ClientInfo2[50];
} W32CLTINFO_TEB, *PW32CLTINFO_TEB;
#define GetWin32ClientInfo() (PW32CLTINFO_TEB)(NtCurrentTeb()->Win32ClientInfo)
#endif /* __WIN32K_MISC_H */

View file

@ -116,22 +116,22 @@ IntSetTebWndCallback (HWND * hWnd, PVOID * pWnd)
{
HWND hWndS = *hWnd;
PWINDOW_OBJECT Window = UserGetWindowObject(*hWnd);
PTEB Teb = NtCurrentTeb();
PW32CLTINFO_TEB ClientInfo = GetWin32ClientInfo();
*hWnd = Teb->Win32ClientInfo.hWND;
*pWnd = Teb->Win32ClientInfo.pvWND;
*hWnd = ClientInfo->hWND;
*pWnd = ClientInfo->pvWND;
Teb->Win32ClientInfo.hWND = hWndS;
Teb->Win32ClientInfo.pvWND = (PVOID) Window;
ClientInfo->hWND = hWndS;
ClientInfo->pvWND = (PVOID) Window;
}
static VOID
IntRestoreTebWndCallback (HWND hWnd, PVOID pWnd)
{
PTEB Teb = NtCurrentTeb();
PW32CLTINFO_TEB ClientInfo = GetWin32ClientInfo();
Teb->Win32ClientInfo.hWND = hWnd;
Teb->Win32ClientInfo.pvWND = pWnd;
ClientInfo->hWND = hWnd;
ClientInfo->pvWND = pWnd;
}
/* FUNCTIONS *****************************************************************/