ReactOS  0.4.15-dev-3728-ga92304f
ntvdm.h File Reference
#include <stdio.h>
#include <stdarg.h>
#include <wchar.h>
#include <windef.h>
#include <winbase.h>
#include <wingdi.h>
#include <wincon.h>
#include <winnls.h>
#include <winreg.h>
#include <winuser.h>
#include <commdlg.h>
#include <subsys/win/vdm.h>
#include <vddsvc.h>
#include <ndk/kefuncs.h>
#include <ndk/rtlfuncs.h>
#include <pseh/pseh2.h>
#include <ntstrsafe.h>
Include dependency graph for ntvdm.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _NTVDM_SETTINGS
 

Macros

#define _countof(_Array)   (sizeof(_Array) / sizeof(_Array[0]))
 
#define __L(x)   L ## x
 
#define _L(x)   __L(x)
 
#define L(x)   _L(x)
 
#define WIN32_NO_STATUS
 
#define NO_NTVDD_COMPAT
 
#define NTOS_MODE_USER
 

Typedefs

typedef struct _NTVDM_SETTINGS NTVDM_SETTINGS
 
typedef struct _NTVDM_SETTINGSPNTVDM_SETTINGS
 
typedef VOID(* CHAR_PRINT) (IN CHAR Character)
 

Functions

DWORD WINAPI SetLastConsoleEventActive (VOID)
 
VOID DisplayMessage (IN LPCWSTR Format,...)
 
VOID PrintMessageAnsi (IN CHAR_PRINT CharPrint, IN LPCSTR Format,...)
 
VOID UpdateVdmMenuDisks (VOID)
 
BOOL ConsoleAttach (VOID)
 
VOID ConsoleDetach (VOID)
 
VOID ConsoleReattach (HANDLE ConOutHandle)
 
BOOL IsConsoleHandle (HANDLE hHandle)
 
VOID MenuEventHandler (PMENU_EVENT_RECORD MenuEvent)
 
VOID FocusEventHandler (PFOCUS_EVENT_RECORD FocusEvent)
 

Variables

NTVDM_SETTINGS GlobalSettings
 
INT NtVdmArgc
 
WCHAR ** NtVdmArgv
 
WCHAR NtVdmPath [MAX_PATH]
 
ULONG NtVdmPathSize
 
HWND hConsoleWnd
 

Macro Definition Documentation

◆ __L

#define __L (   x)    L ## x

Definition at line 48 of file ntvdm.h.

◆ _countof

#define _countof (   _Array)    (sizeof(_Array) / sizeof(_Array[0]))

Definition at line 44 of file ntvdm.h.

◆ _L

#define _L (   x)    __L(x)

Definition at line 49 of file ntvdm.h.

◆ L

#define L (   x)    _L(x)

◆ NO_NTVDD_COMPAT

#define NO_NTVDD_COMPAT

Definition at line 67 of file ntvdm.h.

◆ NTOS_MODE_USER

#define NTOS_MODE_USER

Definition at line 72 of file ntvdm.h.

◆ WIN32_NO_STATUS

#define WIN32_NO_STATUS

Definition at line 53 of file ntvdm.h.

Typedef Documentation

◆ CHAR_PRINT

typedef VOID(* CHAR_PRINT) (IN CHAR Character)

Definition at line 110 of file ntvdm.h.

◆ NTVDM_SETTINGS

◆ PNTVDM_SETTINGS

Function Documentation

◆ ConsoleAttach()

BOOL ConsoleAttach ( VOID  )

Definition at line 398 of file console.c.

