/* this ALWAYS GENERATED file contains the definitions for the interfaces */
 
 
 
 
 
 /* File created by MIDL compiler version 7.00.0555 */
 
/* Compiler settings for dxgi.idl:
 
    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 7.00.0555 
 
    protocol : all , ms_ext, c_ext, robust
 
    error checks: allocation ref bounds_check enum stub_data 
 
    VC __declspec() decoration level: 
 
         __declspec(uuid()), __declspec(selectany), __declspec(novtable)
 
         DECLSPEC_UUID(), MIDL_INTERFACE()
 
*/
 
/* @@MIDL_FILE_HEADING(  ) */
 
 
 
#pragma warning( disable: 4049 )  /* more than 64k source lines */
 
 
 
 
 
/* verify that the <rpcndr.h> version is high enough to compile this file*/
 
#ifndef __REQUIRED_RPCNDR_H_VERSION__
 
#define __REQUIRED_RPCNDR_H_VERSION__ 475
 
#endif
 
 
 
/* verify that the <rpcsal.h> version is high enough to compile this file*/
 
#ifndef __REQUIRED_RPCSAL_H_VERSION__
 
#define __REQUIRED_RPCSAL_H_VERSION__ 100
 
#endif
 
 
 
#include "rpc.h"
 
#include "rpcndr.h"
 
 
 
#ifndef __RPCNDR_H_VERSION__
 
#error this stub requires an updated version of <rpcndr.h>
 
#endif // __RPCNDR_H_VERSION__
 
 
 
#ifndef COM_NO_WINDOWS_H
 
#include "windows.h"
 
#include "ole2.h"
 
#endif /*COM_NO_WINDOWS_H*/
 
 
 
#ifndef __dxgi_h__
 
#define __dxgi_h__
 
 
 
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
 
#pragma once
 
#endif
 
 
 
/* Forward Declarations */ 
 
 
 
#ifndef __IDXGIObject_FWD_DEFINED__
 
#define __IDXGIObject_FWD_DEFINED__
 
typedef interface IDXGIObject IDXGIObject;
 
#endif  /* __IDXGIObject_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIDeviceSubObject_FWD_DEFINED__
 
#define __IDXGIDeviceSubObject_FWD_DEFINED__
 
typedef interface IDXGIDeviceSubObject IDXGIDeviceSubObject;
 
#endif  /* __IDXGIDeviceSubObject_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIResource_FWD_DEFINED__
 
#define __IDXGIResource_FWD_DEFINED__
 
typedef interface IDXGIResource IDXGIResource;
 
#endif  /* __IDXGIResource_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIKeyedMutex_FWD_DEFINED__
 
#define __IDXGIKeyedMutex_FWD_DEFINED__
 
typedef interface IDXGIKeyedMutex IDXGIKeyedMutex;
 
#endif  /* __IDXGIKeyedMutex_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGISurface_FWD_DEFINED__
 
#define __IDXGISurface_FWD_DEFINED__
 
typedef interface IDXGISurface IDXGISurface;
 
#endif  /* __IDXGISurface_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGISurface1_FWD_DEFINED__
 
#define __IDXGISurface1_FWD_DEFINED__
 
typedef interface IDXGISurface1 IDXGISurface1;
 
#endif  /* __IDXGISurface1_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIAdapter_FWD_DEFINED__
 
#define __IDXGIAdapter_FWD_DEFINED__
 
typedef interface IDXGIAdapter IDXGIAdapter;
 
#endif  /* __IDXGIAdapter_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIOutput_FWD_DEFINED__
 
#define __IDXGIOutput_FWD_DEFINED__
 
typedef interface IDXGIOutput IDXGIOutput;
 
#endif  /* __IDXGIOutput_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGISwapChain_FWD_DEFINED__
 
#define __IDXGISwapChain_FWD_DEFINED__
 
typedef interface IDXGISwapChain IDXGISwapChain;
 
#endif  /* __IDXGISwapChain_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIFactory_FWD_DEFINED__
 
#define __IDXGIFactory_FWD_DEFINED__
 
typedef interface IDXGIFactory IDXGIFactory;
 
#endif  /* __IDXGIFactory_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIDevice_FWD_DEFINED__
 
#define __IDXGIDevice_FWD_DEFINED__
 
typedef interface IDXGIDevice IDXGIDevice;
 
#endif  /* __IDXGIDevice_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIFactory1_FWD_DEFINED__
 
#define __IDXGIFactory1_FWD_DEFINED__
 
typedef interface IDXGIFactory1 IDXGIFactory1;
 
#endif  /* __IDXGIFactory1_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIAdapter1_FWD_DEFINED__
 
#define __IDXGIAdapter1_FWD_DEFINED__
 
typedef interface IDXGIAdapter1 IDXGIAdapter1;
 
#endif  /* __IDXGIAdapter1_FWD_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIDevice1_FWD_DEFINED__
 
#define __IDXGIDevice1_FWD_DEFINED__
 
typedef interface IDXGIDevice1 IDXGIDevice1;
 
#endif  /* __IDXGIDevice1_FWD_DEFINED__ */
 
 
 
 
 
/* header files for imported files */
 
#include "oaidl.h"
 
#include "ocidl.h"
 
#include "dxgitype.h"
 
 
 
#ifdef __cplusplus
 
