ReactOS  0.4.15-dev-994-ga9f6032
usrapihk.c File Reference
#include <user32.h>
Include dependency graph for usrapihk.c:

Go to the source code of this file.

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (user32)
 
BOOL WINAPI RealAdjustWindowRectEx (LPRECT, DWORD, BOOL, DWORD)
 
LRESULT WINAPI RealDefWindowProcA (HWND, UINT, WPARAM, LPARAM)
 
LRESULT WINAPI RealDefWindowProcW (HWND, UINT, WPARAM, LPARAM)
 
BOOL WINAPI RealDrawFrameControl (HDC, LPRECT, UINT, UINT)
 
BOOL WINAPI RealGetScrollInfo (HWND, INT, LPSCROLLINFO)
 
int WINAPI RealGetSystemMetrics (int)
 
BOOL WINAPI RealMDIRedrawFrame (HWND, DWORD)
 
INT WINAPI RealSetScrollInfo (HWND, int, LPCSCROLLINFO, BOOL)
 
BOOL WINAPI RealSystemParametersInfoA (UINT, UINT, PVOID, UINT)
 
BOOL WINAPI RealSystemParametersInfoW (UINT, UINT, PVOID, UINT)
 
DWORD WINAPI GetRealWindowOwner (HWND)
 
BOOL WINAPI RealUserDrawCaption (HWND hWnd, HDC hDC, LPCRECT lpRc, UINT uFlags)
 
LRESULT WINAPI DefaultOWP (HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, ULONG_PTR lResult, PDWORD pData)
 
BOOL FASTCALL IsMsgOverride (UINT Msg, PUAHOWP puaowpOverride)
 
VOID FASTCALL CopyMsgMask (PUAHOWP Dest, PUAHOWP Src, PVOID hkmsg, DWORD Size)
 
BOOL FASTCALL IsInsideUserApiHook (VOID)
 
BOOL FASTCALL BeginIfHookedUserApiHook (VOID)
 
BOOL WINAPI ForceResetUserApiHook (HINSTANCE hInstance)
 
VOID FASTCALL ResetUserApiHook (PUSERAPIHOOK puah)
 
BOOL FASTCALL EndUserApiHook (VOID)
 
BOOL WINAPI ClearUserApiHook (HINSTANCE hInstance)
 
BOOL WINAPI InitUserApiHook (HINSTANCE hInstance, USERAPIHOOKPROC pfn)
 
BOOL WINAPI MDIRedrawFrame (HWND hWnd, DWORD flags)
 
BOOL WINAPI RegisterUserApiHook (PUSERAPIHOOKINFO puah)
 
BOOL WINAPI UnregisterUserApiHook (VOID)
 

Variables

DWORD gcLoadUserApiHook = 0
 
LONG gcCallUserApiHook = 0
 
DWORD gfUserApiHook = 0
 
HINSTANCE ghmodUserApiHook = NULL
 
USERAPIHOOKPROC gpfnInitUserApi
 
RTL_CRITICAL_SECTION gcsUserApiHook
 
BYTE grgbDwpLiteHookMsg [128]
 
BYTE grgbWndLiteHookMsg [128]
 
BYTE grgbDlgLiteHookMsg [128]
 
USERAPIHOOK guah
 

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 TRUE
Definition: types.h:120
LONG gcCallUserApiHook
Definition: usrapihk.c:35
#define FALSE
Definition: types.h:117
BOOL FASTCALL IsInsideUserApiHook(VOID)
Definition: usrapihk.c:98
#define InterlockedDecrement
Definition: armddk.h:52
#define InterlockedIncrement
Definition: armddk.h:53

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 
200  if ( ghmodUserApiHook == hInstance )
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;
212  gcLoadUserApiHook = 1;
213  }
214  else
215  {
216  hInstance = hModule;
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 }
VOID FASTCALL ResetUserApiHook(PUSERAPIHOOK puah)
Definition: usrapihk.c:131
HINSTANCE ghmodUserApiHook
Definition: usrapihk.c:37
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
LONG gcCallUserApiHook
Definition: usrapihk.c:35
BOOL(CALLBACK * USERAPIHOOKPROC)(UAPIHK State, PUSERAPIHOOK puah)
Definition: undocuser.h:362
HINSTANCE hInstance
Definition: charmap.c:20
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
smooth NULL
Definition: ftsmooth.c:416
DWORD gcLoadUserApiHook
Definition: usrapihk.c:34
USERAPIHOOK guah
Definition: usrapihk.c:344
RTL_CRITICAL_SECTION gcsUserApiHook
Definition: usrapihk.c:39
USERAPIHOOKPROC gpfnInitUserApi
Definition: usrapihk.c:38
DWORD gfUserApiHook
Definition: usrapihk.c:36
HMODULE hModule
Definition: animate.c:44

Referenced by ClientLoadLibrary().

◆ CopyMsgMask()

VOID FASTCALL CopyMsgMask ( PUAHOWP  Dest,
PUAHOWP  Src,
PVOID  hkmsg,
DWORD  Size 
)

Definition at line 76 of file usrapihk.c.

77 {
78  DWORD nSize;
79 
80  if ( Src && Src->Size > 0 )
81  {
82  Dest->MsgBitArray = hkmsg;
83  nSize = Src->Size;
84  if ( Size < nSize) nSize = Size;
85  Dest->Size = nSize;
87  return;
88  }
89 
90  Dest->MsgBitArray = NULL;
91  Dest->Size = 0;
92  return;
93 }
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
*nSize LPSTR _Inout_ LPDWORD nSize
Definition: winbase.h:2037
smooth NULL
Definition: ftsmooth.c:416
unsigned long DWORD
Definition: ntddk_ex.h:95
DWORD Size
Definition: undocuser.h:321
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
BYTE * MsgBitArray
Definition: undocuser.h:320

Referenced by InitUserApiHook().

◆ DefaultOWP()

LRESULT WINAPI DefaultOWP ( HWND  hWnd,
UINT  Msg,
WPARAM  wParam,
LPARAM  lParam,
ULONG_PTR  lResult,
PDWORD  pData 
)

Definition at line 52 of file usrapihk.c.

53 {
54  return 0;
55 }

Referenced by ResetUserApiHook().

◆ EndUserApiHook()

BOOL FASTCALL EndUserApiHook ( VOID  )

Definition at line 164 of file usrapihk.c.

165 {
167  USERAPIHOOKPROC pfn;
168  BOOL Ret = FALSE;
169 
171  {
172  if ( !gcLoadUserApiHook )
173  {
175 
176  pfn = gpfnInitUserApi;
180 
182 
183  if ( pfn ) Ret = pfn(uahStop, 0);
184 
185  if ( hModule ) Ret = FreeLibrary(hModule);
186  }
187  }
188  return Ret;
189 }
HINSTANCE ghmodUserApiHook
Definition: usrapihk.c:37
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
LONG gcCallUserApiHook
Definition: usrapihk.c:35
BOOL(CALLBACK * USERAPIHOOKPROC)(UAPIHK State, PUSERAPIHOOK puah)
Definition: undocuser.h:362
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
smooth NULL
Definition: ftsmooth.c:416
#define FreeLibrary(x)
Definition: compat.h:496
#define InterlockedDecrement
Definition: armddk.h:52
DWORD gcLoadUserApiHook
Definition: usrapihk.c:34
RTL_CRITICAL_SECTION gcsUserApiHook
Definition: usrapihk.c:39
USERAPIHOOKPROC gpfnInitUserApi
Definition: usrapihk.c:38
HMODULE hModule
Definition: animate.c:44

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

◆ ForceResetUserApiHook()

BOOL WINAPI ForceResetUserApiHook ( HINSTANCE  hInstance)

Definition at line 117 of file usrapihk.c.

