MCPcopy Create free account
hub / github.com/GameTechDev/PresentMon / InitConsole

Function InitConsole

PresentMon/Console.cpp:13–44  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11static bool gStdoutIsConsole = false;
12
13static bool InitConsole(DWORD stdHandle, FILE* fp)
14{
15 HANDLE console = GetStdHandle(stdHandle);
16 if (console == INVALID_HANDLE_VALUE) {
17 return false;
18 }
19 if (console == NULL) {
20 return false;
21 }
22
23 DWORD mode;
24 if (GetConsoleMode(console, &mode)) {
25 _setmode(_fileno(fp), _O_U16TEXT);
26 return true;
27 }
28
29 DWORD type = GetFileType(console);
30 if ((type & 0x3) == FILE_TYPE_DISK) {
31 LARGE_INTEGER size{};
32 GetFileSizeEx(console, &size);
33
34 if (size.QuadPart == 0) {
35 uint16_t bom = 0xfeff;
36 DWORD w;
37 WriteFile(console, &bom, 2, &w, nullptr);
38 }
39
40 _setmode(_fileno(fp), _O_U16TEXT);
41 }
42
43 return false;
44}
45
46bool StdOutIsConsole()
47{

Callers 1

InitializeConsoleFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected