
/* this ALWAYS GENERATED file contains the definitions for the interfaces */

 /* File created by MIDL compiler version 8.00.0613 */
/* @@MIDL_FILE_HEADING(  ) */

/* 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 __dxgidebug_h__
#define __dxgidebug_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */

#ifndef __IDXGIInfoQueue_FWD_DEFINED__
#define __IDXGIInfoQueue_FWD_DEFINED__
typedef interface IDXGIInfoQueue IDXGIInfoQueue;

#endif 	/* __IDXGIInfoQueue_FWD_DEFINED__ */

#ifndef __IDXGIDebug_FWD_DEFINED__
#define __IDXGIDebug_FWD_DEFINED__
typedef interface IDXGIDebug IDXGIDebug;

#endif 	/* __IDXGIDebug_FWD_DEFINED__ */

#ifndef __IDXGIDebug1_FWD_DEFINED__
#define __IDXGIDebug1_FWD_DEFINED__
typedef interface IDXGIDebug1 IDXGIDebug1;

#endif 	/* __IDXGIDebug1_FWD_DEFINED__ */

/* header files for imported files */
#include "oaidl.h"
#include "ocidl.h"

#ifdef __cplusplus
extern "C"{
#endif

/* interface __MIDL_itf_dxgidebug_0000_0000 */
/* [local] */

/*#include <winapifamily.h>*/
/*#pragma region Application Family*/
/*#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)*/
#define	DXGI_DEBUG_BINARY_VERSION	( 1 )

typedef
enum DXGI_DEBUG_RLO_FLAGS
    {
        DXGI_DEBUG_RLO_SUMMARY	= 0x1,
        DXGI_DEBUG_RLO_DETAIL	= 0x2,
        DXGI_DEBUG_RLO_IGNORE_INTERNAL	= 0x4,
        DXGI_DEBUG_RLO_ALL	= 0x7
    } 	DXGI_DEBUG_RLO_FLAGS;

typedef GUID DXGI_DEBUG_ID;

DEFINE_GUID(DXGI_DEBUG_ALL, 0xe48ae283, 0xda80, 0x490b, 0x87, 0xe6, 0x43, 0xe9, 0xa9, 0xcf, 0xda, 0x8);
DEFINE_GUID(DXGI_DEBUG_DX, 0x35cdd7fc, 0x13b2, 0x421d, 0xa5, 0xd7, 0x7e, 0x44, 0x51, 0x28, 0x7d, 0x64);
DEFINE_GUID(DXGI_DEBUG_DXGI, 0x25cddaa4, 0xb1c6, 0x47e1, 0xac, 0x3e, 0x98, 0x87, 0x5b, 0x5a, 0x2e, 0x2a);
DEFINE_GUID(DXGI_DEBUG_APP, 0x6cd6e01, 0x4219, 0x4ebd, 0x87, 0x9, 0x27, 0xed, 0x23, 0x36, 0xc, 0x62);
typedef
enum DXGI_INFO_QUEUE_MESSAGE_CATEGORY
    {
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_UNKNOWN	= 0,
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_MISCELLANEOUS	= ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_UNKNOWN + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_INITIALIZATION	= ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_MISCELLANEOUS + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_CLEANUP	= ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_INITIALIZATION + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_COMPILATION	= ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_CLEANUP + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_CREATION	= ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_COMPILATION + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_SETTING	= ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_CREATION + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_GETTING	= ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_SETTING + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_RESOURCE_MANIPULATION	= ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_GETTING + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_EXECUTION	= ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_RESOURCE_MANIPULATION + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_CATEGORY_SHADER	= ( DXGI_INFO_QUEUE_MESSAGE_CATEGORY_EXECUTION + 1 )
    } 	DXGI_INFO_QUEUE_MESSAGE_CATEGORY;

typedef
enum DXGI_INFO_QUEUE_MESSAGE_SEVERITY
    {
        DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION	= 0,
        DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR	= ( DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_SEVERITY_WARNING	= ( DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_SEVERITY_INFO	= ( DXGI_INFO_QUEUE_MESSAGE_SEVERITY_WARNING + 1 ) ,
        DXGI_INFO_QUEUE_MESSAGE_SEVERITY_MESSAGE	= ( DXGI_INFO_QUEUE_MESSAGE_SEVERITY_INFO + 1 )
    } 	DXGI_INFO_QUEUE_MESSAGE_SEVERITY;

typedef int DXGI_INFO_QUEUE_MESSAGE_ID;

#define DXGI_INFO_QUEUE_MESSAGE_ID_STRING_FROM_APPLICATION 0
typedef struct DXGI_INFO_QUEUE_MESSAGE
    {
    DXGI_DEBUG_ID Producer;
    DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category;
    DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity;
    DXGI_INFO_QUEUE_MESSAGE_ID ID;
    /* [annotation] */
    _Field_size_(DescriptionByteLength)  const char *pDescription;
    SIZE_T DescriptionByteLength;
    } 	DXGI_INFO_QUEUE_MESSAGE;

typedef struct DXGI_INFO_QUEUE_FILTER_DESC
    {
    UINT NumCategories;
    /* [annotation] */
    _Field_size_(NumCategories)  DXGI_INFO_QUEUE_MESSAGE_CATEGORY *pCategoryList;
    UINT NumSeverities;
    /* [annotation] */
    _Field_size_(NumSeverities)  DXGI_INFO_QUEUE_MESSAGE_SEVERITY *pSeverityList;
    UINT NumIDs;
    /* [annotation] */
    _Field_size_(NumIDs)  DXGI_INFO_QUEUE_MESSAGE_ID *pIDList;
    } 	DXGI_INFO_QUEUE_FILTER_DESC;

typedef struct DXGI_INFO_QUEUE_FILTER
    {
    DXGI_INFO_QUEUE_FILTER_DESC AllowList;
    DXGI_INFO_QUEUE_FILTER_DESC DenyList;
    } 	DXGI_INFO_QUEUE_FILTER;

#define DXGI_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024
HRESULT WINAPI DXGIGetDebugInterface(REFIID riid, void **ppDebug);

extern RPC_IF_HANDLE __MIDL_itf_dxgidebug_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxgidebug_0000_0000_v0_0_s_ifspec;

#ifndef __IDXGIInfoQueue_INTERFACE_DEFINED__
#define __IDXGIInfoQueue_INTERFACE_DEFINED__

/* interface IDXGIInfoQueue */
/* [unique][local][object][uuid] */

EXTERN_C const IID IID_IDXGIInfoQueue;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("D67441C7-672A-476f-9E82-CD55B44949CE")
    IDXGIInfoQueue : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  UINT64 MessageCountLimit) = 0;

        virtual void STDMETHODCALLTYPE ClearStoredMessages(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetMessage(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  UINT64 MessageIndex,
            /* [annotation] */
            _Out_writes_bytes_opt_(*pMessageByteLength)  DXGI_INFO_QUEUE_MESSAGE *pMessage,
            /* [annotation] */
            _Inout_  SIZE_T *pMessageByteLength) = 0;

        virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessagesAllowedByRetrievalFilters(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessages(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDiscardedByMessageCountLimit(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual UINT64 STDMETHODCALLTYPE GetMessageCountLimit(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual UINT64 STDMETHODCALLTYPE GetNumMessagesAllowedByStorageFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDeniedByStorageFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE AddStorageFilterEntries(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_FILTER *pFilter) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetStorageFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _Out_writes_bytes_opt_(*pFilterByteLength)  DXGI_INFO_QUEUE_FILTER *pFilter,
            /* [annotation] */
            _Inout_  SIZE_T *pFilterByteLength) = 0;

        virtual void STDMETHODCALLTYPE ClearStorageFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE PushDenyAllStorageFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE PushStorageFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_FILTER *pFilter) = 0;

        virtual void STDMETHODCALLTYPE PopStorageFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_FILTER *pFilter) = 0;

        virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _Out_writes_bytes_opt_(*pFilterByteLength)  DXGI_INFO_QUEUE_FILTER *pFilter,
            /* [annotation] */
            _Inout_  SIZE_T *pFilterByteLength) = 0;

        virtual void STDMETHODCALLTYPE ClearRetrievalFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE PushDenyAllRetrievalFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_FILTER *pFilter) = 0;

        virtual void STDMETHODCALLTYPE PopRetrievalFilter(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

        virtual HRESULT STDMETHODCALLTYPE AddMessage(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_ID ID,
            /* [annotation] */
            _In_  LPCSTR pDescription) = 0;

        virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage(
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity,
            /* [annotation] */
            _In_  LPCSTR pDescription) = 0;

        virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category,
            /* [annotation] */
            _In_  BOOL bEnable) = 0;

        virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity,
            /* [annotation] */
            _In_  BOOL bEnable) = 0;

        virtual HRESULT STDMETHODCALLTYPE SetBreakOnID(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_ID ID,
            /* [annotation] */
            _In_  BOOL bEnable) = 0;

        virtual BOOL STDMETHODCALLTYPE GetBreakOnCategory(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category) = 0;

        virtual BOOL STDMETHODCALLTYPE GetBreakOnSeverity(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity) = 0;

        virtual BOOL STDMETHODCALLTYPE GetBreakOnID(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_ID ID) = 0;

        virtual void STDMETHODCALLTYPE SetMuteDebugOutput(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  BOOL bMute) = 0;

        virtual BOOL STDMETHODCALLTYPE GetMuteDebugOutput(
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer) = 0;

    };