extern "C"{
 
#endif 
 
 
 
 
 
/* interface __MIDL_itf_dxgi_0000_0000 */
 
/* [local] */ 
 
 
 
#define DXGI_CPU_ACCESS_NONE    ( 0 )
 
#define DXGI_CPU_ACCESS_DYNAMIC    ( 1 )
 
#define DXGI_CPU_ACCESS_READ_WRITE    ( 2 )
 
#define DXGI_CPU_ACCESS_SCRATCH    ( 3 )
 
#define DXGI_CPU_ACCESS_FIELD        15
 
#define DXGI_USAGE_SHADER_INPUT             ( 1L << (0 + 4) )
 
#define DXGI_USAGE_RENDER_TARGET_OUTPUT     ( 1L << (1 + 4) )
 
#define DXGI_USAGE_BACK_BUFFER              ( 1L << (2 + 4) )
 
#define DXGI_USAGE_SHARED                   ( 1L << (3 + 4) )
 
#define DXGI_USAGE_READ_ONLY                ( 1L << (4 + 4) )
 
#define DXGI_USAGE_DISCARD_ON_PRESENT       ( 1L << (5 + 4) )
 
#define DXGI_USAGE_UNORDERED_ACCESS         ( 1L << (6 + 4) )
 
typedef UINT DXGI_USAGE;
 
 
 
typedef struct DXGI_FRAME_STATISTICS
 
    {
 
    UINT PresentCount;
 
    UINT PresentRefreshCount;
 
    UINT SyncRefreshCount;
 
    LARGE_INTEGER SyncQPCTime;
 
    LARGE_INTEGER SyncGPUTime;
 
    }   DXGI_FRAME_STATISTICS;
 
 
 
typedef struct DXGI_MAPPED_RECT
 
    {
 
    INT Pitch;
 
    BYTE *pBits;
 
    }   DXGI_MAPPED_RECT;
 
 
 
#ifdef __midl
 
typedef struct _LUID
 
    {
 
    DWORD LowPart;
 
    LONG HighPart;
 
    }   LUID;
 
 
 
typedef struct _LUID *PLUID;
 
 
 
#endif
 
typedef struct DXGI_ADAPTER_DESC
 
    {
 
    WCHAR Description[ 128 ];
 
    UINT VendorId;
 
    UINT DeviceId;
 
    UINT SubSysId;
 
    UINT Revision;
 
    SIZE_T DedicatedVideoMemory;
 
    SIZE_T DedicatedSystemMemory;
 
    SIZE_T SharedSystemMemory;
 
    LUID AdapterLuid;
 
    }   DXGI_ADAPTER_DESC;
 
 
 
#if !defined(HMONITOR_DECLARED) && !defined(HMONITOR) && (WINVER < 0x0500)
 
#define HMONITOR_DECLARED
 
#if 0
 
typedef HANDLE HMONITOR;
 
 
 
#endif
 
DECLARE_HANDLE(HMONITOR);
 
#endif
 
typedef struct DXGI_OUTPUT_DESC
 
    {
 
    WCHAR DeviceName[ 32 ];
 
    RECT DesktopCoordinates;
 
    BOOL AttachedToDesktop;
 
    DXGI_MODE_ROTATION Rotation;
 
    HMONITOR Monitor;
 
    }   DXGI_OUTPUT_DESC;
 
 
 
typedef struct DXGI_SHARED_RESOURCE
 
    {
 
    HANDLE Handle;
 
    }   DXGI_SHARED_RESOURCE;
 
 
 
#define DXGI_RESOURCE_PRIORITY_MINIMUM  ( 0x28000000 )
 
 
 
#define DXGI_RESOURCE_PRIORITY_LOW      ( 0x50000000 )
 
 
 
#define DXGI_RESOURCE_PRIORITY_NORMAL   ( 0x78000000 )
 
 
 
#define DXGI_RESOURCE_PRIORITY_HIGH     ( 0xa0000000 )
 
 
 
#define DXGI_RESOURCE_PRIORITY_MAXIMUM  ( 0xc8000000 )
 
 
 
typedef 
 
enum DXGI_RESIDENCY
 
    {   DXGI_RESIDENCY_FULLY_RESIDENT   = 1,
 
        DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY        = 2,
 
        DXGI_RESIDENCY_EVICTED_TO_DISK  = 3
 
    }   DXGI_RESIDENCY;
 
 
 
typedef struct DXGI_SURFACE_DESC
 
    {
 
    UINT Width;
 
    UINT Height;
 
    DXGI_FORMAT Format;
 
    DXGI_SAMPLE_DESC SampleDesc;
 
    }   DXGI_SURFACE_DESC;
 
 
 
typedef 
 
enum DXGI_SWAP_EFFECT
 
    {   DXGI_SWAP_EFFECT_DISCARD        = 0,
 
        DXGI_SWAP_EFFECT_SEQUENTIAL     = 1
 
    }   DXGI_SWAP_EFFECT;
 
 
 
typedef 
 
enum DXGI_SWAP_CHAIN_FLAG
 
    {   DXGI_SWAP_CHAIN_FLAG_NONPREROTATED      = 1,
 
        DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH  = 2,
 
        DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE     = 4
 
    }   DXGI_SWAP_CHAIN_FLAG;
 
 
 
typedef struct DXGI_SWAP_CHAIN_DESC
 
    {
 
    DXGI_MODE_DESC BufferDesc;
 
    DXGI_SAMPLE_DESC SampleDesc;
 
    DXGI_USAGE BufferUsage;
 
    UINT BufferCount;
 
    HWND OutputWindow;
 
    BOOL Windowed;
 
    DXGI_SWAP_EFFECT SwapEffect;
 
    UINT Flags;
 
    }   DXGI_SWAP_CHAIN_DESC;
 
 
 
 
 
 
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_c_ifspec;
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_s_ifspec;
 
 
 
#ifndef __IDXGIObject_INTERFACE_DEFINED__
 
#define __IDXGIObject_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIObject */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIObject;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("aec22fb8-76f3-4639-9be0-28eb43a67a2e")
 
    IDXGIObject : public IUnknown
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE SetPrivateData( 
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface( 
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetPrivateData( 
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetParent( 
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIObjectVtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIObject * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIObject * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIObject * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIObject * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIObject * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIObject * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIObject * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        END_INTERFACE
 
    } IDXGIObjectVtbl;
 
 
 
    interface IDXGIObject
 
    {
 
        CONST_VTBL struct IDXGIObjectVtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIObject_QueryInterface(This,riid,ppvObject) \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIObject_AddRef(This)        \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIObject_Release(This)       \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIObject_SetPrivateData(This,Name,DataSize,pData)    \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIObject_SetPrivateDataInterface(This,Name,pUnknown) \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIObject_GetPrivateData(This,Name,pDataSize,pData)   \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIObject_GetParent(This,riid,ppParent)       \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIObject_INTERFACE_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIDeviceSubObject_INTERFACE_DEFINED__
 
#define __IDXGIDeviceSubObject_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIDeviceSubObject */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIDeviceSubObject;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("3d3e0379-f9de-4d58-bb6c-18d62992f1a6")
 
    IDXGIDeviceSubObject : public IDXGIObject
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE GetDevice( 
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppDevice) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIDeviceSubObjectVtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIDeviceSubObject * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIDeviceSubObject * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIDeviceSubObject * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIDeviceSubObject * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIDeviceSubObject * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIDeviceSubObject * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIDeviceSubObject * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDevice )( 
 
            IDXGIDeviceSubObject * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppDevice);
 
        
 
        END_INTERFACE
 
    } IDXGIDeviceSubObjectVtbl;
 
 
 
    interface IDXGIDeviceSubObject
 
    {
 
        CONST_VTBL struct IDXGIDeviceSubObjectVtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIDeviceSubObject_QueryInterface(This,riid,ppvObject)        \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIDeviceSubObject_AddRef(This)       \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIDeviceSubObject_Release(This)      \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIDeviceSubObject_SetPrivateData(This,Name,DataSize,pData)   \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIDeviceSubObject_SetPrivateDataInterface(This,Name,pUnknown)        \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIDeviceSubObject_GetPrivateData(This,Name,pDataSize,pData)  \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIDeviceSubObject_GetParent(This,riid,ppParent)      \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGIDeviceSubObject_GetDevice(This,riid,ppDevice)      \
 
    ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIDeviceSubObject_INTERFACE_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIResource_INTERFACE_DEFINED__
 
#define __IDXGIResource_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIResource */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIResource;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("035f3ab4-482e-4e50-b41f-8a7f8bd8960b")
 
    IDXGIResource : public IDXGIDeviceSubObject
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE GetSharedHandle( 
 
            /* [out] */ HANDLE *pSharedHandle) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetUsage( 
 
            /* [out] */ DXGI_USAGE *pUsage) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE SetEvictionPriority( 
 
            /* [in] */ UINT EvictionPriority) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetEvictionPriority( 
 
            /* [retval][out] */ UINT *pEvictionPriority) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIResourceVtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIResource * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIResource * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIResource * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIResource * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIResource * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIResource * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIResource * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDevice )( 
 
            IDXGIResource * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppDevice);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetSharedHandle )( 
 
            IDXGIResource * This,
 
            /* [out] */ HANDLE *pSharedHandle);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetUsage )( 
 
            IDXGIResource * This,
 
            /* [out] */ DXGI_USAGE *pUsage);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetEvictionPriority )( 
 
            IDXGIResource * This,
 
            /* [in] */ UINT EvictionPriority);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetEvictionPriority )( 
 
            IDXGIResource * This,
 
            /* [retval][out] */ UINT *pEvictionPriority);
 
        
 
        END_INTERFACE
 
    } IDXGIResourceVtbl;
 
 
 
    interface IDXGIResource
 
    {
 
        CONST_VTBL struct IDXGIResourceVtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIResource_QueryInterface(This,riid,ppvObject)       \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIResource_AddRef(This)      \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIResource_Release(This)     \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIResource_SetPrivateData(This,Name,DataSize,pData)  \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIResource_SetPrivateDataInterface(This,Name,pUnknown)       \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIResource_GetPrivateData(This,Name,pDataSize,pData) \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIResource_GetParent(This,riid,ppParent)     \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGIResource_GetDevice(This,riid,ppDevice)     \
 
    ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) 
 
 
 
 
 
#define IDXGIResource_GetSharedHandle(This,pSharedHandle)       \
 
    ( (This)->lpVtbl -> GetSharedHandle(This,pSharedHandle) ) 
 
 
 
