packages feed

vty-windows-0.1.0.0: cbits/win_pseudo_console.c

#include <Windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <wchar.h>

int create_pseudo_console(COORD size, HANDLE outputReadHandle, HANDLE inputWriteHandle)
{
    int result = S_OK;

    // Create communication channels

    // - Close these after CreateProcess of child application with pseudoconsole object.
    HANDLE inputReadSide, outputWriteSide;

    if (!CreatePipe(&inputReadSide, &inputWriteHandle, NULL, 0))
    {
        return result;
        // return HRESULT_FROM_WIN32(GetLastError());
    }

    if (!CreatePipe(&outputReadHandle, &outputWriteSide, NULL, 0))
    {
        return result;
        // return HRESULT_FROM_WIN32(GetLastError());
    }

    // TODO: Figure out how to call the CreatePseudoConsole function! Haskell compiler can't find HPCON and 
    // CreatePseudoConsole. Maybe add HPCON and CreatePseudoConsole to the Win32 API?
    // HPCON hPC;
    // result = CreatePseudoConsole(size, inputReadSide, outputWriteSide, 0, &hPC);

    return result;
}