headers: Update imported headers to current Wine version.
diff --git a/mingw-w64-headers/include/mediaobj.h b/mingw-w64-headers/include/mediaobj.h
index 8653780..8ae3de7 100644
--- a/mingw-w64-headers/include/mediaobj.h
+++ b/mingw-w64-headers/include/mediaobj.h
@@ -50,16 +50,6 @@
 #endif /* __cplusplus */
 #endif
 
-/* Headers for imported files */
-
-#include <unknwn.h>
-#include <objidl.h>
-#include <strmif.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
 #ifndef __IDMOQualityControl_FWD_DEFINED__
 #define __IDMOQualityControl_FWD_DEFINED__
 typedef interface IDMOQualityControl IDMOQualityControl;
@@ -76,6 +66,16 @@
 #endif /* __cplusplus */
 #endif
 
+/* Headers for imported files */
+
+#include <unknwn.h>
+#include <objidl.h>
+#include <strmif.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef struct _DMOMediaType {
     GUID majortype;
     GUID subtype;
@@ -303,6 +303,17 @@
 
 #endif  /* __IMediaBuffer_INTERFACE_DEFINED__ */
 
+enum _DMO_INPUT_STATUS_FLAGS {
+    DMO_INPUT_STATUSF_ACCEPT_DATA = 0x1
+};
+enum _DMO_INPUT_DATA_BUFFER_FLAGS {
+    DMO_INPUT_DATA_BUFFERF_SYNCPOINT = 0x1,
+    DMO_INPUT_DATA_BUFFERF_TIME = 0x2,
+    DMO_INPUT_DATA_BUFFERF_TIMELENGTH = 0x4
+};
+enum _DMO_PROCESS_OUTPUT_FLAGS {
+    DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x1
+};
 typedef struct _DMO_OUTPUT_DATA_BUFFER {
     IMediaBuffer *pBuffer;
     DWORD dwStatus;
@@ -779,6 +790,229 @@
 
 #endif  /* __IMediaObjectInPlace_INTERFACE_DEFINED__ */
 
+enum _DMO_QUALITY_STATUS_FLAGS {
+    DMO_QUALITY_STATUS_ENABLED = 0x1
+};
+/*****************************************************************************
+ * IDMOQualityControl interface
+ */
+#ifndef __IDMOQualityControl_INTERFACE_DEFINED__
+#define __IDMOQualityControl_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("65abea96-cf36-453f-af8a-705e98f16260")
+IDMOQualityControl : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetNow(
+        REFERENCE_TIME now) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetStatus(
+        DWORD flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStatus(
+        DWORD *flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDMOQualityControl, 0x65abea96, 0xcf36, 0x453f, 0xaf,0x8a, 0x70,0x5e,0x98,0xf1,0x62,0x60)
+#endif
+#else
+typedef struct IDMOQualityControlVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDMOQualityControl *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDMOQualityControl *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDMOQualityControl *This);
+
+    /*** IDMOQualityControl methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetNow)(
+        IDMOQualityControl *This,
+        REFERENCE_TIME now);
+
+    HRESULT (STDMETHODCALLTYPE *SetStatus)(
+        IDMOQualityControl *This,
+        DWORD flags);
+
+    HRESULT (STDMETHODCALLTYPE *GetStatus)(
+        IDMOQualityControl *This,
+        DWORD *flags);
+
+    END_INTERFACE
+} IDMOQualityControlVtbl;
+
+interface IDMOQualityControl {
+    CONST_VTBL IDMOQualityControlVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDMOQualityControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDMOQualityControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDMOQualityControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IDMOQualityControl methods ***/
+#define IDMOQualityControl_SetNow(This,now) (This)->lpVtbl->SetNow(This,now)
+#define IDMOQualityControl_SetStatus(This,flags) (This)->lpVtbl->SetStatus(This,flags)
+#define IDMOQualityControl_GetStatus(This,flags) (This)->lpVtbl->GetStatus(This,flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDMOQualityControl_QueryInterface(IDMOQualityControl* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDMOQualityControl_AddRef(IDMOQualityControl* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDMOQualityControl_Release(IDMOQualityControl* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDMOQualityControl methods ***/
+static FORCEINLINE HRESULT IDMOQualityControl_SetNow(IDMOQualityControl* This,REFERENCE_TIME now) {
+    return This->lpVtbl->SetNow(This,now);
+}
+static FORCEINLINE HRESULT IDMOQualityControl_SetStatus(IDMOQualityControl* This,DWORD flags) {
+    return This->lpVtbl->SetStatus(This,flags);
+}
+static FORCEINLINE HRESULT IDMOQualityControl_GetStatus(IDMOQualityControl* This,DWORD *flags) {
+    return This->lpVtbl->GetStatus(This,flags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDMOQualityControl_INTERFACE_DEFINED__ */
+
+enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS {
+    DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x1
+};
+/*****************************************************************************
+ * IDMOVideoOutputOptimizations interface
+ */
+#ifndef __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__
+#define __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("be8f4f4e-5b16-4d29-b350-7f6b5d9298ac")
+IDMOVideoOutputOptimizations : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE QueryOperationModePreferences(
+        ULONG index,
+        DWORD *flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetOperationMode(
+        ULONG index,
+        DWORD flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentOperationMode(
+        ULONG index,
+        DWORD *flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentSampleRequirements(
+        ULONG index,
+        DWORD *flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDMOVideoOutputOptimizations, 0xbe8f4f4e, 0x5b16, 0x4d29, 0xb3,0x50, 0x7f,0x6b,0x5d,0x92,0x98,0xac)
+#endif
+#else
+typedef struct IDMOVideoOutputOptimizationsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDMOVideoOutputOptimizations *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDMOVideoOutputOptimizations *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDMOVideoOutputOptimizations *This);
+
+    /*** IDMOVideoOutputOptimizations methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryOperationModePreferences)(
+        IDMOVideoOutputOptimizations *This,
+        ULONG index,
+        DWORD *flags);
+
+    HRESULT (STDMETHODCALLTYPE *SetOperationMode)(
+        IDMOVideoOutputOptimizations *This,
+        ULONG index,
+        DWORD flags);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentOperationMode)(
+        IDMOVideoOutputOptimizations *This,
+        ULONG index,
+        DWORD *flags);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentSampleRequirements)(
+        IDMOVideoOutputOptimizations *This,
+        ULONG index,
+        DWORD *flags);
+
+    END_INTERFACE
+} IDMOVideoOutputOptimizationsVtbl;
+
+interface IDMOVideoOutputOptimizations {
+    CONST_VTBL IDMOVideoOutputOptimizationsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDMOVideoOutputOptimizations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDMOVideoOutputOptimizations_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDMOVideoOutputOptimizations_Release(This) (This)->lpVtbl->Release(This)
+/*** IDMOVideoOutputOptimizations methods ***/
+#define IDMOVideoOutputOptimizations_QueryOperationModePreferences(This,index,flags) (This)->lpVtbl->QueryOperationModePreferences(This,index,flags)
+#define IDMOVideoOutputOptimizations_SetOperationMode(This,index,flags) (This)->lpVtbl->SetOperationMode(This,index,flags)
+#define IDMOVideoOutputOptimizations_GetCurrentOperationMode(This,index,flags) (This)->lpVtbl->GetCurrentOperationMode(This,index,flags)
+#define IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(This,index,flags) (This)->lpVtbl->GetCurrentSampleRequirements(This,index,flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryInterface(IDMOVideoOutputOptimizations* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDMOVideoOutputOptimizations_AddRef(IDMOVideoOutputOptimizations* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDMOVideoOutputOptimizations_Release(IDMOVideoOutputOptimizations* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDMOVideoOutputOptimizations methods ***/
+static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_QueryOperationModePreferences(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) {
+    return This->lpVtbl->QueryOperationModePreferences(This,index,flags);
+}
+static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_SetOperationMode(IDMOVideoOutputOptimizations* This,ULONG index,DWORD flags) {
+    return This->lpVtbl->SetOperationMode(This,index,flags);
+}
+static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentOperationMode(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) {
+    return This->lpVtbl->GetCurrentOperationMode(This,index,flags);
+}
+static FORCEINLINE HRESULT IDMOVideoOutputOptimizations_GetCurrentSampleRequirements(IDMOVideoOutputOptimizations* This,ULONG index,DWORD *flags) {
+    return This->lpVtbl->GetCurrentSampleRequirements(This,index,flags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDMOVideoOutputOptimizations_INTERFACE_DEFINED__ */
+
 /* Begin additional prototypes for all interfaces */
 
 
diff --git a/mingw-w64-headers/include/mediaobj.idl b/mingw-w64-headers/include/mediaobj.idl
index 7759921..4c2e496 100644
--- a/mingw-w64-headers/include/mediaobj.idl
+++ b/mingw-w64-headers/include/mediaobj.idl
@@ -21,9 +21,6 @@
 import "objidl.idl";
 import "strmif.idl";
 
-interface IDMOQualityControl;
-interface IDMOVideoOutputOptimizations;
-
 typedef struct _DMOMediaType
 {
     GUID majortype;
@@ -90,6 +87,23 @@
     );
 }
 
+enum _DMO_INPUT_STATUS_FLAGS
+{
+    DMO_INPUT_STATUSF_ACCEPT_DATA = 0x00000001,
+};
+
+enum _DMO_INPUT_DATA_BUFFER_FLAGS
+{
+    DMO_INPUT_DATA_BUFFERF_SYNCPOINT    = 0x00000001,
+    DMO_INPUT_DATA_BUFFERF_TIME         = 0x00000002,
+    DMO_INPUT_DATA_BUFFERF_TIMELENGTH   = 0x00000004,
+};
+
+enum _DMO_PROCESS_OUTPUT_FLAGS
+{
+    DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001,
+};
+
 typedef struct _DMO_OUTPUT_DATA_BUFFER {
     IMediaBuffer *pBuffer;
     DWORD dwStatus;
@@ -252,3 +266,38 @@
         [out] REFERENCE_TIME *pLatencyTime
     );
 }
+
+enum _DMO_QUALITY_STATUS_FLAGS
+{
+    DMO_QUALITY_STATUS_ENABLED = 0x00000001,
+};
+
+[
+    object,
+    uuid(65abea96-cf36-453f-af8a-705e98f16260),
+    local
+]
+interface IDMOQualityControl : IUnknown
+{
+    HRESULT SetNow([in] REFERENCE_TIME now);
+    HRESULT SetStatus([in] DWORD flags);
+    HRESULT GetStatus([out] DWORD *flags);
+}
+
+enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS
+{
+    DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x00000001,
+};
+
+[
+    object,
+    uuid(be8f4f4e-5b16-4d29-b350-7f6b5d9298ac),
+    local
+]
+interface IDMOVideoOutputOptimizations : IUnknown
+{
+    HRESULT QueryOperationModePreferences(ULONG index, DWORD *flags);
+    HRESULT SetOperationMode(ULONG index, DWORD flags);
+    HRESULT GetCurrentOperationMode(ULONG index, DWORD *flags);
+    HRESULT GetCurrentSampleRequirements(ULONG index, DWORD *flags);
+}
diff --git a/mingw-w64-headers/include/vmr9.h b/mingw-w64-headers/include/vmr9.h
index 89a2659..0258136 100644
--- a/mingw-w64-headers/include/vmr9.h
+++ b/mingw-w64-headers/include/vmr9.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from direct-x/include/vmr9.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.0-rc1 from include/vmr9.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -167,10 +167,10 @@
 typedef DWORD D3DFORMAT;
 typedef DWORD D3DPOOL;
 typedef HANDLE HMONITOR;
-typedef struct __WIDL_vmr9_generated_name_00000002 {
+typedef struct __WIDL_vmr9_generated_name_0000000C {
     char dummy;
 } AM_MEDIA_TYPE;
-typedef struct __WIDL_vmr9_generated_name_00000003 {
+typedef struct __WIDL_vmr9_generated_name_0000000D {
     char dummy;
 } D3DCOLOR;
 #endif
diff --git a/mingw-w64-headers/include/vmr9.idl b/mingw-w64-headers/include/vmr9.idl
index 410f616..98524b0 100644
--- a/mingw-w64-headers/include/vmr9.idl
+++ b/mingw-w64-headers/include/vmr9.idl
@@ -78,7 +78,7 @@
     HRESULT StartPresenting([in] DWORD_PTR id);
     HRESULT StopPresenting([in] DWORD_PTR id);
     HRESULT PresentImage([in] DWORD_PTR id, [in] VMR9PresentationInfo *info);
-};
+}
 
 typedef enum _VMR9SurfaceAllocationFlags
 {
@@ -116,7 +116,7 @@
     HRESULT TerminateDevice([in] DWORD_PTR id);
     HRESULT GetSurface([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface);
     HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify9 *allocnotify);
-};
+}
 
 [
     local,
@@ -128,7 +128,7 @@
 interface IVMRSurfaceAllocatorEx9 : IVMRSurfaceAllocator9
 {
     HRESULT GetSurfaceEx([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface, [out] RECT *dest);
-};
+}
 
 [
     local,
@@ -144,7 +144,7 @@
     HRESULT ChangeD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
     HRESULT AllocateSurfaceHelper([in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers, [out] IDirect3DSurface9 **surface);
     HRESULT NotifyEvent([in] LONG code, [in] LONG_PTR param1, [in] LONG_PTR param2);
-};
+}
 
 typedef enum _VMR9AspectRatioMode
 {
@@ -174,7 +174,7 @@
     HRESULT GetCurrentImage([out] BYTE **dib);
     HRESULT SetBorderColor([in] COLORREF color);
     HRESULT GetBorderColor([out] COLORREF *color);
-};
+}
 
 typedef enum _VMR9MixerPrefs
 {
@@ -264,7 +264,7 @@
     HRESULT SetProcAmpControl([in] DWORD streamid, [in] VMR9ProcAmpControl *control);
     HRESULT GetProcAmpControl([in] DWORD streamid, [in, out] VMR9ProcAmpControl *control);
     HRESULT GetProcAmpControlRange([in] DWORD streamid, [in, out] VMR9ProcAmpControlRange *controlrange);
-};
+}
 
 typedef struct _VMR9AlphaBitmap
 {
@@ -300,7 +300,7 @@
     HRESULT SetAlphaBitmap([in] const VMR9AlphaBitmap *bitmap);
     HRESULT UpdateAlphaBitmapParameters([in] const VMR9AlphaBitmap *bitmap);
     HRESULT GetAlphaBitmapParameters([out] VMR9AlphaBitmap *bitmap);
-};
+}
 
 [
     local,
@@ -315,7 +315,7 @@
     HRESULT LockSurface([out] BYTE **surface);
     HRESULT UnlockSurface();
     HRESULT GetSurface([out] IDirect3DSurface9 **surface);
-};
+}
 
 typedef enum _VMR9RenderPrefs
 {
@@ -334,7 +334,7 @@
 {
     HRESULT SetRenderingPrefs([in] DWORD renderflags);
     HRESULT GetRenderingPrefs([out] DWORD *renderflags);
-};
+}
 
 [
     local,
@@ -347,7 +347,7 @@
 {
     HRESULT SetStreamActiveState([in] BOOL active);
     HRESULT GetStreamActiveState([out] BOOL *active);
-};
+}
 
 typedef enum _VMR9Mode
 {
@@ -373,7 +373,7 @@
     HRESULT GetRenderingPrefs([out] DWORD *renderflags);
     HRESULT SetRenderingMode([in] DWORD mode);
     HRESULT GetRenderingMode([out] DWORD *mode);
-};
+}
 
 [
     local,
@@ -420,7 +420,7 @@
     HRESULT SetDefaultMonitor([in] UINT uDev);
     HRESULT GetDefaultMonitor([out] UINT *uDev);
     HRESULT GetAvailableMonitors([out, size_is(arraysize)] VMR9MonitorInfo *info, [in] DWORD arraysize, [out] DWORD *numdev);
-};
+}
 
 typedef enum _VMR9DeinterlacePrefs
 {
@@ -493,7 +493,7 @@
     HRESULT GetDeinterlacePrefs([out] DWORD *prefs);
     HRESULT SetDeinterlacePrefs([in] DWORD prefs);
     HRESULT GetActualDeinterlaceMode([in] DWORD streamid, [out] GUID *mode);
-};
+}
 
 typedef struct _VMR9VideoStreamInfo {
     IDirect3DSurface9 *pddsVideoSurface;
@@ -521,4 +521,4 @@
     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/wine-import.sh b/mingw-w64-headers/wine-import.sh
index 0438354..744779a 100755
--- a/mingw-w64-headers/wine-import.sh
+++ b/mingw-w64-headers/wine-import.sh
@@ -168,6 +168,7 @@
 	uiautomationclient \
 	uiautomationcore \
 	urlhist \
+	vmr9 \
 	wmdrmsdk \
 	wmsbuffer \
 	wmsdkidl \