Sync with trunk r58740.
[reactos.git] / win32ss / user / ntuser / userfuncs.h
1 #pragma once
2
3 PMENU_OBJECT FASTCALL UserGetMenuObject(HMENU hMenu);
4
5 #define ASSERT_REFS_CO(_obj_) \
6 { \
7 LONG ref = ((PHEAD)_obj_)->cLockObj;\
8 if (!(ref >= 1)){ \
9 ERR_CH(UserObj, "ASSERT: obj 0x%p, refs %ld\n", _obj_, ref); \
10 ASSERT(FALSE); \
11 } \
12 }
13
14 #if 0
15 #define ASSERT_REFS_CO(_obj_) \
16 { \
17 PSINGLE_LIST_ENTRY e; \
18 BOOL gotit=FALSE; \
19 LONG ref = ((PHEAD)_obj_)->cLockObj;\
20 if (!(ref >= 1)){ \
21 ERR_CH(UserObj, "obj 0x%p, refs %i\n", _obj_, ref); \
22 ASSERT(FALSE); \
23 } \
24 \
25 e = PsGetCurrentThreadWin32Thread()->ReferencesList.Next; \
26 while (e) \
27 { \
28 PUSER_REFERENCE_ENTRY ref = CONTAINING_RECORD(e, USER_REFERENCE_ENTRY, Entry); \
29 if (ref->obj == _obj_){ gotit=TRUE; break; } \
30 e = e->Next; \
31 } \
32 ASSERT(gotit); \
33 }
34 #endif
35
36 #define DUMP_REFS(obj) TRACE_CH(UserObj,"obj 0x%x, refs %i\n",obj, ((PHEAD)obj)->cLockObj)
37
38 PWND FASTCALL IntGetWindowObject(HWND hWnd);
39
40 /*************** MAIN.C ***************/
41
42 NTSTATUS NTAPI UserCreateThreadInfo(struct _ETHREAD *Thread);
43
44 /*************** WINSTA.C ***************/
45
46 HWINSTA FASTCALL UserGetProcessWindowStation(VOID);
47
48 /*************** FOCUS.C ***************/
49
50 HWND FASTCALL UserGetActiveWindow(VOID);
51
52 HWND FASTCALL UserGetForegroundWindow(VOID);
53
54 HWND FASTCALL co_UserSetFocus(PWND Window);
55
56 /*************** WINDC.C ***************/
57
58 INT FASTCALL UserReleaseDC(PWND Window, HDC hDc, BOOL EndPaint);
59 HDC FASTCALL UserGetDCEx(PWND Window OPTIONAL, HANDLE ClipRegion, ULONG Flags);
60 HDC FASTCALL UserGetWindowDC(PWND Wnd);
61
62 /*************** SESSION.C ***************/
63
64 extern PRTL_ATOM_TABLE gAtomTable;
65 NTSTATUS FASTCALL InitSessionImpl(VOID);
66
67 /*************** METRIC.C ***************/
68
69 BOOL NTAPI InitMetrics(VOID);
70 LONG NTAPI UserGetSystemMetrics(ULONG Index);
71
72 /*************** KEYBOARD.C ***************/
73
74 DWORD FASTCALL UserGetKeyState(DWORD key);
75 DWORD FASTCALL UserGetKeyboardType(DWORD TypeFlag);
76 HKL FASTCALL UserGetKeyboardLayout(DWORD dwThreadId);
77
78
79 /*************** MISC.C ***************/
80
81 BOOL FASTCALL
82 UserSystemParametersInfo(
83 UINT uiAction,
84 UINT uiParam,
85 PVOID pvParam,
86 UINT fWinIni);
87
88 VOID FASTCALL IntSetWindowState(PWND, UINT);
89 VOID FASTCALL IntClearWindowState(PWND, UINT);
90
91 /*************** MESSAGE.C ***************/
92
93 BOOL FASTCALL
94 UserPostMessage(HWND Wnd,
95 UINT Msg,
96 WPARAM wParam,
97 LPARAM lParam);
98
99 /*************** WINDOW.C ***************/
100
101 PWND FASTCALL UserGetWindowObject(HWND hWnd);
102 VOID FASTCALL co_DestroyThreadWindows(struct _ETHREAD *Thread);
103 HWND FASTCALL UserGetShellWindow(VOID);
104 HDC FASTCALL UserGetDCEx(PWND Window OPTIONAL, HANDLE ClipRegion, ULONG Flags);
105 BOOLEAN FASTCALL co_UserDestroyWindow(PWND Wnd);
106 PWND FASTCALL UserGetAncestor(PWND Wnd, UINT Type);
107
108 /*************** MENU.C ***************/
109
110 HMENU FASTCALL UserCreateMenu(BOOL PopupMenu);
111 BOOL FASTCALL UserSetMenuDefaultItem(PMENU_OBJECT Menu, UINT uItem, UINT fByPos);
112 BOOL FASTCALL UserDestroyMenu(HMENU hMenu);
113
114 /*************** SCROLLBAR.C ***************/
115
116 DWORD FASTCALL
117 co_UserShowScrollBar(PWND Wnd, int nBar, BOOL fShowH, BOOL fShowV);
118
119 /* EOF */