CreateConsoleScreenBuffer (kernel32)
Last changed: -67.160.52.71

.
Summary

C# Signature:

[DllImport("Kernel32.dll")]
static extern IntPtr CreateConsoleScreenBuffer(
     UInt32 dwDesiredAccess,
     UInt32 dwShareMode,
     IntPtr secutiryAttributes,
     UInt32 flags,
     [MarshalAs(UnmanagedType.U4)] UInt32 screenBufferData
     );

User-Defined Types:

None.

Notes:

None.

Tips & Tricks:

Please add some!

Sample Code:

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);
        }
    }

Alternative Managed API:

None. Console Managed class does not have buffer manipulation.

Documentation