#define IDXGIResource_GetUsage(This,pUsage)     \
 
    ( (This)->lpVtbl -> GetUsage(This,pUsage) ) 
 
 
 
#define IDXGIResource_SetEvictionPriority(This,EvictionPriority)        \
 
    ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) ) 
 
 
 
#define IDXGIResource_GetEvictionPriority(This,pEvictionPriority)       \
 
    ( (This)->lpVtbl -> GetEvictionPriority(This,pEvictionPriority) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIResource_INTERFACE_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIKeyedMutex_INTERFACE_DEFINED__
 
#define __IDXGIKeyedMutex_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIKeyedMutex */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIKeyedMutex;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("9d8e1289-d7b3-465f-8126-250e349af85d")
 
    IDXGIKeyedMutex : public IDXGIDeviceSubObject
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE AcquireSync( 
 
            /* [in] */ UINT64 Key,
 
            /* [in] */ DWORD dwMilliseconds) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE ReleaseSync( 
 
            /* [in] */ UINT64 Key) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIKeyedMutexVtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIKeyedMutex * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIKeyedMutex * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIKeyedMutex * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIKeyedMutex * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIKeyedMutex * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIKeyedMutex * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIKeyedMutex * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDevice )( 
 
            IDXGIKeyedMutex * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppDevice);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *AcquireSync )( 
 
            IDXGIKeyedMutex * This,
 
            /* [in] */ UINT64 Key,
 
            /* [in] */ DWORD dwMilliseconds);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *ReleaseSync )( 
 
            IDXGIKeyedMutex * This,
 
            /* [in] */ UINT64 Key);
 
        
 
        END_INTERFACE
 
    } IDXGIKeyedMutexVtbl;
 
 
 
    interface IDXGIKeyedMutex
 
    {
 
        CONST_VTBL struct IDXGIKeyedMutexVtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIKeyedMutex_QueryInterface(This,riid,ppvObject)     \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIKeyedMutex_AddRef(This)    \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIKeyedMutex_Release(This)   \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIKeyedMutex_SetPrivateData(This,Name,DataSize,pData)        \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIKeyedMutex_SetPrivateDataInterface(This,Name,pUnknown)     \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIKeyedMutex_GetPrivateData(This,Name,pDataSize,pData)       \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIKeyedMutex_GetParent(This,riid,ppParent)   \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGIKeyedMutex_GetDevice(This,riid,ppDevice)   \
 
    ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) 
 
 
 
 
 
#define IDXGIKeyedMutex_AcquireSync(This,Key,dwMilliseconds)    \
 
    ( (This)->lpVtbl -> AcquireSync(This,Key,dwMilliseconds) ) 
 
 
 
#define IDXGIKeyedMutex_ReleaseSync(This,Key)   \
 
    ( (This)->lpVtbl -> ReleaseSync(This,Key) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIKeyedMutex_INTERFACE_DEFINED__ */
 
 
 
 
 
/* interface __MIDL_itf_dxgi_0000_0004 */
 
/* [local] */ 
 
 
 
#define DXGI_MAP_READ   ( 1UL )
 
 
 
#define DXGI_MAP_WRITE  ( 2UL )
 
 
 
#define DXGI_MAP_DISCARD        ( 4UL )
 
 
 
 
 
 
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_c_ifspec;
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_s_ifspec;
 
 
 
#ifndef __IDXGISurface_INTERFACE_DEFINED__
 
#define __IDXGISurface_INTERFACE_DEFINED__
 
 
 
/* interface IDXGISurface */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGISurface;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("cafcb56c-6ac3-4889-bf47-9e23bbd260ec")
 
    IDXGISurface : public IDXGIDeviceSubObject
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE GetDesc( 
 
            /* [out] */ DXGI_SURFACE_DESC *pDesc) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE Map( 
 
            /* [out] */ DXGI_MAPPED_RECT *pLockedRect,
 
            /* [in] */ UINT MapFlags) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE Unmap( void) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGISurfaceVtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGISurface * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGISurface * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGISurface * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGISurface * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGISurface * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGISurface * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGISurface * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDevice )( 
 
            IDXGISurface * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppDevice);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
 
            IDXGISurface * This,
 
            /* [out] */ DXGI_SURFACE_DESC *pDesc);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *Map )( 
 
            IDXGISurface * This,
 
            /* [out] */ DXGI_MAPPED_RECT *pLockedRect,
 
            /* [in] */ UINT MapFlags);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *Unmap )( 
 
            IDXGISurface * This);
 
        
 
        END_INTERFACE
 
    } IDXGISurfaceVtbl;
 
 
 
    interface IDXGISurface
 
    {
 
        CONST_VTBL struct IDXGISurfaceVtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGISurface_QueryInterface(This,riid,ppvObject)        \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGISurface_AddRef(This)       \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGISurface_Release(This)      \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGISurface_SetPrivateData(This,Name,DataSize,pData)   \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGISurface_SetPrivateDataInterface(This,Name,pUnknown)        \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGISurface_GetPrivateData(This,Name,pDataSize,pData)  \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGISurface_GetParent(This,riid,ppParent)      \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGISurface_GetDevice(This,riid,ppDevice)      \
 
    ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) 
 
 
 
 
 
#define IDXGISurface_GetDesc(This,pDesc)        \
 
    ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 
 
 
 
#define IDXGISurface_Map(This,pLockedRect,MapFlags)     \
 
    ( (This)->lpVtbl -> Map(This,pLockedRect,MapFlags) ) 
 
 
 
#define IDXGISurface_Unmap(This)        \
 
    ( (This)->lpVtbl -> Unmap(This) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGISurface_INTERFACE_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGISurface1_INTERFACE_DEFINED__
 
#define __IDXGISurface1_INTERFACE_DEFINED__
 
 
 
/* interface IDXGISurface1 */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGISurface1;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("4AE63092-6327-4c1b-80AE-BFE12EA32B86")
 
    IDXGISurface1 : public IDXGISurface
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE GetDC( 
 
            /* [in] */ BOOL Discard,
 
            /* [out] */ HDC *phdc) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE ReleaseDC( 
 
            /* [in] */ RECT *pDirtyRect) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGISurface1Vtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGISurface1 * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGISurface1 * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGISurface1 * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGISurface1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGISurface1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGISurface1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGISurface1 * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDevice )( 
 
            IDXGISurface1 * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppDevice);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
 
            IDXGISurface1 * This,
 
            /* [out] */ DXGI_SURFACE_DESC *pDesc);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *Map )( 
 
            IDXGISurface1 * This,
 
            /* [out] */ DXGI_MAPPED_RECT *pLockedRect,
 
            /* [in] */ UINT MapFlags);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *Unmap )( 
 
            IDXGISurface1 * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDC )( 
 
            IDXGISurface1 * This,
 
            /* [in] */ BOOL Discard,
 
            /* [out] */ HDC *phdc);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *ReleaseDC )( 
 
            IDXGISurface1 * This,
 
            /* [in] */ RECT *pDirtyRect);
 
        
 
        END_INTERFACE
 
    } IDXGISurface1Vtbl;
 
 
 
    interface IDXGISurface1
 
    {
 
        CONST_VTBL struct IDXGISurface1Vtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGISurface1_QueryInterface(This,riid,ppvObject)       \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGISurface1_AddRef(This)      \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGISurface1_Release(This)     \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGISurface1_SetPrivateData(This,Name,DataSize,pData)  \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGISurface1_SetPrivateDataInterface(This,Name,pUnknown)       \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGISurface1_GetPrivateData(This,Name,pDataSize,pData) \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGISurface1_GetParent(This,riid,ppParent)     \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGISurface1_GetDevice(This,riid,ppDevice)     \
 
    ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) 
 
 
 
 
 
#define IDXGISurface1_GetDesc(This,pDesc)       \
 
    ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 
 
 
 
#define IDXGISurface1_Map(This,pLockedRect,MapFlags)    \
 
    ( (This)->lpVtbl -> Map(This,pLockedRect,MapFlags) ) 
 
 
 