#else 	/* C style interface */

    typedef struct IDXGIInfoQueueVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IDXGIInfoQueue * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_  void **ppvObject);

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

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

        HRESULT ( STDMETHODCALLTYPE *SetMessageCountLimit )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  UINT64 MessageCountLimit);

        void ( STDMETHODCALLTYPE *ClearStoredMessages )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *GetMessage )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  UINT64 MessageIndex,
            /* [annotation] */
            _Out_writes_bytes_opt_(*pMessageByteLength)  DXGI_INFO_QUEUE_MESSAGE *pMessage,
            /* [annotation] */
            _Inout_  SIZE_T *pMessageByteLength);

        UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilters )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        UINT64 ( STDMETHODCALLTYPE *GetNumStoredMessages )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        UINT64 ( STDMETHODCALLTYPE *GetMessageCountLimit )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        UINT64 ( STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        UINT64 ( STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *AddStorageFilterEntries )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_FILTER *pFilter);

        HRESULT ( STDMETHODCALLTYPE *GetStorageFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _Out_writes_bytes_opt_(*pFilterByteLength)  DXGI_INFO_QUEUE_FILTER *pFilter,
            /* [annotation] */
            _Inout_  SIZE_T *pFilterByteLength);

        void ( STDMETHODCALLTYPE *ClearStorageFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *PushEmptyStorageFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *PushDenyAllStorageFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *PushCopyOfStorageFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *PushStorageFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_FILTER *pFilter);

        void ( STDMETHODCALLTYPE *PopStorageFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        UINT ( STDMETHODCALLTYPE *GetStorageFilterStackSize )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *AddRetrievalFilterEntries )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_FILTER *pFilter);

        HRESULT ( STDMETHODCALLTYPE *GetRetrievalFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _Out_writes_bytes_opt_(*pFilterByteLength)  DXGI_INFO_QUEUE_FILTER *pFilter,
            /* [annotation] */
            _Inout_  SIZE_T *pFilterByteLength);

        void ( STDMETHODCALLTYPE *ClearRetrievalFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *PushEmptyRetrievalFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *PushDenyAllRetrievalFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *PushCopyOfRetrievalFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *PushRetrievalFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_FILTER *pFilter);

        void ( STDMETHODCALLTYPE *PopRetrievalFilter )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        UINT ( STDMETHODCALLTYPE *GetRetrievalFilterStackSize )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        HRESULT ( STDMETHODCALLTYPE *AddMessage )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_ID ID,
            /* [annotation] */
            _In_  LPCSTR pDescription);

        HRESULT ( STDMETHODCALLTYPE *AddApplicationMessage )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity,
            /* [annotation] */
            _In_  LPCSTR pDescription);

        HRESULT ( STDMETHODCALLTYPE *SetBreakOnCategory )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category,
            /* [annotation] */
            _In_  BOOL bEnable);

        HRESULT ( STDMETHODCALLTYPE *SetBreakOnSeverity )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity,
            /* [annotation] */
            _In_  BOOL bEnable);

        HRESULT ( STDMETHODCALLTYPE *SetBreakOnID )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_ID ID,
            /* [annotation] */
            _In_  BOOL bEnable);

        BOOL ( STDMETHODCALLTYPE *GetBreakOnCategory )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category);

        BOOL ( STDMETHODCALLTYPE *GetBreakOnSeverity )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity);

        BOOL ( STDMETHODCALLTYPE *GetBreakOnID )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  DXGI_INFO_QUEUE_MESSAGE_ID ID);

        void ( STDMETHODCALLTYPE *SetMuteDebugOutput )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer,
            /* [annotation] */
            _In_  BOOL bMute);

        BOOL ( STDMETHODCALLTYPE *GetMuteDebugOutput )(
            IDXGIInfoQueue * This,
            /* [annotation] */
            _In_  DXGI_DEBUG_ID Producer);

        END_INTERFACE
    } IDXGIInfoQueueVtbl;

    interface IDXGIInfoQueue
    {
        CONST_VTBL struct IDXGIInfoQueueVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define IDXGIInfoQueue_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )

#define IDXGIInfoQueue_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) )

#define IDXGIInfoQueue_Release(This)	\
    ( (This)->lpVtbl -> Release(This) )

#define IDXGIInfoQueue_SetMessageCountLimit(This,Producer,MessageCountLimit)	\
    ( (This)->lpVtbl -> SetMessageCountLimit(This,Producer,MessageCountLimit) )

#define IDXGIInfoQueue_ClearStoredMessages(This,Producer)	\
    ( (This)->lpVtbl -> ClearStoredMessages(This,Producer) )

#define IDXGIInfoQueue_GetMessage(This,Producer,MessageIndex,pMessage,pMessageByteLength)	\
    ( (This)->lpVtbl -> GetMessage(This,Producer,MessageIndex,pMessage,pMessageByteLength) )

#define IDXGIInfoQueue_GetNumStoredMessagesAllowedByRetrievalFilters(This,Producer)	\
    ( (This)->lpVtbl -> GetNumStoredMessagesAllowedByRetrievalFilters(This,Producer) )

#define IDXGIInfoQueue_GetNumStoredMessages(This,Producer)	\
    ( (This)->lpVtbl -> GetNumStoredMessages(This,Producer) )

#define IDXGIInfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This,Producer)	\
    ( (This)->lpVtbl -> GetNumMessagesDiscardedByMessageCountLimit(This,Producer) )