118 {
119  if ( ghmodUserApiHook == hInstance &&
121  {
124  return TRUE;
125  }
126  return FALSE;
127 }
VOID FASTCALL ResetUserApiHook(PUSERAPIHOOK puah)
Definition: usrapihk.c:131
#define TRUE
Definition: types.h:120
HINSTANCE ghmodUserApiHook
Definition: usrapihk.c:37
HINSTANCE hInstance
Definition: charmap.c:20
#define FALSE
Definition: types.h:117
smooth NULL
Definition: ftsmooth.c:416
BOOLEAN NTAPI RtlIsThreadWithinLoaderCallout(VOID)
Definition: libsupp.c:348
USERAPIHOOK guah
Definition: usrapihk.c:344
USERAPIHOOKPROC gpfnInitUserApi
Definition: usrapihk.c:38

Referenced by InitUserApiHook(), and ResetUserApiHook().

◆ GetRealWindowOwner()

DWORD WINAPI GetRealWindowOwner ( HWND  )

Definition at line 1915 of file window.c.

1916 {
1918 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
#define QUERY_WINDOW_REAL_ID
Definition: ntuser.h:2807
DWORD_PTR APIENTRY NtUserQueryWindow(HWND hWnd, DWORD Index)
Definition: window.c:3929

Referenced by ResetUserApiHook().

◆ 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  {
273  if ( ghmodUserApiHook != hInstance )
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;
287  gcLoadUserApiHook = 1;
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 }
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
VOID FASTCALL ResetUserApiHook(PUSERAPIHOOK puah)
Definition: usrapihk.c:131
#define TRUE
Definition: types.h:120
UAHOWP DlgProcArray
Definition: undocuser.h:344
HINSTANCE ghmodUserApiHook
Definition: usrapihk.c:37
VOID FASTCALL CopyMsgMask(PUAHOWP Dest, PUAHOWP Src, PVOID hkmsg, DWORD Size)
Definition: usrapihk.c:76
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
HINSTANCE hInstance
Definition: charmap.c:20
#define FALSE
Definition: types.h:117
long LONG
Definition: pedump.c:60
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
UAHOWP DefWndProcArray
Definition: undocuser.h:333
FORCERESETUSERAPIHOOK ForceResetUserApiHook
Definition: undocuser.h:348
DWORD gcLoadUserApiHook
Definition: usrapihk.c:34
BYTE grgbDlgLiteHookMsg[128]
Definition: usrapihk.c:43
UAHOWP WndProcArray
Definition: undocuser.h:341
USERAPIHOOK guah
Definition: usrapihk.c:344
BOOL WINAPI ForceResetUserApiHook(HINSTANCE hInstance)
Definition: usrapihk.c:117
BYTE grgbWndLiteHookMsg[128]
Definition: usrapihk.c:42
BYTE grgbDwpLiteHookMsg[128]
Definition: usrapihk.c:41
RTL_CRITICAL_SECTION gcsUserApiHook
Definition: usrapihk.c:39
USERAPIHOOKPROC gpfnInitUserApi
Definition: usrapihk.c:38
DWORD gfUserApiHook
Definition: usrapihk.c:36

Referenced by ClientLoadLibrary().

◆ IsInsideUserApiHook()

BOOL FASTCALL IsInsideUserApiHook ( VOID  )

Definition at line 98 of file usrapihk.c.

99 {
100  if ( ghmodUserApiHook && gfUserApiHook ) return TRUE;
101  return FALSE;
102 }
#define TRUE
Definition: types.h:120
HINSTANCE ghmodUserApiHook
Definition: usrapihk.c:37
#define FALSE
Definition: types.h:117
DWORD gfUserApiHook
Definition: usrapihk.c:36

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 @1610 Msg[]
#define FALSE
Definition: types.h:117
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
BYTE * MsgBitArray
Definition: undocuser.h:320
unsigned int UINT
Definition: ndis.h:50
#define WM_SETFOCUS
Definition: winuser.h:1595

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

◆ MDIRedrawFrame()

BOOL WINAPI MDIRedrawFrame ( HWND  hWnd,
DWORD  flags 
)

Definition at line 318 of file usrapihk.c.

319 {
320  BOOL Hook, Ret = FALSE;
321 
322  LoadUserApiHook();
323 
324  Hook = BeginIfHookedUserApiHook();
325 
326  /* Bypass SEH and go direct. */
327  if (!Hook) return RealMDIRedrawFrame(hWnd, flags);
328 
329  _SEH2_TRY
330  {
331  Ret = guah.MDIRedrawFrame(hWnd, flags);
332  }
334  {
335  ERR("Got exception in hooked MDIRedrawFrame!\n");
336  }
337  _SEH2_END;
338 
339  EndUserApiHook();
340 
341  return Ret;
342 }
BOOL WINAPI RealMDIRedrawFrame(HWND, DWORD)
Definition: usrapihk.c:311
HWND hWnd
Definition: settings.c:17
BOOL FASTCALL BeginIfHookedUserApiHook(VOID)
Definition: usrapihk.c:106
_SEH2_TRY
Definition: create.c:4226
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
MDIREDRAWFRAME MDIRedrawFrame
Definition: undocuser.h:351
BOOL FASTCALL EndUserApiHook(VOID)
Definition: usrapihk.c:164
GLbitfield flags
Definition: glext.h:7161
#define ERR(fmt,...)
Definition: debug.h:110
_SEH2_END
Definition: create.c:4400
static __inline void LoadUserApiHook()
Definition: user_x.h:85
USERAPIHOOK guah
Definition: usrapihk.c:344
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:6

◆ RealAdjustWindowRectEx()

BOOL WINAPI RealAdjustWindowRectEx ( LPRECT  ,
DWORD  ,
BOOL  ,
DWORD   
)

Definition at line 90 of file nonclient.c.

94 {
95  SIZE BorderSize;
96 
97  if (bMenu)
98  {
99  lpRect->top -= GetSystemMetrics(SM_CYMENU);
100  }
101  if ((dwStyle & WS_CAPTION) == WS_CAPTION)
102  {
103  if (dwExStyle & WS_EX_TOOLWINDOW)
104  lpRect->top -= GetSystemMetrics(SM_CYSMCAPTION);
105  else
106  lpRect->top -= GetSystemMetrics(SM_CYCAPTION);
107  }
108  UserGetWindowBorders(dwStyle, dwExStyle, &BorderSize, TRUE);
109  InflateRect(
110  lpRect,
111  BorderSize.cx,
112  BorderSize.cy);
113 
114  return TRUE;
115 }
BOOL WINAPI InflateRect(_Inout_ LPRECT, _In_ int, _In_ int)
#define TRUE
Definition: types.h:120
#define WS_EX_TOOLWINDOW
Definition: winuser.h:404
LONG cx
Definition: windef.h:334
VOID UserGetWindowBorders(DWORD Style, DWORD ExStyle, SIZE *Size, BOOL WithClient)
Definition: nonclient.c:53
#define WS_CAPTION
Definition: pedump.c:624
#define SM_CYCAPTION
Definition: winuser.h:953
int WINAPI GetSystemMetrics(_In_ int)
#define SM_CYMENU
Definition: winuser.h:966
#define SM_CYSMCAPTION
Definition: winuser.h:1004
LONG cy
Definition: windef.h:335

Referenced by AdjustWindowRectEx(), and ResetUserApiHook().

◆ RealDefWindowProcA()

LRESULT WINAPI RealDefWindowProcA ( HWND  ,
UINT  ,
WPARAM  ,
LPARAM   
)

Definition at line 809 of file defwnd.c.

813 {
814  LRESULT Result = 0;
815  PWND Wnd;
816 
817  Wnd = ValidateHwnd(hWnd);
818 
819  if ( !Wnd &&
820  Msg != WM_CTLCOLORMSGBOX &&
821  Msg != WM_CTLCOLORBTN &&
822  Msg != WM_CTLCOLORDLG &&
824  return 0;
825 
827  switch (Msg)
828  {
829  case WM_NCCREATE:
830  {
831  if ( Wnd &&
832  Wnd->style & (WS_HSCROLL | WS_VSCROLL) )
833  {
834  if (!Wnd->pSBInfo)
835  {
836  SCROLLINFO si = {sizeof si, SIF_ALL, 0, 100, 0, 0, 0};
837  SetScrollInfo( hWnd, SB_HORZ, &si, FALSE );
838  SetScrollInfo( hWnd, SB_VERT, &si, FALSE );
839  }
840  }
841 
842  if (lParam)
843  {
845  /* check for string, as static icons, bitmaps (SS_ICON, SS_BITMAP)
846  * may have child window IDs instead of window name */
847  if (HIWORD(cs->lpszName))
848  {
849  DefSetText(hWnd, (PCWSTR)cs->lpszName, TRUE);
850  }
851  Result = 1;
852  }
853  break;
854  }
855 
856  case WM_GETTEXTLENGTH:
857  {
858  PWSTR buf;
859  ULONG len;
860 
861  if (Wnd != NULL && Wnd->strName.Length != 0)
862  {
864  if (buf != NULL &&
866  buf,
867  Wnd->strName.Length)))
868  {
869  Result = (LRESULT) len;
870  }
871  }
872  else Result = 0L;
873 
874  break;
875  }
876 
877  case WM_GETTEXT:
878  {
879  PWSTR buf = NULL;
880  PSTR outbuf = (PSTR)lParam;
881  SIZE_T copy;
882 
883  if (Wnd != NULL && wParam != 0)
884  {
885  if (Wnd->strName.Buffer != NULL)
887  else
888  outbuf[0] = L'\0';
889 
890  if (buf != NULL)
891  {
892  if (Wnd->strName.Length != 0)
893  {
894  copy = min(Wnd->strName.Length / sizeof(WCHAR), wParam - 1);
896  0,
897  buf,
898  copy,
899  outbuf,
900  wParam,
901  NULL,
902  NULL);
903  outbuf[Result] = '\0';
904  }
905  else
906  outbuf[0] = '\0';
907  }
908  }
909  break;
910  }
911 
912  case WM_SETTEXT:
913  {
915 
917  {
919  IntNotifyWinEvent(EVENT_OBJECT_NAMECHANGE, hWnd, OBJID_WINDOW, CHILDID_SELF, 0);
920  }
921  Result = 1;
922  break;
923  }
924 
925  case WM_IME_KEYDOWN:
926  {
928  break;
929  }
930 
931  case WM_IME_KEYUP:
932  {
934  break;
935  }
936 
937  case WM_IME_CHAR:
938  {
939  if (HIBYTE(wParam))
942  break;
943  }
944 
945  case WM_IME_COMPOSITION:
946  if (lParam & GCS_RESULTSTR)
947  {
948  LONG size, i;
949  unsigned char lead = 0;
950  char *buf = NULL;
951  HIMC himc = ImmGetContext( hWnd );
952 
953  if (himc)
954  {
955  if ((size = ImmGetCompositionStringA( himc, GCS_RESULTSTR, NULL, 0 )))
956  {
957  if (!(buf = HeapAlloc( GetProcessHeap(), 0, size ))) size = 0;
959  }
960  ImmReleaseContext( hWnd, himc );
961 
962  for (i = 0; i < size; i++)
963  {
964  unsigned char c = buf[i];
965  if (!lead)
966  {
967  if (IsDBCSLeadByte( c ))
968  lead = c;
969  else
970  SendMessageA( hWnd, WM_IME_CHAR, c, 1 );
971  }
972  else
973  {
974  SendMessageA( hWnd, WM_IME_CHAR, MAKEWORD(c, lead), 1 );
975  lead = 0;
976  }
977  }
978  HeapFree( GetProcessHeap(), 0, buf );
979  }
980  }
981  /* fall through */
982  case WM_IME_STARTCOMPOSITION:
983  case WM_IME_ENDCOMPOSITION:
984  case WM_IME_SELECT:
985  case WM_IME_NOTIFY:
986  case WM_IME_CONTROL:
987  {
988  HWND hwndIME;
989 
990  hwndIME = ImmGetDefaultIMEWnd(hWnd);
991  if (hwndIME)
992  Result = SendMessageA(hwndIME, Msg, wParam, lParam);
993  break;
994  }
995 
996  case WM_IME_SETCONTEXT:
997  {
998  HWND hwndIME;
999 
1000  hwndIME = ImmGetDefaultIMEWnd(hWnd);
1001  if (hwndIME)
1002  Result = ImmIsUIMessageA(hwndIME, Msg, wParam, lParam);
1003  break;
1004  }
1005 
1006  /* fall through */
1007  default:
1009  }
1010 
1012  return Result;
1013 }
#define WM_GETTEXTLENGTH
Definition: winuser.h:1601
#define WM_IME_KEYUP
Definition: winuser.h:1821
const uint16_t * PCWSTR
Definition: typedefs.h:57
#define WM_IME_NOTIFY
Definition: winuser.h:1812
#define WM_IME_KEYDOWN
Definition: winuser.h:1820
#define WM_CHAR
Definition: winuser.h:1699
#define WideCharToMultiByte
Definition: compat.h:111
#define WM_IME_CHAR
Definition: winuser.h:1816
#define LOBYTE(W)
Definition: jmemdos.c:487
#define MAKEWORD(a, b)
Definition: typedefs.h:248
#define SB_VERT
Definition: winuser.h:553
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define TRUE
Definition: types.h:120
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_CTLCOLORDLG
Definition: winuser.h:1752
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
uint16_t * PWSTR
Definition: typedefs.h:56
#define CP_ACP
Definition: compat.h:109
#define WM_CTLCOLORSTATIC
Definition: winuser.h:1754
#define WM_GETTEXT
Definition: winuser.h:1600
#define SB_HORZ
Definition: winuser.h:552
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
Definition: event.c:179
NTSYSAPI NTSTATUS NTAPI RtlUnicodeToMultiByteSize(PULONG MbSize, PCWCH UnicodeString, ULONG UnicodeSize)
#define OBJID_WINDOW
Definition: winable.h:15
HWND hWnd
Definition: settings.c:17
#define HIBYTE(W)
Definition: jmemdos.c:486
#define WM_IME_SELECT
Definition: winuser.h:1815
PSBINFO pSBInfo
Definition: ntuser.h:690
struct @1610 Msg[]
#define GetWindowLongPtrW
Definition: winuser.h:4804
#define WM_NCCREATE
Definition: winuser.h:1665
void SPY_ExitMessage(INT iFlag, HWND hwnd, UINT msg, LRESULT lReturn, WPARAM wParam, LPARAM lParam)
Definition: spy.c:2648
WPARAM wParam
Definition: combotst.c:138
#define SPY_DEFWNDPROC
Definition: user32p.h:75
LONG WINAPI ImmGetCompositionStringA(HIMC hIMC, DWORD dwIndex, LPVOID lpBuf, DWORD dwBufLen)
Definition: imm.c:1489
struct tagCREATESTRUCTA * LPCREATESTRUCTA
uint32_t cs
Definition: isohybrid.c:75
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
Definition: imm.c:1746
static __inline PVOID DesktopPtrToUser(PVOID Ptr)
Definition: user_x.h:12
#define WM_CTLCOLORBTN
Definition: winuser.h:1751
#define FALSE
Definition: types.h:117
long LONG
Definition: pedump.c:60
#define CHILDID_SELF
Definition: winable.h:14
smooth NULL
Definition: ftsmooth.c:416
#define GCS_RESULTSTR
Definition: imm.h:369
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:426
BOOL WINAPI IsDBCSLeadByte(BYTE TestByte)
Definition: nls.c:2232
#define WM_KEYDOWN
Definition: winuser.h:1697
#define WM_CTLCOLORMSGBOX
Definition: winuser.h:1748
DWORD HIMC
Definition: dimm.idl:75
#define WM_SETTEXT
Definition: winuser.h:1599
LARGE_UNICODE_STRING strName
Definition: ntuser.h:700
#define WS_CAPTION
Definition: pedump.c:624
BOOL FASTCALL DefSetText(HWND hWnd, PCWSTR String, BOOL Ansi)
Definition: defwnd.c:64
GLsizeiptr size
Definition: glext.h:5919
#define GetProcessHeap()
Definition: compat.h:484
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define WM_IME_SETCONTEXT
Definition: winuser.h:1811
HIMC WINAPI ImmGetContext(HWND hWnd)
Definition: imm.c:1526
#define WM_IME_CONTROL
Definition: winuser.h:1813
const GLubyte * c
Definition: glext.h:8905
#define WM_KEYUP
Definition: winuser.h:1698
void SPY_EnterMessage(INT iFlag, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: spy.c:2593
#define WS_HSCROLL
Definition: pedump.c:628
static const WCHAR L[]
Definition: oid.c:1250
PWND FASTCALL ValidateHwnd(HWND hwnd)
Definition: misc.c:369
GLenum GLsizei len
Definition: glext.h:6722
#define LRESULT
Definition: ole.h:14
BOOL WINAPI ImmReleaseContext(HWND hWnd, HIMC hIMC)
Definition: imm.c:2283
#define GWL_STYLE
Definition: winuser.h:846
Definition: ntuser.h:657
ULONG_PTR SIZE_T
Definition: typedefs.h:80
signed char * PSTR
Definition: retypes.h:7
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
Definition: copy.c:51
#define min(a, b)
Definition: monoChain.cc:55
#define SPY_RESULT_DEFWND
Definition: user32p.h:78
BOOL UserPaintCaption(PWND pWnd, INT Flags)
Definition: defwnd.c:396
#define WS_VSCROLL
Definition: pedump.c:627
LRESULT WINAPI User32DefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, BOOL bUnicode)
Definition: defwnd.c:316
#define c
Definition: ke_i.h:80
#define HIWORD(l)
Definition: typedefs.h:247
unsigned int ULONG
Definition: retypes.h:1
LONG_PTR LRESULT
Definition: windef.h:209
LPARAM lParam
Definition: combotst.c:139
int WINAPI SetScrollInfo(_In_ HWND, _In_ int, _In_ LPCSCROLLINFO, _In_ BOOL)
#define HeapFree(x, y, z)
Definition: compat.h:483
#define DC_TEXT
Definition: winuser.h:430
BOOL WINAPI ImmIsUIMessageA(HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: imm.c:2154
#define SIF_ALL
Definition: winuser.h:1218
DWORD style
Definition: ntuser.h:670

Referenced by DefWindowProcA(), and ResetUserApiHook().

◆ RealDefWindowProcW()

LRESULT WINAPI RealDefWindowProcW ( HWND  ,
UINT  ,
WPARAM  ,
LPARAM   
)

Definition at line 1017 of file defwnd.c.

1021 {
1022  LRESULT Result = 0;
1023  PWND Wnd;
1024 
1025  Wnd = ValidateHwnd(hWnd);
1026 
1027  if ( !Wnd &&
1028  Msg != WM_CTLCOLORMSGBOX &&
1029  Msg != WM_CTLCOLORBTN &&
1030  Msg != WM_CTLCOLORDLG &&
1031  Msg != WM_CTLCOLORSTATIC )
1032  return 0;
1033 
1035  switch (Msg)
1036  {
1037  case WM_NCCREATE:
1038  {
1039  if ( Wnd &&
1040  Wnd->style & (WS_HSCROLL | WS_VSCROLL) )
1041  {
1042  if (!Wnd->pSBInfo)
1043  {
1044  SCROLLINFO si = {sizeof si, SIF_ALL, 0, 100, 0, 0, 0};
1045  if (Wnd->style & WS_HSCROLL)
1046  SetScrollInfo( hWnd, SB_HORZ, &si, FALSE );
1047  if (Wnd->style & WS_VSCROLL)
1048  SetScrollInfo( hWnd, SB_VERT, &si, FALSE );
1049  }
1050  }
1051 
1052  if (lParam)
1053  {
1055  /* check for string, as static icons, bitmaps (SS_ICON, SS_BITMAP)
1056  * may have child window IDs instead of window name */
1057  if (HIWORD(cs->lpszName))
1058  {
1059  DefSetText(hWnd, cs->lpszName, FALSE);
1060  }
1061  Result = 1;
1062  }
1063  break;
1064  }
1065 
1066  case WM_GETTEXTLENGTH:
1067  {
1068  PWSTR buf;
1069  ULONG len;
1070 
1071  if (Wnd != NULL && Wnd->strName.Length != 0)
1072  {
1074  if (buf != NULL &&
1076  buf,
1077  Wnd->strName.Length)))
1078  {
1079  Result = (LRESULT) (Wnd->strName.Length / sizeof(WCHAR));
1080  }
1081  }
1082  else Result = 0L;
1083 
1084  break;
1085  }
1086 
1087  case WM_GETTEXT:
1088  {
1089  PWSTR buf = NULL;
1090  PWSTR outbuf = (PWSTR)lParam;
1091 
1092  if (Wnd != NULL && wParam != 0)
1093  {
1094  if (Wnd->strName.Buffer != NULL)
1096  else
1097  outbuf[0] = L'\0';
1098 
1099  if (buf != NULL)
1100  {
1101  if (Wnd->strName.Length != 0)
1102  {
1103  Result = min(Wnd->strName.Length / sizeof(WCHAR), wParam - 1);
1104  RtlCopyMemory(outbuf,
1105  buf,
1106  Result * sizeof(WCHAR));
1107  outbuf[Result] = L'\0';
1108  }
1109  else
1110  outbuf[0] = L'\0';
1111  }
1112  }
1113  break;
1114  }
1115 
1116  case WM_SETTEXT:
1117  {
1119 
1121  UserPaintCaption(Wnd, DC_TEXT);
1122  Result = 1;
1123  break;
1124  }
1125 
1126  case WM_IME_CHAR:
1127  {
1129  Result = 0;
1130  break;
1131  }
1132 
1133  case WM_IME_KEYDOWN:
1134  {
1136  break;
1137  }
1138 
1139  case WM_IME_KEYUP:
1140  {
1142  break;
1143  }
1144 
1145  case WM_IME_COMPOSITION:
1146  if (lParam & GCS_RESULTSTR)
1147  {
1148  LONG size, i;
1149  WCHAR *buf = NULL;
1150  HIMC himc = ImmGetContext( hWnd );
1151 
1152  if (himc)
1153  {
1154  if ((size = ImmGetCompositionStringW( himc, GCS_RESULTSTR, NULL, 0 )))
1155  {
1156  if (!(buf = HeapAlloc( GetProcessHeap(), 0, size * sizeof(WCHAR) ))) size = 0;
1157  else size = ImmGetCompositionStringW( himc, GCS_RESULTSTR, buf, size * sizeof(WCHAR) );
1158  }
1159  ImmReleaseContext( hWnd, himc );
1160 
1161  for (i = 0; i < size / sizeof(WCHAR); i++)
1162  SendMessageW( hWnd, WM_IME_CHAR, buf[i], 1 );
1163  HeapFree( GetProcessHeap(), 0, buf );
1164  }
1165  }
1166  /* fall through */
1167  case WM_IME_STARTCOMPOSITION:
1168  case WM_IME_ENDCOMPOSITION:
1169  case WM_IME_SELECT:
1170  case WM_IME_NOTIFY:
1171  case WM_IME_CONTROL:
1172  {
1173  HWND hwndIME;
1174 
1175  hwndIME = ImmGetDefaultIMEWnd(hWnd);
1176  if (hwndIME)
1177  Result = SendMessageW(hwndIME, Msg, wParam, lParam);
1178  break;
1179  }
1180 
1181  case WM_IME_SETCONTEXT:
1182  {
1183  HWND hwndIME;
1184 
1185  hwndIME = ImmGetDefaultIMEWnd(hWnd);
1186  if (hwndIME)
1187  Result = ImmIsUIMessageW(hwndIME, Msg, wParam, lParam);
1188  break;
1189  }
1190 
1191  default:
1193  }
1195 
1196  return Result;
1197 }
#define WM_GETTEXTLENGTH
Definition: winuser.h:1601
#define WM_IME_KEYUP
Definition: winuser.h:1821
const uint16_t * PCWSTR
Definition: typedefs.h:57
#define WM_IME_NOTIFY
Definition: winuser.h:1812
NTSYSAPI VOID NTAPI RtlCopyMemory(VOID UNALIGNED *Destination, CONST VOID UNALIGNED *Source, ULONG Length)
#define WM_IME_KEYDOWN
Definition: winuser.h:1820
#define WM_CHAR
Definition: winuser.h:1699
#define WM_IME_CHAR
Definition: winuser.h:1816
#define SB_VERT
Definition: winuser.h:553
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define TRUE
Definition: types.h:120
#define WM_CTLCOLORDLG
Definition: winuser.h:1752
uint16_t * PWSTR
Definition: typedefs.h:56
#define WM_CTLCOLORSTATIC
Definition: winuser.h:1754
#define WM_GETTEXT
Definition: winuser.h:1600
#define SB_HORZ
Definition: winuser.h:552
NTSYSAPI NTSTATUS NTAPI RtlUnicodeToMultiByteSize(PULONG MbSize, PCWCH UnicodeString, ULONG UnicodeSize)
HWND hWnd
Definition: settings.c:17
#define WM_IME_SELECT
Definition: winuser.h:1815
PSBINFO pSBInfo
Definition: ntuser.h:690
struct @1610 Msg[]
#define GetWindowLongPtrW
Definition: winuser.h:4804
#define WM_NCCREATE
Definition: winuser.h:1665
void SPY_ExitMessage(INT iFlag, HWND hwnd, UINT msg, LRESULT lReturn, WPARAM wParam, LPARAM lParam)
Definition: spy.c:2648
WPARAM wParam
Definition: combotst.c:138
#define SPY_DEFWNDPROC
Definition: user32p.h:75
uint32_t cs
Definition: isohybrid.c:75
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
Definition: imm.c:1746
static __inline PVOID DesktopPtrToUser(PVOID Ptr)
Definition: user_x.h:12
#define WM_CTLCOLORBTN
Definition: winuser.h:1751
#define FALSE
Definition: types.h:117
long LONG
Definition: pedump.c:60
smooth NULL
Definition: ftsmooth.c:416
#define GCS_RESULTSTR
Definition: imm.h:369
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:426
#define WM_KEYDOWN
Definition: winuser.h:1697
#define WM_CTLCOLORMSGBOX
Definition: winuser.h:1748
DWORD HIMC
Definition: dimm.idl:75
#define WM_SETTEXT
Definition: winuser.h:1599
LARGE_UNICODE_STRING strName
Definition: ntuser.h:700
#define WS_CAPTION
Definition: pedump.c:624
BOOL FASTCALL DefSetText(HWND hWnd, PCWSTR String, BOOL Ansi)
Definition: defwnd.c:64
GLsizeiptr size
Definition: glext.h:5919
#define GetProcessHeap()
Definition: compat.h:484
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define WM_IME_SETCONTEXT
Definition: winuser.h:1811
LONG WINAPI ImmGetCompositionStringW(HIMC hIMC, DWORD dwIndex, LPVOID lpBuf, DWORD dwBufLen)
Definition: imm.c:1499
HIMC WINAPI ImmGetContext(HWND hWnd)
Definition: imm.c:1526
#define WM_IME_CONTROL
Definition: winuser.h:1813
#define WM_KEYUP
Definition: winuser.h:1698
void SPY_EnterMessage(INT iFlag, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: spy.c:2593
#define WS_HSCROLL
Definition: pedump.c:628
static const WCHAR L[]
Definition: oid.c:1250
PWND FASTCALL ValidateHwnd(HWND hwnd)
Definition: misc.c:369
GLenum GLsizei len
Definition: glext.h:6722
#define LRESULT
Definition: ole.h:14
BOOL WINAPI ImmReleaseContext(HWND hWnd, HIMC hIMC)
Definition: imm.c:2283
#define GWL_STYLE
Definition: winuser.h:846
Definition: ntuser.h:657
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
struct tagCREATESTRUCTW * LPCREATESTRUCTW
#define min(a, b)
Definition: monoChain.cc:55
#define SPY_RESULT_DEFWND
Definition: user32p.h:78
BOOL UserPaintCaption(PWND pWnd, INT Flags)
Definition: defwnd.c:396
#define WS_VSCROLL
Definition: pedump.c:627
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LRESULT WINAPI User32DefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, BOOL bUnicode)
Definition: defwnd.c:316
#define HIWORD(l)
Definition: typedefs.h:247
unsigned int ULONG
Definition: retypes.h:1
LONG_PTR LRESULT
Definition: windef.h:209
BOOL WINAPI ImmIsUIMessageW(HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: imm.c:2176
LPARAM lParam
Definition: combotst.c:139
int WINAPI SetScrollInfo(_In_ HWND, _In_ int, _In_ LPCSCROLLINFO, _In_ BOOL)
#define HeapFree(x, y, z)
Definition: compat.h:483
#define DC_TEXT
Definition: winuser.h:430
#define SIF_ALL
Definition: winuser.h:1218
DWORD style
Definition: ntuser.h:670

Referenced by DefWindowProcW(), and ResetUserApiHook().

◆ RealDrawFrameControl()

BOOL WINAPI RealDrawFrameControl ( HDC  ,
LPRECT  ,
UINT  ,
UINT   
)

Definition at line 1419 of file draw.c.

1420 {
1421  if (GetMapMode(hDC) != MM_TEXT)
1422  return FALSE;
1423 
1424  switch(uType)
1425  {
1426  case DFC_BUTTON:
1427  return UITOOLS95_DrawFrameButton(hDC, rc, uState);
1428  case DFC_CAPTION:
1429  return UITOOLS95_DrawFrameCaption(hDC, rc, uState);
1430  case DFC_MENU:
1431  return UITOOLS95_DrawFrameMenu(hDC, rc, uState);
1432 #if 0
1433  case DFC_POPUPMENU:
1434  UNIMPLEMENTED;
1435  break;
1436 #endif
1437  case DFC_SCROLL:
1438  return UITOOLS95_DrawFrameScroll(hDC, rc, uState);
1439  }
1440  return FALSE;
1441 }
#define DFC_BUTTON
Definition: winuser.h:476
BOOL FASTCALL UITOOLS95_DrawFrameScroll(HDC dc, LPRECT r, UINT uFlags)
Definition: draw.c:851
BOOL FASTCALL UITOOLS95_DrawFrameCaption(HDC dc, LPRECT r, UINT uFlags)
Definition: draw.c:783
#define FALSE
Definition: types.h:117
BOOL FASTCALL UITOOLS95_DrawFrameButton(HDC hdc, LPRECT rc, UINT uState)
Definition: draw.c:759
BOOL FASTCALL UITOOLS95_DrawFrameMenu(HDC dc, LPRECT r, UINT uFlags)
Definition: draw.c:954
int WINAPI GetMapMode(_In_ HDC)
Definition: coord.c:114
#define DFC_CAPTION
Definition: winuser.h:473
static HDC hDC
Definition: 3dtext.c:33
#define DFC_SCROLL
Definition: winuser.h:475
#define MM_TEXT
Definition: wingdi.h:872
#define UNIMPLEMENTED
Definition: debug.h:115
#define DFC_MENU
Definition: winuser.h:474

Referenced by DrawFrameControl(), and ResetUserApiHook().

◆ RealGetScrollInfo()

BOOL WINAPI RealGetScrollInfo ( HWND  ,
INT  ,
LPSCROLLINFO   
)

Definition at line 1513 of file scrollbar.c.

1514 {
1515  PWND pWnd;
1516  PSBDATA pSBData;
1517 
1518  if (SB_CTL == SBType)
1519  {
1520  return SendMessageW(Wnd, SBM_GETSCROLLINFO, 0, (LPARAM) Info);
1521  }
1522 
1523  pWnd = ValidateHwnd(Wnd);
1524  if (!pWnd) return FALSE;
1525 
1526  if (SBType < SB_HORZ || SBType > SB_VERT)
1527  {
1529  return FALSE;
1530  }
1531  if (!pWnd->pSBInfo)
1532  {
1534  return FALSE;
1535  }
1536  pSBData = IntGetSBData(pWnd, SBType);
1537  return NtUserSBGetParms(Wnd, SBType, pSBData, Info);
1538 }
PSBDATA FASTCALL IntGetSBData(PWND pwnd, INT Bar)
Definition: scrollbar.c:83
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define SB_CTL
Definition: winuser.h:554
#define SB_VERT
Definition: winuser.h:553
PSBINFO pSBInfo
Definition: ntuser.h:690
struct TraceInfo Info
#define FALSE
Definition: types.h:117
LONG_PTR LPARAM
Definition: windef.h:208
BOOL APIENTRY NtUserSBGetParms(HWND hWnd, int fnBar, PSBDATA pSBData, LPSCROLLINFO lpsi)
Definition: scrollbar.c:1247
#define ERROR_NO_SCROLLBARS
Definition: winerror.h:928
#define SetLastError(x)
Definition: compat.h:500
PWND FASTCALL ValidateHwnd(HWND hwnd)
Definition: misc.c:369
Definition: ntuser.h:657
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by GetScrollInfo(), and ResetUserApiHook().

◆ RealGetSystemMetrics()

int WINAPI RealGetSystemMetrics ( int  )

Definition at line 128 of file desktop.c.

129 {
130  //FIXME("Global Server Data -> %x\n",gpsi);
131  if (nIndex < 0 || nIndex >= SM_CMETRICS) return 0;
132  return gpsi->aiSysMet[nIndex];
133 }
PSERVERINFO gpsi
Definition: main.c:27
#define SM_CMETRICS
Definition: winuser.h:1055

Referenced by GetSystemMetrics(), and ResetUserApiHook().

◆ RealMDIRedrawFrame()

BOOL WINAPI RealMDIRedrawFrame ( HWND  hWnd,
DWORD  flags 
)

Definition at line 311 of file usrapihk.c.

312 {
313  return NtUserxMDIRedrawFrame(hWnd);
314 }
EXTINLINE BOOL NtUserxMDIRedrawFrame(HWND hWnd)
Definition: ntwrapper.h:783
HWND hWnd
Definition: settings.c:17

Referenced by MDIRedrawFrame(), and ResetUserApiHook().

◆ RealSetScrollInfo()

INT WINAPI RealSetScrollInfo ( HWND  ,
int  ,
LPCSCROLLINFO  ,
BOOL   
)

Definition at line 1666 of file scrollbar.c.

1667 {
1668  if (SB_CTL == SBType)
1669  {
1670  return SendMessageW(Wnd, SBM_SETSCROLLINFO, (WPARAM) bRedraw, (LPARAM) Info);
1671  }
1672  else
1673  {
1674  return NtUserSetScrollInfo(Wnd, SBType, Info, bRedraw);
1675  }
1676 }
#define SB_CTL
Definition: winuser.h:554
UINT_PTR WPARAM
Definition: windef.h:207
struct TraceInfo Info
DWORD APIENTRY NtUserSetScrollInfo(HWND hWnd, int fnBar, LPCSCROLLINFO lpsi, BOOL bRedraw)
Definition: scrollbar.c:1396
LONG_PTR LPARAM
Definition: windef.h:208
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by ResetUserApiHook(), SetScrollInfo(), and SetScrollPos().

◆ RealSystemParametersInfoA()

BOOL WINAPI RealSystemParametersInfoA ( UINT  ,
UINT  ,
PVOID  ,
UINT   
)

Definition at line 180 of file desktop.c.

184 {
185  switch (uiAction)
186  {
187 
188  case SPI_GETNONCLIENTMETRICS:
189  {
190  LPNONCLIENTMETRICSA pnclma = (LPNONCLIENTMETRICSA)pvParam;
191  NONCLIENTMETRICSW nclmw;
192  if(pnclma->cbSize != sizeof(NONCLIENTMETRICSA))
193  {
195  return FALSE;
196  }
197  nclmw.cbSize = sizeof(NONCLIENTMETRICSW);
198 
199  if (!SystemParametersInfoW(uiAction, sizeof(NONCLIENTMETRICSW),
200  &nclmw, fWinIni))
201  return FALSE;
202 
203  pnclma->iBorderWidth = nclmw.iBorderWidth;
204  pnclma->iScrollWidth = nclmw.iScrollWidth;
205  pnclma->iScrollHeight = nclmw.iScrollHeight;
206  pnclma->iCaptionWidth = nclmw.iCaptionWidth;
207  pnclma->iCaptionHeight = nclmw.iCaptionHeight;
208  pnclma->iSmCaptionWidth = nclmw.iSmCaptionWidth;
209  pnclma->iSmCaptionHeight = nclmw.iSmCaptionHeight;
210  pnclma->iMenuWidth = nclmw.iMenuWidth;
211  pnclma->iMenuHeight = nclmw.iMenuHeight;
212  LogFontW2A(&(pnclma->lfCaptionFont), &(nclmw.lfCaptionFont));
213  LogFontW2A(&(pnclma->lfSmCaptionFont), &(nclmw.lfSmCaptionFont));
214  LogFontW2A(&(pnclma->lfMenuFont), &(nclmw.lfMenuFont));
215  LogFontW2A(&(pnclma->lfStatusFont), &(nclmw.lfStatusFont));
216  LogFontW2A(&(pnclma->lfMessageFont), &(nclmw.lfMessageFont));
217  return TRUE;
218  }
219  case SPI_SETNONCLIENTMETRICS:
220  {
221  LPNONCLIENTMETRICSA pnclma = (LPNONCLIENTMETRICSA)pvParam;
222  NONCLIENTMETRICSW nclmw;
223  if(pnclma->cbSize != sizeof(NONCLIENTMETRICSA))
224  {
226  return FALSE;
227  }
228  nclmw.cbSize = sizeof(NONCLIENTMETRICSW);
229  nclmw.iBorderWidth = pnclma->iBorderWidth;
230  nclmw.iScrollWidth = pnclma->iScrollWidth;
231  nclmw.iScrollHeight = pnclma->iScrollHeight;
232  nclmw.iCaptionWidth = pnclma->iCaptionWidth;
233  nclmw.iCaptionHeight = pnclma->iCaptionHeight;
234  nclmw.iSmCaptionWidth = pnclma->iSmCaptionWidth;
235  nclmw.iSmCaptionHeight = pnclma->iSmCaptionHeight;
236  nclmw.iMenuWidth = pnclma->iMenuWidth;
237  nclmw.iMenuHeight = pnclma->iMenuHeight;
238  LogFontA2W(&(nclmw.lfCaptionFont), &(pnclma->lfCaptionFont));
239  LogFontA2W(&(nclmw.lfSmCaptionFont), &(pnclma->lfSmCaptionFont));
240  LogFontA2W(&(nclmw.lfMenuFont), &(pnclma->lfMenuFont));
241  LogFontA2W(&(nclmw.lfStatusFont), &(pnclma->lfStatusFont));
242  LogFontA2W(&(nclmw.lfMessageFont), &(pnclma->lfMessageFont));
243 
244  return SystemParametersInfoW(uiAction, sizeof(NONCLIENTMETRICSW),
245  &nclmw, fWinIni);
246  }
247  case SPI_GETICONMETRICS:
248  {
249  LPICONMETRICSA picma = (LPICONMETRICSA)pvParam;
250  ICONMETRICSW icmw;
251  if(picma->cbSize != sizeof(ICONMETRICSA))
252  {
254  return FALSE;
255  }
256  icmw.cbSize = sizeof(ICONMETRICSW);
257  if (!SystemParametersInfoW(uiAction, sizeof(ICONMETRICSW),
258  &icmw, fWinIni))
259  return FALSE;
260 
261  picma->iHorzSpacing = icmw.iHorzSpacing;
262  picma->iVertSpacing = icmw.iVertSpacing;
263  picma->iTitleWrap = icmw.iTitleWrap;
264  LogFontW2A(&(picma->lfFont), &(icmw.lfFont));
265  return TRUE;
266  }
267  case SPI_SETICONMETRICS:
268  {
269  LPICONMETRICSA picma = (LPICONMETRICSA)pvParam;
270  ICONMETRICSW icmw;
271  if(picma->cbSize != sizeof(ICONMETRICSA))
272  {
274  return FALSE;
275  }
276  icmw.cbSize = sizeof(ICONMETRICSW);
277  icmw.iHorzSpacing = picma->iHorzSpacing;
278  icmw.iVertSpacing = picma->iVertSpacing;
279  icmw.iTitleWrap = picma->iTitleWrap;
280  LogFontA2W(&(icmw.lfFont), &(picma->lfFont));
281 
282  return SystemParametersInfoW(uiAction, sizeof(ICONMETRICSW),
283  &icmw, fWinIni);
284  }
286  {
287  LOGFONTW lfw;
288  if (!SystemParametersInfoW(uiAction, 0, &lfw, fWinIni))
289  return FALSE;
290  LogFontW2A(pvParam, &lfw);
291  return TRUE;
292  }
294  {
295  LPLOGFONTA plfa = (LPLOGFONTA)pvParam;
296  LOGFONTW lfw;
297  LogFontA2W(&lfw,plfa);
298  return SystemParametersInfoW(uiAction, 0, &lfw, fWinIni);
299  }
301  {
302  BOOL Ret;
303  WCHAR awc[MAX_PATH];
304  UNICODE_STRING ustrWallpaper;
305  ANSI_STRING astrWallpaper;
306 
308  RtlInitUnicodeString(&ustrWallpaper, awc);
309  RtlInitEmptyAnsiString(&astrWallpaper, pvParam, uiParam);
310  RtlUnicodeStringToAnsiString(&astrWallpaper, &ustrWallpaper, FALSE);
311  return Ret;
312  }
313 
315  {
316  UNICODE_STRING ustrWallpaper;
317  BOOL Ret;
318 
319  if (pvParam)
320  {
321  if (!RtlCreateUnicodeStringFromAsciiz(&ustrWallpaper, pvParam))
322  {
323  ERR("RtlCreateUnicodeStringFromAsciiz failed\n");
324  return FALSE;
325  }
326  pvParam = &ustrWallpaper;
327  }
328 
329  Ret = NtUserSystemParametersInfo(SPI_SETDESKWALLPAPER, uiParam, pvParam, fWinIni);
330 
331  if (pvParam)
332  RtlFreeUnicodeString(&ustrWallpaper);
333 
334  return Ret;
335  }
336  }
337  return NtUserSystemParametersInfo(uiAction, uiParam, pvParam, fWinIni);
338 }
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define TRUE
Definition: types.h:120
#define SPI_SETDESKWALLPAPER
Definition: winuser.h:1351
VOID WINAPI LogFontW2A(LPLOGFONTA pA, CONST LOGFONTW *pW)
Definition: desktop.c:103
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
NTSYSAPI BOOLEAN NTAPI RtlCreateUnicodeStringFromAsciiz(_Out_ PUNICODE_STRING Destination, _In_ PCSZ Source)
NTSYSAPI NTSTATUS NTAPI RtlUnicodeStringToAnsiString(PANSI_STRING DestinationString, PUNICODE_STRING SourceString, BOOLEAN AllocateDestinationString)
VOID WINAPI LogFontA2W(LPLOGFONTW pW, CONST LOGFONTA *pA)
Definition: desktop.c:77
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define MAX_PATH
Definition: compat.h:34
NTSYSAPI VOID NTAPI RtlFreeUnicodeString(PUNICODE_STRING UnicodeString)
#define SetLastError(x)
Definition: compat.h:500
BOOL WINAPI SystemParametersInfoW(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
Definition: desktop.c:398
#define ERR(fmt,...)
Definition: debug.h:110
#define SPI_SETICONTITLELOGFONT
Definition: winuser.h:1365
BOOL NTAPI NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
Definition: sysparams.c:2141
#define SPI_GETICONTITLELOGFONT
Definition: winuser.h:1362
struct tagLOGFONTA * LPLOGFONTA
#define SPI_GETDESKWALLPAPER
Definition: sysparams.c:34
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)

Referenced by ResetUserApiHook(), and SystemParametersInfoA().

◆ RealSystemParametersInfoW()

BOOL WINAPI RealSystemParametersInfoW ( UINT  ,
UINT  ,
PVOID  ,
UINT   
)

Definition at line 341 of file desktop.c.

345 {
346  switch(uiAction)
347  {
348 
350  {
351  UNICODE_STRING ustrWallpaper;
352 
353  RtlInitUnicodeString(&ustrWallpaper, pvParam);
354  return NtUserSystemParametersInfo(SPI_SETDESKWALLPAPER, uiParam, &ustrWallpaper, fWinIni);
355  }
356  }
357  return NtUserSystemParametersInfo(uiAction, uiParam, pvParam, fWinIni);
358 }
#define SPI_SETDESKWALLPAPER
Definition: winuser.h:1351
BOOL NTAPI NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
Definition: sysparams.c:2141
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)

