// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

import "oaidl.idl";
import "ocidl.idl";

typedef struct _CONSOLE_PORTABLE_ATTACH_MSG
{
    DWORD IdLowPart;
    LONG IdHighPart;
    ULONG64 Process;
    ULONG64 Object;
    ULONG Function;
    ULONG InputSize;
    ULONG OutputSize;
} CONSOLE_PORTABLE_ATTACH_MSG;

typedef CONSOLE_PORTABLE_ATTACH_MSG* PCONSOLE_PORTABLE_ATTACH_MSG;
typedef const CONSOLE_PORTABLE_ATTACH_MSG* PCCONSOLE_PORTABLE_ATTACH_MSG;

[
    object,
    uuid(2B607BC1-43EB-40C3-95AE-2856ADDB7F23)
] interface IConsoleHandoff : IUnknown
{
    HRESULT EstablishHandoff([in, system_handle(sh_file)] HANDLE server,
                             [in, system_handle(sh_event)] HANDLE inputEvent,
                             [in, ref] PCCONSOLE_PORTABLE_ATTACH_MSG msg);
};

