Small fixes for EnhMetaFile playback.
[wine] / include / syslevel.h
1 /*
2  * Win32 'syslevel' routines
3  *
4  * Copyright 1998 Ulrich Weigand
5  */
6
7 #ifndef __WINE_SYSLEVEL_H
8 #define __WINE_SYSLEVEL_H
9
10 #include "windef.h"
11 #include "winbase.h"
12
13 typedef struct tagSYSLEVEL
14 {
15     CRITICAL_SECTION crst;
16     INT level;
17 } SYSLEVEL;
18
19 extern WORD SYSLEVEL_Win16CurrentTeb;
20 extern WORD SYSLEVEL_EmergencyTeb;
21
22 void SYSLEVEL_Init(void);
23 VOID WINAPI SYSLEVEL_EnterWin16Lock(VOID);
24 VOID WINAPI SYSLEVEL_LeaveWin16Lock(VOID);
25 VOID SYSLEVEL_ReleaseWin16Lock(VOID);
26 VOID SYSLEVEL_RestoreWin16Lock(VOID);
27 VOID SYSLEVEL_CheckNotLevel( INT level );
28
29 VOID WINAPI GetpWin16Lock(SYSLEVEL **lock);
30 SEGPTR WINAPI GetpWin16Lock16(void);
31 DWORD WINAPI _ConfirmWin16Lock(void);
32
33 VOID WINAPI _CreateSysLevel(SYSLEVEL *lock, INT level);
34 VOID WINAPI _EnterSysLevel(SYSLEVEL *lock);
35 VOID WINAPI _LeaveSysLevel(SYSLEVEL *lock);
36 DWORD WINAPI _ConfirmSysLevel(SYSLEVEL *lock);
37
38 VOID WINAPI ReleaseThunkLock(DWORD *mutex_count);
39 VOID WINAPI RestoreThunkLock(DWORD mutex_count);
40
41 #endif  /* __WINE_SYSLEVEL_H */