ReactOS 0.4.15-dev-7788-g1ad9096
user32p.h File Reference
#include "controls.h"
#include "dde_private.h"
#include "regcontrol.h"
#include "resource.h"
#include "ntwrapper.h"
#include "immtable.h"
Include dependency graph for user32p.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Imm32ApiTable
 

Macros

#define IMM_RETURN_VOID(retval)   /* empty */
 
#define IMM_RETURN_NONVOID(retval)   return (retval)
 
#define DEFINE_IMM_ENTRY(type, name, params, retval, retkind)    typedef type (WINAPI *FN_##name)params;
 
#define DEFINE_IMM_ENTRY(type, name, params, retval, retkind)    FN_##name p##name;
 
#define user32_module   User32Instance
 
#define IMM_FN(name)   gImmApiEntries.p##name
 
#define IS_ATOM(x)    (((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))
 
#define SPY_DISPATCHMESSAGE   0x0101
 
#define SPY_SENDMESSAGE   0x0103
 
#define SPY_DEFWNDPROC   0x0105
 
#define SPY_RESULT_OK   0x0001
 
#define SPY_RESULT_INVALIDHWND   0x0003
 
#define SPY_RESULT_DEFWND   0x0005
 

Functions

BOOL WINAPI GdiDllInitialize (HANDLE, ULONG, PVOID)
 
LONG WINAPI GdiGetCharDimensions (HDC, LPTEXTMETRICW, LONG *)
 
const charSPY_GetMsgName (UINT msg, HWND hWnd)
 
const charSPY_GetVKeyName (WPARAM wParam)
 
void SPY_EnterMessage (INT iFlag, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
 
void SPY_ExitMessage (INT iFlag, HWND hwnd, UINT msg, LRESULT lReturn, WPARAM wParam, LPARAM lParam)
 
BOOL FASTCALL BeginIfHookedUserApiHook (VOID)
 
BOOL FASTCALL EndUserApiHook (VOID)
 
BOOL FASTCALL IsInsideUserApiHook (VOID)
 
VOID FASTCALL ResetUserApiHook (PUSERAPIHOOK)
 
BOOL FASTCALL IsMsgOverride (UINT, PUAHOWP)
 
BOOL WINAPI InitUserApiHook (HINSTANCE hInstance, USERAPIHOOKPROC pfn)
 
BOOL WINAPI ClearUserApiHook (HINSTANCE hInstance)
 
BOOL FASTCALL MessageInit (VOID)
 
VOID FASTCALL MessageCleanup (VOID)
 
VOID WINAPI UserSetLastError (IN DWORD dwErrCode)
 
VOID WINAPI UserSetLastNTError (IN NTSTATUS Status)
 
PCALLPROCDATA FASTCALL ValidateCallProc (HANDLE hCallProc)
 
PWND FASTCALL ValidateHwnd (HWND hwnd)
 
PWND FASTCALL ValidateHwndOrDesk (HWND hwnd)
 
PWND FASTCALL GetThreadDesktopWnd (VOID)
 
PVOID FASTCALL ValidateHandleNoErr (HANDLE handle, UINT uType)
 
PWND FASTCALL ValidateHwndNoErr (HWND hwnd)
 
BOOL FASTCALL TestWindowProcess (PWND)
 
PVOID FASTCALL ValidateHandle (HANDLE, UINT)
 
BOOL MenuInit (VOID)
 
VOID MenuCleanup (VOID)
 
UINT MenuDrawMenuBar (HDC hDC, LPRECT Rect, HWND hWnd, BOOL Draw)
 
VOID MenuTrackMouseMenuBar (HWND hWnd, ULONG Ht, POINT Pt)
 
VOID MenuTrackKbdMenuBar (HWND hWnd, UINT wParam, WCHAR wChar)
 
VOID FASTCALL Logon (BOOL IsLogon)
 
void mirror_rect (const RECT *window_rect, RECT *rect)
 
BOOL FASTCALL DefSetText (HWND hWnd, PCWSTR String, BOOL Ansi)
 
VOID FASTCALL ScrollTrackScrollBar (HWND Wnd, INT SBType, POINT Pt)
 
HCURSOR CursorIconToCursor (HICON hIcon, BOOL SemiTransparent)
 
BOOL get_icon_size (HICON hIcon, SIZE *size)
 
VOID FASTCALL IntNotifyWinEvent (DWORD, HWND, LONG, LONG, DWORD)
 
UINT WINAPI WinPosGetMinMaxInfo (HWND hWnd, POINT *MaxSize, POINT *MaxPos, POINT *MinTrack, POINT *MaxTrack)
 
VOID UserGetWindowBorders (DWORD, DWORD, SIZE *, BOOL)
 
VOID FASTCALL GetConnected (VOID)
 
BOOL FASTCALL EnumNamesA (HWINSTA WindowStation, NAMEENUMPROCA EnumFunc, LPARAM Context, BOOL Desktops)
 
BOOL FASTCALL EnumNamesW (HWINSTA WindowStation, NAMEENUMPROCW EnumFunc, LPARAM Context, BOOL Desktops)
 
BOOL UserDrawSysMenuButton (HWND hWnd, HDC hDC, LPRECT, BOOL down)
 
HWNDWIN_ListChildren (HWND hWndparent)
 
VOID DeleteFrameBrushes (VOID)
 
BOOL WINAPI GdiValidateHandle (HGDIOBJ)
 
HANDLE FASTCALL UserGetProp (HWND hWnd, ATOM Atom, BOOLEAN SystemProp)
 
BOOL WINAPI InitializeImmEntryTable (VOID)
 
HRESULT User32GetImmFileName (_Out_ LPWSTR lpBuffer, _In_ size_t cchBuffer)
 
BOOL WINAPI UpdatePerUserImmEnabling (VOID)
 
VOID APIENTRY CliImmInitializeHotKeys (DWORD dwAction, HKL hKL)
 
VOID IntLoadPreloadKeyboardLayouts (VOID)
 

Variables

HINSTANCE User32Instance
 
PPROCESSINFO g_ppi
 
SHAREDINFO gSharedInfo
 
PSERVERINFO gpsi
 
PUSER_HANDLE_TABLE gHandleTable
 
PUSER_HANDLE_ENTRY gHandleEntries
 
BOOLEAN gfLogonProcess
 
BOOLEAN gfServerProcess
 
CRITICAL_SECTION U32AccelCacheLock
 
HINSTANCE ghImm32
 
RTL_CRITICAL_SECTION gcsUserApiHook
 
USERAPIHOOK guah
 
HINSTANCE ghmodUserApiHook
 
HICON hIconSmWindows
 
HICON hIconWindows
 
Imm32ApiTable gImmApiEntries
 

Macro Definition Documentation

◆ DEFINE_IMM_ENTRY [1/2]

#define DEFINE_IMM_ENTRY (   type,
  name,
  params,
  retval,
  retkind 
)     typedef type (WINAPI *FN_##name)params;

Definition at line 33 of file user32p.h.

◆ DEFINE_IMM_ENTRY [2/2]

#define DEFINE_IMM_ENTRY (   type,
  name,
  params,
  retval,
  retkind 
)     FN_##name p##name;

Definition at line 33 of file user32p.h.

◆ IMM_FN

#define IMM_FN (   name)    gImmApiEntries.p##name

Definition at line 56 of file user32p.h.

◆ IMM_RETURN_NONVOID

#define IMM_RETURN_NONVOID (   retval)    return (retval)

Definition at line 21 of file user32p.h.

◆ IMM_RETURN_VOID

#define IMM_RETURN_VOID (   retval)    /* empty */

Definition at line 20 of file user32p.h.

◆ IS_ATOM

#define IS_ATOM (   x)     (((ULONG_PTR)(x) > 0x0) && ((ULONG_PTR)(x) < 0x10000))

Definition at line 58 of file user32p.h.

◆ SPY_DEFWNDPROC

#define SPY_DEFWNDPROC   0x0105

Definition at line 69 of file user32p.h.

◆ SPY_DISPATCHMESSAGE

#define SPY_DISPATCHMESSAGE   0x0101

Definition at line 67 of file user32p.h.

◆ SPY_RESULT_DEFWND

#define SPY_RESULT_DEFWND   0x0005

Definition at line 72 of file user32p.h.

◆ SPY_RESULT_INVALIDHWND

#define SPY_RESULT_INVALIDHWND   0x0003

Definition at line 71 of file user32p.h.

◆ SPY_RESULT_OK

#define SPY_RESULT_OK   0x0001

Definition at line 70 of file user32p.h.

◆ SPY_SENDMESSAGE

#define SPY_SENDMESSAGE   0x0103

Definition at line 68 of file user32p.h.

◆ user32_module

#define user32_module   User32Instance

Definition at line 40 of file user32p.h.

Function Documentation

◆ BeginIfHookedUserApiHook()

BOOL FASTCALL BeginIfHookedUserApiHook ( VOID  )

Definition at line 106 of file usrapihk.c.

107{
109 if (IsInsideUserApiHook()) return TRUE;
110
112 return FALSE;
113}
#define InterlockedIncrement
Definition: armddk.h:53
#define InterlockedDecrement
Definition: armddk.h:52
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
BOOL FASTCALL IsInsideUserApiHook(VOID)
Definition: usrapihk.c:98
LONG gcCallUserApiHook
Definition: usrapihk.c:35

