diff --git a/mingw-w64-headers/include/d3d11.h b/mingw-w64-headers/include/d3d11.h
index b5c1c31..55c16c1 100644
--- a/mingw-w64-headers/include/d3d11.h
+++ b/mingw-w64-headers/include/d3d11.h
@@ -870,6 +870,60 @@
     D3D11_VIDEO_PROCESSOR_ROTATION_180 = 2,
     D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3
 } D3D11_VIDEO_PROCESSOR_ROTATION;
+typedef enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS {
+    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE = 0x1,
+    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC = 0x2,
+    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4,
+    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8,
+    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE = 0x10
+} D3D11_VIDEO_PROCESSOR_DEVICE_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS {
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL = 0x1,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION = 0x2,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY = 0x4,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE = 0x8,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY = 0x10,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO = 0x20,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION = 0x40,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM = 0x80,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO = 0x100,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR = 0x200,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE = 0x400,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_METADATA_HDR10 = 0x800
+} D3D11_VIDEO_PROCESSOR_FEATURE_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS {
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS = 0x1,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST = 0x2,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE = 0x4,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION = 0x8,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION = 0x10,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT = 0x80
+} D3D11_VIDEO_PROCESSOR_FILTER_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS {
+    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED = 0x1,
+    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP = 0x2,
+    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY = 0x4,
+    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED = 0x8
+} D3D11_VIDEO_PROCESSOR_FORMAT_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS {
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE = 0x1,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING = 0x2,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT = 0x4,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION = 0x8,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING = 0x10,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION = 0x20,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION = 0x40,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING = 0x80
+} D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS;
+typedef enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS {
+    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET = 0x1,
+    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED = 0x2,
+    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED = 0x4,
+    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD = 0x8,
+    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE = 0x10
+} D3D11_VIDEO_PROCESSOR_STEREO_CAPS;
 typedef enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS {
     D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1,
     D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
diff --git a/mingw-w64-headers/include/d3d11.idl b/mingw-w64-headers/include/d3d11.idl
index f4be49e..24ecc31 100644
--- a/mingw-w64-headers/include/d3d11.idl
+++ b/mingw-w64-headers/include/d3d11.idl
@@ -360,6 +360,72 @@
     D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3,
 } D3D11_VIDEO_PROCESSOR_ROTATION;
 
+typedef enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS
+{
+    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE                          = 0x00000001,
+    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC                                 = 0x00000002,
+    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION                  = 0x00000004,
+    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION               = 0x00000008,
+    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE                         = 0x00000010,
+} D3D11_VIDEO_PROCESSOR_DEVICE_CAPS;
+
+typedef enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS
+{
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL                           = 0x00000001,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION                         = 0x00000002,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY                             = 0x00000004,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE                        = 0x00000008,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY                               = 0x00000010,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO                               = 0x00000020,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION                             = 0x00000040,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM                         = 0x00000080,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO                   = 0x00000100,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR                               = 0x00000200,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE                         = 0x00000400,
+    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_METADATA_HDR10                       = 0x00000800,
+} D3D11_VIDEO_PROCESSOR_FEATURE_CAPS;
+
+typedef enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS
+{
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS                            = 0x00000001,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST                              = 0x00000002,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE                                   = 0x00000004,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION                            = 0x00000008,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION                       = 0x00000010,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT                      = 0x00000020,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING                    = 0x00000040,
+    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT                     = 0x00000080,
+} D3D11_VIDEO_PROCESSOR_FILTER_CAPS;
+
+typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS
+{
+    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED                        = 0x00000001,
+    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP                           = 0x00000002,
+    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY                          = 0x00000004,
+    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED                    = 0x00000008,
+} D3D11_VIDEO_PROCESSOR_FORMAT_CAPS;
+
+typedef enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS
+{
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE                          = 0x00000001,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING                        = 0x00000002,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT                 = 0x00000004,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION                 = 0x00000008,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING               = 0x00000010,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION              = 0x00000020,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION                 = 0x00000040,
+    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING               = 0x00000080,
+} D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS;
+
+typedef enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS
+{
+    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET                           = 0x00000001,
+    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED                       = 0x00000002,
+    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED                    = 0x00000004,
+    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD                          = 0x00000008,
+    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE                             = 0x00000010,
+} D3D11_VIDEO_PROCESSOR_STEREO_CAPS;
+
 typedef enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS
 {
     D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND                  = 0x01,
diff --git a/mingw-w64-headers/include/dxgi.h b/mingw-w64-headers/include/dxgi.h
index 3324942..93354a5 100644
--- a/mingw-w64-headers/include/dxgi.h
+++ b/mingw-w64-headers/include/dxgi.h
@@ -152,6 +152,16 @@
 } LUID;
 typedef struct _LUID *PLUID;
 #endif