399 {
400  /* Save the original input and output console modes */
403  {
406  wprintf(L"FATAL: Cannot save console in/out modes\n");
407  return FALSE;
408  }
409 
410  /* Set the console input mode */
413 
414  /* Set the console output mode */
415  // SetConsoleMode(ConsoleOutput, ENABLE_PROCESSED_OUTPUT | ENABLE_WRAP_AT_EOL_OUTPUT);
416 
417  /* Initialize the UI */
418  ConsoleInitUI();
419 
420  return TRUE;
421 }
static DWORD OrgConsoleOutputMode
Definition: console.c:18
#define CloseHandle
Definition: compat.h:598
static VOID ConsoleInitUI(VOID)
Definition: console.c:382
#define TRUE
Definition: types.h:120
BOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle, LPDWORD lpMode)
Definition: console.c:1571
#define wprintf(...)
Definition: whoami.c:18
#define L(x)
Definition: ntvdm.h:50
#define FALSE
Definition: types.h:117
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleMode(HANDLE hConsoleHandle, DWORD dwMode)
Definition: console.c:1608
static VOID EnableExtraHardware(HANDLE ConsoleInput)
Definition: console.c:318
#define ENABLE_WINDOW_INPUT
Definition: wincon.h:81
static HANDLE ConsoleOutput
Definition: console.c:17
static DWORD OrgConsoleInputMode
Definition: console.c:18

Referenced by ConsoleInit(), and DosProcessConsoleAttach().

◆ ConsoleDetach()

VOID ConsoleDetach ( VOID  )

Definition at line 424 of file console.c.

425 {
426  /* Cleanup the UI */
428 
429  /* Restore the original input and output console modes */
432 }
static DWORD OrgConsoleOutputMode
Definition: console.c:18
static VOID ConsoleCleanupUI(VOID)
Definition: console.c:389
BOOL WINAPI DECLSPEC_HOTPATCH SetConsoleMode(HANDLE hConsoleHandle, DWORD dwMode)
Definition: console.c:1608
static HANDLE ConsoleOutput
Definition: console.c:17
static DWORD OrgConsoleInputMode
Definition: console.c:18

Referenced by ConsoleCleanup(), and DosProcessConsoleDetach().

◆ ConsoleReattach()

VOID ConsoleReattach ( HANDLE  ConOutHandle)

Definition at line 435 of file console.c.

436 {
437  DestroyVdmMenu();
438  CurrentConsoleOutput = ConOutHandle;
439  CreateVdmMenu(ConOutHandle);
440 
441  /* Synchronize mouse cursor display with console screenbuffer switches */
443 }
static BOOL CaptureMouse
Definition: console.c:23
static HANDLE CurrentConsoleOutput
Definition: console.c:14
static VOID CreateVdmMenu(HANDLE ConOutHandle)
Definition: console.c:203
static VOID DestroyVdmMenu(VOID)
Definition: console.c:274
static VOID CaptureMousePointer(HANDLE ConOutHandle, BOOLEAN Capture)
Definition: console.c:288

Referenced by SetActiveScreenBuffer().

◆ DisplayMessage()

VOID DisplayMessage ( IN LPCWSTR  Format,
  ... 
)

Definition at line 360 of file ntvdm.c.

