@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: The CreateConsoleScreenBuffer API !!!!C# Signature: [DllImport("Kernel32.dll")] static extern IntPtr CreateConsoleScreenBuffer( UInt32 dwDesiredAccess, UInt32 dwShareMode, IntPtr secutiryAttributes, UInt32 flags, IntPtr screenBufferData ); !!!!User-Defined Types: None. !!!!Notes: The buffer will not be visible by default. You need to mark it as active: - Save the current buffer information so you can restore it when close it your buffer - Call SetConsoleActiveScreenBuffer. !!!!Tips & Tricks: Helpful Links. MSDN Documentation for ""CreateConsoleScreenBuffer"": http://msdn.microsoft.com/en-us/library/windows/desktop/ms686010%28v=vs.85%29.aspx Calling Unmanaged DLL Functions: http://msdn.microsoft.com/en-us/library/26thfadc.aspx Table of Convertions between managed and unmanaged data types: http://msdn.microsoft.com/en-us/library/ac7ay120.aspx !!!!Sample C# 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, IntPtr screenBufferData ); static void Main(string[] args) { /* * Arguments: * 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. */ IntPtr ptr = CreateConsoleScreenBuffer(0, 0x00000001, IntPtr.Zero, 1, IntPtr.Zero); // 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: CreateConsoleScreenBuffer@msdn on MSDN
Edit kernel32.CreateCo...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.