void InitConsole(int FirstInit) { RegisterConsoleScrollHook(); InitRecodeOutTable(); if (FirstInit) { CancelIoInProgress() = Event(Event::manual, Event::nonsignaled); DWORD Mode; if(!Console().GetMode(Console().GetInputHandle(), Mode)) { HANDLE ConIn = CreateFile(L"CONIN$", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, nullptr, OPEN_EXISTING, 0, nullptr); SetStdHandle(STD_INPUT_HANDLE, ConIn); } if(!Console().GetMode(Console().GetOutputHandle(), Mode)) { HANDLE ConOut = CreateFile(L"CONOUT$", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, nullptr); SetStdHandle(STD_OUTPUT_HANDLE, ConOut); SetStdHandle(STD_ERROR_HANDLE, ConOut); } } Console().SetControlHandler(CtrlHandler, true); Console().GetMode(Console().GetInputHandle(),InitialConsoleMode); Global->strInitTitle = Console().GetPhysicalTitle(); Console().GetWindowRect(InitWindowRect); Console().GetSize(InitialSize); Console().GetCursorInfo(InitialCursorInfo); SetFarConsoleMode(); /* $ 09.04.2002 DJ если размер консольного буфера больше размера окна, выставим их равными */ if (FirstInit) { SMALL_RECT WindowRect; Console().GetWindowRect(WindowRect); Console().GetSize(InitSize); if(Global->Opt->WindowMode) { Console().ResetPosition(); } else { if (WindowRect.Left || WindowRect.Top || WindowRect.Right != InitSize.X-1 || WindowRect.Bottom != InitSize.Y-1) { COORD newSize; newSize.X = WindowRect.Right - WindowRect.Left + 1; newSize.Y = WindowRect.Bottom - WindowRect.Top + 1; Console().SetSize(newSize); Console().GetSize(InitSize); } } if (IsZoomed(Console().GetWindow())) ChangeVideoMode(1); } GetVideoMode(CurSize); Global->ScrBuf->FillBuf(); ConsoleIcons().setFarIcons(); }
void InitConsole(int FirstInit) { InitRecodeOutTable(); if (FirstInit) { DWORD Mode; if(!Console.GetMode(Console.GetInputHandle(), Mode)) { HANDLE ConIn = CreateFile(L"CONIN$", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, nullptr, OPEN_EXISTING, 0, nullptr); SetStdHandle(STD_INPUT_HANDLE, ConIn); } if(!Console.GetMode(Console.GetOutputHandle(), Mode)) { HANDLE ConOut = CreateFile(L"CONOUT$", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, nullptr); SetStdHandle(STD_OUTPUT_HANDLE, ConOut); SetStdHandle(STD_ERROR_HANDLE, ConOut); } } Console.SetControlHandler(CtrlHandler,TRUE); Console.GetMode(Console.GetInputHandle(),InitialConsoleMode); Console.GetTitle(strInitTitle); Console.GetWindowRect(InitWindowRect); Console.GetSize(InitialSize); Console.GetCursorInfo(InitialCursorInfo); // размер клавиатурной очереди = 1024 кода клавиши if (!KeyQueue) KeyQueue=new FarQueue<DWORD>(1024); SetFarConsoleMode(); /* $ 09.04.2002 DJ если размер консольного буфера больше размера окна, выставим их равными */ if (FirstInit) { SMALL_RECT WindowRect; Console.GetWindowRect(WindowRect); GetVideoMode(InitSize); if(Opt.WindowMode) { Console.ResetPosition(); } else { if (WindowRect.Left || WindowRect.Top || WindowRect.Right != InitSize.X-1 || WindowRect.Bottom != InitSize.Y-1) { COORD newSize; newSize.X = WindowRect.Right - WindowRect.Left + 1; newSize.Y = WindowRect.Bottom - WindowRect.Top + 1; Console.SetSize(newSize); GetVideoMode(InitSize); } } if (IsZoomed(Console.GetWindow())) ChangeVideoMode(1); } GetVideoMode(CurSize); ScrBuf.FillBuf(); ConsoleIcons.setFarIcons(); }
void InitConsole(int FirstInit) { InitRecodeOutTable(); if (FirstInit) { CancelIoInProgress = std::make_unique<DECLTYPE(CancelIoInProgress)::element_type>(); CancelIoInProgress->Open(true); DWORD Mode; if(!Global->Console->GetMode(Global->Console->GetInputHandle(), Mode)) { HANDLE ConIn = CreateFile(L"CONIN$", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ, nullptr, OPEN_EXISTING, 0, nullptr); SetStdHandle(STD_INPUT_HANDLE, ConIn); } if(!Global->Console->GetMode(Global->Console->GetOutputHandle(), Mode)) { HANDLE ConOut = CreateFile(L"CONOUT$", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_WRITE, nullptr, OPEN_EXISTING, 0, nullptr); SetStdHandle(STD_OUTPUT_HANDLE, ConOut); SetStdHandle(STD_ERROR_HANDLE, ConOut); } } Global->Console->SetControlHandler(CtrlHandler, true); Global->Console->GetMode(Global->Console->GetInputHandle(),InitialConsoleMode); Global->Console->GetTitle(Global->strInitTitle); Global->Console->GetWindowRect(InitWindowRect); Global->Console->GetSize(InitialSize); Global->Console->GetCursorInfo(InitialCursorInfo); // размер клавиатурной очереди = 1024 кода клавиши if (!KeyQueue) KeyQueue = std::make_unique<DECLTYPE(KeyQueue)::element_type>(); SetFarConsoleMode(); /* $ 09.04.2002 DJ если размер консольного буфера больше размера окна, выставим их равными */ if (FirstInit) { SMALL_RECT WindowRect; Global->Console->GetWindowRect(WindowRect); Global->Console->GetSize(InitSize); if(Global->Opt->WindowMode) { Global->Console->ResetPosition(); } else { if (WindowRect.Left || WindowRect.Top || WindowRect.Right != InitSize.X-1 || WindowRect.Bottom != InitSize.Y-1) { COORD newSize; newSize.X = WindowRect.Right - WindowRect.Left + 1; newSize.Y = WindowRect.Bottom - WindowRect.Top + 1; Global->Console->SetSize(newSize); Global->Console->GetSize(InitSize); } } if (IsZoomed(Global->Console->GetWindow())) ChangeVideoMode(1); } GetVideoMode(CurSize); Global->ScrBuf->FillBuf(); Global->ConsoleIcons->setFarIcons(); }