+#define DXGI_CPU_ACCESS_NONE (0)
+
+#define DXGI_CPU_ACCESS_DYNAMIC (1)
+
+#define DXGI_CPU_ACCESS_READ_WRITE (2)
+
+#define DXGI_CPU_ACCESS_SCRATCH (3)
+
+#define DXGI_CPU_ACCESS_FIELD (15)
+
 typedef UINT DXGI_USAGE;
 #define DXGI_USAGE_SHADER_INPUT (0x10)
 
@@ -2139,6 +2149,7 @@
 typedef enum DXGI_ADAPTER_FLAG {
     DXGI_ADAPTER_FLAG_NONE = 0,
     DXGI_ADAPTER_FLAG_REMOTE = 1,
+    DXGI_ADAPTER_FLAG_SOFTWARE = 2,
     DXGI_ADAPTER_FLAG_FORCE_DWORD = 0xffffffff
 } DXGI_ADAPTER_FLAG;
 typedef struct DXGI_ADAPTER_DESC1 {
diff --git a/mingw-w64-headers/include/dxgi.idl b/mingw-w64-headers/include/dxgi.idl
index b724770..c2960fd 100644
--- a/mingw-w64-headers/include/dxgi.idl
+++ b/mingw-w64-headers/include/dxgi.idl
@@ -33,6 +33,12 @@
 } LUID, *PLUID;
 cpp_quote("#endif")
 
+const UINT DXGI_CPU_ACCESS_NONE                     = 0;
+const UINT DXGI_CPU_ACCESS_DYNAMIC                  = 1;
+const UINT DXGI_CPU_ACCESS_READ_WRITE               = 2;
+const UINT DXGI_CPU_ACCESS_SCRATCH                  = 3;
+const UINT DXGI_CPU_ACCESS_FIELD                    = 15;
+
 typedef UINT DXGI_USAGE;
 const DXGI_USAGE DXGI_USAGE_SHADER_INPUT            = 0x10L;
 const DXGI_USAGE DXGI_USAGE_RENDER_TARGET_OUTPUT    = 0x20L;
@@ -439,6 +445,7 @@
 typedef enum DXGI_ADAPTER_FLAG {
     DXGI_ADAPTER_FLAG_NONE         = 0,
     DXGI_ADAPTER_FLAG_REMOTE       = 1,
+    DXGI_ADAPTER_FLAG_SOFTWARE     = 2,
     DXGI_ADAPTER_FLAG_FORCE_DWORD  = 0xFFFFFFFF
 } DXGI_ADAPTER_FLAG;
 
diff --git a/mingw-w64-headers/include/vmr9.h b/mingw-w64-headers/include/vmr9.h
index 0258136..4777275 100644
--- a/mingw-w64-headers/include/vmr9.h
+++ b/mingw-w64-headers/include/vmr9.h
@@ -2318,6 +2318,11 @@
     virtual HRESULT STDMETHODCALLTYPE TermCompositionDevice(
         IUnknown *d3ddev) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE SetStreamMediaType(
+        DWORD stream,
+        AM_MEDIA_TYPE *mt,
+        WINBOOL texture) = 0;
+
     virtual HRESULT STDMETHODCALLTYPE CompositeImage(
         IUnknown *d3ddev,
         IDirect3DSurface9 *d3dtarget,
@@ -2357,6 +2362,12 @@
         IVMRImageCompositor9 *This,
         IUnknown *d3ddev);
 
+    HRESULT (STDMETHODCALLTYPE *SetStreamMediaType)(
+        IVMRImageCompositor9 *This,
+        DWORD stream,
+        AM_MEDIA_TYPE *mt,
+        WINBOOL texture);
+
     HRESULT (STDMETHODCALLTYPE *CompositeImage)(
         IVMRImageCompositor9 *This,
         IUnknown *d3ddev,
@@ -2384,6 +2395,7 @@
 /*** IVMRImageCompositor9 methods ***/
 #define IVMRImageCompositor9_InitCompositionDevice(This,d3ddev) (This)->lpVtbl->InitCompositionDevice(This,d3ddev)
 #define IVMRImageCompositor9_TermCompositionDevice(This,d3ddev) (This)->lpVtbl->TermCompositionDevice(This,d3ddev)
+#define IVMRImageCompositor9_SetStreamMediaType(This,stream,mt,texture) (This)->lpVtbl->SetStreamMediaType(This,stream,mt,texture)
 #define IVMRImageCompositor9_CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams) (This)->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams)
 #else
 /*** IUnknown methods ***/
@@ -2403,6 +2415,9 @@
 static FORCEINLINE HRESULT IVMRImageCompositor9_TermCompositionDevice(IVMRImageCompositor9* This,IUnknown *d3ddev) {
     return This->lpVtbl->TermCompositionDevice(This,d3ddev);
 }
+static FORCEINLINE HRESULT IVMRImageCompositor9_SetStreamMediaType(IVMRImageCompositor9* This,DWORD stream,AM_MEDIA_TYPE *mt,WINBOOL texture) {
+    return This->lpVtbl->SetStreamMediaType(This,stream,mt,texture);
+}
 static FORCEINLINE HRESULT IVMRImageCompositor9_CompositeImage(IVMRImageCompositor9* This,IUnknown *d3ddev,IDirect3DSurface9 *d3dtarget,AM_MEDIA_TYPE *mttarget,REFERENCE_TIME start,REFERENCE_TIME stop,D3DCOLOR back,VMR9VideoStreamInfo *info,UINT streams) {
     return This->lpVtbl->CompositeImage(This,d3ddev,d3dtarget,mttarget,start,stop,back,info,streams);
 }
diff --git a/mingw-w64-headers/include/vmr9.idl b/mingw-w64-headers/include/vmr9.idl
index 98524b0..526cfbd 100644
--- a/mingw-w64-headers/include/vmr9.idl
+++ b/mingw-w64-headers/include/vmr9.idl
@@ -518,6 +518,7 @@
 {
     HRESULT InitCompositionDevice([in] IUnknown *d3ddev);
     HRESULT TermCompositionDevice([in] IUnknown *d3ddev);
+    HRESULT SetStreamMediaType([in] DWORD stream, [in] AM_MEDIA_TYPE *mt, [in] BOOL texture);
     HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirect3DSurface9 *d3dtarget, [in] AM_MEDIA_TYPE *mttarget,
                            [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop, D3DCOLOR back,
                            [in] VMR9VideoStreamInfo *info, [in] UINT streams);
diff --git a/mingw-w64-headers/include/wincodec.h b/mingw-w64-headers/include/wincodec.h
index a5a52ed..35e88c4 100644
--- a/mingw-w64-headers/include/wincodec.h
+++ b/mingw-w64-headers/include/wincodec.h
@@ -250,11 +250,28 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IWICDdsDecoder_FWD_DEFINED__
+#define __IWICDdsDecoder_FWD_DEFINED__
+typedef interface IWICDdsDecoder IWICDdsDecoder;
+#ifdef __cplusplus
+interface IWICDdsDecoder;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWICDdsFrameDecode_FWD_DEFINED__
+#define __IWICDdsFrameDecode_FWD_DEFINED__
+typedef interface IWICDdsFrameDecode IWICDdsFrameDecode;
+#ifdef __cplusplus
+interface IWICDdsFrameDecode;
+#endif /* __cplusplus */
+#endif
+
 /* Headers for imported files */
 
 #include <wtypes.h>
 #include <propidl.h>
 #include <ocidl.h>
+#include <dxgiformat.h>
 
 #ifdef __cplusplus
 extern "C" {
@@ -412,6 +429,21 @@
     WICSectionAccessLevelReadWrite = 0x3,
     WICSectionAccessLevel_FORCE_DWORD = 0x7fffffff
 } WICSectionAccessLevel;
+typedef enum WICDdsDimension {
+    WICDdsTexture1D = 0x0,
+    WICDdsTexture2D = 0x1,
+    WICDdsTexture3D = 0x2,
+    WICDdsTextureCube = 0x3,
+    WICDDSTEXTURE_FORCE_DWORD = 0x7fffffff
+} WICDdsDimension;
+typedef enum WICDdsAlphaMode {
+    WICDdsAlphaModeUnknown = 0x0,
+    WICDdsAlphaModeStraight = 0x1,
+    WICDdsAlphaModePremultiplied = 0x2,
+    WICDdsAlphaModeOpaque = 0x3,
+    WICDdsAlphaModeCustom = 0x4,
+    WICDDSALPHAMODE_FORCE_DWORD = 0x7fffffff
+} WICDdsAlphaMode;
 typedef GUID WICPixelFormatGUID;
 typedef REFGUID REFWICPixelFormatGUID;
 DEFINE_GUID(GUID_WICPixelFormatDontCare, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x00);
@@ -530,6 +562,22 @@
     UINT32 PixelWidth;
     UINT32 PixelHeight;
 } WICImageParameters;
+typedef struct WICDdsParameters {
+    UINT Width;
+    UINT Height;
+    UINT Depth;
+    UINT MipLevels;
+    UINT ArraySize;
+    DXGI_FORMAT DxgiFormat;
+    WICDdsDimension Dimension;
+    WICDdsAlphaMode AlphaMode;
+} WICDdsParameters;
+typedef struct WICDdsFormatInfo {
+    DXGI_FORMAT DxgiFormat;
+    UINT BytesPerBlock;
+    UINT BlockWidth;
+    UINT BlockHeight;
+} WICDdsFormatInfo;
 typedef UINT32 WICColor;
 #ifndef __ID2D1Device_FWD_DEFINED__
 #define __ID2D1Device_FWD_DEFINED__
@@ -5837,6 +5885,207 @@
 
 #endif  /* __IWICEnumMetadataItem_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IWICDdsDecoder interface
+ */
+#ifndef __IWICDdsDecoder_INTERFACE_DEFINED__
+#define __IWICDdsDecoder_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWICDdsDecoder, 0x409cd537, 0x8532, 0x40cb, 0x97,0x74, 0xe2,0xfe,0xb2,0xdf,0x4e,0x9c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("409cd537-8532-40cb-9774-e2feb2df4e9c")
+IWICDdsDecoder : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetParameters(
+        WICDdsParameters *parameters) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFrame(
+        UINT arrayIndex,
+        UINT mipLevel,
+        UINT sliceIndex,
+        IWICBitmapFrameDecode **bitmapFrame) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWICDdsDecoder, 0x409cd537, 0x8532, 0x40cb, 0x97,0x74, 0xe2,0xfe,0xb2,0xdf,0x4e,0x9c)
+#endif
+#else
+typedef struct IWICDdsDecoderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWICDdsDecoder *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWICDdsDecoder *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWICDdsDecoder *This);
+
+    /*** IWICDdsDecoder methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetParameters)(
+        IWICDdsDecoder *This,
+        WICDdsParameters *parameters);
+
+    HRESULT (STDMETHODCALLTYPE *GetFrame)(
+        IWICDdsDecoder *This,
+        UINT arrayIndex,
+        UINT mipLevel,
+        UINT sliceIndex,
+        IWICBitmapFrameDecode **bitmapFrame);
+
+    END_INTERFACE
+} IWICDdsDecoderVtbl;
+
+interface IWICDdsDecoder {
+    CONST_VTBL IWICDdsDecoderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWICDdsDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWICDdsDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWICDdsDecoder_Release(This) (This)->lpVtbl->Release(This)
+/*** IWICDdsDecoder methods ***/
+#define IWICDdsDecoder_GetParameters(This,parameters) (This)->lpVtbl->GetParameters(This,parameters)
+#define IWICDdsDecoder_GetFrame(This,arrayIndex,mipLevel,sliceIndex,bitmapFrame) (This)->lpVtbl->GetFrame(This,arrayIndex,mipLevel,sliceIndex,bitmapFrame)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWICDdsDecoder_QueryInterface(IWICDdsDecoder* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWICDdsDecoder_AddRef(IWICDdsDecoder* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWICDdsDecoder_Release(IWICDdsDecoder* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWICDdsDecoder methods ***/
+static FORCEINLINE HRESULT IWICDdsDecoder_GetParameters(IWICDdsDecoder* This,WICDdsParameters *parameters) {
+    return This->lpVtbl->GetParameters(This,parameters);
+}
+static FORCEINLINE HRESULT IWICDdsDecoder_GetFrame(IWICDdsDecoder* This,UINT arrayIndex,UINT mipLevel,UINT sliceIndex,IWICBitmapFrameDecode **bitmapFrame) {
+    return This->lpVtbl->GetFrame(This,arrayIndex,mipLevel,sliceIndex,bitmapFrame);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWICDdsDecoder_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWICDdsFrameDecode interface
+ */
+#ifndef __IWICDdsFrameDecode_INTERFACE_DEFINED__
+#define __IWICDdsFrameDecode_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWICDdsFrameDecode, 0x3d4c0c61, 0x18a4, 0x41e4, 0xbd,0x80, 0x48,0x1a,0x4f,0xc9,0xf4,0x64);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3d4c0c61-18a4-41e4-bd80-481a4fc9f464")
+IWICDdsFrameDecode : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetSizeInBlocks(
+        UINT *widthInBlocks,
+        UINT *heightInBlocks) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFormatInfo(
+        WICDdsFormatInfo *formatInfo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CopyBlocks(
+        const WICRect *boundsInBlocks,
+        UINT stride,
+        UINT bufferSize,
+        BYTE *buffer) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWICDdsFrameDecode, 0x3d4c0c61, 0x18a4, 0x41e4, 0xbd,0x80, 0x48,0x1a,0x4f,0xc9,0xf4,0x64)
+#endif
+#else
+typedef struct IWICDdsFrameDecodeVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWICDdsFrameDecode *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWICDdsFrameDecode *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWICDdsFrameDecode *This);
+
+    /*** IWICDdsFrameDecode methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSizeInBlocks)(
+        IWICDdsFrameDecode *This,
+        UINT *widthInBlocks,
+        UINT *heightInBlocks);
+
+    HRESULT (STDMETHODCALLTYPE *GetFormatInfo)(
+        IWICDdsFrameDecode *This,
+        WICDdsFormatInfo *formatInfo);
+
+    HRESULT (STDMETHODCALLTYPE *CopyBlocks)(
+        IWICDdsFrameDecode *This,
+        const WICRect *boundsInBlocks,
+        UINT stride,
+        UINT bufferSize,
+        BYTE *buffer);
+
+    END_INTERFACE
+} IWICDdsFrameDecodeVtbl;
+
+interface IWICDdsFrameDecode {
+    CONST_VTBL IWICDdsFrameDecodeVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWICDdsFrameDecode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWICDdsFrameDecode_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWICDdsFrameDecode_Release(This) (This)->lpVtbl->Release(This)
+/*** IWICDdsFrameDecode methods ***/
+#define IWICDdsFrameDecode_GetSizeInBlocks(This,widthInBlocks,heightInBlocks) (This)->lpVtbl->GetSizeInBlocks(This,widthInBlocks,heightInBlocks)
+#define IWICDdsFrameDecode_GetFormatInfo(This,formatInfo) (This)->lpVtbl->GetFormatInfo(This,formatInfo)
+#define IWICDdsFrameDecode_CopyBlocks(This,boundsInBlocks,stride,bufferSize,buffer) (This)->lpVtbl->CopyBlocks(This,boundsInBlocks,stride,bufferSize,buffer)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWICDdsFrameDecode_QueryInterface(IWICDdsFrameDecode* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWICDdsFrameDecode_AddRef(IWICDdsFrameDecode* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWICDdsFrameDecode_Release(IWICDdsFrameDecode* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWICDdsFrameDecode methods ***/
+static FORCEINLINE HRESULT IWICDdsFrameDecode_GetSizeInBlocks(IWICDdsFrameDecode* This,UINT *widthInBlocks,UINT *heightInBlocks) {
+    return This->lpVtbl->GetSizeInBlocks(This,widthInBlocks,heightInBlocks);
+}
+static FORCEINLINE HRESULT IWICDdsFrameDecode_GetFormatInfo(IWICDdsFrameDecode* This,WICDdsFormatInfo *formatInfo) {
+    return This->lpVtbl->GetFormatInfo(This,formatInfo);
+}
+static FORCEINLINE HRESULT IWICDdsFrameDecode_CopyBlocks(IWICDdsFrameDecode* This,const WICRect *boundsInBlocks,UINT stride,UINT bufferSize,BYTE *buffer) {
+    return This->lpVtbl->CopyBlocks(This,boundsInBlocks,stride,bufferSize,buffer);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWICDdsFrameDecode_INTERFACE_DEFINED__ */
+
 HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst);
 HRESULT WINAPI WICCreateBitmapFromSection(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, IWICBitmap **bitmap);
 HRESULT WINAPI WICCreateBitmapFromSectionEx(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, WICSectionAccessLevel access, IWICBitmap **bitmap);
diff --git a/mingw-w64-headers/include/wincodec.idl b/mingw-w64-headers/include/wincodec.idl
index b26e055..e64d9ed 100644
--- a/mingw-w64-headers/include/wincodec.idl
+++ b/mingw-w64-headers/include/wincodec.idl
@@ -19,6 +19,7 @@
 import "wtypes.idl";
 import "propidl.idl";
 import "ocidl.idl";
+import "dxgiformat.idl";
 
 cpp_quote ("#include \"dcommon.h\"")
 
@@ -195,6 +196,23 @@
     WICSectionAccessLevel_FORCE_DWORD = CODEC_FORCE_DWORD
 } WICSectionAccessLevel;
 
+typedef enum WICDdsDimension {
+    WICDdsTexture1D = 0x00000000,
+    WICDdsTexture2D = 0x00000001,
+    WICDdsTexture3D = 0x00000002,
+    WICDdsTextureCube = 0x00000003,
+    WICDDSTEXTURE_FORCE_DWORD = CODEC_FORCE_DWORD
+} WICDdsDimension;
+
+typedef enum WICDdsAlphaMode {
+    WICDdsAlphaModeUnknown = 0x00000000,
+    WICDdsAlphaModeStraight = 0x00000001,
+    WICDdsAlphaModePremultiplied = 0x00000002,
+    WICDdsAlphaModeOpaque = 0x00000003,
+    WICDdsAlphaModeCustom = 0x00000004,
+    WICDDSALPHAMODE_FORCE_DWORD = CODEC_FORCE_DWORD
+} WICDdsAlphaMode;
+
 typedef GUID WICPixelFormatGUID;
 typedef REFGUID REFWICPixelFormatGUID;
 