Referenced by AdjustWindowRectEx(), DefWindowProcA(), DefWindowProcW(), DrawCaption(), DrawFrameControl(), EnableScrollBar(), GetScrollInfo(), GetSystemMetrics(), IntCallWindowProcA(), IntCallWindowProcW(), MDIRedrawFrame(), SetScrollInfo(), SetWindowRgn(), SystemParametersInfoA(), and SystemParametersInfoW().

◆ ClearUserApiHook()

BOOL WINAPI ClearUserApiHook ( HINSTANCE  hInstance)

Definition at line 193 of file usrapihk.c.

194{
196 USERAPIHOOKPROC pfn = NULL, pfn1 = NULL;
197
201 {
202 pfn1 = gpfnInitUserApi;
203 if ( --gcLoadUserApiHook == 0 )
204 {
205 gfUserApiHook = 0;
207 if ( gcCallUserApiHook )
208 {
209 hInstance = NULL;
210 pfn1 = NULL;
211 pfn = gpfnInitUserApi;
213 }
214 else
215 {
219 }
220 }
221 }
223
224 if ( pfn )
225 {
226 pfn(uahShutdown, 0); // Shutdown.
227
229 pfn1 = gpfnInitUserApi;
230
231 if ( --gcLoadUserApiHook == 0 )
232 {
233 if ( gcCallUserApiHook )
234 {
235 hInstance = NULL;
236 pfn1 = NULL;
237 }
238 else
239 {
243 }
244 }
246 }
247
248 if ( pfn1 ) pfn1(uahStop, 0);
249
250 return hInstance != 0;
251}
HINSTANCE hInstance
Definition: charmap.c:19
#define NULL
Definition: types.h:112
HMODULE hModule
Definition: animate.c:44
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
BOOL(CALLBACK * USERAPIHOOKPROC)(UAPIHK State, PUSERAPIHOOK puah)
Definition: undocuser.h:370
@ uahStop
Definition: undocuser.h:366
@ uahShutdown
Definition: undocuser.h:367
RTL_CRITICAL_SECTION gcsUserApiHook
Definition: usrapihk.c:39
HINSTANCE ghmodUserApiHook
Definition: usrapihk.c:37
VOID FASTCALL ResetUserApiHook(PUSERAPIHOOK puah)
Definition: usrapihk.c:131
USERAPIHOOK guah
Definition: usrapihk.c:344
DWORD gfUserApiHook
Definition: usrapihk.c:36
DWORD gcLoadUserApiHook
Definition: usrapihk.c:34
USERAPIHOOKPROC gpfnInitUserApi
Definition: usrapihk.c:38

Referenced by ClientLoadLibrary().

◆ CliImmInitializeHotKeys()

VOID APIENTRY CliImmInitializeHotKeys ( DWORD  dwAction,
HKL  hKL 
)

Definition at line 425 of file input.c.

426{
427 UINT nCount;
428 LPHKL pList;
429 UINT iIndex;
431 BYTE bFlags = 0;
432 BOOL bCheck;
433
435
437
438 if (dwAction == SETIMEHOTKEY_INITIALIZE)
439 {
442
444 }
445 else
446 {
448 if (!nCount)
449 return;
450
451 pList = RtlAllocateHeap(RtlGetProcessHeap(), 0, nCount * sizeof(HKL));
452 if (!pList)
453 return;
454
456
457 for (iIndex = 0; iIndex < nCount; ++iIndex)
458 {
459 LangID = LOWORD(pList[iIndex]);
461 }
462
463 RtlFreeHeap(RtlGetProcessHeap(), 0, pList);
464 }
465
466 if (bFlags & FE_JAPANESE)
468
469 if (bFlags & FE_CHINESE_TRADITIONAL)
471
472 if (bFlags & FE_CHINESE_SIMPLIFIED)
474}
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:590
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:608
unsigned int BOOL
Definition: ntddk_ex.h:94
FxChildList * pList
HKL FAR * LPHKL
Definition: imm.h:24
UINT NTAPI NtUserGetKeyboardLayoutList(ULONG nItems, HKL *pHklBuff)
Definition: kbdlayout.c:1075
BOOL NTAPI NtUserSetImeHotKey(DWORD dwHotKeyId, UINT uModifiers, UINT uVirtualKey, HKL hKL, DWORD dwAction)
Definition: ime.c:451
LCID WINAPI GetUserDefaultLCID(void)
Definition: lang.c:778
USHORT LANGID
Definition: mui.h:9
UINT_PTR HKL
Definition: msctf.idl:143
unsigned int UINT
Definition: ndis.h:50
#define LOWORD(l)
Definition: pedump.c:82
#define LANGIDFROMLCID(l)
Definition: nls.h:18
#define _countof(array)
Definition: sndvol32.h:68
@ SETIMEHOTKEY_INITIALIZE
Definition: undocuser.h:403
_Must_inspect_result_ _In_ WDFUSBDEVICE _In_opt_ WDFREQUEST _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_writes_opt_ NumCharacters PUSHORT _Inout_ PUSHORT _In_ UCHAR _In_opt_ USHORT LangID
Definition: wdfusb.h:1083
#define FE_JAPANESE
Definition: input.c:63
VOID APIENTRY CliGetPreloadKeyboardLayouts(PBYTE pbFlags)
Definition: input.c:370
IMEHOTKEYENTRY DefaultHotKeyTableT[]
Definition: input.c:49
IMEHOTKEYENTRY DefaultHotKeyTableC[]
Definition: input.c:56
#define FE_CHINESE_SIMPLIFIED
Definition: input.c:65
#define FE_CHINESE_TRADITIONAL
Definition: input.c:64
VOID FASTCALL IntSetFeKeyboardFlags(LANGID LangID, PBYTE pbFlags)
Definition: input.c:70
BOOL FASTCALL CliGetImeHotKeysFromRegistry(VOID)
Definition: input.c:337
IMEHOTKEYENTRY DefaultHotKeyTableJ[]
Definition: input.c:43
VOID APIENTRY CliSetDefaultImeHotKeys(PIMEHOTKEYENTRY pEntries, UINT nCount, BOOL bCheck)
Definition: input.c:406
unsigned char BYTE
Definition: xxhash.c:193

Referenced by IntLoadKeyboardLayout(), UnloadKeyboardLayout(), and UpdatePerUserSystemParameters().

◆ CursorIconToCursor()

HCURSOR CursorIconToCursor ( HICON  hIcon,
BOOL  SemiTransparent 
)

Definition at line 79 of file cursoricon.c.

80{
82 return NULL;
83}
#define UNIMPLEMENTED
Definition: debug.h:115

◆ DefSetText()

BOOL FASTCALL DefSetText ( HWND  hWnd,
PCWSTR  String,
BOOL  Ansi 
)

Definition at line 65 of file defwnd.c.

66{
67 BOOL Ret;
68 LARGE_STRING lsString;
69
70 if ( String )
71 {
72 if ( Ansi )
74 else
76 }
77 Ret = NtUserDefSetText(hWnd, (String ? &lsString : NULL));
78
79 return Ret;
80}
HWND hWnd
Definition: settings.c:17
VOID NTAPI RtlInitLargeAnsiString(IN OUT PLARGE_ANSI_STRING, IN PCSZ, IN INT)
Definition: rtlstr.c:17
BOOL NTAPI NtUserDefSetText(HWND WindowHandle, PLARGE_STRING WindowText)
Definition: window.c:4453
VOID NTAPI RtlInitLargeUnicodeString(IN OUT PLARGE_UNICODE_STRING, IN PCWSTR, IN INT)
Definition: rtlstr.c:42
CONST char * PCSZ
Definition: umtypes.h:125
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433

◆ DeleteFrameBrushes()

VOID DeleteFrameBrushes ( VOID  )

Definition at line 71 of file paint.c.

72{
73 unsigned Brush;
74
75 for (Brush = 0; Brush < sizeof(FrameBrushes) / sizeof(HBRUSH); Brush++)
76 {
77 if (NULL != FrameBrushes[Brush])
78 {
81 }
82 }
83 if (NULL != hHatch)
84 {
86 hHatch = NULL;
87 }
88}
pKey DeleteObject()
static HBRUSH FrameBrushes[13]
Definition: paint.c:32
static HBITMAP hHatch
Definition: paint.c:33

Referenced by Cleanup().

◆ EndUserApiHook()

◆ EnumNamesA()

BOOL FASTCALL EnumNamesA ( HWINSTA  WindowStation,
NAMEENUMPROCA  EnumFunc,
LPARAM  Context,
BOOL  Desktops 
)

Definition at line 273 of file winsta.c.

277{
278 ENUMNAMESASCIICONTEXT PrivateContext;
279
280 PrivateContext.UserEnumFunc = EnumFunc;
281 PrivateContext.UserContext = Context;
282
283 return EnumNamesW(WindowStation, EnumNamesCallback, (LPARAM) &PrivateContext, Desktops);
284}
static BOOL CALLBACK EnumFunc(_In_ HWND hWnd, _In_ PCWSTR lpszString, _In_ HANDLE hData)
Definition: SetProp.c:15
NAMEENUMPROCA UserEnumFunc
Definition: winsta.c:201
BOOL CALLBACK EnumNamesCallback(LPWSTR Name, LPARAM Param)
Definition: winsta.c:211
BOOL FASTCALL EnumNamesW(HWINSTA WindowStation, NAMEENUMPROCW EnumFunc, LPARAM Context, BOOL Desktops)
Definition: winsta.c:130
LONG_PTR LPARAM
Definition: windef.h:208

