package winapi import ( "unsafe" "golang.org/x/sys/windows" ) const PSEUDOCONSOLE_INHERIT_CURSOR = 0x1 // CreatePseudoConsole creates a windows pseudo console. func CreatePseudoConsole(size windows.Coord, hInput windows.Handle, hOutput windows.Handle, dwFlags uint32, hpcon *windows.Handle) error { // We need this wrapper as the function takes a COORD struct and not a pointer to one, so we need to cast to something beforehand. return createPseudoConsole(*((*uint32)(unsafe.Pointer(&size))), hInput, hOutput, 0, hpcon) } // ResizePseudoConsole resizes the internal buffers of the pseudo console to the width and height specified in `size`. func ResizePseudoConsole(hpcon windows.Handle, size windows.Coord) error { // We need this wrapper as the function takes a COORD struct and not a pointer to one, so we need to cast to something beforehand. return resizePseudoConsole(hpcon, *((*uint32)(unsafe.Pointer(&size)))) } // HRESULT WINAPI CreatePseudoConsole( // _In_ COORD size, // _In_ HANDLE hInput, // _In_ HANDLE hOutput, // _In_ DWORD dwFlags, // _Out_ HPCON* phPC // ); // //sys createPseudoConsole(size uint32, hInput windows.Handle, hOutput windows.Handle, dwFlags uint32, hpcon *windows.Handle) (hr error) = kernel32.CreatePseudoConsole // void WINAPI ClosePseudoConsole( // _In_ HPCON hPC // ); // //sys ClosePseudoConsole(hpc windows.Handle) = kernel32.ClosePseudoConsole // HRESULT WINAPI ResizePseudoConsole( // _In_ HPCON hPC , // _In_ COORD size // ); // //sys resizePseudoConsole(hPc windows.Handle, size uint32) (hr error) = kernel32.ResizePseudoConsole