#define IDXGISurface1_Unmap(This)       \
 
    ( (This)->lpVtbl -> Unmap(This) ) 
 
 
 
 
 
#define IDXGISurface1_GetDC(This,Discard,phdc)  \
 
    ( (This)->lpVtbl -> GetDC(This,Discard,phdc) ) 
 
 
 
#define IDXGISurface1_ReleaseDC(This,pDirtyRect)        \
 
    ( (This)->lpVtbl -> ReleaseDC(This,pDirtyRect) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGISurface1_INTERFACE_DEFINED__ */
 
 
 
 
 
/* interface __MIDL_itf_dxgi_0000_0006 */
 
/* [local] */ 
 
 
 
 
 
 
 
 
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_c_ifspec;
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_s_ifspec;
 
 
 
#ifndef __IDXGIAdapter_INTERFACE_DEFINED__
 
#define __IDXGIAdapter_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIAdapter */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIAdapter;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("2411e7e1-12ac-4ccf-bd14-9798e8534dc0")
 
    IDXGIAdapter : public IDXGIObject
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE EnumOutputs( 
 
            /* [in] */ UINT Output,
 
            /* [out][in] */ IDXGIOutput **ppOutput) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetDesc( 
 
            /* [out] */ DXGI_ADAPTER_DESC *pDesc) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE CheckInterfaceSupport( 
 
            /* [in] */ REFGUID InterfaceName,
 
            /* [out] */ LARGE_INTEGER *pUMDVersion) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIAdapterVtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIAdapter * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIAdapter * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIAdapter * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIAdapter * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIAdapter * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIAdapter * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIAdapter * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *EnumOutputs )( 
 
            IDXGIAdapter * This,
 
            /* [in] */ UINT Output,
 
            /* [out][in] */ IDXGIOutput **ppOutput);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
 
            IDXGIAdapter * This,
 
            /* [out] */ DXGI_ADAPTER_DESC *pDesc);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )( 
 
            IDXGIAdapter * This,
 
            /* [in] */ REFGUID InterfaceName,
 
            /* [out] */ LARGE_INTEGER *pUMDVersion);
 
        
 
        END_INTERFACE
 
    } IDXGIAdapterVtbl;
 
 
 
    interface IDXGIAdapter
 
    {
 
        CONST_VTBL struct IDXGIAdapterVtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIAdapter_QueryInterface(This,riid,ppvObject)        \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIAdapter_AddRef(This)       \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIAdapter_Release(This)      \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIAdapter_SetPrivateData(This,Name,DataSize,pData)   \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIAdapter_SetPrivateDataInterface(This,Name,pUnknown)        \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIAdapter_GetPrivateData(This,Name,pDataSize,pData)  \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIAdapter_GetParent(This,riid,ppParent)      \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGIAdapter_EnumOutputs(This,Output,ppOutput)  \
 
    ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) ) 
 
 
 
#define IDXGIAdapter_GetDesc(This,pDesc)        \
 
    ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 
 
 
 
#define IDXGIAdapter_CheckInterfaceSupport(This,InterfaceName,pUMDVersion)      \
 
    ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIAdapter_INTERFACE_DEFINED__ */
 
 
 
 
 
/* interface __MIDL_itf_dxgi_0000_0007 */
 
/* [local] */ 
 
 
 
#define DXGI_ENUM_MODES_INTERLACED      ( 1UL )
 
 
 
#define DXGI_ENUM_MODES_SCALING ( 2UL )
 
 
 
 
 
 
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_c_ifspec;
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_s_ifspec;
 
 
 
#ifndef __IDXGIOutput_INTERFACE_DEFINED__
 
#define __IDXGIOutput_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIOutput */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIOutput;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("ae02eedb-c735-4690-8d52-5a8dc20213aa")
 
    IDXGIOutput : public IDXGIObject
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE GetDesc( 
 
            /* [out] */ DXGI_OUTPUT_DESC *pDesc) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList( 
 
            /* [in] */ DXGI_FORMAT EnumFormat,
 
            /* [in] */ UINT Flags,
 
            /* [out][in] */ UINT *pNumModes,
 
            /* [out] */ DXGI_MODE_DESC *pDesc) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode( 
 
            /* [in] */ const DXGI_MODE_DESC *pModeToMatch,
 
            /* [out] */ DXGI_MODE_DESC *pClosestMatch,
 
            /* [in] */ IUnknown *pConcernedDevice) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE WaitForVBlank( void) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE TakeOwnership( 
 
            /* [in] */ IUnknown *pDevice,
 
            BOOL Exclusive) = 0;
 
        
 
        virtual void STDMETHODCALLTYPE ReleaseOwnership( void) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetGammaControlCapabilities( 
 
            /* [out] */ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE SetGammaControl( 
 
            /* [in] */ const DXGI_GAMMA_CONTROL *pArray) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetGammaControl( 
 
            /* [out] */ DXGI_GAMMA_CONTROL *pArray) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE SetDisplaySurface( 
 
            /* [in] */ IDXGISurface *pScanoutSurface) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData( 
 
            /* [in] */ IDXGISurface *pDestination) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics( 
 
            /* [out] */ DXGI_FRAME_STATISTICS *pStats) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIOutputVtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIOutput * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIOutput * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIOutput * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIOutput * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIOutput * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIOutput * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIOutput * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
 
            IDXGIOutput * This,
 
            /* [out] */ DXGI_OUTPUT_DESC *pDesc);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )( 
 
            IDXGIOutput * This,
 
            /* [in] */ DXGI_FORMAT EnumFormat,
 
            /* [in] */ UINT Flags,
 
            /* [out][in] */ UINT *pNumModes,
 
            /* [out] */ DXGI_MODE_DESC *pDesc);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode )( 
 
            IDXGIOutput * This,
 
            /* [in] */ const DXGI_MODE_DESC *pModeToMatch,
 
            /* [out] */ DXGI_MODE_DESC *pClosestMatch,
 
            /* [in] */ IUnknown *pConcernedDevice);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *WaitForVBlank )( 
 
            IDXGIOutput * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *TakeOwnership )( 
 
            IDXGIOutput * This,
 
            /* [in] */ IUnknown *pDevice,
 
            BOOL Exclusive);
 
        
 
        void ( STDMETHODCALLTYPE *ReleaseOwnership )( 
 
            IDXGIOutput * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )( 
 
            IDXGIOutput * This,
 
            /* [out] */ DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetGammaControl )( 
 
            IDXGIOutput * This,
 
            /* [in] */ const DXGI_GAMMA_CONTROL *pArray);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetGammaControl )( 
 
            IDXGIOutput * This,
 
            /* [out] */ DXGI_GAMMA_CONTROL *pArray);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )( 
 
            IDXGIOutput * This,
 
            /* [in] */ IDXGISurface *pScanoutSurface);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )( 
 
            IDXGIOutput * This,
 
            /* [in] */ IDXGISurface *pDestination);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( 
 
            IDXGIOutput * This,
 
            /* [out] */ DXGI_FRAME_STATISTICS *pStats);
 
        
 
        END_INTERFACE
 
    } IDXGIOutputVtbl;
 
 
 
    interface IDXGIOutput
 
    {
 
        CONST_VTBL struct IDXGIOutputVtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIOutput_QueryInterface(This,riid,ppvObject) \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIOutput_AddRef(This)        \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIOutput_Release(This)       \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIOutput_SetPrivateData(This,Name,DataSize,pData)    \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIOutput_SetPrivateDataInterface(This,Name,pUnknown) \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIOutput_GetPrivateData(This,Name,pDataSize,pData)   \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIOutput_GetParent(This,riid,ppParent)       \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGIOutput_GetDesc(This,pDesc) \
 
    ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 
 
 
 
#define IDXGIOutput_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc)   \
 
    ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) ) 
 
 
 
#define IDXGIOutput_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice)   \
 
    ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) ) 
 
 
 