#define IDXGIInfoQueue_GetMessageCountLimit(This,Producer)	\
    ( (This)->lpVtbl -> GetMessageCountLimit(This,Producer) )

#define IDXGIInfoQueue_GetNumMessagesAllowedByStorageFilter(This,Producer)	\
    ( (This)->lpVtbl -> GetNumMessagesAllowedByStorageFilter(This,Producer) )

#define IDXGIInfoQueue_GetNumMessagesDeniedByStorageFilter(This,Producer)	\
    ( (This)->lpVtbl -> GetNumMessagesDeniedByStorageFilter(This,Producer) )

#define IDXGIInfoQueue_AddStorageFilterEntries(This,Producer,pFilter)	\
    ( (This)->lpVtbl -> AddStorageFilterEntries(This,Producer,pFilter) )

#define IDXGIInfoQueue_GetStorageFilter(This,Producer,pFilter,pFilterByteLength)	\
    ( (This)->lpVtbl -> GetStorageFilter(This,Producer,pFilter,pFilterByteLength) )

#define IDXGIInfoQueue_ClearStorageFilter(This,Producer)	\
    ( (This)->lpVtbl -> ClearStorageFilter(This,Producer) )

#define IDXGIInfoQueue_PushEmptyStorageFilter(This,Producer)	\
    ( (This)->lpVtbl -> PushEmptyStorageFilter(This,Producer) )

#define IDXGIInfoQueue_PushDenyAllStorageFilter(This,Producer)	\
    ( (This)->lpVtbl -> PushDenyAllStorageFilter(This,Producer) )

#define IDXGIInfoQueue_PushCopyOfStorageFilter(This,Producer)	\
    ( (This)->lpVtbl -> PushCopyOfStorageFilter(This,Producer) )

#define IDXGIInfoQueue_PushStorageFilter(This,Producer,pFilter)	\
    ( (This)->lpVtbl -> PushStorageFilter(This,Producer,pFilter) )

#define IDXGIInfoQueue_PopStorageFilter(This,Producer)	\
    ( (This)->lpVtbl -> PopStorageFilter(This,Producer) )

#define IDXGIInfoQueue_GetStorageFilterStackSize(This,Producer)	\
    ( (This)->lpVtbl -> GetStorageFilterStackSize(This,Producer) )

#define IDXGIInfoQueue_AddRetrievalFilterEntries(This,Producer,pFilter)	\
    ( (This)->lpVtbl -> AddRetrievalFilterEntries(This,Producer,pFilter) )

#define IDXGIInfoQueue_GetRetrievalFilter(This,Producer,pFilter,pFilterByteLength)	\
    ( (This)->lpVtbl -> GetRetrievalFilter(This,Producer,pFilter,pFilterByteLength) )

