[USERSRV] Hard-error improvements 3/7
[reactos.git] / win32ss / user / ntuser / ntuser.h
1 #pragma once
2
3 #define DECLARE_RETURN(type) type _ret_
4 #define RETURN(value) { _ret_ = value; goto _cleanup_; }
5 #define CLEANUP /*unreachable*/ ASSERT(FALSE); _cleanup_
6 #define END_CLEANUP return _ret_;
7
8
9 #define UserEnterCo UserEnterExclusive
10 #define UserLeaveCo UserLeave
11
12 extern PSERVERINFO gpsi;
13 extern PTHREADINFO gptiCurrent;
14 extern PPROCESSINFO gppiList;
15 extern PPROCESSINFO ppiScrnSaver;
16 extern PPROCESSINFO gppiInputProvider;
17 extern BOOL g_AlwaysDisplayVersion;
18 extern ATOM gaGuiConsoleWndClass;
19 extern ATOM AtomDDETrack;
20 extern ATOM AtomQOS;
21
22 INIT_FUNCTION NTSTATUS NTAPI InitUserImpl(VOID);
23 VOID FASTCALL CleanupUserImpl(VOID);
24 VOID FASTCALL UserEnterShared(VOID);
25 VOID FASTCALL UserEnterExclusive(VOID);
26 VOID FASTCALL UserLeave(VOID);
27 BOOL FASTCALL UserIsEntered(VOID);
28 BOOL FASTCALL UserIsEnteredExclusive(VOID);
29 DWORD FASTCALL UserGetLanguageToggle(VOID);
30
31 _Success_(return != FALSE)
32 BOOL
33 NTAPI
34 RegReadUserSetting(
35 _In_z_ PCWSTR pwszKeyName,
36 _In_z_ PCWSTR pwszValueName,
37 _In_ ULONG ulType,
38 _Out_writes_bytes_(cjDataSize) _When_(ulType == REG_SZ, _Post_z_) PVOID pvData,
39 _In_ ULONG cjDataSize);
40
41 _Success_(return != FALSE)
42 BOOL
43 NTAPI
44 RegWriteUserSetting(
45 _In_z_ PCWSTR pwszKeyName,
46 _In_z_ PCWSTR pwszValueName,
47 _In_ ULONG ulType,
48 _In_reads_bytes_(cjDataSize) const VOID *pvData,
49 _In_ ULONG cjDataSize);
50
51 /* EOF */