Referenced by ResetUserApiHook(), and SystemParametersInfoW().

◆ RealUserDrawCaption()

BOOL WINAPI RealUserDrawCaption ( HWND  hWnd,
HDC  hDC,
LPCRECT  lpRc,
UINT  uFlags 
)

Definition at line 80 of file nonclient.c.

81 {
82  ERR("Real DC flags %08x\n",uFlags);
83  return NtUserDrawCaption(hWnd, hDC, lpRc, uFlags);
84 }
HWND hWnd
Definition: settings.c:17
UINT uFlags
Definition: api.c:59
#define ERR(fmt,...)
Definition: debug.h:110
static HDC hDC
Definition: 3dtext.c:33
BOOL NTAPI NtUserDrawCaption(HWND hWnd, HDC hDc, LPCRECT lpRc, UINT uFlags)
Definition: painting.c:2447

Referenced by ResetUserApiHook().

◆ RegisterUserApiHook()

BOOL WINAPI RegisterUserApiHook ( PUSERAPIHOOKINFO  puah)

Definition at line 376 of file usrapihk.c.

377 {
378  UNICODE_STRING m_dllname1;
379  UNICODE_STRING m_funname1;
380 
381  if (puah->m_size == sizeof(USERAPIHOOKINFO))
382  {
383  WARN("RegisterUserApiHook: %S and %S",puah->m_dllname1, puah->m_funname1);
384  RtlInitUnicodeString(&m_dllname1, puah->m_dllname1);
385  RtlInitUnicodeString(&m_funname1, puah->m_funname1);
386  return NtUserRegisterUserApiHook( &m_dllname1, &m_funname1, 0, 0);
387  }
388  return FALSE;
389 }
BOOL NTAPI NtUserRegisterUserApiHook(PUNICODE_STRING m_dllname1, PUNICODE_STRING m_funname1, DWORD dwUnknown3, DWORD dwUnknown4)
Definition: hook.c:1724
#define WARN(fmt,...)
Definition: debug.h:112
LPCWSTR m_funname1
Definition: undocuser.h:368
#define FALSE
Definition: types.h:117
LPCWSTR m_dllname1
Definition: undocuser.h:367
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)

