/*** Autogenerated by WIDL 11.6 from include/windows.graphics.directx.direct3d11.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_graphics_directx_direct3d11_interop_h__
#define __windows_graphics_directx_direct3d11_interop_h__

/* Forward declarations */

#ifndef ____x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_FWD_DEFINED__
#define ____x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_FWD_DEFINED__
typedef interface __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess;
#ifdef __cplusplus
#define __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess Windows::Graphics::DirectX::Direct3D11::IDirect3DDxgiInterfaceAccess
namespace Windows {
    namespace Graphics {
        namespace DirectX {
            namespace Direct3D11 {
                interface IDirect3DDxgiInterfaceAccess;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <dxgi.h>
#include <inspectable.h>
#include <windows.graphics.directx.direct3d11.h>

#ifdef __cplusplus
extern "C" {
#endif

HRESULT CreateDirect3D11DeviceFromDXGIDevice(IDXGIDevice *dxgiDevice,IInspectable **graphicsDevice);

/*****************************************************************************
 * IDirect3DDxgiInterfaceAccess interface
 */
#ifndef ____x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_INTERFACE_DEFINED__
#define ____x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess, 0xa9b3d012, 0x3df2, 0x4ee3, 0xb8,0xd1, 0x86,0x95,0xf4,0x57,0xd3,0xc1);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace Windows {
    namespace Graphics {
        namespace DirectX {
            namespace Direct3D11 {
                MIDL_INTERFACE("a9b3d012-3df2-4ee3-b8d1-8695f457d3c1")
                IDirect3DDxgiInterfaceAccess : public IUnknown
                {
                    virtual HRESULT STDMETHODCALLTYPE GetInterface(
                        REFIID iid,
                        void **object) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess, 0xa9b3d012, 0x3df2, 0x4ee3, 0xb8,0xd1, 0x86,0x95,0xf4,0x57,0xd3,0xc1)
#endif
#else
typedef struct __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccessVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IDirect3DDxgiInterfaceAccess methods ***/
    HRESULT (STDMETHODCALLTYPE *GetInterface)(
        __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess *This,
        REFIID iid,
        void **object);

    END_INTERFACE
} __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccessVtbl;

interface __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess {
    CONST_VTBL __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccessVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_Release(This) (This)->lpVtbl->Release(This)
/*** IDirect3DDxgiInterfaceAccess methods ***/
#define __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_GetInterface(This,iid,object) (This)->lpVtbl->GetInterface(This,iid,object)
#else
/*** IUnknown methods ***/
static inline HRESULT __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_QueryInterface(__x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static inline ULONG __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_AddRef(__x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess* This) {
    return This->lpVtbl->AddRef(This);
}
static inline ULONG __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_Release(__x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess* This) {
    return This->lpVtbl->Release(This);
}
/*** IDirect3DDxgiInterfaceAccess methods ***/
static inline HRESULT __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_GetInterface(__x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess* This,REFIID iid,void **object) {
    return This->lpVtbl->GetInterface(This,iid,object);
}
#endif
#ifdef WIDL_using_Windows_Graphics_DirectX_Direct3D11
#define IID_IDirect3DDxgiInterfaceAccess IID___x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess
#define IDirect3DDxgiInterfaceAccessVtbl __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccessVtbl
#define IDirect3DDxgiInterfaceAccess __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess
#define IDirect3DDxgiInterfaceAccess_QueryInterface __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_QueryInterface
#define IDirect3DDxgiInterfaceAccess_AddRef __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_AddRef
#define IDirect3DDxgiInterfaceAccess_Release __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_Release
#define IDirect3DDxgiInterfaceAccess_GetInterface __x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_GetInterface
#endif /* WIDL_using_Windows_Graphics_DirectX_Direct3D11 */
#endif

#endif

#endif  /* ____x_Windows_CGraphics_CDirectX_CDirect3D11_CIDirect3DDxgiInterfaceAccess_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __windows_graphics_directx_direct3d11_interop_h__ */
