/*** Autogenerated by WIDL 11.6 from include/windows.ui.composition.interop.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __windows_ui_composition_interop_h__
#define __windows_ui_composition_interop_h__

/* Forward declarations */

#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositorInterop_FWD_DEFINED__
#define ____x_ABI_CWindows_CUI_CComposition_CICompositorInterop_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CUI_CComposition_CICompositorInterop __x_ABI_CWindows_CUI_CComposition_CICompositorInterop;
#ifdef __cplusplus
#define __x_ABI_CWindows_CUI_CComposition_CICompositorInterop ABI::Windows::UI::Composition::ICompositorInterop
namespace ABI {
    namespace Windows {
        namespace UI {
            namespace Composition {
                interface ICompositorInterop;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <windows.ui.composition.h>
#include <sdkddkver.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositorInterop_FWD_DEFINED__
#define ____x_ABI_CWindows_CUI_CComposition_CICompositorInterop_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CUI_CComposition_CICompositorInterop __x_ABI_CWindows_CUI_CComposition_CICompositorInterop;
#ifdef __cplusplus
#define __x_ABI_CWindows_CUI_CComposition_CICompositorInterop ABI::Windows::UI::Composition::ICompositorInterop
namespace ABI {
    namespace Windows {
        namespace UI {
            namespace Composition {
                interface ICompositorInterop;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

/*****************************************************************************
 * ICompositorInterop interface
 */
#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositorInterop_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CUI_CComposition_CICompositorInterop_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CICompositorInterop, 0x25297d5c, 0x3ad4, 0x4c9c, 0xb5,0xcf, 0xe3,0x6a,0x38,0x51,0x23,0x30);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace UI {
            namespace Composition {
                MIDL_INTERFACE("25297d5c-3ad4-4c9c-b5cf-e36a38512330")
                ICompositorInterop : public IUnknown
                {
                    virtual HRESULT STDMETHODCALLTYPE CreateCompositionSurfaceForHandle(
                        HANDLE swapchain,
                        ABI::Windows::UI::Composition::ICompositionSurface **result) = 0;

                    virtual HRESULT STDMETHODCALLTYPE CreateCompositionSurfaceForSwapChain(
                        IUnknown *swapchain,
                        ABI::Windows::UI::Composition::ICompositionSurface **result) = 0;

                    virtual HRESULT STDMETHODCALLTYPE CreateGraphicsDevice(
                        IUnknown *device,
                        ABI::Windows::UI::Composition::ICompositionGraphicsDevice **result) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CComposition_CICompositorInterop, 0x25297d5c, 0x3ad4, 0x4c9c, 0xb5,0xcf, 0xe3,0x6a,0x38,0x51,0x23,0x30)
#endif
#else
typedef struct __x_ABI_CWindows_CUI_CComposition_CICompositorInteropVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CUI_CComposition_CICompositorInterop *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CUI_CComposition_CICompositorInterop *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CUI_CComposition_CICompositorInterop *This);

    /*** ICompositorInterop methods ***/
    HRESULT (STDMETHODCALLTYPE *CreateCompositionSurfaceForHandle)(
        __x_ABI_CWindows_CUI_CComposition_CICompositorInterop *This,
        HANDLE swapchain,
        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface **result);

    HRESULT (STDMETHODCALLTYPE *CreateCompositionSurfaceForSwapChain)(
        __x_ABI_CWindows_CUI_CComposition_CICompositorInterop *This,
        IUnknown *swapchain,
        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface **result);

    HRESULT (STDMETHODCALLTYPE *CreateGraphicsDevice)(
        __x_ABI_CWindows_CUI_CComposition_CICompositorInterop *This,
        IUnknown *device,
        __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice **result);

    END_INTERFACE
} __x_ABI_CWindows_CUI_CComposition_CICompositorInteropVtbl;

interface __x_ABI_CWindows_CUI_CComposition_CICompositorInterop {
    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CICompositorInteropVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_Release(This) (This)->lpVtbl->Release(This)
/*** ICompositorInterop methods ***/
#define __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_CreateCompositionSurfaceForHandle(This,swapchain,result) (This)->lpVtbl->CreateCompositionSurfaceForHandle(This,swapchain,result)
#define __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_CreateCompositionSurfaceForSwapChain(This,swapchain,result) (This)->lpVtbl->CreateCompositionSurfaceForSwapChain(This,swapchain,result)
#define __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_CreateGraphicsDevice(This,device,result) (This)->lpVtbl->CreateGraphicsDevice(This,device,result)
#else
/*** IUnknown methods ***/
static inline HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CICompositorInterop* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_AddRef(__x_ABI_CWindows_CUI_CComposition_CICompositorInterop* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_Release(__x_ABI_CWindows_CUI_CComposition_CICompositorInterop* This) {
    return This->lpVtbl->Release(This);
}
/*** ICompositorInterop methods ***/
static inline HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_CreateCompositionSurfaceForHandle(__x_ABI_CWindows_CUI_CComposition_CICompositorInterop* This,HANDLE swapchain,__x_ABI_CWindows_CUI_CComposition_CICompositionSurface **result) {
    return This->lpVtbl->CreateCompositionSurfaceForHandle(This,swapchain,result);
}
static inline HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_CreateCompositionSurfaceForSwapChain(__x_ABI_CWindows_CUI_CComposition_CICompositorInterop* This,IUnknown *swapchain,__x_ABI_CWindows_CUI_CComposition_CICompositionSurface **result) {
    return This->lpVtbl->CreateCompositionSurfaceForSwapChain(This,swapchain,result);
}
static inline HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_CreateGraphicsDevice(__x_ABI_CWindows_CUI_CComposition_CICompositorInterop* This,IUnknown *device,__x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice **result) {
    return This->lpVtbl->CreateGraphicsDevice(This,device,result);
}
#endif
#ifdef WIDL_using_Windows_UI_Composition
#define IID_ICompositorInterop IID___x_ABI_CWindows_CUI_CComposition_CICompositorInterop
#define ICompositorInteropVtbl __x_ABI_CWindows_CUI_CComposition_CICompositorInteropVtbl
#define ICompositorInterop __x_ABI_CWindows_CUI_CComposition_CICompositorInterop
#define ICompositorInterop_QueryInterface __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_QueryInterface
#define ICompositorInterop_AddRef __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_AddRef
#define ICompositorInterop_Release __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_Release
#define ICompositorInterop_CreateCompositionSurfaceForHandle __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_CreateCompositionSurfaceForHandle
#define ICompositorInterop_CreateCompositionSurfaceForSwapChain __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_CreateCompositionSurfaceForSwapChain
#define ICompositorInterop_CreateGraphicsDevice __x_ABI_CWindows_CUI_CComposition_CICompositorInterop_CreateGraphicsDevice
#endif /* WIDL_using_Windows_UI_Composition */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CUI_CComposition_CICompositorInterop_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __windows_ui_composition_interop_h__ */