#define IDXGIInfoQueue_ClearRetrievalFilter(This,Producer)	\
    ( (This)->lpVtbl -> ClearRetrievalFilter(This,Producer) )

#define IDXGIInfoQueue_PushEmptyRetrievalFilter(This,Producer)	\
    ( (This)->lpVtbl -> PushEmptyRetrievalFilter(This,Producer) )

#define IDXGIInfoQueue_PushDenyAllRetrievalFilter(This,Producer)	\
    ( (This)->lpVtbl -> PushDenyAllRetrievalFilter(This,Producer) )

#define IDXGIInfoQueue_PushCopyOfRetrievalFilter(This,Producer)	\
    ( (This)->lpVtbl -> PushCopyOfRetrievalFilter(This,Producer) )

#define IDXGIInfoQueue_PushRetrievalFilter(This,Producer,pFilter)	\
    ( (This)->lpVtbl -> PushRetrievalFilter(This,Producer,pFilter) )

#define IDXGIInfoQueue_PopRetrievalFilter(This,Producer)	\
    ( (This)->lpVtbl -> PopRetrievalFilter(This,Producer) )

#define IDXGIInfoQueue_GetRetrievalFilterStackSize(This,Producer)	\
    ( (This)->lpVtbl -> GetRetrievalFilterStackSize(This,Producer) )

#define IDXGIInfoQueue_AddMessage(This,Producer,Category,Severity,ID,pDescription)	\
    ( (This)->lpVtbl -> AddMessage(This,Producer,Category,Severity,ID,pDescription) )

#define IDXGIInfoQueue_AddApplicationMessage(This,Severity,pDescription)	\
    ( (This)->lpVtbl -> AddApplicationMessage(This,Severity,pDescription) )

#define IDXGIInfoQueue_SetBreakOnCategory(This,Producer,Category,bEnable)	\
    ( (This)->lpVtbl -> SetBreakOnCategory(This,Producer,Category,bEnable) )

#define IDXGIInfoQueue_SetBreakOnSeverity(This,Producer,Severity,bEnable)	\
    ( (This)->lpVtbl -> SetBreakOnSeverity(This,Producer,Severity,bEnable) )

#define IDXGIInfoQueue_SetBreakOnID(This,Producer,ID,bEnable)	\
    ( (This)->lpVtbl -> SetBreakOnID(This,Producer,ID,bEnable) )

#define IDXGIInfoQueue_GetBreakOnCategory(This,Producer,Category)	\
    ( (This)->lpVtbl -> GetBreakOnCategory(This,Producer,Category) )

#define IDXGIInfoQueue_GetBreakOnSeverity(This,Producer,Severity)	\
    ( (This)->lpVtbl -> GetBreakOnSeverity(This,Producer,Severity) )

#define IDXGIInfoQueue_GetBreakOnID(This,Producer,ID)	\
    ( (This)->lpVtbl -> GetBreakOnID(This,Producer,ID) )

#define IDXGIInfoQueue_SetMuteDebugOutput(This,Producer,bMute)	\
    ( (This)->lpVtbl -> SetMuteDebugOutput(This,Producer,bMute) )

#define IDXGIInfoQueue_GetMuteDebugOutput(This,Producer)	\
    ( (This)->lpVtbl -> GetMuteDebugOutput(This,Producer) )

#endif /* COBJMACROS */

#endif 	/* C style interface */

#endif 	/* __IDXGIInfoQueue_INTERFACE_DEFINED__ */

#ifndef __IDXGIDebug_INTERFACE_DEFINED__
#define __IDXGIDebug_INTERFACE_DEFINED__

/* interface IDXGIDebug */
/* [unique][local][object][uuid] */

EXTERN_C const IID IID_IDXGIDebug;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("119E7452-DE9E-40fe-8806-88F90C12B441")
    IDXGIDebug : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE ReportLiveObjects(
            GUID apiid,
            DXGI_DEBUG_RLO_FLAGS flags) = 0;

    };

#else 	/* C style interface */

    typedef struct IDXGIDebugVtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IDXGIDebug * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_  void **ppvObject);

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

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

        HRESULT ( STDMETHODCALLTYPE *ReportLiveObjects )(
            IDXGIDebug * This,
            GUID apiid,
            DXGI_DEBUG_RLO_FLAGS flags);

        END_INTERFACE
    } IDXGIDebugVtbl;

    interface IDXGIDebug
    {
        CONST_VTBL struct IDXGIDebugVtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define IDXGIDebug_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )

#define IDXGIDebug_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) )

