[DllImport("Kernel32.dll")]
static extern IntPtr CreateConsoleScreenBuffer(
UInt32 dwDesiredAccess,
UInt32 dwShareMode,
IntPtr secutiryAttributes,
UInt32 flags,
[MarshalAs(UnmanagedType.U4)] UInt32 screenBufferData
);
None.
None.
Please add some!
using System.Runtime.InteropServices; // Needed for the DllImport Attribute
namespace Namepace
{
class Class
{
[DllImport("Kernel32.dll")]
private static extern IntPtr CreateConsoleScreenBuffer(
UInt32 dwDesiredAccess,
UInt32 dwShareMode,
IntPtr secutiryAttributes,
UInt32 flags,
[MarshalAs(UnmanagedType.U4)] UInt32 screenBufferData
);
(...)
static void Main(string[] args)
{
IntPtr ptr = CreateConsoleScreenBuffer(
0, // From MSDN Documentation
0x00000001, // From MSDN Documentation
IntPtr.Zero, // Since I did not need to pass it on to a child process, I decided to leave this pointer as null.
1, // Found this value on the Internet. It worked so I left it there.
0 // MSDN documentation says this must be null
);
// Verifying the PInvoke worked.
Int32 err = Marshal.GetLastWin32Error();
if (err != 0)
{
Console.WriteLine("Error: {0}", err);
throw new System.ComponentModel.Win32Exception(err);
}
}
None. Console Managed class does not have buffer manipulation.