894 {
895 if (width <= 0)
896 {
898 }
899 if (height <= 0)
900 {
902 }
903 global::Interop.Kernel32.CONSOLE_SCREEN_BUFFER_INFO bufferInfo =
GetBufferInfo();
904 bool flag = false;
905 global::Interop.Kernel32.COORD
size =
default(global::Interop.Kernel32.COORD);
906 size.X = bufferInfo.dwSize.X;
907 size.Y = bufferInfo.dwSize.Y;
908 if (bufferInfo.dwSize.X < bufferInfo.srWindow.Left + width)
909 {
910 if (bufferInfo.srWindow.Left >= 32767 - width)
911 {
913 }
914 size.X = (
short)(bufferInfo.srWindow.Left + width);
915 flag = true;
916 }
917 if (bufferInfo.dwSize.Y < bufferInfo.srWindow.Top + height)
918 {
919 if (bufferInfo.srWindow.Top >= 32767 - height)
920 {
922 }
923 size.Y = (
short)(bufferInfo.srWindow.Top + height);
924 flag = true;
925 }
926 if (flag && !global::Interop.Kernel32.SetConsoleScreenBufferSize(
OutputHandle, size))
927 {
929 }
930 global::Interop.Kernel32.SMALL_RECT srWindow = bufferInfo.srWindow;
931 srWindow.Bottom = (
short)(srWindow.Top + height - 1);
932 srWindow.Right = (
short)(srWindow.Left + width - 1);
933 if (!global::Interop.Kernel32.SetConsoleWindowInfo(
OutputHandle, absolute: true, &srWindow))
934 {
936 if (flag)
937 {
938 global::Interop.Kernel32.SetConsoleScreenBufferSize(
OutputHandle, bufferInfo.dwSize);
939 }
940 global::Interop.Kernel32.COORD largestConsoleWindowSize = global::Interop.Kernel32.GetLargestConsoleWindowSize(
OutputHandle);
941 if (width > largestConsoleWindowSize.X)
942 {
944 }
945 if (height > largestConsoleWindowSize.Y)
946 {
948 }
950 }
951 }
static IntPtr OutputHandle
static global::Interop.Kernel32.CONSOLE_SCREEN_BUFFER_INFO GetBufferInfo()
static Exception GetExceptionForWin32Error(int errorCode, string path="")
static int GetLastPInvokeError()
static string ArgumentOutOfRange_NeedPosNum
static string ArgumentOutOfRange_ConsoleWindowSize_Size
static string ArgumentOutOfRange_ConsoleWindowBufferSize
static string Format(string resourceFormat, object p1)