Referenced by EnumDesktopsA(), and EnumWindowStationsA().

◆ EnumNamesW()

BOOL FASTCALL EnumNamesW ( HWINSTA  WindowStation,
NAMEENUMPROCW  EnumFunc,
LPARAM  Context,
BOOL  Desktops 
)

Definition at line 130 of file winsta.c.

134{
135 CHAR Buffer[256];
136 PVOID NameList;
137 PWCHAR Name;
140 ULONG CurrentEntry, EntryCount;
141 BOOL Ret;
142
143 /* Check parameters */
144 if (WindowStation == NULL && Desktops)
145 {
146 WindowStation = GetProcessWindowStation();
147 }
148
149 /* Try with fixed-size buffer */
150 Status = NtUserBuildNameList(WindowStation, sizeof(Buffer), Buffer, &RequiredSize);
151 if (NT_SUCCESS(Status))
152 {
153 /* Fixed-size buffer is large enough */
154 NameList = (PWCHAR) Buffer;
155 }
157 {
158 /* Allocate a larger buffer */
159 NameList = HeapAlloc(GetProcessHeap(), 0, RequiredSize);
160 if (NameList == NULL)
161 return FALSE;
162
163 /* Try again */
164 Status = NtUserBuildNameList(WindowStation, RequiredSize, NameList, NULL);
165 if (!NT_SUCCESS(Status))
166 {
167 HeapFree(GetProcessHeap(), 0, NameList);
169 return FALSE;
170 }
171 }
172 else
173 {
174 /* Some unrecognized error occured */
176 return FALSE;
177 }
178
179 /* Enum the names one by one */
180 EntryCount = *((DWORD *) NameList);
181 Name = (PWCHAR) ((PCHAR) NameList + sizeof(DWORD));
182 Ret = TRUE;
183 for (CurrentEntry = 0; CurrentEntry < EntryCount && Ret; ++CurrentEntry)
184 {
185 Ret = (*EnumFunc)(Name, Context);
186 Name += wcslen(Name) + 1;
187 }
188
189 /* Cleanup */
190 if (NameList != Buffer)
191 {
192 HeapFree(GetProcessHeap(), 0, NameList);
193 }
194
195 return Ret;
196}
struct NameRec_ * Name
Definition: cdprocs.h:460
LONG NTSTATUS
Definition: precomp.h:26
Definition: bufpool.h:45
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define GetProcessHeap()
Definition: compat.h:736
#define SetLastError(x)
Definition: compat.h:752
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
unsigned long DWORD
Definition: ntddk_ex.h:95
Status
Definition: gdiplustypes.h:25
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
NTSTATUS NTAPI NtUserBuildNameList(HWINSTA hWinSta, ULONG dwSize, PVOID lpBuffer, PULONG pRequiredSize)
Definition: winsta.c:1937
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
#define DWORD
Definition: nt_native.h:44
#define STATUS_BUFFER_TOO_SMALL
Definition: shellext.h:69
uint16_t * PWCHAR
Definition: typedefs.h:56
uint32_t ULONG
Definition: typedefs.h:59
char * PCHAR
Definition: typedefs.h:51
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ ULONG _Out_ PVOID _Out_ PULONG RequiredSize
Definition: wdfdevice.h:4439
HWINSTA WINAPI GetProcessWindowStation(void)
Definition: ntwrapper.h:124
char CHAR
Definition: xmlstorage.h:175

Referenced by EnumDesktopsW(), EnumNamesA(), and EnumWindowStationsW().

◆ GdiDllInitialize()

BOOL WINAPI GdiDllInitialize ( HANDLE  ,
ULONG  ,
PVOID   
)

◆ GdiGetCharDimensions()

LONG WINAPI GdiGetCharDimensions ( HDC  hdc,
LPTEXTMETRICW  lptm,
LONG height 
)

Definition at line 2145 of file font.c.

2146{
2147 SIZE sz;
2149 static const WCHAR alphabet[] =
2150 {
2151 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q',
2152 'r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H',
2153 'I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',0
2154 };
2155
2156 if(!GetTextMetricsW(hdc, &tm)) return 0;
2157
2158 if(!GetTextExtentPointW(hdc, alphabet, 52, &sz)) return 0;
2159
2160 if (lptm) *lptm = tm;
2161 if (height) *height = tm.tmHeight;
2162
2163 return (sz.cx / 26 + 1) / 2;
2164}
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
HDC hdc
Definition: main.c:9
static LPTEXTMETRICW lptm
Definition: font.c:42
LONG cx
Definition: kdterminal.h:27
Definition: time.h:68
BOOL WINAPI GetTextMetricsW(_In_ HDC, _Out_ LPTEXTMETRICW)
Definition: text.c:221
BOOL WINAPI GetTextExtentPointW(_In_ HDC hdc, _In_reads_(c) LPCWSTR lpString, _In_ int c, _Out_ LPSIZE lpsz)
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ GdiValidateHandle()

BOOL WINAPI GdiValidateHandle ( HGDIOBJ  hobj)

Definition at line 712 of file misc.c.

713{
715 if ( (Entry->Type & GDI_ENTRY_BASETYPE_MASK) != 0 &&
717 GDI_HANDLE_GET_TYPE(hobj) )
718 {
719 HANDLE pid = (HANDLE)((ULONG_PTR)Entry->ProcessId & ~0x1);
720 if(pid == NULL || pid == CurrentProcessId)
721 {
722 return TRUE;
723 }
724 }
725 return FALSE;
726
727}
#define GDI_HANDLE_GET_INDEX(h)
Definition: gdi.h:28
#define GDI_HANDLE_GET_TYPE(h)
Definition: gdi.h:31
#define GDI_HANDLE_TYPE_MASK
Definition: gdi.h:17
#define GDI_ENTRY_BASETYPE_MASK
Definition: ntgdihdl.h:34
#define GDI_ENTRY_UPPER_SHIFT
Definition: ntgdihdl.h:35
base of all file and directory entries
Definition: entries.h:83
Definition: gdi.h:2
PVOID HANDLE
Definition: typedefs.h:73
uint32_t ULONG_PTR
Definition: typedefs.h:65
PGDI_TABLE_ENTRY GdiHandleTable
Definition: misc.c:33
HANDLE CurrentProcessId
Definition: misc.c:35
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
Definition: winddi.h:3837

◆ get_icon_size()

BOOL get_icon_size ( HICON  hIcon,
SIZE size 
)

Definition at line 74 of file cursoricon.c.

75{
76 return NtUserGetIconSize(hIcon, 0, &size->cx, &size->cy);
77}
GLsizeiptr size
Definition: glext.h:5919
BOOL NTAPI NtUserGetIconSize(HANDLE Handle, UINT istepIfAniCur, LONG *plcx, LONG *plcy)
HICON hIcon
Definition: msconfig.c:44

◆ GetConnected()

VOID FASTCALL GetConnected ( VOID  )

◆ GetThreadDesktopWnd()

PWND FASTCALL GetThreadDesktopWnd ( VOID  )

Definition at line 397 of file misc.c.

398{
400 if (Wnd != NULL)
401 Wnd = DesktopPtrToUser(Wnd);
402 return Wnd;
403}
static PVOID FASTCALL DesktopPtrToUser(PVOID ptr)
Definition: utils.c:324
struct _WND * spwnd
Definition: ntuser.h:137
Definition: ntuser.h:694
static __inline PDESKTOPINFO GetThreadDesktopInfo(VOID)
Definition: user_x.h:43

Referenced by GetDesktopWindow(), IsChild(), and ValidateHwndOrDesk().

◆ InitializeImmEntryTable()

BOOL WINAPI InitializeImmEntryTable ( VOID  )

Definition at line 119 of file imm.c.

120{
123}
BOOL gbImmInitializing
Definition: imm.c:22
static BOOL IntInitializeImmEntryTable(VOID)
Definition: imm.c:70

Referenced by DllMain().

◆ InitUserApiHook()

BOOL WINAPI InitUserApiHook ( HINSTANCE  hInstance,
USERAPIHOOKPROC  pfn 
)

Definition at line 255 of file usrapihk.c.

256{
257 USERAPIHOOK uah;
258
259 ResetUserApiHook(&uah);
260
262
263 if (!pfn(uahLoadInit,&uah) || // Swap data, User32 to and Uxtheme from!
265 uah.size <= 0 )
266 {
268 return FALSE;
269 }
270
271 if ( ghmodUserApiHook )
272 {
274 {
276 pfn(uahStop, 0);
277 return FALSE;
278 }
280 }
281 else
282 {
284 // Do not over write GetRealWindowOwner.
285 RtlCopyMemory(&guah, &uah, sizeof(USERAPIHOOK) - sizeof(LONG));
286 gpfnInitUserApi = pfn;
288 gfUserApiHook = 1;
289 // Copy Message Masks
291 &uah.DefWndProcArray,
293 sizeof(grgbDwpLiteHookMsg));
294
296 &uah.WndProcArray,
298 sizeof(grgbWndLiteHookMsg));
299
301 &uah.DlgProcArray,
303 sizeof(grgbDlgLiteHookMsg));
304 }
306 return TRUE;
307}
long LONG
Definition: pedump.c:60
FORCERESETUSERAPIHOOK ForceResetUserApiHook
Definition: undocuser.h:356
UAHOWP WndProcArray
Definition: undocuser.h:349
UAHOWP DlgProcArray
Definition: undocuser.h:352
UAHOWP DefWndProcArray
Definition: undocuser.h:341
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
@ uahLoadInit
Definition: undocuser.h:365
BOOL WINAPI ForceResetUserApiHook(HINSTANCE hInstance)
Definition: usrapihk.c:117
BYTE grgbWndLiteHookMsg[128]
Definition: usrapihk.c:42
BYTE grgbDwpLiteHookMsg[128]
Definition: usrapihk.c:41
BYTE grgbDlgLiteHookMsg[128]
Definition: usrapihk.c:43
VOID FASTCALL CopyMsgMask(PUAHOWP Dest, PUAHOWP Src, PVOID hkmsg, DWORD Size)
Definition: usrapihk.c:76

