ReactOS  0.4.15-dev-3440-g915569a
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:363
HINSTANCE hInstance
Definition: charmap.c:20
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
DWORD gcLoadUserApiHook
Definition: usrapihk.c:34
#define NULL
Definition: types.h:112
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 }
*nSize LPSTR _Inout_ LPDWORD nSize
Definition: winbase.h:2053
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
unsigned long DWORD
Definition: ntddk_ex.h:95
DWORD Size
Definition: undocuser.h:322
BYTE * MsgBitArray
Definition: undocuser.h:321
#define NULL
Definition: types.h:112
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263

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:363
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
#define FreeLibrary(x)
Definition: compat.h:607
#define InterlockedDecrement
Definition: armddk.h:52
DWORD gcLoadUserApiHook
Definition: usrapihk.c:34
#define NULL
Definition: types.h:112
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
BOOLEAN NTAPI RtlIsThreadWithinLoaderCallout(VOID)
Definition: libsupp.c:348
#define NULL
Definition: types.h:112
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:2905
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 }
VOID FASTCALL ResetUserApiHook(PUSERAPIHOOK puah)
Definition: usrapihk.c:131
#define TRUE
Definition: types.h:120
UAHOWP DlgProcArray
Definition: undocuser.h:345
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:334
FORCERESETUSERAPIHOOK ForceResetUserApiHook
Definition: undocuser.h:349
DWORD gcLoadUserApiHook
Definition: usrapihk.c:34
BYTE grgbDlgLiteHookMsg[128]
Definition: usrapihk.c:43
UAHOWP WndProcArray
Definition: undocuser.h:342
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
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
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 }
IN PVOID IN PVOID IN USHORT IN USHORT Size
Definition: pci.h:361
#define FALSE
Definition: types.h:117
BYTE * MsgBitArray
Definition: undocuser.h:321
unsigned int UINT
Definition: ndis.h:50
struct @1587 Msg[]
#define WM_SETFOCUS
Definition: winuser.h:1600

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
MDIREDRAWFRAME MDIRedrawFrame
Definition: undocuser.h:352
BOOL FASTCALL EndUserApiHook(VOID)
Definition: usrapihk.c:164
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
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:40

◆ 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:957
int WINAPI GetSystemMetrics(_In_ int)
#define SM_CYMENU
Definition: winuser.h:970
#define SM_CYSMCAPTION
Definition: winuser.h:1008
LONG cy
Definition: windef.h:335

Referenced by AdjustWindowRectEx(), and ResetUserApiHook().

◆ RealDefWindowProcA()

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

Definition at line 812 of file defwnd.c.