361 {
362 #ifndef WIN2K_COMPLIANT
363  WCHAR StaticBuffer[256];
364  LPWSTR Buffer = StaticBuffer; // Use the static buffer by default.
365 #else
366  WCHAR Buffer[2048]; // Large enough. If not, increase it by hand.
367 #endif
368  size_t MsgLen;
369  va_list args;
370 
371  va_start(args, Format);
372 
373 #ifndef WIN2K_COMPLIANT
374  /*
375  * Retrieve the message length and if it is too long, allocate
376  * an auxiliary buffer; otherwise use the static buffer.
377  * The string is built to be NULL-terminated.
378  */
379  MsgLen = _vscwprintf(Format, args);
380  if (MsgLen >= ARRAYSIZE(StaticBuffer))
381  {
382  Buffer = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, (MsgLen + 1) * sizeof(WCHAR));
383  if (Buffer == NULL)
384  {
385  /* Allocation failed, use the static buffer and display a suitable error message */
386  Buffer = StaticBuffer;
387  Format = L"DisplayMessage()\nOriginal message is too long and allocating an auxiliary buffer failed.";
388  MsgLen = wcslen(Format);
389  }
390  }
391 #else
392  MsgLen = ARRAYSIZE(Buffer) - 1;
393 #endif
394 
395  RtlZeroMemory(Buffer, (MsgLen + 1) * sizeof(WCHAR));
396  _vsnwprintf(Buffer, MsgLen, Format, args);
397 
398  va_end(args);
399 
400  /* Display the message */
401  DPRINT1("\n\nNTVDM Subsystem\n%S\n\n", Buffer);
402  MessageBoxW(hConsoleWnd, Buffer, L"NTVDM Subsystem", MB_OK);
403 
404 #ifndef WIN2K_COMPLIANT
405  /* Free the buffer if needed */
406  if (Buffer != StaticBuffer) RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer);
407 #endif
408 }
#define args
Definition: format.c:66
HWND hConsoleWnd
Definition: console.c:20
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:606
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
Definition: match.c:390
#define L(x)
Definition: ntvdm.h:50
#define va_end(ap)
Definition: acmsvcex.h:90
char * va_list
Definition: acmsvcex.h:78
Definition: bufpool.h:45
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:588
int WINAPI MessageBoxW(_In_opt_ HWND, _In_opt_ LPCWSTR, _In_opt_ LPCWSTR, _In_ UINT)
__wchar_t WCHAR
Definition: xmlstorage.h:180
va_start(ap, x)
_Check_return_ _CRTIMP int __cdecl _vscwprintf(_In_z_ _Printf_format_string_ const wchar_t *_Format, va_list _ArgList)
_CRTIMP int __cdecl _vsnwprintf(wchar_t *_Dest, size_t _Count, const wchar_t *_Format, va_list _Args)
#define NULL
Definition: types.h:112
#define MB_OK
Definition: winuser.h:784
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define DPRINT1
Definition: precomp.h:8
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262
WCHAR * LPWSTR
Definition: xmlstorage.h:184

◆ FocusEventHandler()

VOID FocusEventHandler ( PFOCUS_EVENT_RECORD  FocusEvent)

Definition at line 600 of file console.c.

601 {
602  /*
603  * If the mouse is captured, release it or recapture it
604  * when we lose or regain focus, respectively.
605  */
606  if (!CaptureMouse) return;
608 }
static BOOL CaptureMouse
Definition: console.c:23
static HANDLE CurrentConsoleOutput
Definition: console.c:14
static VOID CaptureMousePointer(HANDLE ConOutHandle, BOOLEAN Capture)
Definition: console.c:288

Referenced by ConsoleEventThread().

◆ IsConsoleHandle()

BOOL IsConsoleHandle ( HANDLE  hHandle)

Definition at line 503 of file console.c.

504 {
505  DWORD dwMode;
506 
507  /* Check whether the handle may be that of a console... */
508  if ((GetFileType(hHandle) & ~FILE_TYPE_REMOTE) != FILE_TYPE_CHAR)
509  return FALSE;
510 
511  /*
512  * It may be. Perform another test... The idea comes from the
513  * MSDN description of the WriteConsole API:
514  *
515  * "WriteConsole fails if it is used with a standard handle
516  * that is redirected to a file. If an application processes
517  * multilingual output that can be redirected, determine whether
518  * the output handle is a console handle (one method is to call
519  * the GetConsoleMode function and check whether it succeeds).
520  * If the handle is a console handle, call WriteConsole. If the
521  * handle is not a console handle, the output is redirected and
522  * you should call WriteFile to perform the I/O."
523  */
524  return GetConsoleMode(hHandle, &dwMode);
525 }
#define FILE_TYPE_REMOTE
Definition: winbase.h:259
BOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle, LPDWORD lpMode)
Definition: console.c:1571
DWORD WINAPI GetFileType(HANDLE hFile)
Definition: fileinfo.c:269
#define FALSE
Definition: types.h:117
#define FILE_TYPE_CHAR
Definition: winbase.h:257
unsigned long DWORD
Definition: ntddk_ex.h:95

Referenced by ConRingBell().

◆ MenuEventHandler()

VOID MenuEventHandler ( PMENU_EVENT_RECORD  MenuEvent)

Definition at line 527 of file console.c.