Referenced by ClientLoadLibrary().

◆ IntLoadPreloadKeyboardLayouts()

VOID IntLoadPreloadKeyboardLayouts ( VOID  )

Definition at line 148 of file input.c.

149{
150 UINT nNumber, uFlags;
151 DWORD cbValue, dwType;
152 WCHAR szNumber[32], szValue[KL_NAMELENGTH];
153 HKEY hPreloadKey;
154 BOOL bOK = FALSE;
155 HKL hKL, hDefaultKL = NULL;
156
158 L"Keyboard Layout\\Preload",
159 &hPreloadKey) != ERROR_SUCCESS)
160 {
161 return;
162 }
163
164 for (nNumber = 1; nNumber <= 1000; ++nNumber)
165 {
166 _ultow(nNumber, szNumber, 10);
167
168 cbValue = sizeof(szValue);
169 if (RegQueryValueExW(hPreloadKey,
170 szNumber,
171 NULL,
172 &dwType,
173 (LPBYTE)szValue,
174 &cbValue) != ERROR_SUCCESS)
175 {
176 break;
177 }
178
179 if (dwType != REG_SZ)
180 continue;
181
182 if (nNumber == 1) /* The first entry is for default keyboard layout */
183 uFlags = KLF_SUBSTITUTE_OK | KLF_ACTIVATE | KLF_RESET;
184 else
186
187 hKL = LoadKeyboardLayoutW(szValue, uFlags);
188 if (hKL)
189 {
190 bOK = TRUE;
191 if (nNumber == 1) /* The first entry */
192 hDefaultKL = hKL;
193 }
194 }
195
196 RegCloseKey(hPreloadKey);
197
198 if (hDefaultKL)
199 SystemParametersInfoW(SPI_SETDEFAULTINPUTLANG, 0, &hDefaultKL, 0);
200
201 if (!bOK)
202 {
203 /* Fallback to English (US) */
204 LoadKeyboardLayoutW(L"00000409", KLF_SUBSTITUTE_OK | KLF_ACTIVATE | KLF_RESET);
205 }
206}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
LONG WINAPI RegOpenKeyW(HKEY hKey, LPCWSTR lpSubKey, PHKEY phkResult)
Definition: reg.c:3297
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4132
UINT uFlags
Definition: api.c:59
_CRTIMP wchar_t *__cdecl _ultow(_In_ unsigned long _Value, _Pre_notnull_ _Post_z_ wchar_t *_Dest, _In_ int _Radix)
#define REG_SZ
Definition: layer.c:22
#define L(x)
Definition: ntvdm.h:50
unsigned char * LPBYTE
Definition: typedefs.h:53
HKL WINAPI LoadKeyboardLayoutW(LPCWSTR pwszKLID, UINT Flags)
Definition: input.c:845
#define HKEY_CURRENT_USER
Definition: winreg.h:11
#define KL_NAMELENGTH
Definition: winuser.h:122
#define KLF_REPLACELANG
Definition: winuser.h:115
#define KLF_ACTIVATE
Definition: winuser.h:111
#define KLF_SUBSTITUTE_OK
Definition: winuser.h:112
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
#define KLF_NOTELLSHELL
Definition: winuser.h:116

Referenced by UpdatePerUserSystemParameters().

◆ IntNotifyWinEvent()

VOID FASTCALL IntNotifyWinEvent ( DWORD  event,
HWND  hwnd,
LONG  idObject,
LONG  idChild,
DWORD  flags 
)

Definition at line 113 of file hook.c.

120{
121 NOTIFYEVENT ne;
122 ne.event = event;
123 ne.idObject = idObject;
124 ne.idChild = idChild;
125 ne.flags = flags;
128}
PSERVERINFO gpsi
Definition: imm.c:18
struct _cl_event * event
Definition: glext.h:7739
GLbitfield flags
Definition: glext.h:7161
EXTINLINE VOID NtUserxNotifyWinEvent(HWND hWnd, PVOID ne)
Definition: ntwrapper.h:721
DWORD dwInstalledEventHooks
Definition: ntuser.h:1071
static DWORD FASTCALL GetMaskFromEvent(DWORD Event)
Definition: hook.c:46
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023

◆ IsInsideUserApiHook()

BOOL FASTCALL IsInsideUserApiHook ( VOID  )

Definition at line 98 of file usrapihk.c.

99{
100 if ( ghmodUserApiHook && gfUserApiHook ) return TRUE;
101 return FALSE;
102}

Referenced by BeginIfHookedUserApiHook(), and LoadUserApiHook().

◆ IsMsgOverride()

BOOL FASTCALL IsMsgOverride ( UINT  Msg,
PUAHOWP  puaowpOverride 
)

Definition at line 63 of file usrapihk.c.

64{
65 UINT nMsg = Msg / 8; // Group Indexed, (Msg 1024) / 8 = (0 -> 127) bytes Max
66
67 if ( puaowpOverride && nMsg < puaowpOverride->Size )
68 {
69 return (puaowpOverride->MsgBitArray[nMsg] & (1 << (Msg & WM_SETFOCUS)));
70 }
71 return FALSE;
72}
struct @1627 Msg[]
BYTE * MsgBitArray
Definition: undocuser.h:328
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_DEVICE_PROPERTY_DATA _In_ DEVPROPTYPE _In_ ULONG Size
Definition: wdfdevice.h:4533
#define WM_SETFOCUS
Definition: winuser.h:1613

Referenced by DefWindowProcA(), DefWindowProcW(), IntCallWindowProcA(), and IntCallWindowProcW().

◆ Logon()

VOID FASTCALL Logon ( BOOL  IsLogon)

Definition at line 74 of file logon.c.

75{
76 USER_API_MESSAGE ApiMessage;
77 PUSER_LOGON LogonRequest = &ApiMessage.Data.LogonRequest;
78
79 LogonRequest->IsLogon = IsLogon;
81 NULL,
83 sizeof(*LogonRequest));
84}
#define CSR_CREATE_API_NUMBER(ServerId, ApiId)
Definition: csrmsg.h:37
NTSTATUS NTAPI CsrClientCallServer(_Inout_ PCSR_API_MESSAGE ApiMessage, _Inout_opt_ PCSR_CAPTURE_BUFFER CaptureBuffer, _In_ CSR_API_NUMBER ApiNumber, _In_ ULONG DataLength)
Definition: connect.c:366
union _USER_API_MESSAGE::@3536 Data
USER_LOGON LogonRequest
Definition: winmsg.h:110
BOOL IsLogon
Definition: winmsg.h:65
@ UserpLogon
Definition: winmsg.h:23
#define USERSRV_SERVERDLL_INDEX
Definition: winmsg.h:15

Referenced by SetWindowStationUser().

◆ MenuCleanup()

Definition at line 641 of file menu.c.

642{
643}

◆ MenuDrawMenuBar()

UINT MenuDrawMenuBar ( HDC  hDC,
LPRECT  Rect,
HWND  hWnd,
BOOL  Draw 
)

◆ MenuInit()

BOOL MenuInit ( VOID  )

Definition at line 359 of file menu.c.

360{
361 NONCLIENTMETRICSW ncm;
362
363 /* get the menu font */
364 if (!ghMenuFont || !ghMenuFontBold)
365 {
366 ncm.cbSize = sizeof(ncm);
367 if(!UserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(ncm), &ncm, 0))
368 {
369 ERR("MenuInit(): SystemParametersInfo(SPI_GETNONCLIENTMETRICS) failed!\n");
370 return FALSE;
371 }
372
373 ghMenuFont = GreCreateFontIndirectW(&ncm.lfMenuFont);
374 if (ghMenuFont == NULL)
375 {
376 ERR("MenuInit(): CreateFontIndirectW(hMenuFont) failed!\n");
377 return FALSE;
378 }
379 ncm.lfMenuFont.lfWeight = min(ncm.lfMenuFont.lfWeight + (FW_BOLD - FW_NORMAL), FW_HEAVY);
380 ghMenuFontBold = GreCreateFontIndirectW(&ncm.lfMenuFont);
381 if (ghMenuFontBold == NULL)
382 {
383 ERR("MenuInit(): CreateFontIndirectW(hMenuFontBold) failed!\n");
386 return FALSE;
387 }
388
391
393 }
394
395 return TRUE;
396}
#define ERR(fmt,...)
Definition: debug.h:110
#define min(a, b)
Definition: monoChain.cc:55
#define GDI_OBJ_HMGR_PUBLIC
Definition: ntgdihdl.h:116
HFONT FASTCALL GreCreateFontIndirectW(LOGFONTW *lplf)
Definition: font.c:23
BOOL NTAPI GreSetObjectOwner(HGDIOBJ hobj, ULONG ulOwner)
Definition: gdiobj.c:1255
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
Definition: gdiobj.c:1158
VOID FASTCALL co_IntSetupOBM(VOID)
Definition: callback.c:1180
HFONT ghMenuFont
Definition: menu.c:16
HFONT ghMenuFontBold
Definition: menu.c:17
BOOL FASTCALL UserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
Definition: sysparams.c:2105
#define FW_BOLD
Definition: wingdi.h:378
#define FW_NORMAL
Definition: wingdi.h:373
#define FW_HEAVY
Definition: wingdi.h:381

