Updated imported headers to current Wine version.
diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h
index 52c7248..24bb680 100644
--- a/mingw-w64-headers/direct-x/include/d3d11.h
+++ b/mingw-w64-headers/direct-x/include/d3d11.h
@@ -806,6 +806,10 @@
D3D11_DEPTH_WRITE_MASK_ZERO = 0,
D3D11_DEPTH_WRITE_MASK_ALL = 1
} D3D11_DEPTH_WRITE_MASK;
+typedef enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS {
+ D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
+ D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe
+} D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
typedef enum D3D11_DEVICE_CONTEXT_TYPE {
D3D11_DEVICE_CONTEXT_IMMEDIATE = 0,
D3D11_DEVICE_CONTEXT_DEFERRED = 1
@@ -829,7 +833,16 @@
D3D11_FEATURE_ARCHITECTURE_INFO = 6,
D3D11_FEATURE_D3D9_OPTIONS = 7,
D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT = 8,
- D3D11_FEATURE_D3D9_SHADOW_SUPPORT = 9
+ D3D11_FEATURE_D3D9_SHADOW_SUPPORT = 9,
+ D3D11_FEATURE_D3D11_OPTIONS1 = 10,
+ D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT = 11,
+ D3D11_FEATURE_MARKER_SUPPORT = 12,
+ D3D11_FEATURE_D3D9_OPTIONS1 = 13,
+ D3D11_FEATURE_D3D11_OPTIONS2 = 14,
+ D3D11_FEATURE_D3D11_OPTIONS3 = 15,
+ D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 16,
+ D3D11_FEATURE_D3D11_OPTIONS4 = 17,
+ D3D11_FEATURE_SHADER_CACHE = 18
} D3D11_FEATURE;
typedef struct D3D11_FEATURE_DATA_THREADING {
WINBOOL DriverConcurrentCreates;
@@ -838,6 +851,14 @@
typedef struct D3D11_FEATURE_DATA_DOUBLES {
WINBOOL DoublePrecisionFloatShaderOps;
} D3D11_FEATURE_DATA_DOUBLES;
+typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT {
+ DXGI_FORMAT InFormat;
+ UINT OutFormatSupport;
+} D3D11_FEATURE_DATA_FORMAT_SUPPORT;
+typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2 {
+ DXGI_FORMAT InFormat;
+ UINT OutFormatSupport2;
+} D3D11_FEATURE_DATA_FORMAT_SUPPORT2;
typedef struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS {
WINBOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
} D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS;
@@ -857,6 +878,78 @@
WINBOOL ExtendedDoublesShaderInstructions;
WINBOOL ExtendedResourceSharing;
} D3D11_FEATURE_DATA_D3D11_OPTIONS;
+typedef struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO {
+ WINBOOL TileBasedDeferredRenderer;
+} D3D11_FEATURE_DATA_ARCHITECTURE_INFO;
+typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS {
+ WINBOOL FullNonPow2TextureSupport;
+} D3D11_FEATURE_DATA_D3D9_OPTIONS;
+typedef struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT {
+ WINBOOL SupportsDepthAsTextureWithLessEqualComparisonFilter;
+} D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT;
+typedef enum D3D11_SHADER_MIN_PRECISION_SUPPORT {
+ D3D11_SHADER_MIN_PRECISION_10_BIT = 0x1,
+ D3D11_SHADER_MIN_PRECISION_16_BIT = 0x2
+} D3D11_SHADER_MIN_PRECISION_SUPPORT;
+typedef struct D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT {
+ UINT PixelShaderMinPrecision;
+ UINT AllOtherShaderStagesMinPrecision;
+} D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT;
+typedef enum D3D11_TILED_RESOURCES_TIER {
+ D3D11_TILED_RESOURCES_NOT_SUPPORTED = 0x0,
+ D3D11_TILED_RESOURCES_TIER_1 = 0x1,
+ D3D11_TILED_RESOURCES_TIER_2 = 0x2,
+ D3D11_TILED_RESOURCES_TIER_3 = 0x3
+} D3D11_TILED_RESOURCES_TIER;
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS1 {
+ D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
+ WINBOOL MinMaxFiltering;
+ WINBOOL ClearViewAlsoSupportsDepthOnlyFormats;
+ WINBOOL MapOnDefaultBuffers;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS1;
+typedef struct D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT {
+ WINBOOL SimpleInstancingSupported;
+} D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT;
+typedef struct D3D11_FEATURE_DATA_MARKER_SUPPORT {
+ WINBOOL Profile;
+} D3D11_FEATURE_DATA_MARKER_SUPPORT;
+typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS1 {
+ WINBOOL FullNonPow2TextureSupported;
+ WINBOOL DepthAsTextureWithLessEqualComparisonFilterSupported;
+ WINBOOL SimpleInstancingSupported;
+ WINBOOL TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported;
+} D3D11_FEATURE_DATA_D3D9_OPTIONS1;
+typedef enum D3D11_CONSERVATIVE_RASTERIZATION_TIER {
+ D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED = 0x0,
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER_1 = 0x1,
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER_2 = 0x2,
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER_3 = 0x3
+} D3D11_CONSERVATIVE_RASTERIZATION_TIER;
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS2 {
+ WINBOOL PSSpecifiedStencilRefSupported;
+ WINBOOL TypedUAVLoadAdditionalFormats;
+ WINBOOL ROVsSupported;
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
+ D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
+ WINBOOL MapOnDefaultTextures;
+ WINBOOL StandardSwizzle;
+ WINBOOL UnifiedMemoryArchitecture;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS2;
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS3 {
+ WINBOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizer;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS3;
+typedef struct D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
+ UINT MaxGPUVirtualAddressBitsPerResource;
+ UINT MaxGPUVirtualAddressBitsPerProcess;
+} D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
+typedef enum D3D11_SHADER_CACHE_SUPPORT_FLAGS {
+ D3D11_SHADER_CACHE_SUPPORT_NONE = 0x0,
+ D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x1,
+ D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x2
+} D3D11_SHADER_CACHE_SUPPORT_FLAGS;
+typedef struct D3D11_FEATURE_DATA_SHADER_CACHE {
+ UINT SupportFlags;
+} D3D11_FEATURE_DATA_SHADER_CACHE;
typedef enum D3D11_FILL_MODE {
D3D11_FILL_WIREFRAME = 2,
D3D11_FILL_SOLID = 3
diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl
index 244020a..1355ff7 100644
--- a/mingw-w64-headers/direct-x/include/d3d11.idl
+++ b/mingw-w64-headers/direct-x/include/d3d11.idl
@@ -460,6 +460,12 @@
D3D11_DEPTH_WRITE_MASK_ALL,
} D3D11_DEPTH_WRITE_MASK;
+typedef enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS
+{
+ D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
+ D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe,
+} D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
+
typedef enum D3D11_DEVICE_CONTEXT_TYPE
{
D3D11_DEVICE_CONTEXT_IMMEDIATE,
@@ -488,7 +494,16 @@
D3D11_FEATURE_ARCHITECTURE_INFO,
D3D11_FEATURE_D3D9_OPTIONS,
D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT,
- D3D11_FEATURE_D3D9_SHADOW_SUPPORT
+ D3D11_FEATURE_D3D9_SHADOW_SUPPORT,
+ D3D11_FEATURE_D3D11_OPTIONS1,
+ D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT,
+ D3D11_FEATURE_MARKER_SUPPORT,
+ D3D11_FEATURE_D3D9_OPTIONS1,
+ D3D11_FEATURE_D3D11_OPTIONS2,
+ D3D11_FEATURE_D3D11_OPTIONS3,
+ D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT,
+ D3D11_FEATURE_D3D11_OPTIONS4,
+ D3D11_FEATURE_SHADER_CACHE,
} D3D11_FEATURE;
typedef struct D3D11_FEATURE_DATA_THREADING
@@ -502,6 +517,18 @@
BOOL DoublePrecisionFloatShaderOps;
} D3D11_FEATURE_DATA_DOUBLES;
+typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT
+{
+ DXGI_FORMAT InFormat;
+ UINT OutFormatSupport;
+} D3D11_FEATURE_DATA_FORMAT_SUPPORT;
+
+typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2
+{
+ DXGI_FORMAT InFormat;
+ UINT OutFormatSupport2;
+} D3D11_FEATURE_DATA_FORMAT_SUPPORT2;
+
typedef struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS
{
BOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
@@ -525,6 +552,110 @@
BOOL ExtendedResourceSharing;
} D3D11_FEATURE_DATA_D3D11_OPTIONS;
+typedef struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO
+{
+ BOOL TileBasedDeferredRenderer;
+} D3D11_FEATURE_DATA_ARCHITECTURE_INFO;
+
+typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS
+{
+ BOOL FullNonPow2TextureSupport;
+} D3D11_FEATURE_DATA_D3D9_OPTIONS;
+
+typedef struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT
+{
+ BOOL SupportsDepthAsTextureWithLessEqualComparisonFilter;
+} D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT;
+
+typedef enum D3D11_SHADER_MIN_PRECISION_SUPPORT
+{
+ D3D11_SHADER_MIN_PRECISION_10_BIT = 0x1,
+ D3D11_SHADER_MIN_PRECISION_16_BIT = 0x2,
+} D3D11_SHADER_MIN_PRECISION_SUPPORT;
+
+typedef struct D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT
+{
+ UINT PixelShaderMinPrecision;
+ UINT AllOtherShaderStagesMinPrecision;
+} D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT;
+
+typedef enum D3D11_TILED_RESOURCES_TIER
+{
+ D3D11_TILED_RESOURCES_NOT_SUPPORTED = 0x0,
+ D3D11_TILED_RESOURCES_TIER_1 = 0x1,
+ D3D11_TILED_RESOURCES_TIER_2 = 0x2,
+ D3D11_TILED_RESOURCES_TIER_3 = 0x3,
+} D3D11_TILED_RESOURCES_TIER;
+
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS1
+{
+ D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
+ BOOL MinMaxFiltering;
+ BOOL ClearViewAlsoSupportsDepthOnlyFormats;
+ BOOL MapOnDefaultBuffers;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS1;
+
+typedef struct D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT
+{
+ BOOL SimpleInstancingSupported;
+} D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT;
+
+typedef struct D3D11_FEATURE_DATA_MARKER_SUPPORT
+{
+ BOOL Profile;
+} D3D11_FEATURE_DATA_MARKER_SUPPORT;
+
+typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS1
+{
+ BOOL FullNonPow2TextureSupported;
+ BOOL DepthAsTextureWithLessEqualComparisonFilterSupported;
+ BOOL SimpleInstancingSupported;
+ BOOL TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported;
+} D3D11_FEATURE_DATA_D3D9_OPTIONS1;
+
+typedef enum D3D11_CONSERVATIVE_RASTERIZATION_TIER
+{
+ D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED = 0x0,
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER_1 = 0x1,
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER_2 = 0x2,
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER_3 = 0x3,
+} D3D11_CONSERVATIVE_RASTERIZATION_TIER;
+
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS2
+{
+ BOOL PSSpecifiedStencilRefSupported;
+ BOOL TypedUAVLoadAdditionalFormats;
+ BOOL ROVsSupported;
+ D3D11_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
+ D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
+ BOOL MapOnDefaultTextures;
+ BOOL StandardSwizzle;
+ BOOL UnifiedMemoryArchitecture;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS2;
+
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS3
+{
+ BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizer;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS3;
+
+typedef struct D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
+{
+ UINT MaxGPUVirtualAddressBitsPerResource;
+ UINT MaxGPUVirtualAddressBitsPerProcess;
+} D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
+
+typedef enum D3D11_SHADER_CACHE_SUPPORT_FLAGS
+{
+ D3D11_SHADER_CACHE_SUPPORT_NONE = 0x0,
+ D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x1,
+ D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x2,
+} D3D11_SHADER_CACHE_SUPPORT_FLAGS;
+
+typedef struct D3D11_FEATURE_DATA_SHADER_CACHE
+{
+ UINT SupportFlags;
+} D3D11_FEATURE_DATA_SHADER_CACHE;
+
typedef enum D3D11_FILL_MODE
{
D3D11_FILL_WIREFRAME = 2,
diff --git a/mingw-w64-headers/direct-x/include/dmusici.h b/mingw-w64-headers/direct-x/include/dmusici.h
index 34e352e..50399f0 100644
--- a/mingw-w64-headers/direct-x/include/dmusici.h
+++ b/mingw-w64-headers/direct-x/include/dmusici.h
@@ -856,7 +856,7 @@
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectMusicLoader methods ***/
- STDMETHOD(_GetObject)(THIS_ LPDMUS_OBJECTDESC pDesc, REFIID riid, LPVOID *ppv) PURE;
+ STDMETHOD(GetObject)(THIS_ LPDMUS_OBJECTDESC pDesc, REFIID riid, LPVOID *ppv) PURE;
STDMETHOD(SetObject)(THIS_ LPDMUS_OBJECTDESC pDesc) PURE;
STDMETHOD(SetSearchDirectory)(THIS_ REFGUID rguidClass, WCHAR *pwzPath, WINBOOL fClear) PURE;
STDMETHOD(ScanDirectory)(THIS_ REFGUID rguidClass, WCHAR *pwzFileExtension, WCHAR *pwzScanFileName) PURE;
@@ -874,7 +874,7 @@
#define IDirectMusicLoader_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirectMusicLoader_Release(p) (p)->lpVtbl->Release(p)
/*** IDirectMusicLoader methods ***/
-#define IDirectMusicLoader_GetObject(p,a,b,c) (p)->lpVtbl->_GetObject(p,a,b,c)
+#define IDirectMusicLoader_GetObject(p,a,b,c) (p)->lpVtbl->GetObject(p,a,b,c)
#define IDirectMusicLoader_SetObject(p,a) (p)->lpVtbl->SetObject(p,a)
#define IDirectMusicLoader_SetSearchDirectory(p,a,b,c) (p)->lpVtbl->SetSearchDirectory(p,a,b,c)
#define IDirectMusicLoader_ScanDirectory(p,a,b,c) (p)->lpVtbl->ScanDirectory(p,a,b,c)
@@ -897,7 +897,7 @@
STDMETHOD_(ULONG,AddRef)(THIS) PURE;
STDMETHOD_(ULONG,Release)(THIS) PURE;
/*** IDirectMusicLoader methods ***/
- STDMETHOD(_GetObject)(THIS_ LPDMUS_OBJECTDESC pDesc, REFIID riid, LPVOID *ppv) PURE;
+ STDMETHOD(GetObject)(THIS_ LPDMUS_OBJECTDESC pDesc, REFIID riid, LPVOID *ppv) PURE;
STDMETHOD(SetObject)(THIS_ LPDMUS_OBJECTDESC pDesc) PURE;
STDMETHOD(SetSearchDirectory)(THIS_ REFGUID rguidClass, WCHAR *pwzPath, WINBOOL fClear) PURE;
STDMETHOD(ScanDirectory)(THIS_ REFGUID rguidClass, WCHAR *pwzFileExtension, WCHAR *pwzScanFileName) PURE;
@@ -919,7 +919,7 @@
#define IDirectMusicLoader8_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IDirectMusicLoader8_Release(p) (p)->lpVtbl->Release(p)
/*** IDirectMusicLoader methods ***/
-#define IDirectMusicLoader8_GetObject(p,a,b,c) (p)->lpVtbl->_GetObject(p,a,b,c)
+#define IDirectMusicLoader8_GetObject(p,a,b,c) (p)->lpVtbl->GetObject(p,a,b,c)
#define IDirectMusicLoader8_SetObject(p,a) (p)->lpVtbl->SetObject(p,a)
#define IDirectMusicLoader8_SetSearchDirectory(p,a,b,c) (p)->lpVtbl->SetSearchDirectory(p,a,b,c)
#define IDirectMusicLoader8_ScanDirectory(p,a,b,c) (p)->lpVtbl->ScanDirectory(p,a,b,c)
diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.h b/mingw-w64-headers/direct-x/include/dxgi1_2.h
index de3f359..226f022 100644
--- a/mingw-w64-headers/direct-x/include/dxgi1_2.h
+++ b/mingw-w64-headers/direct-x/include/dxgi1_2.h
@@ -17,6 +17,16 @@
/* Forward declarations */
+#ifndef __IDXGIOutputDuplication_FWD_DEFINED__
+#define __IDXGIOutputDuplication_FWD_DEFINED__
+typedef interface IDXGIOutputDuplication IDXGIOutputDuplication;
+#endif
+
+#ifndef __IDXGIDisplayControl_FWD_DEFINED__
+#define __IDXGIDisplayControl_FWD_DEFINED__
+typedef interface IDXGIDisplayControl IDXGIDisplayControl;
+#endif
+
#ifndef __IDXGIDevice2_FWD_DEFINED__
#define __IDXGIDevice2_FWD_DEFINED__
typedef interface IDXGIDevice2 IDXGIDevice2;
@@ -37,6 +47,11 @@
typedef interface IDXGIAdapter2 IDXGIAdapter2;
#endif
+#ifndef __IDXGIOutput1_FWD_DEFINED__
+#define __IDXGIOutput1_FWD_DEFINED__
+typedef interface IDXGIOutput1 IDXGIOutput1;
+#endif
+
/* Headers for imported files */
#include <dxgi.h>
@@ -57,6 +72,432 @@
DXGI_ALPHA_MODE_IGNORE = 3,
DXGI_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} DXGI_ALPHA_MODE;
+typedef struct DXGI_OUTDUPL_MOVE_RECT {
+ POINT SourcePoint;
+ RECT DestinationRect;
+} DXGI_OUTDUPL_MOVE_RECT;
+typedef struct DXGI_OUTDUPL_DESC {
+ DXGI_MODE_DESC ModeDesc;
+ DXGI_MODE_ROTATION Rotation;
+ WINBOOL DesktopImageInSystemMemory;
+} DXGI_OUTDUPL_DESC;
+typedef struct DXGI_OUTDUPL_POINTER_POSITION {
+ POINT Position;
+ WINBOOL Visible;
+} DXGI_OUTDUPL_POINTER_POSITION;
+typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE {
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x1,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x2,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x4
+} DXGI_OUTDUPL_POINTER_SHAPE_TYPE;
+typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO {
+ UINT Type;
+ UINT Width;
+ UINT Height;
+ UINT Pitch;
+ POINT HotSpot;
+} DXGI_OUTDUPL_POINTER_SHAPE_INFO;
+typedef struct DXGI_OUTDUPL_FRAME_INFO {
+ LARGE_INTEGER LastPresentTime;
+ LARGE_INTEGER LastMouseUpdateTime;
+ UINT AccumulatedFrames;
+ WINBOOL RectsCoalesced;
+ WINBOOL ProtectedContentMaskedOut;
+ DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
+ UINT TotalMetadataBufferSize;
+ UINT PointerShapeBufferSize;
+} DXGI_OUTDUPL_FRAME_INFO;
+typedef struct DXGI_MODE_DESC1 {
+ UINT Width;
+ UINT Height;
+ DXGI_RATIONAL RefreshRate;
+ DXGI_FORMAT Format;
+ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
+ DXGI_MODE_SCALING Scaling;
+ WINBOOL Stereo;
+} DXGI_MODE_DESC1;
+/*****************************************************************************
+ * IDXGIOutputDuplication interface
+ */
+#ifndef __IDXGIOutputDuplication_INTERFACE_DEFINED__
+#define __IDXGIOutputDuplication_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("191cfac3-a341-470d-b26e-a864f428319c")
+IDXGIOutputDuplication : public IDXGIObject
+{
+ virtual void STDMETHODCALLTYPE GetDesc(
+ DXGI_OUTDUPL_DESC *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE AcquireNextFrame(
+ UINT timeout_in_milliseconds,
+ DXGI_OUTDUPL_FRAME_INFO *frame_info,
+ IDXGIResource **desktop_resource) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFrameDirtyRects(
+ UINT dirty_rects_buffer_size,
+ RECT *dirty_rects_buffer,
+ UINT *dirty_rects_buffer_size_required) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFrameMoveRects(
+ UINT move_rects_buffer_size,
+ DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,
+ UINT *move_rects_buffer_size_required) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFramePointerShape(
+ UINT pointer_shape_buffer_size,
+ void *pointer_shape_buffer,
+ UINT *pointer_shape_buffer_size_required,
+ DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE MapDesktopSurface(
+ DXGI_MAPPED_RECT *locked_rect) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UnMapDesktopSurface(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReleaseFrame(
+ ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIOutputDuplication, 0x191cfac3, 0xa341, 0x470d, 0xb2,0x6e, 0xa8,0x64,0xf4,0x28,0x31,0x9c)
+#endif
+#else
+typedef struct IDXGIOutputDuplicationVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIOutputDuplication* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIOutputDuplication* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIOutputDuplication* This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIOutputDuplication* This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIOutputDuplication* This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIOutputDuplication* This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIOutputDuplication* This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIOutputDuplication methods ***/
+ void (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIOutputDuplication* This,
+ DXGI_OUTDUPL_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *AcquireNextFrame)(
+ IDXGIOutputDuplication* This,
+ UINT timeout_in_milliseconds,
+ DXGI_OUTDUPL_FRAME_INFO *frame_info,
+ IDXGIResource **desktop_resource);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameDirtyRects)(
+ IDXGIOutputDuplication* This,
+ UINT dirty_rects_buffer_size,
+ RECT *dirty_rects_buffer,
+ UINT *dirty_rects_buffer_size_required);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameMoveRects)(
+ IDXGIOutputDuplication* This,
+ UINT move_rects_buffer_size,
+ DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,
+ UINT *move_rects_buffer_size_required);
+
+ HRESULT (STDMETHODCALLTYPE *GetFramePointerShape)(
+ IDXGIOutputDuplication* This,
+ UINT pointer_shape_buffer_size,
+ void *pointer_shape_buffer,
+ UINT *pointer_shape_buffer_size_required,
+ DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info);
+
+ HRESULT (STDMETHODCALLTYPE *MapDesktopSurface)(
+ IDXGIOutputDuplication* This,
+ DXGI_MAPPED_RECT *locked_rect);
+
+ HRESULT (STDMETHODCALLTYPE *UnMapDesktopSurface)(
+ IDXGIOutputDuplication* This);
+
+ HRESULT (STDMETHODCALLTYPE *ReleaseFrame)(
+ IDXGIOutputDuplication* This);
+
+ END_INTERFACE
+} IDXGIOutputDuplicationVtbl;
+interface IDXGIOutputDuplication {
+ CONST_VTBL IDXGIOutputDuplicationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIOutputDuplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIOutputDuplication_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIOutputDuplication_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIOutputDuplication_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIOutputDuplication_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIOutputDuplication_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIOutputDuplication_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIOutputDuplication methods ***/
+#define IDXGIOutputDuplication_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIOutputDuplication_AcquireNextFrame(This,timeout_in_milliseconds,frame_info,desktop_resource) (This)->lpVtbl->AcquireNextFrame(This,timeout_in_milliseconds,frame_info,desktop_resource)
+#define IDXGIOutputDuplication_GetFrameDirtyRects(This,dirty_rects_buffer_size,dirty_rects_buffer,dirty_rects_buffer_size_required) (This)->lpVtbl->GetFrameDirtyRects(This,dirty_rects_buffer_size,dirty_rects_buffer,dirty_rects_buffer_size_required)
+#define IDXGIOutputDuplication_GetFrameMoveRects(This,move_rects_buffer_size,move_rect_buffer,move_rects_buffer_size_required) (This)->lpVtbl->GetFrameMoveRects(This,move_rects_buffer_size,move_rect_buffer,move_rects_buffer_size_required)
+#define IDXGIOutputDuplication_GetFramePointerShape(This,pointer_shape_buffer_size,pointer_shape_buffer,pointer_shape_buffer_size_required,pointer_shape_info) (This)->lpVtbl->GetFramePointerShape(This,pointer_shape_buffer_size,pointer_shape_buffer,pointer_shape_buffer_size_required,pointer_shape_info)
+#define IDXGIOutputDuplication_MapDesktopSurface(This,locked_rect) (This)->lpVtbl->MapDesktopSurface(This,locked_rect)
+#define IDXGIOutputDuplication_UnMapDesktopSurface(This) (This)->lpVtbl->UnMapDesktopSurface(This)
+#define IDXGIOutputDuplication_ReleaseFrame(This) (This)->lpVtbl->ReleaseFrame(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIOutputDuplication_QueryInterface(IDXGIOutputDuplication* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIOutputDuplication_AddRef(IDXGIOutputDuplication* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIOutputDuplication_Release(IDXGIOutputDuplication* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_SetPrivateDataInterface(IDXGIOutputDuplication* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetPrivateData(IDXGIOutputDuplication* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetParent(IDXGIOutputDuplication* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIOutputDuplication methods ***/
+static FORCEINLINE void IDXGIOutputDuplication_GetDesc(IDXGIOutputDuplication* This,DXGI_OUTDUPL_DESC *desc) {
+ This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_AcquireNextFrame(IDXGIOutputDuplication* This,UINT timeout_in_milliseconds,DXGI_OUTDUPL_FRAME_INFO *frame_info,IDXGIResource **desktop_resource) {
+ return This->lpVtbl->AcquireNextFrame(This,timeout_in_milliseconds,frame_info,desktop_resource);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameDirtyRects(IDXGIOutputDuplication* This,UINT dirty_rects_buffer_size,RECT *dirty_rects_buffer,UINT *dirty_rects_buffer_size_required) {
+ return This->lpVtbl->GetFrameDirtyRects(This,dirty_rects_buffer_size,dirty_rects_buffer,dirty_rects_buffer_size_required);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFrameMoveRects(IDXGIOutputDuplication* This,UINT move_rects_buffer_size,DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,UINT *move_rects_buffer_size_required) {
+ return This->lpVtbl->GetFrameMoveRects(This,move_rects_buffer_size,move_rect_buffer,move_rects_buffer_size_required);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_GetFramePointerShape(IDXGIOutputDuplication* This,UINT pointer_shape_buffer_size,void *pointer_shape_buffer,UINT *pointer_shape_buffer_size_required,DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info) {
+ return This->lpVtbl->GetFramePointerShape(This,pointer_shape_buffer_size,pointer_shape_buffer,pointer_shape_buffer_size_required,pointer_shape_info);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_MapDesktopSurface(IDXGIOutputDuplication* This,DXGI_MAPPED_RECT *locked_rect) {
+ return This->lpVtbl->MapDesktopSurface(This,locked_rect);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_UnMapDesktopSurface(IDXGIOutputDuplication* This) {
+ return This->lpVtbl->UnMapDesktopSurface(This);
+}
+static FORCEINLINE HRESULT IDXGIOutputDuplication_ReleaseFrame(IDXGIOutputDuplication* This) {
+ return This->lpVtbl->ReleaseFrame(This);
+}
+#endif
+#endif
+
+#endif
+
+void STDMETHODCALLTYPE IDXGIOutputDuplication_GetDesc_Proxy(
+ IDXGIOutputDuplication* This,
+ DXGI_OUTDUPL_DESC *desc);
+void __RPC_STUB IDXGIOutputDuplication_GetDesc_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_AcquireNextFrame_Proxy(
+ IDXGIOutputDuplication* This,
+ UINT timeout_in_milliseconds,
+ DXGI_OUTDUPL_FRAME_INFO *frame_info,
+ IDXGIResource **desktop_resource);
+void __RPC_STUB IDXGIOutputDuplication_AcquireNextFrame_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFrameDirtyRects_Proxy(
+ IDXGIOutputDuplication* This,
+ UINT dirty_rects_buffer_size,
+ RECT *dirty_rects_buffer,
+ UINT *dirty_rects_buffer_size_required);
+void __RPC_STUB IDXGIOutputDuplication_GetFrameDirtyRects_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFrameMoveRects_Proxy(
+ IDXGIOutputDuplication* This,
+ UINT move_rects_buffer_size,
+ DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,
+ UINT *move_rects_buffer_size_required);
+void __RPC_STUB IDXGIOutputDuplication_GetFrameMoveRects_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_GetFramePointerShape_Proxy(
+ IDXGIOutputDuplication* This,
+ UINT pointer_shape_buffer_size,
+ void *pointer_shape_buffer,
+ UINT *pointer_shape_buffer_size_required,
+ DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info);
+void __RPC_STUB IDXGIOutputDuplication_GetFramePointerShape_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_MapDesktopSurface_Proxy(
+ IDXGIOutputDuplication* This,
+ DXGI_MAPPED_RECT *locked_rect);
+void __RPC_STUB IDXGIOutputDuplication_MapDesktopSurface_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_UnMapDesktopSurface_Proxy(
+ IDXGIOutputDuplication* This);
+void __RPC_STUB IDXGIOutputDuplication_UnMapDesktopSurface_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIOutputDuplication_ReleaseFrame_Proxy(
+ IDXGIOutputDuplication* This);
+void __RPC_STUB IDXGIOutputDuplication_ReleaseFrame_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IDXGIOutputDuplication_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDXGIDisplayControl interface
+ */
+#ifndef __IDXGIDisplayControl_INTERFACE_DEFINED__
+#define __IDXGIDisplayControl_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ea9dbf1a-c88e-4486-854a-98aa0138f30c")
+IDXGIDisplayControl : public IUnknown
+{
+ virtual WINBOOL STDMETHODCALLTYPE IsStereoEnabled(
+ ) = 0;
+
+ virtual void STDMETHODCALLTYPE SetStereoEnabled(
+ WINBOOL enabled) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIDisplayControl, 0xea9dbf1a, 0xc88e, 0x4486, 0x85,0x4a, 0x98,0xaa,0x01,0x38,0xf3,0x0c)
+#endif
+#else
+typedef struct IDXGIDisplayControlVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIDisplayControl* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIDisplayControl* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIDisplayControl* This);
+
+ /*** IDXGIDisplayControl methods ***/
+ WINBOOL (STDMETHODCALLTYPE *IsStereoEnabled)(
+ IDXGIDisplayControl* This);
+
+ void (STDMETHODCALLTYPE *SetStereoEnabled)(
+ IDXGIDisplayControl* This,
+ WINBOOL enabled);
+
+ END_INTERFACE
+} IDXGIDisplayControlVtbl;
+interface IDXGIDisplayControl {
+ CONST_VTBL IDXGIDisplayControlVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIDisplayControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIDisplayControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIDisplayControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIDisplayControl methods ***/
+#define IDXGIDisplayControl_IsStereoEnabled(This) (This)->lpVtbl->IsStereoEnabled(This)
+#define IDXGIDisplayControl_SetStereoEnabled(This,enabled) (This)->lpVtbl->SetStereoEnabled(This,enabled)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIDisplayControl_QueryInterface(IDXGIDisplayControl* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIDisplayControl_AddRef(IDXGIDisplayControl* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIDisplayControl_Release(IDXGIDisplayControl* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIDisplayControl methods ***/
+static FORCEINLINE WINBOOL IDXGIDisplayControl_IsStereoEnabled(IDXGIDisplayControl* This) {
+ return This->lpVtbl->IsStereoEnabled(This);
+}
+static FORCEINLINE void IDXGIDisplayControl_SetStereoEnabled(IDXGIDisplayControl* This,WINBOOL enabled) {
+ This->lpVtbl->SetStereoEnabled(This,enabled);
+}
+#endif
+#endif
+
+#endif
+
+WINBOOL STDMETHODCALLTYPE IDXGIDisplayControl_IsStereoEnabled_Proxy(
+ IDXGIDisplayControl* This);
+void __RPC_STUB IDXGIDisplayControl_IsStereoEnabled_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+void STDMETHODCALLTYPE IDXGIDisplayControl_SetStereoEnabled_Proxy(
+ IDXGIDisplayControl* This,
+ WINBOOL enabled);
+void __RPC_STUB IDXGIDisplayControl_SetStereoEnabled_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IDXGIDisplayControl_INTERFACE_DEFINED__ */
+
/*****************************************************************************
* IDXGIDevice2 interface
*/
@@ -1385,6 +1826,309 @@
#endif /* __IDXGIAdapter2_INTERFACE_DEFINED__ */
+/*****************************************************************************
+ * IDXGIOutput1 interface
+ */
+#ifndef __IDXGIOutput1_INTERFACE_DEFINED__
+#define __IDXGIOutput1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("00cddea8-939b-4b83-a340-a685226666cc")
+IDXGIOutput1 : public IDXGIOutput
+{
+ virtual HRESULT STDMETHODCALLTYPE GetDisplayModeList1(
+ DXGI_FORMAT enum_format,
+ UINT flags,
+ UINT *num_modes,
+ DXGI_MODE_DESC1 *desc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE FindClosestMatchingMode1(
+ const DXGI_MODE_DESC1 *mode_to_match,
+ DXGI_MODE_DESC1 *closest_match,
+ IUnknown *concerned_device) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDisplaySurfaceData1(
+ IDXGIResource *destination) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE DuplicateOutput(
+ IUnknown *device,
+ IDXGIOutputDuplication **output_duplication) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDXGIOutput1, 0x00cddea8, 0x939b, 0x4b83, 0xa3,0x40, 0xa6,0x85,0x22,0x66,0x66,0xcc)
+#endif
+#else
+typedef struct IDXGIOutput1Vtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IDXGIOutput1* This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IDXGIOutput1* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IDXGIOutput1* This);
+
+ /*** IDXGIObject methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+ IDXGIOutput1* This,
+ REFGUID guid,
+ UINT data_size,
+ const void *data);
+
+ HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+ IDXGIOutput1* This,
+ REFGUID guid,
+ const IUnknown *object);
+
+ HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+ IDXGIOutput1* This,
+ REFGUID guid,
+ UINT *data_size,
+ void *data);
+
+ HRESULT (STDMETHODCALLTYPE *GetParent)(
+ IDXGIOutput1* This,
+ REFIID riid,
+ void **parent);
+
+ /*** IDXGIOutput methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDesc)(
+ IDXGIOutput1* This,
+ DXGI_OUTPUT_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList)(
+ IDXGIOutput1* This,
+ DXGI_FORMAT format,
+ UINT flags,
+ UINT *mode_count,
+ DXGI_MODE_DESC *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode)(
+ IDXGIOutput1* This,
+ const DXGI_MODE_DESC *mode,
+ DXGI_MODE_DESC *closest_match,
+ IUnknown *device);
+
+ HRESULT (STDMETHODCALLTYPE *WaitForVBlank)(
+ IDXGIOutput1* This);
+
+ HRESULT (STDMETHODCALLTYPE *TakeOwnership)(
+ IDXGIOutput1* This,
+ IUnknown *device,
+ WINBOOL exclusive);
+
+ void (STDMETHODCALLTYPE *ReleaseOwnership)(
+ IDXGIOutput1* This);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControlCapabilities)(
+ IDXGIOutput1* This,
+ DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps);
+
+ HRESULT (STDMETHODCALLTYPE *SetGammaControl)(
+ IDXGIOutput1* This,
+ const DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *GetGammaControl)(
+ IDXGIOutput1* This,
+ DXGI_GAMMA_CONTROL *gamma_control);
+
+ HRESULT (STDMETHODCALLTYPE *SetDisplaySurface)(
+ IDXGIOutput1* This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData)(
+ IDXGIOutput1* This,
+ IDXGISurface *surface);
+
+ HRESULT (STDMETHODCALLTYPE *GetFrameStatistics)(
+ IDXGIOutput1* This,
+ DXGI_FRAME_STATISTICS *stats);
+
+ /*** IDXGIOutput1 methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetDisplayModeList1)(
+ IDXGIOutput1* This,
+ DXGI_FORMAT enum_format,
+ UINT flags,
+ UINT *num_modes,
+ DXGI_MODE_DESC1 *desc);
+
+ HRESULT (STDMETHODCALLTYPE *FindClosestMatchingMode1)(
+ IDXGIOutput1* This,
+ const DXGI_MODE_DESC1 *mode_to_match,
+ DXGI_MODE_DESC1 *closest_match,
+ IUnknown *concerned_device);
+
+ HRESULT (STDMETHODCALLTYPE *GetDisplaySurfaceData1)(
+ IDXGIOutput1* This,
+ IDXGIResource *destination);
+
+ HRESULT (STDMETHODCALLTYPE *DuplicateOutput)(
+ IDXGIOutput1* This,
+ IUnknown *device,
+ IDXGIOutputDuplication **output_duplication);
+
+ END_INTERFACE
+} IDXGIOutput1Vtbl;
+interface IDXGIOutput1 {
+ CONST_VTBL IDXGIOutput1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDXGIOutput1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDXGIOutput1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDXGIOutput1_Release(This) (This)->lpVtbl->Release(This)
+/*** IDXGIObject methods ***/
+#define IDXGIOutput1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
+#define IDXGIOutput1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define IDXGIOutput1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
+/*** IDXGIOutput methods ***/
+#define IDXGIOutput1_GetDesc(This,desc) (This)->lpVtbl->GetDesc(This,desc)
+#define IDXGIOutput1_GetDisplayModeList(This,format,flags,mode_count,desc) (This)->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc)
+#define IDXGIOutput1_FindClosestMatchingMode(This,mode,closest_match,device) (This)->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device)
+#define IDXGIOutput1_WaitForVBlank(This) (This)->lpVtbl->WaitForVBlank(This)
+#define IDXGIOutput1_TakeOwnership(This,device,exclusive) (This)->lpVtbl->TakeOwnership(This,device,exclusive)
+#define IDXGIOutput1_ReleaseOwnership(This) (This)->lpVtbl->ReleaseOwnership(This)
+#define IDXGIOutput1_GetGammaControlCapabilities(This,gamma_caps) (This)->lpVtbl->GetGammaControlCapabilities(This,gamma_caps)
+#define IDXGIOutput1_SetGammaControl(This,gamma_control) (This)->lpVtbl->SetGammaControl(This,gamma_control)
+#define IDXGIOutput1_GetGammaControl(This,gamma_control) (This)->lpVtbl->GetGammaControl(This,gamma_control)
+#define IDXGIOutput1_SetDisplaySurface(This,surface) (This)->lpVtbl->SetDisplaySurface(This,surface)
+#define IDXGIOutput1_GetDisplaySurfaceData(This,surface) (This)->lpVtbl->GetDisplaySurfaceData(This,surface)
+#define IDXGIOutput1_GetFrameStatistics(This,stats) (This)->lpVtbl->GetFrameStatistics(This,stats)
+/*** IDXGIOutput1 methods ***/
+#define IDXGIOutput1_GetDisplayModeList1(This,enum_format,flags,num_modes,desc) (This)->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc)
+#define IDXGIOutput1_FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device) (This)->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device)
+#define IDXGIOutput1_GetDisplaySurfaceData1(This,destination) (This)->lpVtbl->GetDisplaySurfaceData1(This,destination)
+#define IDXGIOutput1_DuplicateOutput(This,device,output_duplication) (This)->lpVtbl->DuplicateOutput(This,device,output_duplication)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDXGIOutput1_QueryInterface(IDXGIOutput1* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDXGIOutput1_AddRef(IDXGIOutput1* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDXGIOutput1_Release(IDXGIOutput1* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IDXGIObject methods ***/
+static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT data_size,const void *data) {
+ return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_SetPrivateDataInterface(IDXGIOutput1* This,REFGUID guid,const IUnknown *object) {
+ return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetPrivateData(IDXGIOutput1* This,REFGUID guid,UINT *data_size,void *data) {
+ return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetParent(IDXGIOutput1* This,REFIID riid,void **parent) {
+ return This->lpVtbl->GetParent(This,riid,parent);
+}
+/*** IDXGIOutput methods ***/
+static FORCEINLINE HRESULT IDXGIOutput1_GetDesc(IDXGIOutput1* This,DXGI_OUTPUT_DESC *desc) {
+ return This->lpVtbl->GetDesc(This,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList(IDXGIOutput1* This,DXGI_FORMAT format,UINT flags,UINT *mode_count,DXGI_MODE_DESC *desc) {
+ return This->lpVtbl->GetDisplayModeList(This,format,flags,mode_count,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode(IDXGIOutput1* This,const DXGI_MODE_DESC *mode,DXGI_MODE_DESC *closest_match,IUnknown *device) {
+ return This->lpVtbl->FindClosestMatchingMode(This,mode,closest_match,device);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_WaitForVBlank(IDXGIOutput1* This) {
+ return This->lpVtbl->WaitForVBlank(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_TakeOwnership(IDXGIOutput1* This,IUnknown *device,WINBOOL exclusive) {
+ return This->lpVtbl->TakeOwnership(This,device,exclusive);
+}
+static FORCEINLINE void IDXGIOutput1_ReleaseOwnership(IDXGIOutput1* This) {
+ This->lpVtbl->ReleaseOwnership(This);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControlCapabilities(IDXGIOutput1* This,DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps) {
+ return This->lpVtbl->GetGammaControlCapabilities(This,gamma_caps);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_SetGammaControl(IDXGIOutput1* This,const DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->SetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetGammaControl(IDXGIOutput1* This,DXGI_GAMMA_CONTROL *gamma_control) {
+ return This->lpVtbl->GetGammaControl(This,gamma_control);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_SetDisplaySurface(IDXGIOutput1* This,IDXGISurface *surface) {
+ return This->lpVtbl->SetDisplaySurface(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData(IDXGIOutput1* This,IDXGISurface *surface) {
+ return This->lpVtbl->GetDisplaySurfaceData(This,surface);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetFrameStatistics(IDXGIOutput1* This,DXGI_FRAME_STATISTICS *stats) {
+ return This->lpVtbl->GetFrameStatistics(This,stats);
+}
+/*** IDXGIOutput1 methods ***/
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplayModeList1(IDXGIOutput1* This,DXGI_FORMAT enum_format,UINT flags,UINT *num_modes,DXGI_MODE_DESC1 *desc) {
+ return This->lpVtbl->GetDisplayModeList1(This,enum_format,flags,num_modes,desc);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_FindClosestMatchingMode1(IDXGIOutput1* This,const DXGI_MODE_DESC1 *mode_to_match,DXGI_MODE_DESC1 *closest_match,IUnknown *concerned_device) {
+ return This->lpVtbl->FindClosestMatchingMode1(This,mode_to_match,closest_match,concerned_device);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_GetDisplaySurfaceData1(IDXGIOutput1* This,IDXGIResource *destination) {
+ return This->lpVtbl->GetDisplaySurfaceData1(This,destination);
+}
+static FORCEINLINE HRESULT IDXGIOutput1_DuplicateOutput(IDXGIOutput1* This,IUnknown *device,IDXGIOutputDuplication **output_duplication) {
+ return This->lpVtbl->DuplicateOutput(This,device,output_duplication);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IDXGIOutput1_GetDisplayModeList1_Proxy(
+ IDXGIOutput1* This,
+ DXGI_FORMAT enum_format,
+ UINT flags,
+ UINT *num_modes,
+ DXGI_MODE_DESC1 *desc);
+void __RPC_STUB IDXGIOutput1_GetDisplayModeList1_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIOutput1_FindClosestMatchingMode1_Proxy(
+ IDXGIOutput1* This,
+ const DXGI_MODE_DESC1 *mode_to_match,
+ DXGI_MODE_DESC1 *closest_match,
+ IUnknown *concerned_device);
+void __RPC_STUB IDXGIOutput1_FindClosestMatchingMode1_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIOutput1_GetDisplaySurfaceData1_Proxy(
+ IDXGIOutput1* This,
+ IDXGIResource *destination);
+void __RPC_STUB IDXGIOutput1_GetDisplaySurfaceData1_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IDXGIOutput1_DuplicateOutput_Proxy(
+ IDXGIOutput1* This,
+ IUnknown *device,
+ IDXGIOutputDuplication **output_duplication);
+void __RPC_STUB IDXGIOutput1_DuplicateOutput_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IDXGIOutput1_INTERFACE_DEFINED__ */
+
/* Begin additional prototypes for all interfaces */
diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.idl b/mingw-w64-headers/direct-x/include/dxgi1_2.idl
index 92f9c0e..64163dd 100644
--- a/mingw-w64-headers/direct-x/include/dxgi1_2.idl
+++ b/mingw-w64-headers/direct-x/include/dxgi1_2.idl
@@ -32,6 +32,122 @@
DXGI_ALPHA_MODE_FORCE_DWORD = 0xffffffff
} DXGI_ALPHA_MODE;
+typedef struct DXGI_OUTDUPL_MOVE_RECT
+{
+ POINT SourcePoint;
+ RECT DestinationRect;
+} DXGI_OUTDUPL_MOVE_RECT;
+
+typedef struct DXGI_OUTDUPL_DESC
+{
+ DXGI_MODE_DESC ModeDesc;
+ DXGI_MODE_ROTATION Rotation;
+ BOOL DesktopImageInSystemMemory;
+} DXGI_OUTDUPL_DESC;
+
+typedef struct DXGI_OUTDUPL_POINTER_POSITION
+{
+ POINT Position;
+ BOOL Visible;
+} DXGI_OUTDUPL_POINTER_POSITION;
+
+typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE
+{
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x00000001,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x00000002,
+ DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x00000004
+} DXGI_OUTDUPL_POINTER_SHAPE_TYPE;
+
+typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO
+{
+ UINT Type;
+ UINT Width;
+ UINT Height;
+ UINT Pitch;
+ POINT HotSpot;
+} DXGI_OUTDUPL_POINTER_SHAPE_INFO;
+
+typedef struct DXGI_OUTDUPL_FRAME_INFO
+{
+ LARGE_INTEGER LastPresentTime;
+ LARGE_INTEGER LastMouseUpdateTime;
+ UINT AccumulatedFrames;
+ BOOL RectsCoalesced;
+ BOOL ProtectedContentMaskedOut;
+ DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
+ UINT TotalMetadataBufferSize;
+ UINT PointerShapeBufferSize;
+} DXGI_OUTDUPL_FRAME_INFO;
+
+typedef struct DXGI_MODE_DESC1
+{
+ UINT Width;
+ UINT Height;
+ DXGI_RATIONAL RefreshRate;
+ DXGI_FORMAT Format;
+ DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
+ DXGI_MODE_SCALING Scaling;
+ BOOL Stereo;
+} DXGI_MODE_DESC1;
+
+[
+ object,
+ uuid(191cfac3-a341-470d-b26e-a864f428319c),
+ local,
+ pointer_default(unique)
+]
+interface IDXGIOutputDuplication : IDXGIObject
+{
+ void GetDesc(
+ [out] DXGI_OUTDUPL_DESC *desc
+ );
+
+ HRESULT AcquireNextFrame(
+ [in] UINT timeout_in_milliseconds,
+ [out] DXGI_OUTDUPL_FRAME_INFO *frame_info,
+ [out] IDXGIResource **desktop_resource
+ );
+
+ HRESULT GetFrameDirtyRects(
+ [in] UINT dirty_rects_buffer_size,
+ [out] RECT *dirty_rects_buffer,
+ [out] UINT *dirty_rects_buffer_size_required
+ );
+
+ HRESULT GetFrameMoveRects(
+ [in] UINT move_rects_buffer_size,
+ [out] DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,
+ [out] UINT *move_rects_buffer_size_required
+ );
+
+ HRESULT GetFramePointerShape(
+ [in] UINT pointer_shape_buffer_size,
+ [out] void *pointer_shape_buffer,
+ [out] UINT *pointer_shape_buffer_size_required,
+ [out] DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info
+ );
+
+ HRESULT MapDesktopSurface(
+ [out] DXGI_MAPPED_RECT *locked_rect
+ );
+
+ HRESULT UnMapDesktopSurface();
+
+ HRESULT ReleaseFrame();
+}
+
+[
+ object,
+ uuid(ea9dbf1a-c88e-4486-854a-98aa0138f30c),
+ local,
+ pointer_default(unique)
+]
+interface IDXGIDisplayControl : IUnknown
+{
+ BOOL IsStereoEnabled();
+ void SetStereoEnabled(BOOL enabled);
+}
+
[
object,
uuid(05008617-fbfd-4051-a790-144884b4f6a9),
@@ -232,3 +348,34 @@
{
HRESULT GetDesc2([out] DXGI_ADAPTER_DESC2 *pDesc);
}
+
+[
+ object,
+ uuid(00cddea8-939b-4b83-a340-a685226666cc),
+ local,
+ pointer_default(unique)
+]
+interface IDXGIOutput1 : IDXGIOutput
+{
+ HRESULT GetDisplayModeList1(
+ [in] DXGI_FORMAT enum_format,
+ [in] UINT flags,
+ [in, out] UINT *num_modes,
+ [out] DXGI_MODE_DESC1 *desc
+ );
+
+ HRESULT FindClosestMatchingMode1(
+ [in] const DXGI_MODE_DESC1 *mode_to_match,
+ [out] DXGI_MODE_DESC1 *closest_match,
+ [in] IUnknown *concerned_device
+ );
+
+ HRESULT GetDisplaySurfaceData1(
+ [in] IDXGIResource *destination
+ );
+
+ HRESULT DuplicateOutput(
+ [in] IUnknown *device,
+ [out] IDXGIOutputDuplication **output_duplication
+ );
+}
diff --git a/mingw-w64-headers/include/winhttp.h b/mingw-w64-headers/include/winhttp.h
index 56bfa76..1577c76 100644
--- a/mingw-w64-headers/include/winhttp.h
+++ b/mingw-w64-headers/include/winhttp.h
@@ -440,10 +440,14 @@
#define WINHTTP_CALLBACK_STATUS_FLAG_CERT_WRONG_USAGE 0x00000040
#define WINHTTP_CALLBACK_STATUS_FLAG_SECURITY_CHANNEL_ERROR 0x80000000
-#define WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 0x00000008
-#define WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 0x00000020
-#define WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 0x00000080
-#define WINHTTP_FLAG_SECURE_PROTOCOL_ALL (WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 | WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 | WINHTTP_FLAG_SECURE_PROTOCOL_TLS1)
+#define WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 0x00000008
+#define WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 0x00000020
+#define WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 0x00000080
+#define WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 0x00000200
+#define WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_2 0x00000800
+#define WINHTTP_FLAG_SECURE_PROTOCOL_ALL (WINHTTP_FLAG_SECURE_PROTOCOL_SSL2 |\
+ WINHTTP_FLAG_SECURE_PROTOCOL_SSL3 |\
+ WINHTTP_FLAG_SECURE_PROTOCOL_TLS1)
#define WINHTTP_AUTH_SCHEME_BASIC 0x00000001
#define WINHTTP_AUTH_SCHEME_NTLM 0x00000002