528 {
529  switch (MenuEvent->dwCommandId)
530  {
531  /*
532  * System-defined menu commands
533  */
534 
535  case WM_INITMENU:
536  case WM_MENUSELECT:
537  {
538  /*
539  * If the mouse is captured, release it or recapture it
540  * when the menu opens or closes, respectively.
541  */
542  if (!CaptureMouse) break;
544  break;
545  }
546 
547 
548  /*
549  * User-defined menu commands
550  */
551 
552  case ID_CAPTURE_MOUSE:
556  break;
557 
558  case ID_VDM_DUMPMEM_TXT:
559  DumpMemory(TRUE);
560  break;
561 
562  case ID_VDM_DUMPMEM_BIN:
563  DumpMemory(FALSE);
564  break;
565 
566  /* Drive 0 -- Mount */
567  /* Drive 1 -- Mount */
568  case ID_VDM_DRIVES + 0:
569  case ID_VDM_DRIVES + 2:
570  {
571  ULONG DiskNumber = (MenuEvent->dwCommandId - ID_VDM_DRIVES) / 2;
572  MountFloppy(DiskNumber);
573  break;
574  }
575 
576  /* Drive 0 -- Eject */
577  /* Drive 1 -- Eject */
578  case ID_VDM_DRIVES + 1:
579  case ID_VDM_DRIVES + 3:
580  {
581  ULONG DiskNumber = (MenuEvent->dwCommandId - ID_VDM_DRIVES - 1) / 2;
582  EjectFloppy(DiskNumber);
583  break;
584  }
585 
586  case ID_VDM_QUIT:
587  /* Stop the VDM */
588  // EmulatorTerminate();
589 
590  /* Nothing runs, so exit immediately */
591  DPRINT1("Killing NTVDM via console menu!\n");
592  VdmShutdown(TRUE);
593  break;
594 
595  default:
596  break;
597  }
598 }
#define ID_VDM_DUMPMEM_BIN
Definition: resource.h:6
VOID EjectFloppy(IN ULONG DiskNumber)
Definition: emulator.c:467
#define TRUE
Definition: types.h:120
#define ID_VDM_DUMPMEM_TXT
Definition: resource.h:5
#define ID_VDM_DRIVES
Definition: resource.h:10
VOID VdmShutdown(BOOLEAN Immediate)
Definition: ntvdm.c:317
#define ID_VDM_QUIT
Definition: resource.h:7
static BOOL CaptureMouse
Definition: console.c:23
#define FALSE
Definition: types.h:117
static HANDLE CurrentConsoleOutput
Definition: console.c:14
#define WM_MENUSELECT
Definition: winuser.h:1734
VOID DumpMemory(BOOLEAN TextFormat)
Definition: emulator.c:369
static VOID UpdateVdmMenuMouse(VOID)
Definition: console.c:130
#define WM_INITMENU
Definition: winuser.h:1732
VOID MountFloppy(IN ULONG DiskNumber)
Definition: emulator.c:413
#define DPRINT1
Definition: precomp.h:8
#define ID_CAPTURE_MOUSE
Definition: resource.h:4
unsigned int ULONG
Definition: retypes.h:1
static VOID CaptureMousePointer(HANDLE ConOutHandle, BOOLEAN Capture)
Definition: console.c:288

Referenced by ConsoleEventThread().

◆ PrintMessageAnsi()

VOID PrintMessageAnsi ( IN CHAR_PRINT  CharPrint,
IN LPCSTR  Format,
  ... 
)

Definition at line 416 of file ntvdm.c.