Referenced by ClientThreadSetupHelper(), and co_IntInitializeDesktopGraphics().

◆ MenuTrackKbdMenuBar()

VOID MenuTrackKbdMenuBar ( HWND  hWnd,
UINT  wParam,
WCHAR  wChar 
)

◆ MenuTrackMouseMenuBar()

VOID MenuTrackMouseMenuBar ( HWND  hWnd,
ULONG  Ht,
POINT  Pt 
)

◆ MessageCleanup()

VOID FASTCALL MessageCleanup ( VOID  )

Definition at line 3292 of file message.c.

3293{
3296}
CRITICAL_SECTION gcsMPH
Definition: message.c:3076
static CRITICAL_SECTION DdeCrst
Definition: message.c:178
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)

Referenced by Cleanup(), and ClientThreadSetupHelper().

◆ MessageInit()

BOOL FASTCALL MessageInit ( VOID  )

Definition at line 3284 of file message.c.

3285{
3288
3289 return TRUE;
3290}
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
Definition: synch.c:751

Referenced by ClientThreadSetupHelper().

◆ mirror_rect()

void mirror_rect ( const RECT window_rect,
RECT rect 
)

Definition at line 15 of file winpos.c.

16{
17 int width = window_rect->right - window_rect->left;
18 int tmp = rect->left;
19 rect->left = width - rect->right;
20 rect->right = width - tmp;
21}
GLint GLint GLsizei width
Definition: gl.h:1546
& rect
Definition: startmenu.cpp:1413
LONG right
Definition: windef.h:308
LONG left
Definition: windef.h:306

◆ ResetUserApiHook()

VOID FASTCALL ResetUserApiHook ( PUSERAPIHOOK  puah)

Definition at line 131 of file usrapihk.c.

132{
133 // Setup Structure.....
134 puah->size = sizeof(USERAPIHOOK);
138 puah->DefWndProcArray.Size = 0;
144 puah->PreWndProc = DefaultOWP;
145 puah->PostWndProc = DefaultOWP;
147 puah->WndProcArray.Size = 0;
151 puah->DlgProcArray.Size = 0;
160}
INT NTAPI NtUserSetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)
Definition: winpos.c:3572
BOOL NTAPI NtUserEnableScrollBar(HWND hWnd, UINT wSBflags, UINT wArrows)
Definition: scrollbar.c:1242
DWORD Size
Definition: undocuser.h:329
SYSTEMPARAMETERSINFOA SystemParametersInfoA
Definition: undocuser.h:354
WNDPROC_OWP PostWndProc
Definition: undocuser.h:348
GETREALWINDOWOWNER GetRealWindowOwner
Definition: undocuser.h:360
SETWINDOWRGN SetWindowRgn
Definition: undocuser.h:346
WNDPROC_OWP PreWndProc
Definition: undocuser.h:347
GETSCROLLINFO GetScrollInfo
Definition: undocuser.h:342
SYSTEMPARAMETERSINFOW SystemParametersInfoW
Definition: undocuser.h:355
GETSYSTEMMETRICS GetSystemMetrics
Definition: undocuser.h:353
DRAWFRAMECONTROL DrawFrameControl
Definition: undocuser.h:357
MDIREDRAWFRAME MDIRedrawFrame
Definition: undocuser.h:359
ADJUSTWINDOWRECTEX AdjustWindowRectEx
Definition: undocuser.h:345
WNDPROC DefWindowProcA
Definition: undocuser.h:339
ENABLESCROLLBAR EnableScrollBar
Definition: undocuser.h:344
WNDPROC_OWP PreDefDlgProc
Definition: undocuser.h:350
WNDPROC_OWP PostDefDlgProc
Definition: undocuser.h:351
WNDPROC DefWindowProcW
Definition: undocuser.h:340
DRAWCAPTION DrawCaption
Definition: undocuser.h:358
SETSCROLLINFO SetScrollInfo
Definition: undocuser.h:343
struct tagUSERAPIHOOK USERAPIHOOK
LRESULT WINAPI RealDefWindowProcW(HWND, UINT, WPARAM, LPARAM)
Definition: defwnd.c:1042
BOOL WINAPI RealGetScrollInfo(HWND, INT, LPSCROLLINFO)
Definition: scrollbar.c:1512
LRESULT WINAPI RealDefWindowProcA(HWND, UINT, WPARAM, LPARAM)
Definition: defwnd.c:818
INT WINAPI RealSetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL)
Definition: scrollbar.c:1665
int WINAPI RealGetSystemMetrics(int)
Definition: desktop.c:128
BOOL WINAPI RealMDIRedrawFrame(HWND, DWORD)
Definition: usrapihk.c:311
LRESULT WINAPI DefaultOWP(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, ULONG_PTR lResult, PDWORD pData)
Definition: usrapihk.c:52
DWORD WINAPI GetRealWindowOwner(HWND)
Definition: window.c:1899
BOOL WINAPI RealDrawFrameControl(HDC, LPRECT, UINT, UINT)
Definition: draw.c:1423
BOOL WINAPI RealSystemParametersInfoW(UINT, UINT, PVOID, UINT)
Definition: desktop.c:341
BOOL WINAPI RealSystemParametersInfoA(UINT, UINT, PVOID, UINT)
Definition: desktop.c:180
BOOL WINAPI RealUserDrawCaption(HWND hWnd, HDC hDC, LPCRECT lpRc, UINT uFlags)
Definition: nonclient.c:80
BOOL WINAPI RealAdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD)
Definition: nonclient.c:90

Referenced by ClearUserApiHook(), ForceResetUserApiHook(), and InitUserApiHook().

◆ ScrollTrackScrollBar()

VOID FASTCALL ScrollTrackScrollBar ( HWND  Wnd,
INT  SBType,
POINT  Pt 
)

Definition at line 1155 of file scrollbar.c.

