Create a branch for network fixes.
[reactos.git] / subsystems / win32 / win32k / ntuser / defwnd.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * PURPOSE: Misc User funcs
5 * FILE: subsystem/win32/win32k/ntuser/defwnd.c
6 * PROGRAMER:
7 *
8 */
9
10 #include <w32k.h>
11
12 #define NDEBUG
13 #include <debug.h>
14
15 LRESULT FASTCALL
16 IntDefWinHandleSysCommand( PWINDOW_OBJECT Window, WPARAM wParam, LPARAM lParam , BOOL Ansi)
17 {
18 DPRINT1("hwnd %p WM_SYSCOMMAND %lx %lx\n", Window->hSelf, wParam, lParam );
19
20 if (!ISITHOOKED(WH_CBT)) return 0;
21
22 // if (!UserCallNextHookEx(WH_CBT, HCBT_SYSCOMMAND, wParam, lParam, Ansi))
23 return 0;
24
25 switch (wParam & 0xfff0)
26 {
27 case SC_MOVE:
28 case SC_SIZE:
29 // return UserCallNextHookEx(WH_CBT, HCBT_MOVESIZE, (WPARAM)Window->hSelf, lParam, Ansi);
30 break;
31 }
32 return 1;
33 }
34 /*
35 Win32k counterpart of User DefWindowProc
36 */
37 LRESULT FASTCALL
38 IntDefWindowProc(
39 PWINDOW_OBJECT Window,
40 UINT Msg,
41 WPARAM wParam,
42 LPARAM lParam,
43 BOOL Ansi)
44 {
45 PWINDOW Wnd;
46 LRESULT lResult = 0;
47
48 if (Msg > WM_USER) return 0;
49
50 Wnd = Window->Wnd;
51 if (!Wnd) return 0;
52
53 switch (Msg)
54 {
55 case WM_SYSCOMMAND:
56 {
57 lResult = IntDefWinHandleSysCommand( Window, wParam, lParam, Ansi );
58 break;
59 }
60 case WM_SHOWWINDOW:
61 {
62 if ((Wnd->Style & WS_VISIBLE) && wParam) break;
63 if (!(Wnd->Style & WS_VISIBLE) && !wParam) break;
64 if (!Window->hOwner) break;
65 if (LOWORD(lParam))
66 {
67 if (wParam)
68 {
69 if (!(Window->Flags & WIN_NEEDS_SHOW_OWNEDPOPUP)) break;
70 Window->Flags &= ~WIN_NEEDS_SHOW_OWNEDPOPUP;
71 }
72 else
73 Window->Flags |= WIN_NEEDS_SHOW_OWNEDPOPUP;
74
75 co_WinPosShowWindow(Window, wParam ? SW_SHOWNOACTIVATE : SW_HIDE);
76 }
77 }
78 break;
79 }
80
81 return lResult;
82 }
83
84
85 /* EOF */