@@ -342,6 +360,24 @@
     UINT32 PixelHeight;
 } WICImageParameters;
 
+typedef struct WICDdsParameters {
+    UINT Width;
+    UINT Height;
+    UINT Depth;
+    UINT MipLevels;
+    UINT ArraySize;
+    DXGI_FORMAT DxgiFormat;
+    WICDdsDimension Dimension;
+    WICDdsAlphaMode AlphaMode;
+} WICDdsParameters;
+
+typedef struct WICDdsFormatInfo {
+    DXGI_FORMAT DxgiFormat;
+    UINT BytesPerBlock;
+    UINT BlockWidth;
+    UINT BlockHeight;
+} WICDdsFormatInfo;
+
 typedef UINT32 WICColor;
 
 interface ID2D1Device;
@@ -1144,6 +1180,43 @@
         [out] IWICEnumMetadataItem **ppIEnumMetadataItem);
 }
 
+[
+    object,
+    uuid(409cd537-8532-40cb-9774-e2feb2df4e9c)
+]
+interface IWICDdsDecoder : IUnknown
+{
+    HRESULT GetParameters(
+        [out] WICDdsParameters *parameters);
+
+    HRESULT GetFrame(
+        [in] UINT arrayIndex,
+        [in] UINT mipLevel,
+        [in] UINT sliceIndex,
+        [out, retval] IWICBitmapFrameDecode **bitmapFrame);
+};
+
+[
+    object,
+    uuid(3d4c0c61-18a4-41e4-bd80-481a4fc9f464)
+]
+interface IWICDdsFrameDecode : IUnknown
+{
+    HRESULT GetSizeInBlocks(
+        [out] UINT *widthInBlocks,
+        [out] UINT *heightInBlocks);
+
+    HRESULT GetFormatInfo(
+        [out] WICDdsFormatInfo *formatInfo);
+
+    HRESULT CopyBlocks(
+        [in, unique] const WICRect *boundsInBlocks,
+        [in] UINT stride,
+        [in] UINT bufferSize,
+        [out, size_is(bufferSize)] BYTE *buffer);
+};
+
+
 cpp_quote("HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst);")
 cpp_quote("HRESULT WINAPI WICCreateBitmapFromSection(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, IWICBitmap **bitmap);")
 cpp_quote("HRESULT WINAPI WICCreateBitmapFromSectionEx(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, WICSectionAccessLevel access, IWICBitmap **bitmap);")
