private static bool GetUseFileAPIs(int handleType)
{
switch (handleType)
{
case Interop.Kernel32.HandleTypes.STD_INPUT_HANDLE:
return Console.InputEncoding.CodePage != Encoding.Unicode.CodePage || Console.IsInputRedirected;
case Interop.Kernel32.HandleTypes.STD_OUTPUT_HANDLE:
return Console.OutputEncoding.CodePage != Encoding.Unicode.CodePage || Console.IsOutputRedirected;
case Interop.Kernel32.HandleTypes.STD_ERROR_HANDLE:
return Console.OutputEncoding.CodePage != Encoding.Unicode.CodePage || Console.IsErrorRedirected;
default:
// This can never happen.
Debug.Assert(false, "Unexpected handleType value (" + handleType + ")");
return true;
}
}