◆ 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;
146  puah->WndProcArray.MsgBitArray = NULL;
147  puah->WndProcArray.Size = 0;
148  puah->PreDefDlgProc = DefaultOWP;
149  puah->PostDefDlgProc = DefaultOWP;
150  puah->DlgProcArray.MsgBitArray = NULL;
151  puah->DlgProcArray.Size = 0;
160 }
struct tagUSERAPIHOOK USERAPIHOOK
BOOL WINAPI RealMDIRedrawFrame(HWND, DWORD)
Definition: usrapihk.c:311
GETREALWINDOWOWNER GetRealWindowOwner
Definition: undocuser.h:352
WNDPROC_OWP PostDefDlgProc
Definition: undocuser.h:343
UAHOWP DlgProcArray
Definition: undocuser.h:344
BOOL WINAPI RealSystemParametersInfoW(UINT, UINT, PVOID, UINT)
Definition: desktop.c:341
BOOL WINAPI RealUserDrawCaption(HWND hWnd, HDC hDC, LPCRECT lpRc, UINT uFlags)
Definition: nonclient.c:80
BOOL NTAPI NtUserEnableScrollBar(HWND hWnd, UINT wSBflags, UINT wArrows)
Definition: scrollbar.c:1311
DRAWCAPTION DrawCaption
Definition: undocuser.h:350
SETWINDOWRGN SetWindowRgn
Definition: undocuser.h:338
ADJUSTWINDOWRECTEX AdjustWindowRectEx
Definition: undocuser.h:337
WNDPROC DefWindowProcW
Definition: undocuser.h:332
WNDPROC_OWP PostWndProc
Definition: undocuser.h:340
ENABLESCROLLBAR EnableScrollBar
Definition: undocuser.h:336
INT WINAPI RealSetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL)
Definition: scrollbar.c:1666
SYSTEMPARAMETERSINFOW SystemParametersInfoW
Definition: undocuser.h:347
UAHOWP DefWndProcArray
Definition: undocuser.h:333
smooth NULL
Definition: ftsmooth.c:416
MDIREDRAWFRAME MDIRedrawFrame
Definition: undocuser.h:351
GETSCROLLINFO GetScrollInfo
Definition: undocuser.h:334
LRESULT WINAPI DefaultOWP(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, ULONG_PTR lResult, PDWORD pData)
Definition: usrapihk.c:52
GETSYSTEMMETRICS GetSystemMetrics
Definition: undocuser.h:345
BOOL WINAPI RealGetScrollInfo(HWND, INT, LPSCROLLINFO)
Definition: scrollbar.c:1513
DRAWFRAMECONTROL DrawFrameControl
Definition: undocuser.h:349
DWORD Size
Definition: undocuser.h:321
FORCERESETUSERAPIHOOK ForceResetUserApiHook
Definition: undocuser.h:348
WNDPROC_OWP PreDefDlgProc
Definition: undocuser.h:342
WNDPROC DefWindowProcA
Definition: undocuser.h:331
BOOL WINAPI RealAdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD)
Definition: nonclient.c:90
BYTE * MsgBitArray
Definition: undocuser.h:320
SYSTEMPARAMETERSINFOA SystemParametersInfoA
Definition: undocuser.h:346
BOOL WINAPI RealDrawFrameControl(HDC, LPRECT, UINT, UINT)
Definition: draw.c:1419
int WINAPI RealGetSystemMetrics(int)
Definition: desktop.c:128
WNDPROC_OWP PreWndProc
Definition: undocuser.h:339
UAHOWP WndProcArray
Definition: undocuser.h:341
BOOL WINAPI ForceResetUserApiHook(HINSTANCE hInstance)
Definition: usrapihk.c:117
BOOL WINAPI RealSystemParametersInfoA(UINT, UINT, PVOID, UINT)
Definition: desktop.c:180
DWORD WINAPI GetRealWindowOwner(HWND)
Definition: window.c:1915
LRESULT WINAPI RealDefWindowProcA(HWND, UINT, WPARAM, LPARAM)
Definition: defwnd.c:809
LRESULT WINAPI RealDefWindowProcW(HWND, UINT, WPARAM, LPARAM)
Definition: defwnd.c:1017
INT NTAPI NtUserSetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)
Definition: winpos.c:3477
SETSCROLLINFO SetScrollInfo
Definition: undocuser.h:335

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