#define IDXGIOutput_WaitForVBlank(This) \
 
    ( (This)->lpVtbl -> WaitForVBlank(This) ) 
 
 
 
#define IDXGIOutput_TakeOwnership(This,pDevice,Exclusive)       \
 
    ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) ) 
 
 
 
#define IDXGIOutput_ReleaseOwnership(This)      \
 
    ( (This)->lpVtbl -> ReleaseOwnership(This) ) 
 
 
 
#define IDXGIOutput_GetGammaControlCapabilities(This,pGammaCaps)        \
 
    ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) ) 
 
 
 
#define IDXGIOutput_SetGammaControl(This,pArray)        \
 
    ( (This)->lpVtbl -> SetGammaControl(This,pArray) ) 
 
 
 
#define IDXGIOutput_GetGammaControl(This,pArray)        \
 
    ( (This)->lpVtbl -> GetGammaControl(This,pArray) ) 
 
 
 
#define IDXGIOutput_SetDisplaySurface(This,pScanoutSurface)     \
 
    ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) ) 
 
 
 
#define IDXGIOutput_GetDisplaySurfaceData(This,pDestination)    \
 
    ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) ) 
 
 
 
#define IDXGIOutput_GetFrameStatistics(This,pStats)     \
 
    ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIOutput_INTERFACE_DEFINED__ */
 
 
 
 
 
/* interface __MIDL_itf_dxgi_0000_0008 */
 
/* [local] */ 
 
 
 
#define DXGI_MAX_SWAP_CHAIN_BUFFERS        ( 16 )
 
#define DXGI_PRESENT_TEST               0x00000001UL
 
#define DXGI_PRESENT_DO_NOT_SEQUENCE    0x00000002UL
 
#define DXGI_PRESENT_RESTART            0x00000004UL
 
 
 
 
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_c_ifspec;
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_s_ifspec;
 
 
 
#ifndef __IDXGISwapChain_INTERFACE_DEFINED__
 
#define __IDXGISwapChain_INTERFACE_DEFINED__
 
 
 
/* interface IDXGISwapChain */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGISwapChain;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("310d36a0-d2e7-4c0a-aa04-6a9d23b8886a")
 
    IDXGISwapChain : public IDXGIDeviceSubObject
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE Present( 
 
            /* [in] */ UINT SyncInterval,
 
            /* [in] */ UINT Flags) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetBuffer( 
 
            /* [in] */ UINT Buffer,
 
            /* [in] */ REFIID riid,
 
            /* [out][in] */ void **ppSurface) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE SetFullscreenState( 
 
            /* [in] */ BOOL Fullscreen,
 
            /* [in] */ IDXGIOutput *pTarget) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetFullscreenState( 
 
            /* [out] */ BOOL *pFullscreen,
 
            /* [out] */ IDXGIOutput **ppTarget) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetDesc( 
 
            /* [out] */ DXGI_SWAP_CHAIN_DESC *pDesc) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE ResizeBuffers( 
 
            /* [in] */ UINT BufferCount,
 
            /* [in] */ UINT Width,
 
            /* [in] */ UINT Height,
 
            /* [in] */ DXGI_FORMAT NewFormat,
 
            /* [in] */ UINT SwapChainFlags) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE ResizeTarget( 
 
            /* [in] */ const DXGI_MODE_DESC *pNewTargetParameters) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetContainingOutput( 
 
            IDXGIOutput **ppOutput) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics( 
 
            /* [out] */ DXGI_FRAME_STATISTICS *pStats) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetLastPresentCount( 
 
            /* [out] */ UINT *pLastPresentCount) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGISwapChainVtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGISwapChain * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGISwapChain * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDevice )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppDevice);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *Present )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ UINT SyncInterval,
 
            /* [in] */ UINT Flags);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetBuffer )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ UINT Buffer,
 
            /* [in] */ REFIID riid,
 
            /* [out][in] */ void **ppSurface);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetFullscreenState )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ BOOL Fullscreen,
 
            /* [in] */ IDXGIOutput *pTarget);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetFullscreenState )( 
 
            IDXGISwapChain * This,
 
            /* [out] */ BOOL *pFullscreen,
 
            /* [out] */ IDXGIOutput **ppTarget);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
 
            IDXGISwapChain * This,
 
            /* [out] */ DXGI_SWAP_CHAIN_DESC *pDesc);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *ResizeBuffers )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ UINT BufferCount,
 
            /* [in] */ UINT Width,
 
            /* [in] */ UINT Height,
 
            /* [in] */ DXGI_FORMAT NewFormat,
 
            /* [in] */ UINT SwapChainFlags);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *ResizeTarget )( 
 
            IDXGISwapChain * This,
 
            /* [in] */ const DXGI_MODE_DESC *pNewTargetParameters);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetContainingOutput )( 
 
            IDXGISwapChain * This,
 
            IDXGIOutput **ppOutput);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )( 
 
            IDXGISwapChain * This,
 
            /* [out] */ DXGI_FRAME_STATISTICS *pStats);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetLastPresentCount )( 
 
            IDXGISwapChain * This,
 
            /* [out] */ UINT *pLastPresentCount);
 
        
 
        END_INTERFACE
 
    } IDXGISwapChainVtbl;
 
 
 
    interface IDXGISwapChain
 
    {
 
        CONST_VTBL struct IDXGISwapChainVtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGISwapChain_QueryInterface(This,riid,ppvObject)      \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGISwapChain_AddRef(This)     \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGISwapChain_Release(This)    \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGISwapChain_SetPrivateData(This,Name,DataSize,pData) \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGISwapChain_SetPrivateDataInterface(This,Name,pUnknown)      \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGISwapChain_GetPrivateData(This,Name,pDataSize,pData)        \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGISwapChain_GetParent(This,riid,ppParent)    \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGISwapChain_GetDevice(This,riid,ppDevice)    \
 
    ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) ) 
 
 
 
 
 
#define IDXGISwapChain_Present(This,SyncInterval,Flags) \
 
    ( (This)->lpVtbl -> Present(This,SyncInterval,Flags) ) 
 
 
 
#define IDXGISwapChain_GetBuffer(This,Buffer,riid,ppSurface)    \
 
    ( (This)->lpVtbl -> GetBuffer(This,Buffer,riid,ppSurface) ) 
 
 
 
#define IDXGISwapChain_SetFullscreenState(This,Fullscreen,pTarget)      \
 
    ( (This)->lpVtbl -> SetFullscreenState(This,Fullscreen,pTarget) ) 
 
 
 
#define IDXGISwapChain_GetFullscreenState(This,pFullscreen,ppTarget)    \
 
    ( (This)->lpVtbl -> GetFullscreenState(This,pFullscreen,ppTarget) ) 
 
 
 
#define IDXGISwapChain_GetDesc(This,pDesc)      \
 
    ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 
 
 
 
#define IDXGISwapChain_ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags)    \
 
    ( (This)->lpVtbl -> ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) ) 
 
 
 
#define IDXGISwapChain_ResizeTarget(This,pNewTargetParameters)  \
 
    ( (This)->lpVtbl -> ResizeTarget(This,pNewTargetParameters) ) 
 
 
 
#define IDXGISwapChain_GetContainingOutput(This,ppOutput)       \
 
    ( (This)->lpVtbl -> GetContainingOutput(This,ppOutput) ) 
 
 
 
#define IDXGISwapChain_GetFrameStatistics(This,pStats)  \
 
    ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) ) 
 
 
 