418 {
419  static CHAR CurChar = 0;
420  LPSTR str;
421 
422 #ifndef WIN2K_COMPLIANT
423  CHAR StaticBuffer[256];
424  LPSTR Buffer = StaticBuffer; // Use the static buffer by default.
425 #else
426  CHAR Buffer[2048]; // Large enough. If not, increase it by hand.
427 #endif
428  size_t MsgLen;
429  va_list args;
430 
431  va_start(args, Format);
432 
433 #ifndef WIN2K_COMPLIANT
434  /*
435  * Retrieve the message length and if it is too long, allocate
436  * an auxiliary buffer; otherwise use the static buffer.
437  * The string is built to be NULL-terminated.
438  */
439  MsgLen = _vscprintf(Format, args);
440  if (MsgLen >= ARRAYSIZE(StaticBuffer))
441  {
442  Buffer = RtlAllocateHeap(RtlGetProcessHeap(), HEAP_ZERO_MEMORY, (MsgLen + 1) * sizeof(CHAR));
443  if (Buffer == NULL)
444  {
445  /* Allocation failed, use the static buffer and display a suitable error message */
446  Buffer = StaticBuffer;
447  Format = "DisplayMessageAnsi()\nOriginal message is too long and allocating an auxiliary buffer failed.";
448  MsgLen = strlen(Format);
449  }
450  }
451 #else
452  MsgLen = ARRAYSIZE(Buffer) - 1;
453 #endif
454 
455  RtlZeroMemory(Buffer, (MsgLen + 1) * sizeof(CHAR));
456  _vsnprintf(Buffer, MsgLen, Format, args);
457 
458  va_end(args);
459 
460  /* Display the message */
461  // DPRINT1("\n\nNTVDM DOS32\n%s\n\n", Buffer);
462 
463  MsgLen = strlen(Buffer);
464  str = Buffer;
465  while (MsgLen--)
466  {
467  if (*str == '\n' && CurChar != '\r')
468  CharPrint('\r');
469 
470  CurChar = *str++;
471  CharPrint(CurChar);
472  }
473 
474 #ifndef WIN2K_COMPLIANT
475  /* Free the buffer if needed */
476  if (Buffer != StaticBuffer) RtlFreeHeap(RtlGetProcessHeap(), 0, Buffer);
477 #endif
478 }
#define args
Definition: format.c:66
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
IN BOOLEAN OUT PSTR Buffer
Definition: progress.h:34
char CHAR
Definition: xmlstorage.h:175
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
Definition: heap.c:606
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
char * LPSTR
Definition: xmlstorage.h:182
Definition: match.c:390
#define va_end(ap)
Definition: acmsvcex.h:90
const WCHAR * str
char * va_list
Definition: acmsvcex.h:78
Definition: bufpool.h:45
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
Definition: heap.c:588
va_start(ap, x)
_Check_return_ _CRTIMP int __cdecl _vscprintf(_In_z_ _Printf_format_string_ const char *_Format, va_list _ArgList)
#define NULL
Definition: types.h:112
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
#define _vsnprintf
Definition: xmlstorage.h:202
#define RtlZeroMemory(Destination, Length)
Definition: typedefs.h:262

Referenced by BiosRomBasic().

◆ SetLastConsoleEventActive()

DWORD WINAPI SetLastConsoleEventActive ( VOID  )

Definition at line 3142 of file console.c.

3143 {
3144  CONSOLE_API_MESSAGE ApiMessage;
3145  PCONSOLE_NOTIFYLASTCLOSE NotifyLastCloseRequest = &ApiMessage.Data.NotifyLastCloseRequest;
3146 
3147  /* Set the flag used by the console control dispatcher */
3149 
3150  /* Set up the input arguments */
3151  NotifyLastCloseRequest->ConsoleHandle = NtCurrentPeb()->ProcessParameters->ConsoleHandle;
3152 
3153  /* Call CSRSS; just return the NTSTATUS cast to DWORD */
3154  return CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
3155  NULL,
3157  sizeof(*NotifyLastCloseRequest));
3158 }
#define TRUE
Definition: types.h:120
NTSTATUS NTAPI CsrClientCallServer(IN OUT PCSR_API_MESSAGE ApiMessage, IN OUT PCSR_CAPTURE_BUFFER CaptureBuffer OPTIONAL, IN CSR_API_NUMBER ApiNumber, IN ULONG DataLength)
Definition: connect.c:365
CONSOLE_NOTIFYLASTCLOSE NotifyLastCloseRequest
Definition: conmsg.h:909
#define CSR_CREATE_API_NUMBER(ServerId, ApiId)
Definition: csrmsg.h:37
static BOOLEAN LastCloseNotify
Definition: console.c:33
#define NtCurrentPeb()
Definition: FLS.c:22
union _CONSOLE_API_MESSAGE::@3456 Data
#define NULL
Definition: types.h:112
#define CONSRV_SERVERDLL_INDEX
Definition: conmsg.h:15