#define IDXGIDebug_Release(This)	\
    ( (This)->lpVtbl -> Release(This) )

#define IDXGIDebug_ReportLiveObjects(This,apiid,flags)	\
    ( (This)->lpVtbl -> ReportLiveObjects(This,apiid,flags) )

#endif /* COBJMACROS */

#endif 	/* C style interface */

#endif 	/* __IDXGIDebug_INTERFACE_DEFINED__ */

#ifndef __IDXGIDebug1_INTERFACE_DEFINED__
#define __IDXGIDebug1_INTERFACE_DEFINED__

/* interface IDXGIDebug1 */
/* [unique][local][object][uuid] */

EXTERN_C const IID IID_IDXGIDebug1;

#if defined(__cplusplus) && !defined(CINTERFACE)

    MIDL_INTERFACE("c5a05f0c-16f2-4adf-9f4d-a8c4d58ac550")
    IDXGIDebug1 : public IDXGIDebug
    {
    public:
        virtual void STDMETHODCALLTYPE EnableLeakTrackingForThread( void) = 0;

        virtual void STDMETHODCALLTYPE DisableLeakTrackingForThread( void) = 0;

        virtual BOOL STDMETHODCALLTYPE IsLeakTrackingEnabledForThread( void) = 0;

    };

#else 	/* C style interface */

    typedef struct IDXGIDebug1Vtbl
    {
        BEGIN_INTERFACE

        HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
            IDXGIDebug1 * This,
            /* [in] */ REFIID riid,
            /* [annotation][iid_is][out] */
            _COM_Outptr_  void **ppvObject);

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

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

        HRESULT ( STDMETHODCALLTYPE *ReportLiveObjects )(
            IDXGIDebug1 * This,
            GUID apiid,
            DXGI_DEBUG_RLO_FLAGS flags);

        void ( STDMETHODCALLTYPE *EnableLeakTrackingForThread )(
            IDXGIDebug1 * This);

        void ( STDMETHODCALLTYPE *DisableLeakTrackingForThread )(
            IDXGIDebug1 * This);

        BOOL ( STDMETHODCALLTYPE *IsLeakTrackingEnabledForThread )(
            IDXGIDebug1 * This);

        END_INTERFACE
    } IDXGIDebug1Vtbl;

    interface IDXGIDebug1
    {
        CONST_VTBL struct IDXGIDebug1Vtbl *lpVtbl;
    };

#ifdef COBJMACROS

#define IDXGIDebug1_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )

#define IDXGIDebug1_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) )

#define IDXGIDebug1_Release(This)	\
    ( (This)->lpVtbl -> Release(This) )

#define IDXGIDebug1_ReportLiveObjects(This,apiid,flags)	\
    ( (This)->lpVtbl -> ReportLiveObjects(This,apiid,flags) )

#define IDXGIDebug1_EnableLeakTrackingForThread(This)	\
    ( (This)->lpVtbl -> EnableLeakTrackingForThread(This) )

#define IDXGIDebug1_DisableLeakTrackingForThread(This)	\
    ( (This)->lpVtbl -> DisableLeakTrackingForThread(This) )

#define IDXGIDebug1_IsLeakTrackingEnabledForThread(This)	\
    ( (This)->lpVtbl -> IsLeakTrackingEnabledForThread(This) )

#endif /* COBJMACROS */

#endif 	/* C style interface */

#endif 	/* __IDXGIDebug1_INTERFACE_DEFINED__ */

/* interface __MIDL_itf_dxgidebug_0000_0003 */
/* [local] */

/*#endif*/ /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
/*#pragma endregion*/
/*#pragma region Desktop Family*/
/*#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)*/
/*#endif*/ /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
/*#pragma endregion*/
DEFINE_GUID(IID_IDXGIInfoQueue,0xD67441C7,0x672A,0x476f,0x9E,0x82,0xCD,0x55,0xB4,0x49,0x49,0xCE);
DEFINE_GUID(IID_IDXGIDebug,0x119E7452,0xDE9E,0x40fe,0x88,0x06,0x88,0xF9,0x0C,0x12,0xB4,0x41);
DEFINE_GUID(IID_IDXGIDebug1,0xc5a05f0c,0x16f2,0x4adf,0x9f,0x4d,0xa8,0xc4,0xd5,0x8a,0xc5,0x50);

extern RPC_IF_HANDLE __MIDL_itf_dxgidebug_0000_0003_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_dxgidebug_0000_0003_v0_0_s_ifspec;

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif
