//  Copyright (c) Microsoft Corporation. All rights reserved.

cpp_quote("#include <winapifamily.h>")

#pragma region Desktop Family
cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")

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

cpp_quote("#if (NTDDI_VERSION >= NTDDI_WIN8)")

    // Interfaces
    [object, uuid(45D64A29-A63E-4CB6-B498-5781D298CB4F)]
    interface ICoreWindowInterop : IUnknown
    {
        [propget] HRESULT WindowHandle([out,retval] HWND *hwnd);
        [propput] HRESULT MessageHandled([in] boolean value);
    }

cpp_quote("#endif // NTDDI_VERSION >= NTDDI_WIN8")

cpp_quote("#if (NTDDI_VERSION >= NTDDI_WINBLUE)")

    // Interfaces
    [object, uuid(40BFE3E3-B75A-4479-AC96-475365749BB8)]
    interface ICoreInputInterop : IUnknown
    {
        // The input parameter should be IDComposition2Visual. Use IUnknown for now.
        // QI for this interface from ICoreInputSourceBase.
        HRESULT SetInputSource([in] IUnknown *value);
        [propput] HRESULT MessageHandled([in] boolean value);
    }

cpp_quote("")
cpp_quote("HRESULT _cdecl CreateControlInput(")
cpp_quote("    _In_ REFIID riid,")
cpp_quote("    _COM_Outptr_ void **ppv);")
cpp_quote("")

cpp_quote("#endif // NTDDI_VERSION >= NTDDI_WINBLUE")

cpp_quote("#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */")
#pragma endregion