#define IDXGISwapChain_GetLastPresentCount(This,pLastPresentCount)      \
 
    ( (This)->lpVtbl -> GetLastPresentCount(This,pLastPresentCount) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGISwapChain_INTERFACE_DEFINED__ */
 
 
 
 
 
/* interface __MIDL_itf_dxgi_0000_0009 */
 
/* [local] */ 
 
 
 
#define DXGI_MWA_NO_WINDOW_CHANGES      ( 1 << 0 )
 
#define DXGI_MWA_NO_ALT_ENTER           ( 1 << 1 )
 
#define DXGI_MWA_NO_PRINT_SCREEN        ( 1 << 2 )
 
#define DXGI_MWA_VALID                  ( 0x7 )
 
 
 
 
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_c_ifspec;
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_s_ifspec;
 
 
 
#ifndef __IDXGIFactory_INTERFACE_DEFINED__
 
#define __IDXGIFactory_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIFactory */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIFactory;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("7b7166ec-21c7-44ae-b21a-c9ae321ae369")
 
    IDXGIFactory : public IDXGIObject
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE EnumAdapters( 
 
            /* [in] */ UINT Adapter,
 
            /* [out] */ IDXGIAdapter **ppAdapter) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE MakeWindowAssociation( 
 
            HWND WindowHandle,
 
            UINT Flags) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetWindowAssociation( 
 
            HWND *pWindowHandle) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE CreateSwapChain( 
 
            IUnknown *pDevice,
 
            DXGI_SWAP_CHAIN_DESC *pDesc,
 
            IDXGISwapChain **ppSwapChain) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE CreateSoftwareAdapter( 
 
            /* [in] */ HMODULE Module,
 
            /* [out] */ IDXGIAdapter **ppAdapter) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIFactoryVtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIFactory * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIFactory * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIFactory * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIFactory * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIFactory * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIFactory * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIFactory * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *EnumAdapters )( 
 
            IDXGIFactory * This,
 
            /* [in] */ UINT Adapter,
 
            /* [out] */ IDXGIAdapter **ppAdapter);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )( 
 
            IDXGIFactory * This,
 
            HWND WindowHandle,
 
            UINT Flags);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )( 
 
            IDXGIFactory * This,
 
            HWND *pWindowHandle);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )( 
 
            IDXGIFactory * This,
 
            IUnknown *pDevice,
 
            DXGI_SWAP_CHAIN_DESC *pDesc,
 
            IDXGISwapChain **ppSwapChain);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )( 
 
            IDXGIFactory * This,
 
            /* [in] */ HMODULE Module,
 
            /* [out] */ IDXGIAdapter **ppAdapter);
 
        
 
        END_INTERFACE
 
    } IDXGIFactoryVtbl;
 
 
 
    interface IDXGIFactory
 
    {
 
        CONST_VTBL struct IDXGIFactoryVtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIFactory_QueryInterface(This,riid,ppvObject)        \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIFactory_AddRef(This)       \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIFactory_Release(This)      \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIFactory_SetPrivateData(This,Name,DataSize,pData)   \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIFactory_SetPrivateDataInterface(This,Name,pUnknown)        \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIFactory_GetPrivateData(This,Name,pDataSize,pData)  \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIFactory_GetParent(This,riid,ppParent)      \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGIFactory_EnumAdapters(This,Adapter,ppAdapter)       \
 
    ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) ) 
 
 
 
#define IDXGIFactory_MakeWindowAssociation(This,WindowHandle,Flags)     \
 
    ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) ) 
 
 
 
#define IDXGIFactory_GetWindowAssociation(This,pWindowHandle)   \
 
    ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) ) 
 
 
 
#define IDXGIFactory_CreateSwapChain(This,pDevice,pDesc,ppSwapChain)    \
 
    ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) ) 
 
 
 
#define IDXGIFactory_CreateSoftwareAdapter(This,Module,ppAdapter)       \
 
    ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIFactory_INTERFACE_DEFINED__ */
 
 
 
 
 
/* interface __MIDL_itf_dxgi_0000_0010 */
 
/* [local] */ 
 
 
 
HRESULT WINAPI CreateDXGIFactory(REFIID riid, void **ppFactory);
 
HRESULT WINAPI CreateDXGIFactory1(REFIID riid, void **ppFactory);
 
 
 
 
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_c_ifspec;
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_s_ifspec;
 
 
 
#ifndef __IDXGIDevice_INTERFACE_DEFINED__
 
#define __IDXGIDevice_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIDevice */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIDevice;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("54ec77fa-1377-44e6-8c32-88fd5f44c84c")
 
    IDXGIDevice : public IDXGIObject
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE GetAdapter( 
 
            /* [out] */ IDXGIAdapter **pAdapter) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE CreateSurface( 
 
            /* [in] */ const DXGI_SURFACE_DESC *pDesc,
 
            /* [in] */ UINT NumSurfaces,
 
            /* [in] */ DXGI_USAGE Usage,
 
            /* [in] */ const DXGI_SHARED_RESOURCE *pSharedResource,
 
            /* [out] */ IDXGISurface **ppSurface) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE QueryResourceResidency( 
 
            /* [size_is][in] */ IUnknown *const *ppResources,
 
            /* [size_is][out] */ DXGI_RESIDENCY *pResidencyStatus,
 
            /* [in] */ UINT NumResources) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE SetGPUThreadPriority( 
 
            /* [in] */ INT Priority) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetGPUThreadPriority( 
 
            /* [retval][out] */ INT *pPriority) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIDeviceVtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIDevice * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIDevice * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIDevice * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIDevice * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIDevice * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIDevice * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIDevice * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetAdapter )( 
 
            IDXGIDevice * This,
 
            /* [out] */ IDXGIAdapter **pAdapter);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *CreateSurface )( 
 
            IDXGIDevice * This,
 
            /* [in] */ const DXGI_SURFACE_DESC *pDesc,
 
            /* [in] */ UINT NumSurfaces,
 
            /* [in] */ DXGI_USAGE Usage,
 
            /* [in] */ const DXGI_SHARED_RESOURCE *pSharedResource,
 
            /* [out] */ IDXGISurface **ppSurface);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryResourceResidency )( 
 
            IDXGIDevice * This,
 
            /* [size_is][in] */ IUnknown *const *ppResources,
 
            /* [size_is][out] */ DXGI_RESIDENCY *pResidencyStatus,
 
            /* [in] */ UINT NumResources);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetGPUThreadPriority )( 
 
            IDXGIDevice * This,
 
            /* [in] */ INT Priority);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )( 
 
            IDXGIDevice * This,
 
            /* [retval][out] */ INT *pPriority);
 
        
 
        END_INTERFACE
 
    } IDXGIDeviceVtbl;
 
 
 
    interface IDXGIDevice
 
    {
 
        CONST_VTBL struct IDXGIDeviceVtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIDevice_QueryInterface(This,riid,ppvObject) \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIDevice_AddRef(This)        \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIDevice_Release(This)       \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIDevice_SetPrivateData(This,Name,DataSize,pData)    \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIDevice_SetPrivateDataInterface(This,Name,pUnknown) \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIDevice_GetPrivateData(This,Name,pDataSize,pData)   \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIDevice_GetParent(This,riid,ppParent)       \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGIDevice_GetAdapter(This,pAdapter)   \
 
    ( (This)->lpVtbl -> GetAdapter(This,pAdapter) ) 
 
 
 
#define IDXGIDevice_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface)       \
 
    ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) ) 
 
 
 
#define IDXGIDevice_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources)      \
 
    ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) ) 
 
 
 
#define IDXGIDevice_SetGPUThreadPriority(This,Priority) \
 
    ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) ) 
 
 
 
#define IDXGIDevice_GetGPUThreadPriority(This,pPriority)        \
 
    ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIDevice_INTERFACE_DEFINED__ */
 
 
 
 
 
/* interface __MIDL_itf_dxgi_0000_0011 */
 
/* [local] */ 
 
 
 
typedef 
 
enum DXGI_ADAPTER_FLAG
 
    {   DXGI_ADAPTER_FLAG_NONE  = 0,
 
        DXGI_ADAPTER_FLAG_REMOTE        = 1,
 
        DXGI_ADAPTER_FLAG_FORCE_DWORD   = 0xffffffff
 
    }   DXGI_ADAPTER_FLAG;
 
 
 
