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__
44typedef interface IDXGIObject IDXGIObject;
45
46#endif /* __IDXGIObject_FWD_DEFINED__ */
47
48
49#ifndef __IDXGIDeviceSubObject_FWD_DEFINED__
50#define __IDXGIDeviceSubObject_FWD_DEFINED__
51typedef interface IDXGIDeviceSubObject IDXGIDeviceSubObject;
52
53#endif /* __IDXGIDeviceSubObject_FWD_DEFINED__ */
54
55
56#ifndef __IDXGIResource_FWD_DEFINED__
57#define __IDXGIResource_FWD_DEFINED__
58typedef interface IDXGIResource IDXGIResource;
59
60#endif /* __IDXGIResource_FWD_DEFINED__ */
61
62
63#ifndef __IDXGIKeyedMutex_FWD_DEFINED__
64#define __IDXGIKeyedMutex_FWD_DEFINED__
65typedef interface IDXGIKeyedMutex IDXGIKeyedMutex;
66
67#endif /* __IDXGIKeyedMutex_FWD_DEFINED__ */
68
69
70#ifndef __IDXGISurface_FWD_DEFINED__
71#define __IDXGISurface_FWD_DEFINED__
72typedef interface IDXGISurface IDXGISurface;
73
74#endif /* __IDXGISurface_FWD_DEFINED__ */
75
76
77#ifndef __IDXGISurface1_FWD_DEFINED__
78#define __IDXGISurface1_FWD_DEFINED__
79typedef interface IDXGISurface1 IDXGISurface1;
80
81#endif /* __IDXGISurface1_FWD_DEFINED__ */
82
83
84#ifndef __IDXGIAdapter_FWD_DEFINED__
85#define __IDXGIAdapter_FWD_DEFINED__
86typedef interface IDXGIAdapter IDXGIAdapter;
87
88#endif /* __IDXGIAdapter_FWD_DEFINED__ */
89
90
91#ifndef __IDXGIOutput_FWD_DEFINED__
92#define __IDXGIOutput_FWD_DEFINED__
93typedef interface IDXGIOutput IDXGIOutput;
94
95#endif /* __IDXGIOutput_FWD_DEFINED__ */
96
97
98#ifndef __IDXGISwapChain_FWD_DEFINED__
99#define __IDXGISwapChain_FWD_DEFINED__
100typedef interface IDXGISwapChain IDXGISwapChain;
101
102#endif /* __IDXGISwapChain_FWD_DEFINED__ */
103
104
105#ifndef __IDXGIFactory_FWD_DEFINED__
106#define __IDXGIFactory_FWD_DEFINED__
107typedef interface IDXGIFactory IDXGIFactory;
108
109#endif /* __IDXGIFactory_FWD_DEFINED__ */
110
111
112#ifndef __IDXGIDevice_FWD_DEFINED__
113#define __IDXGIDevice_FWD_DEFINED__
114typedef interface IDXGIDevice IDXGIDevice;
115
116#endif /* __IDXGIDevice_FWD_DEFINED__ */
117
118
119#ifndef __IDXGIFactory1_FWD_DEFINED__
120#define __IDXGIFactory1_FWD_DEFINED__
121typedef interface IDXGIFactory1 IDXGIFactory1;
122
123#endif /* __IDXGIFactory1_FWD_DEFINED__ */
124
125
126#ifndef __IDXGIAdapter1_FWD_DEFINED__
127#define __IDXGIAdapter1_FWD_DEFINED__
128typedef interface IDXGIAdapter1 IDXGIAdapter1;
129
130#endif /* __IDXGIAdapter1_FWD_DEFINED__ */
131
132
133#ifndef __IDXGIDevice1_FWD_DEFINED__
134#define __IDXGIDevice1_FWD_DEFINED__
135typedef 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
147extern "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
166typedef UINT DXGI_USAGE;
167
168typedef 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
177typedef 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
186typedef struct _LUID
187 {
188 DWORD LowPart;
189 LONG HighPart;
190 } LUID;
191
192typedef struct _LUID *PLUID;
193
194#endif
195#endif
196typedef 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
212typedef HANDLE HMONITOR;
213
214#endif
215DECLARE_HANDLE(HMONITOR);
216#endif
217typedef 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
226typedef 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
241typedef
242enum 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
249typedef 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
257typedef
258enum 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
266typedef
267enum 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
284typedef 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
298extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0000_v0_0_c_ifspec;
299extern 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
308EXTERN_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
448EXTERN_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
578EXTERN_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
747EXTERN_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
898extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0004_v0_0_c_ifspec;
899extern 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
908EXTERN_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
1067EXTERN_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
1241extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0006_v0_0_c_ifspec;
1242extern 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
1251EXTERN_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
1409extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0007_v0_0_c_ifspec;
1410extern 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
1419EXTERN_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
1695extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0008_v0_0_c_ifspec;
1696extern 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
1705EXTERN_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
1970extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0009_v0_0_c_ifspec;
1971extern 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
1980EXTERN_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
2162HRESULT WINAPI CreateDXGIFactory(REFIID riid, _COM_Outptr_ void **ppFactory);
2163HRESULT WINAPI CreateDXGIFactory1(REFIID riid, _COM_Outptr_ void **ppFactory);
2164
2165
2166extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0010_v0_0_c_ifspec;
2167extern 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
2176EXTERN_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
2362typedef
2363enum 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
2371typedef 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
2385typedef 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
2394extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0011_v0_0_c_ifspec;
2395extern 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
2404EXTERN_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
2587EXTERN_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
2741EXTERN_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*/
2924DEFINE_GUID(IID_IDXGIObject,0xaec22fb8,0x76f3,0x4639,0x9b,0xe0,0x28,0xeb,0x43,0xa6,0x7a,0x2e);
2925DEFINE_GUID(IID_IDXGIDeviceSubObject,0x3d3e0379,0xf9de,0x4d58,0xbb,0x6c,0x18,0xd6,0x29,0x92,0xf1,0xa6);
2926DEFINE_GUID(IID_IDXGIResource,0x035f3ab4,0x482e,0x4e50,0xb4,0x1f,0x8a,0x7f,0x8b,0xd8,0x96,0x0b);
2927DEFINE_GUID(IID_IDXGIKeyedMutex,0x9d8e1289,0xd7b3,0x465f,0x81,0x26,0x25,0x0e,0x34,0x9a,0xf8,0x5d);
2928DEFINE_GUID(IID_IDXGISurface,0xcafcb56c,0x6ac3,0x4889,0xbf,0x47,0x9e,0x23,0xbb,0xd2,0x60,0xec);
2929DEFINE_GUID(IID_IDXGISurface1,0x4AE63092,0x6327,0x4c1b,0x80,0xAE,0xBF,0xE1,0x2E,0xA3,0x2B,0x86);
2930DEFINE_GUID(IID_IDXGIAdapter,0x2411e7e1,0x12ac,0x4ccf,0xbd,0x14,0x97,0x98,0xe8,0x53,0x4d,0xc0);
2931DEFINE_GUID(IID_IDXGIOutput,0xae02eedb,0xc735,0x4690,0x8d,0x52,0x5a,0x8d,0xc2,0x02,0x13,0xaa);
2932DEFINE_GUID(IID_IDXGISwapChain,0x310d36a0,0xd2e7,0x4c0a,0xaa,0x04,0x6a,0x9d,0x23,0xb8,0x88,0x6a);
2933DEFINE_GUID(IID_IDXGIFactory,0x7b7166ec,0x21c7,0x44ae,0xb2,0x1a,0xc9,0xae,0x32,0x1a,0xe3,0x69);
2934DEFINE_GUID(IID_IDXGIDevice,0x54ec77fa,0x1377,0x44e6,0x8c,0x32,0x88,0xfd,0x5f,0x44,0xc8,0x4c);
2935DEFINE_GUID(IID_IDXGIFactory1,0x770aae78,0xf26f,0x4dba,0xa8,0x29,0x25,0x3c,0x83,0xd1,0xb3,0x87);
2936DEFINE_GUID(IID_IDXGIAdapter1,0x29038f61,0x3839,0x4626,0x91,0xfd,0x08,0x68,0x79,0x01,0x1a,0x05);
2937DEFINE_GUID(IID_IDXGIDevice1,0x77db970f,0x6276,0x48ba,0xba,0x28,0x07,0x01,0x43,0xb4,0x39,0x2c);
2938
2939
2940extern RPC_IF_HANDLE __MIDL_itf_dxgi_0000_0014_v0_0_c_ifspec;
2941extern 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

source code of imgui/dxsdk/Include/dxgi.h