summaryrefslogtreecommitdiffstats
path: root/private/mvdm/softpc.new/host/src/nt_term.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/mvdm/softpc.new/host/src/nt_term.c81
1 files changed, 81 insertions, 0 deletions
diff --git a/private/mvdm/softpc.new/host/src/nt_term.c b/private/mvdm/softpc.new/host/src/nt_term.c
new file mode 100644
index 000000000..6a36e8147
--- /dev/null
+++ b/private/mvdm/softpc.new/host/src/nt_term.c
@@ -0,0 +1,81 @@
+#include <windows.h>
+#include <vdmapi.h>
+#include "host_def.h"
+#include "insignia.h"
+
+/*
+ * ==========================================================================
+ * Name: nt_term.c
+ * Author: Simon Frost
+ * Derived From:
+ * Created On: 7th May 1992
+ * Purpose: This code moved from stubs.c and split to support
+ * the tidy up code and the actual exit code.
+ *
+ * (c)Copyright Insignia Solutions Ltd., 1992. All rights reserved.
+ * ==========================================================================
+ */
+
+#include <conapi.h>
+#include "xt.h"
+#include "nt_graph.h"
+#ifdef HUNTER
+#include "nt_hunt.h"
+#endif /* HUNTER */
+#include "ntcheese.h"
+
+
+IMPORT VOID DeleteConfigFiles(VOID); // from command.lib
+
+/*::::::::::::::::::::::::::::::::::::::::: Do host cleanup before exiting */
+/*:::::::::::::::: Also called from reset() if VDM 'rebooted' */
+
+void host_term_cleanup()
+{
+ GfxCloseDown(); // ensure video section destroyed
+#ifdef X86GFX
+ if (sc.ScreenBufHandle) //dont want to leave console in graphics mode
+ CloseHandle(sc.ScreenBufHandle);
+#endif // X86GFX
+
+ /*:::::::::::::::::::::::::::::::::: Close open printer and comms ports */
+
+ host_lpt_close_all(); /* Close all open printer ports */
+ host_com_close_all(); /* Close all open comms ports */
+ MouseDetachMenuItem(TRUE); /* Force the menu item away on quit */
+
+ DeleteConfigFiles(); // make sure temp config files are deleted
+
+}
+
+/*::::::::::::::::::::::::::::::::::::::::::::::::::: Closedown the VDM */
+void host_terminate()
+{
+
+ host_term_cleanup();
+#ifdef HUNTER
+ if (TrapperDump != (HANDLE) -1)
+ CloseHandle(TrapperDump);
+#endif /* HUNTER */
+
+ if(VDMForWOW)
+ ExitVDM(VDMForWOW,(ULONG)-1); // Kill everything for WOW VDM
+ else
+ ExitVDM(FALSE,0);
+
+ ExitProcess(0);
+}
+
+/*::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Terminate VDM */
+
+VOID TerminateVDM(void)
+{
+
+ /*
+ * Do base sepcific cleanup thru terminate().
+ * NOTE: terminate will call host_terminate to do host
+ * specific cleanup
+ */
+
+ terminate();
+}