typedef struct DXGI_ADAPTER_DESC1
 
    {
 
    WCHAR Description[ 128 ];
 
    UINT VendorId;
 
    UINT DeviceId;
 
    UINT SubSysId;
 
    UINT Revision;
 
    SIZE_T DedicatedVideoMemory;
 
    SIZE_T DedicatedSystemMemory;
 
    SIZE_T SharedSystemMemory;
 
    LUID AdapterLuid;
 
    UINT Flags;
 
    }   DXGI_ADAPTER_DESC1;
 
 
 
typedef struct DXGI_DISPLAY_COLOR_SPACE
 
    {
 
    FLOAT PrimaryCoordinates[ 8 ][ 2 ];
 
    FLOAT WhitePoints[ 16 ][ 2 ];
 
    }   DXGI_DISPLAY_COLOR_SPACE;
 
 
 
 
 
 
 
 
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_c_ifspec;
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_s_ifspec;
 
 
 
#ifndef __IDXGIFactory1_INTERFACE_DEFINED__
 
#define __IDXGIFactory1_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIFactory1 */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIFactory1;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("770aae78-f26f-4dba-a829-253c83d1b387")
 
    IDXGIFactory1 : public IDXGIFactory
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE EnumAdapters1( 
 
            /* [in] */ UINT Adapter,
 
            /* [out] */ IDXGIAdapter1 **ppAdapter) = 0;
 
        
 
        virtual BOOL STDMETHODCALLTYPE IsCurrent( void) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIFactory1Vtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIFactory1 * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIFactory1 * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIFactory1 * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIFactory1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIFactory1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIFactory1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIFactory1 * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *EnumAdapters )( 
 
            IDXGIFactory1 * This,
 
            /* [in] */ UINT Adapter,
 
            /* [out] */ IDXGIAdapter **ppAdapter);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )( 
 
            IDXGIFactory1 * This,
 
            HWND WindowHandle,
 
            UINT Flags);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )( 
 
            IDXGIFactory1 * This,
 
            HWND *pWindowHandle);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )( 
 
            IDXGIFactory1 * This,
 
            IUnknown *pDevice,
 
            DXGI_SWAP_CHAIN_DESC *pDesc,
 
            IDXGISwapChain **ppSwapChain);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )( 
 
            IDXGIFactory1 * This,
 
            /* [in] */ HMODULE Module,
 
            /* [out] */ IDXGIAdapter **ppAdapter);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )( 
 
            IDXGIFactory1 * This,
 
            /* [in] */ UINT Adapter,
 
            /* [out] */ IDXGIAdapter1 **ppAdapter);
 
        
 
        BOOL ( STDMETHODCALLTYPE *IsCurrent )( 
 
            IDXGIFactory1 * This);
 
        
 
        END_INTERFACE
 
    } IDXGIFactory1Vtbl;
 
 
 
    interface IDXGIFactory1
 
    {
 
        CONST_VTBL struct IDXGIFactory1Vtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIFactory1_QueryInterface(This,riid,ppvObject)       \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIFactory1_AddRef(This)      \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIFactory1_Release(This)     \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIFactory1_SetPrivateData(This,Name,DataSize,pData)  \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIFactory1_SetPrivateDataInterface(This,Name,pUnknown)       \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIFactory1_GetPrivateData(This,Name,pDataSize,pData) \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIFactory1_GetParent(This,riid,ppParent)     \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGIFactory1_EnumAdapters(This,Adapter,ppAdapter)      \
 
    ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) ) 
 
 
 
#define IDXGIFactory1_MakeWindowAssociation(This,WindowHandle,Flags)    \
 
    ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) ) 
 
 
 
#define IDXGIFactory1_GetWindowAssociation(This,pWindowHandle)  \
 
    ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) ) 
 
 
 
#define IDXGIFactory1_CreateSwapChain(This,pDevice,pDesc,ppSwapChain)   \
 
    ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) ) 
 
 
 
#define IDXGIFactory1_CreateSoftwareAdapter(This,Module,ppAdapter)      \
 
    ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) ) 
 
 
 
 
 
#define IDXGIFactory1_EnumAdapters1(This,Adapter,ppAdapter)     \
 
    ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) ) 
 
 
 
#define IDXGIFactory1_IsCurrent(This)   \
 
    ( (This)->lpVtbl -> IsCurrent(This) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIFactory1_INTERFACE_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIAdapter1_INTERFACE_DEFINED__
 
#define __IDXGIAdapter1_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIAdapter1 */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIAdapter1;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("29038f61-3839-4626-91fd-086879011a05")
 
    IDXGIAdapter1 : public IDXGIAdapter
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE GetDesc1( 
 
            /* [out] */ DXGI_ADAPTER_DESC1 *pDesc) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIAdapter1Vtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIAdapter1 * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIAdapter1 * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIAdapter1 * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIAdapter1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIAdapter1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIAdapter1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIAdapter1 * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *EnumOutputs )( 
 
            IDXGIAdapter1 * This,
 
            /* [in] */ UINT Output,
 
            /* [out][in] */ IDXGIOutput **ppOutput);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDesc )( 
 
            IDXGIAdapter1 * This,
 
            /* [out] */ DXGI_ADAPTER_DESC *pDesc);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )( 
 
            IDXGIAdapter1 * This,
 
            /* [in] */ REFGUID InterfaceName,
 
            /* [out] */ LARGE_INTEGER *pUMDVersion);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetDesc1 )( 
 
            IDXGIAdapter1 * This,
 
            /* [out] */ DXGI_ADAPTER_DESC1 *pDesc);
 
        
 
        END_INTERFACE
 
    } IDXGIAdapter1Vtbl;
 
 
 
    interface IDXGIAdapter1
 
    {
 
        CONST_VTBL struct IDXGIAdapter1Vtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIAdapter1_QueryInterface(This,riid,ppvObject)       \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIAdapter1_AddRef(This)      \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIAdapter1_Release(This)     \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIAdapter1_SetPrivateData(This,Name,DataSize,pData)  \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIAdapter1_SetPrivateDataInterface(This,Name,pUnknown)       \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIAdapter1_GetPrivateData(This,Name,pDataSize,pData) \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIAdapter1_GetParent(This,riid,ppParent)     \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGIAdapter1_EnumOutputs(This,Output,ppOutput) \
 
    ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) ) 
 
 
 
#define IDXGIAdapter1_GetDesc(This,pDesc)       \
 
    ( (This)->lpVtbl -> GetDesc(This,pDesc) ) 
 
 
 
#define IDXGIAdapter1_CheckInterfaceSupport(This,InterfaceName,pUMDVersion)     \
 
    ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) ) 
 
 
 
 
 
