Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
monod.cpp
Go to the documentation of this file.
1/*
2** Command & Conquer Generals Zero Hour(tm)
3** Copyright 2025 Electronic Arts Inc.
4**
5** This program is free software: you can redistribute it and/or modify
6** it under the terms of the GNU General Public License as published by
7** the Free Software Foundation, either version 3 of the License, or
8** (at your option) any later version.
9**
10** This program is distributed in the hope that it will be useful,
11** but WITHOUT ANY WARRANTY; without even the implied warranty of
12** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13** GNU General Public License for more details.
14**
15** You should have received a copy of the GNU General Public License
16** along with this program. If not, see <http://www.gnu.org/licenses/>.
17*/
18
19#include "monod.h"
20
21MonoD::MonoD(void)
22{
23#ifdef _WIN32
24 unsigned long retval;
25 handle = CreateFile("\\\\.\\MONO", GENERIC_READ|GENERIC_WRITE, 0, NULL,
26 OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
27
28 if (handle != INVALID_HANDLE_VALUE)
29 {
30 DeviceIoControl(handle, (DWORD)IOCTL_MONO_CLEAR_SCREEN, NULL, 0, NULL, 0,
31 &retval,0);
32 }
33#endif
34}
35
37{
38 #ifdef _WIN32
39 CloseHandle(handle);
40 handle=NULL;
41 #endif
42}
43
44int MonoD::print(const char *str, int len)
45{
46 #ifdef _WIN32
47 unsigned long retval;
48 WriteFile(handle, str, len, &retval, NULL);
51 return(len);
52 #else
53 for (int i=0; i<len; i++)
54 fprintf(stderr,"%c",str[i]);
55 return(len);
56 #endif
57}
#define NULL
Definition BaseType.h:92
unsigned long DWORD
Definition bittype.h:57
#define IOCTL_MONO_CLEAR_SCREEN
Definition MONODRVR.H:62
MonoD()
Definition monod.cpp:21
virtual int print(const char *str, int len)
Definition monod.cpp:44
~MonoD()
Definition monod.cpp:36