1157{
1158 MSG Msg;
1159 UINT XOffset = 0, YOffset = 0;
1160
1161 if (SBType != SB_CTL)
1162 { // Used with CMD mouse tracking.
1163 PWND pwnd = ValidateHwnd(Wnd);
1164 if (!pwnd) return;
1165 XOffset = pwnd->rcClient.left - pwnd->rcWindow.left;
1166 YOffset = pwnd->rcClient.top - pwnd->rcWindow.top;
1167// RECT rect;
1168// WIN_GetRectangles( Wnd, COORDS_CLIENT, &rect, NULL );
1169 ScreenToClient(Wnd, &Pt);
1170// Pt.x -= rect.left;
1171// Pt.y -= rect.top;
1172 Pt.x += XOffset;
1173 Pt.y += YOffset;
1174 }
1175
1177
1178 do
1179 {
1180 if (!GetMessageW(&Msg, 0, 0, 0)) break;
1181 if (CallMsgFilterW(&Msg, MSGF_SCROLLBAR)) continue;
1182 if ( Msg.message == WM_LBUTTONUP ||
1183 Msg.message == WM_MOUSEMOVE ||
1184 (Msg.message == WM_SYSTIMER && Msg.wParam == SCROLL_TIMER))
1185 {
1186 Pt.x = LOWORD(Msg.lParam) + XOffset;
1187 Pt.y = HIWORD(Msg.lParam) + YOffset;
1188 IntScrollHandleScrollEvent(Wnd, SBType, Msg.message, Pt);
1189 }
1190 else
1191 {
1194 }
1195 if (!IsWindow(Wnd))
1196 {
1198 break;
1199 }
1200 } while (Msg.message != WM_LBUTTONUP && GetCapture() == Wnd);
#define WM_SYSTIMER
Definition: comctl32.h:119
#define ValidateHwnd(hwnd)
Definition: precomp.h:85
RECT rcClient
Definition: ntuser.h:717
RECT rcWindow
Definition: ntuser.h:716
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
LONG top
Definition: windef.h:307
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
#define HIWORD(l)
Definition: typedefs.h:247
static VOID FASTCALL IntScrollHandleScrollEvent(HWND Wnd, INT SBType, UINT Msg, POINT Pt)
Definition: scrollbar.c:763
#define SCROLL_TIMER
Definition: scrollbar.c:44
BOOL WINAPI IsWindow(_In_opt_ HWND)
#define MSGF_SCROLLBAR
Definition: winuser.h:1178
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ReleaseCapture(void)
Definition: message.c:2890
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
#define WM_MOUSEMOVE
Definition: winuser.h:1775
HWND WINAPI GetCapture(void)
Definition: message.c:2881
#define WM_LBUTTONDOWN
Definition: winuser.h:1776
BOOL WINAPI CallMsgFilterW(_In_ LPMSG, _In_ INT)
#define WM_LBUTTONUP
Definition: winuser.h:1777
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
#define SB_CTL
Definition: winuser.h:554
BOOL WINAPI ScreenToClient(_In_ HWND, _Inout_ LPPOINT)

Referenced by DefWndTrackScrollBar(), and ScrollBarWndProc_common().

◆ SPY_EnterMessage()

void SPY_EnterMessage ( INT  iFlag,
HWND  hwnd,
UINT  msg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 2593 of file spy.c.

2595{
2596 SPY_INSTANCE sp_e;
2597 int indent;
2598 DWORD save_error = GetLastError();
2599
2600 if (!spy_init() || exclude_msg(msg)) return;
2601
2602 sp_e.msgnum = msg;
2603 sp_e.msg_hwnd = hWnd;
2604 sp_e.lParam = lParam;
2605 sp_e.wParam = wParam;
2606 SPY_GetWndName(&sp_e);
2607 SPY_GetMsgStuff(&sp_e);
2609
2610 /* each SPY_SENDMESSAGE must be complemented by call to SPY_ExitMessage */
2611 switch(iFlag)
2612 {
2614 TRACE("%*s(%p) %-16s [%04x] %s dispatched wp=%08lx lp=%08lx\n",
2615 indent, "", hWnd, debugstr_w(sp_e.wnd_name), msg,
2616 sp_e.msg_name, wParam, lParam);
2617 break;
2618
2619 case SPY_SENDMESSAGE:
2620 {
2621 char taskName[20];
2623
2624 if (tid == GetCurrentThreadId()) strcpy( taskName, "self" );
2625 else sprintf( taskName, "tid %04ld", GetCurrentThreadId() );
2626
2627 TRACE("%*s(%p) %-16s [%04x] %s sent from %s wp=%08lx lp=%08lx\n",
2628 indent, "", hWnd, debugstr_w(sp_e.wnd_name), msg,
2629 sp_e.msg_name, taskName, wParam, lParam );
2630 SPY_DumpStructure(&sp_e, TRUE);
2631 }
2632 break;
2633
2634 case SPY_DEFWNDPROC:
2635 if (exclude_dwp()) return;
2636 TRACE("%*s(%p) DefWindowProc:[%04x] %s wp=%08lx lp=%08lx\n",
2637 indent, "", hWnd, msg, sp_e.msg_name, wParam, lParam );
2638 break;
2639 }
2641 SetLastError( save_error );
2642}
char * strcpy(char *DstString, const char *SrcString)
Definition: utclib.c:388
#define msg(x)
Definition: auth_time.c:54
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
static const WCHAR indent[]
Definition: object.c:1156
#define debugstr_w
Definition: kernel32.h:32
#define sprintf(buf, format,...)
Definition: sprintf.c:55
static TfClientId tid
#define TRACE(s)
Definition: solgame.cpp:4
static void set_indent_level(INT_PTR level)
Definition: spy.c:2036
static INT_PTR get_indent_level(void)
Definition: spy.c:2027
static void SPY_GetWndName(SPY_INSTANCE *sp_e)
Definition: spy.c:2192
static void SPY_DumpStructure(const SPY_INSTANCE *sp_e, BOOL enter)
Definition: spy.c:2304
static BOOL exclude_msg(UINT msg)
Definition: spy.c:1999
static void SPY_GetMsgStuff(SPY_INSTANCE *sp_e)
Definition: spy.c:2132
static BOOL spy_init(void)
Definition: spy.c:2531
#define SPY_INDENT_UNIT
Definition: spy.c:32
static BOOL exclude_dwp(void)
Definition: spy.c:2004
LPARAM lParam
Definition: spy.c:2015
char msg_name[60]
Definition: spy.c:2017
WPARAM wParam
Definition: spy.c:2014
UINT msgnum
Definition: spy.c:2012
WCHAR wnd_name[16]
Definition: spy.c:2019
HWND msg_hwnd
Definition: spy.c:2013
#define SPY_DISPATCHMESSAGE
Definition: user32p.h:67
#define SPY_SENDMESSAGE
Definition: user32p.h:68
#define SPY_DEFWNDPROC
Definition: user32p.h:69
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
DWORD WINAPI GetCurrentThreadId(void)
Definition: thread.c:459
DWORD WINAPI GetWindowThreadProcessId(HWND hWnd, PDWORD lpdwProcessId)

Referenced by RealDefWindowProcA(), RealDefWindowProcW(), SendMessageTimeoutA(), and SendMessageTimeoutW().

◆ SPY_ExitMessage()

void SPY_ExitMessage ( INT  iFlag,
HWND  hwnd,
UINT  msg,
LRESULT  lReturn,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 2648 of file spy.c.

2650{
2651 SPY_INSTANCE sp_e;
2652 int indent;
2653 DWORD save_error = GetLastError();
2654
2655 if (!TRACE_ON(message) || exclude_msg(msg) ||
2656 (exclude_dwp() && iFlag == SPY_RESULT_DEFWND))
2657 return;
2658
2659 sp_e.msgnum = msg;
2660 sp_e.msg_hwnd = hWnd;
2661 sp_e.lParam = lParam;
2662 sp_e.wParam = wParam;
2663 SPY_GetWndName(&sp_e);
2664 SPY_GetMsgStuff(&sp_e);
2665
2666 if ((indent = get_indent_level()))
2667 {
2670 }
2671
2672 switch(iFlag)
2673 {
2674 case SPY_RESULT_DEFWND:
2675 TRACE(" %*s(%p) DefWindowProc: [%04x] %s returned %08lx\n",
2676 indent, "", hWnd, msg, sp_e.msg_name, lReturn );
2677 break;
2678
2679 case SPY_RESULT_OK:
2680 TRACE(" %*s(%p) %-16s [%04x] %s returned %08lx\n",
2681 indent, "", hWnd, debugstr_w(sp_e.wnd_name), msg,
2682 sp_e.msg_name, lReturn );
2683 SPY_DumpStructure(&sp_e, FALSE);
2684 break;
2685 }
2686 SetLastError( save_error );
2687}
#define TRACE_ON(x)
Definition: compat.h:75
Definition: tftpd.h:60
#define SPY_RESULT_OK
Definition: user32p.h:70
#define SPY_RESULT_DEFWND
Definition: user32p.h:72

Referenced by RealDefWindowProcA(), RealDefWindowProcW(), SendMessageTimeoutA(), and SendMessageTimeoutW().

◆ SPY_GetMsgName()

const char * SPY_GetMsgName ( UINT  msg,
HWND  hWnd 
)

Definition at line 2218 of file spy.c.

2219{
2220 SPY_INSTANCE ext_sp_e;
2221 DWORD save_error = GetLastError();
2222
2223 ext_sp_e.msgnum = msg;
2224 ext_sp_e.msg_hwnd = hWnd;
2225 ext_sp_e.lParam = 0;
2226 ext_sp_e.wParam = 0;
2227 ext_sp_e.wnd_class[0] = 0;
2228 SPY_GetMsgStuff(&ext_sp_e);
2229 SetLastError( save_error );
2230 return wine_dbg_sprintf("%s", ext_sp_e.msg_name);
2231}
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
WCHAR wnd_class[60]
Definition: spy.c:2018

Referenced by ComboWndProc_common(), DefFrameProcW(), DefMDIChildProcA(), DefMDIChildProcW(), EditWndProc_common(), IntScrollHandleScrollEvent(), ListBoxWndProc_common(), and MDIClientWndProc_common().

◆ SPY_GetVKeyName()

const char * SPY_GetVKeyName ( WPARAM  wParam)

Definition at line 2236 of file spy.c.

2237{
2238 const char *vk_key_name;
2239
2241 vk_key_name = VK_KeyNames[wParam];
2242 else
2243 vk_key_name = "VK_???";
2244
2245 return vk_key_name;
2246}
static const char *const VK_KeyNames[SPY_MAX_VKKEYSNUM+1]
Definition: spy.c:1142
#define SPY_MAX_VKKEYSNUM
Definition: spy.c:1141

◆ TestWindowProcess()

BOOL FASTCALL TestWindowProcess ( PWND  Wnd)

Definition at line 166 of file misc.c.

167{
168 if (Wnd->head.pti == (PTHREADINFO)NtCurrentTeb()->Win32ThreadInfo)
169 return TRUE;
170 else
173}
DWORD_PTR NTAPI NtUserQueryWindow(HWND hWnd, DWORD Index)
Definition: window.c:4189
#define QUERY_WINDOW_UNIQUE_PROCESS_ID
Definition: ntuser.h:2827
#define NtCurrentTeb
HANDLE UniqueProcess
Definition: compat.h:825
THRDESKHEAD head
Definition: ntuser.h:695
uint32_t DWORD_PTR
Definition: typedefs.h:65
_Out_ PCLIENT_ID ClientId
Definition: kefuncs.h:1151

Referenced by DIALOG_FindMsgDestination(), GetWindowTextA(), GetWindowTextLengthA(), GetWindowTextLengthW(), GetWindowTextW(), IntGetWindowLong(), IsDialogMessageW(), SetWindowTextA(), and SetWindowTextW().

◆ UpdatePerUserImmEnabling()

BOOL WINAPI UpdatePerUserImmEnabling ( VOID  )

Definition at line 1102 of file imm.c.

1103{
1104 HMODULE imm32;
1105 BOOL ret;
1106
1108 if (!ret || !(gpsi->dwSRVIFlags & SRVINFO_IMM32))
1109 return FALSE;
1110
1111 imm32 = GetModuleHandleW(L"imm32.dll");
1112 if (imm32)
1113 return TRUE;
1114
1115 imm32 = LoadLibraryW(L"imm32.dll");
1116 if (imm32 == NULL)
1117 {
1118 ERR("Imm32 not installed!\n");
1119 ret = FALSE;
1120 }
1121
1122 return ret;
1123}
#define LoadLibraryW(x)
Definition: compat.h:747
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838
DWORD_PTR NTAPI NtUserCallNoParam(DWORD Routine)
Definition: simplecall.c:59
@ NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING
Definition: ntuser.h:1539
#define SRVINFO_IMM32
Definition: ntuser.h:949
DWORD dwSRVIFlags
Definition: ntuser.h:1051
int ret

Referenced by UpdatePerUserSystemParameters().

◆ User32GetImmFileName()

HRESULT User32GetImmFileName ( _Out_ LPWSTR  lpBuffer,
_In_ size_t  cchBuffer 
)

Definition at line 57 of file imm.c.

58{
60 if (length && length < cchBuffer)
61 {
63 return StringCchCatW(lpBuffer, cchBuffer, L"imm32.dll");
64 }
65 return StringCchCopyW(lpBuffer, cchBuffer, L"imm32.dll");
66}
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
Definition: db.cpp:175
static DWORD cchBuffer
Definition: fusion.c:85
UINT WINAPI GetSystemDirectoryW(OUT LPWSTR lpBuffer, IN UINT uSize)
Definition: path.c:2313
GLuint GLsizei GLsizei * length
Definition: glext.h:6040
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
Definition: strsafe.h:325
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
Definition: strsafe.h:149

Referenced by DllMain(), IntInitializeImmEntryTable(), and User32InitializeImmEntryTable().

◆ UserDrawSysMenuButton()

BOOL UserDrawSysMenuButton ( HWND  hWnd,
HDC  hDC,
LPRECT  ,
BOOL  down 
)

◆ UserGetProp()

HANDLE FASTCALL UserGetProp ( HWND  hWnd,
ATOM  Atom,
BOOLEAN  SystemProp 
)

Definition at line 66 of file prop.c.

67{
68 PPROPERTY Prop;
70 return Prop ? Prop->Data : NULL;
71}
_Out_ RTL_ATOM * Atom
Definition: class.h:54
_In_ ATOM _In_ HANDLE _In_ BOOLEAN SystemProp
Definition: prop.h:24
HANDLE Data
Definition: ntuser.h:1101
PPROPERTY FASTCALL IntGetProp(_In_ PWND Window, _In_ ATOM Atom, _In_ BOOLEAN SystemProp)
Definition: prop.c:16

◆ UserGetWindowBorders()

VOID UserGetWindowBorders ( DWORD  Style,
DWORD  ExStyle,
SIZE Size,
BOOL  WithClient 
)

Definition at line 888 of file winpos.c.

889{
890 DWORD Border = 0;
891
893 Border += 2;
895 Border += 1; /* for the outer frame always present */
896 if ((ExStyle & WS_EX_CLIENTEDGE) && WithClient)
897 Border += 2;
899 Border ++; /* The other border */
900 Size->cx = Size->cy = Border;
901 if ((Style & WS_THICKFRAME) && !(Style & WS_MINIMIZE)) /* The resize border */
902 {
905 }
908}
const DWORD Style
Definition: appswitch.c:71
const DWORD ExStyle
Definition: appswitch.c:72
BOOL UserHasWindowEdge(DWORD Style, DWORD ExStyle)
Definition: winpos.c:844
#define WS_CAPTION
Definition: pedump.c:624
#define WS_EX_DLGMODALFRAME
Definition: pedump.c:645
#define WS_MINIMIZE
Definition: pedump.c:622
#define WS_THICKFRAME
Definition: pedump.c:630
LONG NTAPI UserGetSystemMetrics(ULONG Index)
Definition: metric.c:213
#define WS_EX_STATICEDGE
Definition: winuser.h:403
#define SM_CXFRAME
Definition: winuser.h:994
#define SM_CYFRAME
Definition: winuser.h:996
#define SM_CYBORDER
Definition: winuser.h:965
#define SM_CXBORDER
Definition: winuser.h:964
#define SM_CXDLGFRAME
Definition: winuser.h:966
#define SM_CYDLGFRAME
Definition: winuser.h:968
#define WS_EX_CLIENTEDGE
Definition: winuser.h:384

Referenced by GetWindowInfo(), NC_HandleNCCalcSize(), RealAdjustWindowRectEx(), and UserDrawCaptionButtonWnd().

◆ UserSetLastError()

VOID WINAPI UserSetLastError ( IN DWORD  dwErrCode)

Definition at line 13 of file misc.c.

14{
15 /*
16 * Equivalent of SetLastError in kernel32, but without breaking
17 * into the debugger nor checking whether the last old error is
18 * the same as the one we are going to set.
19 */
20 NtCurrentTeb()->LastErrorValue = dwErrCode;
21}

Referenced by EndTask(), ExitWindowsWorker(), and UserSetLastNTError().

◆ UserSetLastNTError()

VOID WINAPI UserSetLastNTError ( IN NTSTATUS  Status)

Definition at line 25 of file misc.c.

26{
27 /*
28 * Equivalent of BaseSetLastNTError in kernel32, but using
29 * UserSetLastError: convert from NT to Win32, then set.
30 */
32}
VOID WINAPI UserSetLastError(IN DWORD dwErrCode)
Definition: misc.c:13

Referenced by EndTask(), ExitWindowsWorker(), GetThreadDesktop(), GetUserObjectSecurity(), RegisterLogonProcess(), RegisterServicesProcess(), and SetUserObjectSecurity().

◆ ValidateCallProc()

PCALLPROCDATA FASTCALL ValidateCallProc ( HANDLE  hCallProc)

Definition at line 339 of file misc.c.

340{
342
343 PCALLPROCDATA CallProc = ValidateHandle(hCallProc, TYPE_CALLPROC);
344
345 pEntry = GetUser32Handle(hCallProc);
346
347 if (CallProc != NULL && pEntry->ppi == g_ppi)
348 return CallProc;
349
350 return NULL;
351}
PLIST_ENTRY pEntry
Definition: fxioqueue.cpp:4484
@ TYPE_CALLPROC
Definition: ntuser.h:47
Definition: ntuser.h:17
PPROCESSINFO g_ppi
Definition: dllmain.c:29
PVOID FASTCALL ValidateHandle(HANDLE handle, UINT uType)
Definition: misc.c:252
PUSER_HANDLE_ENTRY FASTCALL GetUser32Handle(HANDLE handle)
Definition: misc.c:195

Referenced by CallWindowProcA(), and CallWindowProcW().

◆ ValidateHandle()

PVOID FASTCALL ValidateHandle ( HANDLE  hObject,
UINT  uType 
)

Definition at line 377 of file utils.c.

378{
379 LPVOID pvObj = ValidateHandleNoErr(hObject, uType);
380 if (pvObj)
381 return pvObj;
382
383 if (uType == TYPE_WINDOW)
385 else
387 return NULL;
388}
#define ERROR_INVALID_HANDLE
Definition: compat.h:98
LPVOID FASTCALL ValidateHandleNoErr(HANDLE hObject, UINT uType)
Definition: utils.c:338
@ TYPE_WINDOW
Definition: ntuser.h:41
#define ERROR_INVALID_WINDOW_HANDLE
Definition: winerror.h:881

Referenced by ValidateCallProc(), and ValidateHwnd().

◆ ValidateHandleNoErr()

PVOID FASTCALL ValidateHandleNoErr ( HANDLE  handle,
UINT  uType 
)

Definition at line 338 of file utils.c.

339{
340 UINT index;
344 LPVOID ptr;
345
346 if (!NtUserValidateHandleSecure(hObject))
347 {
348 WARN("Not a handle\n");
349 return NULL;
350 }
351
352 ht = gSharedInfo.aheList; /* handle table */
353 ASSERT(ht);
354 /* ReactOS-Specific! */
357
358 index = (LOWORD(hObject) - FIRST_USER_HANDLE) >> 1;
359 if ((INT)index < 0 || ht->nb_handles <= index || he[index].type != uType)
360 return NULL;
361
363 return NULL;
364
365 generation = HIWORD(hObject);
366 if (generation != he[index].generation && generation && generation != 0xFFFF)
367 return NULL;
368
369 ptr = he[index].ptr;
370 if (ptr)
372
373 return ptr;
374}
#define index(s, c)
Definition: various.h:29
#define WARN(fmt,...)
Definition: debug.h:112
SHAREDINFO gSharedInfo
Definition: imm.c:19
_In_ uint64_t _In_ uint64_t _In_ uint64_t generation
Definition: btrfs.c:2996
unsigned short WORD
Definition: ntddk_ex.h:93
GLuint index
Definition: glext.h:6031
static const struct newhuff ht[]
Definition: huffman.h:296
#define HANDLEENTRY_DESTROY
Definition: ntuser.h:13
BOOL NTAPI NtUserValidateHandleSecure(HANDLE hHdl)
Definition: object.c:792
struct _USER_HANDLE_ENTRY * PUSER_HANDLE_ENTRY
#define FIRST_USER_HANDLE
Definition: ntuser.h:10
#define ASSERT(a)
Definition: mode.c:44
static PVOID ptr
Definition: dispmode.c:27
PVOID aheList
Definition: ntuser.h:1131
ULONG_PTR ulSharedDelta
Definition: ntuser.h:1133
void * ptr
Definition: ntuser.h:18
unsigned char type
Definition: ntuser.h:25
int32_t INT
Definition: typedefs.h:58

Referenced by ValidateHandle(), and ValidateHwndNoErr().

◆ ValidateHwnd()

PWND FASTCALL ValidateHwnd ( HWND  hwnd)

Definition at line 359 of file misc.c.

360{
363
364 /* See if the window is cached */
365 if (hwnd && hwnd == ClientInfo->CallbackWnd.hWnd)
366 return ClientInfo->CallbackWnd.pWnd;
367
369}
#define GetWin32ClientInfo()
Definition: ntuser.h:352
CLIENT_DATA ClientInfo

◆ ValidateHwndNoErr()

PWND FASTCALL ValidateHwndNoErr ( HWND  hwnd)

Definition at line 106 of file window.c.

107{
108 PWND Window;
109
110 if (!hWnd)
111 return NULL;
112
114 if (!Window || (Window->state & WNDS_DESTROYED))
115 return NULL;
116
117 return Window;
118}
#define WNDS_DESTROYED
Definition: ntuser.h:636
struct _WND * PWND
Definition: window.c:28
PUSER_HANDLE_TABLE gHandleTable
Definition: object.c:13
PVOID UserGetObjectNoErr(PUSER_HANDLE_TABLE ht, HANDLE handle, HANDLE_TYPE type)
Definition: object.c:481

◆ ValidateHwndOrDesk()

PWND FASTCALL ValidateHwndOrDesk ( HWND  hwnd)

Definition at line 410 of file misc.c.

411{
412 if (hwnd == HWND_DESKTOP)
413 return GetThreadDesktopWnd();
414
415 return ValidateHwnd(hwnd);
416}
PWND FASTCALL GetThreadDesktopWnd(VOID)
Definition: misc.c:397
#define HWND_DESKTOP
Definition: winuser.h:1209

◆ WIN_ListChildren()

HWND * WIN_ListChildren ( HWND  hWndparent)

Definition at line 139 of file mdi.c.

141{
142
143 DWORD dwCount = 0;
144 HWND* pHwnd = NULL;
145 HANDLE hHeap;
147
148 Status = NtUserBuildHwndList(NULL, hWndparent, FALSE, 0, dwCount, NULL, &dwCount);
149
150 if ( !NT_SUCCESS( Status ) )
151 return 0;
152
153 /* allocate buffer to receive HWND handles */
154 hHeap = GetProcessHeap();
155
156 pHwnd = HeapAlloc ( hHeap, 0, sizeof(HWND)*(dwCount+1) );
157 if ( !pHwnd )
158 {
160 return 0;
161 }
162
163 /* now call kernel again to fill the buffer this time */
164 Status = NtUserBuildHwndList(NULL, hWndparent, FALSE, 0, dwCount, pHwnd, &dwCount);
165
166 if ( !NT_SUCCESS( Status ) )
167 {
168 if ( pHwnd )
169 HeapFree ( hHeap, 0, pHwnd );
170 return 0;
171 }
172
173 pHwnd[dwCount] = (HWND) 0;
174
175 return pHwnd;
#define ERROR_NOT_ENOUGH_MEMORY
Definition: dderror.h:7
HANDLE HWND
Definition: compat.h:19
NTSTATUS NTAPI NtUserBuildHwndList(HDESK hDesktop, HWND hwndParent, BOOLEAN bChildren, ULONG dwThreadId, ULONG cHwnd, HWND *phwndList, ULONG *pcHwndNeeded)
Definition: window.c:1518

Referenced by AnyPopup(), CalcChildScroll(), DIALOG_IdToHwnd(), GetDlgItem(), MDI_GetWindow(), MDICascade(), MDITile(), and User32DefWindowProc().

◆ WinPosGetMinMaxInfo()

UINT WINAPI WinPosGetMinMaxInfo ( HWND  hWnd,
POINT MaxSize,
POINT MaxPos,
POINT MinTrack,
POINT MaxTrack 
)

Variable Documentation

◆ g_ppi

PPROCESSINFO g_ppi
extern

Definition at line 29 of file dllmain.c.

Referenced by ClientThreadSetupHelper(), Init(), and ValidateCallProc().

◆ gcsUserApiHook

RTL_CRITICAL_SECTION gcsUserApiHook
extern

Definition at line 39 of file usrapihk.c.

Referenced by ClearUserApiHook(), EndUserApiHook(), Init(), and InitUserApiHook().

◆ gfLogonProcess

BOOLEAN gfLogonProcess
extern

Definition at line 34 of file dllmain.c.

Referenced by RegisterLogonProcess().

◆ gfServerProcess

BOOLEAN gfServerProcess
extern

Definition at line 35 of file dllmain.c.

Referenced by ClientThreadSetupHelper(), DllMain(), Init(), and LoadUserApiHook().

◆ gHandleEntries

PUSER_HANDLE_ENTRY gHandleEntries
extern

Definition at line 33 of file dllmain.c.

Referenced by ClientThreadSetupHelper(), GetUser32Handle(), and Init().

◆ gHandleTable

◆ ghImm32

HINSTANCE ghImm32
extern

Definition at line 20 of file imm.c.

Referenced by DllMain(), IntInitializeImmEntryTable(), and User32InitializeImmEntryTable().

◆ ghmodUserApiHook

◆ gImmApiEntries

Imm32ApiTable gImmApiEntries
extern

Definition at line 47 of file imm.c.

◆ gpsi

PSERVERINFO gpsi
extern

Definition at line 18 of file imm.c.

Referenced by alloc_user_entry(), CharPrevA(), ClientThreadSetupHelper(), co_IntCreateDefaultImeWindow(), co_IntInitializeDesktopGraphics(), co_IntSendActivateMessages(), co_IntSendMessageTimeout(), co_IntSetCaretPos(), co_IntSetupOBM(), co_IntSetWndIcons(), co_IntShellHookNotify(), co_MsqInsertMouseMessage(), co_MsqSendMessage(), co_UserCreateWindowEx(), co_UserDestroyWindow(), co_UserShowCaret(), co_WinPosSetWindowPos(), CreateSysColorObjects(), CtfImmSetLangBand(), DefWndControlColor(), DefWndGetIcon(), DefWndHandleSetCursor(), DefWndSetIcon(), DllMain(), DrawFocusRect(), DriverEntry(), EnumerateCallback(), free_user_entry(), GetLastInputInfo(), GetSysColor(), GetSysColorBrush(), GetSystemMetrics(), ImmCallImeConsoleIME(), ImmRegisterClient(), Init(), InitMetrics(), InitUserAtoms(), IntCheckImeShowStatus(), IntCoalesceMouseMove(), IntCreateClass(), IntCreateDesktop(), IntCreateWindow(), IntDeactivateWindow(), IntDefWindowProc(), IntDrawState(), IntFlashWindowEx(), IntGetSysColor(), IntGetSysColorBrush(), IntGetWindowContextHelpId(), IntGrayString(), IntImeWindowPosChanged(), IntIsFontRenderingEnabled(), IntIsGhostWindow(), IntLastInputTick(), IntNotifyWinEvent(), IntRealChildWindowFromPoint(), IntRemoveEvent(), IntSetCaretBlinkTime(), IntSetSrvEventMask(), IntSetSysColors(), IntTranslateKbdMessage(), IsDialogMessageW(), IsWinEventHookInstalled(), LoadSystemCursors(), LoadUserApiHook(), MENU_AdjustMenuItemRect(), MENU_CalcItemSize(), MENU_DrawMenuItem(), MENU_DrawScrollArrows(), MENU_EnsureMenuItemVisible(), MENU_InitPopup(), MouseSafetyOnDrawEnd(), NC_IconForWindow(), NotifyWinEvent(), NtUserCallHwnd(), NtUserCallHwndParam(), NtUserCallNoParam(), NtUserCallOneParam(), NtUserCreateCaret(), NtUserGetCaretBlinkTime(), NtUserGetClassName(), NtUserGetComboBoxInfo(), NtUserGetCursorInfo(), NtUserGetListBoxInfo(), NtUserInitializeClientPfnArrays(), NtUserMessageCall(), NtUserNotifyWinEvent(), NtUserProcessConnect(), NtUserSetImeOwnerWindow(), PostTimerMessages(), ProcessKeyEvent(), RealGetSystemMetrics(), RegisterControlAtoms(), SpiUpdatePerUserSystemParameters(), SystemTimerProc(), UITOOLS_DrawCheckedRect(), UpdatePerUserImmEnabling(), User32CallSetWndIconsFromKernel(), UserAttachThreadInput(), UserChangeDisplaySettings(), UserClipCursor(), UserDeleteW32Thread(), UserDrawWindowFrame(), UserGetSystemMetrics(), UserInitialize(), UserPaintCaption(), UserPostMessage(), UserPostThreadMessage(), UserRegisterUserApiHook(), UserSendMouseInput(), UserSendNotifyMessage(), UserSetCursor(), UserSetCursorPos(), UserShowCursor(), UserUnregisterUserApiHook(), and UserUpdateMonitorSize().

◆ gSharedInfo

◆ guah

◆ hIconSmWindows

HICON hIconSmWindows
extern

Definition at line 37 of file dllmain.c.

Referenced by User32CallSetWndIconsFromKernel().

◆ hIconWindows

HICON hIconWindows

Definition at line 53 of file user32p.h.

◆ U32AccelCacheLock

CRITICAL_SECTION U32AccelCacheLock
extern

◆ User32Instance