ReactOS  0.4.15-dev-5089-g555bec6
defwnd.c
Go to the documentation of this file.
1 /*
2  * COPYRIGHT: See COPYING in the top level directory
3  * PROJECT: ReactOS Win32k subsystem
4  * PURPOSE: Miscellaneous User functions
5  * FILE: win32ss/user/ntuser/defwnd.c
6  * PROGRAMER:
7  */
8 
9 #include <win32k.h>
10 #include <windowsx.h>
11 
12 DBG_DEFAULT_CHANNEL(UserDefwnd);
13 
16 
18 {
19  DRAWTEXTPARAMS dtp;
20 
21  memset (&dtp, 0, sizeof(dtp));
22  dtp.cbSize = sizeof(dtp);
23  if (flags & DT_TABSTOP)
24  {
25  dtp.iTabLength = (flags >> 8) & 0xff;
26  flags &= 0xffff00ff;
27  }
28  return DrawTextExWorker(hdc, (LPWSTR)str, count, rect, flags, &dtp);
29 }
30 
31 
32 HBRUSH FASTCALL
34 {
35  if (ctlType == CTLCOLOR_SCROLLBAR)
36  {
40  IntGdiSetBkColor(hDC, bk);
41 
42  /* if COLOR_WINDOW happens to be the same as COLOR_3DHILIGHT
43  * we better use 0x55aa bitmap brush to make scrollbar's background
44  * look different from the window background.
45  */
46  if ( bk == IntGetSysColor(COLOR_WINDOW))
47  return gpsi->hbrGray;
48 
50  return hb;
51  }
52 
54 
55  if ((ctlType == CTLCOLOR_EDIT) || (ctlType == CTLCOLOR_LISTBOX))
56  {
58  }
59  else
60  {
63  }
64 
66 }
67 
70 {
71  POINT maxTrack, minTrack;
72  LONG style = pWnd->style;
73 
74  if (Pos->flags & SWP_NOSIZE) return 0;
75  if ((style & WS_THICKFRAME) || ((style & (WS_POPUP | WS_CHILD)) == 0))
76  {
77  co_WinPosGetMinMaxInfo(pWnd, NULL, NULL, &minTrack, &maxTrack);
78  Pos->cx = min(Pos->cx, maxTrack.x);
79  Pos->cy = min(Pos->cy, maxTrack.y);
80  if (!(style & WS_MINIMIZE))
81  {
82  if (Pos->cx < minTrack.x) Pos->cx = minTrack.x;
83  if (Pos->cy < minTrack.y) Pos->cy = minTrack.y;
84  }
85  }
86  else
87  {
88  Pos->cx = max(Pos->cx, 0);
89  Pos->cy = max(Pos->cy, 0);
90  }
91  return 0;
92 }
93 
96 {
97  RECT Rect;
98  LONG style = pWnd->style;
99 
100  IntGetClientRect(pWnd, &Rect);
101  IntMapWindowPoints(pWnd, (style & WS_CHILD ? IntGetParent(pWnd) : NULL), (LPPOINT) &Rect, 2);
102 
103  if (!(Pos->flags & SWP_NOCLIENTMOVE))
104  {
106  }
107 
108  if (!(Pos->flags & SWP_NOCLIENTSIZE) || (Pos->flags & SWP_STATECHANGED))
109  {
111  else
112  {
114  co_IntSendMessage(UserHMGetHandle(pWnd), WM_SIZE, wp, MAKELONG(Rect.right - Rect.left, Rect.bottom - Rect.top));
115  }
116  }
117  return 0;
118 }
119 
120 //
121 // Handle a WM_SYSCOMMAND message. Called from DefWindowProc().
122 //
125 {
126  LRESULT lResult = 0;
127  BOOL Hook = FALSE;
128 
129  if (ISITHOOKED(WH_CBT) || (pWnd->head.rpdesk->pDeskInfo->fsHooks & HOOKID_TO_FLAG(WH_CBT)))
130  {
131  Hook = TRUE;
133 
134  if (lResult) return lResult;
135  }
136 
137  switch (wParam & 0xfff0)
138  {
139  case SC_MOVE:
140  case SC_SIZE:
141  DefWndDoSizeMove(pWnd, wParam);
142  break;
143 
144  case SC_MINIMIZE:
145  if (UserHMGetHandle(pWnd) == UserGetActiveWindow())
146  IntShowOwnedPopups(pWnd,FALSE); // This is done in ShowWindow! Need to retest!
148  break;
149 
150  case SC_MAXIMIZE:
151  if (((pWnd->style & WS_MINIMIZE) != 0) && UserHMGetHandle(pWnd) == UserGetActiveWindow())
152  IntShowOwnedPopups(pWnd,TRUE);
154  break;
155 
156  case SC_RESTORE:
157  if (((pWnd->style & WS_MINIMIZE) != 0) && UserHMGetHandle(pWnd) == UserGetActiveWindow())
158  IntShowOwnedPopups(pWnd,TRUE);
160  break;
161 
162  case SC_CLOSE:
163  return co_IntSendMessage(UserHMGetHandle(pWnd), WM_CLOSE, 0, 0);
164 
165  case SC_SCREENSAVE:
166  ERR("Screensaver Called!\n");
167  UserPostMessage(hwndSAS, WM_LOGONNOTIFY, LN_START_SCREENSAVE, 0); // always lParam 0 == not Secure
168  break;
169 
170  case SC_HOTKEY:
171  {
173 
174  pWnd = ValidateHwndNoErr((HWND)lParam);
175  if (pWnd)
176  {
177  if (pWnd->spwndLastActive)
178  {
179  pWnd = pWnd->spwndLastActive;
180  }
181  UserRefObjectCo(pWnd, &Ref);
183  UserDerefObjectCo(pWnd);
184  if (pWnd->style & WS_MINIMIZE)
185  {
187  }
188  }
189  }
190  break;
191 // case SC_DEFAULT:
192  case SC_MOUSEMENU:
193  {
194  POINT Pt;
195  Pt.x = (short)LOWORD(lParam);
196  Pt.y = (short)HIWORD(lParam);
197  MENU_TrackMouseMenuBar(pWnd, wParam & 0x000f, Pt);
198  }
199  break;
200 
201  case SC_KEYMENU:
203  break;
204 
205 
206  default:
207  // We do not support anything else here so we should return normal even when sending a hook.
208  return 0;
209  }
210 
211  return(Hook ? 1 : 0); // Don't call us again from user space.
212 }
213 
216 {
217  PWND Ret;
218  PWND Child, OwnerWnd;
219 
220  for(Child = Root->spwndChild; Child; Child = Child->spwndNext)
221  {
222  OwnerWnd = Child->spwndOwner;
223  if(!OwnerWnd)
224  continue;
225 
226  if (!(Child->style & WS_POPUP) ||
227  !(Child->style & WS_VISIBLE) ||
228  /* Fixes CMD pop up properties window from having foreground. */
229  Owner->head.pti->MessageQueue != Child->head.pti->MessageQueue)
230  continue;
231 
232  if(OwnerWnd == Owner)
233  {
234  Ret = Child;
235  return Ret;
236  }
237  }
238  return NULL;
239 }
240 
241 LRESULT
243 {
244  PWND pwndPopUP = NULL;
245  WORD Msg = HIWORD(lParam);
246 
247  /* Not for child windows. */
248  if (UserHMGetHandle(pWnd) != (HWND)wParam)
249  {
250  return FALSE;
251  }
252 
253  switch((short)LOWORD(lParam))
254  {
255  case HTERROR:
256  {
259 
260  if (Msg == WM_LBUTTONDOWN)
261  {
262  // Find a pop up window to bring active.
264  if (pwndPopUP)
265  {
266  // Not a child pop up from desktop.
267  if ( pwndPopUP != UserGetDesktopWindow()->spwndChild )
268  {
269  // Get original active window.
270  PWND pwndOrigActive = gpqForeground->spwndActive;
271 
273 
274  UserRefObjectCo(pwndPopUP, &Ref);
275  //UserSetActiveWindow(pwndPopUP);
276  co_IntSetForegroundWindow(pwndPopUP); // HACK
277  UserDerefObjectCo(pwndPopUP);
278 
279  // If the change was made, break out.
280  if (pwndOrigActive != gpqForeground->spwndActive)
281  break;
282  }
283  }
284  }
286  if (Msg == WM_LBUTTONDOWN || Msg == WM_MBUTTONDOWN ||
287  Msg == WM_RBUTTONDOWN || Msg == WM_XBUTTONDOWN)
288  {
289  if (pwndPopUP)
290  {
291  FLASHWINFO fwi =
292  {sizeof(FLASHWINFO),
293  UserHMGetHandle(pwndPopUP),
294  FLASHW_ALL,
296  (gpsi->dtCaretBlink >> 3)};
297 
298  // Now shake that window!
299  IntFlashWindowEx(pwndPopUP, &fwi);
300  }
302  }
303  break;
304  }
305 
306  case HTCLIENT:
307  {
308  if (pWnd->pcls->spcur)
309  {
310  IntSystemSetCursor(pWnd->pcls->spcur);
311  }
312  return FALSE;
313  }
314 
315  case HTLEFT:
316  case HTRIGHT:
317  {
318  if (pWnd->style & WS_MAXIMIZE)
319  {
320  break;
321  }
322  IntSystemSetCursor(SYSTEMCUR(SIZEWE));
323  return TRUE;
324  }
325 
326  case HTTOP:
327  case HTBOTTOM:
328  {
329  if (pWnd->style & WS_MAXIMIZE)
330  {
331  break;
332  }
333  IntSystemSetCursor(SYSTEMCUR(SIZENS));
334  return TRUE;
335  }
336 
337  case HTTOPLEFT:
338  case HTBOTTOMRIGHT:
339  {
340  if (pWnd->style & WS_MAXIMIZE)
341  {
342  break;
343  }
344  IntSystemSetCursor(SYSTEMCUR(SIZENWSE));
345  return TRUE;
346  }
347 
348  case HTBOTTOMLEFT:
349  case HTTOPRIGHT:
350  {
351  if (pWnd->style & WS_MAXIMIZE)
352  {
353  break;
354  }
355  IntSystemSetCursor(SYSTEMCUR(SIZENESW));
356  return TRUE;
357  }
358  }
360  return FALSE;
361 }
362 
364 {
365  /*
366  * Visibility flag.
367  */
368  if ( (uFlags & PRF_CHECKVISIBLE) &&
369  !IntIsWindowVisible(pwnd) )
370  return;
371 
372  /*
373  * Unimplemented flags.
374  */
375  if ( (uFlags & PRF_CHILDREN) ||
376  (uFlags & PRF_OWNED) ||
377  (uFlags & PRF_NONCLIENT) )
378  {
379  FIXME("WM_PRINT message with unsupported flags\n");
380  }
381 
382  /*
383  * Background
384  */
385  if ( uFlags & PRF_ERASEBKGND)
387 
388  /*
389  * Client area
390  */
391  if ( uFlags & PRF_CLIENT)
393 }
394 
395 BOOL
397 {
398  BOOL Ret = FALSE;
399 
400  if ( (pWnd->style & WS_VISIBLE) && ((pWnd->style & WS_CAPTION) == WS_CAPTION) )
401  {
402  if (pWnd->state & WNDS_HASCAPTION && pWnd->head.pti->MessageQueue == gpqForeground)
403  Flags |= DC_ACTIVE;
404  /*
405  * When themes are not enabled we can go on and paint the non client area.
406  * However if we do that with themes enabled we will draw a classic frame.
407  * This is solved by sending a themes specific message to notify the themes
408  * engine that the caption needs to be redrawn
409  */
411  {
412  /*
413  * This will cause uxtheme to either paint the themed caption or call
414  * RealUserDrawCaption in order to draw the classic caption when themes
415  * are disabled but the themes service is enabled
416  */
417  TRACE("UDCB Flags %08x\n", Flags);
419  }
420  else
421  {
423  UserDrawCaptionBar(pWnd, hDC, Flags | DC_FRAME); // DCFRAME added as fix for CORE-10855.
424  UserReleaseDC(pWnd, hDC, FALSE);
425  }
426  Ret = TRUE;
427  }
428  // Support window tray
429  return Ret;
430 }
431 
432 // WM_SETICON
435 {
436  HICON hIcon, hIconSmall, hIconOld;
437 
438  if ( wParam > ICON_SMALL2 )
439  {
441  return 0;
442  }
443  hIconSmall = UserGetProp(pWnd, gpsi->atomIconSmProp, TRUE);
445 
446  hIconOld = wParam == ICON_BIG ? hIcon : hIconSmall;
447 
448  switch(wParam)
449  {
450  case ICON_BIG:
451  hIcon = (HICON)lParam;
452  break;
453  case ICON_SMALL:
454  hIconSmall = (HICON)lParam;
455  break;
456  case ICON_SMALL2:
457  ERR("FIXME: Set ICON_SMALL2 support!\n");
458  default:
459  break;
460  }
461 
462  UserSetProp(pWnd, gpsi->atomIconProp, hIcon, TRUE);
463  UserSetProp(pWnd, gpsi->atomIconSmProp, hIconSmall, TRUE);
464 
465  if ((pWnd->style & WS_CAPTION ) == WS_CAPTION)
466  UserPaintCaption(pWnd, DC_ICON);
467 
468  return (LRESULT)hIconOld;
469 }
470 
473 {
474  HICON hIconRet;
475  if ( wParam > ICON_SMALL2 )
476  {
478  return 0;
479  }
480  switch(wParam)
481  {
482  case ICON_BIG:
483  hIconRet = UserGetProp(pWnd, gpsi->atomIconProp, TRUE);
484  break;
485  case ICON_SMALL:
486  case ICON_SMALL2:
487  hIconRet = UserGetProp(pWnd, gpsi->atomIconSmProp, TRUE);
488  break;
490  }
491  return (LRESULT)hIconRet;
492 }
493 
496 {
497  RECT rect;
498  HDC hdc;
499  INT w;
500  INT h;
502  HDC hdc2;
503  SETCLIPBDATA scd = {FALSE, FALSE};
504 
507 
508  hdc = UserGetWindowDC(pWnd);
509  IntGetWindowRect(pWnd, &rect);
510  w = rect.right - rect.left;
511  h = rect.bottom - rect.top;
512 
516 
517  NtGdiBitBlt(hdc2, 0, 0, w, h, hdc, 0, 0, SRCCOPY, 0, 0);
518 
520 
521  UserReleaseDC(pWnd, hdc, FALSE);
522  UserReleaseDC(pWnd, hdc2, FALSE);
523 
525 }
526 
527 /*
528  Win32k counterpart of User DefWindowProc
529  */
532  PWND Wnd,
533  UINT Msg,
534  WPARAM wParam,
535  LPARAM lParam,
536  BOOL Ansi)
537 {
539  LRESULT lResult = 0;
541  BOOL IsTaskBar;
542  DWORD Style;
543  DWORD ExStyle;
544 
545  if (Msg > WM_USER) return 0;
546 
547  switch (Msg)
548  {
549  case WM_DEVICECHANGE:
550  return TRUE;
551 
552  case WM_GETTEXTLENGTH:
553  {
554  PWSTR buf;
555  ULONG len;
556 
557  if (Wnd != NULL && Wnd->strName.Length != 0)
558  {
559  buf = Wnd->strName.Buffer;
560  if (buf != NULL &&
562  buf,
563  Wnd->strName.Length)))
564  {
565  lResult = (LRESULT) (Wnd->strName.Length / sizeof(WCHAR));
566  }
567  }
568  else lResult = 0L;
569 
570  break;
571  }
572 
573  case WM_GETTEXT: // FIXME: Handle Ansi
574  {
575  PWSTR buf = NULL;
576  PWSTR outbuf = (PWSTR)lParam;
577 
578  if (Wnd != NULL && wParam != 0)
579  {
580  if (Wnd->strName.Buffer != NULL)
581  buf = Wnd->strName.Buffer;
582  else
583  outbuf[0] = L'\0';
584 
585  if (buf != NULL)
586  {
587  if (Wnd->strName.Length != 0)
588  {
589  lResult = min(Wnd->strName.Length / sizeof(WCHAR), wParam - 1);
590  RtlCopyMemory(outbuf,
591  buf,
592  lResult * sizeof(WCHAR));
593  outbuf[lResult] = L'\0';
594  }
595  else
596  outbuf[0] = L'\0';
597  }
598  }
599  break;
600  }
601 
602  case WM_SETTEXT: // FIXME: Handle Ansi
603  {
604  DefSetText(Wnd, (PCWSTR)lParam);
605 
606  if ((Wnd->style & WS_CAPTION) == WS_CAPTION)
608  IntNotifyWinEvent(EVENT_OBJECT_NAMECHANGE, Wnd, OBJID_WINDOW, CHILDID_SELF, 0);
609  lResult = 1;
610  break;
611  }
612 
613  case WM_SYSCOMMAND:
614  {
615  TRACE("hwnd %p WM_SYSCOMMAND %lx %lx\n", Wnd->head.h, wParam, lParam );
616  lResult = DefWndHandleSysCommand(Wnd, wParam, lParam);
617  break;
618  }
619 
620  case WM_SHOWWINDOW:
621  {
622  if ((Wnd->style & WS_VISIBLE) && wParam) break;
623  if (!(Wnd->style & WS_VISIBLE) && !wParam) break;
624  if (!Wnd->spwndOwner) break;
625  if (LOWORD(lParam))
626  {
628  }
629  break;
630  }
631 
632  case WM_CLIENTSHUTDOWN:
633  return IntClientShutdown(Wnd, wParam, lParam);
634 
635  case WM_APPCOMMAND:
636  if ( (Wnd->style & (WS_POPUP|WS_CHILD)) != WS_CHILD &&
637  Wnd != co_GetDesktopWindow(Wnd) )
638  {
639  if (!co_HOOK_CallHooks(WH_SHELL, HSHELL_APPCOMMAND, wParam, lParam))
640  co_IntShellHookNotify(HSHELL_APPCOMMAND, wParam, lParam);
641  break;
642  }
643  UserRefObjectCo(Wnd->spwndParent, &Ref);
646  break;
647 
648  case WM_KEYF1:
649  {
650  HELPINFO hi;
651  HMENU hMenu = UlongToHandle(Wnd->IDMenu);
652  PWND pwndActive = MENU_IsMenuActive();
653  hi.cbSize = sizeof(HELPINFO);
654  hi.MousePos = gpsi->ptCursor;
656  hi.hItemHandle = pwndActive ? UserHMGetHandle(pwndActive) : UserHMGetHandle(Wnd);
657  hi.iCtrlId = (Wnd->style & (WS_POPUP|WS_CHILD)) == WS_CHILD ? IntMenuItemFromPoint(Wnd, hMenu, hi.MousePos) : 0;
659 
660  co_IntSendMessage( UserHMGetHandle(Wnd), WM_HELP, 0, (LPARAM)&hi );
661  break;
662  }
663 
664  case WM_SETICON:
665  {
666  return DefWndSetIcon(Wnd, wParam, lParam);
667  }
668 
669  case WM_GETICON:
670  {
671  return DefWndGetIcon(Wnd, wParam, lParam);
672  }
673 
674  case WM_HELP:
675  {
676  PWND Parent = IntGetParent(Wnd);
678  break;
679  }
680 
681  case WM_LBUTTONDOWN:
682  case WM_RBUTTONDOWN:
683  case WM_MBUTTONDOWN:
684  pti->MessageQueue->QF_flags &= ~(QF_FMENUSTATUS|QF_FMENUSTATUSBREAK);
685  break;
686 
687  case WM_NCLBUTTONDOWN:
688  return NC_HandleNCLButtonDown(Wnd, wParam, lParam);
689 
690  case WM_NCRBUTTONDOWN:
691  return NC_HandleNCRButtonDown(Wnd, wParam, lParam);
692 
693  case WM_LBUTTONDBLCLK:
695 
696  case WM_NCLBUTTONDBLCLK:
697  return NC_HandleNCLButtonDblClk(Wnd, wParam, lParam);
698 
699  case WM_RBUTTONUP:
700  {
701  POINT Pt;
702 
703  Pt.x = GET_X_LPARAM(lParam);
704  Pt.y = GET_Y_LPARAM(lParam);
705  IntClientToScreen(Wnd, &Pt);
706  lParam = MAKELPARAM(Pt.x, Pt.y);
708  break;
709  }
710 
711  case WM_NCRBUTTONUP:
712  /*
713  * FIXME : we must NOT send WM_CONTEXTMENU on a WM_NCRBUTTONUP (checked
714  * in Windows), but what _should_ we do? According to MSDN :
715  * "If it is appropriate to do so, the system sends the WM_SYSCOMMAND
716  * message to the window". When is it appropriate?
717  */
718  ERR("WM_NCRBUTTONUP\n");
719  break;
720 
721  case WM_XBUTTONUP:
722  case WM_NCXBUTTONUP:
723  if (HIWORD(wParam) == XBUTTON1 || HIWORD(wParam) == XBUTTON2)
724  {
726  MAKELPARAM(LOWORD(wParam), FAPPCOMMAND_MOUSE | HIWORD(wParam)));
727  }
728  break;
729 
730 
731  case WM_CONTEXTMENU:
732  {
733  if (Wnd->style & WS_CHILD)
734  {
736  }
737  else
738  {
739  POINT Pt;
740  LONG_PTR Style;
741  LONG HitCode;
742 
743  Style = Wnd->style;
744 
745  Pt.x = GET_X_LPARAM(lParam);
746  Pt.y = GET_Y_LPARAM(lParam);
747  if (Style & WS_CHILD)
748  {
749  IntScreenToClient(IntGetParent(Wnd), &Pt);
750  }
751 
752  HitCode = GetNCHitEx(Wnd, Pt);
753 
754  if (HitCode == HTCAPTION || HitCode == HTSYSMENU)
755  {
756  PMENU SystemMenu;
757  UINT Flags;
758 
759  if((SystemMenu = IntGetSystemMenu(Wnd, FALSE)))
760  {
761  MENU_InitSysMenuPopup(SystemMenu, Wnd->style, Wnd->pcls->style, HitCode);
762 
763  if(HitCode == HTCAPTION)
765  else
767 
768  IntTrackPopupMenuEx(SystemMenu, Flags|TPM_SYSTEM_MENU, Pt.x, Pt.y, Wnd, NULL);
769  }
770  }
771  if (HitCode == HTHSCROLL || HitCode == HTVSCROLL)
772  {
773  WARN("Scroll Menu Not Supported\n");
774  }
775  }
776  break;
777  }
778 
779  case WM_KEYDOWN:
780  if (wParam == VK_F10)
781  {
782  pti->MessageQueue->QF_flags |= QF_FF10STATUS;
783 
784  if (UserGetKeyState(VK_SHIFT) & 0x8000)
785  {
787  }
788  }
790  {
791  HWND hwndTop = UserGetForegroundWindow();
792  PWND topWnd = UserGetWindowObject(hwndTop);
793 
794  /* Test for typical TaskBar ExStyle Values */
795  ExStyle = (topWnd->ExStyle & WS_EX_TOOLWINDOW);
796  TRACE("ExStyle is '%x'.\n", ExStyle);
797 
798  /* Test for typical TaskBar Style Values */
799  Style = (topWnd->style & (WS_POPUP | WS_VISIBLE |
801  TRACE("Style is '%x'.\n", Style);
802 
803  /* Test for masked typical TaskBar Style and ExStyles to detect TaskBar */
804  IsTaskBar = (Style == (WS_POPUP | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN))
805  && (ExStyle == WS_EX_TOOLWINDOW);
806  TRACE("This %s the TaskBar.\n", IsTaskBar ? "is" : "is not");
807 
808  if (topWnd && !IsTaskBar) /* Second test is so we are not touching the Taskbar */
809  {
810  if ((topWnd->style & WS_THICKFRAME) == 0)
811  {
812  return 0;
813  }
814 
815  if (wParam == VK_DOWN)
816  {
817  if (topWnd->style & WS_MAXIMIZE)
818  {
820 
821  /* "Normal size" must be erased after restoring, otherwise it will block next side snap actions */
822  RECTL_vSetEmptyRect(&topWnd->InternalPos.NormalRect);
823  }
824  else
825  {
827  }
828  }
829  else if (wParam == VK_UP)
830  {
831  RECT currentRect;
832  if ((topWnd->InternalPos.NormalRect.right == topWnd->InternalPos.NormalRect.left) ||
833  (topWnd->InternalPos.NormalRect.top == topWnd->InternalPos.NormalRect.bottom))
834  {
835  currentRect = topWnd->rcWindow;
836  }
837  else
838  {
839  currentRect = topWnd->InternalPos.NormalRect;
840  }
842 
843  // save normal rect if maximazing snapped window
844  topWnd->InternalPos.NormalRect = currentRect;
845  }
846  else if (wParam == VK_LEFT || wParam == VK_RIGHT)
847  {
848  RECT snapRect, normalRect, windowRect;
849  BOOL snapped;
850  normalRect = topWnd->InternalPos.NormalRect;
851  snapped = (normalRect.left != 0 && normalRect.right != 0 &&
852  normalRect.top != 0 && normalRect.bottom != 0);
853 
854  if (topWnd->style & WS_MAXIMIZE)
855  {
857  snapped = FALSE;
858  }
859  windowRect = topWnd->rcWindow;
860 
861  UserSystemParametersInfo(SPI_GETWORKAREA, 0, &snapRect, 0);
862  if (wParam == VK_LEFT)
863  {
864  snapRect.right = (snapRect.left + snapRect.right) / 2;
865  }
866  else // VK_RIGHT
867  {
868  snapRect.left = (snapRect.left + snapRect.right) / 2;
869  }
870 
871  if (snapped)
872  {
873  // if window was snapped but moved to other location - restore normal size
874  if (!IntEqualRect(&snapRect, &windowRect))
875  {
876  RECT empty = {0, 0, 0, 0};
877  co_WinPosSetWindowPos(topWnd,
878  0,
879  normalRect.left,
880  normalRect.top,
881  normalRect.right - normalRect.left,
882  normalRect.bottom - normalRect.top,
883  0);
884  topWnd->InternalPos.NormalRect = empty;
885  }
886  }
887  else
888  {
889  co_WinPosSetWindowPos(topWnd,
890  0,
891  snapRect.left,
892  snapRect.top,
893  snapRect.right - snapRect.left,
894  snapRect.bottom - snapRect.top,
895  0);
896  topWnd->InternalPos.NormalRect = windowRect;
897  }
898  }
899  }
900  }
901  break;
902 
903  case WM_SYSKEYDOWN:
904  {
905  if (HIWORD(lParam) & KF_ALTDOWN)
906  { /* Previous state, if the key was down before this message,
907  this is a cheap way to ignore autorepeat keys. */
908  if ( !(HIWORD(lParam) & KF_REPEAT) )
909  {
910  if ( ( wParam == VK_MENU ||
911  wParam == VK_LMENU ||
912  wParam == VK_RMENU ) && !(pti->MessageQueue->QF_flags & QF_FMENUSTATUS)) //iMenuSysKey )
913  pti->MessageQueue->QF_flags |= QF_FMENUSTATUS; //iMenuSysKey = 1;
914  else
915  pti->MessageQueue->QF_flags &= ~QF_FMENUSTATUS; //iMenuSysKey = 0;
916  }
917 
918  pti->MessageQueue->QF_flags &= ~QF_FF10STATUS; //iF10Key = 0;
919 
920  if (wParam == VK_F4) /* Try to close the window */
921  {
923  if (!(top->style & CS_NOCLOSE))
925  }
926  else if (wParam == VK_SNAPSHOT) // Alt-VK_SNAPSHOT?
927  {
928  PWND pwnd = Wnd;
929  while (IntGetParent(pwnd) != NULL)
930  {
931  pwnd = IntGetParent(pwnd);
932  }
933  ERR("DefWndScreenshot\n");
934  DefWndScreenshot(pwnd);
935  }
936  else if ( wParam == VK_ESCAPE || wParam == VK_TAB ) // Alt-Tab/ESC Alt-Shift-Tab/ESC
937  {
938  WPARAM wParamTmp;
939  HWND Active = UserGetActiveWindow(); // Noticed MDI problem.
940  if (!Active)
941  {
942  FIXME("WM_SYSKEYDOWN VK_ESCAPE no active\n");
943  break;
944  }
945  wParamTmp = UserGetKeyState(VK_SHIFT) & 0x8000 ? SC_PREVWINDOW : SC_NEXTWINDOW;
947  }
948  }
949  else if( wParam == VK_F10 )
950  {
951  if (UserGetKeyState(VK_SHIFT) & 0x8000)
953  pti->MessageQueue->QF_flags |= QF_FF10STATUS; //iF10Key = 1;
954  }
955  else if( wParam == VK_ESCAPE && (UserGetKeyState(VK_SHIFT) & 0x8000))
957  break;
958  }
959 
960  case WM_KEYUP:
961  case WM_SYSKEYUP:
962  {
963  /* Press and release F10 or ALT */
964  if (((wParam == VK_MENU || wParam == VK_LMENU || wParam == VK_RMENU)
965  && (pti->MessageQueue->QF_flags & (QF_FMENUSTATUS|QF_FMENUSTATUSBREAK)) == QF_FMENUSTATUS /*iMenuSysKey*/) ||
966  ((wParam == VK_F10) && pti->MessageQueue->QF_flags & QF_FF10STATUS /*iF10Key*/))
968  pti->MessageQueue->QF_flags &= ~(QF_FMENUSTATUS|QF_FMENUSTATUSBREAK|QF_FF10STATUS); //iMenuSysKey = iF10Key = 0;
969  break;
970  }
971 
972  case WM_SYSCHAR:
973  {
974  pti->MessageQueue->QF_flags &= ~(QF_FMENUSTATUS|QF_FMENUSTATUSBREAK); //iMenuSysKey = 0;
975  if (wParam == VK_RETURN && (Wnd->style & WS_MINIMIZE) != 0)
976  {
978  break;
979  }
980  if ((HIWORD(lParam) & KF_ALTDOWN) && wParam)
981  {
982  if (wParam == VK_TAB || wParam == VK_ESCAPE) break;
983  if (wParam == VK_SPACE && Wnd->style & WS_CHILD)
985  else
987  }
988  else /* check for Ctrl-Esc */
989  if (wParam != VK_ESCAPE) UserPostMessage(hwndSAS, WM_LOGONNOTIFY, LN_MESSAGE_BEEP, 0); //MessageBeep(0);
990  break;
991  }
992 
993  case WM_CANCELMODE:
994  {
995  pti->MessageQueue->QF_flags &= ~(QF_FMENUSTATUS|QF_FMENUSTATUSBREAK);
996 
997  MENU_EndMenu( Wnd );
998  if (IntGetCaptureWindow() == UserHMGetHandle(Wnd))
999  {
1001  }
1002  break;
1003  }
1004 
1005  case WM_CLOSE:
1006  co_UserDestroyWindow(Wnd);
1007  break;
1008 
1009  case WM_CTLCOLORMSGBOX:
1010  case WM_CTLCOLOREDIT:
1011  case WM_CTLCOLORLISTBOX:
1012  case WM_CTLCOLORBTN:
1013  case WM_CTLCOLORDLG:
1014  case WM_CTLCOLORSTATIC:
1015  case WM_CTLCOLORSCROLLBAR:
1017 
1018  case WM_CTLCOLOR:
1020 
1021  case WM_SETCURSOR:
1022  {
1023  if (Wnd->style & WS_CHILD)
1024  {
1025  /* with the exception of the border around a resizable wnd,
1026  * give the parent first chance to set the cursor */
1028  {
1029  PWND parent = Wnd->spwndParent;//IntGetParent( Wnd );
1030  if (parent != UserGetDesktopWindow() &&
1032  return TRUE;
1033  }
1034  }
1035  return DefWndHandleSetCursor(Wnd, wParam, lParam);
1036  }
1037 
1038  case WM_MOUSEACTIVATE:
1039  if (Wnd->style & WS_CHILD)
1040  {
1041  LONG Ret;
1042  HWND hwndParent;
1043  PWND pwndParent = IntGetParent(Wnd);
1044  hwndParent = pwndParent ? UserHMGetHandle(pwndParent) : NULL;
1046  if (Ret) return (Ret);
1047  }
1049 
1050  case WM_ACTIVATE:
1051  /* The default action in Windows is to set the keyboard focus to
1052  * the window, if it's being activated and not minimized */
1053  if (LOWORD(wParam) != WA_INACTIVE &&
1054  !(Wnd->style & WS_MINIMIZE))
1055  {
1056  //ERR("WM_ACTIVATE %p\n",hWnd);
1057  co_UserSetFocus(Wnd);
1058  }
1059  break;
1060 
1061  case WM_MOUSEWHEEL:
1062  if (Wnd->style & WS_CHILD)
1063  {
1064  HWND hwndParent;
1065  PWND pwndParent = IntGetParent(Wnd);
1066  hwndParent = pwndParent ? UserHMGetHandle(pwndParent) : NULL;
1068  }
1069  break;
1070 
1071  case WM_ERASEBKGND:
1072  case WM_ICONERASEBKGND:
1073  {
1074  RECT Rect;
1075  HBRUSH hBrush = Wnd->pcls->hbrBackground;
1076  if (!hBrush) return 0;
1077  if (hBrush <= (HBRUSH)COLOR_MENUBAR)
1078  {
1079  hBrush = IntGetSysColorBrush(HandleToUlong(hBrush));
1080  }
1081  if (Wnd->pcls->style & CS_PARENTDC)
1082  {
1083  /* can't use GetClipBox with a parent DC or we fill the whole parent */
1084  IntGetClientRect(Wnd, &Rect);
1085  GreDPtoLP((HDC)wParam, (LPPOINT)&Rect, 2);
1086  }
1087  else
1088  {
1089  GdiGetClipBox((HDC)wParam, &Rect);
1090  }
1091  FillRect((HDC)wParam, &Rect, hBrush);
1092  return (1);
1093  }
1094 
1095  case WM_GETHOTKEY:
1096  //ERR("WM_GETHOTKEY\n");
1097  return DefWndGetHotKey(Wnd);
1098  case WM_SETHOTKEY:
1099  //ERR("WM_SETHOTKEY\n");
1100  return DefWndSetHotKey(Wnd, wParam);
1101 
1102  case WM_NCHITTEST:
1103  {
1104  POINT Point;
1107  return GetNCHitEx(Wnd, Point);
1108  }
1109 
1110  case WM_PRINT:
1111  {
1112  DefWndPrint(Wnd, (HDC)wParam, lParam);
1113  return (0);
1114  }
1115 
1116  case WM_SYSCOLORCHANGE:
1117  {
1118  /* force to redraw non-client area */
1119  UserPaintCaption(Wnd, DC_NC);
1120  /* Use InvalidateRect to redraw client area, enable
1121  * erase to redraw all subcontrols otherwise send the
1122  * WM_SYSCOLORCHANGE to child windows/controls is required
1123  */
1125  return (0);
1126  }
1127 
1128  case WM_PAINTICON:
1129  case WM_PAINT:
1130  {
1131  PAINTSTRUCT Ps;
1132  HDC hDC;
1133 
1134  /* If already in Paint and Client area is not empty just return. */
1135  if (Wnd->state2 & WNDS2_STARTPAINT && !RECTL_bIsEmptyRect(&Wnd->rcClient))
1136  {
1137  ERR("In Paint and Client area is not empty!\n");
1138  return 0;
1139  }
1140 
1141  hDC = IntBeginPaint(Wnd, &Ps);
1142  if (hDC)
1143  {
1144  if (((Wnd->style & WS_MINIMIZE) != 0) && (Wnd->pcls->spicn))
1145  {
1146  RECT ClientRect;
1147  INT x, y;
1148 
1149  ERR("Doing Paint and Client area is empty!\n");
1150  IntGetClientRect(Wnd, &ClientRect);
1151  x = (ClientRect.right - ClientRect.left - UserGetSystemMetrics(SM_CXICON)) / 2;
1152  y = (ClientRect.bottom - ClientRect.top - UserGetSystemMetrics(SM_CYICON)) / 2;
1154  UserDrawIconEx(hDC, x, y, Wnd->pcls->spicn, 0, 0, 0, 0, DI_NORMAL | DI_COMPAT | DI_DEFAULTSIZE);
1156  }
1157 
1158  IntEndPaint(Wnd, &Ps);
1159  }
1160  return (0);
1161  }
1162 
1163  case WM_SYNCPAINT:
1164  {
1165  HRGN hRgn;
1166  Wnd->state &= ~WNDS_SYNCPAINTPENDING;
1167  TRACE("WM_SYNCPAINT\n");
1168  hRgn = NtGdiCreateRectRgn(0, 0, 0, 0);
1169  if (hRgn)
1170  {
1171  if (co_UserGetUpdateRgn(Wnd, hRgn, FALSE) != NULLREGION)
1172  {
1173  PREGION pRgn = REGION_LockRgn(hRgn);
1174  if (pRgn) REGION_UnlockRgn(pRgn);
1175  if (!wParam)
1177  co_UserRedrawWindow(Wnd, NULL, pRgn, wParam);
1178  }
1180  }
1181  return 0;
1182  }
1183 
1184  case WM_SETREDRAW:
1185  if (wParam)
1186  {
1187  if (!(Wnd->style & WS_VISIBLE))
1188  {
1189  IntSetStyle( Wnd, WS_VISIBLE, 0 );
1190  Wnd->state |= WNDS_SENDNCPAINT;
1191  }
1192  }
1193  else
1194  {
1195  if (Wnd->style & WS_VISIBLE)
1196  {
1198  IntSetStyle( Wnd, 0, WS_VISIBLE );
1199  }
1200  }
1201  return 0;
1202 
1203  case WM_WINDOWPOSCHANGING:
1204  {
1206  }
1207 
1208  case WM_WINDOWPOSCHANGED:
1209  {
1211  }
1212 
1213  case WM_NCCALCSIZE:
1214  {
1215  return NC_HandleNCCalcSize( Wnd, wParam, (RECTL *)lParam, FALSE );
1216  }
1217 
1218  case WM_NCACTIVATE:
1219  {
1220  return NC_HandleNCActivate( Wnd, wParam, lParam );
1221  }
1222 
1223  //
1224  // NC Paint mode.
1225  //
1226  case WM_NCPAINT:
1227  {
1229  Wnd->state |= WNDS_FORCEMENUDRAW;
1230  NC_DoNCPaint(Wnd, hDC, -1);
1231  Wnd->state &= ~WNDS_FORCEMENUDRAW;
1232  UserReleaseDC(Wnd, hDC, FALSE);
1233  return 0;
1234  }
1235  //
1236  // Draw Caption mode.
1237  //
1238  // wParam are DC_* flags.
1239  //
1240  case WM_NCUAHDRAWCAPTION:
1241  {
1243  TRACE("WM_NCUAHDRAWCAPTION: wParam DC_ flags %08x\n",wParam);
1244  UserDrawCaptionBar(Wnd, hDC, wParam | DC_FRAME); // Include DC_FRAME to comp for drawing glitch.
1245  UserReleaseDC(Wnd, hDC, FALSE);
1246  return 0;
1247  }
1248  //
1249  // Draw Frame mode.
1250  //
1251  // wParam is HDC, lParam are DC_ACTIVE and or DC_REDRAWHUNGWND.
1252  //
1253  case WM_NCUAHDRAWFRAME:
1254  {
1255  TRACE("WM_NCUAHDRAWFRAME: wParam hDC %p lParam DC_ flags %08x\n",wParam,lParam);
1257  return 0;
1258  }
1259 
1260  /* ReactOS only. */
1261  case WM_CBT:
1262  {
1263  switch (wParam)
1264  {
1265  case HCBT_MOVESIZE:
1266  {
1267  RECTL rt;
1268 
1269  if (lParam)
1270  {
1271  _SEH2_TRY
1272  {
1274  sizeof(RECT),
1275  1);
1276 
1277  RtlCopyMemory(&rt,
1278  (PVOID)lParam,
1279  sizeof(RECT));
1280  }
1282  {
1283  lResult = 1;
1284  }
1285  _SEH2_END;
1286  }
1287  if (!lResult)
1288  lResult = co_HOOK_CallHooks(WH_CBT, HCBT_MOVESIZE, (WPARAM)Wnd->head.h, lParam ? (LPARAM)&rt : 0);
1289  }
1290  break;
1291  }
1292  break;
1293  }
1294  break;
1295  }
1296  return lResult;
1297 }
1298 
1299 /* EOF */
BYTE gafAsyncKeyState[256 *2/8]
Definition: keyboard.c:13
#define WM_NCLBUTTONDOWN
Definition: winuser.h:1682
#define WS_CLIPSIBLINGS
Definition: pedump.c:618
#define WM_SYNCPAINT
Definition: winuser.h:1680
LRESULT FASTCALL IntDefWindowProc(PWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam, BOOL Ansi)
Definition: defwnd.c:531
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
PUSER_MESSAGE_QUEUE gpqForeground
Definition: focus.c:13
#define DEFAULT_UNREACHABLE
#define WM_GETTEXTLENGTH
Definition: winuser.h:1609
#define GA_ROOT
Definition: winuser.h:2779
BOOL FASTCALL IntFlashWindowEx(PWND pWnd, PFLASHWINFO pfwi)
Definition: painting.c:1304
#define HTTOP
Definition: winuser.h:2480
__kernel_entry W32KAPI HRGN APIENTRY NtGdiCreateRectRgn(_In_ INT xLeft, _In_ INT yTop, _In_ INT xRight, _In_ INT yBottom)
#define WS_THICKFRAME
Definition: pedump.c:630
#define WM_SETHOTKEY
Definition: winuser.h:1642
#define HTLEFT
Definition: winuser.h:2477
#define HCBT_SYSCOMMAND
Definition: winuser.h:63
const uint16_t * PCWSTR
Definition: typedefs.h:57
#define WM_PAINTICON
Definition: winuser.h:1631
BOOL FASTCALL UserPostMessage(HWND Wnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: message.c:1346
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1616
void FASTCALL MENU_InitSysMenuPopup(PMENU menu, DWORD style, DWORD clsStyle, LONG HitTest)
Definition: menu.c:1362
#define max(a, b)
Definition: svc.c:63
#define COLOR_3DHILIGHT
Definition: winuser.h:931
DWORD ExStyle
Definition: ntuser.h:683
PCURICON_OBJECT IntSystemSetCursor(PCURICON_OBJECT pcurNew)
Definition: cursoricon.c:230
#define HOOKID_TO_FLAG(HookId)
Definition: hook.h:5
static HICON
Definition: imagelist.c:84
#define HTHSCROLL
Definition: winuser.h:2471
BOOL UserDrawIconEx(HDC hDc, INT xLeft, INT yTop, PCURICON_OBJECT pIcon, INT cxWidth, INT cyHeight, UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags)
Definition: cursoricon.c:1688
#define DT_TABSTOP
Definition: winuser.h:541
BOOL NTAPI GreDeleteObject(HGDIOBJ hobj)
Definition: gdiobj.c:1158
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
#define SC_KEYMENU
Definition: winuser.h:2586
struct _DESKTOP * rpdesk
Definition: ntuser.h:186
#define SC_RESTORE
Definition: winuser.h:2588
#define SW_SHOWNOACTIVATE
Definition: winuser.h:768
long y
Definition: polytest.cpp:48
BOOL FASTCALL IntClientToScreen(PWND Wnd, LPPOINT lpPoint)
Definition: winpos.c:198
#define WM_CONTEXTMENU
Definition: richedit.h:64
#define WM_LBUTTONDOWN
Definition: winuser.h:1766
FORCEINLINE VOID RECTL_vSetEmptyRect(_Out_ RECTL *prcl)
Definition: rect.h:20
HWND FASTCALL co_UserSetFocus(PWND Window)
Definition: focus.c:1309
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
HGDIOBJ FASTCALL IntGetSysColorBrush(INT Object)
Definition: stockobj.c:317
__kernel_entry W32KAPI HBITMAP APIENTRY NtGdiCreateCompatibleBitmap(_In_ HDC hdc, _In_ INT cx, _In_ INT cy)
long x
Definition: polytest.cpp:48
#define TPM_SYSTEM_MENU
Definition: undocuser.h:72
BOOL FASTCALL IntReleaseCapture(VOID)
Definition: focus.c:1525
#define SIZE_MAXIMIZED
Definition: winuser.h:2497
#define TRUE
Definition: types.h:120
#define WM_CTLCOLORDLG
Definition: winuser.h:1760
#define WM_GETHOTKEY
Definition: winuser.h:1643
#define SW_HIDE
Definition: winuser.h:762
HWND FASTCALL UserGetActiveWindow(VOID)
Definition: focus.c:1424
#define VK_RMENU
Definition: winuser.h:2277
uint16_t * PWSTR
Definition: typedefs.h:56
#define WM_CLIENTSHUTDOWN
Definition: undocuser.h:35
#define WM_MOUSEWHEEL
Definition: treelist.c:96
#define WM_NCCALCSIZE
Definition: winuser.h:1675
GLuint GLuint GLsizei count
Definition: gl.h:1545
#define WM_CTLCOLORSTATIC
Definition: winuser.h:1762
#define WNDS_SENDNCPAINT
Definition: ntuser.h:599
#define WM_GETTEXT
Definition: winuser.h:1608
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
Definition: event.c:179
DWORD dwForegroundFlashCount
Definition: sysparams.h:157
LRESULT FASTCALL DefWndHandleSysCommand(PWND pWnd, WPARAM wParam, LPARAM lParam)
Definition: defwnd.c:124
#define WARN(fmt,...)
Definition: debug.h:112
#define MAKELPARAM(l, h)
Definition: winuser.h:3998
DWORD_PTR dwContextId
Definition: winuser.h:3306
PVOID NTAPI PsGetCurrentThreadWin32Thread(VOID)
Definition: thread.c:805
#define SIZE_RESTORED
Definition: winuser.h:2495
BOOLEAN FASTCALL co_WinPosSetWindowPos(PWND Window, HWND WndInsertAfter, INT x, INT y, INT cx, INT cy, UINT flags)
Definition: winpos.c:1721
struct @1591 Msg[]
#define HandleToUlong(h)
Definition: basetsd.h:79
HANDLE hItemHandle
Definition: winuser.h:3305
static HDC
Definition: imagelist.c:92
#define WM_SETREDRAW
Definition: winuser.h:1606
PSERVERINFO gpsi
Definition: imm.c:17
ush Pos
Definition: deflate.h:92
#define SC_SCREENSAVE
Definition: mmsystem.h:933
#define OBJID_WINDOW
Definition: winable.h:15
COLORREF FASTCALL IntGdiSetBkColor(_In_ HDC hDC, _In_ COLORREF Color)
#define NULLREGION
Definition: wingdi.h:361
__kernel_entry W32KAPI HBITMAP APIENTRY NtGdiSelectBitmap(_In_ HDC hdc, _In_ HBITMAP hbm)
#define WH_SHELL
Definition: winuser.h:40
LONG top
Definition: windef.h:307
static __inline VOID UserRefObjectCo(PVOID obj, PUSER_REFERENCE_ENTRY UserReferenceEntry)
Definition: object.h:27
#define DI_COMPAT
Definition: wingdi.h:68
struct _WND::@4900 InternalPos
#define CTLCOLOR_SCROLLBAR
Definition: winuser.h:950
#define GET_X_LPARAM(lp)
Definition: windowsx.h:274
static HRGN hRgn
Definition: mapping.c:33
#define CS_NOCLOSE
Definition: winuser.h:649
#define DCX_USESTYLE
Definition: GetDCEx.c:10
#define MA_ACTIVATE
Definition: winuser.h:2491
#define VK_LEFT
Definition: winuser.h:2214
#define WM_SHOWWINDOW
Definition: winuser.h:1618
BOOL FASTCALL IntShowOwnedPopups(PWND OwnerWnd, BOOL fShow)
Definition: window.c:4652
#define WM_MOVE
Definition: winuser.h:1600
HDC FASTCALL UserGetWindowDC(PWND Wnd)
Definition: windc.c:947
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
#define WM_NCRBUTTONDOWN
Definition: winuser.h:1685
#define SC_HOTKEY
Definition: winuser.h:2591
HDC FASTCALL UserGetDCEx(PWND Window OPTIONAL, HANDLE ClipRegion, ULONG Flags)
#define WM_CTLCOLOR
Definition: windowsx.h:4
BOOL WINAPI IntTrackPopupMenuEx(PMENU menu, UINT wFlags, int x, int y, PWND pWnd, LPTPMPARAMS lpTpm)
Definition: menu.c:4559
#define HTBOTTOMLEFT
Definition: winuser.h:2484
#define SC_MOUSEMENU
Definition: winuser.h:2585
BOOL FASTCALL UserDereferenceObject(PVOID Object)
Definition: object.c:644
struct _CURICON_OBJECT * spcur
Definition: ntuser.h:569
#define WM_NCHITTEST
Definition: winuser.h:1676
UINT_PTR WPARAM
Definition: windef.h:207
#define VK_LWIN
Definition: winuser.h:2225
#define VK_TAB
Definition: winuser.h:2189
#define VK_DOWN
Definition: winuser.h:2217
#define HTRIGHT
Definition: winuser.h:2479
#define WS_CHILD
Definition: pedump.c:617
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
Definition: acpixf.h:728
RECT rcClient
Definition: ntuser.h:696
#define VK_MENU
Definition: winuser.h:2194
#define RDW_FRAME
Definition: winuser.h:1202
LONG left
Definition: windef.h:306
VOID FASTCALL IntGetClientRect(PWND WindowObject, RECTL *Rect)
Definition: winpos.c:91
UINT uFlags
Definition: api.c:59
HWND FASTCALL IntGetCaptureWindow(VOID)
Definition: focus.c:34
#define WNDS2_STARTPAINT
Definition: ntuser.h:626
BOOL NTAPI UserOpenClipboard(HWND hWnd)
Definition: clipboard.c:488
#define VK_ESCAPE
Definition: winuser.h:2204
#define WS_CLIPCHILDREN
Definition: pedump.c:619
#define SW_RESTORE
Definition: winuser.h:773
LONG right
Definition: windef.h:308
#define WM_CTLCOLORLISTBOX
Definition: winuser.h:1758
PREGION FASTCALL REGION_LockRgn(_In_ HRGN hrgn)
Definition: region.c:2377
#define FASTCALL
Definition: nt_native.h:50
#define WS_EX_TOOLWINDOW
Definition: winuser.h:404
#define COLOR_WINDOW
Definition: winuser.h:912
LRESULT FASTCALL DefWndHandleWindowPosChanging(PWND pWnd, WINDOWPOS *Pos)
Definition: defwnd.c:69
LRESULT FASTCALL DefWndGetIcon(PWND pWnd, WPARAM wParam, LPARAM lParam)
Definition: defwnd.c:472
int32_t INT
Definition: typedefs.h:58
#define VK_RETURN
Definition: winuser.h:2191
struct _CURICON_OBJECT * spicn
Definition: ntuser.h:568
& rect
Definition: startmenu.cpp:1413
WPARAM wParam
Definition: combotst.c:138
#define DCX_INTERSECTRGN
Definition: winuser.h:2112
#define WM_PRINTCLIENT
Definition: richedit.h:70
#define HTTOPLEFT
Definition: winuser.h:2481
#define DCX_WINDOW
Definition: winuser.h:2103
LRESULT DefWndHandleSetCursor(PWND pWnd, WPARAM wParam, LPARAM lParam)
Definition: defwnd.c:242
#define QF_FF10STATUS
Definition: msgqueue.h:98
GLfloat GLfloat GLfloat GLfloat h
Definition: glext.h:7723
DWORD FASTCALL UserGetKeyState(DWORD dwKey)
Definition: msgqueue.c:221
#define QF_FMENUSTATUS
Definition: msgqueue.h:97
_SEH2_TRY
Definition: create.c:4226
#define DC_ICON
Definition: winuser.h:429
#define ICON_SMALL
Definition: tnclass.cpp:48
#define VK_F10
Definition: winuser.h:2254
HDC hdc2
Definition: SelectObject.c:10
#define WM_NCPAINT
Definition: winuser.h:1677
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
Definition: typeof.h:94
#define TPM_RIGHTBUTTON
Definition: winuser.h:2370
#define L(x)
Definition: ntvdm.h:50
#define COLOR_3DFACE
Definition: winuser.h:923
#define WM_CTLCOLORBTN
Definition: winuser.h:1759
#define HTSYSMENU
Definition: winuser.h:2467
UINT style
Definition: ntuser.h:563
#define VK_UP
Definition: winuser.h:2215
PWND FASTCALL co_IntFindChildWindowToOwner(PWND Root, PWND Owner)
Definition: defwnd.c:215
#define DC_NC
Definition: winuser.h:440
#define FALSE
Definition: types.h:117
DWORD dwSRVIFlags
Definition: ntuser.h:1022
#define WM_NCACTIVATE
Definition: winuser.h:1678
BOOL NTAPI UserCloseClipboard(VOID)
Definition: clipboard.c:545
#define WS_MINIMIZE
Definition: pedump.c:622
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
Definition: wdffdo.h:533
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
BOOLEAN co_UserDestroyWindow(PVOID Object)
Definition: window.c:2841
static __inline VOID UserDerefObjectCo(PVOID obj)
Definition: object.h:40
#define WM_NCRBUTTONUP
Definition: winuser.h:1686
#define WM_SETCURSOR
Definition: winuser.h:1626
#define COLOR_SCROLLBAR
Definition: winuser.h:906
BOOL FASTCALL GreDPtoLP(HDC, LPPOINT, INT)
Definition: dcutil.c:7
#define FIXME(fmt,...)
Definition: debug.h:111
#define WM_CTLCOLORSCROLLBAR
Definition: winuser.h:1761
#define WM_SYSCHAR
Definition: winuser.h:1711
#define SM_CXICON
Definition: winuser.h:966
#define VK_F4
Definition: winuser.h:2248
#define CHILDID_SELF
Definition: winable.h:14
#define SC_MAXIMIZE
Definition: winuser.h:2578
struct _WND * spwndOwner
Definition: ntuser.h:694
LRESULT NC_DoNCPaint(PWND pWnd, HDC hDC, INT Flags)
Definition: nonclient.c:1042
#define VK_SHIFT
Definition: winuser.h:2192
THRDESKHEAD head
Definition: ntuser.h:674
const WCHAR * str
#define CF_BITMAP
Definition: constants.h:397
#define LN_START_SCREENSAVE
Definition: undocuser.h:120
Definition: object.h:3
#define MAKELONG(a, b)
Definition: typedefs.h:249
#define DCX_KEEPCLIPRGN
Definition: undocuser.h:67
#define WM_ICONERASEBKGND
Definition: winuser.h:1632
HBRUSH FASTCALL DefWndControlColor(HDC hDC, UINT ctlType)
Definition: defwnd.c:33
static HWND hwndParent
Definition: cryptui.c:300
LRESULT FASTCALL DefWndHandleWindowPosChanged(PWND pWnd, WINDOWPOS *Pos)
Definition: defwnd.c:95
__kernel_entry W32KAPI BOOL APIENTRY NtGdiBitBlt(_In_ HDC hdcDst, _In_ INT x, _In_ INT y, _In_ INT cx, _In_ INT cy, _In_opt_ HDC hdcSrc, _In_ INT xSrc, _In_ INT ySrc, _In_ DWORD rop4, _In_ DWORD crBackColor, _In_ FLONG fl)
#define WM_KEYDOWN
Definition: winuser.h:1705
#define WM_CTLCOLORMSGBOX
Definition: winuser.h:1756
LONG_PTR LPARAM
Definition: windef.h:208
INT FASTCALL co_UserGetUpdateRgn(PWND Window, HRGN hRgn, BOOL bErase)
Definition: painting.c:1785
PWND FASTCALL co_GetDesktopWindow(PWND pWnd)
Definition: desktop.c:1366
COLORREF FASTCALL IntGdiSetTextColor(HDC hDC, COLORREF color)
Definition: dcutil.c:172
#define WH_CBT
Definition: winuser.h:35
#define DI_DEFAULTSIZE
Definition: wingdi.h:69
POINT MousePos
Definition: winuser.h:3307
Definition: region.h:7
#define WM_MOUSEACTIVATE
Definition: winuser.h:1627
#define HTERROR
Definition: winuser.h:2462
#define WM_SETTEXT
Definition: winuser.h:1607
LARGE_UNICODE_STRING strName
Definition: ntuser.h:715
VOID FASTCALL DefWndScreenshot(PWND pWnd)
Definition: defwnd.c:495
PWND FASTCALL UserGetWindowObject(HWND hWnd)
Definition: window.c:126
HWND FASTCALL UserGetForegroundWindow(VOID)
Definition: focus.c:1416
#define WM_RBUTTONDOWN
Definition: winuser.h:1769
int iContextType
Definition: winuser.h:3303
#define DC_ACTIVE
Definition: winuser.h:427
void MENU_EndMenu(PWND pwnd)
Definition: menu.c:2662
DWORD FASTCALL IntGetWindowContextHelpId(PWND pWnd)
Definition: window.c:433
LONG NTAPI UserGetSystemMetrics(ULONG Index)
Definition: metric.c:194
UINT FASTCALL co_WinPosGetMinMaxInfo(PWND Window, POINT *MaxSize, POINT *MaxPos, POINT *MinTrack, POINT *MaxTrack)
Definition: winpos.c:932
#define WM_APPCOMMAND
Definition: winuser.h:1872
BOOLEAN FASTCALL co_WinPosShowWindow(PWND Wnd, INT Cmd)
Definition: winpos.c:2491
HWND hwndSAS
Definition: winsta.c:24
#define UserHMGetHandle(obj)
Definition: ntuser.h:222
#define KF_REPEAT
Definition: winuser.h:2440
#define WS_CAPTION
Definition: pedump.c:624
struct tagHELPINFO HELPINFO
root entry for file system trees
Definition: entries.h:148
BOOL FASTCALL DefSetText(HWND hWnd, PCWSTR String, BOOL Ansi)
Definition: defwnd.c:65
UINT_PTR IDMenu
Definition: ntuser.h:710
VOID FASTCALL DefWndPrint(PWND pwnd, HDC hdc, ULONG uFlags)
Definition: defwnd.c:363
#define TRACE(s)
Definition: solgame.cpp:4
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
DBG_DEFAULT_CHANNEL(UserDefwnd)
#define HTTOPRIGHT
Definition: winuser.h:2482
const DWORD Style
Definition: appswitch.c:71
r parent
Definition: btrfs.c:2979
HBRUSH hbrBackground
Definition: ntuser.h:570
#define PRF_ERASEBKGND
Definition: winuser.h:2516
PMENU FASTCALL IntGetSystemMenu(PWND Window, BOOL bRevert)
Definition: menu.c:5381
__kernel_entry W32KAPI BOOL APIENTRY NtGdiUnrealizeObject(_In_ HANDLE h)
__wchar_t WCHAR
Definition: xmlstorage.h:180
PWND MENU_IsMenuActive(VOID)
Definition: menu.c:2650
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
#define WM_SIZE
Definition: winuser.h:1601
#define PRF_NONCLIENT
Definition: winuser.h:2514
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:85
#define SWP_NOACTIVATE
Definition: winuser.h:1232
DWORD COLORREF
Definition: windef.h:300
#define COLOR_WINDOWTEXT
Definition: winuser.h:915
#define RDW_ERASE
Definition: winuser.h:1201
#define UlongToHandle(ul)
Definition: basetsd.h:97
#define SWP_STATECHANGED
Definition: msg.c:42
#define WM_NCUAHDRAWCAPTION
Definition: undocuser.h:45
#define DC_FRAME
Definition: undocuser.h:148
#define ValidateHwndNoErr(hwnd)
Definition: precomp.h:84
#define WM_WINDOWPOSCHANGING
Definition: winuser.h:1651
INT WINAPI DrawTextExWorker(HDC hdc, LPWSTR str, INT i_count, LPRECT rect, UINT flags, LPDRAWTEXTPARAMS dtp)
Definition: text.c:1071
#define WM_CLOSE
Definition: winuser.h:1611
#define ISITHOOKED(HookId)
Definition: hook.h:6
HANDLE FASTCALL UserGetProp(_In_ PWND Window, _In_ ATOM Atom, _In_ BOOLEAN SystemProp)
Definition: prop.c:46
#define WINAPI
Definition: msvc.h:6
#define WM_KEYUP
Definition: winuser.h:1706
#define CTLCOLOR_EDIT
Definition: winuser.h:946
unsigned short WORD
Definition: ntddk_ex.h:93
SPIVALUES gspv
Definition: sysparams.c:17
#define HTBOTTOM
Definition: winuser.h:2483
unsigned long DWORD
Definition: ntddk_ex.h:95
DWORD FASTCALL IntGetSysColor(INT nIndex)
Definition: stockobj.c:323
HDC FASTCALL IntBeginPaint(PWND Window, PPAINTSTRUCT Ps)
Definition: painting.c:1435
#define HELPINFO_MENUITEM
Definition: winuser.h:1161
#define SIZE_MINIMIZED
Definition: winuser.h:2496
#define PRF_CHECKVISIBLE
Definition: winuser.h:2513
#define WM_RBUTTONUP
Definition: winuser.h:1770
#define SW_MINIMIZE
Definition: winuser.h:770
#define WM_PRINT
Definition: winuser.h:1870
GLbitfield flags
Definition: glext.h:7161
#define SC_PREVWINDOW
Definition: winuser.h:2581
#define WM_PAINT
Definition: winuser.h:1610
UINT FASTCALL DefWndGetHotKey(PWND pWnd)
Definition: hotkey.c:313
LRESULT APIENTRY co_HOOK_CallHooks(INT HookId, INT Code, WPARAM wParam, LPARAM lParam)
Definition: hook.c:1103
PWND FASTCALL UserGetDesktopWindow(VOID)
Definition: desktop.c:1386
#define RDW_VALIDATE
Definition: winuser.h:1208
LRESULT NC_HandleNCCalcSize(PWND Wnd, WPARAM wparam, RECTL *Rect, BOOL Suspended)
Definition: nonclient.c:1248
struct Point Point
#define SM_CYICON
Definition: winuser.h:967
BOOL FASTCALL IntIsWindowVisible(PWND Wnd)
Definition: window.c:193
#define WNDS_SYNCPAINTPENDING
Definition: ntuser.h:611
VOID NTAPI ProbeForRead(IN CONST VOID *Address, IN SIZE_T Length, IN ULONG Alignment)
Definition: exintrin.c:102
LRESULT FASTCALL co_IntSendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: message.c:1446
HDC hdc
Definition: main.c:9
#define VK_LMENU
Definition: winuser.h:2276
#define CTLCOLOR_LISTBOX
Definition: winuser.h:947
#define WM_CANCELMODE
Definition: winuser.h:1625
#define DI_NORMAL
Definition: wingdi.h:72
GLenum GLsizei len
Definition: glext.h:6722
#define WM_LBUTTONDBLCLK
Definition: winuser.h:1768
#define SRVINFO_APIHOOK
Definition: ntuser.h:929
#define LRESULT
Definition: ole.h:14
BOOL FASTCALL IntScreenToClient(PWND Wnd, LPPOINT lpPoint)
Definition: winpos.c:212
RECT rcWindow
Definition: ntuser.h:695
ATOM atomIconProp
Definition: ntuser.h:1037
UINT cbSize
Definition: winuser.h:3302
#define WM_LOGONNOTIFY
Definition: undocuser.h:37
#define MA_NOACTIVATE
Definition: winuser.h:2493
#define HTBOTTOMRIGHT
Definition: winuser.h:2485
#define VK_RWIN
Definition: winuser.h:2226
#define WM_USER
Definition: winuser.h:1885
__kernel_entry W32KAPI HDC APIENTRY NtGdiCreateCompatibleDC(_In_opt_ HDC hdc)
PWND FASTCALL UserGetAncestor(PWND Wnd, UINT Type)
Definition: window.c:3327
#define VK_RIGHT
Definition: winuser.h:2216
#define SC_MINIMIZE
Definition: winuser.h:2576
BOOL NTAPI UserEmptyClipboard(VOID)
Definition: clipboard.c:680
#define SWP_NOSIZE
Definition: winuser.h:1235
#define ERR(fmt,...)
Definition: debug.h:110
#define HTCAPTION
Definition: winuser.h:2466
Definition: ntuser.h:672
struct _USER_MESSAGE_QUEUE * MessageQueue
Definition: win32.h:85
LRESULT NC_HandleNCLButtonDblClk(PWND pWnd, WPARAM wParam, LPARAM lParam)
Definition: nonclient.c:1610
static HDC hDC
Definition: 3dtext.c:33
VOID UserDrawCaptionBar(PWND pWnd, HDC hDC, INT Flags)
Definition: nonclient.c:900
_SEH2_END
Definition: create.c:4400
INT FASTCALL DefWndSetHotKey(PWND pWnd, WPARAM wParam)
Definition: hotkey.c:340
VOID MENU_TrackKbdMenuBar(PWND pwnd, UINT wParam, WCHAR wChar)
Definition: menu.c:4498
#define WM_ACTIVATE
Definition: winuser.h:1602
struct _WND * spwndLastActive
Definition: ntuser.h:718
BOOL FASTCALL co_UserRedrawWindow(PWND Window, const RECTL *UpdateRect, PREGION UpdateRgn, ULONG Flags)
Definition: painting.c:888
HICON hIcon
Definition: msconfig.c:44
VOID FASTCALL DefWndDoSizeMove(PWND pwnd, WORD wParam)
Definition: nonclient.c:239
#define RDW_ALLCHILDREN
Definition: winuser.h:1211
_Use_decl_annotations_ NTSTATUS NTAPI RtlUnicodeToMultiByteSize(_Out_ PULONG MbSize, _In_ PCWCH UnicodeString, _In_ ULONG UnicodeSize)
Definition: nlsboot.c:145
#define WM_SYSKEYUP
Definition: winuser.h:1710
LRESULT FASTCALL DefWndSetIcon(PWND pWnd, WPARAM wParam, LPARAM lParam)
Definition: defwnd.c:434
#define WM_CTLCOLOREDIT
Definition: winuser.h:1757
FORCEINLINE BOOL IntEqualRect(RECTL *lprc1, RECTL *lprc2)
Definition: winpos.h:48
#define SC_SIZE
Definition: winuser.h:2574
#define WM_MBUTTONDOWN
Definition: winuser.h:1772
PWND FASTCALL IntGetParent(PWND Wnd)
Definition: window.c:208
DWORD state
Definition: ntuser.h:680
int iCtrlId
Definition: winuser.h:3304
INT FASTCALL IntMapWindowPoints(PWND FromWnd, PWND ToWnd, LPPOINT lpPoints, UINT cPoints)
Definition: winpos.c:143
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define PRF_OWNED
Definition: winuser.h:2518
LRESULT NC_HandleNCRButtonDown(PWND pwnd, WPARAM wParam, LPARAM lParam)
Definition: nonclient.c:1668
#define min(a, b)
Definition: monoChain.cc:55
#define WS_POPUP
Definition: pedump.c:616
_Out_writes_bytes_to_opt_ AbsoluteSecurityDescriptorSize PSECURITY_DESCRIPTOR _Inout_ PULONG _Out_writes_bytes_to_opt_ DaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ SaclSize PACL _Inout_ PULONG _Out_writes_bytes_to_opt_ OwnerSize PSID Owner
Definition: rtlfuncs.h:1583
BOOL FASTCALL IntEndPaint(PWND Wnd, PPAINTSTRUCT Ps)
Definition: painting.c:1532
unsigned int UINT
Definition: ndis.h:50
#define NULL
Definition: types.h:112
ATOM atomIconSmProp
Definition: ntuser.h:1036
BOOL UserPaintCaption(PWND pWnd, INT Flags)
Definition: defwnd.c:396
#define VK_SPACE
Definition: winuser.h:2209
BOOL empty
Definition: button.c:170
INT FASTCALL UserReleaseDC(PWND Window, HDC hDc, BOOL EndPaint)
Definition: windc.c:918
VOID co_IntShellHookNotify(WPARAM Message, WPARAM wParam, LPARAM lParam)
Definition: desktop.c:1692
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
#define KF_ALTDOWN
Definition: winuser.h:2439
#define WM_DEVICECHANGE
Definition: winuser.h:1801
#define GET_Y_LPARAM(lp)
Definition: windowsx.h:275
#define HTVSCROLL
Definition: winuser.h:2472
#define WM_WINDOWPOSCHANGED
Definition: winuser.h:1652
INT FASTCALL IntMenuItemFromPoint(PWND pWnd, HMENU hMenu, POINT ptScreen)
Definition: menu.c:1518
VOID FASTCALL REGION_UnlockRgn(_In_ PREGION prgn)
Definition: region.c:2392
#define SC_MOVE
Definition: winuser.h:2575
#define RDW_ERASENOW
Definition: winuser.h:1209
#define SC_CLOSE
Definition: winuser.h:2582
#define WM_NCUAHDRAWFRAME
Definition: undocuser.h:46
#define HCBT_MOVESIZE
Definition: winuser.h:55
#define WM_SYSKEYDOWN
Definition: winuser.h:1709
#define TPM_LEFTBUTTON
Definition: winuser.h:2369
struct _WND * spwndParent
Definition: ntuser.h:692
ULONG FASTCALL IntSetStyle(PWND pwnd, ULONG set_bits, ULONG clear_bits)
Definition: window.c:147
#define HIWORD(l)
Definition: typedefs.h:247
FORCEINLINE BOOL RECTL_bIsEmptyRect(_In_ const RECTL *prcl)
Definition: rect.h:44
unsigned int ULONG
Definition: retypes.h:1
#define SWP_NOCLIENTMOVE
Definition: msg.h:30
#define SYSTEMCUR(func)
Definition: cursoricon.h:129
DWORD state2
Definition: ntuser.h:681
LONG bottom
Definition: windef.h:309
#define IS_KEY_DOWN(ks, vk)
Definition: input.h:99
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
#define SWP_NOMOVE
Definition: winuser.h:1234
VOID MENU_TrackMouseMenuBar(PWND pWnd, ULONG ht, POINT pt)
Definition: menu.c:4468
#define WNDS_FORCEMENUDRAW
Definition: ntuser.h:603
_In_ ULONG _In_ BOOLEAN Active
Definition: potypes.h:560
static HBITMAP hbitmap
#define WA_INACTIVE
Definition: winuser.h:2612
BOOL FASTCALL UserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
Definition: sysparams.c:2090
static HBITMAP
Definition: button.c:44
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:40
#define SC_NEXTWINDOW
Definition: winuser.h:2580
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
#define WM_ERASEBKGND
Definition: winuser.h:1615
LRESULT NC_HandleNCLButtonDown(PWND pWnd, WPARAM wParam, LPARAM lParam)
Definition: nonclient.c:1519
#define LN_MESSAGE_BEEP
Definition: undocuser.h:119
#define HTCLIENT
Definition: winuser.h:2465
#define PRF_CLIENT
Definition: winuser.h:2515
WCHAR * LPWSTR
Definition: xmlstorage.h:184
DWORD FASTCALL GetNCHitEx(PWND pWnd, POINT pt)
Definition: nonclient.c:1927
LONG_PTR LRESULT
Definition: windef.h:209
BOOL FASTCALL co_IntSetForegroundWindow(PWND Window)
Definition: focus.c:1545
LRESULT NC_HandleNCActivate(PWND Wnd, WPARAM wParam, LPARAM lParam)
Definition: nonclient.c:1382
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
Arabic default style
Definition: afstyles.h:93
#define PRF_CHILDREN
Definition: winuser.h:2517
#define WS_VISIBLE
Definition: pedump.c:620
#define SWP_NOCLIENTSIZE
Definition: msg.h:29
#define memset(x, y, z)
Definition: compat.h:39
#define SW_MAXIMIZE
Definition: winuser.h:766
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:60
#define WM_SYSCOMMAND
Definition: winuser.h:1731
#define QF_FMENUSTATUSBREAK
Definition: msgqueue.h:96
LPARAM lParam
Definition: combotst.c:139
#define VK_SNAPSHOT
Definition: winuser.h:2221
#define LOWORD(l)
Definition: pedump.c:82
#define DC_TEXT
Definition: winuser.h:430
#define SRCCOPY
Definition: wingdi.h:333
HANDLE NTAPI UserSetClipboardData(UINT fmt, HANDLE hData, PSETCLIPBDATA scd)
Definition: clipboard.c:1023
ENGAPI VOID APIENTRY EngSetLastError(_In_ ULONG iError)
Definition: error.c:28
#define CS_PARENTDC
Definition: winuser.h:651
#define WM_KEYF1
Definition: msg.c:47
#define WNDS_HASCAPTION
Definition: ntuser.h:591
#define WM_CBT
Definition: undocuser.h:62
LRESULT IntClientShutdown(IN PWND pWindow, IN WPARAM wParam, IN LPARAM lParam)
Definition: shutdown.c:22
struct Rect Rect
#define RDW_INVALIDATE
Definition: winuser.h:1204
#define ICON_BIG
Definition: tnclass.cpp:51
const DWORD ExStyle
Definition: appswitch.c:72
#define WM_NCLBUTTONDBLCLK
Definition: winuser.h:1684
INT WINAPI DrawTextW(HDC hdc, LPCWSTR str, INT count, LPRECT rect, UINT flags)
Definition: defwnd.c:17
VOID FASTCALL UserReferenceObject(PVOID obj)
Definition: object.c:731
PCLS pcls
Definition: ntuser.h:699
#define WS_MAXIMIZE
Definition: pedump.c:623
DWORD style
Definition: ntuser.h:685
BOOL FASTCALL IntGetWindowRect(PWND Wnd, RECTL *Rect)
Definition: winpos.c:120