#define IDXGIAdapter1_GetDesc1(This,pDesc)      \
 
    ( (This)->lpVtbl -> GetDesc1(This,pDesc) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIAdapter1_INTERFACE_DEFINED__ */
 
 
 
 
 
#ifndef __IDXGIDevice1_INTERFACE_DEFINED__
 
#define __IDXGIDevice1_INTERFACE_DEFINED__
 
 
 
/* interface IDXGIDevice1 */
 
/* [unique][local][uuid][object] */ 
 
 
 
 
 
EXTERN_C const IID IID_IDXGIDevice1;
 
 
 
#if defined(__cplusplus) && !defined(CINTERFACE)
 
    
 
    MIDL_INTERFACE("77db970f-6276-48ba-ba28-070143b4392c")
 
    IDXGIDevice1 : public IDXGIDevice
 
    {
 
    public:
 
        virtual HRESULT STDMETHODCALLTYPE SetMaximumFrameLatency( 
 
            /* [in] */ UINT MaxLatency) = 0;
 
        
 
        virtual HRESULT STDMETHODCALLTYPE GetMaximumFrameLatency( 
 
            /* [out] */ UINT *pMaxLatency) = 0;
 
        
 
    };
 
    
 
#else   /* C style interface */
 
 
 
    typedef struct IDXGIDevice1Vtbl
 
    {
 
        BEGIN_INTERFACE
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
 
            IDXGIDevice1 * This,
 
            /* [in] */ REFIID riid,
 
            /* [annotation][iid_is][out] */ 
 
            __RPC__deref_out  void **ppvObject);
 
        
 
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
 
            IDXGIDevice1 * This);
 
        
 
        ULONG ( STDMETHODCALLTYPE *Release )( 
 
            IDXGIDevice1 * This);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( 
 
            IDXGIDevice1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ UINT DataSize,
 
            /* [in] */ const void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( 
 
            IDXGIDevice1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [in] */ const IUnknown *pUnknown);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( 
 
            IDXGIDevice1 * This,
 
            /* [in] */ REFGUID Name,
 
            /* [out][in] */ UINT *pDataSize,
 
            /* [out] */ void *pData);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetParent )( 
 
            IDXGIDevice1 * This,
 
            /* [in] */ REFIID riid,
 
            /* [retval][out] */ void **ppParent);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetAdapter )( 
 
            IDXGIDevice1 * This,
 
            /* [out] */ IDXGIAdapter **pAdapter);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *CreateSurface )( 
 
            IDXGIDevice1 * This,
 
            /* [in] */ const DXGI_SURFACE_DESC *pDesc,
 
            /* [in] */ UINT NumSurfaces,
 
            /* [in] */ DXGI_USAGE Usage,
 
            /* [in] */ const DXGI_SHARED_RESOURCE *pSharedResource,
 
            /* [out] */ IDXGISurface **ppSurface);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *QueryResourceResidency )( 
 
            IDXGIDevice1 * This,
 
            /* [size_is][in] */ IUnknown *const *ppResources,
 
            /* [size_is][out] */ DXGI_RESIDENCY *pResidencyStatus,
 
            /* [in] */ UINT NumResources);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetGPUThreadPriority )( 
 
            IDXGIDevice1 * This,
 
            /* [in] */ INT Priority);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )( 
 
            IDXGIDevice1 * This,
 
            /* [retval][out] */ INT *pPriority);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )( 
 
            IDXGIDevice1 * This,
 
            /* [in] */ UINT MaxLatency);
 
        
 
        HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )( 
 
            IDXGIDevice1 * This,
 
            /* [out] */ UINT *pMaxLatency);
 
        
 
        END_INTERFACE
 
    } IDXGIDevice1Vtbl;
 
 
 
    interface IDXGIDevice1
 
    {
 
        CONST_VTBL struct IDXGIDevice1Vtbl *lpVtbl;
 
    };
 
 
 
    
 
 
 
#ifdef COBJMACROS
 
 
 
 
 
#define IDXGIDevice1_QueryInterface(This,riid,ppvObject)        \
 
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
 
 
 
#define IDXGIDevice1_AddRef(This)       \
 
    ( (This)->lpVtbl -> AddRef(This) ) 
 
 
 
#define IDXGIDevice1_Release(This)      \
 
    ( (This)->lpVtbl -> Release(This) ) 
 
 
 
 
 
#define IDXGIDevice1_SetPrivateData(This,Name,DataSize,pData)   \
 
    ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) ) 
 
 
 
#define IDXGIDevice1_SetPrivateDataInterface(This,Name,pUnknown)        \
 
    ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) ) 
 
 
 
#define IDXGIDevice1_GetPrivateData(This,Name,pDataSize,pData)  \
 
    ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) ) 
 
 
 
#define IDXGIDevice1_GetParent(This,riid,ppParent)      \
 
    ( (This)->lpVtbl -> GetParent(This,riid,ppParent) ) 
 
 
 
 
 
#define IDXGIDevice1_GetAdapter(This,pAdapter)  \
 
    ( (This)->lpVtbl -> GetAdapter(This,pAdapter) ) 
 
 
 
#define IDXGIDevice1_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface)      \
 
    ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) ) 
 
 
 
#define IDXGIDevice1_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources)     \
 
    ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) ) 
 
 
 
#define IDXGIDevice1_SetGPUThreadPriority(This,Priority)        \
 
    ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) ) 
 
 
 
#define IDXGIDevice1_GetGPUThreadPriority(This,pPriority)       \
 
    ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) ) 
 
 
 
 
 
#define IDXGIDevice1_SetMaximumFrameLatency(This,MaxLatency)    \
 
    ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) ) 
 
 
 
#define IDXGIDevice1_GetMaximumFrameLatency(This,pMaxLatency)   \
 
    ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) ) 
 
 
 
#endif /* COBJMACROS */
 
 
 
 
 
#endif  /* C style interface */
 
 
 
 
 
 
 
 
 
#endif  /* __IDXGIDevice1_INTERFACE_DEFINED__ */
 
 
 
 
 
/* interface __MIDL_itf_dxgi_0000_0014 */
 
/* [local] */ 
 
 
 
#ifdef __cplusplus
 
#endif /*__cplusplus*/
 
DEFINE_GUID(IID_IDXGIObject,0xaec22fb8,0x76f3,0x4639,0x9b,0xe0,0x28,0xeb,0x43,0xa6,0x7a,0x2e);
 
DEFINE_GUID(IID_IDXGIDeviceSubObject,0x3d3e0379,0xf9de,0x4d58,0xbb,0x6c,0x18,0xd6,0x29,0x92,0xf1,0xa6);
 
DEFINE_GUID(IID_IDXGIResource,0x035f3ab4,0x482e,0x4e50,0xb4,0x1f,0x8a,0x7f,0x8b,0xd8,0x96,0x0b);
 
DEFINE_GUID(IID_IDXGIKeyedMutex,0x9d8e1289,0xd7b3,0x465f,0x81,0x26,0x25,0x0e,0x34,0x9a,0xf8,0x5d);
 
DEFINE_GUID(IID_IDXGISurface,0xcafcb56c,0x6ac3,0x4889,0xbf,0x47,0x9e,0x23,0xbb,0xd2,0x60,0xec);
 
DEFINE_GUID(IID_IDXGISurface1,0x4AE63092,0x6327,0x4c1b,0x80,0xAE,0xBF,0xE1,0x2E,0xA3,0x2B,0x86);
 
DEFINE_GUID(IID_IDXGIAdapter,0x2411e7e1,0x12ac,0x4ccf,0xbd,0x14,0x97,0x98,0xe8,0x53,0x4d,0xc0);
 
DEFINE_GUID(IID_IDXGIOutput,0xae02eedb,0xc735,0x4690,0x8d,0x52,0x5a,0x8d,0xc2,0x02,0x13,0xaa);
 
DEFINE_GUID(IID_IDXGISwapChain,0x310d36a0,0xd2e7,0x4c0a,0xaa,0x04,0x6a,0x9d,0x23,0xb8,0x88,0x6a);
 
DEFINE_GUID(IID_IDXGIFactory,0x7b7166ec,0x21c7,0x44ae,0xb2,0x1a,0xc9,0xae,0x32,0x1a,0xe3,0x69);
 
DEFINE_GUID(IID_IDXGIDevice,0x54ec77fa,0x1377,0x44e6,0x8c,0x32,0x88,0xfd,0x5f,0x44,0xc8,0x4c);
 
DEFINE_GUID(IID_IDXGIFactory1,0x770aae78,0xf26f,0x4dba,0xa8,0x29,0x25,0x3c,0x83,0xd1,0xb3,0x87);
 
DEFINE_GUID(IID_IDXGIAdapter1,0x29038f61,0x3839,0x4626,0x91,0xfd,0x08,0x68,0x79,0x01,0x1a,0x05);
 
DEFINE_GUID(IID_IDXGIDevice1,0x77db970f,0x6276,0x48ba,0xba,0x28,0x07,0x01,0x43,0xb4,0x39,0x2c);
 
 
 
 
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_c_ifspec;
 
extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_s_ifspec;
 
 
 
/* Additional Prototypes for ALL interfaces */
 
 
 
/* end of Additional Prototypes */
 
 
 
#ifdef __cplusplus
 
}
 
#endif
 
 
 
#endif