Referenced by ConsoleInit().

◆ UpdateVdmMenuDisks()

VOID UpdateVdmMenuDisks ( VOID  )

Definition at line 146 of file console.c.

147 {
148  UINT_PTR ItemID;
149  USHORT i;
150 
151  WCHAR szNoMedia[100];
152  WCHAR szMenuString1[256], szMenuString2[256];
153 
154  /* Update the disks menu items */
155 
157  IDS_NO_MEDIA,
158  szNoMedia,
159  ARRAYSIZE(szNoMedia));
160 
163  szMenuString1,
164  ARRAYSIZE(szMenuString1));
165 
166  for (i = 0; i < ARRAYSIZE(GlobalSettings.FloppyDisks); ++i)
167  {
168  ItemID = ID_VDM_DRIVES + (2 * i);
169 
170  if (GlobalSettings.FloppyDisks[i].Length != 0 &&
173  {
174  /* Update item text */
175  _snwprintf(szMenuString2, ARRAYSIZE(szMenuString2), szMenuString1, i, GlobalSettings.FloppyDisks[i].Buffer);
176  szMenuString2[ARRAYSIZE(szMenuString2) - 1] = UNICODE_NULL;
177  ModifyMenuW(hConsoleMenu, ItemID, MF_BYCOMMAND | MF_STRING, ItemID, szMenuString2);
178 
179  /* Enable the eject item */
181  }
182  else
183  {
184  /* Update item text */
185  _snwprintf(szMenuString2, ARRAYSIZE(szMenuString2), szMenuString1, i, szNoMedia);
186  szMenuString2[ARRAYSIZE(szMenuString2) - 1] = UNICODE_NULL;
187  ModifyMenuW(hConsoleMenu, ItemID, MF_BYCOMMAND | MF_STRING, ItemID, szMenuString2);
188 
189  /* Disable the eject item */
191  }
192  }
193 }
BOOL WINAPI ModifyMenuW(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT_PTR, _In_opt_ LPCWSTR)
#define MF_BYCOMMAND
Definition: winuser.h:202
#define MF_STRING
Definition: winuser.h:138
#define IDS_VDM_MOUNT_FLOPPY
Definition: resource.h:19
#define ARRAYSIZE(array)
Definition: filtermapper.c:47
#define ID_VDM_DRIVES
Definition: resource.h:10
#define IDS_NO_MEDIA
Definition: resource.h:23
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
#define L(x)
Definition: ntvdm.h:50
BOOL WINAPI EnableMenuItem(_In_ HMENU, _In_ UINT, _In_ UINT)
#define UNICODE_NULL
static HMENU hConsoleMenu
Definition: console.c:21
int _snwprintf(wchar_t *buffer, size_t count, const wchar_t *format,...)
UNICODE_STRING FloppyDisks[2]
Definition: ntvdm.h:88
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define MF_ENABLED
Definition: winuser.h:128
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
#define GetModuleHandle
Definition: winbase.h:3685
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
unsigned short USHORT
Definition: pedump.c:61
#define NULL
Definition: types.h:112
#define MF_GRAYED
Definition: winuser.h:129
NTVDM_SETTINGS GlobalSettings
Definition: ntvdm.c:28

Referenced by EjectFloppy(), EmulatorInitialize(), MountFloppy(), and UpdateVdmMenu().

Variable Documentation

◆ GlobalSettings

◆ hConsoleWnd

HWND hConsoleWnd

◆ NtVdmArgc

INT NtVdmArgc

Definition at line 31 of file ntvdm.c.

Referenced by DosStart(), and wmain().

◆ NtVdmArgv

WCHAR** NtVdmArgv

Definition at line 32 of file ntvdm.c.

Referenced by DosStart(), and wmain().

◆ NtVdmPath

WCHAR NtVdmPath[MAX_PATH]

Definition at line 35 of file ntvdm.c.

Referenced by CmosInitialize(), and wmain().

◆ NtVdmPathSize

ULONG NtVdmPathSize

Definition at line 36 of file ntvdm.c.

Referenced by wmain().