[INTRIN]
[reactos.git] / reactos / subsystems / mvdm / ntvdm / ntvdm.h
1 /*
2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: ntvdm.h
5 * PURPOSE: Header file to define commonly used stuff
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
7 */
8
9 #ifndef _NTVDM_H_
10 #define _NTVDM_H_
11
12 /* INCLUDES *******************************************************************/
13
14 #include <stdio.h>
15 #include <stdarg.h>
16 #include <conio.h>
17 #include <wchar.h>
18
19 #define WIN32_NO_STATUS
20 #include <windef.h>
21 #include <winbase.h>
22 #include <wingdi.h>
23 #include <wincon.h>
24 #include <winnls.h>
25 #include <winreg.h>
26 #include <winuser.h>
27 #include <subsys/win/vdm.h>
28
29 #include <vddsvc.h>
30
31 DWORD WINAPI SetLastConsoleEventActive(VOID);
32
33 #include <debug.h>
34
35 /*
36 * Activate this line if you want to run NTVDM in standalone mode with:
37 * ntvdm.exe <program>
38 */
39 // #define STANDALONE
40
41 /* FUNCTIONS ******************************************************************/
42
43 #ifndef STANDALONE
44 extern BOOLEAN AcceptCommands;
45 extern HANDLE CommandThread;
46 extern ULONG SessionId;
47 #endif
48
49 extern HANDLE VdmTaskEvent;
50
51 // Command line of NTVDM
52 extern INT NtVdmArgc;
53 extern WCHAR** NtVdmArgv;
54
55
56 /*
57 * Interface functions
58 */
59 VOID DisplayMessage(LPCWSTR Format, ...);
60
61 /*static*/ VOID
62 CreateVdmMenu(HANDLE ConOutHandle);
63 /*static*/ VOID
64 DestroyVdmMenu(VOID);
65
66 VOID MenuEventHandler(PMENU_EVENT_RECORD MenuEvent);
67 VOID FocusEventHandler(PFOCUS_EVENT_RECORD FocusEvent);
68
69 #endif // _NTVDM_H_
70
71 /* EOF */