816 {
817  LRESULT Result = 0;
818  PWND Wnd;
819 
820  Wnd = ValidateHwnd(hWnd);
821 
822  if ( !Wnd &&
823  Msg != WM_CTLCOLORMSGBOX &&
824  Msg != WM_CTLCOLORBTN &&
825  Msg != WM_CTLCOLORDLG &&
827  return 0;
828 
830  switch (Msg)
831  {
832  case WM_NCCREATE:
833  {
834  if ( Wnd &&
835  Wnd->style & (WS_HSCROLL | WS_VSCROLL) )
836  {
837  if (!Wnd->pSBInfo)
838  {
839  SCROLLINFO si = {sizeof si, SIF_ALL, 0, 100, 0, 0, 0};
840  SetScrollInfo( hWnd, SB_HORZ, &si, FALSE );
841  SetScrollInfo( hWnd, SB_VERT, &si, FALSE );
842  }
843  }
844 
845  if (lParam)
846  {
848  /* check for string, as static icons, bitmaps (SS_ICON, SS_BITMAP)
849  * may have child window IDs instead of window name */
850  if (HIWORD(cs->lpszName))
851  {
852  DefSetText(hWnd, (PCWSTR)cs->lpszName, TRUE);
853  }
854  Result = 1;
855  }
856  break;
857  }
858 
859  case WM_GETTEXTLENGTH:
860  {
861  PWSTR buf;
862  ULONG len;
863 
864  if (Wnd != NULL && Wnd->strName.Length != 0)
865  {
867  if (buf != NULL &&
869  buf,
870  Wnd->strName.Length)))
871  {
872  Result = (LRESULT) len;
873  }
874  }
875  else Result = 0L;
876 
877  break;
878  }
879 
880  case WM_GETTEXT:
881  {
882  PWSTR buf = NULL;
883  PSTR outbuf = (PSTR)lParam;
884  SIZE_T copy;
885 
886  if (Wnd != NULL && wParam != 0)
887  {
888  if (Wnd->strName.Buffer != NULL)
890  else
891  outbuf[0] = L'\0';
892 
893  if (buf != NULL)
894  {
895  if (Wnd->strName.Length != 0)
896  {
897  copy = min(Wnd->strName.Length / sizeof(WCHAR), wParam - 1);
899  0,
900  buf,
901  copy,
902  outbuf,
903  wParam,
904  NULL,
905  NULL);
906  outbuf[Result] = '\0';
907  }
908  else
909  outbuf[0] = '\0';
910  }
911  }
912  break;
913  }
914 
915  case WM_SETTEXT:
916  {
918 
920  {
922  IntNotifyWinEvent(EVENT_OBJECT_NAMECHANGE, hWnd, OBJID_WINDOW, CHILDID_SELF, 0);
923  }
924  Result = 1;
925  break;
926  }
927 
928  case WM_IME_KEYDOWN:
929  {
931  break;
932  }
933 
934  case WM_IME_KEYUP:
935  {
937  break;
938  }
939 
940  case WM_IME_CHAR:
941  {
942  if (HIBYTE(wParam))
945  break;
946  }
947 
948  case WM_IME_COMPOSITION:
949  if (lParam & GCS_RESULTSTR)
950  {
951  LONG size, i;
952  unsigned char lead = 0;
953  char *buf = NULL;
954  HIMC himc = ImmGetContext( hWnd );
955 
956  if (himc)
957  {
958  if ((size = ImmGetCompositionStringA( himc, GCS_RESULTSTR, NULL, 0 )))
959  {
960  if (!(buf = HeapAlloc( GetProcessHeap(), 0, size ))) size = 0;
962  }
963  ImmReleaseContext( hWnd, himc );
964 
965  for (i = 0; i < size; i++)
966  {
967  unsigned char c = buf[i];
968  if (!lead)
969  {
970  if (IsDBCSLeadByte( c ))
971  lead = c;
972  else
973  SendMessageA( hWnd, WM_IME_CHAR, c, 1 );
974  }
975  else
976  {
977  SendMessageA( hWnd, WM_IME_CHAR, MAKEWORD(c, lead), 1 );
978  lead = 0;
979  }
980  }
981  HeapFree( GetProcessHeap(), 0, buf );
982  }
983  }
984  /* fall through */
985  case WM_IME_STARTCOMPOSITION:
986  case WM_IME_ENDCOMPOSITION:
987  case WM_IME_SELECT:
988  case WM_IME_NOTIFY:
989  case WM_IME_CONTROL:
990  {
991  HWND hwndIME;
992 
993  hwndIME = ImmGetDefaultIMEWnd(hWnd);
994  if (hwndIME)
995  Result = SendMessageA(hwndIME, Msg, wParam, lParam);
996  break;
997  }
998 
999  case WM_IME_SETCONTEXT:
1000  {
1001  HWND hwndIME;
1002 
1003  hwndIME = ImmGetDefaultIMEWnd(hWnd);
1004  if (hwndIME)
1005  Result = ImmIsUIMessageA(hwndIME, Msg, wParam, lParam);
1006  break;
1007  }
1008 
1009  /* fall through */
1010  default:
1012  }
1013 
1015  return Result;
1016 }
#define WM_GETTEXTLENGTH
Definition: winuser.h:1606
#define WM_IME_KEYUP
Definition: winuser.h:1826
const uint16_t * PCWSTR
Definition: typedefs.h:57
#define WM_IME_NOTIFY
Definition: winuser.h:1817
LONG WINAPI ImmGetCompositionStringA(HIMC hIMC, DWORD dwIndex, LPVOID lpBuf, DWORD dwBufLen)
Definition: compstr.c:848
#define WM_IME_KEYDOWN
Definition: winuser.h:1825
#define WM_CHAR
Definition: winuser.h:1704
#define WideCharToMultiByte
Definition: compat.h:111
#define WM_IME_CHAR
Definition: winuser.h:1821
#define LOBYTE(W)
Definition: jmemdos.c:487
#define MAKEWORD(a, b)
Definition: typedefs.h:248
#define SB_VERT
Definition: winuser.h:553
#define TRUE
Definition: types.h:120
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_CTLCOLORDLG
Definition: winuser.h:1757
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:1759
#define WM_GETTEXT
Definition: winuser.h:1605
#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:1820
PSBINFO pSBInfo
Definition: ntuser.h:696
#define GetWindowLongPtrW
Definition: winuser.h:4809
#define WM_NCCREATE
Definition: winuser.h:1670
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:69
struct tagCREATESTRUCTA * LPCREATESTRUCTA
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
uint32_t cs
Definition: isohybrid.c:75
#define L(x)
Definition: ntvdm.h:50
static __inline PVOID DesktopPtrToUser(PVOID Ptr)
Definition: user_x.h:12
#define WM_CTLCOLORBTN
Definition: winuser.h:1756
#define FALSE
Definition: types.h:117
long LONG
Definition: pedump.c:60
BOOL WINAPI ImmIsUIMessageA(HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: keymsg.c:587
#define CHILDID_SELF
Definition: winable.h:14
#define GCS_RESULTSTR
Definition: imm.h:377
_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:2235
#define WM_KEYDOWN
Definition: winuser.h:1702
#define WM_CTLCOLORMSGBOX
Definition: winuser.h:1753
DWORD HIMC
Definition: dimm.idl:75
#define WM_SETTEXT
Definition: winuser.h:1604
LARGE_UNICODE_STRING strName
Definition: ntuser.h:706
#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:595
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:1816
HIMC WINAPI ImmGetContext(HWND hWnd)
Definition: imm.c:1008
#define WM_IME_CONTROL
Definition: winuser.h:1818
const GLubyte * c
Definition: glext.h:8905
#define WM_KEYUP
Definition: winuser.h:1703
void SPY_EnterMessage(INT iFlag, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: spy.c:2593
#define WS_HSCROLL
Definition: pedump.c:628
PWND FASTCALL ValidateHwnd(HWND hwnd)
Definition: misc.c:359
GLenum GLsizei len
Definition: glext.h:6722
#define LRESULT
Definition: ole.h:14
BOOL WINAPI ImmReleaseContext(HWND hWnd, HIMC hIMC)
Definition: imm.c:1057
#define GWL_STYLE
Definition: winuser.h:846
Definition: ntuser.h:663
ULONG_PTR SIZE_T
Definition: typedefs.h:80
HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
Definition: ime.c:633
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
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:72
#define NULL
Definition: types.h:112
BOOL UserPaintCaption(PWND pWnd, INT Flags)
Definition: defwnd.c:396
#define WS_VSCROLL
Definition: pedump.c:627
struct @1587 Msg[]
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:594
#define DC_TEXT
Definition: winuser.h:430
#define SIF_ALL
Definition: winuser.h:1222
DWORD style
Definition: ntuser.h:676

Referenced by DefWindowProcA(), and ResetUserApiHook().

◆ RealDefWindowProcW()

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

Definition at line 1020 of file defwnd.c.

1024 {
1025  LRESULT Result = 0;
1026  PWND Wnd;
1027 
1028  Wnd = ValidateHwnd(hWnd);
1029 
1030  if ( !Wnd &&
1031  Msg != WM_CTLCOLORMSGBOX &&
1032  Msg != WM_CTLCOLORBTN &&
1033  Msg != WM_CTLCOLORDLG &&
1034  Msg != WM_CTLCOLORSTATIC )
1035  return 0;
1036 
1038  switch (Msg)
1039  {
1040  case WM_NCCREATE:
1041  {
1042  if ( Wnd &&
1043  Wnd->style & (WS_HSCROLL | WS_VSCROLL) )
1044  {
1045  if (!Wnd->pSBInfo)
1046  {
1047  SCROLLINFO si = {sizeof si, SIF_ALL, 0, 100, 0, 0, 0};
1048  if (Wnd->style & WS_HSCROLL)
1049  SetScrollInfo( hWnd, SB_HORZ, &si, FALSE );
1050  if (Wnd->style & WS_VSCROLL)
1051  SetScrollInfo( hWnd, SB_VERT, &si, FALSE );
1052  }
1053  }
1054 
1055  if (lParam)
1056  {
1058  /* check for string, as static icons, bitmaps (SS_ICON, SS_BITMAP)
1059  * may have child window IDs instead of window name */
1060  if (HIWORD(cs->lpszName))
1061  {
1062  DefSetText(hWnd, cs->lpszName, FALSE);
1063  }
1064  Result = 1;
1065  }
1066  break;
1067  }
1068 
1069  case WM_GETTEXTLENGTH:
1070  {
1071  PWSTR buf;
1072  ULONG len;
1073 
1074  if (Wnd != NULL && Wnd->strName.Length != 0)
1075  {
1077  if (buf != NULL &&
1079  buf,
1080  Wnd->strName.Length)))
1081  {
1082  Result = (LRESULT) (Wnd->strName.Length / sizeof(WCHAR));
1083  }
1084  }
1085  else Result = 0L;
1086 
1087  break;
1088  }
1089 
1090  case WM_GETTEXT:
1091  {
1092  PWSTR buf = NULL;
1093  PWSTR outbuf = (PWSTR)lParam;
1094 
1095  if (Wnd != NULL && wParam != 0)
1096  {
1097  if (Wnd->strName.Buffer != NULL)
1099  else
1100  outbuf[0] = L'\0';
1101 
1102  if (buf != NULL)
1103  {
1104  if (Wnd->strName.Length != 0)
1105  {
1106  Result = min(Wnd->strName.Length / sizeof(WCHAR), wParam - 1);
1107  RtlCopyMemory(outbuf,
1108  buf,
1109  Result * sizeof(WCHAR));
1110  outbuf[Result] = L'\0';
1111  }
1112  else
1113  outbuf[0] = L'\0';
1114  }
1115  }
1116  break;
1117  }
1118 
1119  case WM_SETTEXT:
1120  {
1122 
1124  UserPaintCaption(Wnd, DC_TEXT);
1125  Result = 1;
1126  break;
1127  }
1128 
1129  case WM_IME_CHAR:
1130  {
1132  Result = 0;
1133  break;
1134  }
1135 
1136  case WM_IME_KEYDOWN:
1137  {
1139  break;
1140  }
1141 
1142  case WM_IME_KEYUP:
1143  {
1145  break;
1146  }
1147 
1148  case WM_IME_COMPOSITION:
1149  if (lParam & GCS_RESULTSTR)
1150  {
1151  LONG size, i;
1152  WCHAR *buf = NULL;
1153  HIMC himc = ImmGetContext( hWnd );
1154 
1155  if (himc)
1156  {
1157  if ((size = ImmGetCompositionStringW( himc, GCS_RESULTSTR, NULL, 0 )))
1158  {
1159  if (!(buf = HeapAlloc( GetProcessHeap(), 0, size * sizeof(WCHAR) ))) size = 0;
1160  else size = ImmGetCompositionStringW( himc, GCS_RESULTSTR, buf, size * sizeof(WCHAR) );
1161  }
1162  ImmReleaseContext( hWnd, himc );
1163 
1164  for (i = 0; i < size / sizeof(WCHAR); i++)
1165  SendMessageW( hWnd, WM_IME_CHAR, buf[i], 1 );
1166  HeapFree( GetProcessHeap(), 0, buf );
1167  }
1168  }
1169  /* fall through */
1170  case WM_IME_STARTCOMPOSITION:
1171  case WM_IME_ENDCOMPOSITION:
1172  case WM_IME_SELECT:
1173  case WM_IME_NOTIFY:
1174  case WM_IME_CONTROL:
1175  {
1176  HWND hwndIME;
1177 
1178  hwndIME = ImmGetDefaultIMEWnd(hWnd);
1179  if (hwndIME)
1180  Result = SendMessageW(hwndIME, Msg, wParam, lParam);
1181  break;
1182  }
1183 
1184  case WM_IME_SETCONTEXT:
1185  {
1186  HWND hwndIME;
1187 
1188  hwndIME = ImmGetDefaultIMEWnd(hWnd);
1189  if (hwndIME)
1190  Result = ImmIsUIMessageW(hwndIME, Msg, wParam, lParam);
1191  break;
1192  }
1193 
1194  default:
1196  }
1198 
1199  return Result;
1200 }
#define WM_GETTEXTLENGTH
Definition: winuser.h:1606
#define WM_IME_KEYUP
Definition: winuser.h:1826
const uint16_t * PCWSTR
Definition: typedefs.h:57
#define WM_IME_NOTIFY
Definition: winuser.h:1817
#define WM_IME_KEYDOWN
Definition: winuser.h:1825
#define WM_CHAR
Definition: winuser.h:1704
#define WM_IME_CHAR
Definition: winuser.h:1821
#define SB_VERT
Definition: winuser.h:553
#define TRUE
Definition: types.h:120
#define WM_CTLCOLORDLG
Definition: winuser.h:1757
uint16_t * PWSTR
Definition: typedefs.h:56
#define WM_CTLCOLORSTATIC
Definition: winuser.h:1759
#define WM_GETTEXT
Definition: winuser.h:1605
#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:1820
PSBINFO pSBInfo
Definition: ntuser.h:696
#define GetWindowLongPtrW
Definition: winuser.h:4809
#define WM_NCCREATE
Definition: winuser.h:1670
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:69
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
uint32_t cs
Definition: isohybrid.c:75
#define L(x)
Definition: ntvdm.h:50
static __inline PVOID DesktopPtrToUser(PVOID Ptr)
Definition: user_x.h:12
#define WM_CTLCOLORBTN
Definition: winuser.h:1756
#define FALSE
Definition: types.h:117
long LONG
Definition: pedump.c:60
#define GCS_RESULTSTR
Definition: imm.h:377
_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:1702
#define WM_CTLCOLORMSGBOX
Definition: winuser.h:1753
DWORD HIMC
Definition: dimm.idl:75
#define WM_SETTEXT
Definition: winuser.h:1604
LARGE_UNICODE_STRING strName
Definition: ntuser.h:706
#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:595
PVOID WINAPI HeapAlloc(HANDLE, DWORD, SIZE_T)
LONG WINAPI ImmGetCompositionStringW(HIMC hIMC, DWORD dwIndex, LPVOID lpBuf, DWORD dwBufLen)
Definition: compstr.c:890
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define WM_IME_SETCONTEXT
Definition: winuser.h:1816
HIMC WINAPI ImmGetContext(HWND hWnd)
Definition: imm.c:1008
#define WM_IME_CONTROL
Definition: winuser.h:1818
#define WM_KEYUP
Definition: winuser.h:1703
void SPY_EnterMessage(INT iFlag, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: spy.c:2593
#define WS_HSCROLL
Definition: pedump.c:628
PWND FASTCALL ValidateHwnd(HWND hwnd)
Definition: misc.c:359
GLenum GLsizei len
Definition: glext.h:6722
#define LRESULT
Definition: ole.h:14
BOOL WINAPI ImmReleaseContext(HWND hWnd, HIMC hIMC)
Definition: imm.c:1057
#define GWL_STYLE
Definition: winuser.h:846
Definition: ntuser.h:663
HWND WINAPI ImmGetDefaultIMEWnd(HWND hWnd)
Definition: ime.c:633
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
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:72
#define NULL
Definition: types.h:112
BOOL UserPaintCaption(PWND pWnd, INT Flags)
Definition: defwnd.c:396
#define WS_VSCROLL
Definition: pedump.c:627
BOOL WINAPI ImmIsUIMessageW(HWND hWndIME, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: keymsg.c:596
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
struct @1587 Msg[]
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
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
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:594
#define DC_TEXT
Definition: winuser.h:430
#define SIF_ALL
Definition: winuser.h:1222
DWORD style
Definition: ntuser.h:676

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:873
#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:696
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:683
#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:1302
#define ERROR_NO_SCROLLBARS
Definition: winerror.h:928
#define SetLastError(x)
Definition: compat.h:611
PWND FASTCALL ValidateHwnd(HWND hwnd)
Definition: misc.c:359
Definition: ntuser.h:663
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:1059

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
_Must_inspect_result_ _In_ WDFCHILDLIST _In_ PWDF_CHILD_LIST_ITERATOR _Out_ WDFDEVICE _Inout_opt_ PWDF_CHILD_RETRIEVE_INFO Info
Definition: wdfchildlist.h:683
DWORD APIENTRY NtUserSetScrollInfo(HWND hWnd, int fnBar, LPCSCROLLINFO lpsi, BOOL bRedraw)
Definition: scrollbar.c:1451
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:1356
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:611
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:1370
BOOL NTAPI NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
Definition: sysparams.c:2151
#define SPI_GETICONTITLELOGFONT
Definition: winuser.h:1367
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:1356
BOOL NTAPI NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
Definition: sysparams.c:2151
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:2459

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:369
#define FALSE
Definition: types.h:117
LPCWSTR m_dllname1
Definition: undocuser.h:368
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:353
WNDPROC_OWP PostDefDlgProc
Definition: undocuser.h:344
UAHOWP DlgProcArray
Definition: undocuser.h:345
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:1366
DRAWCAPTION DrawCaption
Definition: undocuser.h:351
SETWINDOWRGN SetWindowRgn
Definition: undocuser.h:339
ADJUSTWINDOWRECTEX AdjustWindowRectEx
Definition: undocuser.h:338
WNDPROC DefWindowProcW
Definition: undocuser.h:333
WNDPROC_OWP PostWndProc
Definition: undocuser.h:341
ENABLESCROLLBAR EnableScrollBar
Definition: undocuser.h:337
INT WINAPI RealSetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL)
Definition: scrollbar.c:1666
SYSTEMPARAMETERSINFOW SystemParametersInfoW
Definition: undocuser.h:348
UAHOWP DefWndProcArray
Definition: undocuser.h:334
MDIREDRAWFRAME MDIRedrawFrame
Definition: undocuser.h:352
GETSCROLLINFO GetScrollInfo
Definition: undocuser.h:335
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:346
BOOL WINAPI RealGetScrollInfo(HWND, INT, LPSCROLLINFO)
Definition: scrollbar.c:1513
DRAWFRAMECONTROL DrawFrameControl
Definition: undocuser.h:350
DWORD Size
Definition: undocuser.h:322
FORCERESETUSERAPIHOOK ForceResetUserApiHook
Definition: undocuser.h:349
WNDPROC_OWP PreDefDlgProc
Definition: undocuser.h:343
WNDPROC DefWindowProcA
Definition: undocuser.h:332
BOOL WINAPI RealAdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD)
Definition: nonclient.c:90
BYTE * MsgBitArray
Definition: undocuser.h:321
SYSTEMPARAMETERSINFOA SystemParametersInfoA
Definition: undocuser.h:347
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:340
#define NULL
Definition: types.h:112
UAHOWP WndProcArray
Definition: undocuser.h:342
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:812
LRESULT WINAPI RealDefWindowProcW(HWND, UINT, WPARAM, LPARAM)
Definition: defwnd.c:1020
INT NTAPI NtUserSetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)
Definition: winpos.c:3492
SETSCROLLINFO SetScrollInfo
Definition: undocuser.h:336

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:1366
INT WINAPI RealSetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL)
Definition: scrollbar.c:1666
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
#define NULL
Definition: types.h:112
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:812
LRESULT WINAPI RealDefWindowProcW(HWND, UINT, WPARAM, LPARAM)
Definition: defwnd.c:1020
INT NTAPI NtUserSetWindowRgn(HWND hWnd, HRGN hRgn, BOOL bRedraw)
Definition: winpos.c:3492
BOOL NTAPI NtUserDrawCaption(HWND hWnd, HDC hDc, LPCRECT lpRc, UINT uFlags)
Definition: painting.c:2459

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().