◆ UnregisterUserApiHook()

BOOL WINAPI UnregisterUserApiHook ( VOID  )

Definition at line 394 of file usrapihk.c.

395 {
397 }
BOOL NTAPI NtUserUnregisterUserApiHook(VOID)
Definition: hook.c:1770

Referenced by ThemeHooksRemove().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( user32  )

Variable Documentation

◆ gcCallUserApiHook

LONG gcCallUserApiHook = 0

Definition at line 35 of file usrapihk.c.

Referenced by BeginIfHookedUserApiHook(), ClearUserApiHook(), and EndUserApiHook().

◆ gcLoadUserApiHook

DWORD gcLoadUserApiHook = 0

Definition at line 34 of file usrapihk.c.

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

◆ gcsUserApiHook

RTL_CRITICAL_SECTION gcsUserApiHook

Definition at line 39 of file usrapihk.c.

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

◆ gfUserApiHook

DWORD gfUserApiHook = 0

Definition at line 36 of file usrapihk.c.

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

◆ ghmodUserApiHook

◆ gpfnInitUserApi

USERAPIHOOKPROC gpfnInitUserApi

◆ grgbDlgLiteHookMsg

BYTE grgbDlgLiteHookMsg[128]

Definition at line 43 of file usrapihk.c.

Referenced by InitUserApiHook().

