ReactOS 0.4.16-dev-1369-gd4d04c8
defwnd.c
Go to the documentation of this file.
1/*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS user32.dll
4 * PURPOSE: Window management
5 * PROGRAMMER: 2001 Casper S. Hornstrup <chorns@users.sourceforge.net>
6 */
7
8#include <user32.h>
9#include <immdev.h>
10
12
13/*
14 * @implemented
15 */
19GetSysColor(int nIndex)
20{
21 if(nIndex >= 0 && nIndex < NUM_SYSCOLORS)
22 {
23 return gpsi->argbSystem[nIndex];
24 }
25
27 return 0;
28}
29
30/*
31 * @implemented
32 */
33HBRUSH
37{
38 if(nIndex >= 0 && nIndex < NUM_SYSCOLORS)
39 {
40 return gpsi->ahbrSystem[nIndex];
41 }
42
43 return NULL;
44}
45
46/*
47 * @implemented
48 */
49BOOL
52 int cElements,
53 CONST INT *lpaElements,
54 CONST COLORREF *lpaRgbValues)
55{
56 return NtUserSetSysColors(cElements, lpaElements, lpaRgbValues, 0);
57}
58
59BOOL
62{
63 BOOL Ret;
64 LARGE_STRING lsString;
65
66 if ( String )
67 {
68 if ( Ansi )
70 else
72 }
73 Ret = NtUserDefSetText(hWnd, (String ? &lsString : NULL));
74
75 return Ret;
76}
77
80{
81 HWND Ret;
82 PWND Child, OwnerWnd, Root, Owner;
83
85 Owner = ValidateHwnd(hOwner);
86
87 for( Child = Root->spwndChild ? DesktopPtrToUser(Root->spwndChild) : NULL;
88 Child;
89 Child = Child->spwndNext ? DesktopPtrToUser(Child->spwndNext) : NULL )
90 {
91 OwnerWnd = Child->spwndOwner ? DesktopPtrToUser(Child->spwndOwner) : NULL;
92 if(!OwnerWnd)
93 continue;
94
95 if (!(Child->style & WS_POPUP) || !(Child->style & WS_VISIBLE))
96 continue;
97
98 if(OwnerWnd == Owner)
99 {
100 Ret = Child->head.h;
101 return Ret;
102 }
103 }
104 ERR("IDCWTO Nothing found\n");
105 return NULL;
106}
107
108/***********************************************************************
109 * DefWndTrackScrollBar
110 *
111 * Track a mouse button press on the horizontal or vertical scroll-bar.
112 */
113static VOID
115{
116 INT ScrollBar;
117
118 if (SC_HSCROLL == (wParam & 0xfff0))
119 {
120 if (HTHSCROLL != (wParam & 0x0f))
121 {
122 return;
123 }
124 ScrollBar = SB_HORZ;
125 }
126 else /* SC_VSCROLL */
127 {
128 if (HTVSCROLL != (wParam & 0x0f))
129 {
130 return;
131 }
132 ScrollBar = SB_VERT;
133 }
134 ScrollTrackScrollBar(Wnd, ScrollBar, Pt );
135}
136
138
141{
142 POINT Pt;
143 LRESULT lResult;
144
145 if (!IsWindowEnabled( hWnd )) return 0;
146
147 switch (wParam & 0xfff0)
148 {
149 case SC_MOVE:
150 case SC_SIZE:
151// case SC_DEFAULT:
152 case SC_MOUSEMENU:
153 case SC_KEYMENU:
154 case SC_SCREENSAVE:
155 case SC_MINIMIZE:
156 case SC_MAXIMIZE:
157 case SC_RESTORE:
158 case SC_CLOSE:
159 case SC_HOTKEY:
161 return 0;
162
163 default:
164 break;
165 }
166
167 if (ISITHOOKED(WH_CBT))
168 {
170 if (lResult) return 0;
171 }
172
173 switch (wParam & 0xfff0)
174 {
175 case SC_VSCROLL:
176 case SC_HSCROLL:
177 {
178 Pt.x = (short)LOWORD(lParam);
179 Pt.y = (short)HIWORD(lParam);
181 }
182 break;
183
184 case SC_TASKLIST:
185 WinExec( "taskman.exe", SW_SHOWNORMAL );
186 break;
187
188
189 case SC_NEXTWINDOW:
190 case SC_PREVWINDOW:
192 break;
193
194 default:
195 FIXME("Unimplemented DefWndHandleSysCommand wParam 0x%x\n",wParam);
196 break;
197 }
198
199 return(0);
200}
201
202/***********************************************************************
203 * DefWndControlColor
204 *
205 * Default colors for control painting.
206 */
207HBRUSH
209{
210 if (ctlType == CTLCOLOR_SCROLLBAR)
211 {
215 SetBkColor(hDC, bk);
216
217 /* if COLOR_WINDOW happens to be the same as COLOR_3DHILIGHT
218 * we better use 0x55aa bitmap brush to make scrollbar's background
219 * look different from the window background.
220 */
221 if ( bk == GetSysColor(COLOR_WINDOW))
222 return gpsi->hbrGray;
223
224 UnrealizeObject( hb );
225 return hb;
226 }
227
229
230 if ((ctlType == CTLCOLOR_EDIT) || (ctlType == CTLCOLOR_LISTBOX))
231 {
233 }
234 else
235 {
238 }
239
241}
242
243static BOOL CALLBACK
245{
246 SendMessageW(hwnd, WM_UPDATEUISTATE, (WPARAM)lParam, 0);
247 return TRUE;
248}
249
250/* WARNING: Redundant with /ntuser/defwnd.c!UserPaintCaption !!
251 Use TWOPARAM_ROUTINE_REDRAWTITLE/REDRAWFRAME or HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK .
252 */
253static void
255{
256 if ( pwnd->style & WS_VISIBLE && (pwnd->style & WS_CAPTION) == WS_CAPTION )
257 {
259 Flags |= DC_ACTIVE;
260 /*
261 * When themes are not enabled we can go on and paint the non client area.
262 * However if we do that with themes enabled we will draw a classic frame.
263 * This is solved by sending a themes specific message to notify the themes
264 * engine that the caption needs to be redrawn
265 */
267 {
268 /*
269 * This will cause uxtheme to either paint the themed caption or call
270 * RealUserDrawCaption in order to draw the classic caption when themes
271 * are disabled but the themes service is enabled
272 */
274 }
275 else
276 {
277 RECT rc = {0,0,0,0};
281 }
282 }
283 //NtUserCallTwoParam((DWORD_PTR)UserHMGetHandle(pwnd),Flags,TWOPARAM_ROUTINE_REDRAWTITLE)
284}
285
288{
289 HICON hIconRet;
290 if ( wParam > ICON_SMALL2 )
291 {
293 return 0;
294 }
295 switch(wParam)
296 {
297 case ICON_BIG:
298 hIconRet = UserGetProp(UserHMGetHandle(pWnd), gpsi->atomIconProp, TRUE);
299 break;
300 case ICON_SMALL:
301 case ICON_SMALL2:
303 break;
304 default:
305 break;
306 }
307 return (LRESULT)hIconRet;
308}
309
310
313 UINT Msg,
316 BOOL bUnicode)
317{
318 PWND pWnd = NULL;
319 if (hWnd)
320 {
321 pWnd = ValidateHwnd(hWnd);
322 if (!pWnd) return 0;
323 }
324
325 switch (Msg)
326 {
327 case WM_DEVICECHANGE:
328 return TRUE;
329
330 case WM_RBUTTONUP:
331 {
332 POINT Pt;
333 Pt.x = GET_X_LPARAM(lParam);
334 Pt.y = GET_Y_LPARAM(lParam);
335 ClientToScreen(hWnd, &Pt);
336 lParam = MAKELPARAM(Pt.x, Pt.y);
337 if (bUnicode)
338 {
340 }
341 else
342 {
344 }
345 break;
346 }
347
348 case WM_NCRBUTTONUP:
349 /*
350 * FIXME : we must NOT send WM_CONTEXTMENU on a WM_NCRBUTTONUP (checked
351 * in Windows), but what _should_ we do? According to MSDN :
352 * "If it is appropriate to do so, the system sends the WM_SYSCOMMAND
353 * message to the window". When is it appropriate?
354 */
355 ERR("WM_NCRBUTTONUP\n");
356 break;
357
358 case WM_XBUTTONUP:
359 case WM_NCXBUTTONUP:
360 if (HIWORD(wParam) == XBUTTON1 || HIWORD(wParam) == XBUTTON2)
361 {
363 MAKELPARAM(LOWORD(wParam), FAPPCOMMAND_MOUSE | HIWORD(wParam)));
364 }
365 break;
366
367 case WM_CONTEXTMENU:
368 {
370 {
371 if (bUnicode)
372 {
374 }
375 else
376 {
378 }
379 }
380 else
381 {
382 goto GoSS;
383 }
384 break;
385 }
386
387 case WM_CLOSE:
389 return (0);
390
391 case WM_MOUSEACTIVATE:
393 {
395 if (Ret) return (Ret);
396 }
398
399 case WM_ACTIVATE:
400 /* The default action in Windows is to set the keyboard focus to
401 * the window, if it's being activated and not minimized */
402 if (LOWORD(wParam) != WA_INACTIVE &&
404 {
405 //ERR("WM_ACTIVATE %p\n",hWnd);
406 SetFocus(hWnd);
407 }
408 break;
409
410 case WM_MOUSEWHEEL:
413 break;
414
415 case WM_ERASEBKGND:
417 {
418 RECT Rect;
419 HBRUSH hBrush = (HBRUSH)GetClassLongPtrW(hWnd, GCL_HBRBACKGROUND);
420
421 if (NULL == hBrush)
422 {
423 return 0;
424 }
426 {
427 /* can't use GetClipBox with a parent DC or we fill the whole parent */
429 DPtoLP((HDC)wParam, (LPPOINT)&Rect, 2);
430 }
431 else
432 {
434 }
435 FillRect((HDC)wParam, &Rect, hBrush);
436 return (1);
437 }
438
440 case WM_CTLCOLOREDIT:
442 case WM_CTLCOLORBTN:
443 case WM_CTLCOLORDLG:
447
448 case WM_CTLCOLOR:
450
451 case WM_SYSCOMMAND:
453
454 case WM_VKEYTOITEM:
455 case WM_CHARTOITEM:
456 return (-1);
457/*
458 case WM_DROPOBJECT:
459 return DRAG_FILE;
460*/
462 {
464 {
465 return(1);
466 }
467 break;
468 }
469
470 case WM_QUERYDRAGICON:
471 {
472 UINT Len;
473 HICON hIcon;
474
476 if (hIcon)
477 {
478 return ((LRESULT)hIcon);
479 }
480 for (Len = 1; Len < 64; Len++)
481 {
483 {
484 return((LRESULT)hIcon);
485 }
486 }
487 return ((LRESULT)LoadIconW(0, IDI_APPLICATION));
488 }
489
490 case WM_ISACTIVEICON:
491 {
492 BOOL isai;
493 isai = (pWnd->state & WNDS_ACTIVEFRAME) != 0;
494 return isai;
495 }
496
497 case WM_NOTIFYFORMAT:
498 {
499 if (lParam == NF_QUERY)
501 break;
502 }
503
504 case WM_GETICON:
505 {
506 return DefWndGetIcon(pWnd, wParam, lParam);
507 }
508
509 case WM_HELP:
510 {
511 if (bUnicode)
512 {
514 }
515 else
516 {
518 }
519 break;
520 }
521
522 case WM_QUERYOPEN:
524 {
525 return (1);
526 }
527
528 case WM_INPUTLANGCHANGEREQUEST:
529 {
530 HKL hNewKL;
531 HWND hwndFocus;
532
533 if ((wParam & INPUTLANGCHANGE_BACKWARD) && (wParam & INPUTLANGCHANGE_FORWARD))
534 return FALSE;
535
536 hwndFocus = GetFocus();
537 if (hwndFocus && hwndFocus != hWnd &&
539 {
540 return SendMessageW(hwndFocus, Msg, wParam, lParam);
541 }
542
543 if (wParam & INPUTLANGCHANGE_FORWARD)
544 hNewKL = (HKL)UlongToHandle(HKL_NEXT);
545 else if (wParam & INPUTLANGCHANGE_BACKWARD)
546 hNewKL = (HKL)UlongToHandle(HKL_PREV);
547 else
548 hNewKL = (HKL)lParam;
549
551 return TRUE;
552 }
553
554 case WM_INPUTLANGCHANGE:
555 {
556 int count = 0;
557 HWND *win_array = WIN_ListChildren( hWnd );
558
559 if (!win_array)
560 break;
561 while (win_array[count])
562 SendMessageW( win_array[count++], WM_INPUTLANGCHANGE, wParam, lParam);
563 HeapFree(GetProcessHeap(),0,win_array);
564 break;
565 }
566
567 case WM_QUERYUISTATE:
568 {
569 LRESULT Ret = 0;
570 PWND Wnd = ValidateHwnd(hWnd);
571 if (Wnd != NULL)
572 {
573 if (Wnd->HideFocus)
574 Ret |= UISF_HIDEFOCUS;
575 if (Wnd->HideAccel)
576 Ret |= UISF_HIDEACCEL;
577 }
578 return Ret;
579 }
580
581 case WM_CHANGEUISTATE:
582 {
583 BOOL AlwaysShowCues = FALSE;
586 PWND Wnd;
587
588 SystemParametersInfoW(SPI_GETKEYBOARDCUES, 0, &AlwaysShowCues, 0);
589 if (AlwaysShowCues)
590 break;
591
592 Wnd= ValidateHwnd(hWnd);
593 if (!Wnd || lParam != 0)
594 break;
595
596 if (Flags & ~(UISF_HIDEFOCUS | UISF_HIDEACCEL | UISF_ACTIVE))
597 break;
598
599 if (Flags & UISF_ACTIVE)
600 {
601 WARN("WM_CHANGEUISTATE does not yet support UISF_ACTIVE\n");
602 }
603
604 if (Action == UIS_INITIALIZE)
605 {
607 if (Desk == NULL)
608 break;
609
610 Action = Desk->LastInputWasKbd ? UIS_CLEAR : UIS_SET;
611 Flags = UISF_HIDEFOCUS | UISF_HIDEACCEL;
612
613 /* We need to update wParam in case we need to send out messages */
615 }
616
617 switch (Action)
618 {
619 case UIS_SET:
620 /* See if we actually need to change something */
621 if ((Flags & UISF_HIDEFOCUS) && !Wnd->HideFocus)
622 break;
623 if ((Flags & UISF_HIDEACCEL) && !Wnd->HideAccel)
624 break;
625
626 /* Don't need to do anything... */
627 return 0;
628
629 case UIS_CLEAR:
630 /* See if we actually need to change something */
631 if ((Flags & UISF_HIDEFOCUS) && Wnd->HideFocus)
632 break;
633 if ((Flags & UISF_HIDEACCEL) && Wnd->HideAccel)
634 break;
635
636 /* Don't need to do anything... */
637 return 0;
638
639 default:
640 WARN("WM_CHANGEUISTATE: Unsupported Action 0x%x\n", Action);
641 break;
642 }
643
644 if ((Wnd->style & WS_CHILD) && Wnd->spwndParent != NULL)
645 {
646 /* We're a child window and we need to pass this message down until
647 we reach the root */
649 }
650 else
651 {
652 /* We're a top level window, we need to change the UI state */
653 Msg = WM_UPDATEUISTATE;
654 }
655
656 if (bUnicode)
657 return SendMessageW(hWnd, Msg, wParam, lParam);
658 else
659 return SendMessageA(hWnd, Msg, wParam, lParam);
660 }
661
662 case WM_UPDATEUISTATE:
663 {
664 BOOL Change = TRUE;
665 BOOL AlwaysShowCues = FALSE;
668 PWND Wnd;
669
670 SystemParametersInfoW(SPI_GETKEYBOARDCUES, 0, &AlwaysShowCues, 0);
671 if (AlwaysShowCues)
672 break;
673
674 Wnd = ValidateHwnd(hWnd);
675 if (!Wnd || lParam != 0)
676 break;
677
678 if (Flags & ~(UISF_HIDEFOCUS | UISF_HIDEACCEL | UISF_ACTIVE))
679 break;
680
681 if (Flags & UISF_ACTIVE)
682 {
683 WARN("WM_UPDATEUISTATE does not yet support UISF_ACTIVE\n");
684 }
685
686 if (Action == UIS_INITIALIZE)
687 {
689 if (Desk == NULL)
690 break;
691
692 Action = Desk->LastInputWasKbd ? UIS_CLEAR : UIS_SET;
693 Flags = UISF_HIDEFOCUS | UISF_HIDEACCEL;
694
695 /* We need to update wParam for broadcasting the update */
697 }
698
699 switch (Action)
700 {
701 case UIS_SET:
702 /* See if we actually need to change something */
703 if ((Flags & UISF_HIDEFOCUS) && !Wnd->HideFocus)
704 break;
705 if ((Flags & UISF_HIDEACCEL) && !Wnd->HideAccel)
706 break;
707
708 /* Don't need to do anything... */
709 Change = FALSE;
710 break;
711
712 case UIS_CLEAR:
713 /* See if we actually need to change something */
714 if ((Flags & UISF_HIDEFOCUS) && Wnd->HideFocus)
715 break;
716 if ((Flags & UISF_HIDEACCEL) && Wnd->HideAccel)
717 break;
718
719 /* Don't need to do anything... */
720 Change = FALSE;
721 break;
722
723 default:
724 WARN("WM_UPDATEUISTATE: Unsupported Action 0x%x\n", Action);
725 return 0;
726 }
727
728 /* Pack the information and call win32k */
729 if (Change)
730 {
731 if (!NtUserxUpdateUiState(hWnd, Flags | ((DWORD)Action << 3)))
732 break;
733 }
734
735 /* Always broadcast the update to all children */
738 (LPARAM)wParam);
739
740 break;
741 }
742
744 {
745 TRACE("WM_COPYGLOBALDATA hGlobal %p Size %d Flags 0x%x\n",lParam,wParam,GlobalFlags((HGLOBAL)lParam));
746 return lParam;
747 }
748
749/* Move to Win32k !*/
750 case WM_SHOWWINDOW:
751 if (!lParam) break; // Call when it is necessary.
752 case WM_LBUTTONDOWN:
753 case WM_RBUTTONDOWN:
754 case WM_MBUTTONDOWN:
755 case WM_NCLBUTTONDOWN:
756 case WM_NCRBUTTONDOWN:
757 case WM_LBUTTONDBLCLK:
759 case WM_KEYF1:
760 case WM_KEYUP:
761 case WM_SYSKEYUP:
762 case WM_KEYDOWN:
763 case WM_SYSKEYDOWN:
764 case WM_SYSCHAR:
765 case WM_CANCELMODE:
766 case WM_PAINTICON:
767 case WM_PAINT:
768 case WM_PRINT:
769 case WM_SETICON:
773 case WM_NCPAINT:
774 case WM_NCACTIVATE:
775 case WM_NCCALCSIZE:
776 case WM_NCHITTEST:
777 case WM_SYNCPAINT:
778 case WM_SETREDRAW:
780 case WM_GETHOTKEY:
781 case WM_SETHOTKEY:
784 case WM_APPCOMMAND:
785 case WM_SETCURSOR:
787GoSS:
788 {
789 LRESULT lResult;
791 return lResult;
792 }
793 }
794 return 0;
795}
796
797
800 UINT Msg,
803{
804 LRESULT Result = 0;
805 PWND Wnd;
806
807 Wnd = ValidateHwnd(hWnd);
808
809 if ( !Wnd &&
811 Msg != WM_CTLCOLORBTN &&
812 Msg != WM_CTLCOLORDLG &&
814 return 0;
815
817 switch (Msg)
818 {
819 case WM_NCCREATE:
820 {
821 if ( Wnd &&
822 Wnd->style & (WS_HSCROLL | WS_VSCROLL) )
823 {
824 if (!Wnd->pSBInfo)
825 {
826 SCROLLINFO si = {sizeof si, SIF_ALL, 0, 100, 0, 0, 0};
829 }
830 }
831
832 if (lParam)
833 {
835 /* check for string, as static icons, bitmaps (SS_ICON, SS_BITMAP)
836 * may have child window IDs instead of window name */
837 if (HIWORD(cs->lpszName))
838 {
839 DefSetText(hWnd, (PCWSTR)cs->lpszName, TRUE);
840 }
841 Result = 1;
842 }
843 break;
844 }
845
846 case WM_GETTEXTLENGTH:
847 {
848 PWSTR buf;
849 ULONG len;
850
851 if (Wnd != NULL && Wnd->strName.Length != 0)
852 {
854 if (buf != NULL &&
856 buf,
857 Wnd->strName.Length)))
858 {
859 Result = (LRESULT) len;
860 }
861 }
862 else Result = 0L;
863
864 break;
865 }
866
867 case WM_GETTEXT:
868 {
869 PWSTR buf = NULL;
870 PSTR outbuf = (PSTR)lParam;
871 SIZE_T copy;
872
873 if (Wnd != NULL && wParam != 0)
874 {
875 if (Wnd->strName.Buffer != NULL)
877 else
878 outbuf[0] = L'\0';
879
880 if (buf != NULL)
881 {
882 if (Wnd->strName.Length != 0)
883 {
884 copy = min(Wnd->strName.Length / sizeof(WCHAR), wParam - 1);
886 0,
887 buf,
888 copy,
889 outbuf,
890 wParam,
891 NULL,
892 NULL);
893 outbuf[Result] = '\0';
894 }
895 else
896 outbuf[0] = '\0';
897 }
898 }
899 break;
900 }
901
902 case WM_SETTEXT:
903 {
905
907 {
909 IntNotifyWinEvent(EVENT_OBJECT_NAMECHANGE, hWnd, OBJID_WINDOW, CHILDID_SELF, 0);
910 }
911 Result = 1;
912 break;
913 }
914
915 case WM_IME_KEYDOWN:
916 {
918 break;
919 }
920
921 case WM_IME_KEYUP:
922 {
924 break;
925 }
926
927 case WM_IME_CHAR:
928 {
929 if (HIBYTE(wParam))
932 break;
933 }
934
935 case WM_IME_COMPOSITION:
936 if (lParam & GCS_RESULTSTR)
937 {
938 LONG size, i;
939 unsigned char lead = 0;
940 char *buf = NULL;
941 HIMC himc = IMM_FN(ImmGetContext)( hWnd );
942
943 if (himc)
944 {
946 {
947 if (!(buf = HeapAlloc( GetProcessHeap(), 0, size ))) size = 0;
949 }
950 IMM_FN(ImmReleaseContext)( hWnd, himc );
951
952 for (i = 0; i < size; i++)
953 {
954 unsigned char c = buf[i];
955 if (!lead)
956 {
957 if (IsDBCSLeadByte( c ))
958 lead = c;
959 else
961 }
962 else
963 {
964 SendMessageA( hWnd, WM_IME_CHAR, MAKEWORD(c, lead), 1 );
965 lead = 0;
966 }
967 }
968 HeapFree( GetProcessHeap(), 0, buf );
969 }
970 }
971 /* fall through */
972 case WM_IME_STARTCOMPOSITION:
973 case WM_IME_ENDCOMPOSITION:
974 case WM_IME_SELECT:
975 case WM_IME_NOTIFY:
976 case WM_IME_CONTROL:
978NormalImeMsgHandling:
979 {
980 HWND hwndIME;
981
982 if (GetWin32ClientInfo()->dwTIFlags & TIF_DISABLEIME)
983 {
984 TRACE("This thread's IME is disabled\n");
985 break;
986 }
987
988 hwndIME = IMM_FN(ImmGetDefaultIMEWnd)(hWnd);
989 if (!hwndIME)
990 {
991 ERR("hwndIME was NULL\n");
992 break;
993 }
994
995 if (hwndIME == hWnd)
996 {
998 break;
999 }
1000
1001 Result = SendMessageA(hwndIME, Msg, wParam, lParam);
1002 break;
1003 }
1004
1005 case WM_IME_SYSTEM:
1006 {
1007 if (wParam == 4)
1008 break;
1009
1010 goto NormalImeMsgHandling;
1011 }
1012
1013 default:
1015 }
1016
1018 return Result;
1019}
1020
1021
1024 UINT Msg,
1025 WPARAM wParam,
1026 LPARAM lParam)
1027{
1028 LRESULT Result = 0;
1029 PWND Wnd;
1030
1031 Wnd = ValidateHwnd(hWnd);
1032
1033 if ( !Wnd &&
1035 Msg != WM_CTLCOLORBTN &&
1036 Msg != WM_CTLCOLORDLG &&
1038 return 0;
1039
1041 switch (Msg)
1042 {
1043 case WM_NCCREATE:
1044 {
1045 if ( Wnd &&
1046 Wnd->style & (WS_HSCROLL | WS_VSCROLL) )
1047 {
1048 if (!Wnd->pSBInfo)
1049 {
1050 SCROLLINFO si = {sizeof si, SIF_ALL, 0, 100, 0, 0, 0};
1051 if (Wnd->style & WS_HSCROLL)
1053 if (Wnd->style & WS_VSCROLL)
1055 }
1056 }
1057
1058 if (lParam)
1059 {
1061 /* check for string, as static icons, bitmaps (SS_ICON, SS_BITMAP)
1062 * may have child window IDs instead of window name */
1063 if (HIWORD(cs->lpszName))
1064 {
1065 DefSetText(hWnd, cs->lpszName, FALSE);
1066 }
1067 Result = 1;
1068 }
1069 break;
1070 }
1071
1072 case WM_GETTEXTLENGTH:
1073 {
1074 PWSTR buf;
1075 ULONG len;
1076
1077 if (Wnd != NULL && Wnd->strName.Length != 0)
1078 {
1080 if (buf != NULL &&
1082 buf,
1083 Wnd->strName.Length)))
1084 {
1085 Result = (LRESULT) (Wnd->strName.Length / sizeof(WCHAR));
1086 }
1087 }
1088 else Result = 0L;
1089
1090 break;
1091 }
1092
1093 case WM_GETTEXT:
1094 {
1095 PWSTR buf = NULL;
1096 PWSTR outbuf = (PWSTR)lParam;
1097
1098 if (Wnd != NULL && wParam != 0)
1099 {
1100 if (Wnd->strName.Buffer != NULL)
1102 else
1103 outbuf[0] = L'\0';
1104
1105 if (buf != NULL)
1106 {
1107 if (Wnd->strName.Length != 0)
1108 {
1109 Result = min(Wnd->strName.Length / sizeof(WCHAR), wParam - 1);
1110 RtlCopyMemory(outbuf,
1111 buf,
1112 Result * sizeof(WCHAR));
1113 outbuf[Result] = L'\0';
1114 }
1115 else
1116 outbuf[0] = L'\0';
1117 }
1118 }
1119 break;
1120 }
1121
1122 case WM_SETTEXT:
1123 {
1125
1128 Result = 1;
1129 break;
1130 }
1131
1132 case WM_IME_CHAR:
1133 {
1135 Result = 0;
1136 break;
1137 }
1138
1139 case WM_IME_KEYDOWN:
1140 {
1142 break;
1143 }
1144
1145 case WM_IME_KEYUP:
1146 {
1148 break;
1149 }
1150
1151 case WM_IME_COMPOSITION:
1152 if (lParam & GCS_RESULTSTR)
1153 {
1154 LONG size, i;
1155 WCHAR *buf = NULL;
1156 HIMC himc = IMM_FN(ImmGetContext)( hWnd );
1157
1158 if (himc)
1159 {
1161 {
1162 if (!(buf = HeapAlloc( GetProcessHeap(), 0, size * sizeof(WCHAR) ))) size = 0;
1163 else size = IMM_FN(ImmGetCompositionStringW)( himc, GCS_RESULTSTR, buf, size * sizeof(WCHAR) );
1164 }
1165 IMM_FN(ImmReleaseContext)( hWnd, himc );
1166
1167 for (i = 0; i < size / sizeof(WCHAR); i++)
1169 HeapFree( GetProcessHeap(), 0, buf );
1170 }
1171 }
1172 /* fall through */
1173 case WM_IME_STARTCOMPOSITION:
1174 case WM_IME_ENDCOMPOSITION:
1175 case WM_IME_SELECT:
1176 case WM_IME_NOTIFY:
1177 case WM_IME_CONTROL:
1178 case WM_IME_SETCONTEXT:
1179NormalImeMsgHandling:
1180 {
1181 HWND hwndIME;
1182
1183 if (GetWin32ClientInfo()->dwTIFlags & TIF_DISABLEIME)
1184 {
1185 TRACE("This thread's IME is disabled\n");
1186 break;
1187 }
1188
1189 hwndIME = IMM_FN(ImmGetDefaultIMEWnd)(hWnd);
1190 if (!hwndIME)
1191 {
1192 ERR("hwndIME was NULL\n");
1193 break;
1194 }
1195
1196 if (hwndIME == hWnd)
1197 {
1198 ImeWndProc_common(hwndIME, Msg, wParam, lParam, TRUE);
1199 break;
1200 }
1201
1202 Result = SendMessageW(hwndIME, Msg, wParam, lParam);
1203 break;
1204 }
1205
1206 case WM_IME_SYSTEM:
1207 {
1208 if (wParam == 4)
1209 break;
1210
1211 goto NormalImeMsgHandling;
1212 }
1213
1214 default:
1216 }
1218
1219 return Result;
1220}
1221
1224{
1225 BOOL Hook, msgOverride = FALSE;
1226 LRESULT Result = 0;
1227
1229
1230 Hook = BeginIfHookedUserApiHook();
1231 if (Hook)
1232 {
1233 msgOverride = IsMsgOverride(Msg, &guah.DefWndProcArray);
1234 if(msgOverride == FALSE)
1235 {
1237 }
1238 }
1239
1240 /* Bypass SEH and go direct. */
1241 if (!Hook || !msgOverride)
1243
1244 _SEH2_TRY
1245 {
1247 }
1249 {
1250 ERR("Got exception in hooked DefWindowProcA\n");
1251 }
1252 _SEH2_END;
1253
1255
1256 return Result;
1257}
1258
1261{
1262 BOOL Hook, msgOverride = FALSE;
1263 LRESULT Result = 0;
1264
1266
1267 Hook = BeginIfHookedUserApiHook();
1268 if (Hook)
1269 {
1270 msgOverride = IsMsgOverride(Msg, &guah.DefWndProcArray);
1271 if(msgOverride == FALSE)
1272 {
1274 }
1275 }
1276
1277 /* Bypass SEH and go direct. */
1278 if (!Hook || !msgOverride)
1280
1281 _SEH2_TRY
1282 {
1284 }
1286 {
1287 ERR("Got exception in hooked DefWindowProcW\n");
1288 }
1289 _SEH2_END;
1290
1292
1293 return Result;
1294}
static HDC hDC
Definition: 3dtext.c:33
#define DCX_USESTYLE
Definition: GetDCEx.c:10
#define NUM_SYSCOLORS
Definition: SetSysColors.c:10
HWND hWnd
Definition: settings.c:17
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
Definition: copy.c:51
#define FIXME(fmt,...)
Definition: precomp.h:53
#define WARN(fmt,...)
Definition: precomp.h:61
#define ERR(fmt,...)
Definition: precomp.h:57
#define UlongToHandle(ul)
Definition: basetsd.h:97
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
struct @1766 Msg[]
#define DC_ACTIVE
Definition: dc21x4.h:120
#define Len
Definition: deflate.h:82
DWORD HIMC
Definition: dimm.idl:75
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define GetProcessHeap()
Definition: compat.h:736
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:109
#define SetLastError(x)
Definition: compat.h:752
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
#define CALLBACK
Definition: compat.h:35
#define WideCharToMultiByte
Definition: compat.h:111
UINT WINAPI DECLSPEC_HOTPATCH WinExec(LPCSTR lpCmdLine, UINT uCmdShow)
Definition: proc.c:4779
BOOL WINAPI IsDBCSLeadByte(BYTE testchar)
Definition: locale.c:2126
unsigned short(__cdecl typeof(TIFFCurrentDirectory))(struct tiff *)
Definition: typeof.h:94
#define L(x)
Definition: resources.c:13
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLsizeiptr size
Definition: glext.h:5919
const GLubyte * c
Definition: glext.h:8905
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
GLenum GLsizei len
Definition: glext.h:6722
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
UINT NTAPI GlobalFlags(HGLOBAL hMem)
Definition: heapmem.c:520
#define ISITHOOKED(HookId)
Definition: hook.h:6
#define cs
Definition: i386-dis.c:442
PSERVERINFO gpsi
Definition: imm.c:18
#define WM_IME_SYSTEM
Definition: imm32_undoc.h:32
LONG WINAPI ImmGetCompositionStringA(_In_ HIMC hIMC, _In_ DWORD dwIndex, _Out_writes_bytes_opt_(dwBufLen) LPVOID lpBuf, _In_ DWORD dwBufLen)
Definition: compstr.c:860
#define GCS_RESULTSTR
Definition: imm.h:234
HIMC WINAPI ImmGetContext(_In_ HWND hWnd)
Definition: imm.c:1065
BOOL WINAPI ImmReleaseContext(_In_ HWND hWnd, _In_ HIMC hIMC)
Definition: imm.c:1109
HWND WINAPI ImmGetDefaultIMEWnd(_In_opt_ HWND hWnd)
Definition: ime.c:440
LONG WINAPI ImmGetCompositionStringW(_In_ HIMC hIMC, _In_ DWORD dwIndex, _Out_writes_bytes_opt_(dwBufLen) LPVOID lpBuf, _In_ DWORD dwBufLen)
Definition: compstr.c:908
VOID NTAPI RtlInitLargeAnsiString(IN OUT PLARGE_ANSI_STRING, IN PCSZ, IN INT)
Definition: rtlstr.c:17
BOOL NTAPI NtUserMessageCall(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, ULONG_PTR ResultInfo, DWORD dwType, BOOL Ansi)
Definition: message.c:2527
HKL NTAPI NtUserActivateKeyboardLayout(HKL hKL, ULONG Flags)
Definition: kbdlayout.c:1226
#define WNDS_ACTIVEFRAME
Definition: ntuser.h:611
#define FNID_DEFWINDOWPROC
Definition: ntuser.h:863
#define UserHMGetHandle(obj)
Definition: ntuser.h:230
BOOL NTAPI NtUserDefSetText(HWND WindowHandle, PLARGE_STRING WindowText)
Definition: window.c:4471
#define TIF_DISABLEIME
Definition: ntuser.h:288
BOOL NTAPI NtUserDrawCaption(HWND hWnd, HDC hDc, LPCRECT lpRc, UINT uFlags)
Definition: painting.c:2457
#define QUERY_WINDOW_FOREGROUND
Definition: ntuser.h:2849
DWORD_PTR NTAPI NtUserQueryWindow(HWND hWnd, DWORD Index)
Definition: window.c:4207
#define SRVINFO_APIHOOK
Definition: ntuser.h:950
VOID NTAPI RtlInitLargeUnicodeString(IN OUT PLARGE_UNICODE_STRING, IN PCWSTR, IN INT)
Definition: rtlstr.c:42
#define GetWin32ClientInfo()
Definition: ntuser.h:352
#define WNDS_HASCAPTION
Definition: ntuser.h:608
BOOL NTAPI NtUserSetSysColors(int cElements, IN CONST INT *lpaElements, IN CONST COLORREF *lpaRgbValues, FLONG Flags)
Definition: ntstubs.c:288
#define EXCEPTION_EXECUTE_HANDLER
Definition: excpt.h:90
#define LOBYTE(W)
Definition: jmemdos.c:487
#define HIBYTE(W)
Definition: jmemdos.c:486
#define SC_SCREENSAVE
Definition: mmsystem.h:933
static HDC
Definition: imagelist.c:88
static HICON
Definition: imagelist.c:80
static HTREEITEM hRoot
Definition: treeview.c:383
#define WM_KEYF1
Definition: msg.c:47
#define min(a, b)
Definition: monoChain.cc:55
HICON hIcon
Definition: msconfig.c:44
UINT_PTR HKL
Definition: msctf.idl:125
unsigned int UINT
Definition: ndis.h:50
_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:1621
_Use_decl_annotations_ NTSTATUS NTAPI RtlUnicodeToMultiByteSize(_Out_ PULONG MbSize, _In_ PCWCH UnicodeString, _In_ ULONG UnicodeSize)
Definition: nlsboot.c:145
#define FASTCALL
Definition: nt_native.h:50
LRESULT FASTCALL DefWndGetIcon(PWND pWnd, WPARAM wParam, LPARAM lParam)
Definition: defwnd.c:476
LRESULT FASTCALL DefWndHandleSysCommand(PWND pWnd, WPARAM wParam, LPARAM lParam)
Definition: defwnd.c:125
BOOL UserPaintCaption(PWND pWnd, INT Flags)
Definition: defwnd.c:398
HBRUSH FASTCALL DefWndControlColor(HDC hDC, UINT ctlType)
Definition: defwnd.c:32
EXTINLINE BOOL NtUserxUpdateUiState(HWND hWnd, DWORD Param)
Definition: ntwrapper.h:686
#define LRESULT
Definition: ole.h:14
#define LOWORD(l)
Definition: pedump.c:82
#define WS_CHILD
Definition: pedump.c:617
#define WS_CAPTION
Definition: pedump.c:624
#define CONST
Definition: pedump.c:81
#define WS_EX_ACCEPTFILES
Definition: pedump.c:648
#define WS_POPUP
Definition: pedump.c:616
#define WS_VSCROLL
Definition: pedump.c:627
#define WS_MINIMIZE
Definition: pedump.c:622
#define WS_VISIBLE
Definition: pedump.c:620
long LONG
Definition: pedump.c:60
#define WS_HSCROLL
Definition: pedump.c:628
#define _SEH2_EXCEPT(...)
Definition: pseh2_64.h:82
#define _SEH2_END
Definition: pseh2_64.h:171
#define _SEH2_TRY
Definition: pseh2_64.h:71
LRESULT WINAPI ImeWndProc_common(HWND, UINT, WPARAM, LPARAM, BOOL)
Definition: imm.c:989
#define WM_CONTEXTMENU
Definition: richedit.h:64
#define DECLSPEC_HOTPATCH
Definition: config.h:9
#define TRACE(s)
Definition: solgame.cpp:4
root entry for file system trees
Definition: entries.h:148
UINT LastInputWasKbd
Definition: ntuser.h:154
Definition: ntuser.h:694
struct _WND * spwndOwner
Definition: ntuser.h:715
DWORD style
Definition: ntuser.h:706
PSBINFO pSBInfo
Definition: ntuser.h:726
UINT HideFocus
Definition: ntuser.h:758
UINT HideAccel
Definition: ntuser.h:759
LARGE_UNICODE_STRING strName
Definition: ntuser.h:736
DWORD state
Definition: ntuser.h:701
struct _WND * spwndParent
Definition: ntuser.h:713
long y
Definition: polytest.cpp:48
long x
Definition: polytest.cpp:48
ATOM atomIconProp
Definition: ntuser.h:1066
DWORD dwSRVIFlags
Definition: ntuser.h:1051
ATOM atomIconSmProp
Definition: ntuser.h:1065
UAHOWP DefWndProcArray
Definition: undocuser.h:352
WNDPROC DefWindowProcA
Definition: undocuser.h:350
WNDPROC DefWindowProcW
Definition: undocuser.h:351
#define ICON_BIG
Definition: tnclass.cpp:51
#define ICON_SMALL
Definition: tnclass.cpp:48
#define WM_MOUSEWHEEL
Definition: treelist.c:96
uint16_t * PWSTR
Definition: typedefs.h:56
char * PSTR
Definition: typedefs.h:51
const uint16_t * PCWSTR
Definition: typedefs.h:57
#define MAKEWORD(a, b)
Definition: typedefs.h:248
ULONG_PTR SIZE_T
Definition: typedefs.h:80
int32_t INT
Definition: typedefs.h:58
#define RtlCopyMemory(Destination, Source, Length)
Definition: typedefs.h:263
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
#define HIWORD(l)
Definition: typedefs.h:247
CONST char * PCSZ
Definition: umtypes.h:125
#define WM_COPYGLOBALDATA
Definition: undocuser.h:38
#define WM_NCUAHDRAWCAPTION
Definition: undocuser.h:48
#define WM_QUERYDROPOBJECT
Definition: undocuser.h:57
#define DC_DRAWCAPTIONMD
Definition: undocuser.h:152
#define WM_ISACTIVEICON
Definition: undocuser.h:35
#define WM_CLIENTSHUTDOWN
Definition: undocuser.h:37
#define WM_POPUPSYSTEMMENU
Definition: undocuser.h:62
#define WC_DIALOG
Definition: undocuser.h:13
#define WM_NCUAHDRAWFRAME
Definition: undocuser.h:49
VOID FASTCALL ScrollTrackScrollBar(HWND Wnd, INT SBType, POINT Pt)
Definition: scrollbar.c:1155
LRESULT WINAPI DoAppSwitch(WPARAM wParam, LPARAM lParam)
Definition: appswitch.c:631
BOOL WINAPI SetSysColors(int cElements, CONST INT *lpaElements, CONST COLORREF *lpaRgbValues)
Definition: defwnd.c:51
LRESULT WINAPI User32DefWindowProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, BOOL bUnicode)
Definition: defwnd.c:312
LRESULT WINAPI RealDefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: defwnd.c:799
LRESULT WINAPI DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: defwnd.c:1223
HWND FASTCALL IntFindChildWindowToOwner(HWND hRoot, HWND hOwner)
Definition: defwnd.c:79
LRESULT WINAPI RealDefWindowProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: defwnd.c:1023
DWORD WINAPI DECLSPEC_HOTPATCH GetSysColor(int nIndex)
Definition: defwnd.c:19
static BOOL CALLBACK UserSendUiUpdateMsg(HWND hwnd, LPARAM lParam)
Definition: defwnd.c:244
static VOID DefWndTrackScrollBar(HWND Wnd, WPARAM wParam, POINT Pt)
Definition: defwnd.c:114
HBRUSH WINAPI DECLSPEC_HOTPATCH GetSysColorBrush(int nIndex)
Definition: defwnd.c:36
LRESULT WINAPI DefWindowProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: defwnd.c:1260
void SPY_EnterMessage(INT iFlag, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
Definition: spy.c:2593
HWND * WIN_ListChildren(HWND hWndparent)
Definition: mdi.c:139
BOOL FASTCALL EndUserApiHook(VOID)
Definition: usrapihk.c:164
BOOL FASTCALL BeginIfHookedUserApiHook(VOID)
Definition: usrapihk.c:106
BOOL FASTCALL IsMsgOverride(UINT, PUAHOWP)
Definition: usrapihk.c:63
#define IMM_FN(name)
Definition: user32p.h:56
USERAPIHOOK guah
Definition: usrapihk.c:344
#define SPY_RESULT_DEFWND
Definition: user32p.h:72
void SPY_ExitMessage(INT iFlag, HWND hwnd, UINT msg, LRESULT lReturn, WPARAM wParam, LPARAM lParam)
Definition: spy.c:2648
#define SPY_DEFWNDPROC
Definition: user32p.h:69
static __inline void LoadUserApiHook()
Definition: user_x.h:85
static __inline PDESKTOPINFO GetThreadDesktopInfo(VOID)
Definition: user_x.h:43
BOOL APIENTRY DefSetText(PWND Wnd, PCWSTR WindowText)
Definition: window.c:4390
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFSTRING String
Definition: wdfdevice.h:2433
_Must_inspect_result_ _In_ WDFDEVICE _In_ WDFDEVICE Child
Definition: wdffdo.h:536
_In_ WDFIOTARGET _In_ _Strict_type_match_ WDF_IO_TARGET_SENT_IO_ACTION Action
Definition: wdfiotarget.h:510
#define ValidateHwnd(hwnd)
Definition: precomp.h:101
static PVOID FASTCALL DesktopPtrToUser(PVOID ptr)
Definition: utils.c:188
VOID FASTCALL IntNotifyWinEvent(DWORD Event, PWND pWnd, LONG idObject, LONG idChild, DWORD flags)
Definition: event.c:178
HANDLE FASTCALL UserGetProp(_In_ PWND Window, _In_ ATOM Atom, _In_ BOOLEAN SystemProp)
Definition: prop.c:46
#define OBJID_WINDOW
Definition: winable.h:15
#define CHILDID_SELF
Definition: winable.h:14
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
DWORD COLORREF
Definition: windef.h:300
#define WINAPI
Definition: msvc.h:6
#define GET_Y_LPARAM(lp)
Definition: windowsx.h:300
#define WM_CTLCOLOR
Definition: windowsx.h:29
#define GET_X_LPARAM(lp)
Definition: windowsx.h:299
BOOL WINAPI UnrealizeObject(_In_ HGDIOBJ)
int WINAPI GetClipBox(_In_ HDC, _Out_ LPRECT)
COLORREF WINAPI SetBkColor(_In_ HDC, _In_ COLORREF)
Definition: dc.c:999
BOOL WINAPI DPtoLP(_In_ HDC hdc, _Inout_updates_(c) LPPOINT lppt, _In_ int c)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
COLORREF WINAPI SetTextColor(_In_ HDC, _In_ COLORREF)
Definition: text.c:917
#define SW_SHOWNORMAL
Definition: winuser.h:781
#define WM_PAINT
Definition: winuser.h:1639
HWND WINAPI GetFocus(void)
Definition: window.c:1863
#define SC_HSCROLL
Definition: winuser.h:2613
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
#define WM_ERASEBKGND
Definition: winuser.h:1644
#define SC_MOUSEMENU
Definition: winuser.h:2614
#define WM_GETHOTKEY
Definition: winuser.h:1672
#define MAKEWPARAM(l, h)
Definition: winuser.h:4085
#define WM_IME_KEYUP
Definition: winuser.h:1858
#define WM_CTLCOLORSTATIC
Definition: winuser.h:1791
#define WM_GETTEXTLENGTH
Definition: winuser.h:1638
#define CTLCOLOR_SCROLLBAR
Definition: winuser.h:967
#define WM_CLOSE
Definition: winuser.h:1640
#define WM_SYSCOMMAND
Definition: winuser.h:1760
#define GetWindowLongPtrW
Definition: winuser.h:4905
#define SC_KEYMENU
Definition: winuser.h:2615
#define MAKELPARAM(l, h)
Definition: winuser.h:4084
#define KLF_SETFORPROCESS
Definition: winuser.h:117
#define WM_KEYUP
Definition: winuser.h:1735
#define COLOR_WINDOW
Definition: winuser.h:929
#define COLOR_SCROLLBAR
Definition: winuser.h:923
#define WM_CHARTOITEM
Definition: winuser.h:1668
#define HTCAPTION
Definition: winuser.h:2495
#define DCX_WINDOW
Definition: winuser.h:2132
#define WM_IME_NOTIFY
Definition: winuser.h:1849
#define WM_QUERYOPEN
Definition: winuser.h:1643
BOOL WINAPI PostMessageW(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_SETHOTKEY
Definition: winuser.h:1671
#define WM_WINDOWPOSCHANGING
Definition: winuser.h:1680
#define COLOR_WINDOWTEXT
Definition: winuser.h:932
#define WM_IME_KEYDOWN
Definition: winuser.h:1857
#define WM_SYNCPAINT
Definition: winuser.h:1709
#define CTLCOLOR_LISTBOX
Definition: winuser.h:964
#define SC_PREVWINDOW
Definition: winuser.h:2610
#define SB_VERT
Definition: winuser.h:553
#define WM_CANCELMODE
Definition: winuser.h:1654
#define SC_VSCROLL
Definition: winuser.h:2612
#define WM_LBUTTONDBLCLK
Definition: winuser.h:1797
struct tagCREATESTRUCTA * LPCREATESTRUCTA
#define HTVSCROLL
Definition: winuser.h:2501
#define MA_ACTIVATE
Definition: winuser.h:2520
#define HTHSCROLL
Definition: winuser.h:2500
#define WM_APPCOMMAND
Definition: winuser.h:1901
#define HKL_PREV
Definition: winuser.h:110
#define WM_NCHITTEST
Definition: winuser.h:1705
#define WM_RBUTTONUP
Definition: winuser.h:1799
LRESULT WINAPI SendMessageA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_GETTEXT
Definition: winuser.h:1637
HDC WINAPI GetDCEx(_In_opt_ HWND, _In_opt_ HRGN, _In_ DWORD)
#define SC_TASKLIST
Definition: winuser.h:2618
#define CTLCOLOR_EDIT
Definition: winuser.h:963
#define WM_CTLCOLORSCROLLBAR
Definition: winuser.h:1790
#define WA_INACTIVE
Definition: winuser.h:2641
#define MA_NOACTIVATE
Definition: winuser.h:2522
#define WM_LBUTTONDOWN
Definition: winuser.h:1795
#define WM_DEVICECHANGE
Definition: winuser.h:1830
#define WH_CBT
Definition: winuser.h:35
#define WM_SYSCOLORCHANGE
Definition: winuser.h:1645
BOOL WINAPI EnumChildWindows(_In_opt_ HWND, _In_ WNDENUMPROC, _In_ LPARAM)
#define WM_QUERYDRAGICON
Definition: winuser.h:1673
BOOL WINAPI ClientToScreen(_In_ HWND, _Inout_ LPPOINT)
#define WM_CTLCOLORMSGBOX
Definition: winuser.h:1785
#define WM_NCLBUTTONDBLCLK
Definition: winuser.h:1713
#define WM_NCCREATE
Definition: winuser.h:1702
#define IDI_APPLICATION
Definition: winuser.h:712
#define SC_SIZE
Definition: winuser.h:2603
#define WM_ACTIVATE
Definition: winuser.h:1631
#define WM_SHOWWINDOW
Definition: winuser.h:1647
#define WM_IME_SETCONTEXT
Definition: winuser.h:1848
#define WM_RBUTTONDOWN
Definition: winuser.h:1798
#define SC_MINIMIZE
Definition: winuser.h:2605
#define WM_CTLCOLORBTN
Definition: winuser.h:1788
#define WM_SETTEXT
Definition: winuser.h:1636
BOOL WINAPI IsWindowUnicode(_In_ HWND)
#define SC_NEXTWINDOW
Definition: winuser.h:2609
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define WM_NCACTIVATE
Definition: winuser.h:1707
#define WM_IME_CHAR
Definition: winuser.h:1853
#define WM_SYSCHAR
Definition: winuser.h:1740
#define HKL_NEXT
Definition: winuser.h:109
HWND WINAPI SetFocus(_In_opt_ HWND)
#define WM_QUERYENDSESSION
Definition: winuser.h:1641
#define SIF_ALL
Definition: winuser.h:1243
#define WM_SYSKEYUP
Definition: winuser.h:1739
#define SC_HOTKEY
Definition: winuser.h:2620
#define GCL_HBRBACKGROUND
Definition: winuser.h:672
#define SC_CLOSE
Definition: winuser.h:2611
#define DC_TEXT
Definition: winuser.h:430
#define SC_MOVE
Definition: winuser.h:2604
#define WM_MOUSEACTIVATE
Definition: winuser.h:1656
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
#define WM_CHAR
Definition: winuser.h:1736
BOOL WINAPI IsWindowEnabled(_In_ HWND)
HWND WINAPI GetParent(_In_ HWND)
#define GetClassLongPtrW
Definition: winuser.h:4640
#define NFR_ANSI
Definition: winuser.h:2477
#define COLOR_3DHILIGHT
Definition: winuser.h:948
#define WM_SETCURSOR
Definition: winuser.h:1655
#define WM_IME_CONTROL
Definition: winuser.h:1850
#define WM_CTLCOLORLISTBOX
Definition: winuser.h:1787
int WINAPI SetScrollInfo(_In_ HWND, _In_ int, _In_ LPCSCROLLINFO, _In_ BOOL)
#define WM_IME_SELECT
Definition: winuser.h:1852
#define WM_NCRBUTTONUP
Definition: winuser.h:1715
#define WM_KEYDOWN
Definition: winuser.h:1734
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define WM_ICONERASEBKGND
Definition: winuser.h:1661
#define WM_PRINT
Definition: winuser.h:1899
#define NFR_UNICODE
Definition: winuser.h:2478
#define GCL_HICON
Definition: winuser.h:674
#define WM_NCCALCSIZE
Definition: winuser.h:1704
#define GWL_STYLE
Definition: winuser.h:863
#define CS_PARENTDC
Definition: winuser.h:664
#define WM_CTLCOLOREDIT
Definition: winuser.h:1786
#define WM_WINDOWPOSCHANGED
Definition: winuser.h:1681
#define SC_RESTORE
Definition: winuser.h:2617
BOOL WINAPI DestroyWindow(_In_ HWND)
BOOL WINAPI PostMessageA(_In_opt_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define WM_CTLCOLORDLG
Definition: winuser.h:1789
struct tagCREATESTRUCTW * LPCREATESTRUCTW
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
Definition: cursoricon.c:2412
#define WM_SYSKEYDOWN
Definition: winuser.h:1738
#define WM_NCLBUTTONDOWN
Definition: winuser.h:1711
#define GCW_ATOM
Definition: winuser.h:669
#define GCL_STYLE
Definition: winuser.h:678
#define WM_PAINTICON
Definition: winuser.h:1660
#define NF_QUERY
Definition: winuser.h:2479
#define WM_MBUTTONDOWN
Definition: winuser.h:1801
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define SC_MAXIMIZE
Definition: winuser.h:2607
#define SB_HORZ
Definition: winuser.h:552
#define WM_NCPAINT
Definition: winuser.h:1706
#define WM_VKEYTOITEM
Definition: winuser.h:1667
#define WM_NCRBUTTONDOWN
Definition: winuser.h:1714
#define GWL_EXSTYLE
Definition: winuser.h:862
#define COLOR_3DFACE
Definition: winuser.h:940
#define WM_SETREDRAW
Definition: winuser.h:1635
_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:409
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
__wchar_t WCHAR
Definition: xmlstorage.h:180