static ConsoleHandle()

in wwauth/Google.Solutions.WWAuth/Interop/ConsoleOutput.cs [44:78]


        static ConsoleHandle()
        {
            var stdout = NativeMethods.GetStdHandle(
                NativeMethods.StandardHandle.Output);

            var fileType = NativeMethods.GetFileType(stdout);
            if (fileType == NativeMethods.FileType.Disk ||
                fileType == NativeMethods.FileType.Pipe)
            {
                //
                // STDOUT has been redirected.
                //
                NativeMethods.AttachConsole(NativeMethods.ATTACH_PARENT_PROCESS);

                var safeHandle = new SafeFileHandle(stdout, false);
                Out = new ConsoleHandle()
                {
                    IsRedirected = true,
                    Handle = safeHandle,
                    Writer = new StreamWriter(new FileStream(safeHandle, FileAccess.Write))
                };

            }
            else
            {
                //
                // STDOUT hasn't been redirected, so there's no console
                // to write to.
                //
                Out = new ConsoleHandle()
                {
                    IsRedirected = false,
                };
            }
        }