◆ grgbDwpLiteHookMsg

BYTE grgbDwpLiteHookMsg[128]

Definition at line 41 of file usrapihk.c.

Referenced by InitUserApiHook().

◆ grgbWndLiteHookMsg

BYTE grgbWndLiteHookMsg[128]

Definition at line 42 of file usrapihk.c.

Referenced by InitUserApiHook().

◆ guah

Initial value:
=
{
sizeof(USERAPIHOOK),
{NULL, 0},
{NULL, 0},
{NULL, 0},
}
struct tagUSERAPIHOOK USERAPIHOOK
BOOL WINAPI RealMDIRedrawFrame(HWND, DWORD)
Definition: usrapihk.c:311
BOOL WINAPI RealSystemParametersInfoW(UINT, UINT, PVOID, UINT)
Definition: desktop.c:341
BOOL NTAPI NtUserEnableScrollBar(HWND hWnd, UINT wSBflags, UINT wArrows)
Definition: scrollbar.c:1311
INT WINAPI RealSetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL)
Definition: scrollbar.c:1666
smooth NULL
Definition: ftsmooth.c:416
LRESULT WINAPI DefaultOWP(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, ULONG_PTR lResult, PDWORD pData)
Definition: usrapihk.c:52
BOOL WINAPI RealGetScrollInfo(HWND, INT, LPSCROLLINFO)
Definition: scrollbar.c:1513
BOOL WINAPI RealAdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD)
Definition: nonclient.c:90
BOOL WINAPI RealDrawFrameControl(HDC, LPRECT, UINT, UINT)
Definition: draw.c:1419
int WINAPI RealGetSystemMetrics(int)
Definition: desktop.c:128
BOOL WINAPI ForceResetUserApiHook(HINSTANCE hInstance)
Definition: usrapihk.c:117
BOOL WINAPI RealSystemParametersInfoA(UINT, UINT, PVOID, UINT)
Definition: desktop.c:180
DWORD WINAPI GetRealWindowOwner(HWND)
Definition: window.c:1915
LRESULT WINAPI RealDefWindowProcA(HWND, UINT, WPARAM, LPARAM)
Definition: defwnd.c:809
LRESULT WINAPI RealDefWindowProcW(HWND, UINT, WPARAM, LPARAM)
Definition: defwnd.c:1017
INT NTAPI NtUserSetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)
Definition: winpos.c:3477
BOOL NTAPI NtUserDrawCaption(HWND hWnd, HDC hDc, LPCRECT lpRc, UINT uFlags)
Definition: painting.c:2447

Definition at line 344 of file usrapihk.c.

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