1 
2 
3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
4 
5 
6  /* File created by MIDL compiler version 8.01.0622 */
7 /* @@MIDL_FILE_HEADING(  ) */
8 
9 
10 
11 /* verify that the <rpcndr.h> version is high enough to compile this file*/
12 #ifndef __REQUIRED_RPCNDR_H_VERSION__
13 #define __REQUIRED_RPCNDR_H_VERSION__ 500
14 #endif
15 
16 /* verify that the <rpcsal.h> version is high enough to compile this file*/
17 #ifndef __REQUIRED_RPCSAL_H_VERSION__
18 #define __REQUIRED_RPCSAL_H_VERSION__ 100
19 #endif
20 
21 #include "rpc.h"
22 #include "rpcndr.h"
23 
24 #ifndef __RPCNDR_H_VERSION__
25 #error this stub requires an updated version of <rpcndr.h>
26 #endif /* __RPCNDR_H_VERSION__ */
27 
28 #ifndef COM_NO_WINDOWS_H
29 #include "windows.h"
30 #include "ole2.h"
31 #endif /*COM_NO_WINDOWS_H*/
32 
33 #ifndef __dxgi_h__
34 #define __dxgi_h__
35 
36 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
37 #pragma once
38 #endif
39 
40 /* Forward Declarations */
41 
42 #ifndef __IDXGIObject_FWD_DEFINED__
43 #define __IDXGIObject_FWD_DEFINED__
44 typedef interface IDXGIObject IDXGIObject;
45 
46 #endif 	/* __IDXGIObject_FWD_DEFINED__ */
47 
48 
49 #ifndef __IDXGIDeviceSubObject_FWD_DEFINED__
50 #define __IDXGIDeviceSubObject_FWD_DEFINED__
51 typedef interface IDXGIDeviceSubObject IDXGIDeviceSubObject;
52 
53 #endif 	/* __IDXGIDeviceSubObject_FWD_DEFINED__ */
54 
55 
56 #ifndef __IDXGIResource_FWD_DEFINED__
57 #define __IDXGIResource_FWD_DEFINED__
58 typedef interface IDXGIResource IDXGIResource;
59 
60 #endif 	/* __IDXGIResource_FWD_DEFINED__ */
61 
62 
63 #ifndef __IDXGIKeyedMutex_FWD_DEFINED__
64 #define __IDXGIKeyedMutex_FWD_DEFINED__
65 typedef interface IDXGIKeyedMutex IDXGIKeyedMutex;
66 
67 #endif 	/* __IDXGIKeyedMutex_FWD_DEFINED__ */
68 
69 
70 #ifndef __IDXGISurface_FWD_DEFINED__
71 #define __IDXGISurface_FWD_DEFINED__
72 typedef interface IDXGISurface IDXGISurface;
73 
74 #endif 	/* __IDXGISurface_FWD_DEFINED__ */
75 
76 
77 #ifndef __IDXGISurface1_FWD_DEFINED__
78 #define __IDXGISurface1_FWD_DEFINED__
79 typedef interface IDXGISurface1 IDXGISurface1;
80 
81 #endif 	/* __IDXGISurface1_FWD_DEFINED__ */
82 
83 
84 #ifndef __IDXGIAdapter_FWD_DEFINED__
85 #define __IDXGIAdapter_FWD_DEFINED__
86 typedef interface IDXGIAdapter IDXGIAdapter;
87 
88 #endif 	/* __IDXGIAdapter_FWD_DEFINED__ */
89 
90 
91 #ifndef __IDXGIOutput_FWD_DEFINED__
92 #define __IDXGIOutput_FWD_DEFINED__
93 typedef interface IDXGIOutput IDXGIOutput;
94 
95 #endif 	/* __IDXGIOutput_FWD_DEFINED__ */
96 
97 
98 #ifndef __IDXGISwapChain_FWD_DEFINED__
99 #define __IDXGISwapChain_FWD_DEFINED__
100 typedef interface IDXGISwapChain IDXGISwapChain;
101 
102 #endif 	/* __IDXGISwapChain_FWD_DEFINED__ */
103 
104 
105 #ifndef __IDXGIFactory_FWD_DEFINED__
106 #define __IDXGIFactory_FWD_DEFINED__
107 typedef interface IDXGIFactory IDXGIFactory;
108 
109 #endif 	/* __IDXGIFactory_FWD_DEFINED__ */
110 
111 
112 #ifndef __IDXGIDevice_FWD_DEFINED__
113 #define __IDXGIDevice_FWD_DEFINED__
114 typedef interface IDXGIDevice IDXGIDevice;
115 
116 #endif 	/* __IDXGIDevice_FWD_DEFINED__ */
117 
118 
119 #ifndef __IDXGIFactory1_FWD_DEFINED__
120 #define __IDXGIFactory1_FWD_DEFINED__
121 typedef interface IDXGIFactory1 IDXGIFactory1;
122 
123 #endif 	/* __IDXGIFactory1_FWD_DEFINED__ */
124 
125 
126 #ifndef __IDXGIAdapter1_FWD_DEFINED__
127 #define __IDXGIAdapter1_FWD_DEFINED__
128 typedef interface IDXGIAdapter1 IDXGIAdapter1;
129 
130 #endif 	/* __IDXGIAdapter1_FWD_DEFINED__ */
131 
132 
133 #ifndef __IDXGIDevice1_FWD_DEFINED__
134 #define __IDXGIDevice1_FWD_DEFINED__
135 typedef interface IDXGIDevice1 IDXGIDevice1;
136 
137 #endif 	/* __IDXGIDevice1_FWD_DEFINED__ */
138 
139 
140 /* header files for imported files */
141 #include "oaidl.h"
142 #include "ocidl.h"
143 #include "dxgicommon.h"
144 #include "dxgitype.h"
145 
146 #ifdef __cplusplus
147 extern "C"{
148 #endif
149 
150 
151 /* interface __MIDL_itf_dxgi_0000_0000 */
152 /* [local] */
153 
154 #define DXGI_CPU_ACCESS_NONE    ( 0 )
155 #define DXGI_CPU_ACCESS_DYNAMIC    ( 1 )
156 #define DXGI_CPU_ACCESS_READ_WRITE    ( 2 )
157 #define DXGI_CPU_ACCESS_SCRATCH    ( 3 )
158 #define DXGI_CPU_ACCESS_FIELD        15
159 #define DXGI_USAGE_SHADER_INPUT             0x00000010UL
160 #define DXGI_USAGE_RENDER_TARGET_OUTPUT     0x00000020UL
161 #define DXGI_USAGE_BACK_BUFFER              0x00000040UL
162 #define DXGI_USAGE_SHARED                   0x00000080UL
163 #define DXGI_USAGE_READ_ONLY                0x00000100UL
164 #define DXGI_USAGE_DISCARD_ON_PRESENT       0x00000200UL
165 #define DXGI_USAGE_UNORDERED_ACCESS         0x00000400UL
166 typedef UINT DXGI_USAGE;
167 
168 typedef struct DXGI_FRAME_STATISTICS
169     {
170     UINT PresentCount;
171     UINT PresentRefreshCount;
172     UINT SyncRefreshCount;
173     LARGE_INTEGER SyncQPCTime;
174     LARGE_INTEGER SyncGPUTime;
175     } 	DXGI_FRAME_STATISTICS;
176 
177 typedef struct DXGI_MAPPED_RECT
178     {
179     INT Pitch;
180     BYTE *pBits;
181     } 	DXGI_MAPPED_RECT;
182 
183 #ifdef __midl
184 #ifndef LUID_DEFINED
185 #define LUID_DEFINED 1
186 typedef struct _LUID
187     {
188     DWORD LowPart;
189     LONG HighPart;
190     } 	LUID;
191 
192 typedef struct _LUID *PLUID;
193 
194 #endif
195 #endif
196 typedef struct DXGI_ADAPTER_DESC
197     {
198     WCHAR Description[ 128 ];
199     UINT VendorId;
200     UINT DeviceId;
201     UINT SubSysId;
202     UINT Revision;
203     SIZE_T DedicatedVideoMemory;
204     SIZE_T DedicatedSystemMemory;
205     SIZE_T SharedSystemMemory;
206     LUID AdapterLuid;
207     } 	DXGI_ADAPTER_DESC;
208 
209 #if !defined(HMONITOR_DECLARED) && !defined(HMONITOR) && (WINVER < 0x0500)
210 #define HMONITOR_DECLARED
211 #if 0
212 typedef HANDLE HMONITOR;
213 
214 #endif
215 DECLARE_HANDLE(HMONITOR);
216 #endif
217 typedef struct DXGI_OUTPUT_DESC
218     {
219     WCHAR DeviceName[ 32 ];
220     RECT DesktopCoordinates;
221     BOOL AttachedToDesktop;
222     DXGI_MODE_ROTATION Rotation;
223     HMONITOR Monitor;
224     } 	DXGI_OUTPUT_DESC;
225 
226 typedef struct DXGI_SHARED_RESOURCE
227     {
228     HANDLE Handle;
229     } 	DXGI_SHARED_RESOURCE;
230 
231 #define	DXGI_RESOURCE_PRIORITY_MINIMUM	( 0x28000000 )
232 
233 #define	DXGI_RESOURCE_PRIORITY_LOW	( 0x50000000 )
234 
235 #define	DXGI_RESOURCE_PRIORITY_NORMAL	( 0x78000000 )
236 
237 #define	DXGI_RESOURCE_PRIORITY_HIGH	( 0xa0000000 )
238 
239 #define	DXGI_RESOURCE_PRIORITY_MAXIMUM	( 0xc8000000 )
240 
241 typedef
242 enum DXGI_RESIDENCY
243     {
244         DXGI_RESIDENCY_FULLY_RESIDENT	= 1,
245         DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY	= 2,
246         DXGI_RESIDENCY_EVICTED_TO_DISK	= 3
247     } 	DXGI_RESIDENCY;
248 
249 typedef struct DXGI_SURFACE_DESC
250     {
251     UINT Width;
252     UINT Height;
253     DXGI_FORMAT Format;
254     DXGI_SAMPLE_DESC SampleDesc;
255     } 	DXGI_SURFACE_DESC;
256 
257 typedef
258 enum DXGI_SWAP_EFFECT
259     {
260         DXGI_SWAP_EFFECT_DISCARD	= 0,
261         DXGI_SWAP_EFFECT_SEQUENTIAL	= 1,
262         DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL	= 3,
263         DXGI_SWAP_EFFECT_FLIP_DISCARD	= 4
264     } 	DXGI_SWAP_EFFECT;
265 
266 typedef
267 enum DXGI_SWAP_CHAIN_FLAG
268     {
269         DXGI_SWAP_CHAIN_FLAG_NONPREROTATED	= 1,
270         DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH	= 2,
271         DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE	= 4,
272         DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT	= 8,
273         DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER	= 16,
274         DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY	= 32,
275         DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT	= 64,
276         DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER	= 128,
277         DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO	= 256,
278         DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO	= 512,
279         DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED	= 1024,
280         DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING	= 2048,
281         DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS	= 4096
282     } 	DXGI_SWAP_CHAIN_FLAG;
283 
284 typedef struct DXGI_SWAP_CHAIN_DESC
285     {
286     DXGI_MODE_DESC BufferDesc;
287     DXGI_SAMPLE_DESC SampleDesc;
288     DXGI_USAGE BufferUsage;
289     UINT BufferCount;
290     HWND OutputWindow;
291     BOOL Windowed;
292     DXGI_SWAP_EFFECT SwapEffect;
293     UINT Flags;
294     } 	DXGI_SWAP_CHAIN_DESC;
295 
296 
297 
298 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_c_ifspec;
299 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_s_ifspec;
300 
301 #ifndef __IDXGIObject_INTERFACE_DEFINED__
302 #define __IDXGIObject_INTERFACE_DEFINED__
303 
304 /* interface IDXGIObject */
305 /* [unique][local][uuid][object] */
306 
307 
308 EXTERN_C const IID IID_IDXGIObject;
309 
310 #if defined(__cplusplus) && !defined(CINTERFACE)
311 
312     MIDL_INTERFACE("aec22fb8-76f3-4639-9be0-28eb43a67a2e")
313     IDXGIObject : public IUnknown
314     {
315     public:
316         virtual HRESULT STDMETHODCALLTYPE SetPrivateData(
317             /* [annotation][in] */
318             _In_  REFGUID Name,
319             /* [in] */ UINT DataSize,
320             /* [annotation][in] */
321             _In_reads_bytes_(DataSize)  const void *pData) = 0;
322 
323         virtual HRESULT STDMETHODCALLTYPE SetPrivateDataInterface(
324             /* [annotation][in] */
325             _In_  REFGUID Name,
326             /* [annotation][in] */
327             _In_opt_  const IUnknown *pUnknown) = 0;
328 
329         virtual HRESULT STDMETHODCALLTYPE GetPrivateData(
330             /* [annotation][in] */
331             _In_  REFGUID Name,
332             /* [annotation][out][in] */
333             _Inout_  UINT *pDataSize,
334             /* [annotation][out] */
335             _Out_writes_bytes_(*pDataSize)  void *pData) = 0;
336 
337         virtual HRESULT STDMETHODCALLTYPE GetParent(
338             /* [annotation][in] */
339             _In_  REFIID riid,
340             /* [annotation][retval][out] */
341             _COM_Outptr_  void **ppParent) = 0;
342 
343     };
344 
345 
346 #else 	/* C style interface */
347 
348     typedef struct IDXGIObjectVtbl
349     {
350         BEGIN_INTERFACE
351 
352         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
353             IDXGIObject * This,
354             /* [in] */ REFIID riid,
355             /* [annotation][iid_is][out] */
356             _COM_Outptr_  void **ppvObject);
357 
358         ULONG ( STDMETHODCALLTYPE *AddRef )(
359             IDXGIObject * This);
360 
361         ULONG ( STDMETHODCALLTYPE *Release )(
362             IDXGIObject * This);
363 
364         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
365             IDXGIObject * This,
366             /* [annotation][in] */
367             _In_  REFGUID Name,
368             /* [in] */ UINT DataSize,
369             /* [annotation][in] */
370             _In_reads_bytes_(DataSize)  const void *pData);
371 
372         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
373             IDXGIObject * This,
374             /* [annotation][in] */
375             _In_  REFGUID Name,
376             /* [annotation][in] */
377             _In_opt_  const IUnknown *pUnknown);
378 
379         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
380             IDXGIObject * This,
381             /* [annotation][in] */
382             _In_  REFGUID Name,
383             /* [annotation][out][in] */
384             _Inout_  UINT *pDataSize,
385             /* [annotation][out] */
386             _Out_writes_bytes_(*pDataSize)  void *pData);
387 
388         HRESULT ( STDMETHODCALLTYPE *GetParent )(
389             IDXGIObject * This,
390             /* [annotation][in] */
391             _In_  REFIID riid,
392             /* [annotation][retval][out] */
393             _COM_Outptr_  void **ppParent);
394 
395         END_INTERFACE
396     } IDXGIObjectVtbl;
397 
398     interface IDXGIObject
399     {
400         CONST_VTBL struct IDXGIObjectVtbl *lpVtbl;
401     };
402 
403 
404 
405 #ifdef COBJMACROS
406 
407 
408 #define IDXGIObject_QueryInterface(This,riid,ppvObject)	\
409     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
410 
411 #define IDXGIObject_AddRef(This)	\
412     ( (This)->lpVtbl -> AddRef(This) )
413 
414 #define IDXGIObject_Release(This)	\
415     ( (This)->lpVtbl -> Release(This) )
416 
417 
418 #define IDXGIObject_SetPrivateData(This,Name,DataSize,pData)	\
419     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
420 
421 #define IDXGIObject_SetPrivateDataInterface(This,Name,pUnknown)	\
422     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
423 
424 #define IDXGIObject_GetPrivateData(This,Name,pDataSize,pData)	\
425     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
426 
427 #define IDXGIObject_GetParent(This,riid,ppParent)	\
428     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
429 
430 #endif /* COBJMACROS */
431 
432 
433 #endif 	/* C style interface */
434 
435 
436 
437 
438 #endif 	/* __IDXGIObject_INTERFACE_DEFINED__ */
439 
440 
441 #ifndef __IDXGIDeviceSubObject_INTERFACE_DEFINED__
442 #define __IDXGIDeviceSubObject_INTERFACE_DEFINED__
443 
444 /* interface IDXGIDeviceSubObject */
445 /* [unique][local][uuid][object] */
446 
447 
448 EXTERN_C const IID IID_IDXGIDeviceSubObject;
449 
450 #if defined(__cplusplus) && !defined(CINTERFACE)
451 
452     MIDL_INTERFACE("3d3e0379-f9de-4d58-bb6c-18d62992f1a6")
453     IDXGIDeviceSubObject : public IDXGIObject
454     {
455     public:
456         virtual HRESULT STDMETHODCALLTYPE GetDevice(
457             /* [annotation][in] */
458             _In_  REFIID riid,
459             /* [annotation][retval][out] */
460             _COM_Outptr_  void **ppDevice) = 0;
461 
462     };
463 
464 
465 #else 	/* C style interface */
466 
467     typedef struct IDXGIDeviceSubObjectVtbl
468     {
469         BEGIN_INTERFACE
470 
471         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
472             IDXGIDeviceSubObject * This,
473             /* [in] */ REFIID riid,
474             /* [annotation][iid_is][out] */
475             _COM_Outptr_  void **ppvObject);
476 
477         ULONG ( STDMETHODCALLTYPE *AddRef )(
478             IDXGIDeviceSubObject * This);
479 
480         ULONG ( STDMETHODCALLTYPE *Release )(
481             IDXGIDeviceSubObject * This);
482 
483         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
484             IDXGIDeviceSubObject * This,
485             /* [annotation][in] */
486             _In_  REFGUID Name,
487             /* [in] */ UINT DataSize,
488             /* [annotation][in] */
489             _In_reads_bytes_(DataSize)  const void *pData);
490 
491         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
492             IDXGIDeviceSubObject * This,
493             /* [annotation][in] */
494             _In_  REFGUID Name,
495             /* [annotation][in] */
496             _In_opt_  const IUnknown *pUnknown);
497 
498         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
499             IDXGIDeviceSubObject * This,
500             /* [annotation][in] */
501             _In_  REFGUID Name,
502             /* [annotation][out][in] */
503             _Inout_  UINT *pDataSize,
504             /* [annotation][out] */
505             _Out_writes_bytes_(*pDataSize)  void *pData);
506 
507         HRESULT ( STDMETHODCALLTYPE *GetParent )(
508             IDXGIDeviceSubObject * This,
509             /* [annotation][in] */
510             _In_  REFIID riid,
511             /* [annotation][retval][out] */
512             _COM_Outptr_  void **ppParent);
513 
514         HRESULT ( STDMETHODCALLTYPE *GetDevice )(
515             IDXGIDeviceSubObject * This,
516             /* [annotation][in] */
517             _In_  REFIID riid,
518             /* [annotation][retval][out] */
519             _COM_Outptr_  void **ppDevice);
520 
521         END_INTERFACE
522     } IDXGIDeviceSubObjectVtbl;
523 
524     interface IDXGIDeviceSubObject
525     {
526         CONST_VTBL struct IDXGIDeviceSubObjectVtbl *lpVtbl;
527     };
528 
529 
530 
531 #ifdef COBJMACROS
532 
533 
534 #define IDXGIDeviceSubObject_QueryInterface(This,riid,ppvObject)	\
535     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
536 
537 #define IDXGIDeviceSubObject_AddRef(This)	\
538     ( (This)->lpVtbl -> AddRef(This) )
539 
540 #define IDXGIDeviceSubObject_Release(This)	\
541     ( (This)->lpVtbl -> Release(This) )
542 
543 
544 #define IDXGIDeviceSubObject_SetPrivateData(This,Name,DataSize,pData)	\
545     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
546 
547 #define IDXGIDeviceSubObject_SetPrivateDataInterface(This,Name,pUnknown)	\
548     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
549 
550 #define IDXGIDeviceSubObject_GetPrivateData(This,Name,pDataSize,pData)	\
551     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
552 
553 #define IDXGIDeviceSubObject_GetParent(This,riid,ppParent)	\
554     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
555 
556 
557 #define IDXGIDeviceSubObject_GetDevice(This,riid,ppDevice)	\
558     ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
559 
560 #endif /* COBJMACROS */
561 
562 
563 #endif 	/* C style interface */
564 
565 
566 
567 
568 #endif 	/* __IDXGIDeviceSubObject_INTERFACE_DEFINED__ */
569 
570 
571 #ifndef __IDXGIResource_INTERFACE_DEFINED__
572 #define __IDXGIResource_INTERFACE_DEFINED__
573 
574 /* interface IDXGIResource */
575 /* [unique][local][uuid][object] */
576 
577 
578 EXTERN_C const IID IID_IDXGIResource;
579 
580 #if defined(__cplusplus) && !defined(CINTERFACE)
581 
582     MIDL_INTERFACE("035f3ab4-482e-4e50-b41f-8a7f8bd8960b")
583     IDXGIResource : public IDXGIDeviceSubObject
584     {
585     public:
586         virtual HRESULT STDMETHODCALLTYPE GetSharedHandle(
587             /* [annotation][out] */
588             _Out_  HANDLE *pSharedHandle) = 0;
589 
590         virtual HRESULT STDMETHODCALLTYPE GetUsage(
591             /* [out] */ DXGI_USAGE *pUsage) = 0;
592 
593         virtual HRESULT STDMETHODCALLTYPE SetEvictionPriority(
594             /* [in] */ UINT EvictionPriority) = 0;
595 
596         virtual HRESULT STDMETHODCALLTYPE GetEvictionPriority(
597             /* [annotation][retval][out] */
598             _Out_  UINT *pEvictionPriority) = 0;
599 
600     };
601 
602 
603 #else 	/* C style interface */
604 
605     typedef struct IDXGIResourceVtbl
606     {
607         BEGIN_INTERFACE
608 
609         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
610             IDXGIResource * This,
611             /* [in] */ REFIID riid,
612             /* [annotation][iid_is][out] */
613             _COM_Outptr_  void **ppvObject);
614 
615         ULONG ( STDMETHODCALLTYPE *AddRef )(
616             IDXGIResource * This);
617 
618         ULONG ( STDMETHODCALLTYPE *Release )(
619             IDXGIResource * This);
620 
621         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
622             IDXGIResource * This,
623             /* [annotation][in] */
624             _In_  REFGUID Name,
625             /* [in] */ UINT DataSize,
626             /* [annotation][in] */
627             _In_reads_bytes_(DataSize)  const void *pData);
628 
629         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
630             IDXGIResource * This,
631             /* [annotation][in] */
632             _In_  REFGUID Name,
633             /* [annotation][in] */
634             _In_opt_  const IUnknown *pUnknown);
635 
636         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
637             IDXGIResource * This,
638             /* [annotation][in] */
639             _In_  REFGUID Name,
640             /* [annotation][out][in] */
641             _Inout_  UINT *pDataSize,
642             /* [annotation][out] */
643             _Out_writes_bytes_(*pDataSize)  void *pData);
644 
645         HRESULT ( STDMETHODCALLTYPE *GetParent )(
646             IDXGIResource * This,
647             /* [annotation][in] */
648             _In_  REFIID riid,
649             /* [annotation][retval][out] */
650             _COM_Outptr_  void **ppParent);
651 
652         HRESULT ( STDMETHODCALLTYPE *GetDevice )(
653             IDXGIResource * This,
654             /* [annotation][in] */
655             _In_  REFIID riid,
656             /* [annotation][retval][out] */
657             _COM_Outptr_  void **ppDevice);
658 
659         HRESULT ( STDMETHODCALLTYPE *GetSharedHandle )(
660             IDXGIResource * This,
661             /* [annotation][out] */
662             _Out_  HANDLE *pSharedHandle);
663 
664         HRESULT ( STDMETHODCALLTYPE *GetUsage )(
665             IDXGIResource * This,
666             /* [out] */ DXGI_USAGE *pUsage);
667 
668         HRESULT ( STDMETHODCALLTYPE *SetEvictionPriority )(
669             IDXGIResource * This,
670             /* [in] */ UINT EvictionPriority);
671 
672         HRESULT ( STDMETHODCALLTYPE *GetEvictionPriority )(
673             IDXGIResource * This,
674             /* [annotation][retval][out] */
675             _Out_  UINT *pEvictionPriority);
676 
677         END_INTERFACE
678     } IDXGIResourceVtbl;
679 
680     interface IDXGIResource
681     {
682         CONST_VTBL struct IDXGIResourceVtbl *lpVtbl;
683     };
684 
685 
686 
687 #ifdef COBJMACROS
688 
689 
690 #define IDXGIResource_QueryInterface(This,riid,ppvObject)	\
691     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
692 
693 #define IDXGIResource_AddRef(This)	\
694     ( (This)->lpVtbl -> AddRef(This) )
695 
696 #define IDXGIResource_Release(This)	\
697     ( (This)->lpVtbl -> Release(This) )
698 
699 
700 #define IDXGIResource_SetPrivateData(This,Name,DataSize,pData)	\
701     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
702 
703 #define IDXGIResource_SetPrivateDataInterface(This,Name,pUnknown)	\
704     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
705 
706 #define IDXGIResource_GetPrivateData(This,Name,pDataSize,pData)	\
707     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
708 
709 #define IDXGIResource_GetParent(This,riid,ppParent)	\
710     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
711 
712 
713 #define IDXGIResource_GetDevice(This,riid,ppDevice)	\
714     ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
715 
716 
717 #define IDXGIResource_GetSharedHandle(This,pSharedHandle)	\
718     ( (This)->lpVtbl -> GetSharedHandle(This,pSharedHandle) )
719 
720 #define IDXGIResource_GetUsage(This,pUsage)	\
721     ( (This)->lpVtbl -> GetUsage(This,pUsage) )
722 
723 #define IDXGIResource_SetEvictionPriority(This,EvictionPriority)	\
724     ( (This)->lpVtbl -> SetEvictionPriority(This,EvictionPriority) )
725 
726 #define IDXGIResource_GetEvictionPriority(This,pEvictionPriority)	\
727     ( (This)->lpVtbl -> GetEvictionPriority(This,pEvictionPriority) )
728 
729 #endif /* COBJMACROS */
730 
731 
732 #endif 	/* C style interface */
733 
734 
735 
736 
737 #endif 	/* __IDXGIResource_INTERFACE_DEFINED__ */
738 
739 
740 #ifndef __IDXGIKeyedMutex_INTERFACE_DEFINED__
741 #define __IDXGIKeyedMutex_INTERFACE_DEFINED__
742 
743 /* interface IDXGIKeyedMutex */
744 /* [unique][local][uuid][object] */
745 
746 
747 EXTERN_C const IID IID_IDXGIKeyedMutex;
748 
749 #if defined(__cplusplus) && !defined(CINTERFACE)
750 
751     MIDL_INTERFACE("9d8e1289-d7b3-465f-8126-250e349af85d")
752     IDXGIKeyedMutex : public IDXGIDeviceSubObject
753     {
754     public:
755         virtual HRESULT STDMETHODCALLTYPE AcquireSync(
756             /* [in] */ UINT64 Key,
757             /* [in] */ DWORD dwMilliseconds) = 0;
758 
759         virtual HRESULT STDMETHODCALLTYPE ReleaseSync(
760             /* [in] */ UINT64 Key) = 0;
761 
762     };
763 
764 
765 #else 	/* C style interface */
766 
767     typedef struct IDXGIKeyedMutexVtbl
768     {
769         BEGIN_INTERFACE
770 
771         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
772             IDXGIKeyedMutex * This,
773             /* [in] */ REFIID riid,
774             /* [annotation][iid_is][out] */
775             _COM_Outptr_  void **ppvObject);
776 
777         ULONG ( STDMETHODCALLTYPE *AddRef )(
778             IDXGIKeyedMutex * This);
779 
780         ULONG ( STDMETHODCALLTYPE *Release )(
781             IDXGIKeyedMutex * This);
782 
783         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
784             IDXGIKeyedMutex * This,
785             /* [annotation][in] */
786             _In_  REFGUID Name,
787             /* [in] */ UINT DataSize,
788             /* [annotation][in] */
789             _In_reads_bytes_(DataSize)  const void *pData);
790 
791         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
792             IDXGIKeyedMutex * This,
793             /* [annotation][in] */
794             _In_  REFGUID Name,
795             /* [annotation][in] */
796             _In_opt_  const IUnknown *pUnknown);
797 
798         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
799             IDXGIKeyedMutex * This,
800             /* [annotation][in] */
801             _In_  REFGUID Name,
802             /* [annotation][out][in] */
803             _Inout_  UINT *pDataSize,
804             /* [annotation][out] */
805             _Out_writes_bytes_(*pDataSize)  void *pData);
806 
807         HRESULT ( STDMETHODCALLTYPE *GetParent )(
808             IDXGIKeyedMutex * This,
809             /* [annotation][in] */
810             _In_  REFIID riid,
811             /* [annotation][retval][out] */
812             _COM_Outptr_  void **ppParent);
813 
814         HRESULT ( STDMETHODCALLTYPE *GetDevice )(
815             IDXGIKeyedMutex * This,
816             /* [annotation][in] */
817             _In_  REFIID riid,
818             /* [annotation][retval][out] */
819             _COM_Outptr_  void **ppDevice);
820 
821         HRESULT ( STDMETHODCALLTYPE *AcquireSync )(
822             IDXGIKeyedMutex * This,
823             /* [in] */ UINT64 Key,
824             /* [in] */ DWORD dwMilliseconds);
825 
826         HRESULT ( STDMETHODCALLTYPE *ReleaseSync )(
827             IDXGIKeyedMutex * This,
828             /* [in] */ UINT64 Key);
829 
830         END_INTERFACE
831     } IDXGIKeyedMutexVtbl;
832 
833     interface IDXGIKeyedMutex
834     {
835         CONST_VTBL struct IDXGIKeyedMutexVtbl *lpVtbl;
836     };
837 
838 
839 
840 #ifdef COBJMACROS
841 
842 
843 #define IDXGIKeyedMutex_QueryInterface(This,riid,ppvObject)	\
844     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
845 
846 #define IDXGIKeyedMutex_AddRef(This)	\
847     ( (This)->lpVtbl -> AddRef(This) )
848 
849 #define IDXGIKeyedMutex_Release(This)	\
850     ( (This)->lpVtbl -> Release(This) )
851 
852 
853 #define IDXGIKeyedMutex_SetPrivateData(This,Name,DataSize,pData)	\
854     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
855 
856 #define IDXGIKeyedMutex_SetPrivateDataInterface(This,Name,pUnknown)	\
857     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
858 
859 #define IDXGIKeyedMutex_GetPrivateData(This,Name,pDataSize,pData)	\
860     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
861 
862 #define IDXGIKeyedMutex_GetParent(This,riid,ppParent)	\
863     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
864 
865 
866 #define IDXGIKeyedMutex_GetDevice(This,riid,ppDevice)	\
867     ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
868 
869 
870 #define IDXGIKeyedMutex_AcquireSync(This,Key,dwMilliseconds)	\
871     ( (This)->lpVtbl -> AcquireSync(This,Key,dwMilliseconds) )
872 
873 #define IDXGIKeyedMutex_ReleaseSync(This,Key)	\
874     ( (This)->lpVtbl -> ReleaseSync(This,Key) )
875 
876 #endif /* COBJMACROS */
877 
878 
879 #endif 	/* C style interface */
880 
881 
882 
883 
884 #endif 	/* __IDXGIKeyedMutex_INTERFACE_DEFINED__ */
885 
886 
887 /* interface __MIDL_itf_dxgi_0000_0004 */
888 /* [local] */
889 
890 #define	DXGI_MAP_READ	( 1UL )
891 
892 #define	DXGI_MAP_WRITE	( 2UL )
893 
894 #define	DXGI_MAP_DISCARD	( 4UL )
895 
896 
897 
898 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_c_ifspec;
899 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_s_ifspec;
900 
901 #ifndef __IDXGISurface_INTERFACE_DEFINED__
902 #define __IDXGISurface_INTERFACE_DEFINED__
903 
904 /* interface IDXGISurface */
905 /* [unique][local][uuid][object] */
906 
907 
908 EXTERN_C const IID IID_IDXGISurface;
909 
910 #if defined(__cplusplus) && !defined(CINTERFACE)
911 
912     MIDL_INTERFACE("cafcb56c-6ac3-4889-bf47-9e23bbd260ec")
913     IDXGISurface : public IDXGIDeviceSubObject
914     {
915     public:
916         virtual HRESULT STDMETHODCALLTYPE GetDesc(
917             /* [annotation][out] */
918             _Out_  DXGI_SURFACE_DESC *pDesc) = 0;
919 
920         virtual HRESULT STDMETHODCALLTYPE Map(
921             /* [annotation][out] */
922             _Out_  DXGI_MAPPED_RECT *pLockedRect,
923             /* [in] */ UINT MapFlags) = 0;
924 
925         virtual HRESULT STDMETHODCALLTYPE Unmap( void) = 0;
926 
927     };
928 
929 
930 #else 	/* C style interface */
931 
932     typedef struct IDXGISurfaceVtbl
933     {
934         BEGIN_INTERFACE
935 
936         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
937             IDXGISurface * This,
938             /* [in] */ REFIID riid,
939             /* [annotation][iid_is][out] */
940             _COM_Outptr_  void **ppvObject);
941 
942         ULONG ( STDMETHODCALLTYPE *AddRef )(
943             IDXGISurface * This);
944 
945         ULONG ( STDMETHODCALLTYPE *Release )(
946             IDXGISurface * This);
947 
948         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
949             IDXGISurface * This,
950             /* [annotation][in] */
951             _In_  REFGUID Name,
952             /* [in] */ UINT DataSize,
953             /* [annotation][in] */
954             _In_reads_bytes_(DataSize)  const void *pData);
955 
956         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
957             IDXGISurface * This,
958             /* [annotation][in] */
959             _In_  REFGUID Name,
960             /* [annotation][in] */
961             _In_opt_  const IUnknown *pUnknown);
962 
963         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
964             IDXGISurface * This,
965             /* [annotation][in] */
966             _In_  REFGUID Name,
967             /* [annotation][out][in] */
968             _Inout_  UINT *pDataSize,
969             /* [annotation][out] */
970             _Out_writes_bytes_(*pDataSize)  void *pData);
971 
972         HRESULT ( STDMETHODCALLTYPE *GetParent )(
973             IDXGISurface * This,
974             /* [annotation][in] */
975             _In_  REFIID riid,
976             /* [annotation][retval][out] */
977             _COM_Outptr_  void **ppParent);
978 
979         HRESULT ( STDMETHODCALLTYPE *GetDevice )(
980             IDXGISurface * This,
981             /* [annotation][in] */
982             _In_  REFIID riid,
983             /* [annotation][retval][out] */
984             _COM_Outptr_  void **ppDevice);
985 
986         HRESULT ( STDMETHODCALLTYPE *GetDesc )(
987             IDXGISurface * This,
988             /* [annotation][out] */
989             _Out_  DXGI_SURFACE_DESC *pDesc);
990 
991         HRESULT ( STDMETHODCALLTYPE *Map )(
992             IDXGISurface * This,
993             /* [annotation][out] */
994             _Out_  DXGI_MAPPED_RECT *pLockedRect,
995             /* [in] */ UINT MapFlags);
996 
997         HRESULT ( STDMETHODCALLTYPE *Unmap )(
998             IDXGISurface * This);
999 
1000         END_INTERFACE
1001     } IDXGISurfaceVtbl;
1002 
1003     interface IDXGISurface
1004     {
1005         CONST_VTBL struct IDXGISurfaceVtbl *lpVtbl;
1006     };
1007 
1008 
1009 
1010 #ifdef COBJMACROS
1011 
1012 
1013 #define IDXGISurface_QueryInterface(This,riid,ppvObject)	\
1014     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1015 
1016 #define IDXGISurface_AddRef(This)	\
1017     ( (This)->lpVtbl -> AddRef(This) )
1018 
1019 #define IDXGISurface_Release(This)	\
1020     ( (This)->lpVtbl -> Release(This) )
1021 
1022 
1023 #define IDXGISurface_SetPrivateData(This,Name,DataSize,pData)	\
1024     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
1025 
1026 #define IDXGISurface_SetPrivateDataInterface(This,Name,pUnknown)	\
1027     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
1028 
1029 #define IDXGISurface_GetPrivateData(This,Name,pDataSize,pData)	\
1030     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
1031 
1032 #define IDXGISurface_GetParent(This,riid,ppParent)	\
1033     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
1034 
1035 
1036 #define IDXGISurface_GetDevice(This,riid,ppDevice)	\
1037     ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
1038 
1039 
1040 #define IDXGISurface_GetDesc(This,pDesc)	\
1041     ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1042 
1043 #define IDXGISurface_Map(This,pLockedRect,MapFlags)	\
1044     ( (This)->lpVtbl -> Map(This,pLockedRect,MapFlags) )
1045 
1046 #define IDXGISurface_Unmap(This)	\
1047     ( (This)->lpVtbl -> Unmap(This) )
1048 
1049 #endif /* COBJMACROS */
1050 
1051 
1052 #endif 	/* C style interface */
1053 
1054 
1055 
1056 
1057 #endif 	/* __IDXGISurface_INTERFACE_DEFINED__ */
1058 
1059 
1060 #ifndef __IDXGISurface1_INTERFACE_DEFINED__
1061 #define __IDXGISurface1_INTERFACE_DEFINED__
1062 
1063 /* interface IDXGISurface1 */
1064 /* [unique][local][uuid][object] */
1065 
1066 
1067 EXTERN_C const IID IID_IDXGISurface1;
1068 
1069 #if defined(__cplusplus) && !defined(CINTERFACE)
1070 
1071     MIDL_INTERFACE("4AE63092-6327-4c1b-80AE-BFE12EA32B86")
1072     IDXGISurface1 : public IDXGISurface
1073     {
1074     public:
1075         virtual HRESULT STDMETHODCALLTYPE GetDC(
1076             /* [in] */ BOOL Discard,
1077             /* [annotation][out] */
1078             _Out_  HDC *phdc) = 0;
1079 
1080         virtual HRESULT STDMETHODCALLTYPE ReleaseDC(
1081             /* [annotation][in] */
1082             _In_opt_  RECT *pDirtyRect) = 0;
1083 
1084     };
1085 
1086 
1087 #else 	/* C style interface */
1088 
1089     typedef struct IDXGISurface1Vtbl
1090     {
1091         BEGIN_INTERFACE
1092 
1093         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1094             IDXGISurface1 * This,
1095             /* [in] */ REFIID riid,
1096             /* [annotation][iid_is][out] */
1097             _COM_Outptr_  void **ppvObject);
1098 
1099         ULONG ( STDMETHODCALLTYPE *AddRef )(
1100             IDXGISurface1 * This);
1101 
1102         ULONG ( STDMETHODCALLTYPE *Release )(
1103             IDXGISurface1 * This);
1104 
1105         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1106             IDXGISurface1 * This,
1107             /* [annotation][in] */
1108             _In_  REFGUID Name,
1109             /* [in] */ UINT DataSize,
1110             /* [annotation][in] */
1111             _In_reads_bytes_(DataSize)  const void *pData);
1112 
1113         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1114             IDXGISurface1 * This,
1115             /* [annotation][in] */
1116             _In_  REFGUID Name,
1117             /* [annotation][in] */
1118             _In_opt_  const IUnknown *pUnknown);
1119 
1120         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1121             IDXGISurface1 * This,
1122             /* [annotation][in] */
1123             _In_  REFGUID Name,
1124             /* [annotation][out][in] */
1125             _Inout_  UINT *pDataSize,
1126             /* [annotation][out] */
1127             _Out_writes_bytes_(*pDataSize)  void *pData);
1128 
1129         HRESULT ( STDMETHODCALLTYPE *GetParent )(
1130             IDXGISurface1 * This,
1131             /* [annotation][in] */
1132             _In_  REFIID riid,
1133             /* [annotation][retval][out] */
1134             _COM_Outptr_  void **ppParent);
1135 
1136         HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1137             IDXGISurface1 * This,
1138             /* [annotation][in] */
1139             _In_  REFIID riid,
1140             /* [annotation][retval][out] */
1141             _COM_Outptr_  void **ppDevice);
1142 
1143         HRESULT ( STDMETHODCALLTYPE *GetDesc )(
1144             IDXGISurface1 * This,
1145             /* [annotation][out] */
1146             _Out_  DXGI_SURFACE_DESC *pDesc);
1147 
1148         HRESULT ( STDMETHODCALLTYPE *Map )(
1149             IDXGISurface1 * This,
1150             /* [annotation][out] */
1151             _Out_  DXGI_MAPPED_RECT *pLockedRect,
1152             /* [in] */ UINT MapFlags);
1153 
1154         HRESULT ( STDMETHODCALLTYPE *Unmap )(
1155             IDXGISurface1 * This);
1156 
1157         HRESULT ( STDMETHODCALLTYPE *GetDC )(
1158             IDXGISurface1 * This,
1159             /* [in] */ BOOL Discard,
1160             /* [annotation][out] */
1161             _Out_  HDC *phdc);
1162 
1163         HRESULT ( STDMETHODCALLTYPE *ReleaseDC )(
1164             IDXGISurface1 * This,
1165             /* [annotation][in] */
1166             _In_opt_  RECT *pDirtyRect);
1167 
1168         END_INTERFACE
1169     } IDXGISurface1Vtbl;
1170 
1171     interface IDXGISurface1
1172     {
1173         CONST_VTBL struct IDXGISurface1Vtbl *lpVtbl;
1174     };
1175 
1176 
1177 
1178 #ifdef COBJMACROS
1179 
1180 
1181 #define IDXGISurface1_QueryInterface(This,riid,ppvObject)	\
1182     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1183 
1184 #define IDXGISurface1_AddRef(This)	\
1185     ( (This)->lpVtbl -> AddRef(This) )
1186 
1187 #define IDXGISurface1_Release(This)	\
1188     ( (This)->lpVtbl -> Release(This) )
1189 
1190 
1191 #define IDXGISurface1_SetPrivateData(This,Name,DataSize,pData)	\
1192     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
1193 
1194 #define IDXGISurface1_SetPrivateDataInterface(This,Name,pUnknown)	\
1195     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
1196 
1197 #define IDXGISurface1_GetPrivateData(This,Name,pDataSize,pData)	\
1198     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
1199 
1200 #define IDXGISurface1_GetParent(This,riid,ppParent)	\
1201     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
1202 
1203 
1204 #define IDXGISurface1_GetDevice(This,riid,ppDevice)	\
1205     ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
1206 
1207 
1208 #define IDXGISurface1_GetDesc(This,pDesc)	\
1209     ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1210 
1211 #define IDXGISurface1_Map(This,pLockedRect,MapFlags)	\
1212     ( (This)->lpVtbl -> Map(This,pLockedRect,MapFlags) )
1213 
1214 #define IDXGISurface1_Unmap(This)	\
1215     ( (This)->lpVtbl -> Unmap(This) )
1216 
1217 
1218 #define IDXGISurface1_GetDC(This,Discard,phdc)	\
1219     ( (This)->lpVtbl -> GetDC(This,Discard,phdc) )
1220 
1221 #define IDXGISurface1_ReleaseDC(This,pDirtyRect)	\
1222     ( (This)->lpVtbl -> ReleaseDC(This,pDirtyRect) )
1223 
1224 #endif /* COBJMACROS */
1225 
1226 
1227 #endif 	/* C style interface */
1228 
1229 
1230 
1231 
1232 #endif 	/* __IDXGISurface1_INTERFACE_DEFINED__ */
1233 
1234 
1235 /* interface __MIDL_itf_dxgi_0000_0006 */
1236 /* [local] */
1237 
1238 
1239 
1240 
1241 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_c_ifspec;
1242 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_s_ifspec;
1243 
1244 #ifndef __IDXGIAdapter_INTERFACE_DEFINED__
1245 #define __IDXGIAdapter_INTERFACE_DEFINED__
1246 
1247 /* interface IDXGIAdapter */
1248 /* [unique][local][uuid][object] */
1249 
1250 
1251 EXTERN_C const IID IID_IDXGIAdapter;
1252 
1253 #if defined(__cplusplus) && !defined(CINTERFACE)
1254 
1255     MIDL_INTERFACE("2411e7e1-12ac-4ccf-bd14-9798e8534dc0")
1256     IDXGIAdapter : public IDXGIObject
1257     {
1258     public:
1259         virtual HRESULT STDMETHODCALLTYPE EnumOutputs(
1260             /* [in] */ UINT Output,
1261             /* [annotation][out][in] */
1262             _COM_Outptr_  IDXGIOutput **ppOutput) = 0;
1263 
1264         virtual HRESULT STDMETHODCALLTYPE GetDesc(
1265             /* [annotation][out] */
1266             _Out_  DXGI_ADAPTER_DESC *pDesc) = 0;
1267 
1268         virtual HRESULT STDMETHODCALLTYPE CheckInterfaceSupport(
1269             /* [annotation][in] */
1270             _In_  REFGUID InterfaceName,
1271             /* [annotation][out] */
1272             _Out_  LARGE_INTEGER *pUMDVersion) = 0;
1273 
1274     };
1275 
1276 
1277 #else 	/* C style interface */
1278 
1279     typedef struct IDXGIAdapterVtbl
1280     {
1281         BEGIN_INTERFACE
1282 
1283         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1284             IDXGIAdapter * This,
1285             /* [in] */ REFIID riid,
1286             /* [annotation][iid_is][out] */
1287             _COM_Outptr_  void **ppvObject);
1288 
1289         ULONG ( STDMETHODCALLTYPE *AddRef )(
1290             IDXGIAdapter * This);
1291 
1292         ULONG ( STDMETHODCALLTYPE *Release )(
1293             IDXGIAdapter * This);
1294 
1295         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1296             IDXGIAdapter * This,
1297             /* [annotation][in] */
1298             _In_  REFGUID Name,
1299             /* [in] */ UINT DataSize,
1300             /* [annotation][in] */
1301             _In_reads_bytes_(DataSize)  const void *pData);
1302 
1303         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1304             IDXGIAdapter * This,
1305             /* [annotation][in] */
1306             _In_  REFGUID Name,
1307             /* [annotation][in] */
1308             _In_opt_  const IUnknown *pUnknown);
1309 
1310         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1311             IDXGIAdapter * This,
1312             /* [annotation][in] */
1313             _In_  REFGUID Name,
1314             /* [annotation][out][in] */
1315             _Inout_  UINT *pDataSize,
1316             /* [annotation][out] */
1317             _Out_writes_bytes_(*pDataSize)  void *pData);
1318 
1319         HRESULT ( STDMETHODCALLTYPE *GetParent )(
1320             IDXGIAdapter * This,
1321             /* [annotation][in] */
1322             _In_  REFIID riid,
1323             /* [annotation][retval][out] */
1324             _COM_Outptr_  void **ppParent);
1325 
1326         HRESULT ( STDMETHODCALLTYPE *EnumOutputs )(
1327             IDXGIAdapter * This,
1328             /* [in] */ UINT Output,
1329             /* [annotation][out][in] */
1330             _COM_Outptr_  IDXGIOutput **ppOutput);
1331 
1332         HRESULT ( STDMETHODCALLTYPE *GetDesc )(
1333             IDXGIAdapter * This,
1334             /* [annotation][out] */
1335             _Out_  DXGI_ADAPTER_DESC *pDesc);
1336 
1337         HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )(
1338             IDXGIAdapter * This,
1339             /* [annotation][in] */
1340             _In_  REFGUID InterfaceName,
1341             /* [annotation][out] */
1342             _Out_  LARGE_INTEGER *pUMDVersion);
1343 
1344         END_INTERFACE
1345     } IDXGIAdapterVtbl;
1346 
1347     interface IDXGIAdapter
1348     {
1349         CONST_VTBL struct IDXGIAdapterVtbl *lpVtbl;
1350     };
1351 
1352 
1353 
1354 #ifdef COBJMACROS
1355 
1356 
1357 #define IDXGIAdapter_QueryInterface(This,riid,ppvObject)	\
1358     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1359 
1360 #define IDXGIAdapter_AddRef(This)	\
1361     ( (This)->lpVtbl -> AddRef(This) )
1362 
1363 #define IDXGIAdapter_Release(This)	\
1364     ( (This)->lpVtbl -> Release(This) )
1365 
1366 
1367 #define IDXGIAdapter_SetPrivateData(This,Name,DataSize,pData)	\
1368     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
1369 
1370 #define IDXGIAdapter_SetPrivateDataInterface(This,Name,pUnknown)	\
1371     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
1372 
1373 #define IDXGIAdapter_GetPrivateData(This,Name,pDataSize,pData)	\
1374     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
1375 
1376 #define IDXGIAdapter_GetParent(This,riid,ppParent)	\
1377     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
1378 
1379 
1380 #define IDXGIAdapter_EnumOutputs(This,Output,ppOutput)	\
1381     ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) )
1382 
1383 #define IDXGIAdapter_GetDesc(This,pDesc)	\
1384     ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1385 
1386 #define IDXGIAdapter_CheckInterfaceSupport(This,InterfaceName,pUMDVersion)	\
1387     ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) )
1388 
1389 #endif /* COBJMACROS */
1390 
1391 
1392 #endif 	/* C style interface */
1393 
1394 
1395 
1396 
1397 #endif 	/* __IDXGIAdapter_INTERFACE_DEFINED__ */
1398 
1399 
1400 /* interface __MIDL_itf_dxgi_0000_0007 */
1401 /* [local] */
1402 
1403 #define	DXGI_ENUM_MODES_INTERLACED	( 1UL )
1404 
1405 #define	DXGI_ENUM_MODES_SCALING	( 2UL )
1406 
1407 
1408 
1409 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_c_ifspec;
1410 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_s_ifspec;
1411 
1412 #ifndef __IDXGIOutput_INTERFACE_DEFINED__
1413 #define __IDXGIOutput_INTERFACE_DEFINED__
1414 
1415 /* interface IDXGIOutput */
1416 /* [unique][local][uuid][object] */
1417 
1418 
1419 EXTERN_C const IID IID_IDXGIOutput;
1420 
1421 #if defined(__cplusplus) && !defined(CINTERFACE)
1422 
1423     MIDL_INTERFACE("ae02eedb-c735-4690-8d52-5a8dc20213aa")
1424     IDXGIOutput : public IDXGIObject
1425     {
1426     public:
1427         virtual HRESULT STDMETHODCALLTYPE GetDesc(
1428             /* [annotation][out] */
1429             _Out_  DXGI_OUTPUT_DESC *pDesc) = 0;
1430 
1431         virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList(
1432             /* [in] */ DXGI_FORMAT EnumFormat,
1433             /* [in] */ UINT Flags,
1434             /* [annotation][out][in] */
1435             _Inout_  UINT *pNumModes,
1436             /* [annotation][out] */
1437             _Out_writes_to_opt_(*pNumModes,*pNumModes)  DXGI_MODE_DESC *pDesc) = 0;
1438 
1439         virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode(
1440             /* [annotation][in] */
1441             _In_  const DXGI_MODE_DESC *pModeToMatch,
1442             /* [annotation][out] */
1443             _Out_  DXGI_MODE_DESC *pClosestMatch,
1444             /* [annotation][in] */
1445             _In_opt_  IUnknown *pConcernedDevice) = 0;
1446 
1447         virtual HRESULT STDMETHODCALLTYPE WaitForVBlank( void) = 0;
1448 
1449         virtual HRESULT STDMETHODCALLTYPE TakeOwnership(
1450             /* [annotation][in] */
1451             _In_  IUnknown *pDevice,
1452             BOOL Exclusive) = 0;
1453 
1454         virtual void STDMETHODCALLTYPE ReleaseOwnership( void) = 0;
1455 
1456         virtual HRESULT STDMETHODCALLTYPE GetGammaControlCapabilities(
1457             /* [annotation][out] */
1458             _Out_  DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps) = 0;
1459 
1460         virtual HRESULT STDMETHODCALLTYPE SetGammaControl(
1461             /* [annotation][in] */
1462             _In_  const DXGI_GAMMA_CONTROL *pArray) = 0;
1463 
1464         virtual HRESULT STDMETHODCALLTYPE GetGammaControl(
1465             /* [annotation][out] */
1466             _Out_  DXGI_GAMMA_CONTROL *pArray) = 0;
1467 
1468         virtual HRESULT STDMETHODCALLTYPE SetDisplaySurface(
1469             /* [annotation][in] */
1470             _In_  IDXGISurface *pScanoutSurface) = 0;
1471 
1472         virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData(
1473             /* [annotation][in] */
1474             _In_  IDXGISurface *pDestination) = 0;
1475 
1476         virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics(
1477             /* [annotation][out] */
1478             _Out_  DXGI_FRAME_STATISTICS *pStats) = 0;
1479 
1480     };
1481 
1482 
1483 #else 	/* C style interface */
1484 
1485     typedef struct IDXGIOutputVtbl
1486     {
1487         BEGIN_INTERFACE
1488 
1489         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1490             IDXGIOutput * This,
1491             /* [in] */ REFIID riid,
1492             /* [annotation][iid_is][out] */
1493             _COM_Outptr_  void **ppvObject);
1494 
1495         ULONG ( STDMETHODCALLTYPE *AddRef )(
1496             IDXGIOutput * This);
1497 
1498         ULONG ( STDMETHODCALLTYPE *Release )(
1499             IDXGIOutput * This);
1500 
1501         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1502             IDXGIOutput * This,
1503             /* [annotation][in] */
1504             _In_  REFGUID Name,
1505             /* [in] */ UINT DataSize,
1506             /* [annotation][in] */
1507             _In_reads_bytes_(DataSize)  const void *pData);
1508 
1509         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1510             IDXGIOutput * This,
1511             /* [annotation][in] */
1512             _In_  REFGUID Name,
1513             /* [annotation][in] */
1514             _In_opt_  const IUnknown *pUnknown);
1515 
1516         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1517             IDXGIOutput * This,
1518             /* [annotation][in] */
1519             _In_  REFGUID Name,
1520             /* [annotation][out][in] */
1521             _Inout_  UINT *pDataSize,
1522             /* [annotation][out] */
1523             _Out_writes_bytes_(*pDataSize)  void *pData);
1524 
1525         HRESULT ( STDMETHODCALLTYPE *GetParent )(
1526             IDXGIOutput * This,
1527             /* [annotation][in] */
1528             _In_  REFIID riid,
1529             /* [annotation][retval][out] */
1530             _COM_Outptr_  void **ppParent);
1531 
1532         HRESULT ( STDMETHODCALLTYPE *GetDesc )(
1533             IDXGIOutput * This,
1534             /* [annotation][out] */
1535             _Out_  DXGI_OUTPUT_DESC *pDesc);
1536 
1537         HRESULT ( STDMETHODCALLTYPE *GetDisplayModeList )(
1538             IDXGIOutput * This,
1539             /* [in] */ DXGI_FORMAT EnumFormat,
1540             /* [in] */ UINT Flags,
1541             /* [annotation][out][in] */
1542             _Inout_  UINT *pNumModes,
1543             /* [annotation][out] */
1544             _Out_writes_to_opt_(*pNumModes,*pNumModes)  DXGI_MODE_DESC *pDesc);
1545 
1546         HRESULT ( STDMETHODCALLTYPE *FindClosestMatchingMode )(
1547             IDXGIOutput * This,
1548             /* [annotation][in] */
1549             _In_  const DXGI_MODE_DESC *pModeToMatch,
1550             /* [annotation][out] */
1551             _Out_  DXGI_MODE_DESC *pClosestMatch,
1552             /* [annotation][in] */
1553             _In_opt_  IUnknown *pConcernedDevice);
1554 
1555         HRESULT ( STDMETHODCALLTYPE *WaitForVBlank )(
1556             IDXGIOutput * This);
1557 
1558         HRESULT ( STDMETHODCALLTYPE *TakeOwnership )(
1559             IDXGIOutput * This,
1560             /* [annotation][in] */
1561             _In_  IUnknown *pDevice,
1562             BOOL Exclusive);
1563 
1564         void ( STDMETHODCALLTYPE *ReleaseOwnership )(
1565             IDXGIOutput * This);
1566 
1567         HRESULT ( STDMETHODCALLTYPE *GetGammaControlCapabilities )(
1568             IDXGIOutput * This,
1569             /* [annotation][out] */
1570             _Out_  DXGI_GAMMA_CONTROL_CAPABILITIES *pGammaCaps);
1571 
1572         HRESULT ( STDMETHODCALLTYPE *SetGammaControl )(
1573             IDXGIOutput * This,
1574             /* [annotation][in] */
1575             _In_  const DXGI_GAMMA_CONTROL *pArray);
1576 
1577         HRESULT ( STDMETHODCALLTYPE *GetGammaControl )(
1578             IDXGIOutput * This,
1579             /* [annotation][out] */
1580             _Out_  DXGI_GAMMA_CONTROL *pArray);
1581 
1582         HRESULT ( STDMETHODCALLTYPE *SetDisplaySurface )(
1583             IDXGIOutput * This,
1584             /* [annotation][in] */
1585             _In_  IDXGISurface *pScanoutSurface);
1586 
1587         HRESULT ( STDMETHODCALLTYPE *GetDisplaySurfaceData )(
1588             IDXGIOutput * This,
1589             /* [annotation][in] */
1590             _In_  IDXGISurface *pDestination);
1591 
1592         HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )(
1593             IDXGIOutput * This,
1594             /* [annotation][out] */
1595             _Out_  DXGI_FRAME_STATISTICS *pStats);
1596 
1597         END_INTERFACE
1598     } IDXGIOutputVtbl;
1599 
1600     interface IDXGIOutput
1601     {
1602         CONST_VTBL struct IDXGIOutputVtbl *lpVtbl;
1603     };
1604 
1605 
1606 
1607 #ifdef COBJMACROS
1608 
1609 
1610 #define IDXGIOutput_QueryInterface(This,riid,ppvObject)	\
1611     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1612 
1613 #define IDXGIOutput_AddRef(This)	\
1614     ( (This)->lpVtbl -> AddRef(This) )
1615 
1616 #define IDXGIOutput_Release(This)	\
1617     ( (This)->lpVtbl -> Release(This) )
1618 
1619 
1620 #define IDXGIOutput_SetPrivateData(This,Name,DataSize,pData)	\
1621     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
1622 
1623 #define IDXGIOutput_SetPrivateDataInterface(This,Name,pUnknown)	\
1624     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
1625 
1626 #define IDXGIOutput_GetPrivateData(This,Name,pDataSize,pData)	\
1627     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
1628 
1629 #define IDXGIOutput_GetParent(This,riid,ppParent)	\
1630     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
1631 
1632 
1633 #define IDXGIOutput_GetDesc(This,pDesc)	\
1634     ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1635 
1636 #define IDXGIOutput_GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc)	\
1637     ( (This)->lpVtbl -> GetDisplayModeList(This,EnumFormat,Flags,pNumModes,pDesc) )
1638 
1639 #define IDXGIOutput_FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice)	\
1640     ( (This)->lpVtbl -> FindClosestMatchingMode(This,pModeToMatch,pClosestMatch,pConcernedDevice) )
1641 
1642 #define IDXGIOutput_WaitForVBlank(This)	\
1643     ( (This)->lpVtbl -> WaitForVBlank(This) )
1644 
1645 #define IDXGIOutput_TakeOwnership(This,pDevice,Exclusive)	\
1646     ( (This)->lpVtbl -> TakeOwnership(This,pDevice,Exclusive) )
1647 
1648 #define IDXGIOutput_ReleaseOwnership(This)	\
1649     ( (This)->lpVtbl -> ReleaseOwnership(This) )
1650 
1651 #define IDXGIOutput_GetGammaControlCapabilities(This,pGammaCaps)	\
1652     ( (This)->lpVtbl -> GetGammaControlCapabilities(This,pGammaCaps) )
1653 
1654 #define IDXGIOutput_SetGammaControl(This,pArray)	\
1655     ( (This)->lpVtbl -> SetGammaControl(This,pArray) )
1656 
1657 #define IDXGIOutput_GetGammaControl(This,pArray)	\
1658     ( (This)->lpVtbl -> GetGammaControl(This,pArray) )
1659 
1660 #define IDXGIOutput_SetDisplaySurface(This,pScanoutSurface)	\
1661     ( (This)->lpVtbl -> SetDisplaySurface(This,pScanoutSurface) )
1662 
1663 #define IDXGIOutput_GetDisplaySurfaceData(This,pDestination)	\
1664     ( (This)->lpVtbl -> GetDisplaySurfaceData(This,pDestination) )
1665 
1666 #define IDXGIOutput_GetFrameStatistics(This,pStats)	\
1667     ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) )
1668 
1669 #endif /* COBJMACROS */
1670 
1671 
1672 #endif 	/* C style interface */
1673 
1674 
1675 
1676 
1677 #endif 	/* __IDXGIOutput_INTERFACE_DEFINED__ */
1678 
1679 
1680 /* interface __MIDL_itf_dxgi_0000_0008 */
1681 /* [local] */
1682 
1683 #define DXGI_MAX_SWAP_CHAIN_BUFFERS        ( 16 )
1684 #define DXGI_PRESENT_TEST                      0x00000001UL
1685 #define DXGI_PRESENT_DO_NOT_SEQUENCE           0x00000002UL
1686 #define DXGI_PRESENT_RESTART                   0x00000004UL
1687 #define DXGI_PRESENT_DO_NOT_WAIT               0x00000008UL
1688 #define DXGI_PRESENT_STEREO_PREFER_RIGHT       0x00000010UL
1689 #define DXGI_PRESENT_STEREO_TEMPORARY_MONO     0x00000020UL
1690 #define DXGI_PRESENT_RESTRICT_TO_OUTPUT        0x00000040UL
1691 #define DXGI_PRESENT_USE_DURATION              0x00000100UL
1692 #define DXGI_PRESENT_ALLOW_TEARING             0x00000200UL
1693 
1694 
1695 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_c_ifspec;
1696 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_s_ifspec;
1697 
1698 #ifndef __IDXGISwapChain_INTERFACE_DEFINED__
1699 #define __IDXGISwapChain_INTERFACE_DEFINED__
1700 
1701 /* interface IDXGISwapChain */
1702 /* [unique][local][uuid][object] */
1703 
1704 
1705 EXTERN_C const IID IID_IDXGISwapChain;
1706 
1707 #if defined(__cplusplus) && !defined(CINTERFACE)
1708 
1709     MIDL_INTERFACE("310d36a0-d2e7-4c0a-aa04-6a9d23b8886a")
1710     IDXGISwapChain : public IDXGIDeviceSubObject
1711     {
1712     public:
1713         virtual HRESULT STDMETHODCALLTYPE Present(
1714             /* [in] */ UINT SyncInterval,
1715             /* [in] */ UINT Flags) = 0;
1716 
1717         virtual HRESULT STDMETHODCALLTYPE GetBuffer(
1718             /* [in] */ UINT Buffer,
1719             /* [annotation][in] */
1720             _In_  REFIID riid,
1721             /* [annotation][out][in] */
1722             _COM_Outptr_  void **ppSurface) = 0;
1723 
1724         virtual HRESULT STDMETHODCALLTYPE SetFullscreenState(
1725             /* [in] */ BOOL Fullscreen,
1726             /* [annotation][in] */
1727             _In_opt_  IDXGIOutput *pTarget) = 0;
1728 
1729         virtual HRESULT STDMETHODCALLTYPE GetFullscreenState(
1730             /* [annotation][out] */
1731             _Out_opt_  BOOL *pFullscreen,
1732             /* [annotation][out] */
1733             _COM_Outptr_opt_result_maybenull_  IDXGIOutput **ppTarget) = 0;
1734 
1735         virtual HRESULT STDMETHODCALLTYPE GetDesc(
1736             /* [annotation][out] */
1737             _Out_  DXGI_SWAP_CHAIN_DESC *pDesc) = 0;
1738 
1739         virtual HRESULT STDMETHODCALLTYPE ResizeBuffers(
1740             /* [in] */ UINT BufferCount,
1741             /* [in] */ UINT Width,
1742             /* [in] */ UINT Height,
1743             /* [in] */ DXGI_FORMAT NewFormat,
1744             /* [in] */ UINT SwapChainFlags) = 0;
1745 
1746         virtual HRESULT STDMETHODCALLTYPE ResizeTarget(
1747             /* [annotation][in] */
1748             _In_  const DXGI_MODE_DESC *pNewTargetParameters) = 0;
1749 
1750         virtual HRESULT STDMETHODCALLTYPE GetContainingOutput(
1751             /* [annotation][out] */
1752             _COM_Outptr_  IDXGIOutput **ppOutput) = 0;
1753 
1754         virtual HRESULT STDMETHODCALLTYPE GetFrameStatistics(
1755             /* [annotation][out] */
1756             _Out_  DXGI_FRAME_STATISTICS *pStats) = 0;
1757 
1758         virtual HRESULT STDMETHODCALLTYPE GetLastPresentCount(
1759             /* [annotation][out] */
1760             _Out_  UINT *pLastPresentCount) = 0;
1761 
1762     };
1763 
1764 
1765 #else 	/* C style interface */
1766 
1767     typedef struct IDXGISwapChainVtbl
1768     {
1769         BEGIN_INTERFACE
1770 
1771         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1772             IDXGISwapChain * This,
1773             /* [in] */ REFIID riid,
1774             /* [annotation][iid_is][out] */
1775             _COM_Outptr_  void **ppvObject);
1776 
1777         ULONG ( STDMETHODCALLTYPE *AddRef )(
1778             IDXGISwapChain * This);
1779 
1780         ULONG ( STDMETHODCALLTYPE *Release )(
1781             IDXGISwapChain * This);
1782 
1783         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
1784             IDXGISwapChain * This,
1785             /* [annotation][in] */
1786             _In_  REFGUID Name,
1787             /* [in] */ UINT DataSize,
1788             /* [annotation][in] */
1789             _In_reads_bytes_(DataSize)  const void *pData);
1790 
1791         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
1792             IDXGISwapChain * This,
1793             /* [annotation][in] */
1794             _In_  REFGUID Name,
1795             /* [annotation][in] */
1796             _In_opt_  const IUnknown *pUnknown);
1797 
1798         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
1799             IDXGISwapChain * This,
1800             /* [annotation][in] */
1801             _In_  REFGUID Name,
1802             /* [annotation][out][in] */
1803             _Inout_  UINT *pDataSize,
1804             /* [annotation][out] */
1805             _Out_writes_bytes_(*pDataSize)  void *pData);
1806 
1807         HRESULT ( STDMETHODCALLTYPE *GetParent )(
1808             IDXGISwapChain * This,
1809             /* [annotation][in] */
1810             _In_  REFIID riid,
1811             /* [annotation][retval][out] */
1812             _COM_Outptr_  void **ppParent);
1813 
1814         HRESULT ( STDMETHODCALLTYPE *GetDevice )(
1815             IDXGISwapChain * This,
1816             /* [annotation][in] */
1817             _In_  REFIID riid,
1818             /* [annotation][retval][out] */
1819             _COM_Outptr_  void **ppDevice);
1820 
1821         HRESULT ( STDMETHODCALLTYPE *Present )(
1822             IDXGISwapChain * This,
1823             /* [in] */ UINT SyncInterval,
1824             /* [in] */ UINT Flags);
1825 
1826         HRESULT ( STDMETHODCALLTYPE *GetBuffer )(
1827             IDXGISwapChain * This,
1828             /* [in] */ UINT Buffer,
1829             /* [annotation][in] */
1830             _In_  REFIID riid,
1831             /* [annotation][out][in] */
1832             _COM_Outptr_  void **ppSurface);
1833 
1834         HRESULT ( STDMETHODCALLTYPE *SetFullscreenState )(
1835             IDXGISwapChain * This,
1836             /* [in] */ BOOL Fullscreen,
1837             /* [annotation][in] */
1838             _In_opt_  IDXGIOutput *pTarget);
1839 
1840         HRESULT ( STDMETHODCALLTYPE *GetFullscreenState )(
1841             IDXGISwapChain * This,
1842             /* [annotation][out] */
1843             _Out_opt_  BOOL *pFullscreen,
1844             /* [annotation][out] */
1845             _COM_Outptr_opt_result_maybenull_  IDXGIOutput **ppTarget);
1846 
1847         HRESULT ( STDMETHODCALLTYPE *GetDesc )(
1848             IDXGISwapChain * This,
1849             /* [annotation][out] */
1850             _Out_  DXGI_SWAP_CHAIN_DESC *pDesc);
1851 
1852         HRESULT ( STDMETHODCALLTYPE *ResizeBuffers )(
1853             IDXGISwapChain * This,
1854             /* [in] */ UINT BufferCount,
1855             /* [in] */ UINT Width,
1856             /* [in] */ UINT Height,
1857             /* [in] */ DXGI_FORMAT NewFormat,
1858             /* [in] */ UINT SwapChainFlags);
1859 
1860         HRESULT ( STDMETHODCALLTYPE *ResizeTarget )(
1861             IDXGISwapChain * This,
1862             /* [annotation][in] */
1863             _In_  const DXGI_MODE_DESC *pNewTargetParameters);
1864 
1865         HRESULT ( STDMETHODCALLTYPE *GetContainingOutput )(
1866             IDXGISwapChain * This,
1867             /* [annotation][out] */
1868             _COM_Outptr_  IDXGIOutput **ppOutput);
1869 
1870         HRESULT ( STDMETHODCALLTYPE *GetFrameStatistics )(
1871             IDXGISwapChain * This,
1872             /* [annotation][out] */
1873             _Out_  DXGI_FRAME_STATISTICS *pStats);
1874 
1875         HRESULT ( STDMETHODCALLTYPE *GetLastPresentCount )(
1876             IDXGISwapChain * This,
1877             /* [annotation][out] */
1878             _Out_  UINT *pLastPresentCount);
1879 
1880         END_INTERFACE
1881     } IDXGISwapChainVtbl;
1882 
1883     interface IDXGISwapChain
1884     {
1885         CONST_VTBL struct IDXGISwapChainVtbl *lpVtbl;
1886     };
1887 
1888 
1889 
1890 #ifdef COBJMACROS
1891 
1892 
1893 #define IDXGISwapChain_QueryInterface(This,riid,ppvObject)	\
1894     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1895 
1896 #define IDXGISwapChain_AddRef(This)	\
1897     ( (This)->lpVtbl -> AddRef(This) )
1898 
1899 #define IDXGISwapChain_Release(This)	\
1900     ( (This)->lpVtbl -> Release(This) )
1901 
1902 
1903 #define IDXGISwapChain_SetPrivateData(This,Name,DataSize,pData)	\
1904     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
1905 
1906 #define IDXGISwapChain_SetPrivateDataInterface(This,Name,pUnknown)	\
1907     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
1908 
1909 #define IDXGISwapChain_GetPrivateData(This,Name,pDataSize,pData)	\
1910     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
1911 
1912 #define IDXGISwapChain_GetParent(This,riid,ppParent)	\
1913     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
1914 
1915 
1916 #define IDXGISwapChain_GetDevice(This,riid,ppDevice)	\
1917     ( (This)->lpVtbl -> GetDevice(This,riid,ppDevice) )
1918 
1919 
1920 #define IDXGISwapChain_Present(This,SyncInterval,Flags)	\
1921     ( (This)->lpVtbl -> Present(This,SyncInterval,Flags) )
1922 
1923 #define IDXGISwapChain_GetBuffer(This,Buffer,riid,ppSurface)	\
1924     ( (This)->lpVtbl -> GetBuffer(This,Buffer,riid,ppSurface) )
1925 
1926 #define IDXGISwapChain_SetFullscreenState(This,Fullscreen,pTarget)	\
1927     ( (This)->lpVtbl -> SetFullscreenState(This,Fullscreen,pTarget) )
1928 
1929 #define IDXGISwapChain_GetFullscreenState(This,pFullscreen,ppTarget)	\
1930     ( (This)->lpVtbl -> GetFullscreenState(This,pFullscreen,ppTarget) )
1931 
1932 #define IDXGISwapChain_GetDesc(This,pDesc)	\
1933     ( (This)->lpVtbl -> GetDesc(This,pDesc) )
1934 
1935 #define IDXGISwapChain_ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags)	\
1936     ( (This)->lpVtbl -> ResizeBuffers(This,BufferCount,Width,Height,NewFormat,SwapChainFlags) )
1937 
1938 #define IDXGISwapChain_ResizeTarget(This,pNewTargetParameters)	\
1939     ( (This)->lpVtbl -> ResizeTarget(This,pNewTargetParameters) )
1940 
1941 #define IDXGISwapChain_GetContainingOutput(This,ppOutput)	\
1942     ( (This)->lpVtbl -> GetContainingOutput(This,ppOutput) )
1943 
1944 #define IDXGISwapChain_GetFrameStatistics(This,pStats)	\
1945     ( (This)->lpVtbl -> GetFrameStatistics(This,pStats) )
1946 
1947 #define IDXGISwapChain_GetLastPresentCount(This,pLastPresentCount)	\
1948     ( (This)->lpVtbl -> GetLastPresentCount(This,pLastPresentCount) )
1949 
1950 #endif /* COBJMACROS */
1951 
1952 
1953 #endif 	/* C style interface */
1954 
1955 
1956 
1957 
1958 #endif 	/* __IDXGISwapChain_INTERFACE_DEFINED__ */
1959 
1960 
1961 /* interface __MIDL_itf_dxgi_0000_0009 */
1962 /* [local] */
1963 
1964 #define DXGI_MWA_NO_WINDOW_CHANGES      ( 1 << 0 )
1965 #define DXGI_MWA_NO_ALT_ENTER           ( 1 << 1 )
1966 #define DXGI_MWA_NO_PRINT_SCREEN        ( 1 << 2 )
1967 #define DXGI_MWA_VALID                  ( 0x7 )
1968 
1969 
1970 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_c_ifspec;
1971 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_s_ifspec;
1972 
1973 #ifndef __IDXGIFactory_INTERFACE_DEFINED__
1974 #define __IDXGIFactory_INTERFACE_DEFINED__
1975 
1976 /* interface IDXGIFactory */
1977 /* [unique][local][uuid][object] */
1978 
1979 
1980 EXTERN_C const IID IID_IDXGIFactory;
1981 
1982 #if defined(__cplusplus) && !defined(CINTERFACE)
1983 
1984     MIDL_INTERFACE("7b7166ec-21c7-44ae-b21a-c9ae321ae369")
1985     IDXGIFactory : public IDXGIObject
1986     {
1987     public:
1988         virtual HRESULT STDMETHODCALLTYPE EnumAdapters(
1989             /* [in] */ UINT Adapter,
1990             /* [annotation][out] */
1991             _COM_Outptr_  IDXGIAdapter **ppAdapter) = 0;
1992 
1993         virtual HRESULT STDMETHODCALLTYPE MakeWindowAssociation(
1994             HWND WindowHandle,
1995             UINT Flags) = 0;
1996 
1997         virtual HRESULT STDMETHODCALLTYPE GetWindowAssociation(
1998             /* [annotation][out] */
1999             _Out_  HWND *pWindowHandle) = 0;
2000 
2001         virtual HRESULT STDMETHODCALLTYPE CreateSwapChain(
2002             /* [annotation][in] */
2003             _In_  IUnknown *pDevice,
2004             /* [annotation][in] */
2005             _In_  DXGI_SWAP_CHAIN_DESC *pDesc,
2006             /* [annotation][out] */
2007             _COM_Outptr_  IDXGISwapChain **ppSwapChain) = 0;
2008 
2009         virtual HRESULT STDMETHODCALLTYPE CreateSoftwareAdapter(
2010             /* [in] */ HMODULE Module,
2011             /* [annotation][out] */
2012             _COM_Outptr_  IDXGIAdapter **ppAdapter) = 0;
2013 
2014     };
2015 
2016 
2017 #else 	/* C style interface */
2018 
2019     typedef struct IDXGIFactoryVtbl
2020     {
2021         BEGIN_INTERFACE
2022 
2023         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2024             IDXGIFactory * This,
2025             /* [in] */ REFIID riid,
2026             /* [annotation][iid_is][out] */
2027             _COM_Outptr_  void **ppvObject);
2028 
2029         ULONG ( STDMETHODCALLTYPE *AddRef )(
2030             IDXGIFactory * This);
2031 
2032         ULONG ( STDMETHODCALLTYPE *Release )(
2033             IDXGIFactory * This);
2034 
2035         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2036             IDXGIFactory * This,
2037             /* [annotation][in] */
2038             _In_  REFGUID Name,
2039             /* [in] */ UINT DataSize,
2040             /* [annotation][in] */
2041             _In_reads_bytes_(DataSize)  const void *pData);
2042 
2043         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2044             IDXGIFactory * This,
2045             /* [annotation][in] */
2046             _In_  REFGUID Name,
2047             /* [annotation][in] */
2048             _In_opt_  const IUnknown *pUnknown);
2049 
2050         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2051             IDXGIFactory * This,
2052             /* [annotation][in] */
2053             _In_  REFGUID Name,
2054             /* [annotation][out][in] */
2055             _Inout_  UINT *pDataSize,
2056             /* [annotation][out] */
2057             _Out_writes_bytes_(*pDataSize)  void *pData);
2058 
2059         HRESULT ( STDMETHODCALLTYPE *GetParent )(
2060             IDXGIFactory * This,
2061             /* [annotation][in] */
2062             _In_  REFIID riid,
2063             /* [annotation][retval][out] */
2064             _COM_Outptr_  void **ppParent);
2065 
2066         HRESULT ( STDMETHODCALLTYPE *EnumAdapters )(
2067             IDXGIFactory * This,
2068             /* [in] */ UINT Adapter,
2069             /* [annotation][out] */
2070             _COM_Outptr_  IDXGIAdapter **ppAdapter);
2071 
2072         HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )(
2073             IDXGIFactory * This,
2074             HWND WindowHandle,
2075             UINT Flags);
2076 
2077         HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )(
2078             IDXGIFactory * This,
2079             /* [annotation][out] */
2080             _Out_  HWND *pWindowHandle);
2081 
2082         HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )(
2083             IDXGIFactory * This,
2084             /* [annotation][in] */
2085             _In_  IUnknown *pDevice,
2086             /* [annotation][in] */
2087             _In_  DXGI_SWAP_CHAIN_DESC *pDesc,
2088             /* [annotation][out] */
2089             _COM_Outptr_  IDXGISwapChain **ppSwapChain);
2090 
2091         HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )(
2092             IDXGIFactory * This,
2093             /* [in] */ HMODULE Module,
2094             /* [annotation][out] */
2095             _COM_Outptr_  IDXGIAdapter **ppAdapter);
2096 
2097         END_INTERFACE
2098     } IDXGIFactoryVtbl;
2099 
2100     interface IDXGIFactory
2101     {
2102         CONST_VTBL struct IDXGIFactoryVtbl *lpVtbl;
2103     };
2104 
2105 
2106 
2107 #ifdef COBJMACROS
2108 
2109 
2110 #define IDXGIFactory_QueryInterface(This,riid,ppvObject)	\
2111     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2112 
2113 #define IDXGIFactory_AddRef(This)	\
2114     ( (This)->lpVtbl -> AddRef(This) )
2115 
2116 #define IDXGIFactory_Release(This)	\
2117     ( (This)->lpVtbl -> Release(This) )
2118 
2119 
2120 #define IDXGIFactory_SetPrivateData(This,Name,DataSize,pData)	\
2121     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
2122 
2123 #define IDXGIFactory_SetPrivateDataInterface(This,Name,pUnknown)	\
2124     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
2125 
2126 #define IDXGIFactory_GetPrivateData(This,Name,pDataSize,pData)	\
2127     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
2128 
2129 #define IDXGIFactory_GetParent(This,riid,ppParent)	\
2130     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
2131 
2132 
2133 #define IDXGIFactory_EnumAdapters(This,Adapter,ppAdapter)	\
2134     ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) )
2135 
2136 #define IDXGIFactory_MakeWindowAssociation(This,WindowHandle,Flags)	\
2137     ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) )
2138 
2139 #define IDXGIFactory_GetWindowAssociation(This,pWindowHandle)	\
2140     ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) )
2141 
2142 #define IDXGIFactory_CreateSwapChain(This,pDevice,pDesc,ppSwapChain)	\
2143     ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) )
2144 
2145 #define IDXGIFactory_CreateSoftwareAdapter(This,Module,ppAdapter)	\
2146     ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) )
2147 
2148 #endif /* COBJMACROS */
2149 
2150 
2151 #endif 	/* C style interface */
2152 
2153 
2154 
2155 
2156 #endif 	/* __IDXGIFactory_INTERFACE_DEFINED__ */
2157 
2158 
2159 /* interface __MIDL_itf_dxgi_0000_0010 */
2160 /* [local] */
2161 
2162 HRESULT WINAPI CreateDXGIFactory(REFIID riid, _COM_Outptr_ void **ppFactory);
2163 HRESULT WINAPI CreateDXGIFactory1(REFIID riid, _COM_Outptr_ void **ppFactory);
2164 
2165 
2166 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_c_ifspec;
2167 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_s_ifspec;
2168 
2169 #ifndef __IDXGIDevice_INTERFACE_DEFINED__
2170 #define __IDXGIDevice_INTERFACE_DEFINED__
2171 
2172 /* interface IDXGIDevice */
2173 /* [unique][local][uuid][object] */
2174 
2175 
2176 EXTERN_C const IID IID_IDXGIDevice;
2177 
2178 #if defined(__cplusplus) && !defined(CINTERFACE)
2179 
2180     MIDL_INTERFACE("54ec77fa-1377-44e6-8c32-88fd5f44c84c")
2181     IDXGIDevice : public IDXGIObject
2182     {
2183     public:
2184         virtual HRESULT STDMETHODCALLTYPE GetAdapter(
2185             /* [annotation][out] */
2186             _COM_Outptr_  IDXGIAdapter **pAdapter) = 0;
2187 
2188         virtual HRESULT STDMETHODCALLTYPE CreateSurface(
2189             /* [annotation][in] */
2190             _In_  const DXGI_SURFACE_DESC *pDesc,
2191             /* [in] */ UINT NumSurfaces,
2192             /* [in] */ DXGI_USAGE Usage,
2193             /* [annotation][in] */
2194             _In_opt_  const DXGI_SHARED_RESOURCE *pSharedResource,
2195             /* [annotation][out] */
2196             _COM_Outptr_  IDXGISurface **ppSurface) = 0;
2197 
2198         virtual HRESULT STDMETHODCALLTYPE QueryResourceResidency(
2199             /* [annotation][size_is][in] */
2200             _In_reads_(NumResources)  IUnknown *const *ppResources,
2201             /* [annotation][size_is][out] */
2202             _Out_writes_(NumResources)  DXGI_RESIDENCY *pResidencyStatus,
2203             /* [in] */ UINT NumResources) = 0;
2204 
2205         virtual HRESULT STDMETHODCALLTYPE SetGPUThreadPriority(
2206             /* [in] */ INT Priority) = 0;
2207 
2208         virtual HRESULT STDMETHODCALLTYPE GetGPUThreadPriority(
2209             /* [annotation][retval][out] */
2210             _Out_  INT *pPriority) = 0;
2211 
2212     };
2213 
2214 
2215 #else 	/* C style interface */
2216 
2217     typedef struct IDXGIDeviceVtbl
2218     {
2219         BEGIN_INTERFACE
2220 
2221         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2222             IDXGIDevice * This,
2223             /* [in] */ REFIID riid,
2224             /* [annotation][iid_is][out] */
2225             _COM_Outptr_  void **ppvObject);
2226 
2227         ULONG ( STDMETHODCALLTYPE *AddRef )(
2228             IDXGIDevice * This);
2229 
2230         ULONG ( STDMETHODCALLTYPE *Release )(
2231             IDXGIDevice * This);
2232 
2233         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2234             IDXGIDevice * This,
2235             /* [annotation][in] */
2236             _In_  REFGUID Name,
2237             /* [in] */ UINT DataSize,
2238             /* [annotation][in] */
2239             _In_reads_bytes_(DataSize)  const void *pData);
2240 
2241         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2242             IDXGIDevice * This,
2243             /* [annotation][in] */
2244             _In_  REFGUID Name,
2245             /* [annotation][in] */
2246             _In_opt_  const IUnknown *pUnknown);
2247 
2248         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2249             IDXGIDevice * This,
2250             /* [annotation][in] */
2251             _In_  REFGUID Name,
2252             /* [annotation][out][in] */
2253             _Inout_  UINT *pDataSize,
2254             /* [annotation][out] */
2255             _Out_writes_bytes_(*pDataSize)  void *pData);
2256 
2257         HRESULT ( STDMETHODCALLTYPE *GetParent )(
2258             IDXGIDevice * This,
2259             /* [annotation][in] */
2260             _In_  REFIID riid,
2261             /* [annotation][retval][out] */
2262             _COM_Outptr_  void **ppParent);
2263 
2264         HRESULT ( STDMETHODCALLTYPE *GetAdapter )(
2265             IDXGIDevice * This,
2266             /* [annotation][out] */
2267             _COM_Outptr_  IDXGIAdapter **pAdapter);
2268 
2269         HRESULT ( STDMETHODCALLTYPE *CreateSurface )(
2270             IDXGIDevice * This,
2271             /* [annotation][in] */
2272             _In_  const DXGI_SURFACE_DESC *pDesc,
2273             /* [in] */ UINT NumSurfaces,
2274             /* [in] */ DXGI_USAGE Usage,
2275             /* [annotation][in] */
2276             _In_opt_  const DXGI_SHARED_RESOURCE *pSharedResource,
2277             /* [annotation][out] */
2278             _COM_Outptr_  IDXGISurface **ppSurface);
2279 
2280         HRESULT ( STDMETHODCALLTYPE *QueryResourceResidency )(
2281             IDXGIDevice * This,
2282             /* [annotation][size_is][in] */
2283             _In_reads_(NumResources)  IUnknown *const *ppResources,
2284             /* [annotation][size_is][out] */
2285             _Out_writes_(NumResources)  DXGI_RESIDENCY *pResidencyStatus,
2286             /* [in] */ UINT NumResources);
2287 
2288         HRESULT ( STDMETHODCALLTYPE *SetGPUThreadPriority )(
2289             IDXGIDevice * This,
2290             /* [in] */ INT Priority);
2291 
2292         HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )(
2293             IDXGIDevice * This,
2294             /* [annotation][retval][out] */
2295             _Out_  INT *pPriority);
2296 
2297         END_INTERFACE
2298     } IDXGIDeviceVtbl;
2299 
2300     interface IDXGIDevice
2301     {
2302         CONST_VTBL struct IDXGIDeviceVtbl *lpVtbl;
2303     };
2304 
2305 
2306 
2307 #ifdef COBJMACROS
2308 
2309 
2310 #define IDXGIDevice_QueryInterface(This,riid,ppvObject)	\
2311     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2312 
2313 #define IDXGIDevice_AddRef(This)	\
2314     ( (This)->lpVtbl -> AddRef(This) )
2315 
2316 #define IDXGIDevice_Release(This)	\
2317     ( (This)->lpVtbl -> Release(This) )
2318 
2319 
2320 #define IDXGIDevice_SetPrivateData(This,Name,DataSize,pData)	\
2321     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
2322 
2323 #define IDXGIDevice_SetPrivateDataInterface(This,Name,pUnknown)	\
2324     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
2325 
2326 #define IDXGIDevice_GetPrivateData(This,Name,pDataSize,pData)	\
2327     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
2328 
2329 #define IDXGIDevice_GetParent(This,riid,ppParent)	\
2330     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
2331 
2332 
2333 #define IDXGIDevice_GetAdapter(This,pAdapter)	\
2334     ( (This)->lpVtbl -> GetAdapter(This,pAdapter) )
2335 
2336 #define IDXGIDevice_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface)	\
2337     ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) )
2338 
2339 #define IDXGIDevice_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources)	\
2340     ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) )
2341 
2342 #define IDXGIDevice_SetGPUThreadPriority(This,Priority)	\
2343     ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) )
2344 
2345 #define IDXGIDevice_GetGPUThreadPriority(This,pPriority)	\
2346     ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) )
2347 
2348 #endif /* COBJMACROS */
2349 
2350 
2351 #endif 	/* C style interface */
2352 
2353 
2354 
2355 
2356 #endif 	/* __IDXGIDevice_INTERFACE_DEFINED__ */
2357 
2358 
2359 /* interface __MIDL_itf_dxgi_0000_0011 */
2360 /* [local] */
2361 
2362 typedef
2363 enum DXGI_ADAPTER_FLAG
2364     {
2365         DXGI_ADAPTER_FLAG_NONE	= 0,
2366         DXGI_ADAPTER_FLAG_REMOTE	= 1,
2367         DXGI_ADAPTER_FLAG_SOFTWARE	= 2,
2368         DXGI_ADAPTER_FLAG_FORCE_DWORD	= 0xffffffff
2369     } 	DXGI_ADAPTER_FLAG;
2370 
2371 typedef struct DXGI_ADAPTER_DESC1
2372     {
2373     WCHAR Description[ 128 ];
2374     UINT VendorId;
2375     UINT DeviceId;
2376     UINT SubSysId;
2377     UINT Revision;
2378     SIZE_T DedicatedVideoMemory;
2379     SIZE_T DedicatedSystemMemory;
2380     SIZE_T SharedSystemMemory;
2381     LUID AdapterLuid;
2382     UINT Flags;
2383     } 	DXGI_ADAPTER_DESC1;
2384 
2385 typedef struct DXGI_DISPLAY_COLOR_SPACE
2386     {
2387     FLOAT PrimaryCoordinates[ 8 ][ 2 ];
2388     FLOAT WhitePoints[ 16 ][ 2 ];
2389     } 	DXGI_DISPLAY_COLOR_SPACE;
2390 
2391 
2392 
2393 
2394 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_c_ifspec;
2395 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_s_ifspec;
2396 
2397 #ifndef __IDXGIFactory1_INTERFACE_DEFINED__
2398 #define __IDXGIFactory1_INTERFACE_DEFINED__
2399 
2400 /* interface IDXGIFactory1 */
2401 /* [unique][local][uuid][object] */
2402 
2403 
2404 EXTERN_C const IID IID_IDXGIFactory1;
2405 
2406 #if defined(__cplusplus) && !defined(CINTERFACE)
2407 
2408     MIDL_INTERFACE("770aae78-f26f-4dba-a829-253c83d1b387")
2409     IDXGIFactory1 : public IDXGIFactory
2410     {
2411     public:
2412         virtual HRESULT STDMETHODCALLTYPE EnumAdapters1(
2413             /* [in] */ UINT Adapter,
2414             /* [annotation][out] */
2415             _COM_Outptr_  IDXGIAdapter1 **ppAdapter) = 0;
2416 
2417         virtual BOOL STDMETHODCALLTYPE IsCurrent( void) = 0;
2418 
2419     };
2420 
2421 
2422 #else 	/* C style interface */
2423 
2424     typedef struct IDXGIFactory1Vtbl
2425     {
2426         BEGIN_INTERFACE
2427 
2428         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2429             IDXGIFactory1 * This,
2430             /* [in] */ REFIID riid,
2431             /* [annotation][iid_is][out] */
2432             _COM_Outptr_  void **ppvObject);
2433 
2434         ULONG ( STDMETHODCALLTYPE *AddRef )(
2435             IDXGIFactory1 * This);
2436 
2437         ULONG ( STDMETHODCALLTYPE *Release )(
2438             IDXGIFactory1 * This);
2439 
2440         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2441             IDXGIFactory1 * This,
2442             /* [annotation][in] */
2443             _In_  REFGUID Name,
2444             /* [in] */ UINT DataSize,
2445             /* [annotation][in] */
2446             _In_reads_bytes_(DataSize)  const void *pData);
2447 
2448         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2449             IDXGIFactory1 * This,
2450             /* [annotation][in] */
2451             _In_  REFGUID Name,
2452             /* [annotation][in] */
2453             _In_opt_  const IUnknown *pUnknown);
2454 
2455         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2456             IDXGIFactory1 * This,
2457             /* [annotation][in] */
2458             _In_  REFGUID Name,
2459             /* [annotation][out][in] */
2460             _Inout_  UINT *pDataSize,
2461             /* [annotation][out] */
2462             _Out_writes_bytes_(*pDataSize)  void *pData);
2463 
2464         HRESULT ( STDMETHODCALLTYPE *GetParent )(
2465             IDXGIFactory1 * This,
2466             /* [annotation][in] */
2467             _In_  REFIID riid,
2468             /* [annotation][retval][out] */
2469             _COM_Outptr_  void **ppParent);
2470 
2471         HRESULT ( STDMETHODCALLTYPE *EnumAdapters )(
2472             IDXGIFactory1 * This,
2473             /* [in] */ UINT Adapter,
2474             /* [annotation][out] */
2475             _COM_Outptr_  IDXGIAdapter **ppAdapter);
2476 
2477         HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )(
2478             IDXGIFactory1 * This,
2479             HWND WindowHandle,
2480             UINT Flags);
2481 
2482         HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )(
2483             IDXGIFactory1 * This,
2484             /* [annotation][out] */
2485             _Out_  HWND *pWindowHandle);
2486 
2487         HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )(
2488             IDXGIFactory1 * This,
2489             /* [annotation][in] */
2490             _In_  IUnknown *pDevice,
2491             /* [annotation][in] */
2492             _In_  DXGI_SWAP_CHAIN_DESC *pDesc,
2493             /* [annotation][out] */
2494             _COM_Outptr_  IDXGISwapChain **ppSwapChain);
2495 
2496         HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )(
2497             IDXGIFactory1 * This,
2498             /* [in] */ HMODULE Module,
2499             /* [annotation][out] */
2500             _COM_Outptr_  IDXGIAdapter **ppAdapter);
2501 
2502         HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )(
2503             IDXGIFactory1 * This,
2504             /* [in] */ UINT Adapter,
2505             /* [annotation][out] */
2506             _COM_Outptr_  IDXGIAdapter1 **ppAdapter);
2507 
2508         BOOL ( STDMETHODCALLTYPE *IsCurrent )(
2509             IDXGIFactory1 * This);
2510 
2511         END_INTERFACE
2512     } IDXGIFactory1Vtbl;
2513 
2514     interface IDXGIFactory1
2515     {
2516         CONST_VTBL struct IDXGIFactory1Vtbl *lpVtbl;
2517     };
2518 
2519 
2520 
2521 #ifdef COBJMACROS
2522 
2523 
2524 #define IDXGIFactory1_QueryInterface(This,riid,ppvObject)	\
2525     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2526 
2527 #define IDXGIFactory1_AddRef(This)	\
2528     ( (This)->lpVtbl -> AddRef(This) )
2529 
2530 #define IDXGIFactory1_Release(This)	\
2531     ( (This)->lpVtbl -> Release(This) )
2532 
2533 
2534 #define IDXGIFactory1_SetPrivateData(This,Name,DataSize,pData)	\
2535     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
2536 
2537 #define IDXGIFactory1_SetPrivateDataInterface(This,Name,pUnknown)	\
2538     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
2539 
2540 #define IDXGIFactory1_GetPrivateData(This,Name,pDataSize,pData)	\
2541     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
2542 
2543 #define IDXGIFactory1_GetParent(This,riid,ppParent)	\
2544     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
2545 
2546 
2547 #define IDXGIFactory1_EnumAdapters(This,Adapter,ppAdapter)	\
2548     ( (This)->lpVtbl -> EnumAdapters(This,Adapter,ppAdapter) )
2549 
2550 #define IDXGIFactory1_MakeWindowAssociation(This,WindowHandle,Flags)	\
2551     ( (This)->lpVtbl -> MakeWindowAssociation(This,WindowHandle,Flags) )
2552 
2553 #define IDXGIFactory1_GetWindowAssociation(This,pWindowHandle)	\
2554     ( (This)->lpVtbl -> GetWindowAssociation(This,pWindowHandle) )
2555 
2556 #define IDXGIFactory1_CreateSwapChain(This,pDevice,pDesc,ppSwapChain)	\
2557     ( (This)->lpVtbl -> CreateSwapChain(This,pDevice,pDesc,ppSwapChain) )
2558 
2559 #define IDXGIFactory1_CreateSoftwareAdapter(This,Module,ppAdapter)	\
2560     ( (This)->lpVtbl -> CreateSoftwareAdapter(This,Module,ppAdapter) )
2561 
2562 
2563 #define IDXGIFactory1_EnumAdapters1(This,Adapter,ppAdapter)	\
2564     ( (This)->lpVtbl -> EnumAdapters1(This,Adapter,ppAdapter) )
2565 
2566 #define IDXGIFactory1_IsCurrent(This)	\
2567     ( (This)->lpVtbl -> IsCurrent(This) )
2568 
2569 #endif /* COBJMACROS */
2570 
2571 
2572 #endif 	/* C style interface */
2573 
2574 
2575 
2576 
2577 #endif 	/* __IDXGIFactory1_INTERFACE_DEFINED__ */
2578 
2579 
2580 #ifndef __IDXGIAdapter1_INTERFACE_DEFINED__
2581 #define __IDXGIAdapter1_INTERFACE_DEFINED__
2582 
2583 /* interface IDXGIAdapter1 */
2584 /* [unique][local][uuid][object] */
2585 
2586 
2587 EXTERN_C const IID IID_IDXGIAdapter1;
2588 
2589 #if defined(__cplusplus) && !defined(CINTERFACE)
2590 
2591     MIDL_INTERFACE("29038f61-3839-4626-91fd-086879011a05")
2592     IDXGIAdapter1 : public IDXGIAdapter
2593     {
2594     public:
2595         virtual HRESULT STDMETHODCALLTYPE GetDesc1(
2596             /* [annotation][out] */
2597             _Out_  DXGI_ADAPTER_DESC1 *pDesc) = 0;
2598 
2599     };
2600 
2601 
2602 #else 	/* C style interface */
2603 
2604     typedef struct IDXGIAdapter1Vtbl
2605     {
2606         BEGIN_INTERFACE
2607 
2608         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2609             IDXGIAdapter1 * This,
2610             /* [in] */ REFIID riid,
2611             /* [annotation][iid_is][out] */
2612             _COM_Outptr_  void **ppvObject);
2613 
2614         ULONG ( STDMETHODCALLTYPE *AddRef )(
2615             IDXGIAdapter1 * This);
2616 
2617         ULONG ( STDMETHODCALLTYPE *Release )(
2618             IDXGIAdapter1 * This);
2619 
2620         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2621             IDXGIAdapter1 * This,
2622             /* [annotation][in] */
2623             _In_  REFGUID Name,
2624             /* [in] */ UINT DataSize,
2625             /* [annotation][in] */
2626             _In_reads_bytes_(DataSize)  const void *pData);
2627 
2628         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2629             IDXGIAdapter1 * This,
2630             /* [annotation][in] */
2631             _In_  REFGUID Name,
2632             /* [annotation][in] */
2633             _In_opt_  const IUnknown *pUnknown);
2634 
2635         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2636             IDXGIAdapter1 * This,
2637             /* [annotation][in] */
2638             _In_  REFGUID Name,
2639             /* [annotation][out][in] */
2640             _Inout_  UINT *pDataSize,
2641             /* [annotation][out] */
2642             _Out_writes_bytes_(*pDataSize)  void *pData);
2643 
2644         HRESULT ( STDMETHODCALLTYPE *GetParent )(
2645             IDXGIAdapter1 * This,
2646             /* [annotation][in] */
2647             _In_  REFIID riid,
2648             /* [annotation][retval][out] */
2649             _COM_Outptr_  void **ppParent);
2650 
2651         HRESULT ( STDMETHODCALLTYPE *EnumOutputs )(
2652             IDXGIAdapter1 * This,
2653             /* [in] */ UINT Output,
2654             /* [annotation][out][in] */
2655             _COM_Outptr_  IDXGIOutput **ppOutput);
2656 
2657         HRESULT ( STDMETHODCALLTYPE *GetDesc )(
2658             IDXGIAdapter1 * This,
2659             /* [annotation][out] */
2660             _Out_  DXGI_ADAPTER_DESC *pDesc);
2661 
2662         HRESULT ( STDMETHODCALLTYPE *CheckInterfaceSupport )(
2663             IDXGIAdapter1 * This,
2664             /* [annotation][in] */
2665             _In_  REFGUID InterfaceName,
2666             /* [annotation][out] */
2667             _Out_  LARGE_INTEGER *pUMDVersion);
2668 
2669         HRESULT ( STDMETHODCALLTYPE *GetDesc1 )(
2670             IDXGIAdapter1 * This,
2671             /* [annotation][out] */
2672             _Out_  DXGI_ADAPTER_DESC1 *pDesc);
2673 
2674         END_INTERFACE
2675     } IDXGIAdapter1Vtbl;
2676 
2677     interface IDXGIAdapter1
2678     {
2679         CONST_VTBL struct IDXGIAdapter1Vtbl *lpVtbl;
2680     };
2681 
2682 
2683 
2684 #ifdef COBJMACROS
2685 
2686 
2687 #define IDXGIAdapter1_QueryInterface(This,riid,ppvObject)	\
2688     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2689 
2690 #define IDXGIAdapter1_AddRef(This)	\
2691     ( (This)->lpVtbl -> AddRef(This) )
2692 
2693 #define IDXGIAdapter1_Release(This)	\
2694     ( (This)->lpVtbl -> Release(This) )
2695 
2696 
2697 #define IDXGIAdapter1_SetPrivateData(This,Name,DataSize,pData)	\
2698     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
2699 
2700 #define IDXGIAdapter1_SetPrivateDataInterface(This,Name,pUnknown)	\
2701     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
2702 
2703 #define IDXGIAdapter1_GetPrivateData(This,Name,pDataSize,pData)	\
2704     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
2705 
2706 #define IDXGIAdapter1_GetParent(This,riid,ppParent)	\
2707     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
2708 
2709 
2710 #define IDXGIAdapter1_EnumOutputs(This,Output,ppOutput)	\
2711     ( (This)->lpVtbl -> EnumOutputs(This,Output,ppOutput) )
2712 
2713 #define IDXGIAdapter1_GetDesc(This,pDesc)	\
2714     ( (This)->lpVtbl -> GetDesc(This,pDesc) )
2715 
2716 #define IDXGIAdapter1_CheckInterfaceSupport(This,InterfaceName,pUMDVersion)	\
2717     ( (This)->lpVtbl -> CheckInterfaceSupport(This,InterfaceName,pUMDVersion) )
2718 
2719 
2720 #define IDXGIAdapter1_GetDesc1(This,pDesc)	\
2721     ( (This)->lpVtbl -> GetDesc1(This,pDesc) )
2722 
2723 #endif /* COBJMACROS */
2724 
2725 
2726 #endif 	/* C style interface */
2727 
2728 
2729 
2730 
2731 #endif 	/* __IDXGIAdapter1_INTERFACE_DEFINED__ */
2732 
2733 
2734 #ifndef __IDXGIDevice1_INTERFACE_DEFINED__
2735 #define __IDXGIDevice1_INTERFACE_DEFINED__
2736 
2737 /* interface IDXGIDevice1 */
2738 /* [unique][local][uuid][object] */
2739 
2740 
2741 EXTERN_C const IID IID_IDXGIDevice1;
2742 
2743 #if defined(__cplusplus) && !defined(CINTERFACE)
2744 
2745     MIDL_INTERFACE("77db970f-6276-48ba-ba28-070143b4392c")
2746     IDXGIDevice1 : public IDXGIDevice
2747     {
2748     public:
2749         virtual HRESULT STDMETHODCALLTYPE SetMaximumFrameLatency(
2750             /* [in] */ UINT MaxLatency) = 0;
2751 
2752         virtual HRESULT STDMETHODCALLTYPE GetMaximumFrameLatency(
2753             /* [annotation][out] */
2754             _Out_  UINT *pMaxLatency) = 0;
2755 
2756     };
2757 
2758 
2759 #else 	/* C style interface */
2760 
2761     typedef struct IDXGIDevice1Vtbl
2762     {
2763         BEGIN_INTERFACE
2764 
2765         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2766             IDXGIDevice1 * This,
2767             /* [in] */ REFIID riid,
2768             /* [annotation][iid_is][out] */
2769             _COM_Outptr_  void **ppvObject);
2770 
2771         ULONG ( STDMETHODCALLTYPE *AddRef )(
2772             IDXGIDevice1 * This);
2773 
2774         ULONG ( STDMETHODCALLTYPE *Release )(
2775             IDXGIDevice1 * This);
2776 
2777         HRESULT ( STDMETHODCALLTYPE *SetPrivateData )(
2778             IDXGIDevice1 * This,
2779             /* [annotation][in] */
2780             _In_  REFGUID Name,
2781             /* [in] */ UINT DataSize,
2782             /* [annotation][in] */
2783             _In_reads_bytes_(DataSize)  const void *pData);
2784 
2785         HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )(
2786             IDXGIDevice1 * This,
2787             /* [annotation][in] */
2788             _In_  REFGUID Name,
2789             /* [annotation][in] */
2790             _In_opt_  const IUnknown *pUnknown);
2791 
2792         HRESULT ( STDMETHODCALLTYPE *GetPrivateData )(
2793             IDXGIDevice1 * This,
2794             /* [annotation][in] */
2795             _In_  REFGUID Name,
2796             /* [annotation][out][in] */
2797             _Inout_  UINT *pDataSize,
2798             /* [annotation][out] */
2799             _Out_writes_bytes_(*pDataSize)  void *pData);
2800 
2801         HRESULT ( STDMETHODCALLTYPE *GetParent )(
2802             IDXGIDevice1 * This,
2803             /* [annotation][in] */
2804             _In_  REFIID riid,
2805             /* [annotation][retval][out] */
2806             _COM_Outptr_  void **ppParent);
2807 
2808         HRESULT ( STDMETHODCALLTYPE *GetAdapter )(
2809             IDXGIDevice1 * This,
2810             /* [annotation][out] */
2811             _COM_Outptr_  IDXGIAdapter **pAdapter);
2812 
2813         HRESULT ( STDMETHODCALLTYPE *CreateSurface )(
2814             IDXGIDevice1 * This,
2815             /* [annotation][in] */
2816             _In_  const DXGI_SURFACE_DESC *pDesc,
2817             /* [in] */ UINT NumSurfaces,
2818             /* [in] */ DXGI_USAGE Usage,
2819             /* [annotation][in] */
2820             _In_opt_  const DXGI_SHARED_RESOURCE *pSharedResource,
2821             /* [annotation][out] */
2822             _COM_Outptr_  IDXGISurface **ppSurface);
2823 
2824         HRESULT ( STDMETHODCALLTYPE *QueryResourceResidency )(
2825             IDXGIDevice1 * This,
2826             /* [annotation][size_is][in] */
2827             _In_reads_(NumResources)  IUnknown *const *ppResources,
2828             /* [annotation][size_is][out] */
2829             _Out_writes_(NumResources)  DXGI_RESIDENCY *pResidencyStatus,
2830             /* [in] */ UINT NumResources);
2831 
2832         HRESULT ( STDMETHODCALLTYPE *SetGPUThreadPriority )(
2833             IDXGIDevice1 * This,
2834             /* [in] */ INT Priority);
2835 
2836         HRESULT ( STDMETHODCALLTYPE *GetGPUThreadPriority )(
2837             IDXGIDevice1 * This,
2838             /* [annotation][retval][out] */
2839             _Out_  INT *pPriority);
2840 
2841         HRESULT ( STDMETHODCALLTYPE *SetMaximumFrameLatency )(
2842             IDXGIDevice1 * This,
2843             /* [in] */ UINT MaxLatency);
2844 
2845         HRESULT ( STDMETHODCALLTYPE *GetMaximumFrameLatency )(
2846             IDXGIDevice1 * This,
2847             /* [annotation][out] */
2848             _Out_  UINT *pMaxLatency);
2849 
2850         END_INTERFACE
2851     } IDXGIDevice1Vtbl;
2852 
2853     interface IDXGIDevice1
2854     {
2855         CONST_VTBL struct IDXGIDevice1Vtbl *lpVtbl;
2856     };
2857 
2858 
2859 
2860 #ifdef COBJMACROS
2861 
2862 
2863 #define IDXGIDevice1_QueryInterface(This,riid,ppvObject)	\
2864     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2865 
2866 #define IDXGIDevice1_AddRef(This)	\
2867     ( (This)->lpVtbl -> AddRef(This) )
2868 
2869 #define IDXGIDevice1_Release(This)	\
2870     ( (This)->lpVtbl -> Release(This) )
2871 
2872 
2873 #define IDXGIDevice1_SetPrivateData(This,Name,DataSize,pData)	\
2874     ( (This)->lpVtbl -> SetPrivateData(This,Name,DataSize,pData) )
2875 
2876 #define IDXGIDevice1_SetPrivateDataInterface(This,Name,pUnknown)	\
2877     ( (This)->lpVtbl -> SetPrivateDataInterface(This,Name,pUnknown) )
2878 
2879 #define IDXGIDevice1_GetPrivateData(This,Name,pDataSize,pData)	\
2880     ( (This)->lpVtbl -> GetPrivateData(This,Name,pDataSize,pData) )
2881 
2882 #define IDXGIDevice1_GetParent(This,riid,ppParent)	\
2883     ( (This)->lpVtbl -> GetParent(This,riid,ppParent) )
2884 
2885 
2886 #define IDXGIDevice1_GetAdapter(This,pAdapter)	\
2887     ( (This)->lpVtbl -> GetAdapter(This,pAdapter) )
2888 
2889 #define IDXGIDevice1_CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface)	\
2890     ( (This)->lpVtbl -> CreateSurface(This,pDesc,NumSurfaces,Usage,pSharedResource,ppSurface) )
2891 
2892 #define IDXGIDevice1_QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources)	\
2893     ( (This)->lpVtbl -> QueryResourceResidency(This,ppResources,pResidencyStatus,NumResources) )
2894 
2895 #define IDXGIDevice1_SetGPUThreadPriority(This,Priority)	\
2896     ( (This)->lpVtbl -> SetGPUThreadPriority(This,Priority) )
2897 
2898 #define IDXGIDevice1_GetGPUThreadPriority(This,pPriority)	\
2899     ( (This)->lpVtbl -> GetGPUThreadPriority(This,pPriority) )
2900 
2901 
2902 #define IDXGIDevice1_SetMaximumFrameLatency(This,MaxLatency)	\
2903     ( (This)->lpVtbl -> SetMaximumFrameLatency(This,MaxLatency) )
2904 
2905 #define IDXGIDevice1_GetMaximumFrameLatency(This,pMaxLatency)	\
2906     ( (This)->lpVtbl -> GetMaximumFrameLatency(This,pMaxLatency) )
2907 
2908 #endif /* COBJMACROS */
2909 
2910 
2911 #endif 	/* C style interface */
2912 
2913 
2914 
2915 
2916 #endif 	/* __IDXGIDevice1_INTERFACE_DEFINED__ */
2917 
2918 
2919 /* interface __MIDL_itf_dxgi_0000_0014 */
2920 /* [local] */
2921 
2922 #ifdef __cplusplus
2923 #endif /*__cplusplus*/
2924 DEFINE_GUID(IID_IDXGIObject,0xaec22fb8,0x76f3,0x4639,0x9b,0xe0,0x28,0xeb,0x43,0xa6,0x7a,0x2e);
2925 DEFINE_GUID(IID_IDXGIDeviceSubObject,0x3d3e0379,0xf9de,0x4d58,0xbb,0x6c,0x18,0xd6,0x29,0x92,0xf1,0xa6);
2926 DEFINE_GUID(IID_IDXGIResource,0x035f3ab4,0x482e,0x4e50,0xb4,0x1f,0x8a,0x7f,0x8b,0xd8,0x96,0x0b);
2927 DEFINE_GUID(IID_IDXGIKeyedMutex,0x9d8e1289,0xd7b3,0x465f,0x81,0x26,0x25,0x0e,0x34,0x9a,0xf8,0x5d);
2928 DEFINE_GUID(IID_IDXGISurface,0xcafcb56c,0x6ac3,0x4889,0xbf,0x47,0x9e,0x23,0xbb,0xd2,0x60,0xec);
2929 DEFINE_GUID(IID_IDXGISurface1,0x4AE63092,0x6327,0x4c1b,0x80,0xAE,0xBF,0xE1,0x2E,0xA3,0x2B,0x86);
2930 DEFINE_GUID(IID_IDXGIAdapter,0x2411e7e1,0x12ac,0x4ccf,0xbd,0x14,0x97,0x98,0xe8,0x53,0x4d,0xc0);
2931 DEFINE_GUID(IID_IDXGIOutput,0xae02eedb,0xc735,0x4690,0x8d,0x52,0x5a,0x8d,0xc2,0x02,0x13,0xaa);
2932 DEFINE_GUID(IID_IDXGISwapChain,0x310d36a0,0xd2e7,0x4c0a,0xaa,0x04,0x6a,0x9d,0x23,0xb8,0x88,0x6a);
2933 DEFINE_GUID(IID_IDXGIFactory,0x7b7166ec,0x21c7,0x44ae,0xb2,0x1a,0xc9,0xae,0x32,0x1a,0xe3,0x69);
2934 DEFINE_GUID(IID_IDXGIDevice,0x54ec77fa,0x1377,0x44e6,0x8c,0x32,0x88,0xfd,0x5f,0x44,0xc8,0x4c);
2935 DEFINE_GUID(IID_IDXGIFactory1,0x770aae78,0xf26f,0x4dba,0xa8,0x29,0x25,0x3c,0x83,0xd1,0xb3,0x87);
2936 DEFINE_GUID(IID_IDXGIAdapter1,0x29038f61,0x3839,0x4626,0x91,0xfd,0x08,0x68,0x79,0x01,0x1a,0x05);
2937 DEFINE_GUID(IID_IDXGIDevice1,0x77db970f,0x6276,0x48ba,0xba,0x28,0x07,0x01,0x43,0xb4,0x39,0x2c);
2938 
2939 
2940 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_c_ifspec;
2941 extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_s_ifspec;
2942 
2943 /* Additional Prototypes for ALL interfaces */
2944 
2945 /* end of Additional Prototypes */
2946 
2947 #ifdef __cplusplus
2948 }
2949 #endif
2950 
2951 #endif
2952 
2953 
2954