[mingw-headers/f20] Backport various upstream commits

Erik van Pienbroek epienbro at fedoraproject.org
Thu Jan 1 11:44:38 UTC 2015


commit 0ceb59176fa8e4cc332bf23edabaf7f437b29887
Author: Erik van Pienbroek <epienbro at fedoraproject.org>
Date:   Thu Jan 1 12:44:14 2015 +0100

    Backport various upstream commits
    
    These commits are required to build the most
    recent mingw-wine-gecko and mingw-angleproject

 ...ed-MFCreateAttributes-to-mfapi.h-where-it.patch |   40 +
 ...bjects-interface-for-winapi-family-and-W8.patch | 3880 ++++++++++++
 ...-imported-headers-to-current-Wine-version.patch |  193 +
 0004-Updated-headers-imported-from-Wine.patch      | 4056 +++++++++++++
 ...winerror.h-Added-some-missing-error-codes.patch |   30 +
 ...d2d1_1helper.h-Added-some-missing-helpers.patch |   57 +
 ...effects.h-Added-some-missing-declarations.patch |  332 ++
 0008-winsdkver.h-Added-new-header.patch            |   40 +
 0009-dwrite_1.h-Added-new-header-file.patch        |  167 +
 0010-Added-some-missing-WMF-declarations.patch     |   60 +
 ...eclare-RtlIpv6-functions-only-if-ws2ipdef.patch |   58 +
 ...dded-dxgi1_2.h-missing-in-previous-commit.patch |  310 +
 ...-imported-headers-to-current-Wine-version.patch |  514 ++
 0014-tsattrs.h-Added-new-header-file.patch         |  119 +
 ...amily-check-correct-enumerator-values-add.patch |  294 +
 ...n.idl-to-Makefile.am-and-regenerate-files.patch | 3474 +++++++++++
 ...-imported-headers-to-current-Wine-version.patch | 6206 ++++++++++++++++++++
 ...-imported-headers-to-current-Wine-version.patch |  541 ++
 ...-imported-headers-to-current-Wine-version.patch |  425 ++
 0020-Fixed-some-version-guards.patch               |   78 +
 ...2_WINNT-requirements-for-Un-RegisterPower.patch |   30 +
 ...n-t-duplicate-parent-interface-methods-fo.patch |  394 ++
 ...-wchar_s.h-Added-wcsnlen_s-implementation.patch |   41 +
 ..._forceinline-for-wcsnlen_s-implementation.patch |   39 +
 0025-Implement-IDXGIDevice1.patch                  |  253 +
 mingw-headers.spec                                 |   62 +-
 26 files changed, 21688 insertions(+), 5 deletions(-)
---
diff --git a/0001-mfapi.h-Moved-MFCreateAttributes-to-mfapi.h-where-it.patch b/0001-mfapi.h-Moved-MFCreateAttributes-to-mfapi.h-where-it.patch
new file mode 100644
index 0000000..c5d9dcd
--- /dev/null
+++ b/0001-mfapi.h-Moved-MFCreateAttributes-to-mfapi.h-where-it.patch
@@ -0,0 +1,40 @@
+From 51644cdbcfc6fa88e237337cb8db123419278be4 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Fri, 21 Feb 2014 11:45:45 +0000
+Subject: [PATCH 01/25] mfapi.h: Moved MFCreateAttributes to mfapi.h, where it
+ belongs.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6490 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/include/mfapi.h       | 2 ++
+ mingw-w64-headers/include/wmcontainer.h | 1 -
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/mingw-w64-headers/include/mfapi.h b/mingw-w64-headers/include/mfapi.h
+index 1fb8ec6..7c669b8 100644
+--- a/mingw-w64-headers/include/mfapi.h
++++ b/mingw-w64-headers/include/mfapi.h
+@@ -423,6 +423,8 @@ double WINAPI MFGetAttributeDouble(IMFAttributes *pAttributes,REFGUID guidKey,do
+ HRESULT WINAPI MFGetAttributesAsBlob(IMFAttributes *pAttributes,UINT8 *pBuf,UINT cbBufSize);
+ HRESULT WINAPI MFGetAttributesAsBlobSize(IMFAttributes *pAttributes,UINT32 *pcbBufSize);
+ UINT64 WINAPI MFGetAttributeUINT64(IMFAttributes *pAttributes,REFGUID guidKey,UINT64 unDefault);
++HRESULT WINAPI MFCreateAttributes(IMFAttributes**,UINT32);
++
+ HRESULT WINAPI MFGetPlaneSize(DWORD format,DWORD dwWidth,DWORD dwHeight,DWORD *pdwPlaneSize);
+ HRESULT WINAPI MFGetStrideForBitmapInfoHeader(DWORD format,DWORD dwWidth,LONG *pStride);
+ HRESULT WINAPI MFGetTimerPeriodicity(DWORD *Periodicity);
+diff --git a/mingw-w64-headers/include/wmcontainer.h b/mingw-w64-headers/include/wmcontainer.h
+index 82fa388..c50854c 100644
+--- a/mingw-w64-headers/include/wmcontainer.h
++++ b/mingw-w64-headers/include/wmcontainer.h
+@@ -622,7 +622,6 @@ extern "C" {
+ #endif
+ 
+ HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);
+-HRESULT WINAPI MFCreateAttributes(IMFAttributes **ppMFAttributes,UINT32 cInitialSize);
+ HRESULT WINAPI MFCreateWMAEncoderActivate(IMFMediaType *pMediaType,IPropertyStore *pEncodingConfigurationProperties,IMFActivate **ppActivate);
+ HRESULT WINAPI MFCreateWMVEncoderActivate(IMFMediaType *pMediaType,IPropertyStore *pEncodingConfigurationProperties,IMFActivate **ppActivate);
+ 
+-- 
+2.1.0
+
diff --git a/0002-Update-mfobjects-interface-for-winapi-family-and-W8.patch b/0002-Update-mfobjects-interface-for-winapi-family-and-W8.patch
new file mode 100644
index 0000000..fb5aa86
--- /dev/null
+++ b/0002-Update-mfobjects-interface-for-winapi-family-and-W8.patch
@@ -0,0 +1,3880 @@
+From 70da0148b4006a81e14a5b8f7b4967937eda9fb4 Mon Sep 17 00:00:00 2001
+From: Kai Tietz <ktietz70 at googlemail.com>
+Date: Tue, 10 Dec 2013 13:55:25 +0000
+Subject: [PATCH 02/25] Update mfobjects interface for winapi-family and W8
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6407 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/include/mfobjects.h   | 2119 +++++++++++++++++++++++++++----
+ mingw-w64-headers/include/mfobjects.idl | 1223 +++++++++++-------
+ 2 files changed, 2649 insertions(+), 693 deletions(-)
+
+diff --git a/mingw-w64-headers/include/mfobjects.h b/mingw-w64-headers/include/mfobjects.h
+index 96a57b8..e3cc403 100644
+--- a/mingw-w64-headers/include/mfobjects.h
++++ b/mingw-w64-headers/include/mfobjects.h
+@@ -1,4 +1,4 @@
+-/*** Autogenerated by WIDL 1.5.25 from include/mfobjects.idl - Do not edit ***/
++/*** Autogenerated by WIDL 1.6 from mfobjects.idl - Do not edit ***/
+ 
+ #ifndef __REQUIRED_RPCNDR_H_VERSION__
+ #define __REQUIRED_RPCNDR_H_VERSION__ 475
+@@ -37,6 +37,16 @@ typedef interface IMFSample IMFSample;
+ typedef interface IMF2DBuffer IMF2DBuffer;
+ #endif
+ 
++#ifndef __IMF2DBuffer2_FWD_DEFINED__
++#define __IMF2DBuffer2_FWD_DEFINED__
++typedef interface IMF2DBuffer2 IMF2DBuffer2;
++#endif
++
++#ifndef __IMFDXGIBuffer_FWD_DEFINED__
++#define __IMFDXGIBuffer_FWD_DEFINED__
++typedef interface IMFDXGIBuffer IMFDXGIBuffer;
++#endif
++
+ #ifndef __IMFMediaType_FWD_DEFINED__
+ #define __IMFMediaType_FWD_DEFINED__
+ typedef interface IMFMediaType IMFMediaType;
+@@ -62,9 +72,9 @@ typedef interface IMFAsyncResult IMFAsyncResult;
+ typedef interface IMFAsyncCallback IMFAsyncCallback;
+ #endif
+ 
+-#ifndef __IMFRemoteAsyncCallback_FWD_DEFINED__
+-#define __IMFRemoteAsyncCallback_FWD_DEFINED__
+-typedef interface IMFRemoteAsyncCallback IMFRemoteAsyncCallback;
++#ifndef __IMFAsyncCallbackLogging_FWD_DEFINED__
++#define __IMFAsyncCallbackLogging_FWD_DEFINED__
++typedef interface IMFAsyncCallbackLogging IMFAsyncCallbackLogging;
+ #endif
+ 
+ #ifndef __IMFMediaEvent_FWD_DEFINED__
+@@ -77,16 +87,36 @@ typedef interface IMFMediaEvent IMFMediaEvent;
+ typedef interface IMFMediaEventGenerator IMFMediaEventGenerator;
+ #endif
+ 
++#ifndef __IMFRemoteAsyncCallback_FWD_DEFINED__
++#define __IMFRemoteAsyncCallback_FWD_DEFINED__
++typedef interface IMFRemoteAsyncCallback IMFRemoteAsyncCallback;
++#endif
++
+ #ifndef __IMFByteStream_FWD_DEFINED__
+ #define __IMFByteStream_FWD_DEFINED__
+ typedef interface IMFByteStream IMFByteStream;
+ #endif
+ 
++#ifndef __IMFByteStreamProxyClassFactory_FWD_DEFINED__
++#define __IMFByteStreamProxyClassFactory_FWD_DEFINED__
++typedef interface IMFByteStreamProxyClassFactory IMFByteStreamProxyClassFactory;
++#endif
++
++#ifndef __IMFSampleOutputStream_FWD_DEFINED__
++#define __IMFSampleOutputStream_FWD_DEFINED__
++typedef interface IMFSampleOutputStream IMFSampleOutputStream;
++#endif
++
+ #ifndef __IMFCollection_FWD_DEFINED__
+ #define __IMFCollection_FWD_DEFINED__
+ typedef interface IMFCollection IMFCollection;
+ #endif
+ 
++#ifndef __IMFMediaEventQueue_FWD_DEFINED__
++#define __IMFMediaEventQueue_FWD_DEFINED__
++typedef interface IMFMediaEventQueue IMFMediaEventQueue;
++#endif
++
+ #ifndef __IMFActivate_FWD_DEFINED__
+ #define __IMFActivate_FWD_DEFINED__
+ typedef interface IMFActivate IMFActivate;
+@@ -97,6 +127,16 @@ typedef interface IMFActivate IMFActivate;
+ typedef interface IMFPluginControl IMFPluginControl;
+ #endif
+ 
++#ifndef __IMFPluginControl2_FWD_DEFINED__
++#define __IMFPluginControl2_FWD_DEFINED__
++typedef interface IMFPluginControl2 IMFPluginControl2;
++#endif
++
++#ifndef __IMFDXGIDeviceManager_FWD_DEFINED__
++#define __IMFDXGIDeviceManager_FWD_DEFINED__
++typedef interface IMFDXGIDeviceManager IMFDXGIDeviceManager;
++#endif
++
+ /* Headers for imported files */
+ 
+ #include <unknwn.h>
+@@ -107,6 +147,16 @@ typedef interface IMFPluginControl IMFPluginControl;
+ extern "C" {
+ #endif
+ 
++/**
++ * This file is part of the mingw-w64 runtime package.
++ * No warranty is given; refer to the file DISCLAIMER within this package.
++ */
++
++#include <winapifamily.h>
++
++
++typedef ULONGLONG QWORD;
++
+ #include <mmreg.h>
+ #if 0
+ typedef struct tWAVEFORMATEX {
+@@ -122,7 +172,7 @@ typedef struct tWAVEFORMATEX {
+ typedef struct tWAVEFORMATEX *PWAVEFORMATEX;
+ typedef struct tWAVEFORMATEX *NPWAVEFORMATEX;
+ typedef struct tWAVEFORMATEX *LPWAVEFORMATEX;
+-typedef struct __WIDL_mmreg_h_generated_name_00000000 {
++typedef struct __WIDL_mfobjects_generated_name_00000013 {
+     WORD wFormatTag;
+     WORD nChannels;
+     DWORD nSamplesPerSec;
+@@ -134,9 +184,10 @@ typedef struct __WIDL_mmreg_h_generated_name_00000000 {
+     DWORD dwChannelMask;
+     GUID SubFormat;
+ } WAVEFORMATEXTENSIBLE;
+-typedef struct __WIDL_mmreg_h_generated_name_00000000 *PWAVEFORMATEXTENSIBLE;
++typedef struct __WIDL_mfobjects_generated_name_00000013 *PWAVEFORMATEXTENSIBLE;
+ #endif
+-typedef ULONGLONG QWORD;
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+ typedef enum _MF_ATTRIBUTE_TYPE {
+     MF_ATTRIBUTE_UINT32 = VT_UI4,
+     MF_ATTRIBUTE_UINT64 = VT_UI8,
+@@ -146,6 +197,7 @@ typedef enum _MF_ATTRIBUTE_TYPE {
+     MF_ATTRIBUTE_BLOB = VT_VECTOR | VT_UI1,
+     MF_ATTRIBUTE_IUNKNOWN = VT_UNKNOWN
+ } MF_ATTRIBUTE_TYPE;
++
+ typedef enum _MF_ATTRIBUTES_MATCH_TYPE {
+     MF_ATTRIBUTES_MATCH_OUR_ITEMS = 0,
+     MF_ATTRIBUTES_MATCH_THEIR_ITEMS = 1,
+@@ -153,6 +205,7 @@ typedef enum _MF_ATTRIBUTES_MATCH_TYPE {
+     MF_ATTRIBUTES_MATCH_INTERSECTION = 3,
+     MF_ATTRIBUTES_MATCH_SMALLER = 4
+ } MF_ATTRIBUTES_MATCH_TYPE;
++
+ /*****************************************************************************
+  * IMFAttributes interface
+  */
+@@ -887,10 +940,15 @@ void __RPC_STUB IMFAttributes_CopyAllItems_Stub(
+ 
+ #endif  /* __IMFAttributes_INTERFACE_DEFINED__ */
+ 
++
+ enum MF_ATTRIBUTE_SERIALIZE_OPTIONS {
+     MF_ATTRIBUTE_SERIALIZE_UNKNOWN_BYREF = 0x1
+ };
+ 
++
++STDAPI MFSerializeAttributesToStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);
++STDAPI MFDeserializeAttributesFromStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);
++
+ /*****************************************************************************
+  * IMFMediaBuffer interface
+  */
+@@ -1055,6 +1113,7 @@ void __RPC_STUB IMFMediaBuffer_GetMaxLength_Stub(
+ 
+ #endif  /* __IMFMediaBuffer_INTERFACE_DEFINED__ */
+ 
++
+ /*****************************************************************************
+  * IMFSample interface
+  */
+@@ -1662,6 +1721,7 @@ void __RPC_STUB IMFSample_CopyToBuffer_Stub(
+ 
+ #endif  /* __IMFSample_INTERFACE_DEFINED__ */
+ 
++
+ /*****************************************************************************
+  * IMF2DBuffer interface
+  */
+@@ -1674,7 +1734,7 @@ MIDL_INTERFACE("7dc9d5f9-9ed9-44ec-9bbf-0600bb589fbb")
+ IMF2DBuffer : public IUnknown
+ {
+     virtual HRESULT STDMETHODCALLTYPE Lock2D(
+-        BYTE **pbScanline0,
++        BYTE **ppbScanline0,
+         LONG *plPitch) = 0;
+ 
+     virtual HRESULT STDMETHODCALLTYPE Unlock2D(
+@@ -1721,7 +1781,7 @@ typedef struct IMF2DBufferVtbl {
+     /*** IMF2DBuffer methods ***/
+     HRESULT (STDMETHODCALLTYPE *Lock2D)(
+         IMF2DBuffer* This,
+-        BYTE **pbScanline0,
++        BYTE **ppbScanline0,
+         LONG *plPitch);
+ 
+     HRESULT (STDMETHODCALLTYPE *Unlock2D)(
+@@ -1763,7 +1823,7 @@ interface IMF2DBuffer {
+ #define IMF2DBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+ #define IMF2DBuffer_Release(This) (This)->lpVtbl->Release(This)
+ /*** IMF2DBuffer methods ***/
+-#define IMF2DBuffer_Lock2D(This,pbScanline0,plPitch) (This)->lpVtbl->Lock2D(This,pbScanline0,plPitch)
++#define IMF2DBuffer_Lock2D(This,ppbScanline0,plPitch) (This)->lpVtbl->Lock2D(This,ppbScanline0,plPitch)
+ #define IMF2DBuffer_Unlock2D(This) (This)->lpVtbl->Unlock2D(This)
+ #define IMF2DBuffer_GetScanline0AndPitch(This,pbScanline0,plPitch) (This)->lpVtbl->GetScanline0AndPitch(This,pbScanline0,plPitch)
+ #define IMF2DBuffer_IsContiguousFormat(This,pfIsContiguous) (This)->lpVtbl->IsContiguousFormat(This,pfIsContiguous)
+@@ -1782,8 +1842,8 @@ static FORCEINLINE ULONG IMF2DBuffer_Release(IMF2DBuffer* This) {
+     return This->lpVtbl->Release(This);
+ }
+ /*** IMF2DBuffer methods ***/
+-static FORCEINLINE HRESULT IMF2DBuffer_Lock2D(IMF2DBuffer* This,BYTE **pbScanline0,LONG *plPitch) {
+-    return This->lpVtbl->Lock2D(This,pbScanline0,plPitch);
++static FORCEINLINE HRESULT IMF2DBuffer_Lock2D(IMF2DBuffer* This,BYTE **ppbScanline0,LONG *plPitch) {
++    return This->lpVtbl->Lock2D(This,ppbScanline0,plPitch);
+ }
+ static FORCEINLINE HRESULT IMF2DBuffer_Unlock2D(IMF2DBuffer* This) {
+     return This->lpVtbl->Unlock2D(This);
+@@ -1810,7 +1870,7 @@ static FORCEINLINE HRESULT IMF2DBuffer_ContiguousCopyFrom(IMF2DBuffer* This,cons
+ 
+ HRESULT STDMETHODCALLTYPE IMF2DBuffer_Lock2D_Proxy(
+     IMF2DBuffer* This,
+-    BYTE **pbScanline0,
++    BYTE **ppbScanline0,
+     LONG *plPitch);
+ void __RPC_STUB IMF2DBuffer_Lock2D_Stub(
+     IRpcStubBuffer* This,
+@@ -1870,6 +1930,347 @@ void __RPC_STUB IMF2DBuffer_ContiguousCopyFrom_Stub(
+ 
+ #endif  /* __IMF2DBuffer_INTERFACE_DEFINED__ */
+ 
++
++typedef enum _MF2DBuffer_LockFlags {
++    MF2DBuffer_LockFlags_LockTypeMask = (0x1 | 0x2) | 0x3,
++    MF2DBuffer_LockFlags_Read = 0x1,
++    MF2DBuffer_LockFlags_Write = 0x2,
++    MF2DBuffer_LockFlags_ReadWrite = 0x3,
++    MF2DBuffer_LockFlags_ForceDWORD = 0x7fffffff
++} MF2DBuffer_LockFlags;
++
++/*****************************************************************************
++ * IMF2DBuffer2 interface
++ */
++#ifndef __IMF2DBuffer2_INTERFACE_DEFINED__
++#define __IMF2DBuffer2_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IMF2DBuffer2, 0x33ae5ea6, 0x4316, 0x436f, 0x8d,0xdd, 0xd7,0x3d,0x22,0xf8,0x29,0xec);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("33ae5ea6-4316-436f-8ddd-d73d22f829ec")
++IMF2DBuffer2 : public IMF2DBuffer
++{
++    virtual HRESULT STDMETHODCALLTYPE Lock2DSize(
++        MF2DBuffer_LockFlags lockFlags,
++        BYTE **ppbScanline0,
++        LONG *plPitch,
++        BYTE **ppbBufferStart,
++        DWORD *pcbBufferLength) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Copy2DTo(
++        IMF2DBuffer2 *pDestBuffer) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IMF2DBuffer2, 0x33ae5ea6, 0x4316, 0x436f, 0x8d,0xdd, 0xd7,0x3d,0x22,0xf8,0x29,0xec)
++#endif
++#else
++typedef struct IMF2DBuffer2Vtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IMF2DBuffer2* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IMF2DBuffer2* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IMF2DBuffer2* This);
++
++    /*** IMF2DBuffer methods ***/
++    HRESULT (STDMETHODCALLTYPE *Lock2D)(
++        IMF2DBuffer2* This,
++        BYTE **ppbScanline0,
++        LONG *plPitch);
++
++    HRESULT (STDMETHODCALLTYPE *Unlock2D)(
++        IMF2DBuffer2* This);
++
++    HRESULT (STDMETHODCALLTYPE *GetScanline0AndPitch)(
++        IMF2DBuffer2* This,
++        BYTE **pbScanline0,
++        LONG *plPitch);
++
++    HRESULT (STDMETHODCALLTYPE *IsContiguousFormat)(
++        IMF2DBuffer2* This,
++        WINBOOL *pfIsContiguous);
++
++    HRESULT (STDMETHODCALLTYPE *GetContiguousLength)(
++        IMF2DBuffer2* This,
++        DWORD *pcbLength);
++
++    HRESULT (STDMETHODCALLTYPE *ContiguousCopyTo)(
++        IMF2DBuffer2* This,
++        BYTE *pbDestBuffer,
++        DWORD cbDestBuffer);
++
++    HRESULT (STDMETHODCALLTYPE *ContiguousCopyFrom)(
++        IMF2DBuffer2* This,
++        const BYTE *pbSrcBuffer,
++        DWORD cbSrcBuffer);
++
++    /*** IMF2DBuffer2 methods ***/
++    HRESULT (STDMETHODCALLTYPE *Lock2DSize)(
++        IMF2DBuffer2* This,
++        MF2DBuffer_LockFlags lockFlags,
++        BYTE **ppbScanline0,
++        LONG *plPitch,
++        BYTE **ppbBufferStart,
++        DWORD *pcbBufferLength);
++
++    HRESULT (STDMETHODCALLTYPE *Copy2DTo)(
++        IMF2DBuffer2* This,
++        IMF2DBuffer2 *pDestBuffer);
++
++    END_INTERFACE
++} IMF2DBuffer2Vtbl;
++interface IMF2DBuffer2 {
++    CONST_VTBL IMF2DBuffer2Vtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IMF2DBuffer2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMF2DBuffer2_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMF2DBuffer2_Release(This) (This)->lpVtbl->Release(This)
++/*** IMF2DBuffer methods ***/
++#define IMF2DBuffer2_Lock2D(This,ppbScanline0,plPitch) (This)->lpVtbl->Lock2D(This,ppbScanline0,plPitch)
++#define IMF2DBuffer2_Unlock2D(This) (This)->lpVtbl->Unlock2D(This)
++#define IMF2DBuffer2_GetScanline0AndPitch(This,pbScanline0,plPitch) (This)->lpVtbl->GetScanline0AndPitch(This,pbScanline0,plPitch)
++#define IMF2DBuffer2_IsContiguousFormat(This,pfIsContiguous) (This)->lpVtbl->IsContiguousFormat(This,pfIsContiguous)
++#define IMF2DBuffer2_GetContiguousLength(This,pcbLength) (This)->lpVtbl->GetContiguousLength(This,pcbLength)
++#define IMF2DBuffer2_ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer) (This)->lpVtbl->ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer)
++#define IMF2DBuffer2_ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer) (This)->lpVtbl->ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer)
++/*** IMF2DBuffer2 methods ***/
++#define IMF2DBuffer2_Lock2DSize(This,lockFlags,ppbScanline0,plPitch,ppbBufferStart,pcbBufferLength) (This)->lpVtbl->Lock2DSize(This,lockFlags,ppbScanline0,plPitch,ppbBufferStart,pcbBufferLength)
++#define IMF2DBuffer2_Copy2DTo(This,pDestBuffer) (This)->lpVtbl->Copy2DTo(This,pDestBuffer)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IMF2DBuffer2_QueryInterface(IMF2DBuffer2* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IMF2DBuffer2_AddRef(IMF2DBuffer2* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IMF2DBuffer2_Release(IMF2DBuffer2* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IMF2DBuffer methods ***/
++static FORCEINLINE HRESULT IMF2DBuffer2_Lock2D(IMF2DBuffer2* This,BYTE **ppbScanline0,LONG *plPitch) {
++    return This->lpVtbl->Lock2D(This,ppbScanline0,plPitch);
++}
++static FORCEINLINE HRESULT IMF2DBuffer2_Unlock2D(IMF2DBuffer2* This) {
++    return This->lpVtbl->Unlock2D(This);
++}
++static FORCEINLINE HRESULT IMF2DBuffer2_GetScanline0AndPitch(IMF2DBuffer2* This,BYTE **pbScanline0,LONG *plPitch) {
++    return This->lpVtbl->GetScanline0AndPitch(This,pbScanline0,plPitch);
++}
++static FORCEINLINE HRESULT IMF2DBuffer2_IsContiguousFormat(IMF2DBuffer2* This,WINBOOL *pfIsContiguous) {
++    return This->lpVtbl->IsContiguousFormat(This,pfIsContiguous);
++}
++static FORCEINLINE HRESULT IMF2DBuffer2_GetContiguousLength(IMF2DBuffer2* This,DWORD *pcbLength) {
++    return This->lpVtbl->GetContiguousLength(This,pcbLength);
++}
++static FORCEINLINE HRESULT IMF2DBuffer2_ContiguousCopyTo(IMF2DBuffer2* This,BYTE *pbDestBuffer,DWORD cbDestBuffer) {
++    return This->lpVtbl->ContiguousCopyTo(This,pbDestBuffer,cbDestBuffer);
++}
++static FORCEINLINE HRESULT IMF2DBuffer2_ContiguousCopyFrom(IMF2DBuffer2* This,const BYTE *pbSrcBuffer,DWORD cbSrcBuffer) {
++    return This->lpVtbl->ContiguousCopyFrom(This,pbSrcBuffer,cbSrcBuffer);
++}
++/*** IMF2DBuffer2 methods ***/
++static FORCEINLINE HRESULT IMF2DBuffer2_Lock2DSize(IMF2DBuffer2* This,MF2DBuffer_LockFlags lockFlags,BYTE **ppbScanline0,LONG *plPitch,BYTE **ppbBufferStart,DWORD *pcbBufferLength) {
++    return This->lpVtbl->Lock2DSize(This,lockFlags,ppbScanline0,plPitch,ppbBufferStart,pcbBufferLength);
++}
++static FORCEINLINE HRESULT IMF2DBuffer2_Copy2DTo(IMF2DBuffer2* This,IMF2DBuffer2 *pDestBuffer) {
++    return This->lpVtbl->Copy2DTo(This,pDestBuffer);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IMF2DBuffer2_Lock2DSize_Proxy(
++    IMF2DBuffer2* This,
++    MF2DBuffer_LockFlags lockFlags,
++    BYTE **ppbScanline0,
++    LONG *plPitch,
++    BYTE **ppbBufferStart,
++    DWORD *pcbBufferLength);
++void __RPC_STUB IMF2DBuffer2_Lock2DSize_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMF2DBuffer2_Copy2DTo_Proxy(
++    IMF2DBuffer2* This,
++    IMF2DBuffer2 *pDestBuffer);
++void __RPC_STUB IMF2DBuffer2_Copy2DTo_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IMF2DBuffer2_INTERFACE_DEFINED__ */
++
++
++/*****************************************************************************
++ * IMFDXGIBuffer interface
++ */
++#ifndef __IMFDXGIBuffer_INTERFACE_DEFINED__
++#define __IMFDXGIBuffer_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IMFDXGIBuffer, 0xe7174cfa, 0x1c9e, 0x48b1, 0x88,0x66, 0x62,0x62,0x26,0xbf,0xc2,0x58);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("e7174cfa-1c9e-48b1-8866-626226bfc258")
++IMFDXGIBuffer : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE GetResource(
++        REFIID riid,
++        LPVOID *ppvObject) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetSubresourceIndex(
++        UINT *puSubresource) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetUnknown(
++        REFIID guid,
++        REFIID riid,
++        LPVOID *ppvObject) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE SetUnknown(
++        REFIID guid,
++        IUnknown *pUnkData) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IMFDXGIBuffer, 0xe7174cfa, 0x1c9e, 0x48b1, 0x88,0x66, 0x62,0x62,0x26,0xbf,0xc2,0x58)
++#endif
++#else
++typedef struct IMFDXGIBufferVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IMFDXGIBuffer* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IMFDXGIBuffer* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IMFDXGIBuffer* This);
++
++    /*** IMFDXGIBuffer methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetResource)(
++        IMFDXGIBuffer* This,
++        REFIID riid,
++        LPVOID *ppvObject);
++
++    HRESULT (STDMETHODCALLTYPE *GetSubresourceIndex)(
++        IMFDXGIBuffer* This,
++        UINT *puSubresource);
++
++    HRESULT (STDMETHODCALLTYPE *GetUnknown)(
++        IMFDXGIBuffer* This,
++        REFIID guid,
++        REFIID riid,
++        LPVOID *ppvObject);
++
++    HRESULT (STDMETHODCALLTYPE *SetUnknown)(
++        IMFDXGIBuffer* This,
++        REFIID guid,
++        IUnknown *pUnkData);
++
++    END_INTERFACE
++} IMFDXGIBufferVtbl;
++interface IMFDXGIBuffer {
++    CONST_VTBL IMFDXGIBufferVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IMFDXGIBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMFDXGIBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMFDXGIBuffer_Release(This) (This)->lpVtbl->Release(This)
++/*** IMFDXGIBuffer methods ***/
++#define IMFDXGIBuffer_GetResource(This,riid,ppvObject) (This)->lpVtbl->GetResource(This,riid,ppvObject)
++#define IMFDXGIBuffer_GetSubresourceIndex(This,puSubresource) (This)->lpVtbl->GetSubresourceIndex(This,puSubresource)
++#define IMFDXGIBuffer_GetUnknown(This,guid,riid,ppvObject) (This)->lpVtbl->GetUnknown(This,guid,riid,ppvObject)
++#define IMFDXGIBuffer_SetUnknown(This,guid,pUnkData) (This)->lpVtbl->SetUnknown(This,guid,pUnkData)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IMFDXGIBuffer_QueryInterface(IMFDXGIBuffer* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IMFDXGIBuffer_AddRef(IMFDXGIBuffer* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IMFDXGIBuffer_Release(IMFDXGIBuffer* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IMFDXGIBuffer methods ***/
++static FORCEINLINE HRESULT IMFDXGIBuffer_GetResource(IMFDXGIBuffer* This,REFIID riid,LPVOID *ppvObject) {
++    return This->lpVtbl->GetResource(This,riid,ppvObject);
++}
++static FORCEINLINE HRESULT IMFDXGIBuffer_GetSubresourceIndex(IMFDXGIBuffer* This,UINT *puSubresource) {
++    return This->lpVtbl->GetSubresourceIndex(This,puSubresource);
++}
++static FORCEINLINE HRESULT IMFDXGIBuffer_GetUnknown(IMFDXGIBuffer* This,REFIID guid,REFIID riid,LPVOID *ppvObject) {
++    return This->lpVtbl->GetUnknown(This,guid,riid,ppvObject);
++}
++static FORCEINLINE HRESULT IMFDXGIBuffer_SetUnknown(IMFDXGIBuffer* This,REFIID guid,IUnknown *pUnkData) {
++    return This->lpVtbl->SetUnknown(This,guid,pUnkData);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IMFDXGIBuffer_GetResource_Proxy(
++    IMFDXGIBuffer* This,
++    REFIID riid,
++    LPVOID *ppvObject);
++void __RPC_STUB IMFDXGIBuffer_GetResource_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFDXGIBuffer_GetSubresourceIndex_Proxy(
++    IMFDXGIBuffer* This,
++    UINT *puSubresource);
++void __RPC_STUB IMFDXGIBuffer_GetSubresourceIndex_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFDXGIBuffer_GetUnknown_Proxy(
++    IMFDXGIBuffer* This,
++    REFIID guid,
++    REFIID riid,
++    LPVOID *ppvObject);
++void __RPC_STUB IMFDXGIBuffer_GetUnknown_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFDXGIBuffer_SetUnknown_Proxy(
++    IMFDXGIBuffer* This,
++    REFIID guid,
++    IUnknown *pUnkData);
++void __RPC_STUB IMFDXGIBuffer_SetUnknown_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IMFDXGIBuffer_INTERFACE_DEFINED__ */
++
++
+ /*****************************************************************************
+  * IMFMediaType interface
+  */
+@@ -2314,10 +2715,14 @@ void __RPC_STUB IMFMediaType_FreeRepresentation_Stub(
+ 
+ #endif  /* __IMFMediaType_INTERFACE_DEFINED__ */
+ 
+-#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES          0x00000001
+-#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES         0x00000002
+-#define MF_MEDIATYPE_EQUAL_FORMAT_DATA          0x00000004
+-#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA     0x00000008
++
++#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001
++#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002
++#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004
++#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ /*****************************************************************************
+  * IMFAudioMediaType interface
+  */
+@@ -2721,58 +3126,39 @@ void __RPC_STUB IMFAudioMediaType_GetAudioFormat_Stub(
+ 
+ #endif  /* __IMFAudioMediaType_INTERFACE_DEFINED__ */
+ 
+-typedef struct __WIDL_mmreg_h_generated_name_00000001 {
++
++#ifndef _WINGDI_
++typedef DWORD RGBQUAD;
++
++typedef struct __WIDL_mfobjects_generated_name_00000014 {
++    DWORD biSize;
++    LONG biWidth;
++    LONG biHeight;
++    WORD biPlanes;
++    WORD biBitCount;
++    DWORD biCompression;
++    DWORD biSizeImage;
++    LONG biXPelsPerMeter;
++    LONG biYPelsPerMeter;
++    DWORD biClrUsed;
++    DWORD biClrImportant;
++} BITMAPINFOHEADER;
++
++typedef struct __WIDL_mfobjects_generated_name_00000015 {
++    BITMAPINFOHEADER bmiHeader;
++    RGBQUAD bmiColors[1];
++} BITMAPINFO;
++#endif
++
++typedef struct __WIDL_mfobjects_generated_name_00000016 {
+     GUID guidMajorType;
+     GUID guidSubtype;
+ } MFT_REGISTER_TYPE_INFO;
+-typedef enum _MFVideoFlags {
+-    MFVideoFlag_PAD_TO_Mask = 0x1 | 0x2,
+-    MFVideoFlag_PAD_TO_None = 0 * 0x1,
+-    MFVideoFlag_PAD_TO_4x3 = 1 * 0x1,
+-    MFVideoFlag_PAD_TO_16x9 = 2 * 0x1,
+-    MFVideoFlag_SrcContentHintMask = (0x4 | 0x8) | 0x10,
+-    MFVideoFlag_SrcContentHintNone = 0 * 0x4,
+-    MFVideoFlag_SrcContentHint16x9 = 1 * 0x4,
+-    MFVideoFlag_SrcContentHint235_1 = 2 * 0x4,
+-    MFVideoFlag_AnalogProtected = 0x20,
+-    MFVideoFlag_DigitallyProtected = 0x40,
+-    MFVideoFlag_ProgressiveContent = 0x80,
+-    MFVideoFlag_FieldRepeatCountMask = (0x100 | 0x200) | 0x400,
+-    MFVideoFlag_FieldRepeatCountShift = 8,
+-    MFVideoFlag_ProgressiveSeqReset = 0x800,
+-    MFVideoFlag_PanScanEnabled = 0x20000,
+-    MFVideoFlag_LowerFieldFirst = 0x40000,
+-    MFVideoFlag_BottomUpLinearRep = 0x80000,
+-    MFVideoFlags_DXVASurface = 0x100000,
+-    MFVideoFlags_RenderTargetSurface = 0x400000,
+-    MFVideoFlags_ForceQWORD = 0x7fffffff
+-} MFVideoFlags;
+-typedef struct _MFRatio {
+-    DWORD Numerator;
+-    DWORD Denominator;
+-} MFRatio;
+-typedef struct _MFOffset {
+-    WORD fract;
+-    short value;
+-} MFOffset;
+-typedef struct _MFVideoArea {
+-    MFOffset OffsetX;
+-    MFOffset OffsetY;
+-    SIZE Area;
+-} MFVideoArea;
+-typedef enum _MFVideoChromaSubsampling {
+-    MFVideoChromaSubsampling_Unknown = 0,
+-    MFVideoChromaSubsampling_ProgressiveChroma = 0x8,
+-    MFVideoChromaSubsampling_Horizontally_Cosited = 0x4,
+-    MFVideoChromaSubsampling_Vertically_Cosited = 0x2,
+-    MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
+-    MFVideoChromaSubsampling_MPEG2 = MFVideoChromaSubsampling_Horizontally_Cosited | MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+-    MFVideoChromaSubsampling_MPEG1 = MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+-    MFVideoChromaSubsampling_DV_PAL = MFVideoChromaSubsampling_Horizontally_Cosited | MFVideoChromaSubsampling_Vertically_Cosited,
+-    MFVideoChromaSubsampling_Cosited = (MFVideoChromaSubsampling_Horizontally_Cosited | MFVideoChromaSubsampling_Vertically_Cosited) | MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+-    MFVideoChromaSubsampling_Last = MFVideoChromaSubsampling_Cosited + 1,
+-    MFVideoChromaSubsampling_ForceDWORD = 0x7fffffff
+-} MFVideoChromaSubsampling;
++#endif
++#ifndef _MFVIDEOFORMAT_
++#define _MFVIDEOFORMAT_
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+ typedef enum _MFVideoInterlaceMode {
+     MFVideoInterlace_Unknown = 0,
+     MFVideoInterlace_Progressive = 2,
+@@ -2784,6 +3170,10 @@ typedef enum _MFVideoInterlaceMode {
+     MFVideoInterlace_Last = 8,
+     MFVideoInterlace_ForceDWORD = 0x7fffffff
+ } MFVideoInterlaceMode;
++
++#define MFVideoInterlace_FieldSingleUpperFirst MFVideoInterlace_FieldSingleUpper
++#define MFVideoInterlace_FieldSingleLowerFirst MFVideoInterlace_FieldSingleLower
++
+ typedef enum _MFVideoTransferFunction {
+     MFVideoTransFunc_Unknown = 0,
+     MFVideoTransFunc_10 = 1,
+@@ -2794,20 +3184,10 @@ typedef enum _MFVideoTransferFunction {
+     MFVideoTransFunc_240M = 6,
+     MFVideoTransFunc_sRGB = 7,
+     MFVideoTransFunc_28 = 8,
+-    MFVideoTransFunc_Log_100 = 9,
+-    MFVideoTransFunc_Log_316 = 10,
+-    MFVideoTransFunc_709_sym = 11,
+-    MFVideoTransFunc_Last = 12,
++    MFVideoTransFunc_Last = 9,
+     MFVideoTransFunc_ForceDWORD = 0x7fffffff
+ } MFVideoTransferFunction;
+-typedef enum _MFVideoTransferMatrix {
+-    MFVideoTransferMatrix_Unknown = 0,
+-    MFVideoTransferMatrix_BT709 = 1,
+-    MFVideoTransferMatrix_BT601 = 2,
+-    MFVideoTransferMatrix_SMPTE240M = 3,
+-    MFVideoTransferMatrix_Last = 4,
+-    MFVideoTransferMatrix_ForceDWORD = 0x7fffffff
+-} MFVideoTransferMatrix;
++
+ typedef enum _MFVideoPrimaries {
+     MFVideoPrimaries_Unknown = 0,
+     MFVideoPrimaries_reserved = 1,
+@@ -2821,6 +3201,7 @@ typedef enum _MFVideoPrimaries {
+     MFVideoPrimaries_Last = 9,
+     MFVideoPrimaries_ForceDWORD = 0x7fffffff
+ } MFVideoPrimaries;
++
+ typedef enum _MFVideoLighting {
+     MFVideoLighting_Unknown = 0,
+     MFVideoLighting_bright = 1,
+@@ -2830,6 +3211,30 @@ typedef enum _MFVideoLighting {
+     MFVideoLighting_Last = 5,
+     MFVideoLighting_ForceDWORD = 0x7fffffff
+ } MFVideoLighting;
++
++typedef enum _MFVideoTransferMatrix {
++    MFVideoTransferMatrix_Unknown = 0,
++    MFVideoTransferMatrix_BT709 = 1,
++    MFVideoTransferMatrix_BT601 = 2,
++    MFVideoTransferMatrix_SMPTE240M = 3,
++    MFVideoTransferMatrix_Last = 4,
++    MFVideoTransferMatrix_ForceDWORD = 0x7fffffff
++} MFVideoTransferMatrix;
++
++typedef enum _MFVideoChromaSubsampling {
++    MFVideoChromaSubsampling_Unknown = 0,
++    MFVideoChromaSubsampling_ProgressiveChroma = 0x8,
++    MFVideoChromaSubsampling_Horizontally_Cosited = 0x4,
++    MFVideoChromaSubsampling_Vertically_Cosited = 0x2,
++    MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
++    MFVideoChromaSubsampling_MPEG2 = MFVideoChromaSubsampling_Horizontally_Cosited | MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
++    MFVideoChromaSubsampling_MPEG1 = MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
++    MFVideoChromaSubsampling_DV_PAL = MFVideoChromaSubsampling_Horizontally_Cosited | MFVideoChromaSubsampling_Vertically_Cosited,
++    MFVideoChromaSubsampling_Cosited = (MFVideoChromaSubsampling_Horizontally_Cosited | MFVideoChromaSubsampling_Vertically_Cosited) | MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
++    MFVideoChromaSubsampling_Last = MFVideoChromaSubsampling_Cosited + 1,
++    MFVideoChromaSubsampling_ForceDWORD = 0x7fffffff
++} MFVideoChromaSubsampling;
++
+ typedef enum _MFNominalRange {
+     MFNominalRange_Unknown = 0,
+     MFNominalRange_Normal = 1,
+@@ -2837,8 +3242,54 @@ typedef enum _MFNominalRange {
+     MFNominalRange_0_255 = 1,
+     MFNominalRange_16_235 = 2,
+     MFNominalRange_48_208 = 3,
+-    MFNominalRange_64_127 = 4
++    MFNominalRange_Last = 4,
++    MFNominalRange_ForceDWORD = 0x7fffffff
+ } MFNominalRange;
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
++typedef enum _MFVideoFlags {
++    MFVideoFlag_PAD_TO_Mask = 0x1 | 0x2,
++    MFVideoFlag_PAD_TO_None = 0 * 0x1,
++    MFVideoFlag_PAD_TO_4x3 = 1 * 0x1,
++    MFVideoFlag_PAD_TO_16x9 = 2 * 0x1,
++    MFVideoFlag_SrcContentHintMask = (0x4 | 0x8) | 0x10,
++    MFVideoFlag_SrcContentHintNone = 0 * 0x4,
++    MFVideoFlag_SrcContentHint16x9 = 1 * 0x4,
++    MFVideoFlag_SrcContentHint235_1 = 2 * 0x4,
++    MFVideoFlag_AnalogProtected = 0x20,
++    MFVideoFlag_DigitallyProtected = 0x40,
++    MFVideoFlag_ProgressiveContent = 0x80,
++    MFVideoFlag_FieldRepeatCountMask = (0x100 | 0x200) | 0x400,
++    MFVideoFlag_FieldRepeatCountShift = 8,
++    MFVideoFlag_ProgressiveSeqReset = 0x800,
++    MFVideoFlag_PanScanEnabled = 0x20000,
++    MFVideoFlag_LowerFieldFirst = 0x40000,
++    MFVideoFlag_BottomUpLinearRep = 0x80000,
++    MFVideoFlags_DXVASurface = 0x100000,
++    MFVideoFlags_RenderTargetSurface = 0x400000,
++    MFVideoFlags_ForceQWORD = 0x7fffffff
++} MFVideoFlags;
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
++typedef struct _MFRatio {
++    DWORD Numerator;
++    DWORD Denominator;
++} MFRatio;
++
++typedef struct _MFOffset {
++    WORD fract;
++    short value;
++} MFOffset;
++typedef struct _MFVideoArea {
++    MFOffset OffsetX;
++    MFOffset OffsetY;
++    SIZE Area;
++} MFVideoArea;
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ typedef struct _MFVideoInfo {
+     DWORD dwWidth;
+     DWORD dwHeight;
+@@ -2856,32 +3307,42 @@ typedef struct _MFVideoInfo {
+     MFVideoArea PanScanAperture;
+     UINT64 VideoFlags;
+ } MFVideoInfo;
+-typedef struct _MFVideoCompressedInfo {
+-    LONGLONG AvgBitrate;
+-    LONGLONG AvgBitErrorRate;
+-    DWORD MaxKeyFrameSpacing;
+-} MFVideoCompressedInfo;
+-typedef struct _MFARGB {
+-    BYTE rgbBlue;
+-    BYTE rgbGreen;
+-    BYTE rgbRed;
+-    BYTE rgbAlpha;
+-} MFARGB;
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+ typedef struct __MFAYUVSample {
+     BYTE bCrValue;
+     BYTE bCbValue;
+     BYTE bYValue;
+     BYTE bSampleAlpha8;
+ } MFAYUVSample;
++
++typedef struct _MFARGB {
++    BYTE rgbBlue;
++    BYTE rgbGreen;
++    BYTE rgbRed;
++    BYTE rgbAlpha;
++} MFARGB;
++
+ typedef union _MFPaletteEntry {
+     MFARGB ARGB;
+     MFAYUVSample AYCbCr;
+ } MFPaletteEntry;
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ typedef struct _MFVideoSurfaceInfo {
+     DWORD Format;
+     DWORD PaletteEntries;
+     MFPaletteEntry Palette[1];
+ } MFVideoSurfaceInfo;
++
++typedef struct _MFVideoCompressedInfo {
++    LONGLONG AvgBitrate;
++    LONGLONG AvgBitErrorRate;
++    DWORD MaxKeyFrameSpacing;
++} MFVideoCompressedInfo;
++
+ typedef struct _MFVIDEOFORMAT {
+     DWORD dwSize;
+     MFVideoInfo videoInfo;
+@@ -2889,6 +3350,7 @@ typedef struct _MFVIDEOFORMAT {
+     MFVideoCompressedInfo compressedInfo;
+     MFVideoSurfaceInfo surfaceInfo;
+ } MFVIDEOFORMAT;
++
+ typedef enum _MFStandardVideoFormat {
+     MFStdVideoFormat_reserved = 0,
+     MFStdVideoFormat_NTSC = 1,
+@@ -2901,6 +3363,10 @@ typedef enum _MFStandardVideoFormat {
+     MFStdVideoFormat_ATSC_HD1080i = 8,
+     MFStdVideoFormat_ATSC_HD720p = 9
+ } MFStandardVideoFormat;
++#endif
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ /*****************************************************************************
+  * IMFVideoMediaType interface
+  */
+@@ -3329,6 +3795,9 @@ void __RPC_STUB IMFVideoMediaType_GetVideoRepresentation_Stub(
+ 
+ #endif  /* __IMFVideoMediaType_INTERFACE_DEFINED__ */
+ 
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+ /*****************************************************************************
+  * IMFAsyncResult interface
+  */
+@@ -3478,6 +3947,7 @@ void __RPC_STUB IMFAsyncResult_GetObject_Stub(
+ 
+ #endif  /* __IMFAsyncResult_INTERFACE_DEFINED__ */
+ 
++
+ /*****************************************************************************
+  * IMFAsyncCallback interface
+  */
+@@ -3584,104 +4054,253 @@ void __RPC_STUB IMFAsyncCallback_Invoke_Stub(
+ 
+ #endif  /* __IMFAsyncCallback_INTERFACE_DEFINED__ */
+ 
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ /*****************************************************************************
+- * IMFRemoteAsyncCallback interface
++ * IMFAsyncCallbackLogging interface
+  */
+-#ifndef __IMFRemoteAsyncCallback_INTERFACE_DEFINED__
+-#define __IMFRemoteAsyncCallback_INTERFACE_DEFINED__
++#ifndef __IMFAsyncCallbackLogging_INTERFACE_DEFINED__
++#define __IMFAsyncCallbackLogging_INTERFACE_DEFINED__
+ 
+-DEFINE_GUID(IID_IMFRemoteAsyncCallback, 0xa27003d0, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e);
++DEFINE_GUID(IID_IMFAsyncCallbackLogging, 0xc7a4dca1, 0xf5f0, 0x47b6, 0xb9,0x2b, 0xbf,0x01,0x06,0xd2,0x57,0x91);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+-MIDL_INTERFACE("a27003d0-2354-4f2a-8d6a-ab7cff15437e")
+-IMFRemoteAsyncCallback : public IUnknown
++MIDL_INTERFACE("c7a4dca1-f5f0-47b6-b92b-bf0106d25791")
++IMFAsyncCallbackLogging : public IMFAsyncCallback
+ {
+-    virtual HRESULT STDMETHODCALLTYPE Invoke(
+-        HRESULT hr,
+-        IUnknown *pRemoteResult) = 0;
++    virtual void * STDMETHODCALLTYPE GetObjectPointer(
++        ) = 0;
++
++    virtual DWORD STDMETHODCALLTYPE GetObjectTag(
++        ) = 0;
+ 
+ };
+ #ifdef __CRT_UUID_DECL
+-__CRT_UUID_DECL(IMFRemoteAsyncCallback, 0xa27003d0, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e)
++__CRT_UUID_DECL(IMFAsyncCallbackLogging, 0xc7a4dca1, 0xf5f0, 0x47b6, 0xb9,0x2b, 0xbf,0x01,0x06,0xd2,0x57,0x91)
+ #endif
+ #else
+-typedef struct IMFRemoteAsyncCallbackVtbl {
++typedef struct IMFAsyncCallbackLoggingVtbl {
+     BEGIN_INTERFACE
+ 
+     /*** IUnknown methods ***/
+     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+-        IMFRemoteAsyncCallback* This,
++        IMFAsyncCallbackLogging* This,
+         REFIID riid,
+         void **ppvObject);
+ 
+     ULONG (STDMETHODCALLTYPE *AddRef)(
+-        IMFRemoteAsyncCallback* This);
++        IMFAsyncCallbackLogging* This);
+ 
+     ULONG (STDMETHODCALLTYPE *Release)(
+-        IMFRemoteAsyncCallback* This);
++        IMFAsyncCallbackLogging* This);
++
++    /*** IMFAsyncCallback methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetParameters)(
++        IMFAsyncCallbackLogging* This,
++        DWORD *pdwFlags,
++        DWORD *pdwQueue);
+ 
+-    /*** IMFRemoteAsyncCallback methods ***/
+     HRESULT (STDMETHODCALLTYPE *Invoke)(
+-        IMFRemoteAsyncCallback* This,
+-        HRESULT hr,
+-        IUnknown *pRemoteResult);
++        IMFAsyncCallbackLogging* This,
++        IMFAsyncResult *pAsyncResult);
++
++    /*** IMFAsyncCallbackLogging methods ***/
++    void * (STDMETHODCALLTYPE *GetObjectPointer)(
++        IMFAsyncCallbackLogging* This);
++
++    DWORD (STDMETHODCALLTYPE *GetObjectTag)(
++        IMFAsyncCallbackLogging* This);
+ 
+     END_INTERFACE
+-} IMFRemoteAsyncCallbackVtbl;
+-interface IMFRemoteAsyncCallback {
+-    CONST_VTBL IMFRemoteAsyncCallbackVtbl* lpVtbl;
++} IMFAsyncCallbackLoggingVtbl;
++interface IMFAsyncCallbackLogging {
++    CONST_VTBL IMFAsyncCallbackLoggingVtbl* lpVtbl;
+ };
+ 
+ #ifdef COBJMACROS
+ #ifndef WIDL_C_INLINE_WRAPPERS
+ /*** IUnknown methods ***/
+-#define IMFRemoteAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+-#define IMFRemoteAsyncCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+-#define IMFRemoteAsyncCallback_Release(This) (This)->lpVtbl->Release(This)
+-/*** IMFRemoteAsyncCallback methods ***/
+-#define IMFRemoteAsyncCallback_Invoke(This,hr,pRemoteResult) (This)->lpVtbl->Invoke(This,hr,pRemoteResult)
++#define IMFAsyncCallbackLogging_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMFAsyncCallbackLogging_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMFAsyncCallbackLogging_Release(This) (This)->lpVtbl->Release(This)
++/*** IMFAsyncCallback methods ***/
++#define IMFAsyncCallbackLogging_GetParameters(This,pdwFlags,pdwQueue) (This)->lpVtbl->GetParameters(This,pdwFlags,pdwQueue)
++#define IMFAsyncCallbackLogging_Invoke(This,pAsyncResult) (This)->lpVtbl->Invoke(This,pAsyncResult)
++/*** IMFAsyncCallbackLogging methods ***/
++#define IMFAsyncCallbackLogging_GetObjectPointer(This) (This)->lpVtbl->GetObjectPointer(This)
++#define IMFAsyncCallbackLogging_GetObjectTag(This) (This)->lpVtbl->GetObjectTag(This)
+ #else
+ /*** IUnknown methods ***/
+-static FORCEINLINE HRESULT IMFRemoteAsyncCallback_QueryInterface(IMFRemoteAsyncCallback* This,REFIID riid,void **ppvObject) {
++static FORCEINLINE HRESULT IMFAsyncCallbackLogging_QueryInterface(IMFAsyncCallbackLogging* This,REFIID riid,void **ppvObject) {
+     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+ }
+-static FORCEINLINE ULONG IMFRemoteAsyncCallback_AddRef(IMFRemoteAsyncCallback* This) {
++static FORCEINLINE ULONG IMFAsyncCallbackLogging_AddRef(IMFAsyncCallbackLogging* This) {
+     return This->lpVtbl->AddRef(This);
+ }
+-static FORCEINLINE ULONG IMFRemoteAsyncCallback_Release(IMFRemoteAsyncCallback* This) {
++static FORCEINLINE ULONG IMFAsyncCallbackLogging_Release(IMFAsyncCallbackLogging* This) {
+     return This->lpVtbl->Release(This);
+ }
+-/*** IMFRemoteAsyncCallback methods ***/
+-static FORCEINLINE HRESULT IMFRemoteAsyncCallback_Invoke(IMFRemoteAsyncCallback* This,HRESULT hr,IUnknown *pRemoteResult) {
+-    return This->lpVtbl->Invoke(This,hr,pRemoteResult);
++/*** IMFAsyncCallback methods ***/
++static FORCEINLINE HRESULT IMFAsyncCallbackLogging_GetParameters(IMFAsyncCallbackLogging* This,DWORD *pdwFlags,DWORD *pdwQueue) {
++    return This->lpVtbl->GetParameters(This,pdwFlags,pdwQueue);
++}
++static FORCEINLINE HRESULT IMFAsyncCallbackLogging_Invoke(IMFAsyncCallbackLogging* This,IMFAsyncResult *pAsyncResult) {
++    return This->lpVtbl->Invoke(This,pAsyncResult);
++}
++/*** IMFAsyncCallbackLogging methods ***/
++static FORCEINLINE void * IMFAsyncCallbackLogging_GetObjectPointer(IMFAsyncCallbackLogging* This) {
++    return This->lpVtbl->GetObjectPointer(This);
++}
++static FORCEINLINE DWORD IMFAsyncCallbackLogging_GetObjectTag(IMFAsyncCallbackLogging* This) {
++    return This->lpVtbl->GetObjectTag(This);
+ }
+ #endif
+ #endif
+ 
+ #endif
+ 
+-HRESULT STDMETHODCALLTYPE IMFRemoteAsyncCallback_Invoke_Proxy(
+-    IMFRemoteAsyncCallback* This,
+-    HRESULT hr,
+-    IUnknown *pRemoteResult);
+-void __RPC_STUB IMFRemoteAsyncCallback_Invoke_Stub(
++void * STDMETHODCALLTYPE IMFAsyncCallbackLogging_GetObjectPointer_Proxy(
++    IMFAsyncCallbackLogging* This);
++void __RPC_STUB IMFAsyncCallbackLogging_GetObjectPointer_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++DWORD STDMETHODCALLTYPE IMFAsyncCallbackLogging_GetObjectTag_Proxy(
++    IMFAsyncCallbackLogging* This);
++void __RPC_STUB IMFAsyncCallbackLogging_GetObjectTag_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
+ 
+-#endif  /* __IMFRemoteAsyncCallback_INTERFACE_DEFINED__ */
++#endif  /* __IMFAsyncCallbackLogging_INTERFACE_DEFINED__ */
++
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
++#define MFASYNC_FAST_IO_PROCESSING_CALLBACK 0x00000001
++#define MFASYNC_SIGNAL_CALLBACK 0x00000002
++#define MFASYNC_BLOCKING_CALLBACK 0x00000004
++#define MFASYNC_REPLY_CALLBACK 0x00000008
++#define MFASYNC_LOCALIZE_REMOTE_CALLBACK 0x00000010
++
++#define MFASYNC_CALLBACK_QUEUE_UNDEFINED 0x00000000
++#define MFASYNC_CALLBACK_QUEUE_STANDARD 0x00000001
++#define MFASYNC_CALLBACK_QUEUE_RT 0x00000002
++#define MFASYNC_CALLBACK_QUEUE_IO 0x00000003
++#define MFASYNC_CALLBACK_QUEUE_TIMER 0x00000004
++#define MFASYNC_CALLBACK_QUEUE_MULTITHREADED 0x00000005
++#define MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION 0x00000007
++#define MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK 0xFFFF0000
++#define MFASYNC_CALLBACK_QUEUE_ALL 0xFFFFFFFF
++
++enum {
++    MEUnknown = 0,
++    MEError = 1,
++    MEExtendedType = 2,
++    MENonFatalError = 3,
++    MEGenericV1Anchor = MENonFatalError,
++    MESessionUnknown = 100,
++    MESessionTopologySet = 101,
++    MESessionTopologiesCleared = 102,
++    MESessionStarted = 103,
++    MESessionPaused = 104,
++    MESessionStopped = 105,
++    MESessionClosed = 106,
++    MESessionEnded = 107,
++    MESessionRateChanged = 108,
++    MESessionScrubSampleComplete = 109,
++    MESessionCapabilitiesChanged = 110,
++    MESessionTopologyStatus = 111,
++    MESessionNotifyPresentationTime = 112,
++    MENewPresentation = 113,
++    MELicenseAcquisitionStart = 114,
++    MELicenseAcquisitionCompleted = 115,
++    MEIndividualizationStart = 116,
++    MEIndividualizationCompleted = 117,
++    MEEnablerProgress = 118,
++    MEEnablerCompleted = 119,
++    MEPolicyError = 120,
++    MEPolicyReport = 121,
++    MEBufferingStarted = 122,
++    MEBufferingStopped = 123,
++    MEConnectStart = 124,
++    MEConnectEnd = 125,
++    MEReconnectStart = 126,
++    MEReconnectEnd = 127,
++    MERendererEvent = 128,
++    MESessionStreamSinkFormatChanged = 129,
++    MESessionV1Anchor = MESessionStreamSinkFormatChanged,
++    MESourceUnknown = 200,
++    MESourceStarted = 201,
++    MEStreamStarted = 202,
++    MESourceSeeked = 203,
++    MEStreamSeeked = 204,
++    MENewStream = 205,
++    MEUpdatedStream = 206,
++    MESourceStopped = 207,
++    MEStreamStopped = 208,
++    MESourcePaused = 209,
++    MEStreamPaused = 210,
++    MEEndOfPresentation = 211,
++    MEEndOfStream = 212,
++    MEMediaSample = 213,
++    MEStreamTick = 214,
++    MEStreamThinMode = 215,
++    MEStreamFormatChanged = 216,
++    MESourceRateChanged = 217,
++    MEEndOfPresentationSegment = 218,
++    MESourceCharacteristicsChanged = 219,
++    MESourceRateChangeRequested = 220,
++    MESourceMetadataChanged = 221,
++    MESequencerSourceTopologyUpdated = 222,
++    MESourceV1Anchor = MESequencerSourceTopologyUpdated,
++    MESinkUnknown = 300,
++    MEStreamSinkStarted = 301,
++    MEStreamSinkStopped = 302,
++    MEStreamSinkPaused = 303,
++    MEStreamSinkRateChanged = 304,
++    MEStreamSinkRequestSample = 305,
++    MEStreamSinkMarker = 306,
++    MEStreamSinkPrerolled = 307,
++    MEStreamSinkScrubSampleComplete = 308,
++    MEStreamSinkFormatChanged = 309,
++    MEStreamSinkDeviceChanged = 310,
++    MEQualityNotify = 311,
++    MESinkInvalidated = 312,
++    MEAudioSessionNameChanged = 313,
++    MEAudioSessionVolumeChanged = 314,
++    MEAudioSessionDeviceRemoved = 315,
++    MEAudioSessionServerShutdown = 316,
++    MEAudioSessionGroupingParamChanged = 317,
++    MEAudioSessionIconChanged = 318,
++    MEAudioSessionFormatChanged = 319,
++    MEAudioSessionDisconnected = 320,
++    MEAudioSessionExclusiveModeOverride = 321,
++    MESinkV1Anchor = MEAudioSessionExclusiveModeOverride,
++    METrustUnknown = 400,
++    MEPolicyChanged = 401,
++    MEContentProtectionMessage = 402,
++    MEPolicySet = 403,
++    METrustV1Anchor = MEPolicySet,
++    MEWMDRMLicenseBackupCompleted = 500,
++    MEWMDRMLicenseBackupProgress = 501,
++    MEWMDRMLicenseRestoreCompleted = 502,
++    MEWMDRMLicenseRestoreProgress = 503,
++    MEWMDRMLicenseAcquisitionCompleted = 506,
++    MEWMDRMIndividualizationCompleted = 508,
++    MEWMDRMIndividualizationProgress = 513,
++    MEWMDRMProximityCompleted = 514,
++    MEWMDRMLicenseStoreCleaned = 515,
++    MEWMDRMRevocationDownloadCompleted = 516,
++    MEWMDRMV1Anchor = MEWMDRMRevocationDownloadCompleted,
++    MEReservedMax = 10000
++};
++
+ 
+-#define MFASYNC_FAST_IO_PROCESSING_CALLBACK  0x0001
+-#define MFASYNC_SIGNAL_CALLBACK              0x0002
+-#define MFASYNC_CALLBACK_QUEUE_UNDEFINED      0x00000000
+-#define MFASYNC_CALLBACK_QUEUE_STANDARD       0x00000001
+-#define MFASYNC_CALLBACK_QUEUE_RT             0x00000002
+-#define MFASYNC_CALLBACK_QUEUE_IO             0x00000003
+-#define MFASYNC_CALLBACK_QUEUE_TIMER          0x00000004
+-#define MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION  0x00000007
+-#define MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK   0xffff0000
+-#define MFASYNC_CALLBACK_QUEUE_ALL            0xffffffff
+ typedef DWORD MediaEventType;
++
+ /*****************************************************************************
+  * IMFMediaEvent interface
+  */
+@@ -4098,6 +4717,15 @@ void __RPC_STUB IMFMediaEvent_GetValue_Stub(
+ 
+ #endif  /* __IMFMediaEvent_INTERFACE_DEFINED__ */
+ 
++
++#define MF_EVENT_FLAG_NO_WAIT 0x00000001
++
++#ifndef __IMFRemoteAsyncCallback_FWD_DEFINED__
++#define __IMFRemoteAsyncCallback_FWD_DEFINED__
++typedef interface IMFRemoteAsyncCallback IMFRemoteAsyncCallback;
++#endif
++
++
+ /*****************************************************************************
+  * IMFMediaEventGenerator interface
+  */
+@@ -4273,37 +4901,132 @@ HRESULT __RPC_STUB IMFMediaEventGenerator_EndGetEvent_Stub(
+ 
+ #endif  /* __IMFMediaEventGenerator_INTERFACE_DEFINED__ */
+ 
+-typedef enum _MFBYTESTREAM_SEEK_ORIGIN {
+-    msoBegin = 0,
+-    msoCurrent = 1
+-} MFBYTESTREAM_SEEK_ORIGIN;
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ /*****************************************************************************
+- * IMFByteStream interface
++ * IMFRemoteAsyncCallback interface
+  */
+-#ifndef __IMFByteStream_INTERFACE_DEFINED__
+-#define __IMFByteStream_INTERFACE_DEFINED__
++#ifndef __IMFRemoteAsyncCallback_INTERFACE_DEFINED__
++#define __IMFRemoteAsyncCallback_INTERFACE_DEFINED__
+ 
+-DEFINE_GUID(IID_IMFByteStream, 0xad4c1b00, 0x4bf7, 0x422f, 0x91,0x75, 0x75,0x66,0x93,0xd9,0x13,0x0d);
++DEFINE_GUID(IID_IMFRemoteAsyncCallback, 0xa27003d0, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+-MIDL_INTERFACE("ad4c1b00-4bf7-422f-9175-756693d9130d")
+-IMFByteStream : public IUnknown
++MIDL_INTERFACE("a27003d0-2354-4f2a-8d6a-ab7cff15437e")
++IMFRemoteAsyncCallback : public IUnknown
+ {
+-    virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
+-        DWORD *pdwCapabilities) = 0;
++    virtual HRESULT STDMETHODCALLTYPE Invoke(
++        HRESULT hr,
++        IUnknown *pRemoteResult) = 0;
+ 
+-    virtual HRESULT STDMETHODCALLTYPE GetLength(
+-        QWORD *pqwLength) = 0;
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IMFRemoteAsyncCallback, 0xa27003d0, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e)
++#endif
++#else
++typedef struct IMFRemoteAsyncCallbackVtbl {
++    BEGIN_INTERFACE
+ 
+-    virtual HRESULT STDMETHODCALLTYPE SetLength(
+-        QWORD qwLength) = 0;
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IMFRemoteAsyncCallback* This,
++        REFIID riid,
++        void **ppvObject);
+ 
+-    virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
+-        QWORD *pqwPosition) = 0;
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IMFRemoteAsyncCallback* This);
+ 
+-    virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(
+-        QWORD qwPosition) = 0;
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IMFRemoteAsyncCallback* This);
+ 
+-    virtual HRESULT STDMETHODCALLTYPE IsEndOfStream(
++    /*** IMFRemoteAsyncCallback methods ***/
++    HRESULT (STDMETHODCALLTYPE *Invoke)(
++        IMFRemoteAsyncCallback* This,
++        HRESULT hr,
++        IUnknown *pRemoteResult);
++
++    END_INTERFACE
++} IMFRemoteAsyncCallbackVtbl;
++interface IMFRemoteAsyncCallback {
++    CONST_VTBL IMFRemoteAsyncCallbackVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IMFRemoteAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMFRemoteAsyncCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMFRemoteAsyncCallback_Release(This) (This)->lpVtbl->Release(This)
++/*** IMFRemoteAsyncCallback methods ***/
++#define IMFRemoteAsyncCallback_Invoke(This,hr,pRemoteResult) (This)->lpVtbl->Invoke(This,hr,pRemoteResult)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IMFRemoteAsyncCallback_QueryInterface(IMFRemoteAsyncCallback* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IMFRemoteAsyncCallback_AddRef(IMFRemoteAsyncCallback* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IMFRemoteAsyncCallback_Release(IMFRemoteAsyncCallback* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IMFRemoteAsyncCallback methods ***/
++static FORCEINLINE HRESULT IMFRemoteAsyncCallback_Invoke(IMFRemoteAsyncCallback* This,HRESULT hr,IUnknown *pRemoteResult) {
++    return This->lpVtbl->Invoke(This,hr,pRemoteResult);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IMFRemoteAsyncCallback_Invoke_Proxy(
++    IMFRemoteAsyncCallback* This,
++    HRESULT hr,
++    IUnknown *pRemoteResult);
++void __RPC_STUB IMFRemoteAsyncCallback_Invoke_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IMFRemoteAsyncCallback_INTERFACE_DEFINED__ */
++
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
++
++typedef enum _MFBYTESTREAM_SEEK_ORIGIN {
++    msoBegin = 0,
++    msoCurrent = 1
++} MFBYTESTREAM_SEEK_ORIGIN;
++
++/*****************************************************************************
++ * IMFByteStream interface
++ */
++#ifndef __IMFByteStream_INTERFACE_DEFINED__
++#define __IMFByteStream_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IMFByteStream, 0xad4c1b00, 0x4bf7, 0x422f, 0x91,0x75, 0x75,0x66,0x93,0xd9,0x13,0x0d);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("ad4c1b00-4bf7-422f-9175-756693d9130d")
++IMFByteStream : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
++        DWORD *pdwCapabilities) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetLength(
++        QWORD *pqwLength) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE SetLength(
++        QWORD qwLength) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetCurrentPosition(
++        QWORD *pqwPosition) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(
++        QWORD qwPosition) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE IsEndOfStream(
+         WINBOOL *pfEndOfStream) = 0;
+ 
+     virtual HRESULT STDMETHODCALLTYPE Read(
+@@ -4580,6 +5303,76 @@ void __RPC_STUB IMFByteStream_IsEndOfStream_Stub(
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFByteStream_Read_Proxy(
++    IMFByteStream* This,
++    BYTE *pb,
++    ULONG cb,
++    ULONG *pcbRead);
++void __RPC_STUB IMFByteStream_Read_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFByteStream_RemoteBeginRead_Proxy(
++    IMFByteStream* This,
++    ULONG cb,
++    IMFRemoteAsyncCallback *pCallback);
++void __RPC_STUB IMFByteStream_RemoteBeginRead_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFByteStream_RemoteEndRead_Proxy(
++    IMFByteStream* This,
++    IUnknown *punkResult,
++    BYTE *pb,
++    ULONG cb,
++    ULONG *pcbRead);
++void __RPC_STUB IMFByteStream_RemoteEndRead_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFByteStream_Write_Proxy(
++    IMFByteStream* This,
++    const BYTE *pb,
++    ULONG cb,
++    ULONG *pcbWritten);
++void __RPC_STUB IMFByteStream_Write_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFByteStream_RemoteBeginWrite_Proxy(
++    IMFByteStream* This,
++    const BYTE *pb,
++    ULONG cb,
++    IMFRemoteAsyncCallback *pCallback);
++void __RPC_STUB IMFByteStream_RemoteBeginWrite_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFByteStream_RemoteEndWrite_Proxy(
++    IMFByteStream* This,
++    IUnknown *punkResult,
++    ULONG *pcbWritten);
++void __RPC_STUB IMFByteStream_RemoteEndWrite_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFByteStream_Seek_Proxy(
++    IMFByteStream* This,
++    MFBYTESTREAM_SEEK_ORIGIN SeekOrigin,
++    LONGLONG llSeekOffset,
++    DWORD dwSeekFlags,
++    QWORD *pqwCurrentPosition);
++void __RPC_STUB IMFByteStream_Seek_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
+ HRESULT STDMETHODCALLTYPE IMFByteStream_Flush_Proxy(
+     IMFByteStream* This);
+ void __RPC_STUB IMFByteStream_Flush_Stub(
+@@ -4594,41 +5387,322 @@ void __RPC_STUB IMFByteStream_Close_Stub(
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
++HRESULT CALLBACK IMFByteStream_BeginRead_Proxy(
++    IMFByteStream* This,
++    BYTE *pb,
++    ULONG cb,
++    IMFAsyncCallback *pCallback,
++    IUnknown *punkState);
++HRESULT __RPC_STUB IMFByteStream_BeginRead_Stub(
++    IMFByteStream* This,
++    ULONG cb,
++    IMFRemoteAsyncCallback *pCallback);
++HRESULT CALLBACK IMFByteStream_EndRead_Proxy(
++    IMFByteStream* This,
++    IMFAsyncResult *pResult,
++    ULONG *pcbRead);
++HRESULT __RPC_STUB IMFByteStream_EndRead_Stub(
++    IMFByteStream* This,
++    IUnknown *punkResult,
++    BYTE *pb,
++    ULONG cb,
++    ULONG *pcbRead);
++HRESULT CALLBACK IMFByteStream_BeginWrite_Proxy(
++    IMFByteStream* This,
++    const BYTE *pb,
++    ULONG cb,
++    IMFAsyncCallback *pCallback,
++    IUnknown *punkState);
++HRESULT __RPC_STUB IMFByteStream_BeginWrite_Stub(
++    IMFByteStream* This,
++    const BYTE *pb,
++    ULONG cb,
++    IMFRemoteAsyncCallback *pCallback);
++HRESULT CALLBACK IMFByteStream_EndWrite_Proxy(
++    IMFByteStream* This,
++    IMFAsyncResult *pResult,
++    ULONG *pcbWritten);
++HRESULT __RPC_STUB IMFByteStream_EndWrite_Stub(
++    IMFByteStream* This,
++    IUnknown *punkResult,
++    ULONG *pcbWritten);
+ 
+ #endif  /* __IMFByteStream_INTERFACE_DEFINED__ */
+ 
+-#define MFBYTESTREAM_IS_READABLE                0x00000001
+-#define MFBYTESTREAM_IS_WRITABLE                0x00000002
+-#define MFBYTESTREAM_IS_SEEKABLE                0x00000004
+-#define MFBYTESTREAM_IS_REMOTE                  0x00000008
+-#define MFBYTESTREAM_IS_DIRECTORY               0x00000080
+-#define MFBYTESTREAM_HAS_SLOW_SEEK              0x00000100
+-#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED    0x00000200
+-#define MFBYTESTREAM_SHARE_WRITE                0x00000400
+-#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO  0x00000001
+-EXTERN_GUID(MF_BYTESTREAM_ORIGIN_NAME,        0xfc358288,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);
+-EXTERN_GUID(MF_BYTESTREAM_CONTENT_TYPE,       0xfc358289,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);
+-EXTERN_GUID(MF_BYTESTREAM_DURATION,           0xfc35828a,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);
+-EXTERN_GUID(MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);
+-EXTERN_GUID(MF_BYTESTREAM_IFO_FILE_URI,       0xfc35828c,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);
+-EXTERN_GUID(MF_BYTESTREAM_DLNA_PROFILE_ID,    0xfc35828d,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);
+-typedef enum MF_FILE_ACCESSMODE {
++
++#define MFBYTESTREAM_IS_READABLE 0x00000001
++#define MFBYTESTREAM_IS_WRITABLE 0x00000002
++#define MFBYTESTREAM_IS_SEEKABLE 0x00000004
++#define MFBYTESTREAM_IS_REMOTE 0x00000008
++#define MFBYTESTREAM_IS_DIRECTORY 0x00000080
++#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100
++#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200
++#if WINVER >= _WIN32_WINNT_WIN7
++#define MFBYTESTREAM_SHARE_WRITE 0x00000400
++#endif
++#if WINVER >= _WIN32_WINNT_WIN8
++#define MFBYTESTREAM_DOES_NOT_USE_NETWORK 0x00000800
++#endif
++
++#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO 0x00000001
++
++EXTERN_GUID( MF_BYTESTREAM_ORIGIN_NAME, 0xfc358288, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
++EXTERN_GUID( MF_BYTESTREAM_CONTENT_TYPE, 0xfc358289, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
++EXTERN_GUID( MF_BYTESTREAM_DURATION, 0xfc35828a, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
++EXTERN_GUID( MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
++#if (WINVER >= _WIN32_WINNT_WIN7)
++EXTERN_GUID( MF_BYTESTREAM_IFO_FILE_URI, 0xfc35828c, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
++EXTERN_GUID( MF_BYTESTREAM_DLNA_PROFILE_ID, 0xfc35828d, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);
++EXTERN_GUID( MF_BYTESTREAM_EFFECTIVE_URL, 0x9afa0209, 0x89d1, 0x42af, 0x84, 0x56, 0x1d, 0xe6, 0xb5, 0x62, 0xd6, 0x91);
++EXTERN_GUID( MF_BYTESTREAM_TRANSCODED, 0xb6c5c282, 0x4dc9, 0x4db9, 0xab, 0x48, 0xcf, 0x3b, 0x6d, 0x8b, 0xc5, 0xe0 );
++#endif
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
++EXTERN_GUID(CLSID_MFByteStreamProxyClassFactory, 0x770e8e77, 0x4916, 0x441c, 0xa9, 0xa7, 0xb3, 0x42, 0xd0, 0xee, 0xbc, 0x71 );
++
++/*****************************************************************************
++ * IMFByteStreamProxyClassFactory interface
++ */
++#ifndef __IMFByteStreamProxyClassFactory_INTERFACE_DEFINED__
++#define __IMFByteStreamProxyClassFactory_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IMFByteStreamProxyClassFactory, 0xa6b43f84, 0x5c0a, 0x42e8, 0xa4,0x4d, 0xb1,0x85,0x7a,0x76,0x99,0x2f);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("a6b43f84-5c0a-42e8-a44d-b1857a76992f")
++IMFByteStreamProxyClassFactory : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE CreateByteStreamProxy(
++        IMFByteStream *pByteStream,
++        IMFAttributes *pAttributes,
++        REFIID riid,
++        LPVOID *ppvObject) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IMFByteStreamProxyClassFactory, 0xa6b43f84, 0x5c0a, 0x42e8, 0xa4,0x4d, 0xb1,0x85,0x7a,0x76,0x99,0x2f)
++#endif
++#else
++typedef struct IMFByteStreamProxyClassFactoryVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IMFByteStreamProxyClassFactory* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IMFByteStreamProxyClassFactory* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IMFByteStreamProxyClassFactory* This);
++
++    /*** IMFByteStreamProxyClassFactory methods ***/
++    HRESULT (STDMETHODCALLTYPE *CreateByteStreamProxy)(
++        IMFByteStreamProxyClassFactory* This,
++        IMFByteStream *pByteStream,
++        IMFAttributes *pAttributes,
++        REFIID riid,
++        LPVOID *ppvObject);
++
++    END_INTERFACE
++} IMFByteStreamProxyClassFactoryVtbl;
++interface IMFByteStreamProxyClassFactory {
++    CONST_VTBL IMFByteStreamProxyClassFactoryVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IMFByteStreamProxyClassFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMFByteStreamProxyClassFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMFByteStreamProxyClassFactory_Release(This) (This)->lpVtbl->Release(This)
++/*** IMFByteStreamProxyClassFactory methods ***/
++#define IMFByteStreamProxyClassFactory_CreateByteStreamProxy(This,pByteStream,pAttributes,riid,ppvObject) (This)->lpVtbl->CreateByteStreamProxy(This,pByteStream,pAttributes,riid,ppvObject)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IMFByteStreamProxyClassFactory_QueryInterface(IMFByteStreamProxyClassFactory* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IMFByteStreamProxyClassFactory_AddRef(IMFByteStreamProxyClassFactory* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IMFByteStreamProxyClassFactory_Release(IMFByteStreamProxyClassFactory* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IMFByteStreamProxyClassFactory methods ***/
++static FORCEINLINE HRESULT IMFByteStreamProxyClassFactory_CreateByteStreamProxy(IMFByteStreamProxyClassFactory* This,IMFByteStream *pByteStream,IMFAttributes *pAttributes,REFIID riid,LPVOID *ppvObject) {
++    return This->lpVtbl->CreateByteStreamProxy(This,pByteStream,pAttributes,riid,ppvObject);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IMFByteStreamProxyClassFactory_CreateByteStreamProxy_Proxy(
++    IMFByteStreamProxyClassFactory* This,
++    IMFByteStream *pByteStream,
++    IMFAttributes *pAttributes,
++    REFIID riid,
++    LPVOID *ppvObject);
++void __RPC_STUB IMFByteStreamProxyClassFactory_CreateByteStreamProxy_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IMFByteStreamProxyClassFactory_INTERFACE_DEFINED__ */
++
++
++typedef enum __WIDL_mfobjects_generated_name_00000017 {
+     MF_ACCESSMODE_READ = 1,
+     MF_ACCESSMODE_WRITE = 2,
+     MF_ACCESSMODE_READWRITE = 3
+ } MF_FILE_ACCESSMODE;
+-typedef enum __WIDL_mmreg_h_generated_name_00000002 {
++
++typedef enum __WIDL_mfobjects_generated_name_00000018 {
+     MF_OPENMODE_FAIL_IF_NOT_EXIST = 0,
+     MF_OPENMODE_FAIL_IF_EXIST = 1,
+     MF_OPENMODE_RESET_IF_EXIST = 2,
+     MF_OPENMODE_APPEND_IF_EXIST = 3,
+     MF_OPENMODE_DELETE_IF_EXIST = 4
+ } MF_FILE_OPENMODE;
+-typedef enum __WIDL_mmreg_h_generated_name_00000003 {
++
++typedef enum __WIDL_mfobjects_generated_name_00000019 {
+     MF_FILEFLAGS_NONE = 0x0,
+-    MF_FILEFLAGS_NOBUFFERING = 0x1,
+-    MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x2
++    MF_FILEFLAGS_NOBUFFERING = 0x1
+ } MF_FILE_FLAGS;
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
++/*****************************************************************************
++ * IMFSampleOutputStream interface
++ */
++#ifndef __IMFSampleOutputStream_INTERFACE_DEFINED__
++#define __IMFSampleOutputStream_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IMFSampleOutputStream, 0x8feed468, 0x6f7e, 0x440d, 0x86,0x9a, 0x49,0xbd,0xd2,0x83,0xad,0x0d);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("8feed468-6f7e-440d-869a-49bdd283ad0d")
++IMFSampleOutputStream : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE BeginWriteSample(
++        IMFSample *pSample,
++        IMFAsyncCallback *pCallback,
++        IUnknown *punkState) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE EndWriteSample(
++        IMFAsyncResult *pResult) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Close(
++        ) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IMFSampleOutputStream, 0x8feed468, 0x6f7e, 0x440d, 0x86,0x9a, 0x49,0xbd,0xd2,0x83,0xad,0x0d)
++#endif
++#else
++typedef struct IMFSampleOutputStreamVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IMFSampleOutputStream* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IMFSampleOutputStream* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IMFSampleOutputStream* This);
++
++    /*** IMFSampleOutputStream methods ***/
++    HRESULT (STDMETHODCALLTYPE *BeginWriteSample)(
++        IMFSampleOutputStream* This,
++        IMFSample *pSample,
++        IMFAsyncCallback *pCallback,
++        IUnknown *punkState);
++
++    HRESULT (STDMETHODCALLTYPE *EndWriteSample)(
++        IMFSampleOutputStream* This,
++        IMFAsyncResult *pResult);
++
++    HRESULT (STDMETHODCALLTYPE *Close)(
++        IMFSampleOutputStream* This);
++
++    END_INTERFACE
++} IMFSampleOutputStreamVtbl;
++interface IMFSampleOutputStream {
++    CONST_VTBL IMFSampleOutputStreamVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IMFSampleOutputStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMFSampleOutputStream_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMFSampleOutputStream_Release(This) (This)->lpVtbl->Release(This)
++/*** IMFSampleOutputStream methods ***/
++#define IMFSampleOutputStream_BeginWriteSample(This,pSample,pCallback,punkState) (This)->lpVtbl->BeginWriteSample(This,pSample,pCallback,punkState)
++#define IMFSampleOutputStream_EndWriteSample(This,pResult) (This)->lpVtbl->EndWriteSample(This,pResult)
++#define IMFSampleOutputStream_Close(This) (This)->lpVtbl->Close(This)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IMFSampleOutputStream_QueryInterface(IMFSampleOutputStream* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IMFSampleOutputStream_AddRef(IMFSampleOutputStream* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IMFSampleOutputStream_Release(IMFSampleOutputStream* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IMFSampleOutputStream methods ***/
++static FORCEINLINE HRESULT IMFSampleOutputStream_BeginWriteSample(IMFSampleOutputStream* This,IMFSample *pSample,IMFAsyncCallback *pCallback,IUnknown *punkState) {
++    return This->lpVtbl->BeginWriteSample(This,pSample,pCallback,punkState);
++}
++static FORCEINLINE HRESULT IMFSampleOutputStream_EndWriteSample(IMFSampleOutputStream* This,IMFAsyncResult *pResult) {
++    return This->lpVtbl->EndWriteSample(This,pResult);
++}
++static FORCEINLINE HRESULT IMFSampleOutputStream_Close(IMFSampleOutputStream* This) {
++    return This->lpVtbl->Close(This);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IMFSampleOutputStream_BeginWriteSample_Proxy(
++    IMFSampleOutputStream* This,
++    IMFSample *pSample,
++    IMFAsyncCallback *pCallback,
++    IUnknown *punkState);
++void __RPC_STUB IMFSampleOutputStream_BeginWriteSample_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFSampleOutputStream_EndWriteSample_Proxy(
++    IMFSampleOutputStream* This,
++    IMFAsyncResult *pResult);
++void __RPC_STUB IMFSampleOutputStream_EndWriteSample_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFSampleOutputStream_Close_Proxy(
++    IMFSampleOutputStream* This);
++void __RPC_STUB IMFSampleOutputStream_Close_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IMFSampleOutputStream_INTERFACE_DEFINED__ */
++
++
+ /*****************************************************************************
+  * IMFCollection interface
+  */
+@@ -4742,78 +5816,303 @@ static FORCEINLINE ULONG IMFCollection_Release(IMFCollection* This) {
+ static FORCEINLINE HRESULT IMFCollection_GetElementCount(IMFCollection* This,DWORD *pcElements) {
+     return This->lpVtbl->GetElementCount(This,pcElements);
+ }
+-static FORCEINLINE HRESULT IMFCollection_GetElement(IMFCollection* This,DWORD dwElementIndex,IUnknown **ppUnkElement) {
+-    return This->lpVtbl->GetElement(This,dwElementIndex,ppUnkElement);
++static FORCEINLINE HRESULT IMFCollection_GetElement(IMFCollection* This,DWORD dwElementIndex,IUnknown **ppUnkElement) {
++    return This->lpVtbl->GetElement(This,dwElementIndex,ppUnkElement);
++}
++static FORCEINLINE HRESULT IMFCollection_AddElement(IMFCollection* This,IUnknown *pUnkElement) {
++    return This->lpVtbl->AddElement(This,pUnkElement);
++}
++static FORCEINLINE HRESULT IMFCollection_RemoveElement(IMFCollection* This,DWORD dwElementIndex,IUnknown **ppUnkElement) {
++    return This->lpVtbl->RemoveElement(This,dwElementIndex,ppUnkElement);
++}
++static FORCEINLINE HRESULT IMFCollection_InsertElementAt(IMFCollection* This,DWORD dwIndex,IUnknown *pUnknown) {
++    return This->lpVtbl->InsertElementAt(This,dwIndex,pUnknown);
++}
++static FORCEINLINE HRESULT IMFCollection_RemoveAllElements(IMFCollection* This) {
++    return This->lpVtbl->RemoveAllElements(This);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IMFCollection_GetElementCount_Proxy(
++    IMFCollection* This,
++    DWORD *pcElements);
++void __RPC_STUB IMFCollection_GetElementCount_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFCollection_GetElement_Proxy(
++    IMFCollection* This,
++    DWORD dwElementIndex,
++    IUnknown **ppUnkElement);
++void __RPC_STUB IMFCollection_GetElement_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFCollection_AddElement_Proxy(
++    IMFCollection* This,
++    IUnknown *pUnkElement);
++void __RPC_STUB IMFCollection_AddElement_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFCollection_RemoveElement_Proxy(
++    IMFCollection* This,
++    DWORD dwElementIndex,
++    IUnknown **ppUnkElement);
++void __RPC_STUB IMFCollection_RemoveElement_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFCollection_InsertElementAt_Proxy(
++    IMFCollection* This,
++    DWORD dwIndex,
++    IUnknown *pUnknown);
++void __RPC_STUB IMFCollection_InsertElementAt_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFCollection_RemoveAllElements_Proxy(
++    IMFCollection* This);
++void __RPC_STUB IMFCollection_RemoveAllElements_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IMFCollection_INTERFACE_DEFINED__ */
++
++
++/*****************************************************************************
++ * IMFMediaEventQueue interface
++ */
++#ifndef __IMFMediaEventQueue_INTERFACE_DEFINED__
++#define __IMFMediaEventQueue_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IMFMediaEventQueue, 0x36f846fc, 0x2256, 0x48b6, 0xb5,0x8e, 0xe2,0xb6,0x38,0x31,0x65,0x81);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("36f846fc-2256-48b6-b58e-e2b638316581")
++IMFMediaEventQueue : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE GetEvent(
++        DWORD dwFlags,
++        IMFMediaEvent **ppEvent) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE BeginGetEvent(
++        IMFAsyncCallback *pCallback,
++        IUnknown *punkState) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE EndGetEvent(
++        IMFAsyncResult *pResult,
++        IMFMediaEvent **ppEvent) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE QueueEvent(
++        IMFMediaEvent *pEvent) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE QueueEventParamVar(
++        MediaEventType met,
++        REFGUID guidExtendedType,
++        HRESULT hrStatus,
++        const PROPVARIANT *pvValue) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE QueueEventParamUnk(
++        MediaEventType met,
++        REFGUID guidExtendedType,
++        HRESULT hrStatus,
++        IUnknown *pUnk) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Shutdown(
++        ) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IMFMediaEventQueue, 0x36f846fc, 0x2256, 0x48b6, 0xb5,0x8e, 0xe2,0xb6,0x38,0x31,0x65,0x81)
++#endif
++#else
++typedef struct IMFMediaEventQueueVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IMFMediaEventQueue* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IMFMediaEventQueue* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IMFMediaEventQueue* This);
++
++    /*** IMFMediaEventQueue methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetEvent)(
++        IMFMediaEventQueue* This,
++        DWORD dwFlags,
++        IMFMediaEvent **ppEvent);
++
++    HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
++        IMFMediaEventQueue* This,
++        IMFAsyncCallback *pCallback,
++        IUnknown *punkState);
++
++    HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
++        IMFMediaEventQueue* This,
++        IMFAsyncResult *pResult,
++        IMFMediaEvent **ppEvent);
++
++    HRESULT (STDMETHODCALLTYPE *QueueEvent)(
++        IMFMediaEventQueue* This,
++        IMFMediaEvent *pEvent);
++
++    HRESULT (STDMETHODCALLTYPE *QueueEventParamVar)(
++        IMFMediaEventQueue* This,
++        MediaEventType met,
++        REFGUID guidExtendedType,
++        HRESULT hrStatus,
++        const PROPVARIANT *pvValue);
++
++    HRESULT (STDMETHODCALLTYPE *QueueEventParamUnk)(
++        IMFMediaEventQueue* This,
++        MediaEventType met,
++        REFGUID guidExtendedType,
++        HRESULT hrStatus,
++        IUnknown *pUnk);
++
++    HRESULT (STDMETHODCALLTYPE *Shutdown)(
++        IMFMediaEventQueue* This);
++
++    END_INTERFACE
++} IMFMediaEventQueueVtbl;
++interface IMFMediaEventQueue {
++    CONST_VTBL IMFMediaEventQueueVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IMFMediaEventQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMFMediaEventQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMFMediaEventQueue_Release(This) (This)->lpVtbl->Release(This)
++/*** IMFMediaEventQueue methods ***/
++#define IMFMediaEventQueue_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
++#define IMFMediaEventQueue_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
++#define IMFMediaEventQueue_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
++#define IMFMediaEventQueue_QueueEvent(This,pEvent) (This)->lpVtbl->QueueEvent(This,pEvent)
++#define IMFMediaEventQueue_QueueEventParamVar(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEventParamVar(This,met,guidExtendedType,hrStatus,pvValue)
++#define IMFMediaEventQueue_QueueEventParamUnk(This,met,guidExtendedType,hrStatus,pUnk) (This)->lpVtbl->QueueEventParamUnk(This,met,guidExtendedType,hrStatus,pUnk)
++#define IMFMediaEventQueue_Shutdown(This) (This)->lpVtbl->Shutdown(This)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IMFMediaEventQueue_QueryInterface(IMFMediaEventQueue* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IMFMediaEventQueue_AddRef(IMFMediaEventQueue* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IMFMediaEventQueue_Release(IMFMediaEventQueue* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IMFMediaEventQueue methods ***/
++static FORCEINLINE HRESULT IMFMediaEventQueue_GetEvent(IMFMediaEventQueue* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
++    return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
++}
++static FORCEINLINE HRESULT IMFMediaEventQueue_BeginGetEvent(IMFMediaEventQueue* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
++    return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
++}
++static FORCEINLINE HRESULT IMFMediaEventQueue_EndGetEvent(IMFMediaEventQueue* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
++    return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
+ }
+-static FORCEINLINE HRESULT IMFCollection_AddElement(IMFCollection* This,IUnknown *pUnkElement) {
+-    return This->lpVtbl->AddElement(This,pUnkElement);
++static FORCEINLINE HRESULT IMFMediaEventQueue_QueueEvent(IMFMediaEventQueue* This,IMFMediaEvent *pEvent) {
++    return This->lpVtbl->QueueEvent(This,pEvent);
+ }
+-static FORCEINLINE HRESULT IMFCollection_RemoveElement(IMFCollection* This,DWORD dwElementIndex,IUnknown **ppUnkElement) {
+-    return This->lpVtbl->RemoveElement(This,dwElementIndex,ppUnkElement);
++static FORCEINLINE HRESULT IMFMediaEventQueue_QueueEventParamVar(IMFMediaEventQueue* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
++    return This->lpVtbl->QueueEventParamVar(This,met,guidExtendedType,hrStatus,pvValue);
+ }
+-static FORCEINLINE HRESULT IMFCollection_InsertElementAt(IMFCollection* This,DWORD dwIndex,IUnknown *pUnknown) {
+-    return This->lpVtbl->InsertElementAt(This,dwIndex,pUnknown);
++static FORCEINLINE HRESULT IMFMediaEventQueue_QueueEventParamUnk(IMFMediaEventQueue* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,IUnknown *pUnk) {
++    return This->lpVtbl->QueueEventParamUnk(This,met,guidExtendedType,hrStatus,pUnk);
+ }
+-static FORCEINLINE HRESULT IMFCollection_RemoveAllElements(IMFCollection* This) {
+-    return This->lpVtbl->RemoveAllElements(This);
++static FORCEINLINE HRESULT IMFMediaEventQueue_Shutdown(IMFMediaEventQueue* This) {
++    return This->lpVtbl->Shutdown(This);
+ }
+ #endif
+ #endif
+ 
+ #endif
+ 
+-HRESULT STDMETHODCALLTYPE IMFCollection_GetElementCount_Proxy(
+-    IMFCollection* This,
+-    DWORD *pcElements);
+-void __RPC_STUB IMFCollection_GetElementCount_Stub(
++HRESULT STDMETHODCALLTYPE IMFMediaEventQueue_GetEvent_Proxy(
++    IMFMediaEventQueue* This,
++    DWORD dwFlags,
++    IMFMediaEvent **ppEvent);
++void __RPC_STUB IMFMediaEventQueue_GetEvent_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
+-HRESULT STDMETHODCALLTYPE IMFCollection_GetElement_Proxy(
+-    IMFCollection* This,
+-    DWORD dwElementIndex,
+-    IUnknown **ppUnkElement);
+-void __RPC_STUB IMFCollection_GetElement_Stub(
++HRESULT STDMETHODCALLTYPE IMFMediaEventQueue_BeginGetEvent_Proxy(
++    IMFMediaEventQueue* This,
++    IMFAsyncCallback *pCallback,
++    IUnknown *punkState);
++void __RPC_STUB IMFMediaEventQueue_BeginGetEvent_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
+-HRESULT STDMETHODCALLTYPE IMFCollection_AddElement_Proxy(
+-    IMFCollection* This,
+-    IUnknown *pUnkElement);
+-void __RPC_STUB IMFCollection_AddElement_Stub(
++HRESULT STDMETHODCALLTYPE IMFMediaEventQueue_EndGetEvent_Proxy(
++    IMFMediaEventQueue* This,
++    IMFAsyncResult *pResult,
++    IMFMediaEvent **ppEvent);
++void __RPC_STUB IMFMediaEventQueue_EndGetEvent_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
+-HRESULT STDMETHODCALLTYPE IMFCollection_RemoveElement_Proxy(
+-    IMFCollection* This,
+-    DWORD dwElementIndex,
+-    IUnknown **ppUnkElement);
+-void __RPC_STUB IMFCollection_RemoveElement_Stub(
++HRESULT STDMETHODCALLTYPE IMFMediaEventQueue_QueueEvent_Proxy(
++    IMFMediaEventQueue* This,
++    IMFMediaEvent *pEvent);
++void __RPC_STUB IMFMediaEventQueue_QueueEvent_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
+-HRESULT STDMETHODCALLTYPE IMFCollection_InsertElementAt_Proxy(
+-    IMFCollection* This,
+-    DWORD dwIndex,
+-    IUnknown *pUnknown);
+-void __RPC_STUB IMFCollection_InsertElementAt_Stub(
++HRESULT STDMETHODCALLTYPE IMFMediaEventQueue_QueueEventParamVar_Proxy(
++    IMFMediaEventQueue* This,
++    MediaEventType met,
++    REFGUID guidExtendedType,
++    HRESULT hrStatus,
++    const PROPVARIANT *pvValue);
++void __RPC_STUB IMFMediaEventQueue_QueueEventParamVar_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
+-HRESULT STDMETHODCALLTYPE IMFCollection_RemoveAllElements_Proxy(
+-    IMFCollection* This);
+-void __RPC_STUB IMFCollection_RemoveAllElements_Stub(
++HRESULT STDMETHODCALLTYPE IMFMediaEventQueue_QueueEventParamUnk_Proxy(
++    IMFMediaEventQueue* This,
++    MediaEventType met,
++    REFGUID guidExtendedType,
++    HRESULT hrStatus,
++    IUnknown *pUnk);
++void __RPC_STUB IMFMediaEventQueue_QueueEventParamUnk_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFMediaEventQueue_Shutdown_Proxy(
++    IMFMediaEventQueue* This);
++void __RPC_STUB IMFMediaEventQueue_Shutdown_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
+ 
+-#endif  /* __IMFCollection_INTERFACE_DEFINED__ */
++#endif  /* __IMFMediaEventQueue_INTERFACE_DEFINED__ */
++
+ 
+ /*****************************************************************************
+  * IMFActivate interface
+@@ -5211,10 +6510,17 @@ void __RPC_STUB IMFActivate_DetachObject_Stub(
+ 
+ #endif  /* __IMFActivate_INTERFACE_DEFINED__ */
+ 
++#endif
++
++#if WINVER >= _WIN32_WINNT_WIN7
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ typedef enum _MF_Plugin_Type {
+     MF_Plugin_Type_MFT = 0,
+-    MF_Plugin_Type_MediaSource = 1
++    MF_Plugin_Type_MediaSource = 1,
++    MF_Plugin_Type_MFT_MatchOutputType = 2,
++    MF_Plugin_Type_Other = (DWORD)-1
+ } MF_Plugin_Type;
++
+ /*****************************************************************************
+  * IMFPluginControl interface
+  */
+@@ -5430,6 +6736,385 @@ void __RPC_STUB IMFPluginControl_SetDisabled_Stub(
+ 
+ #endif  /* __IMFPluginControl_INTERFACE_DEFINED__ */
+ 
++
++typedef enum MF_PLUGIN_CONTROL_POLICY {
++    MF_PLUGIN_CONTROL_POLICY_USE_ALL_PLUGINS = 0,
++    MF_PLUGIN_CONTROL_POLICY_USE_APPROVED_PLUGINS = 1,
++    MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS = 2
++} MF_PLUGIN_CONTROL_POLICY;
++
++/*****************************************************************************
++ * IMFPluginControl2 interface
++ */
++#ifndef __IMFPluginControl2_INTERFACE_DEFINED__
++#define __IMFPluginControl2_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IMFPluginControl2, 0xc6982083, 0x3ddc, 0x45cb, 0xaf,0x5e, 0x0f,0x7a,0x8c,0xe4,0xde,0x77);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("c6982083-3ddc-45cb-af5e-0f7a8ce4de77")
++IMFPluginControl2 : public IMFPluginControl
++{
++    virtual HRESULT STDMETHODCALLTYPE SetPolicy(
++        MF_PLUGIN_CONTROL_POLICY policy) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IMFPluginControl2, 0xc6982083, 0x3ddc, 0x45cb, 0xaf,0x5e, 0x0f,0x7a,0x8c,0xe4,0xde,0x77)
++#endif
++#else
++typedef struct IMFPluginControl2Vtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IMFPluginControl2* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IMFPluginControl2* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IMFPluginControl2* This);
++
++    /*** IMFPluginControl methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetPreferredClsid)(
++        IMFPluginControl2* This,
++        DWORD pluginType,
++        LPCWSTR selector,
++        CLSID *clsid);
++
++    HRESULT (STDMETHODCALLTYPE *GetPreferredClsidByIndex)(
++        IMFPluginControl2* This,
++        DWORD pluginType,
++        DWORD index,
++        LPWSTR *selector,
++        CLSID *clsid);
++
++    HRESULT (STDMETHODCALLTYPE *SetPreferredClsid)(
++        IMFPluginControl2* This,
++        DWORD pluginType,
++        LPCWSTR selector,
++        const CLSID *clsid);
++
++    HRESULT (STDMETHODCALLTYPE *IsDisabled)(
++        IMFPluginControl2* This,
++        DWORD pluginType,
++        REFCLSID clsid);
++
++    HRESULT (STDMETHODCALLTYPE *GetDisabledByIndex)(
++        IMFPluginControl2* This,
++        DWORD pluginType,
++        DWORD index,
++        CLSID *clsid);
++
++    HRESULT (STDMETHODCALLTYPE *SetDisabled)(
++        IMFPluginControl2* This,
++        DWORD pluginType,
++        REFCLSID clsid,
++        WINBOOL disabled);
++
++    /*** IMFPluginControl2 methods ***/
++    HRESULT (STDMETHODCALLTYPE *SetPolicy)(
++        IMFPluginControl2* This,
++        MF_PLUGIN_CONTROL_POLICY policy);
++
++    END_INTERFACE
++} IMFPluginControl2Vtbl;
++interface IMFPluginControl2 {
++    CONST_VTBL IMFPluginControl2Vtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IMFPluginControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMFPluginControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMFPluginControl2_Release(This) (This)->lpVtbl->Release(This)
++/*** IMFPluginControl methods ***/
++#define IMFPluginControl2_GetPreferredClsid(This,pluginType,selector,clsid) (This)->lpVtbl->GetPreferredClsid(This,pluginType,selector,clsid)
++#define IMFPluginControl2_GetPreferredClsidByIndex(This,pluginType,index,selector,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,pluginType,index,selector,clsid)
++#define IMFPluginControl2_SetPreferredClsid(This,pluginType,selector,clsid) (This)->lpVtbl->SetPreferredClsid(This,pluginType,selector,clsid)
++#define IMFPluginControl2_IsDisabled(This,pluginType,clsid) (This)->lpVtbl->IsDisabled(This,pluginType,clsid)
++#define IMFPluginControl2_GetDisabledByIndex(This,pluginType,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,pluginType,index,clsid)
++#define IMFPluginControl2_SetDisabled(This,pluginType,clsid,disabled) (This)->lpVtbl->SetDisabled(This,pluginType,clsid,disabled)
++/*** IMFPluginControl2 methods ***/
++#define IMFPluginControl2_SetPolicy(This,policy) (This)->lpVtbl->SetPolicy(This,policy)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IMFPluginControl2_QueryInterface(IMFPluginControl2* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IMFPluginControl2_AddRef(IMFPluginControl2* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IMFPluginControl2_Release(IMFPluginControl2* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IMFPluginControl methods ***/
++static FORCEINLINE HRESULT IMFPluginControl2_GetPreferredClsid(IMFPluginControl2* This,DWORD pluginType,LPCWSTR selector,CLSID *clsid) {
++    return This->lpVtbl->GetPreferredClsid(This,pluginType,selector,clsid);
++}
++static FORCEINLINE HRESULT IMFPluginControl2_GetPreferredClsidByIndex(IMFPluginControl2* This,DWORD pluginType,DWORD index,LPWSTR *selector,CLSID *clsid) {
++    return This->lpVtbl->GetPreferredClsidByIndex(This,pluginType,index,selector,clsid);
++}
++static FORCEINLINE HRESULT IMFPluginControl2_SetPreferredClsid(IMFPluginControl2* This,DWORD pluginType,LPCWSTR selector,const CLSID *clsid) {
++    return This->lpVtbl->SetPreferredClsid(This,pluginType,selector,clsid);
++}
++static FORCEINLINE HRESULT IMFPluginControl2_IsDisabled(IMFPluginControl2* This,DWORD pluginType,REFCLSID clsid) {
++    return This->lpVtbl->IsDisabled(This,pluginType,clsid);
++}
++static FORCEINLINE HRESULT IMFPluginControl2_GetDisabledByIndex(IMFPluginControl2* This,DWORD pluginType,DWORD index,CLSID *clsid) {
++    return This->lpVtbl->GetDisabledByIndex(This,pluginType,index,clsid);
++}
++static FORCEINLINE HRESULT IMFPluginControl2_SetDisabled(IMFPluginControl2* This,DWORD pluginType,REFCLSID clsid,WINBOOL disabled) {
++    return This->lpVtbl->SetDisabled(This,pluginType,clsid,disabled);
++}
++/*** IMFPluginControl2 methods ***/
++static FORCEINLINE HRESULT IMFPluginControl2_SetPolicy(IMFPluginControl2* This,MF_PLUGIN_CONTROL_POLICY policy) {
++    return This->lpVtbl->SetPolicy(This,policy);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IMFPluginControl2_SetPolicy_Proxy(
++    IMFPluginControl2* This,
++    MF_PLUGIN_CONTROL_POLICY policy);
++void __RPC_STUB IMFPluginControl2_SetPolicy_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IMFPluginControl2_INTERFACE_DEFINED__ */
++
++#endif
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
++/*****************************************************************************
++ * IMFDXGIDeviceManager interface
++ */
++#ifndef __IMFDXGIDeviceManager_INTERFACE_DEFINED__
++#define __IMFDXGIDeviceManager_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IMFDXGIDeviceManager, 0xeb533d5d, 0x2db6, 0x40f8, 0x97,0xa9, 0x49,0x46,0x92,0x01,0x4f,0x07);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("eb533d5d-2db6-40f8-97a9-494692014f07")
++IMFDXGIDeviceManager : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE CloseDeviceHandle(
++        HANDLE hDevice) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetVideoService(
++        HANDLE hDevice,
++        REFIID riid,
++        void **ppService) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE LockDevice(
++        HANDLE hDevice,
++        REFIID riid,
++        void **ppUnkDevice,
++        WINBOOL fBlock) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE OpenDeviceHandle(
++        HANDLE *phDevice) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ResetDevice(
++        IUnknown *pUnkDevice,
++        UINT resetToken) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE TestDevice(
++        HANDLE hDevice) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE UnlockDevice(
++        HANDLE hDevice,
++        WINBOOL fSaveState) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IMFDXGIDeviceManager, 0xeb533d5d, 0x2db6, 0x40f8, 0x97,0xa9, 0x49,0x46,0x92,0x01,0x4f,0x07)
++#endif
++#else
++typedef struct IMFDXGIDeviceManagerVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IMFDXGIDeviceManager* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IMFDXGIDeviceManager* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IMFDXGIDeviceManager* This);
++
++    /*** IMFDXGIDeviceManager methods ***/
++    HRESULT (STDMETHODCALLTYPE *CloseDeviceHandle)(
++        IMFDXGIDeviceManager* This,
++        HANDLE hDevice);
++
++    HRESULT (STDMETHODCALLTYPE *GetVideoService)(
++        IMFDXGIDeviceManager* This,
++        HANDLE hDevice,
++        REFIID riid,
++        void **ppService);
++
++    HRESULT (STDMETHODCALLTYPE *LockDevice)(
++        IMFDXGIDeviceManager* This,
++        HANDLE hDevice,
++        REFIID riid,
++        void **ppUnkDevice,
++        WINBOOL fBlock);
++
++    HRESULT (STDMETHODCALLTYPE *OpenDeviceHandle)(
++        IMFDXGIDeviceManager* This,
++        HANDLE *phDevice);
++
++    HRESULT (STDMETHODCALLTYPE *ResetDevice)(
++        IMFDXGIDeviceManager* This,
++        IUnknown *pUnkDevice,
++        UINT resetToken);
++
++    HRESULT (STDMETHODCALLTYPE *TestDevice)(
++        IMFDXGIDeviceManager* This,
++        HANDLE hDevice);
++
++    HRESULT (STDMETHODCALLTYPE *UnlockDevice)(
++        IMFDXGIDeviceManager* This,
++        HANDLE hDevice,
++        WINBOOL fSaveState);
++
++    END_INTERFACE
++} IMFDXGIDeviceManagerVtbl;
++interface IMFDXGIDeviceManager {
++    CONST_VTBL IMFDXGIDeviceManagerVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IMFDXGIDeviceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMFDXGIDeviceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMFDXGIDeviceManager_Release(This) (This)->lpVtbl->Release(This)
++/*** IMFDXGIDeviceManager methods ***/
++#define IMFDXGIDeviceManager_CloseDeviceHandle(This,hDevice) (This)->lpVtbl->CloseDeviceHandle(This,hDevice)
++#define IMFDXGIDeviceManager_GetVideoService(This,hDevice,riid,ppService) (This)->lpVtbl->GetVideoService(This,hDevice,riid,ppService)
++#define IMFDXGIDeviceManager_LockDevice(This,hDevice,riid,ppUnkDevice,fBlock) (This)->lpVtbl->LockDevice(This,hDevice,riid,ppUnkDevice,fBlock)
++#define IMFDXGIDeviceManager_OpenDeviceHandle(This,phDevice) (This)->lpVtbl->OpenDeviceHandle(This,phDevice)
++#define IMFDXGIDeviceManager_ResetDevice(This,pUnkDevice,resetToken) (This)->lpVtbl->ResetDevice(This,pUnkDevice,resetToken)
++#define IMFDXGIDeviceManager_TestDevice(This,hDevice) (This)->lpVtbl->TestDevice(This,hDevice)
++#define IMFDXGIDeviceManager_UnlockDevice(This,hDevice,fSaveState) (This)->lpVtbl->UnlockDevice(This,hDevice,fSaveState)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IMFDXGIDeviceManager_QueryInterface(IMFDXGIDeviceManager* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IMFDXGIDeviceManager_AddRef(IMFDXGIDeviceManager* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IMFDXGIDeviceManager_Release(IMFDXGIDeviceManager* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IMFDXGIDeviceManager methods ***/
++static FORCEINLINE HRESULT IMFDXGIDeviceManager_CloseDeviceHandle(IMFDXGIDeviceManager* This,HANDLE hDevice) {
++    return This->lpVtbl->CloseDeviceHandle(This,hDevice);
++}
++static FORCEINLINE HRESULT IMFDXGIDeviceManager_GetVideoService(IMFDXGIDeviceManager* This,HANDLE hDevice,REFIID riid,void **ppService) {
++    return This->lpVtbl->GetVideoService(This,hDevice,riid,ppService);
++}
++static FORCEINLINE HRESULT IMFDXGIDeviceManager_LockDevice(IMFDXGIDeviceManager* This,HANDLE hDevice,REFIID riid,void **ppUnkDevice,WINBOOL fBlock) {
++    return This->lpVtbl->LockDevice(This,hDevice,riid,ppUnkDevice,fBlock);
++}
++static FORCEINLINE HRESULT IMFDXGIDeviceManager_OpenDeviceHandle(IMFDXGIDeviceManager* This,HANDLE *phDevice) {
++    return This->lpVtbl->OpenDeviceHandle(This,phDevice);
++}
++static FORCEINLINE HRESULT IMFDXGIDeviceManager_ResetDevice(IMFDXGIDeviceManager* This,IUnknown *pUnkDevice,UINT resetToken) {
++    return This->lpVtbl->ResetDevice(This,pUnkDevice,resetToken);
++}
++static FORCEINLINE HRESULT IMFDXGIDeviceManager_TestDevice(IMFDXGIDeviceManager* This,HANDLE hDevice) {
++    return This->lpVtbl->TestDevice(This,hDevice);
++}
++static FORCEINLINE HRESULT IMFDXGIDeviceManager_UnlockDevice(IMFDXGIDeviceManager* This,HANDLE hDevice,WINBOOL fSaveState) {
++    return This->lpVtbl->UnlockDevice(This,hDevice,fSaveState);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IMFDXGIDeviceManager_CloseDeviceHandle_Proxy(
++    IMFDXGIDeviceManager* This,
++    HANDLE hDevice);
++void __RPC_STUB IMFDXGIDeviceManager_CloseDeviceHandle_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFDXGIDeviceManager_GetVideoService_Proxy(
++    IMFDXGIDeviceManager* This,
++    HANDLE hDevice,
++    REFIID riid,
++    void **ppService);
++void __RPC_STUB IMFDXGIDeviceManager_GetVideoService_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFDXGIDeviceManager_LockDevice_Proxy(
++    IMFDXGIDeviceManager* This,
++    HANDLE hDevice,
++    REFIID riid,
++    void **ppUnkDevice,
++    WINBOOL fBlock);
++void __RPC_STUB IMFDXGIDeviceManager_LockDevice_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFDXGIDeviceManager_OpenDeviceHandle_Proxy(
++    IMFDXGIDeviceManager* This,
++    HANDLE *phDevice);
++void __RPC_STUB IMFDXGIDeviceManager_OpenDeviceHandle_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFDXGIDeviceManager_ResetDevice_Proxy(
++    IMFDXGIDeviceManager* This,
++    IUnknown *pUnkDevice,
++    UINT resetToken);
++void __RPC_STUB IMFDXGIDeviceManager_ResetDevice_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFDXGIDeviceManager_TestDevice_Proxy(
++    IMFDXGIDeviceManager* This,
++    HANDLE hDevice);
++void __RPC_STUB IMFDXGIDeviceManager_TestDevice_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IMFDXGIDeviceManager_UnlockDevice_Proxy(
++    IMFDXGIDeviceManager* This,
++    HANDLE hDevice,
++    WINBOOL fSaveState);
++void __RPC_STUB IMFDXGIDeviceManager_UnlockDevice_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IMFDXGIDeviceManager_INTERFACE_DEFINED__ */
++
++#endif
++
++#endif
+ /* Begin additional prototypes for all interfaces */
+ 
+ ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+diff --git a/mingw-w64-headers/include/mfobjects.idl b/mingw-w64-headers/include/mfobjects.idl
+index 9b0f40f..2fafc07 100644
+--- a/mingw-w64-headers/include/mfobjects.idl
++++ b/mingw-w64-headers/include/mfobjects.idl
+@@ -1,360 +1,436 @@
+-/**
+- * This file has no copyright assigned and is placed in the Public Domain.
+- * This file is part of the mingw-w64 runtime package.
+- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+- */
++cpp_quote("/**")
++cpp_quote(" * This file is part of the mingw-w64 runtime package.")
++cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
++cpp_quote(" */")
++cpp_quote("")
++cpp_quote("#include <winapifamily.h>")
++cpp_quote("")
+ 
+ import "unknwn.idl";
+ import "propsys.idl";
+ import "mediaobj.idl";
+ 
++#ifndef __QWORD_DEFINED
++#define __QWORD_DEFINED
++cpp_quote("")
++typedef ULONGLONG QWORD;
++#endif
++
++cpp_quote("")
+ cpp_quote("#include <mmreg.h>")
+ #include <mmreg.h>
+ 
+-typedef ULONGLONG QWORD;
+-
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
+ typedef enum _MF_ATTRIBUTE_TYPE {
+-    MF_ATTRIBUTE_UINT32     = VT_UI4,
+-    MF_ATTRIBUTE_UINT64     = VT_UI8,
+-    MF_ATTRIBUTE_DOUBLE     = VT_R8,
+-    MF_ATTRIBUTE_GUID       = VT_CLSID,
+-    MF_ATTRIBUTE_STRING     = VT_LPWSTR,
+-    MF_ATTRIBUTE_BLOB       = VT_VECTOR | VT_UI1,
+-    MF_ATTRIBUTE_IUNKNOWN   = VT_UNKNOWN
++  MF_ATTRIBUTE_UINT32 = VT_UI4,
++  MF_ATTRIBUTE_UINT64 = VT_UI8,
++  MF_ATTRIBUTE_DOUBLE = VT_R8,
++  MF_ATTRIBUTE_GUID = VT_CLSID,
++  MF_ATTRIBUTE_STRING = VT_LPWSTR,
++  MF_ATTRIBUTE_BLOB = VT_VECTOR | VT_UI1,
++  MF_ATTRIBUTE_IUNKNOWN = VT_UNKNOWN
+ } MF_ATTRIBUTE_TYPE;
+ 
++cpp_quote("")
+ typedef enum _MF_ATTRIBUTES_MATCH_TYPE {
+-    MF_ATTRIBUTES_MATCH_OUR_ITEMS      = 0,
+-    MF_ATTRIBUTES_MATCH_THEIR_ITEMS    = 1,
+-    MF_ATTRIBUTES_MATCH_ALL_ITEMS      = 2,
+-    MF_ATTRIBUTES_MATCH_INTERSECTION   = 3,
+-    MF_ATTRIBUTES_MATCH_SMALLER        = 4 
++  MF_ATTRIBUTES_MATCH_OUR_ITEMS = 0,
++  MF_ATTRIBUTES_MATCH_THEIR_ITEMS = 1,
++  MF_ATTRIBUTES_MATCH_ALL_ITEMS = 2,
++  MF_ATTRIBUTES_MATCH_INTERSECTION = 3,
++  MF_ATTRIBUTES_MATCH_SMALLER = 4
+ } MF_ATTRIBUTES_MATCH_TYPE;
+ 
+-[
+-    object,
+-    uuid(2cd2d921-c447-44a7-a13c-4adabfc247e3)
+-]
+-interface IMFAttributes : IUnknown
+-{
+-    HRESULT GetItem(REFGUID guidKey, [in, out, ptr] PROPVARIANT *pValue);
+-    HRESULT GetItemType(REFGUID guidKey, [out] MF_ATTRIBUTE_TYPE *pType);
+-    HRESULT CompareItem(REFGUID guidKey, REFPROPVARIANT Value, [out] BOOL *pbResult);
+-    HRESULT Compare(IMFAttributes *pTheirs, MF_ATTRIBUTES_MATCH_TYPE MatchType, [out] BOOL *pbResult);
+-    HRESULT GetUINT32(REFGUID guidKey, [out] UINT32 *punValue);
+-    HRESULT GetUINT64(REFGUID guidKey, [out] UINT64 *punValue);
+-    HRESULT GetDouble(REFGUID guidKey, [out] double *pfValue);
+-    HRESULT GetGUID(REFGUID guidKey, [out] GUID *pguidValue);
+-    HRESULT GetStringLength(REFGUID guidKey, [out] UINT32 *pcchLength);
+-    HRESULT GetString(REFGUID guidKey, [out, size_is(cchBufSize)] LPWSTR pwszValue, UINT32 cchBufSize,
+-            [in, out, ptr] UINT32 *pcchLength);
+-    HRESULT GetAllocatedString(REFGUID guidKey, [out, size_is(,*pcchLength+1)] LPWSTR *ppwszValue,
+-            [out] UINT32 *pcchLength);
+-    HRESULT GetBlobSize(REFGUID guidKey, [out] UINT32 *pcbBlobSize);
+-    HRESULT GetBlob(REFGUID guidKey, [out, size_is(cbBufSize)] UINT8 *pBuf, UINT32 cbBufSize,
+-            [in, out, ptr] UINT32 *pcbBlobSize);
+-    HRESULT GetAllocatedBlob(REFGUID guidKey, [out, size_is(,*pcbSize)] UINT8 **ppBuf, [out] UINT32 *pcbSize);
+-    HRESULT GetUnknown(REFGUID guidKey, REFIID riid, [out, iid_is(riid)] LPVOID *ppv);
+-    HRESULT SetItem(REFGUID guidKey, REFPROPVARIANT Value);
+-    HRESULT DeleteItem(REFGUID guidKey);
+-    HRESULT DeleteAllItems();
+-    HRESULT SetUINT32(REFGUID guidKey, UINT32  unValue);
+-    HRESULT SetUINT64(REFGUID guidKey, UINT64  unValue);
+-    HRESULT SetDouble(REFGUID guidKey, double fValue);
+-    HRESULT SetGUID(REFGUID guidKey, REFGUID guidValue);
+-    HRESULT SetString(REFGUID guidKey, [in, string] LPCWSTR wszValue);
+-    HRESULT SetBlob(REFGUID guidKey, [in, size_is(cbBufSize)] const UINT8* pBuf, UINT32 cbBufSize);
+-    HRESULT SetUnknown(REFGUID guidKey, [in] IUnknown *pUnknown);
+-    HRESULT LockStore();
+-    HRESULT UnlockStore();
+-    HRESULT GetCount([out] UINT32 *pcItems);
+-    HRESULT GetItemByIndex(UINT32 unIndex, [out] GUID *pguidKey, [in, out, ptr] PROPVARIANT *pValue);
+-    HRESULT CopyAllItems([in] IMFAttributes *pDest);
+-}
++cpp_quote("")
++[object, uuid (2cd2d921-c447-44a7-a13c-4adabfc247e3)]
++interface IMFAttributes : IUnknown {
++  HRESULT GetItem (REFGUID guidKey,[in, out, ptr] PROPVARIANT *pValue);
++  HRESULT GetItemType (REFGUID guidKey,[out] MF_ATTRIBUTE_TYPE *pType);
++  HRESULT CompareItem (REFGUID guidKey, REFPROPVARIANT Value,[out] WINBOOL *pbResult);
++  HRESULT Compare (IMFAttributes *pTheirs, MF_ATTRIBUTES_MATCH_TYPE MatchType,[out] WINBOOL *pbResult);
++  HRESULT GetUINT32 (REFGUID guidKey,[out] UINT32 *punValue);
++  HRESULT GetUINT64 (REFGUID guidKey,[out] UINT64 *punValue);
++  HRESULT GetDouble (REFGUID guidKey,[out] double *pfValue);
++  HRESULT GetGUID (REFGUID guidKey,[out] GUID *pguidValue);
++  HRESULT GetStringLength (REFGUID guidKey,[out] UINT32 *pcchLength);
++  HRESULT GetString (REFGUID guidKey,[out, size_is (cchBufSize)] LPWSTR pwszValue, UINT32 cchBufSize,[in, out, ptr] UINT32 *pcchLength);
++  HRESULT GetAllocatedString (REFGUID guidKey,[out, size_is (,*pcchLength + 1)] LPWSTR *ppwszValue,[out] UINT32 *pcchLength);
++  HRESULT GetBlobSize (REFGUID guidKey,[out] UINT32 *pcbBlobSize);
++  HRESULT GetBlob (REFGUID guidKey,[out, size_is (cbBufSize)] UINT8 *pBuf, UINT32 cbBufSize,[in, out, ptr] UINT32 *pcbBlobSize);
++  HRESULT GetAllocatedBlob (REFGUID guidKey,[out, size_is (,*pcbSize)] UINT8 **ppBuf,[out] UINT32 *pcbSize);
++  HRESULT GetUnknown (REFGUID guidKey, REFIID riid,[out, iid_is (riid)] LPVOID *ppv);
++  HRESULT SetItem (REFGUID guidKey, REFPROPVARIANT Value);
++  HRESULT DeleteItem (REFGUID guidKey);
++  HRESULT DeleteAllItems ();
++  HRESULT SetUINT32 (REFGUID guidKey, UINT32 unValue);
++  HRESULT SetUINT64 (REFGUID guidKey, UINT64 unValue);
++  HRESULT SetDouble (REFGUID guidKey, double fValue);
++  HRESULT SetGUID (REFGUID guidKey, REFGUID guidValue);
++  HRESULT SetString (REFGUID guidKey,[in, string] LPCWSTR wszValue);
++  HRESULT SetBlob (REFGUID guidKey,[in, size_is (cbBufSize)] const UINT8 *pBuf, UINT32 cbBufSize);
++  HRESULT SetUnknown (REFGUID guidKey,[in] IUnknown *pUnknown);
++  HRESULT LockStore ();
++  HRESULT UnlockStore ();
++  HRESULT GetCount ([out] UINT32 *pcItems);
++  HRESULT GetItemByIndex (UINT32 unIndex,[out] GUID *pguidKey,[in, out, ptr] PROPVARIANT *pValue);
++  HRESULT CopyAllItems ([in] IMFAttributes *pDest);
++};
+ 
++cpp_quote("")
+ enum MF_ATTRIBUTE_SERIALIZE_OPTIONS {
+-    MF_ATTRIBUTE_SERIALIZE_UNKNOWN_BYREF = 0x00000001
++  MF_ATTRIBUTE_SERIALIZE_UNKNOWN_BYREF = 0x00000001
+ };
+ 
+-[
+-    object,
+-    uuid(045fa593-8799-42b8-bc8d-8968c6453507),
+-    local
+-]
+-interface IMFMediaBuffer : IUnknown
+-{
+-    HRESULT Lock([out] BYTE **ppbBuffer, [out] DWORD *pcbMaxLength, [out] DWORD *pcbCurrentLength);
+-    HRESULT Unlock();
+-    HRESULT GetCurrentLength([out] DWORD *pcbCurrentLength);
+-    HRESULT SetCurrentLength([in] DWORD cbCurrentLength);
+-    HRESULT GetMaxLength([out] DWORD *pcbMaxLength);
++cpp_quote("")
++cpp_quote("STDAPI MFSerializeAttributesToStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);")
++cpp_quote("STDAPI MFDeserializeAttributesFromStream(IMFAttributes *pAttr, DWORD dwOptions, IStream *pStm);")
++
++cpp_quote("")
++[object, uuid (045fa593-8799-42b8-BC8D-8968c6453507), local,]
++interface IMFMediaBuffer : IUnknown {
++  HRESULT Lock ([out] BYTE **ppbBuffer,[out] DWORD *pcbMaxLength,[out] DWORD *pcbCurrentLength);
++  HRESULT Unlock ();
++  HRESULT GetCurrentLength ([out] DWORD *pcbCurrentLength);
++  HRESULT SetCurrentLength ([in] DWORD cbCurrentLength);
++  HRESULT GetMaxLength ([out] DWORD *pcbMaxLength);
+ }
+ 
+-[
+-    object,
+-    uuid(c40a00f2-b93a-4d80-ae8c-5a1c634f58e4),
+-    local
+-]
+-interface IMFSample : IMFAttributes
+-{
+-    HRESULT GetSampleFlags([out] DWORD *pdwSampleFlags);
+-    HRESULT SetSampleFlags([in] DWORD dwSampleFlags);
+-    HRESULT GetSampleTime([out] LONGLONG *phnsSampleTime);
+-    HRESULT SetSampleTime([in] LONGLONG hnsSampleTime);
+-    HRESULT GetSampleDuration([out] LONGLONG *phnsSampleDuration);
+-    HRESULT SetSampleDuration([in] LONGLONG hnsSampleDuration);
+-    HRESULT GetBufferCount([out] DWORD *pdwBufferCount);
+-    HRESULT GetBufferByIndex([in] DWORD dwIndex, [out] IMFMediaBuffer **ppBuffer);
+-    HRESULT ConvertToContiguousBuffer([out] IMFMediaBuffer **ppBuffer);
+-    HRESULT AddBuffer([in] IMFMediaBuffer *pBuffer);
+-    HRESULT RemoveBufferByIndex([in] DWORD dwIndex);
+-    HRESULT RemoveAllBuffers();
+-    HRESULT GetTotalLength([out] DWORD *pcbTotalLength);
+-    HRESULT CopyToBuffer([in] IMFMediaBuffer *pBuffer);
+-}
+-
+-[
+-    object,
+-    uuid(7dc9d5f9-9ed9-44ec-9bbf-0600bb589fbb),
+-    local
+-]
+-interface IMF2DBuffer : IUnknown
+-{
+-    HRESULT Lock2D([out] BYTE **pbScanline0, [out] LONG *plPitch);
+-    HRESULT Unlock2D();
+-    HRESULT GetScanline0AndPitch([out] BYTE **pbScanline0, [out] LONG *plPitch);
+-    HRESULT IsContiguousFormat([out] BOOL *pfIsContiguous);
+-    HRESULT GetContiguousLength([out] DWORD *pcbLength);
+-    HRESULT ContiguousCopyTo([out, size_is(cbDestBuffer)] BYTE *pbDestBuffer, [in] DWORD cbDestBuffer);
+-    HRESULT ContiguousCopyFrom([in, size_is(cbSrcBuffer)] const BYTE *pbSrcBuffer, [in] DWORD cbSrcBuffer);
+-}
+-
+-[
+-    object,
+-    uuid(44ae0fa8-ea31-4109-8d2e-4cae4997c555),
+-    local
+-]
+-interface IMFMediaType : IMFAttributes
+-{
+-    HRESULT GetMajorType([out] GUID *pguidMajorType);
+-    HRESULT IsCompressedFormat([out] BOOL *pfCompressed);
+-    HRESULT IsEqual([in] IMFMediaType *pIMediaType, [out] DWORD *pdwFlags);
+-    HRESULT GetRepresentation([in] GUID guidRepresentation, [out] LPVOID *ppvRepresentation);
+-    HRESULT FreeRepresentation([in] GUID guidRepresentation, [in] LPVOID pvRepresentation);
+-}
++cpp_quote("")
++[object, uuid (c40a00f2-b93a-4d80-ae8c-5a1c634f58e4), local,]
++interface IMFSample : IMFAttributes {
++  HRESULT GetSampleFlags ([out] DWORD *pdwSampleFlags);
++  HRESULT SetSampleFlags ([in] DWORD dwSampleFlags);
++  HRESULT GetSampleTime ([out] LONGLONG *phnsSampleTime);
++  HRESULT SetSampleTime ([in] LONGLONG hnsSampleTime);
++  HRESULT GetSampleDuration ([out] LONGLONG *phnsSampleDuration);
++  HRESULT SetSampleDuration ([in] LONGLONG hnsSampleDuration);
++  HRESULT GetBufferCount ([out] DWORD *pdwBufferCount);
++  HRESULT GetBufferByIndex ([in] DWORD dwIndex,[out] IMFMediaBuffer **ppBuffer);
++  HRESULT ConvertToContiguousBuffer ([out] IMFMediaBuffer **ppBuffer);
++  HRESULT AddBuffer ([in] IMFMediaBuffer *pBuffer);
++  HRESULT RemoveBufferByIndex ([in] DWORD dwIndex);
++  HRESULT RemoveAllBuffers (void);
++  HRESULT GetTotalLength ([out] DWORD *pcbTotalLength);
++  HRESULT CopyToBuffer ([in] IMFMediaBuffer *pBuffer);
++};
+ 
+-cpp_quote("#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES          0x00000001")
+-cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES         0x00000002")
+-cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_DATA          0x00000004")
+-cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA     0x00000008")
+-
+-[
+-    object,
+-    uuid(26a0adc3-ce26-4672-9304-69552edd3faf),
+-    local
+-]
+-interface IMFAudioMediaType : IMFMediaType
+-{
+-    const WAVEFORMATEX *GetAudioFormat();
++cpp_quote("")
++[object, uuid (7dc9d5f9-9ed9-44ec-9bbf-0600bb589fbb), local]
++interface IMF2DBuffer : IUnknown {
++  HRESULT Lock2D ([out] BYTE **ppbScanline0,[out] LONG *plPitch);
++  HRESULT Unlock2D ();
++  HRESULT GetScanline0AndPitch ([out] BYTE **pbScanline0,[out] LONG *plPitch);
++  HRESULT IsContiguousFormat ([out] WINBOOL *pfIsContiguous);
++  HRESULT GetContiguousLength ([out] DWORD *pcbLength);
++  HRESULT ContiguousCopyTo ([out, size_is (cbDestBuffer)] BYTE *pbDestBuffer,[in] DWORD cbDestBuffer);
++  HRESULT ContiguousCopyFrom ([in, size_is (cbSrcBuffer)] const BYTE *pbSrcBuffer,[in] DWORD cbSrcBuffer);
+ }
+ 
+-typedef struct {
+-    GUID guidMajorType;
+-    GUID guidSubtype;
+-} MFT_REGISTER_TYPE_INFO;
++cpp_quote("")
++typedef enum _MF2DBuffer_LockFlags {
++  MF2DBuffer_LockFlags_LockTypeMask = 0x1 | 0x2 | 0x3,
++  MF2DBuffer_LockFlags_Read = 0x1,
++  MF2DBuffer_LockFlags_Write = 0x2,
++  MF2DBuffer_LockFlags_ReadWrite = 0x3,
++  MF2DBuffer_LockFlags_ForceDWORD = 0x7fffffff
++} MF2DBuffer_LockFlags;
++
++cpp_quote("")
++[object, uuid (33ae5ea6-4316-436f-8ddd-d73d22f829ec), local]
++interface IMF2DBuffer2 : IMF2DBuffer {
++  HRESULT Lock2DSize ([in] MF2DBuffer_LockFlags lockFlags,[out] BYTE **ppbScanline0,[out] LONG *plPitch,[out] BYTE **ppbBufferStart,[out] DWORD *pcbBufferLength);
++  HRESULT Copy2DTo ([in] IMF2DBuffer2 *pDestBuffer);
++};
+ 
+-typedef enum _MFVideoFlags {
+-    MFVideoFlag_PAD_TO_Mask             = 0x0001 | 0x0002,
+-    MFVideoFlag_PAD_TO_None             = 0 * 0x0001,
+-    MFVideoFlag_PAD_TO_4x3              = 1 * 0x0001,
+-    MFVideoFlag_PAD_TO_16x9             = 2 * 0x0001,
+-    MFVideoFlag_SrcContentHintMask      = 0x0004 | 0x0008 | 0x0010,
+-    MFVideoFlag_SrcContentHintNone      = 0 * 0x0004,
+-    MFVideoFlag_SrcContentHint16x9      = 1 * 0x0004,
+-    MFVideoFlag_SrcContentHint235_1     = 2 * 0x0004,
+-    MFVideoFlag_AnalogProtected         = 0x0020,
+-    MFVideoFlag_DigitallyProtected      = 0x0040,
+-    MFVideoFlag_ProgressiveContent      = 0x0080,
+-    MFVideoFlag_FieldRepeatCountMask    = 0x0100 | 0x0200 | 0x0400,
+-    MFVideoFlag_FieldRepeatCountShift   = 8,
+-    MFVideoFlag_ProgressiveSeqReset     = 0x0800,
+-    MFVideoFlag_PanScanEnabled          = 0x20000,
+-    MFVideoFlag_LowerFieldFirst         = 0x40000,
+-    MFVideoFlag_BottomUpLinearRep       = 0x80000,
+-    MFVideoFlags_DXVASurface            = 0x100000,
+-    MFVideoFlags_RenderTargetSurface    = 0x400000,
+-    MFVideoFlags_ForceQWORD             = 0x7FFFFFFF
+-} MFVideoFlags;
++cpp_quote("")
++[object, uuid (e7174cfa-1c9e-48b1-8866-626226bfc258), local]
++interface IMFDXGIBuffer : IUnknown {
++  HRESULT GetResource ([in] REFIID riid,[out] LPVOID *ppvObject);
++  HRESULT GetSubresourceIndex ([out] UINT *puSubresource);
++  HRESULT GetUnknown ([in] REFIID guid,[in] REFIID riid,[out] LPVOID *ppvObject);
++  HRESULT SetUnknown ([in] REFIID guid,[in] IUnknown *pUnkData);
++};
+ 
+-typedef struct _MFRatio {
+-    DWORD Numerator;
+-    DWORD Denominator;
+-} MFRatio;
++cpp_quote("")
++[object, uuid (44ae0fa8-ea31-4109-8d2e-4cae4997c555), local]
++interface IMFMediaType : IMFAttributes {
++  HRESULT GetMajorType ([out] GUID *pguidMajorType);
++  HRESULT IsCompressedFormat ([out] WINBOOL *pfCompressed);
++  HRESULT IsEqual ([in] IMFMediaType *pIMediaType,[out] DWORD *pdwFlags);
++  HRESULT GetRepresentation ([in] GUID guidRepresentation,[out] LPVOID *ppvRepresentation);
++  HRESULT FreeRepresentation ([in] GUID guidRepresentation,[in] LPVOID pvRepresentation);
++};
+ 
+-typedef struct _MFOffset {
+-    WORD  fract;
+-    short value;
+-} MFOffset;
++cpp_quote("")
++cpp_quote("#define MF_MEDIATYPE_EQUAL_MAJOR_TYPES 0x00000001")
++cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_TYPES 0x00000002")
++cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_DATA 0x00000004")
++cpp_quote("#define MF_MEDIATYPE_EQUAL_FORMAT_USER_DATA 0x00000008")
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
++[object, uuid (26a0adc3-ce26-4672-9304-69552edd3faf), local]
++interface IMFAudioMediaType : IMFMediaType {
++  const WAVEFORMATEX *GetAudioFormat ();
++};
++cpp_quote("")
++cpp_quote("#ifndef _WINGDI_")
++#ifndef RGBQUAD
++typedef DWORD RGBQUAD;
++#endif
+ 
+-typedef struct _MFVideoArea {
+-    MFOffset OffsetX;
+-    MFOffset OffsetY;
+-    SIZE     Area;
+-} MFVideoArea;
++cpp_quote("")
++typedef struct {
++  DWORD biSize;
++  LONG biWidth;
++  LONG biHeight;
++  WORD biPlanes;
++  WORD biBitCount;
++  DWORD biCompression;
++  DWORD biSizeImage;
++  LONG biXPelsPerMeter;
++  LONG biYPelsPerMeter;
++  DWORD biClrUsed;
++  DWORD biClrImportant;
++} BITMAPINFOHEADER;
++
++cpp_quote("")
++typedef struct {
++  BITMAPINFOHEADER bmiHeader;
++  RGBQUAD bmiColors[1];
++} BITMAPINFO;
++cpp_quote("#endif")
+ 
+-typedef enum _MFVideoChromaSubsampling {
+-    MFVideoChromaSubsampling_Unknown                        = 0,
+-    MFVideoChromaSubsampling_ProgressiveChroma              = 0x8,
+-    MFVideoChromaSubsampling_Horizontally_Cosited           = 0x4,
+-    MFVideoChromaSubsampling_Vertically_Cosited             = 0x2,
+-    MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
+-    MFVideoChromaSubsampling_MPEG2
+-        = MFVideoChromaSubsampling_Horizontally_Cosited
+-        | MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+-    MFVideoChromaSubsampling_MPEG1
+-        = MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+-    MFVideoChromaSubsampling_DV_PAL
+-        = MFVideoChromaSubsampling_Horizontally_Cosited
+-        | MFVideoChromaSubsampling_Vertically_Cosited,
+-    MFVideoChromaSubsampling_Cosited
+-        = MFVideoChromaSubsampling_Horizontally_Cosited
+-        | MFVideoChromaSubsampling_Vertically_Cosited
+-        | MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+-    MFVideoChromaSubsampling_Last        = MFVideoChromaSubsampling_Cosited + 1,
+-    MFVideoChromaSubsampling_ForceDWORD  = 0x7fffffff
+-} MFVideoChromaSubsampling;
++cpp_quote("")
++typedef struct {
++  GUID guidMajorType;
++  GUID guidSubtype;
++} MFT_REGISTER_TYPE_INFO;
++cpp_quote("#endif")
+ 
++cpp_quote("#ifndef _MFVIDEOFORMAT_")
++cpp_quote("#define _MFVIDEOFORMAT_")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
+ typedef enum _MFVideoInterlaceMode {
+-    MFVideoInterlace_Unknown                     = 0,
+-    MFVideoInterlace_Progressive                 = 2,
+-    MFVideoInterlace_FieldInterleavedUpperFirst  = 3,
+-    MFVideoInterlace_FieldInterleavedLowerFirst  = 4,
+-    MFVideoInterlace_FieldSingleUpper            = 5,
+-    MFVideoInterlace_FieldSingleLower            = 6,
+-    MFVideoInterlace_MixedInterlaceOrProgressive = 7,
+-    MFVideoInterlace_Last,
+-    MFVideoInterlace_ForceDWORD                  = 0x7fffffff
++  MFVideoInterlace_Unknown = 0,
++  MFVideoInterlace_Progressive = 2,
++  MFVideoInterlace_FieldInterleavedUpperFirst = 3,
++  MFVideoInterlace_FieldInterleavedLowerFirst = 4,
++  MFVideoInterlace_FieldSingleUpper = 5,
++  MFVideoInterlace_FieldSingleLower = 6,
++  MFVideoInterlace_MixedInterlaceOrProgressive= 7,
++  MFVideoInterlace_Last,
++  MFVideoInterlace_ForceDWORD = 0x7fffffff
+ } MFVideoInterlaceMode;
++cpp_quote("")
++cpp_quote("#define MFVideoInterlace_FieldSingleUpperFirst MFVideoInterlace_FieldSingleUpper")
++cpp_quote("#define MFVideoInterlace_FieldSingleLowerFirst MFVideoInterlace_FieldSingleLower")
+ 
++cpp_quote("")
+ typedef enum _MFVideoTransferFunction {
+-    MFVideoTransFunc_Unknown      = 0,
+-    MFVideoTransFunc_10           = 1,
+-    MFVideoTransFunc_18           = 2,
+-    MFVideoTransFunc_20           = 3,
+-    MFVideoTransFunc_22           = 4,
+-    MFVideoTransFunc_709          = 5,
+-    MFVideoTransFunc_240M         = 6,
+-    MFVideoTransFunc_sRGB         = 7,
+-    MFVideoTransFunc_28           = 8,
+-    MFVideoTransFunc_Log_100      = 9,
+-    MFVideoTransFunc_Log_316      = 10,
+-    MFVideoTransFunc_709_sym      = 11,
+-    MFVideoTransFunc_Last,
+-    MFVideoTransFunc_ForceDWORD   = 0x7FFFFFFF
++  MFVideoTransFunc_Unknown = 0,
++  MFVideoTransFunc_10 = 1,
++  MFVideoTransFunc_18 = 2,
++  MFVideoTransFunc_20 = 3,
++  MFVideoTransFunc_22 = 4,
++  MFVideoTransFunc_709 = 5,
++  MFVideoTransFunc_240M = 6,
++  MFVideoTransFunc_sRGB = 7,
++  MFVideoTransFunc_28 = 8,
++#if WINVER >= 0x0601
++  MFVideoTransFunc_Log_100 = 9,
++  MFVideoTransFunc_Log_316 = 10,
++  MFVideoTransFunc_709_sym = 11,
++#endif
++  MFVideoTransFunc_Last,
++  MFVideoTransFunc_ForceDWORD = 0x7fffffff
+ } MFVideoTransferFunction;
+ 
+-typedef enum _MFVideoTransferMatrix {
+-    MFVideoTransferMatrix_Unknown      = 0,
+-    MFVideoTransferMatrix_BT709        = 1,
+-    MFVideoTransferMatrix_BT601        = 2,
+-    MFVideoTransferMatrix_SMPTE240M    = 3,
+-    MFVideoTransferMatrix_Last,
+-    MFVideoTransferMatrix_ForceDWORD   = 0x7FFFFFFF
+-} MFVideoTransferMatrix;
+-
++cpp_quote("")
+ typedef enum _MFVideoPrimaries {
+-    MFVideoPrimaries_Unknown         = 0,
+-    MFVideoPrimaries_reserved        = 1,
+-    MFVideoPrimaries_BT709           = 2,
+-    MFVideoPrimaries_BT470_2_SysM    = 3,
+-    MFVideoPrimaries_BT470_2_SysBG   = 4,
+-    MFVideoPrimaries_SMPTE170M       = 5,
+-    MFVideoPrimaries_SMPTE240M       = 6,
+-    MFVideoPrimaries_EBU3213         = 7,
+-    MFVideoPrimaries_SMPTE_C         = 8,
+-    MFVideoPrimaries_Last,
+-    MFVideoPrimaries_ForceDWORD      = 0x7FFFFFFF
++  MFVideoPrimaries_Unknown = 0,
++  MFVideoPrimaries_reserved = 1,
++  MFVideoPrimaries_BT709 = 2,
++  MFVideoPrimaries_BT470_2_SysM = 3,
++  MFVideoPrimaries_BT470_2_SysBG = 4,
++  MFVideoPrimaries_SMPTE170M = 5,
++  MFVideoPrimaries_SMPTE240M = 6,
++  MFVideoPrimaries_EBU3213 = 7,
++  MFVideoPrimaries_SMPTE_C = 8,
++  MFVideoPrimaries_Last,
++  MFVideoPrimaries_ForceDWORD = 0x7fffffff
+ } MFVideoPrimaries;
+ 
++cpp_quote("")
+ typedef enum _MFVideoLighting {
+-  MFVideoLighting_Unknown      = 0,
+-  MFVideoLighting_bright       = 1,
+-  MFVideoLighting_office       = 2,
+-  MFVideoLighting_dim          = 3,
+-  MFVideoLighting_dark         = 4,
++  MFVideoLighting_Unknown = 0,
++  MFVideoLighting_bright=1,
++  MFVideoLighting_office=2,
++  MFVideoLighting_dim=3,
++  MFVideoLighting_dark=4,
+   MFVideoLighting_Last,
+-  MFVideoLighting_ForceDWORD   = 0x7FFFFFFF
++  MFVideoLighting_ForceDWORD = 0x7fffffff
+ } MFVideoLighting;
+ 
++cpp_quote("")
++typedef enum _MFVideoTransferMatrix {
++  MFVideoTransferMatrix_Unknown = 0,
++  MFVideoTransferMatrix_BT709 = 1,
++  MFVideoTransferMatrix_BT601 = 2,
++  MFVideoTransferMatrix_SMPTE240M = 3,
++  MFVideoTransferMatrix_Last,
++  MFVideoTransferMatrix_ForceDWORD = 0x7fffffff
++} MFVideoTransferMatrix;
++
++cpp_quote("")
++typedef enum _MFVideoChromaSubsampling {
++  MFVideoChromaSubsampling_Unknown = 0,
++  MFVideoChromaSubsampling_ProgressiveChroma = 0x8,
++  MFVideoChromaSubsampling_Horizontally_Cosited = 0x4,
++  MFVideoChromaSubsampling_Vertically_Cosited = 0x2,
++  MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
++  MFVideoChromaSubsampling_MPEG2 = MFVideoChromaSubsampling_Horizontally_Cosited |
++  MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
++  MFVideoChromaSubsampling_MPEG1 = MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
++  MFVideoChromaSubsampling_DV_PAL = MFVideoChromaSubsampling_Horizontally_Cosited |
++  MFVideoChromaSubsampling_Vertically_Cosited,
++  MFVideoChromaSubsampling_Cosited = MFVideoChromaSubsampling_Horizontally_Cosited |
++  MFVideoChromaSubsampling_Vertically_Cosited |
++  MFVideoChromaSubsampling_Vertically_AlignedChromaPlanes,
++  MFVideoChromaSubsampling_Last = MFVideoChromaSubsampling_Cosited+1,
++  MFVideoChromaSubsampling_ForceDWORD = 0x7fffffff
++} MFVideoChromaSubsampling;
++
++cpp_quote("")
+ typedef enum _MFNominalRange {
+-    MFNominalRange_Unknown   = 0,
+-    MFNominalRange_Normal    = 1,
+-    MFNominalRange_Wide      = 2,
+-    MFNominalRange_0_255     = 1,
+-    MFNominalRange_16_235    = 2,
+-    MFNominalRange_48_208    = 3,
+-    MFNominalRange_64_127    = 4
++  MFNominalRange_Unknown = 0,
++  MFNominalRange_Normal = 1,
++  MFNominalRange_Wide = 2,
++  MFNominalRange_0_255 = 1,
++  MFNominalRange_16_235 = 2,
++  MFNominalRange_48_208 = 3,
++#if WINVER >= 0x0601
++  MFNominalRange_64_127 = 4,
++#endif
++  MFNominalRange_Last,
++  MFNominalRange_ForceDWORD = 0x7fffffff
+ } MFNominalRange;
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+ 
++typedef enum _MFVideoFlags {
++  MFVideoFlag_PAD_TO_Mask = 0x0001 | 0x0002,
++  MFVideoFlag_PAD_TO_None = 0 *0x0001,
++  MFVideoFlag_PAD_TO_4x3 = 1 *0x0001,
++  MFVideoFlag_PAD_TO_16x9 = 2 *0x0001,
++  MFVideoFlag_SrcContentHintMask = 0x0004 | 0x0008 | 0x0010,
++  MFVideoFlag_SrcContentHintNone = 0 *0x0004,
++  MFVideoFlag_SrcContentHint16x9 = 1 *0x0004,
++  MFVideoFlag_SrcContentHint235_1 = 2 *0x0004,
++  MFVideoFlag_AnalogProtected = 0x0020,
++  MFVideoFlag_DigitallyProtected = 0x0040,
++  MFVideoFlag_ProgressiveContent = 0x0080,
++  MFVideoFlag_FieldRepeatCountMask = 0x0100 | 0x0200 | 0x0400,
++  MFVideoFlag_FieldRepeatCountShift = 8,
++  MFVideoFlag_ProgressiveSeqReset = 0x0800,
++  MFVideoFlag_PanScanEnabled = 0x20000,
++  MFVideoFlag_LowerFieldFirst = 0x40000,
++  MFVideoFlag_BottomUpLinearRep = 0x80000,
++  MFVideoFlags_DXVASurface = 0x100000,
++  MFVideoFlags_RenderTargetSurface = 0x400000,
++  MFVideoFlags_ForceQWORD = 0x7fffffff
++} MFVideoFlags;
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
++typedef struct _MFRatio {
++  DWORD Numerator;
++  DWORD Denominator;
++} MFRatio;
++
++cpp_quote("")
++typedef struct _MFOffset {
++  WORD fract;
++  short value;
++} MFOffset;
++typedef struct _MFVideoArea {
++  MFOffset OffsetX;
++  MFOffset OffsetY;
++  SIZE Area;
++} MFVideoArea;
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+ typedef struct _MFVideoInfo {
+-    DWORD                    dwWidth;
+-    DWORD                    dwHeight;
+-    MFRatio                  PixelAspectRatio;
+-    MFVideoChromaSubsampling SourceChromaSubsampling;
+-    MFVideoInterlaceMode     InterlaceMode;
+-    MFVideoTransferFunction  TransferFunction;
+-    MFVideoPrimaries         ColorPrimaries;
+-    MFVideoTransferMatrix    TransferMatrix;
+-    MFVideoLighting          SourceLighting;
+-    MFRatio                  FramesPerSecond;
+-    MFNominalRange           NominalRange;
+-    MFVideoArea              GeometricAperture;
+-    MFVideoArea              MinimumDisplayAperture;
+-    MFVideoArea              PanScanAperture;
+-    unsigned __int64         VideoFlags;
++  DWORD dwWidth;
++  DWORD dwHeight;
++  MFRatio PixelAspectRatio;
++  MFVideoChromaSubsampling SourceChromaSubsampling;
++  MFVideoInterlaceMode InterlaceMode;
++  MFVideoTransferFunction TransferFunction;
++  MFVideoPrimaries ColorPrimaries;
++  MFVideoTransferMatrix TransferMatrix;
++  MFVideoLighting SourceLighting;
++  MFRatio FramesPerSecond;
++  MFNominalRange NominalRange;
++  MFVideoArea GeometricAperture;
++  MFVideoArea MinimumDisplayAperture;
++  MFVideoArea PanScanAperture;
++  unsigned __int64 VideoFlags;
+ } MFVideoInfo;
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
++typedef struct __MFAYUVSample {
++  BYTE bCrValue;
++  BYTE bCbValue;
++  BYTE bYValue;
++  BYTE bSampleAlpha8;
++} MFAYUVSample;
+ 
+-typedef struct _MFVideoCompressedInfo {
+-    LONGLONG AvgBitrate;
+-    LONGLONG AvgBitErrorRate;
+-    DWORD    MaxKeyFrameSpacing;
+-} MFVideoCompressedInfo;
+-
++cpp_quote("")
+ typedef struct _MFARGB {
+-    BYTE rgbBlue;
+-    BYTE rgbGreen;
+-    BYTE rgbRed;
+-    BYTE rgbAlpha;
++  BYTE rgbBlue;
++  BYTE rgbGreen;
++  BYTE rgbRed;
++  BYTE rgbAlpha;
+ } MFARGB;
+ 
+-typedef struct __MFAYUVSample {
+-    BYTE bCrValue;
+-    BYTE bCbValue;
+-    BYTE bYValue;
+-    BYTE bSampleAlpha8;
+-} MFAYUVSample;
+-
++cpp_quote("")
+ typedef union _MFPaletteEntry {
+-    MFARGB       ARGB;
+-    MFAYUVSample AYCbCr;
++  MFARGB ARGB;
++  MFAYUVSample AYCbCr;
+ } MFPaletteEntry;
+-
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+ typedef struct _MFVideoSurfaceInfo {
+-    DWORD          Format;
+-    DWORD          PaletteEntries;
+-    MFPaletteEntry Palette[];
++  DWORD Format;
++  DWORD PaletteEntries;
++  [size_is (PaletteEntries)] MFPaletteEntry Palette[];
+ } MFVideoSurfaceInfo;
+ 
++cpp_quote("")
++typedef struct _MFVideoCompressedInfo {
++  LONGLONG AvgBitrate;
++  LONGLONG AvgBitErrorRate;
++  DWORD MaxKeyFrameSpacing;
++} MFVideoCompressedInfo;
++
++cpp_quote("")
+ typedef struct _MFVIDEOFORMAT {
+-    DWORD                 dwSize;
+-    MFVideoInfo           videoInfo;
+-    GUID                  guidFormat;
+-    MFVideoCompressedInfo compressedInfo;
+-    MFVideoSurfaceInfo    surfaceInfo;
++  DWORD dwSize;
++  MFVideoInfo videoInfo;
++  GUID guidFormat;
++  MFVideoCompressedInfo compressedInfo;
++  MFVideoSurfaceInfo surfaceInfo;
+ } MFVIDEOFORMAT;
+ 
++cpp_quote("")
+ typedef enum _MFStandardVideoFormat {
+-  MFStdVideoFormat_reserved       = 0,
++  MFStdVideoFormat_reserved = 0,
+   MFStdVideoFormat_NTSC,
+   MFStdVideoFormat_PAL,
+   MFStdVideoFormat_DVD_NTSC,
+@@ -363,211 +439,406 @@ typedef enum _MFStandardVideoFormat {
+   MFStdVideoFormat_DV_NTSC,
+   MFStdVideoFormat_ATSC_SD480i,
+   MFStdVideoFormat_ATSC_HD1080i,
+-  MFStdVideoFormat_ATSC_HD720p
++  MFStdVideoFormat_ATSC_HD720p,
+ } MFStandardVideoFormat;
++cpp_quote("#endif")
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
++[object, uuid (b99f381f-a8f9-47a2-a5af-ca3a225a3890), local]
++interface IMFVideoMediaType : IMFMediaType {
++  const MFVIDEOFORMAT *GetVideoFormat ();
++  HRESULT GetVideoRepresentation ([in] GUID guidRepresentation,[out] LPVOID *ppvRepresentation,[in] LONG lStride);
++};
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
++[object, uuid (ac6b7889-0740-4d51-8619-905994a55cc6)]
++interface IMFAsyncResult : IUnknown {
++  HRESULT GetState ([out] IUnknown **ppunkState);
++  HRESULT GetStatus ();
++  HRESULT SetStatus ([in] HRESULT hrStatus);
++  HRESULT GetObject ([out] IUnknown **ppObject);
++  [local] IUnknown *GetStateNoAddRef ();
++};
+ 
+-[
+-    object,
+-    uuid(b99f381f-a8f9-47a2-a5af-ca3a225a3890),
+-    local
+-]
+-interface IMFVideoMediaType : IMFMediaType
+-{
+-    const MFVIDEOFORMAT *GetVideoFormat();
+-
+-    HRESULT GetVideoRepresentation([in] GUID guidRepresentation, [out] LPVOID *ppvRepresentation,
+-            [in] LONG lStride);
+-}
+-
+-[
+-    object,
+-    uuid(ac6b7889-0740-4d51-8619-905994a55cc6)
+-]
+-interface IMFAsyncResult : IUnknown
+-{
+-    HRESULT GetState([out] IUnknown **ppunkState);
+-    HRESULT GetStatus();
+-    HRESULT SetStatus([in] HRESULT hrStatus);
+-    HRESULT GetObject([out] IUnknown **ppObject);
+-    [local] IUnknown *GetStateNoAddRef();
+-}
+-
+-[
+-    object,
+-    uuid(a27003cf-2354-4f2a-8d6a-ab7cff15437e),
+-]
+-interface IMFAsyncCallback : IUnknown
+-{
+-    HRESULT GetParameters([out] DWORD *pdwFlags, [out] DWORD *pdwQueue);
+-    HRESULT Invoke([in] IMFAsyncResult *pAsyncResult);
++cpp_quote("")
++[object, uuid (a27003cf-2354-4f2a-8d6a-ab7cff15437e),]
++interface IMFAsyncCallback : IUnknown {
++  HRESULT GetParameters ([out] DWORD *pdwFlags,[out] DWORD *pdwQueue);
++  HRESULT Invoke ([in] IMFAsyncResult *pAsyncResult);
+ }
+-
+-[
+-    object,
+-    uuid(a27003d0-2354-4f2a-8d6a-ab7cff15437e),
+-]
+-interface IMFRemoteAsyncCallback : IUnknown
+-{
+-    HRESULT Invoke([in] HRESULT hr, [in] IUnknown *pRemoteResult);
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
++[object, uuid (c7a4dca1-f5f0-47b6-b92b-bf0106d25791), local]
++interface IMFAsyncCallbackLogging : IMFAsyncCallback {
++  void *GetObjectPointer ();
++  DWORD GetObjectTag ();
+ }
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
++cpp_quote("#define MFASYNC_FAST_IO_PROCESSING_CALLBACK 0x00000001")
++cpp_quote("#define MFASYNC_SIGNAL_CALLBACK 0x00000002")
++cpp_quote("#define MFASYNC_BLOCKING_CALLBACK 0x00000004")
++cpp_quote("#define MFASYNC_REPLY_CALLBACK 0x00000008")
++cpp_quote("#define MFASYNC_LOCALIZE_REMOTE_CALLBACK 0x00000010")
++cpp_quote("")
++cpp_quote("#define MFASYNC_CALLBACK_QUEUE_UNDEFINED 0x00000000")
++cpp_quote("#define MFASYNC_CALLBACK_QUEUE_STANDARD 0x00000001")
++cpp_quote("#define MFASYNC_CALLBACK_QUEUE_RT 0x00000002")
++cpp_quote("#define MFASYNC_CALLBACK_QUEUE_IO 0x00000003")
++cpp_quote("#define MFASYNC_CALLBACK_QUEUE_TIMER 0x00000004")
++cpp_quote("#define MFASYNC_CALLBACK_QUEUE_MULTITHREADED 0x00000005")
++cpp_quote("#define MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION 0x00000007")
++cpp_quote("#define MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK 0xFFFF0000")
++cpp_quote("#define MFASYNC_CALLBACK_QUEUE_ALL 0xFFFFFFFF")
++
++cpp_quote("")
++enum {
++  MEUnknown = 0,
++  MEError = 1,
++  MEExtendedType = 2,
++  MENonFatalError = 3,
++  MEGenericV1Anchor = MENonFatalError,
++  MESessionUnknown = 100,
++  MESessionTopologySet = 101,
++  MESessionTopologiesCleared = 102,
++  MESessionStarted = 103,
++  MESessionPaused = 104,
++  MESessionStopped = 105,
++  MESessionClosed = 106,
++  MESessionEnded = 107,
++  MESessionRateChanged = 108,
++  MESessionScrubSampleComplete = 109,
++  MESessionCapabilitiesChanged = 110,
++  MESessionTopologyStatus = 111,
++  MESessionNotifyPresentationTime = 112,
++  MENewPresentation = 113,
++  MELicenseAcquisitionStart = 114,
++  MELicenseAcquisitionCompleted = 115,
++  MEIndividualizationStart = 116,
++  MEIndividualizationCompleted = 117,
++  MEEnablerProgress = 118,
++  MEEnablerCompleted = 119,
++  MEPolicyError = 120,
++  MEPolicyReport = 121,
++  MEBufferingStarted = 122,
++  MEBufferingStopped = 123,
++  MEConnectStart = 124,
++  MEConnectEnd = 125,
++  MEReconnectStart = 126,
++  MEReconnectEnd = 127,
++  MERendererEvent = 128,
++  MESessionStreamSinkFormatChanged = 129,
++  MESessionV1Anchor = MESessionStreamSinkFormatChanged,
++  MESourceUnknown = 200,
++  MESourceStarted = 201,
++  MEStreamStarted = 202,
++  MESourceSeeked = 203,
++  MEStreamSeeked = 204,
++  MENewStream = 205,
++  MEUpdatedStream = 206,
++  MESourceStopped = 207,
++  MEStreamStopped = 208,
++  MESourcePaused = 209,
++  MEStreamPaused = 210,
++  MEEndOfPresentation = 211,
++  MEEndOfStream = 212,
++  MEMediaSample = 213,
++  MEStreamTick = 214,
++  MEStreamThinMode = 215,
++  MEStreamFormatChanged = 216,
++  MESourceRateChanged = 217,
++  MEEndOfPresentationSegment = 218,
++  MESourceCharacteristicsChanged = 219,
++  MESourceRateChangeRequested = 220,
++  MESourceMetadataChanged = 221,
++  MESequencerSourceTopologyUpdated = 222,
++  MESourceV1Anchor = MESequencerSourceTopologyUpdated,
++  MESinkUnknown = 300,
++  MEStreamSinkStarted = 301,
++  MEStreamSinkStopped = 302,
++  MEStreamSinkPaused = 303,
++  MEStreamSinkRateChanged = 304,
++  MEStreamSinkRequestSample = 305,
++  MEStreamSinkMarker = 306,
++  MEStreamSinkPrerolled = 307,
++  MEStreamSinkScrubSampleComplete = 308,
++  MEStreamSinkFormatChanged = 309,
++  MEStreamSinkDeviceChanged = 310,
++  MEQualityNotify = 311,
++  MESinkInvalidated = 312,
++  MEAudioSessionNameChanged = 313,
++  MEAudioSessionVolumeChanged = 314,
++  MEAudioSessionDeviceRemoved = 315,
++  MEAudioSessionServerShutdown = 316,
++  MEAudioSessionGroupingParamChanged = 317,
++  MEAudioSessionIconChanged = 318,
++  MEAudioSessionFormatChanged = 319,
++  MEAudioSessionDisconnected = 320,
++  MEAudioSessionExclusiveModeOverride = 321,
++  MESinkV1Anchor = MEAudioSessionExclusiveModeOverride,
++#if WINVER >= 0x0602
++  MECaptureAudioSessionVolumeChanged = 322,
++  MECaptureAudioSessionDeviceRemoved = 323,
++  MECaptureAudioSessionFormatChanged = 324,
++  MECaptureAudioSessionDisconnected = 325,
++  MECaptureAudioSessionExclusiveModeOverride = 326,
++  MECaptureAudioSessionServerShutdown = 327,
++  MESinkV2Anchor = MECaptureAudioSessionServerShutdown,
++#endif
++  METrustUnknown = 400,
++  MEPolicyChanged = 401,
++  MEContentProtectionMessage = 402,
++  MEPolicySet = 403,
++  METrustV1Anchor = MEPolicySet,
++  MEWMDRMLicenseBackupCompleted = 500,
++  MEWMDRMLicenseBackupProgress = 501,
++  MEWMDRMLicenseRestoreCompleted = 502,
++  MEWMDRMLicenseRestoreProgress = 503,
++  MEWMDRMLicenseAcquisitionCompleted = 506,
++  MEWMDRMIndividualizationCompleted = 508,
++  MEWMDRMIndividualizationProgress = 513,
++  MEWMDRMProximityCompleted = 514,
++  MEWMDRMLicenseStoreCleaned = 515,
++  MEWMDRMRevocationDownloadCompleted = 516,
++  MEWMDRMV1Anchor = MEWMDRMRevocationDownloadCompleted,
++#if WINVER >= 0x0601
++  METransformUnknown = 600,
++  METransformNeedInput,
++  METransformHaveOutput,
++  METransformDrainComplete,
++  METransformMarker,
++#endif
++#if WINVER >= 0x0602
++  MEByteStreamCharacteristicsChanged = 700,
++  MEVideoCaptureDeviceRemoved = 800,
++  MEVideoCaptureDevicePreempted = 801,
++#endif
++  MEReservedMax = 10000
++};
+ 
+-cpp_quote("#define MFASYNC_FAST_IO_PROCESSING_CALLBACK  0x0001")
+-cpp_quote("#define MFASYNC_SIGNAL_CALLBACK              0x0002" )
+-
+-cpp_quote("#define MFASYNC_CALLBACK_QUEUE_UNDEFINED      0x00000000")
+-cpp_quote("#define MFASYNC_CALLBACK_QUEUE_STANDARD       0x00000001")
+-cpp_quote("#define MFASYNC_CALLBACK_QUEUE_RT             0x00000002")
+-cpp_quote("#define MFASYNC_CALLBACK_QUEUE_IO             0x00000003")
+-cpp_quote("#define MFASYNC_CALLBACK_QUEUE_TIMER          0x00000004")
+-cpp_quote("#define MFASYNC_CALLBACK_QUEUE_LONG_FUNCTION  0x00000007")
+-cpp_quote("#define MFASYNC_CALLBACK_QUEUE_PRIVATE_MASK   0xffff0000")
+-cpp_quote("#define MFASYNC_CALLBACK_QUEUE_ALL            0xffffffff")
+-
++cpp_quote("")
+ typedef DWORD MediaEventType;
+ 
+-[
+-    object,
+-    uuid(df598932-f10c-4e39-bba2-c308f101daa3)
+-]
+-interface IMFMediaEvent : IMFAttributes
+-{
+-    HRESULT GetType([out] MediaEventType *pmet);
+-    HRESULT GetExtendedType([out] GUID *pguidExtendedType);
+-    HRESULT GetStatus([out] HRESULT *phrStatus);
+-    HRESULT GetValue([out] PROPVARIANT *pvValue);
++cpp_quote("")
++[object, uuid (DF598932-F10C-4e39-BBA2-C308F101DAA3)]
++interface IMFMediaEvent : IMFAttributes {
++  HRESULT GetType ([out] MediaEventType *pmet);
++  HRESULT GetExtendedType ([out] GUID *pguidExtendedType);
++  HRESULT GetStatus ([out] HRESULT *phrStatus);
++  HRESULT GetValue ([out] PROPVARIANT *pvValue);
+ }
+ 
+-[
+-    object,
+-    uuid(2cd0bd52-bcd5-4b89-b62c-eadc0c031e7d)
+-]
+-interface IMFMediaEventGenerator : IUnknown
+-{
+-    HRESULT GetEvent([in] DWORD dwFlags, [out] IMFMediaEvent **ppEvent);
+-
+-    [local] HRESULT BeginGetEvent([in] IMFAsyncCallback *pCallback, [in] IUnknown *punkState);
+-    [call_as(BeginGetEvent)] HRESULT RemoteBeginGetEvent([in] IMFRemoteAsyncCallback *pCallback);
+-
+-    [local] HRESULT EndGetEvent([in] IMFAsyncResult *pResult, [out] IMFMediaEvent **ppEvent);
+-    [call_as(EndGetEvent)] HRESULT RemoteEndGetEvent([in] IUnknown *pResult, [out] DWORD *pcbEvent,
+-                                   [out, size_is(,*pcbEvent)] BYTE **ppbEvent);
+-
+-    HRESULT QueueEvent([in] MediaEventType met, [in] REFGUID guidExtendedType, [in] HRESULT hrStatus,
+-            [in, unique] const PROPVARIANT *pvValue);
++cpp_quote("")
++cpp_quote("#define MF_EVENT_FLAG_NO_WAIT 0x00000001")
++
++cpp_quote("")
++interface IMFRemoteAsyncCallback;
++
++cpp_quote("")
++[object, uuid (2cd0bd52-BCD5-4b89-B62C-EADC0C031E7D)]
++interface IMFMediaEventGenerator : IUnknown {
++  HRESULT GetEvent ([in] DWORD dwFlags,[out] IMFMediaEvent **ppEvent);
++  [local] HRESULT BeginGetEvent ([in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
++  [call_as (BeginGetEvent)] HRESULT RemoteBeginGetEvent ([in] IMFRemoteAsyncCallback *pCallback);
++  [local] HRESULT EndGetEvent ([in] IMFAsyncResult *pResult,[out] IMFMediaEvent **ppEvent);
++  [call_as (EndGetEvent)] HRESULT RemoteEndGetEvent ([in] IUnknown *pResult,[out] DWORD *pcbEvent,[out, size_is (,*pcbEvent)] BYTE **ppbEvent);
++  HRESULT QueueEvent ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] const PROPVARIANT *pvValue);
+ }
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
++[object, uuid (a27003d0-2354-4f2a-8d6a-ab7cff15437e),]
++interface IMFRemoteAsyncCallback : IUnknown {
++  HRESULT Invoke ([in] HRESULT hr,[in] IUnknown *pRemoteResult);
++};
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
+ 
++cpp_quote("")
+ typedef enum _MFBYTESTREAM_SEEK_ORIGIN {
+-    msoBegin,
+-    msoCurrent
++  msoBegin,
++  msoCurrent
+ } MFBYTESTREAM_SEEK_ORIGIN;
+ 
+-[
+-    object,
+-    uuid(ad4c1b00-4bf7-422f-9175-756693d9130d),
+-]
+-interface IMFByteStream : IUnknown
+-{
+-    HRESULT GetCapabilities([out] DWORD *pdwCapabilities);
+-    HRESULT GetLength([out] QWORD *pqwLength);
+-    HRESULT SetLength([in] QWORD qwLength);
+-    HRESULT GetCurrentPosition([out] QWORD *pqwPosition);
+-    HRESULT SetCurrentPosition([in] QWORD qwPosition);
+-    HRESULT IsEndOfStream([out] BOOL *pfEndOfStream);
+-
+-    [local] HRESULT Read([in] BYTE* pb, [in] ULONG cb, [out] ULONG *pcbRead);
+-    [local] HRESULT BeginRead([in] BYTE *pb, [in] ULONG cb, [in] IMFAsyncCallback *pCallback, [in] IUnknown *punkState);
+-    [local] HRESULT EndRead([in] IMFAsyncResult *pResult, [out] ULONG *pcbRead);
+-    [local] HRESULT Write([in] const BYTE *pb, [in] ULONG cb, [out] ULONG *pcbWritten);
+-    [local] HRESULT BeginWrite([in] const BYTE *pb, [in] ULONG cb, [in] IMFAsyncCallback *pCallback, [in] IUnknown *punkState);
+-    [local] HRESULT EndWrite([in] IMFAsyncResult *pResult, [out] ULONG *pcbWritten);
+-    [local] HRESULT Seek([in] MFBYTESTREAM_SEEK_ORIGIN SeekOrigin, [in] LONGLONG llSeekOffset, [in] DWORD dwSeekFlags,
+-                    [out] QWORD *pqwCurrentPosition);
+-
+-    HRESULT Flush();
+-    HRESULT Close();
+-}
++cpp_quote("")
++[object, uuid (ad4c1b00-4bf7-422f-9175-756693d9130d),]
++interface IMFByteStream : IUnknown {
++  HRESULT GetCapabilities ([out] DWORD *pdwCapabilities);
++  HRESULT GetLength ([out] QWORD *pqwLength);
++  HRESULT SetLength ([in] QWORD qwLength);
++  HRESULT GetCurrentPosition ([out] QWORD *pqwPosition);
++  HRESULT SetCurrentPosition ([in] QWORD qwPosition);
++  HRESULT IsEndOfStream ([out] WINBOOL *pfEndOfStream);
++  HRESULT Read ([out, size_is (cb)] BYTE *pb,[in] ULONG cb,[out] ULONG *pcbRead);
++  [local] HRESULT BeginRead ([out] BYTE *pb,[in] ULONG cb,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
++  [call_as (BeginRead)] HRESULT RemoteBeginRead ([in] ULONG cb,[in] IMFRemoteAsyncCallback *pCallback);
++  [local] HRESULT EndRead ([in] IMFAsyncResult *pResult,[out] ULONG *pcbRead);
++  [call_as (EndRead)] HRESULT RemoteEndRead ([in] IUnknown *punkResult,[out, size_is (cb)] BYTE *pb,[in] ULONG cb,[out] ULONG *pcbRead);
++  HRESULT Write ([in, size_is (cb)] const BYTE *pb,[in] ULONG cb,[out] ULONG *pcbWritten);
++  [local] HRESULT BeginWrite ([in] const BYTE *pb,[in] ULONG cb,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
++  [call_as (BeginWrite)] HRESULT RemoteBeginWrite ([in, size_is (cb)] const BYTE *pb,[in] ULONG cb,[in] IMFRemoteAsyncCallback *pCallback);
++  [local] HRESULT EndWrite ([in] IMFAsyncResult *pResult,[out] ULONG *pcbWritten);
++  [call_as (EndWrite)] HRESULT RemoteEndWrite ([in] IUnknown *punkResult,[out] ULONG *pcbWritten);
++  HRESULT Seek ([in] MFBYTESTREAM_SEEK_ORIGIN SeekOrigin,[in] LONGLONG llSeekOffset,[in] DWORD dwSeekFlags,[out] QWORD *pqwCurrentPosition);
++  HRESULT Flush ();
++  HRESULT Close ();
++};
++
++cpp_quote("")
++cpp_quote("#define MFBYTESTREAM_IS_READABLE 0x00000001")
++cpp_quote("#define MFBYTESTREAM_IS_WRITABLE 0x00000002")
++cpp_quote("#define MFBYTESTREAM_IS_SEEKABLE 0x00000004")
++cpp_quote("#define MFBYTESTREAM_IS_REMOTE 0x00000008")
++cpp_quote("#define MFBYTESTREAM_IS_DIRECTORY 0x00000080")
++cpp_quote("#define MFBYTESTREAM_HAS_SLOW_SEEK 0x00000100")
++cpp_quote("#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED 0x00000200")
++cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7")
++cpp_quote("#define MFBYTESTREAM_SHARE_WRITE 0x00000400")
++cpp_quote("#endif")
++cpp_quote("#if WINVER >= _WIN32_WINNT_WIN8")
++cpp_quote("#define MFBYTESTREAM_DOES_NOT_USE_NETWORK 0x00000800")
++cpp_quote("#endif")
++
++cpp_quote("")
++cpp_quote("#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO 0x00000001")
++cpp_quote("")
++cpp_quote("EXTERN_GUID( MF_BYTESTREAM_ORIGIN_NAME, 0xfc358288, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
++cpp_quote("EXTERN_GUID( MF_BYTESTREAM_CONTENT_TYPE, 0xfc358289, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
++cpp_quote("EXTERN_GUID( MF_BYTESTREAM_DURATION, 0xfc35828a, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
++cpp_quote("EXTERN_GUID( MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
++cpp_quote("#if (WINVER >= _WIN32_WINNT_WIN7)")
++cpp_quote("EXTERN_GUID( MF_BYTESTREAM_IFO_FILE_URI, 0xfc35828c, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
++cpp_quote("EXTERN_GUID( MF_BYTESTREAM_DLNA_PROFILE_ID, 0xfc35828d, 0x3cb6, 0x460c, 0xa4, 0x24, 0xb6, 0x68, 0x12, 0x60, 0x37, 0x5a);")
++cpp_quote("EXTERN_GUID( MF_BYTESTREAM_EFFECTIVE_URL, 0x9afa0209, 0x89d1, 0x42af, 0x84, 0x56, 0x1d, 0xe6, 0xb5, 0x62, 0xd6, 0x91);")
++cpp_quote("EXTERN_GUID( MF_BYTESTREAM_TRANSCODED, 0xb6c5c282, 0x4dc9, 0x4db9, 0xab, 0x48, 0xcf, 0x3b, 0x6d, 0x8b, 0xc5, 0xe0 );")
++cpp_quote("#endif")
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
++cpp_quote("EXTERN_GUID(CLSID_MFByteStreamProxyClassFactory, 0x770e8e77, 0x4916, 0x441c, 0xa9, 0xa7, 0xb3, 0x42, 0xd0, 0xee, 0xbc, 0x71 );")
++
++cpp_quote("")
++[object, uuid (a6b43f84-5c0a-42e8-a44d-b1857a76992f)]
++interface IMFByteStreamProxyClassFactory : IUnknown {
++  HRESULT CreateByteStreamProxy ([in] IMFByteStream *pByteStream,[in, unique] IMFAttributes *pAttributes,[in] REFIID riid,[out, iid_is (riid)] LPVOID *ppvObject);
++};
+ 
+-cpp_quote("#define MFBYTESTREAM_IS_READABLE                0x00000001")
+-cpp_quote("#define MFBYTESTREAM_IS_WRITABLE                0x00000002")
+-cpp_quote("#define MFBYTESTREAM_IS_SEEKABLE                0x00000004")
+-cpp_quote("#define MFBYTESTREAM_IS_REMOTE                  0x00000008")
+-cpp_quote("#define MFBYTESTREAM_IS_DIRECTORY               0x00000080")
+-cpp_quote("#define MFBYTESTREAM_HAS_SLOW_SEEK              0x00000100")
+-cpp_quote("#define MFBYTESTREAM_IS_PARTIALLY_DOWNLOADED    0x00000200")
+-cpp_quote("#define MFBYTESTREAM_SHARE_WRITE                0x00000400")
+-
+-cpp_quote("#define MFBYTESTREAM_SEEK_FLAG_CANCEL_PENDING_IO  0x00000001")
+-
+-cpp_quote("EXTERN_GUID(MF_BYTESTREAM_ORIGIN_NAME,        0xfc358288,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);")
+-cpp_quote("EXTERN_GUID(MF_BYTESTREAM_CONTENT_TYPE,       0xfc358289,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);")
+-cpp_quote("EXTERN_GUID(MF_BYTESTREAM_DURATION,           0xfc35828a,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);")
+-cpp_quote("EXTERN_GUID(MF_BYTESTREAM_LAST_MODIFIED_TIME, 0xfc35828b,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);")
+-cpp_quote("EXTERN_GUID(MF_BYTESTREAM_IFO_FILE_URI,       0xfc35828c,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);")
+-cpp_quote("EXTERN_GUID(MF_BYTESTREAM_DLNA_PROFILE_ID,    0xfc35828d,0x3cb6,0x460c,0xa4,0x24,0xb6,0x68,0x12,0x60,0x37,0x5a);")
+-
+-typedef enum MF_FILE_ACCESSMODE {
+-    MF_ACCESSMODE_READ      = 1,
+-    MF_ACCESSMODE_WRITE     = 2,
+-    MF_ACCESSMODE_READWRITE = 3 
++cpp_quote("")
++typedef enum {
++  MF_ACCESSMODE_READ = 1,
++  MF_ACCESSMODE_WRITE = 2,
++  MF_ACCESSMODE_READWRITE = 3
+ } MF_FILE_ACCESSMODE;
+ 
+-typedef enum  {
+-    MF_OPENMODE_FAIL_IF_NOT_EXIST   = 0,
+-    MF_OPENMODE_FAIL_IF_EXIST       = 1,
+-    MF_OPENMODE_RESET_IF_EXIST      = 2,
+-    MF_OPENMODE_APPEND_IF_EXIST     = 3,
+-    MF_OPENMODE_DELETE_IF_EXIST     = 4 
++cpp_quote("")
++typedef enum {
++  MF_OPENMODE_FAIL_IF_NOT_EXIST = 0,
++  MF_OPENMODE_FAIL_IF_EXIST = 1,
++  MF_OPENMODE_RESET_IF_EXIST = 2,
++  MF_OPENMODE_APPEND_IF_EXIST = 3,
++  MF_OPENMODE_DELETE_IF_EXIST = 4
+ } MF_FILE_OPENMODE;
+ 
+-typedef enum  {
+-    MF_FILEFLAGS_NONE                  = 0x00000000,
+-    MF_FILEFLAGS_NOBUFFERING           = 0x00000001,
+-    MF_FILEFLAGS_ALLOW_WRITE_SHARING   = 0x00000002 
++cpp_quote("")
++typedef enum {
++  MF_FILEFLAGS_NONE = 0x00000000,
++  MF_FILEFLAGS_NOBUFFERING = 0x00000001
++#if WINVER >= 0x0601
++  , MF_FILEFLAGS_ALLOW_WRITE_SHARING = 0x00000002
++#endif
+ } MF_FILE_FLAGS;
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
++[object, uuid (8feed468-6f7e-440d-869a-49bdd283ad0d),]
++interface IMFSampleOutputStream : IUnknown {
++  HRESULT BeginWriteSample ([in] IMFSample *pSample,[in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
++  HRESULT EndWriteSample ([in] IMFAsyncResult *pResult);
++  HRESULT Close ();
++};
+ 
+-[
+-    object,
+-    uuid(5bc8a76b-869a-46a3-9b03-fa218a66aebe)
+-]
+-interface IMFCollection : IUnknown
+-{
+-    HRESULT GetElementCount([out] DWORD *pcElements);
+-    HRESULT GetElement([in] DWORD dwElementIndex, [out] IUnknown **ppUnkElement);
+-    HRESULT AddElement([in] IUnknown *pUnkElement);
+-    HRESULT RemoveElement([in] DWORD dwElementIndex, [out] IUnknown **ppUnkElement);
+-    HRESULT InsertElementAt([in] DWORD dwIndex, [in] IUnknown *pUnknown);
+-    HRESULT RemoveAllElements();
++cpp_quote("")
++[object, uuid (5bc8a76b-869a-46a3-9b03-FA218A66AEBE)]
++interface IMFCollection : IUnknown {
++  HRESULT GetElementCount ([out] DWORD *pcElements);
++  HRESULT GetElement ([in] DWORD dwElementIndex,[out] IUnknown **ppUnkElement);
++  HRESULT AddElement ([in] IUnknown *pUnkElement);
++  HRESULT RemoveElement ([in] DWORD dwElementIndex,[out] IUnknown **ppUnkElement);
++  HRESULT InsertElementAt ([in] DWORD dwIndex,[in]IUnknown *pUnknown);
++  HRESULT RemoveAllElements ();
+ }
+ 
+-[
+-    object,
+-    uuid(7fee9e9a-4a89-47a6-899c-b6a53a70fb67),
+-    pointer_default(unique)
+-]
+-interface IMFActivate : IMFAttributes
+-{
+-    HRESULT ActivateObject([in] REFIID riid, [out, iid_is(riid), retval] void ** ppv);
+-    HRESULT ShutdownObject();
+-    HRESULT DetachObject();
++cpp_quote("")
++[object, uuid (36f846fc-2256-48b6-b58e-e2b638316581), local]
++interface IMFMediaEventQueue : IUnknown {
++  HRESULT GetEvent ([in] DWORD dwFlags,[out] IMFMediaEvent **ppEvent);
++  HRESULT BeginGetEvent ([in] IMFAsyncCallback *pCallback,[in] IUnknown *punkState);
++  HRESULT EndGetEvent ([in] IMFAsyncResult *pResult,[out] IMFMediaEvent **ppEvent);
++  HRESULT QueueEvent ([in] IMFMediaEvent *pEvent);
++  HRESULT QueueEventParamVar ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] const PROPVARIANT *pvValue);
++  HRESULT QueueEventParamUnk ([in] MediaEventType met,[in] REFGUID guidExtendedType,[in] HRESULT hrStatus,[in, unique] IUnknown *pUnk);
++  HRESULT Shutdown ();
+ }
+ 
++cpp_quote("")
++[object, uuid (7fee9e9a-4a89-47a6-899c-B6A53A70FB67), helpstring ("IMFActivate Interface"), pointer_default (unique)]
++interface IMFActivate : IMFAttributes {
++  HRESULT ActivateObject ([in] REFIID riid,[out, iid_is (riid), retval] void **ppv);
++  HRESULT ShutdownObject ();
++  HRESULT DetachObject ();
++};
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINVER >= _WIN32_WINNT_WIN7")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+ typedef enum _MF_Plugin_Type {
+-    MF_Plugin_Type_MFT           = 0,
+-    MF_Plugin_Type_MediaSource   = 1
++  MF_Plugin_Type_MFT = 0,
++  MF_Plugin_Type_MediaSource = 1,
++  MF_Plugin_Type_MFT_MatchOutputType = 2,
++  MF_Plugin_Type_Other = (DWORD)-1,
+ } MF_Plugin_Type;
+ 
+-[
+-    object,
+-    local,
+-    uuid(5c6c44bf-1db6-435b-9249-e8cd10fdec96),
+-    pointer_default(unique)
+-]
+-interface IMFPluginControl : IUnknown
+-{
+-   HRESULT GetPreferredClsid(DWORD pluginType, LPCWSTR selector, CLSID *clsid);
+-   HRESULT GetPreferredClsidByIndex(DWORD pluginType, DWORD index, LPWSTR *selector, CLSID *clsid);
+-   HRESULT SetPreferredClsid(DWORD pluginType, LPCWSTR selector, const CLSID *clsid);
+-   HRESULT IsDisabled(DWORD pluginType, REFCLSID clsid);
+-   HRESULT GetDisabledByIndex(DWORD pluginType, DWORD index, CLSID *clsid);
+-   HRESULT SetDisabled(DWORD pluginType, REFCLSID clsid, BOOL disabled);
++cpp_quote("")
++[object, local, uuid (5c6c44bf-1db6-435b-9249-e8cd10fdec96), helpstring ("IMFPluginControl Interface"), pointer_default (unique)]
++interface IMFPluginControl : IUnknown {
++  HRESULT GetPreferredClsid (DWORD pluginType, LPCWSTR selector, CLSID *clsid);
++  HRESULT GetPreferredClsidByIndex (DWORD pluginType, DWORD index, LPWSTR *selector, CLSID *clsid);
++  HRESULT SetPreferredClsid (DWORD pluginType, LPCWSTR selector, const CLSID *clsid);
++  HRESULT IsDisabled (DWORD pluginType, REFCLSID clsid);
++  HRESULT GetDisabledByIndex (DWORD pluginType, DWORD index, CLSID *clsid);
++  HRESULT SetDisabled (DWORD pluginType, REFCLSID clsid, WINBOOL disabled);
++}
++
++cpp_quote("")
++typedef enum MF_PLUGIN_CONTROL_POLICY {
++  MF_PLUGIN_CONTROL_POLICY_USE_ALL_PLUGINS = 0,
++  MF_PLUGIN_CONTROL_POLICY_USE_APPROVED_PLUGINS = 1,
++  MF_PLUGIN_CONTROL_POLICY_USE_WEB_PLUGINS = 2
++} MF_PLUGIN_CONTROL_POLICY;
++
++cpp_quote("")
++[object, local, uuid (C6982083-3ddc-45cb-AF5E-0f7a8ce4de77), helpstring ("IMFPluginControl2 Interface"), pointer_default (unique)]
++interface IMFPluginControl2 : IMFPluginControl {
++  HRESULT SetPolicy ([in] MF_PLUGIN_CONTROL_POLICY policy);
++}
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)")
++[object, local, uuid (eb533d5d-2db6-40f8-97a9-494692014f07), helpstring ("IMFDXGIDeviceManager Interface"), pointer_default (unique)]
++interface IMFDXGIDeviceManager : IUnknown {
++  HRESULT CloseDeviceHandle (HANDLE hDevice);
++  HRESULT GetVideoService (HANDLE hDevice, REFIID riid, void **ppService);
++  HRESULT LockDevice (HANDLE hDevice, REFIID riid, void **ppUnkDevice, WINBOOL fBlock);
++  HRESULT OpenDeviceHandle (HANDLE *phDevice);
++  HRESULT ResetDevice (IUnknown *pUnkDevice, UINT resetToken);
++  HRESULT TestDevice (HANDLE hDevice);
++  HRESULT UnlockDevice (HANDLE hDevice, WINBOOL fSaveState);
+ }
++cpp_quote("#endif")
++cpp_quote("")
++cpp_quote("#endif")
+-- 
+2.1.0
+
diff --git a/0003-Updated-imported-headers-to-current-Wine-version.patch b/0003-Updated-imported-headers-to-current-Wine-version.patch
new file mode 100644
index 0000000..74fceb3
--- /dev/null
+++ b/0003-Updated-imported-headers-to-current-Wine-version.patch
@@ -0,0 +1,193 @@
+From 1f1867e59a5bf7b7f7d292e2123a173c5bb460aa Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Tue, 25 Feb 2014 11:57:58 +0000
+Subject: [PATCH 03/25] Updated imported headers to current Wine version.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6499 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/direct-x/include/d3d10_1.h     |  2 +
+ mingw-w64-headers/direct-x/include/d3d10_1.idl   |  3 ++
+ mingw-w64-headers/direct-x/include/d3d9.h        |  1 +
+ mingw-w64-headers/direct-x/include/d3dx9core.h   |  2 +
+ mingw-w64-headers/direct-x/include/d3dx9shader.h | 51 ++++++++++++++++++++++++
+ mingw-w64-headers/direct-x/include/dxgi.h        |  2 +
+ mingw-w64-headers/direct-x/include/dxgi.idl      |  1 +
+ 7 files changed, 62 insertions(+)
+
+diff --git a/mingw-w64-headers/direct-x/include/d3d10_1.h b/mingw-w64-headers/direct-x/include/d3d10_1.h
+index 9437787..46b4c52 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10_1.h
++++ b/mingw-w64-headers/direct-x/include/d3d10_1.h
+@@ -1416,6 +1416,8 @@ void __RPC_STUB ID3D10Device1_GetFeatureLevel_Stub(
+ 
+ #define D3D10_1_SDK_VERSION (0x20)
+ 
++HRESULT WINAPI D3D10CreateDevice1(IDXGIAdapter*,D3D10_DRIVER_TYPE,
++    HMODULE,UINT,D3D10_FEATURE_LEVEL1,UINT,ID3D10Device1**);
+ /* Begin additional prototypes for all interfaces */
+ 
+ 
+diff --git a/mingw-w64-headers/direct-x/include/d3d10_1.idl b/mingw-w64-headers/direct-x/include/d3d10_1.idl
+index 3b6e624..bfae754 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10_1.idl
++++ b/mingw-w64-headers/direct-x/include/d3d10_1.idl
+@@ -124,3 +124,6 @@ interface ID3D10Device1 : ID3D10Device
+ }
+ 
+ const UINT D3D10_1_SDK_VERSION = 0x20;
++
++cpp_quote("HRESULT WINAPI D3D10CreateDevice1(IDXGIAdapter*,D3D10_DRIVER_TYPE,")
++cpp_quote("    HMODULE,UINT,D3D10_FEATURE_LEVEL1,UINT,ID3D10Device1**);")
+diff --git a/mingw-w64-headers/direct-x/include/d3d9.h b/mingw-w64-headers/direct-x/include/d3d9.h
+index ec20200..ed6cadd 100644
+--- a/mingw-w64-headers/direct-x/include/d3d9.h
++++ b/mingw-w64-headers/direct-x/include/d3d9.h
+@@ -2098,6 +2098,7 @@ void        WINAPI D3DPERF_SetRegion(D3DCOLOR,LPCWSTR);
+ 
+ /* Define the main entrypoint as well */
+ IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion);
++HRESULT WINAPI Direct3DCreate9Ex(UINT SDKVersion, IDirect3D9Ex**);
+ 
+ #ifdef __cplusplus
+ } /* extern "C" */
+diff --git a/mingw-w64-headers/direct-x/include/d3dx9core.h b/mingw-w64-headers/direct-x/include/d3dx9core.h
+index 5a0ca4b..477642f 100644
+--- a/mingw-w64-headers/direct-x/include/d3dx9core.h
++++ b/mingw-w64-headers/direct-x/include/d3dx9core.h
+@@ -29,7 +29,9 @@
+ /* D3DX_VERSION will be completely ignored since we are
+     implementing all dlls from d3dx9_24 to d3dx9_36 */
+ #define D3DX_VERSION 0x0902
++#ifndef D3DX_SDK_VERSION
+ #define D3DX_SDK_VERSION 36
++#endif
+ #define D3DXSPRITE_DONOTSAVESTATE          0x00000001
+ #define D3DXSPRITE_DONOTMODIFY_RENDERSTATE 0x00000002
+ #define D3DXSPRITE_OBJECTSPACE             0x00000004
+diff --git a/mingw-w64-headers/direct-x/include/d3dx9shader.h b/mingw-w64-headers/direct-x/include/d3dx9shader.h
+index ee7786d..6dd9f62 100644
+--- a/mingw-w64-headers/direct-x/include/d3dx9shader.h
++++ b/mingw-w64-headers/direct-x/include/d3dx9shader.h
+@@ -2,6 +2,7 @@
+ #undef INTERFACE
+ /*
+  * Copyright 2008 Luis Busquets
++ * Copyright 2014 Kai Tietz
+  *
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+@@ -44,7 +45,10 @@
+ 
+ #define D3DXSHADER_USE_LEGACY_D3DX9_31_DLL        0x10000
+ 
++#define D3DXCONSTTABLE_LARGEADDRESSAWARE          0x20000
++
+ typedef const char *D3DXHANDLE;
++typedef D3DXHANDLE *LPD3DXHANDLE;
+ 
+ typedef enum _D3DXREGISTER_SET
+ {
+@@ -114,7 +118,11 @@ typedef struct _D3DXCONSTANT_DESC
+     const void *DefaultValue;
+ } D3DXCONSTANT_DESC, *LPD3DXCONSTANT_DESC;
+ 
++#if D3DX_SDK_VERSION < 43
+ DEFINE_GUID(IID_ID3DXConstantTable, 0x9dca3190, 0x38b9, 0x4fc3, 0x92, 0xe3, 0x39, 0xc6, 0xdd, 0xfb, 0x35, 0x8b);
++#else
++DEFINE_GUID(IID_ID3DXConstantTable, 0xab3c758f, 0x093e, 0x4356, 0xb7, 0x62, 0x4d, 0xb1, 0x8f, 0x1b, 0x3a, 0x01);
++#endif
+ 
+ #undef INTERFACE
+ #define INTERFACE ID3DXConstantTable
+@@ -230,6 +238,42 @@ DECLARE_INTERFACE_(ID3DXConstantTable, ID3DXBuffer)
+ 
+ typedef struct ID3DXConstantTable *LPD3DXCONSTANTTABLE;
+ 
++typedef interface ID3DXTextureShader *LPD3DXTEXTURESHADER;
++
++DEFINE_GUID(IID_ID3DXTextureShader, 0x3e3d67f8, 0xaa7a, 0x405d, 0xa8, 0x57, 0xba, 0x1, 0xd4, 0x75, 0x84, 0x26);
++
++#define INTERFACE ID3DXTextureShader
++DECLARE_INTERFACE_(ID3DXTextureShader, IUnknown)
++{
++    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppv) PURE;
++    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
++    STDMETHOD_(ULONG, Release)(THIS) PURE;
++    STDMETHOD(GetFunction)(THIS_ struct ID3DXBuffer **ppFunction) PURE;
++    STDMETHOD(GetConstantBuffer)(THIS_ struct ID3DXBuffer **ppConstantBuffer) PURE;
++    STDMETHOD(GetDesc)(THIS_ D3DXCONSTANTTABLE_DESC *pDesc) PURE;
++    STDMETHOD(GetConstantDesc)(THIS_ D3DXHANDLE hConstant, D3DXCONSTANT_DESC *pConstantDesc, UINT *pCount) PURE;
++    STDMETHOD_(D3DXHANDLE, GetConstant)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
++    STDMETHOD_(D3DXHANDLE, GetConstantByName)(THIS_ D3DXHANDLE hConstant, const char *pName) PURE;
++    STDMETHOD_(D3DXHANDLE, GetConstantElement)(THIS_ D3DXHANDLE hConstant, UINT Index) PURE;
++    STDMETHOD(SetDefaults)(THIS) PURE;
++    STDMETHOD(SetValue)(THIS_ D3DXHANDLE hConstant, const void *pData, UINT Bytes) PURE;
++    STDMETHOD(SetBool)(THIS_ D3DXHANDLE hConstant, WINBOOL b) PURE;
++    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE hConstant, const WINBOOL *pb, UINT Count) PURE;
++    STDMETHOD(SetInt)(THIS_ D3DXHANDLE hConstant, INT n) PURE;
++    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE hConstant, const INT *pn, UINT Count) PURE;
++    STDMETHOD(SetFloat)(THIS_ D3DXHANDLE hConstant, FLOAT f) PURE;
++    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE hConstant, const FLOAT *pf, UINT Count) PURE;
++    STDMETHOD(SetVector)(THIS_ D3DXHANDLE hConstant, const D3DXVECTOR4 *pVector) PURE;
++    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE hConstant, const D3DXVECTOR4 *pVector, UINT Count) PURE;
++    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX *pMatrix) PURE;
++    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX *pMatrix, UINT Count) PURE;
++    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX **ppMatrix, UINT Count) PURE;
++    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX *pMatrix) PURE;
++    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX *pMatrix, UINT Count) PURE;
++    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE hConstant, const D3DXMATRIX **ppMatrix, UINT Count) PURE;
++};
++#undef INTERFACE
++
+ typedef struct _D3DXMACRO
+ {
+     const char *Name;
+@@ -293,6 +337,8 @@ HRESULT WINAPI D3DXCompileShader(const char *src_data, UINT data_len, const D3DX
+         ID3DXInclude *include, const char *function_name, const char *profile, DWORD flags,
+         ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
+ 
++HRESULT WINAPI D3DXDisassembleShader(const DWORD *pShader, WINBOOL EnableColorCode, const char *pComments, struct ID3DXBuffer **ppDisassembly);
++
+ HRESULT WINAPI D3DXCompileShaderFromFileA(const char *filename, const D3DXMACRO *defines,
+         ID3DXInclude *include, const char *entrypoint, const char *profile, DWORD flags,
+         ID3DXBuffer **shader, ID3DXBuffer **error_messages, ID3DXConstantTable **constant_table);
+@@ -328,6 +374,11 @@ HRESULT WINAPI D3DXGetShaderConstantTableEx(const DWORD *byte_code, DWORD flags,
+ 
+ HRESULT WINAPI D3DXGetShaderConstantTable(const DWORD *byte_code, ID3DXConstantTable **constant_table);
+ 
++HRESULT WINAPI D3DXGetShaderInputSemantics(const DWORD *pFunction, D3DXSEMANTIC *pSemantics, UINT *pCount);
++HRESULT WINAPI D3DXGetShaderOutputSemantics(const DWORD *pFunction, D3DXSEMANTIC *pSemantics, UINT *pCount);
++
++HRESULT WINAPI D3DXCreateTextureShader(const DWORD *pFunction, ID3DXTextureShader **ppTextureShader);
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/mingw-w64-headers/direct-x/include/dxgi.h b/mingw-w64-headers/direct-x/include/dxgi.h
+index eec52b8..94521c0 100644
+--- a/mingw-w64-headers/direct-x/include/dxgi.h
++++ b/mingw-w64-headers/direct-x/include/dxgi.h
+@@ -2086,6 +2086,8 @@ void __RPC_STUB IDXGIFactory_CreateSoftwareAdapter_Stub(
+ 
+ HRESULT __stdcall  CreateDXGIFactory(REFIID riid,void **factory);
+ 
++HRESULT __stdcall  CreateDXGIFactory1(REFIID riid,void **factory);
++
+ /*****************************************************************************
+  * IDXGIDevice interface
+  */
+diff --git a/mingw-w64-headers/direct-x/include/dxgi.idl b/mingw-w64-headers/direct-x/include/dxgi.idl
+index d87a72c..ea7f3d1 100644
+--- a/mingw-w64-headers/direct-x/include/dxgi.idl
++++ b/mingw-w64-headers/direct-x/include/dxgi.idl
+@@ -372,6 +372,7 @@ interface IDXGIFactory : IDXGIObject
+ }
+ 
+ [local] HRESULT __stdcall CreateDXGIFactory(REFIID riid, void **factory);
++[local] HRESULT __stdcall CreateDXGIFactory1(REFIID riid, void **factory);
+ 
+ [
+     object,
+-- 
+2.1.0
+
diff --git a/0004-Updated-headers-imported-from-Wine.patch b/0004-Updated-headers-imported-from-Wine.patch
new file mode 100644
index 0000000..56adf02
--- /dev/null
+++ b/0004-Updated-headers-imported-from-Wine.patch
@@ -0,0 +1,4056 @@
+From 12d18cf25ae2e5b0d5740daab52197268e0305f5 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Thu, 19 Sep 2013 11:26:04 +0000
+Subject: [PATCH 04/25] Updated headers imported from Wine
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6299 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/Makefile.am                      |    1 +
+ mingw-w64-headers/Makefile.in                      |    2 +
+ mingw-w64-headers/direct-x/include/d3d10.h         |   28 +-
+ mingw-w64-headers/direct-x/include/d3d10.idl       |   16 +-
+ mingw-w64-headers/direct-x/include/d3d10_1.h       |   12 +-
+ mingw-w64-headers/direct-x/include/d3d10_1shader.h |    8 +-
+ mingw-w64-headers/direct-x/include/d3d10effect.h   |  126 +-
+ mingw-w64-headers/direct-x/include/d3d10shader.h   |   34 +-
+ mingw-w64-headers/direct-x/include/d3d11.h         |    2 +-
+ mingw-w64-headers/direct-x/include/d3d11.idl       |    2 +-
+ .../direct-x/include/d3d11sdklayers.h              | 1952 ++++++++++++++++++++
+ .../direct-x/include/d3d11sdklayers.idl            | 1259 +++++++++++++
+ mingw-w64-headers/direct-x/include/d3d9.h          |   14 +-
+ mingw-w64-headers/direct-x/include/d3dcommon.h     |    5 +-
+ mingw-w64-headers/direct-x/include/d3dcommon.idl   |    6 +-
+ mingw-w64-headers/direct-x/include/dxgi.h          |    8 +
+ mingw-w64-headers/direct-x/include/dxgi.idl        |   10 +
+ 17 files changed, 3361 insertions(+), 124 deletions(-)
+ create mode 100644 mingw-w64-headers/direct-x/include/d3d11sdklayers.h
+ create mode 100644 mingw-w64-headers/direct-x/include/d3d11sdklayers.idl
+
+diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
+index a90c6c2..50e3dcc 100644
+--- a/mingw-w64-headers/Makefile.am
++++ b/mingw-w64-headers/Makefile.am
+@@ -131,6 +131,7 @@ IDL_SRCS = \
+   direct-x/include/d3d10.idl \
+   direct-x/include/d3d10_1.idl \
+   direct-x/include/d3d11.idl \
++  direct-x/include/d3d11sdklayers.idl \
+   direct-x/include/d3dcommon.idl \
+   direct-x/include/ddstream.idl \
+   direct-x/include/dmodshow.idl \
+diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
+index fad6a49..4425c64 100644
+--- a/mingw-w64-headers/Makefile.in
++++ b/mingw-w64-headers/Makefile.in
+@@ -287,6 +287,7 @@ EXTRA_HEADERS = \
+ @HAVE_WIDL_TRUE@  include/activprof.idl \
+ @HAVE_WIDL_TRUE@  include/activscp.idl \
+ @HAVE_WIDL_TRUE@  include/audioclient.idl \
++ at HAVE_WIDL_TRUE@  include/audioendpoints.idl \
+ @HAVE_WIDL_TRUE@  include/audiopolicy.idl \
+ @HAVE_WIDL_TRUE@  include/control.idl \
+ @HAVE_WIDL_TRUE@  include/ctfutb.idl \
+@@ -354,6 +355,7 @@ EXTRA_HEADERS = \
+ @HAVE_WIDL_TRUE@  direct-x/include/d3d10.idl \
+ @HAVE_WIDL_TRUE@  direct-x/include/d3d10_1.idl \
+ @HAVE_WIDL_TRUE@  direct-x/include/d3d11.idl \
++ at HAVE_WIDL_TRUE@  direct-x/include/d3d11sdklayers.idl \
+ @HAVE_WIDL_TRUE@  direct-x/include/d3dcommon.idl \
+ @HAVE_WIDL_TRUE@  direct-x/include/ddstream.idl \
+ @HAVE_WIDL_TRUE@  direct-x/include/dmodshow.idl \
+diff --git a/mingw-w64-headers/direct-x/include/d3d10.h b/mingw-w64-headers/direct-x/include/d3d10.h
+index 760c5ac..dd33c39 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10.h
++++ b/mingw-w64-headers/direct-x/include/d3d10.h
+@@ -1080,7 +1080,7 @@ typedef struct D3D10_SUBRESOURCE_DATA {
+     UINT SysMemSlicePitch;
+ } D3D10_SUBRESOURCE_DATA;
+ typedef struct D3D10_SO_DECLARATION_ENTRY {
+-    LPCSTR SemanticName;
++    const char *SemanticName;
+     UINT SemanticIndex;
+     BYTE StartComponent;
+     BYTE ComponentCount;
+@@ -1091,7 +1091,7 @@ typedef enum D3D10_INPUT_CLASSIFICATION {
+     D3D10_INPUT_PER_INSTANCE_DATA = 1
+ } D3D10_INPUT_CLASSIFICATION;
+ typedef struct D3D10_INPUT_ELEMENT_DESC {
+-    LPCSTR SemanticName;
++    const char *SemanticName;
+     UINT SemanticIndex;
+     DXGI_FORMAT Format;
+     UINT InputSlot;
+@@ -4812,11 +4812,11 @@ ID3D10Device : public IUnknown
+         const D3D10_COUNTER_DESC *pDesc,
+         D3D10_COUNTER_TYPE *pType,
+         UINT *pActiveCounters,
+-        LPSTR szName,
++        char *name,
+         UINT *pNameLength,
+-        LPSTR szUnits,
++        char *units,
+         UINT *pUnitsLength,
+-        LPSTR szDescription,
++        char *description,
+         UINT *pDescriptionLength) = 0;
+ 
+     virtual UINT STDMETHODCALLTYPE GetCreationFlags(
+@@ -5359,11 +5359,11 @@ typedef struct ID3D10DeviceVtbl {
+         const D3D10_COUNTER_DESC *pDesc,
+         D3D10_COUNTER_TYPE *pType,
+         UINT *pActiveCounters,
+-        LPSTR szName,
++        char *name,
+         UINT *pNameLength,
+-        LPSTR szUnits,
++        char *units,
+         UINT *pUnitsLength,
+-        LPSTR szDescription,
++        char *description,
+         UINT *pDescriptionLength);
+ 
+     UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+@@ -5488,7 +5488,7 @@ interface ID3D10Device {
+ #define ID3D10Device_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+ #define ID3D10Device_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+ #define ID3D10Device_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+-#define ID3D10Device_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
++#define ID3D10Device_CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength)
+ #define ID3D10Device_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+ #define ID3D10Device_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+ #define ID3D10Device_SetTextFilterSize(This,Width,Height) (This)->lpVtbl->SetTextFilterSize(This,Width,Height)
+@@ -5775,8 +5775,8 @@ static FORCEINLINE HRESULT ID3D10Device_CheckMultisampleQualityLevels(ID3D10Devi
+ static FORCEINLINE void ID3D10Device_CheckCounterInfo(ID3D10Device* This,D3D10_COUNTER_INFO *pCounterInfo) {
+     This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+ }
+-static FORCEINLINE HRESULT ID3D10Device_CheckCounter(ID3D10Device* This,const D3D10_COUNTER_DESC *pDesc,D3D10_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
+-    return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
++static FORCEINLINE HRESULT ID3D10Device_CheckCounter(ID3D10Device* This,const D3D10_COUNTER_DESC *pDesc,D3D10_COUNTER_TYPE *pType,UINT *pActiveCounters,char *name,UINT *pNameLength,char *units,UINT *pUnitsLength,char *description,UINT *pDescriptionLength) {
++    return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength);
+ }
+ static FORCEINLINE UINT ID3D10Device_GetCreationFlags(ID3D10Device* This) {
+     return This->lpVtbl->GetCreationFlags(This);
+@@ -6658,11 +6658,11 @@ HRESULT STDMETHODCALLTYPE ID3D10Device_CheckCounter_Proxy(
+     const D3D10_COUNTER_DESC *pDesc,
+     D3D10_COUNTER_TYPE *pType,
+     UINT *pActiveCounters,
+-    LPSTR szName,
++    char *name,
+     UINT *pNameLength,
+-    LPSTR szUnits,
++    char *units,
+     UINT *pUnitsLength,
+-    LPSTR szDescription,
++    char *description,
+     UINT *pDescriptionLength);
+ void __RPC_STUB ID3D10Device_CheckCounter_Stub(
+     IRpcStubBuffer* This,
+diff --git a/mingw-w64-headers/direct-x/include/d3d10.idl b/mingw-w64-headers/direct-x/include/d3d10.idl
+index 73a9e62..4b058ac 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10.idl
++++ b/mingw-w64-headers/direct-x/include/d3d10.idl
+@@ -795,8 +795,9 @@ typedef struct D3D10_SUBRESOURCE_DATA {
+     UINT SysMemSlicePitch;
+ } D3D10_SUBRESOURCE_DATA;
+ 
+-typedef struct D3D10_SO_DECLARATION_ENTRY {
+-    LPCSTR SemanticName;
++typedef struct D3D10_SO_DECLARATION_ENTRY
++{
++    const char *SemanticName;
+     UINT SemanticIndex;
+     BYTE StartComponent;
+     BYTE ComponentCount;
+@@ -808,8 +809,9 @@ typedef enum D3D10_INPUT_CLASSIFICATION {
+     D3D10_INPUT_PER_INSTANCE_DATA,
+ } D3D10_INPUT_CLASSIFICATION;
+ 
+-typedef struct D3D10_INPUT_ELEMENT_DESC {
+-    LPCSTR SemanticName;
++typedef struct D3D10_INPUT_ELEMENT_DESC
++{
++    const char *SemanticName;
+     UINT SemanticIndex;
+     DXGI_FORMAT Format;
+     UINT InputSlot;
+@@ -1559,11 +1561,11 @@ interface ID3D10Device : IUnknown
+             [in] const D3D10_COUNTER_DESC *pDesc,
+             [out] D3D10_COUNTER_TYPE *pType,
+             [out] UINT *pActiveCounters,
+-            [out] LPSTR szName,
++            [out] char *name,
+             [in, out] UINT *pNameLength,
+-            [out] LPSTR szUnits,
++            [out] char *units,
+             [in, out] UINT *pUnitsLength,
+-            [out] LPSTR szDescription,
++            [out] char *description,
+             [in, out] UINT *pDescriptionLength);
+         UINT GetCreationFlags();
+         HRESULT OpenSharedResource(
+diff --git a/mingw-w64-headers/direct-x/include/d3d10_1.h b/mingw-w64-headers/direct-x/include/d3d10_1.h
+index 46b4c52..680fa62 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10_1.h
++++ b/mingw-w64-headers/direct-x/include/d3d10_1.h
+@@ -920,11 +920,11 @@ typedef struct ID3D10Device1Vtbl {
+         const D3D10_COUNTER_DESC *pDesc,
+         D3D10_COUNTER_TYPE *pType,
+         UINT *pActiveCounters,
+-        LPSTR szName,
++        char *name,
+         UINT *pNameLength,
+-        LPSTR szUnits,
++        char *units,
+         UINT *pUnitsLength,
+-        LPSTR szDescription,
++        char *description,
+         UINT *pDescriptionLength);
+ 
+     UINT (STDMETHODCALLTYPE *GetCreationFlags)(
+@@ -1064,7 +1064,7 @@ interface ID3D10Device1 {
+ #define ID3D10Device1_CheckFormatSupport(This,Format,pFormatSupport) (This)->lpVtbl->CheckFormatSupport(This,Format,pFormatSupport)
+ #define ID3D10Device1_CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels) (This)->lpVtbl->CheckMultisampleQualityLevels(This,Format,SampleCount,pNumQualityLevels)
+ #define ID3D10Device1_CheckCounterInfo(This,pCounterInfo) (This)->lpVtbl->CheckCounterInfo(This,pCounterInfo)
+-#define ID3D10Device1_CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength)
++#define ID3D10Device1_CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength) (This)->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength)
+ #define ID3D10Device1_GetCreationFlags(This) (This)->lpVtbl->GetCreationFlags(This)
+ #define ID3D10Device1_OpenSharedResource(This,hResource,ReturnedInterface,ppResource) (This)->lpVtbl->OpenSharedResource(This,hResource,ReturnedInterface,ppResource)
+ #define ID3D10Device1_SetTextFilterSize(This,Width,Height) (This)->lpVtbl->SetTextFilterSize(This,Width,Height)
+@@ -1355,8 +1355,8 @@ static FORCEINLINE HRESULT ID3D10Device1_CheckMultisampleQualityLevels(ID3D10Dev
+ static FORCEINLINE void ID3D10Device1_CheckCounterInfo(ID3D10Device1* This,D3D10_COUNTER_INFO *pCounterInfo) {
+     This->lpVtbl->CheckCounterInfo(This,pCounterInfo);
+ }
+-static FORCEINLINE HRESULT ID3D10Device1_CheckCounter(ID3D10Device1* This,const D3D10_COUNTER_DESC *pDesc,D3D10_COUNTER_TYPE *pType,UINT *pActiveCounters,LPSTR szName,UINT *pNameLength,LPSTR szUnits,UINT *pUnitsLength,LPSTR szDescription,UINT *pDescriptionLength) {
+-    return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,szName,pNameLength,szUnits,pUnitsLength,szDescription,pDescriptionLength);
++static FORCEINLINE HRESULT ID3D10Device1_CheckCounter(ID3D10Device1* This,const D3D10_COUNTER_DESC *pDesc,D3D10_COUNTER_TYPE *pType,UINT *pActiveCounters,char *name,UINT *pNameLength,char *units,UINT *pUnitsLength,char *description,UINT *pDescriptionLength) {
++    return This->lpVtbl->CheckCounter(This,pDesc,pType,pActiveCounters,name,pNameLength,units,pUnitsLength,description,pDescriptionLength);
+ }
+ static FORCEINLINE UINT ID3D10Device1_GetCreationFlags(ID3D10Device1* This) {
+     return This->lpVtbl->GetCreationFlags(This);
+diff --git a/mingw-w64-headers/direct-x/include/d3d10_1shader.h b/mingw-w64-headers/direct-x/include/d3d10_1shader.h
+index 265150c..a9aa135 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10_1shader.h
++++ b/mingw-w64-headers/direct-x/include/d3d10_1shader.h
+@@ -28,18 +28,18 @@ DEFINE_GUID(IID_ID3D10ShaderReflection1, 0xc3457783, 0xa846, 0x47ce, 0x95, 0x20,
+ DECLARE_INTERFACE_(ID3D10ShaderReflection1, IUnknown)
+ {
+     /* IUnknown methods */
+-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
++    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
+     /* ID3D10ShaderReflection1 methods */
+     STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE;
+     STDMETHOD(GetResourceBindingDesc)(THIS_ UINT index, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE;
+     STDMETHOD(GetInputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+     STDMETHOD(GetOutputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+-    STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD(GetResourceBindingDescByName)(THIS_ LPCSTR name, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE;
++    STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE;
++    STDMETHOD(GetResourceBindingDescByName)(THIS_ const char *name, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE;
+     STDMETHOD(GetMovInstructionCount)(THIS_ UINT *count) PURE;
+     STDMETHOD(GetMovcInstructionCount)(THIS_ UINT *count) PURE;
+     STDMETHOD(GetConversionInstructionCount)(THIS_ UINT *count) PURE;
+diff --git a/mingw-w64-headers/direct-x/include/d3d10effect.h b/mingw-w64-headers/direct-x/include/d3d10effect.h
+index 38b0715..31de5a4 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10effect.h
++++ b/mingw-w64-headers/direct-x/include/d3d10effect.h
+@@ -61,7 +61,7 @@ typedef enum _D3D10_DEVICE_STATE_TYPES
+ 
+ typedef struct _D3D10_EFFECT_TYPE_DESC
+ {
+-    LPCSTR TypeName;
++    const char *TypeName;
+     D3D10_SHADER_VARIABLE_CLASS Class;
+     D3D10_SHADER_VARIABLE_TYPE Type;
+     UINT Elements;
+@@ -75,8 +75,8 @@ typedef struct _D3D10_EFFECT_TYPE_DESC
+ 
+ typedef struct _D3D10_EFFECT_VARIABLE_DESC
+ {
+-    LPCSTR Name;
+-    LPCSTR Semantic;
++    const char *Name;
++    const char *Semantic;
+     UINT Flags;
+     UINT Annotations;
+     UINT BufferOffset;
+@@ -85,7 +85,7 @@ typedef struct _D3D10_EFFECT_VARIABLE_DESC
+ 
+ typedef struct _D3D10_TECHNIQUE_DESC
+ {
+-    LPCSTR Name;
++    const char *Name;
+     UINT Passes;
+     UINT Annotations;
+ } D3D10_TECHNIQUE_DESC;
+@@ -134,14 +134,14 @@ typedef struct _D3D10_EFFECT_SHADER_DESC
+     WINBOOL IsInline;
+     const BYTE *pBytecode;
+     UINT BytecodeLength;
+-    LPCSTR SODecl;
++    const char *SODecl;
+     UINT NumInputSignatureEntries;
+     UINT NumOutputSignatureEntries;
+ } D3D10_EFFECT_SHADER_DESC;
+ 
+ typedef struct _D3D10_PASS_DESC
+ {
+-    LPCSTR Name;
++    const char *Name;
+     UINT Annotations;
+     BYTE *pIAInputSignature;
+     SIZE_T IAInputSignatureSize;
+@@ -168,10 +168,10 @@ DECLARE_INTERFACE(ID3D10EffectType)
+     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_TYPE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeBySemantic)(THIS_ LPCSTR semantic) PURE;
+-    STDMETHOD_(LPCSTR, GetMemberName)(THIS_ UINT index) PURE;
+-    STDMETHOD_(LPCSTR, GetMemberSemantic)(THIS_ UINT index) PURE;
++    STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectType *, GetMemberTypeBySemantic)(THIS_ const char *semantic) PURE;
++    STDMETHOD_(const char *, GetMemberName)(THIS_ UINT index) PURE;
++    STDMETHOD_(const char *, GetMemberSemantic)(THIS_ UINT index) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -184,10 +184,10 @@ DECLARE_INTERFACE(ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -218,10 +218,10 @@ DECLARE_INTERFACE_(ID3D10EffectConstantBuffer, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -257,10 +257,10 @@ DECLARE_INTERFACE_(ID3D10EffectScalarVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -304,10 +304,10 @@ DECLARE_INTERFACE_(ID3D10EffectVectorVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -351,10 +351,10 @@ DECLARE_INTERFACE_(ID3D10EffectMatrixVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -394,10 +394,10 @@ DECLARE_INTERFACE_(ID3D10EffectStringVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -416,8 +416,8 @@ DECLARE_INTERFACE_(ID3D10EffectStringVariable, ID3D10EffectVariable)
+     STDMETHOD(SetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+     STDMETHOD(GetRawValue)(THIS_ void *data, UINT offset, UINT count) PURE;
+     /* ID3D10EffectStringVariable methods */
+-    STDMETHOD(GetString)(THIS_ LPCSTR *str) PURE;
+-    STDMETHOD(GetStringArray)(THIS_ LPCSTR *strs, UINT offset, UINT count) PURE;
++    STDMETHOD(GetString)(THIS_ const char **str) PURE;
++    STDMETHOD(GetStringArray)(THIS_ const char **strs, UINT offset, UINT count) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -432,10 +432,10 @@ DECLARE_INTERFACE_(ID3D10EffectShaderResourceVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -472,10 +472,10 @@ DECLARE_INTERFACE_(ID3D10EffectRenderTargetViewVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -512,10 +512,10 @@ DECLARE_INTERFACE_(ID3D10EffectDepthStencilViewVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -551,10 +551,10 @@ DECLARE_INTERFACE_(ID3D10EffectShaderVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -594,10 +594,10 @@ DECLARE_INTERFACE_(ID3D10EffectBlendVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -632,10 +632,10 @@ DECLARE_INTERFACE_(ID3D10EffectDepthStencilVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -670,10 +670,10 @@ DECLARE_INTERFACE_(ID3D10EffectRasterizerVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -708,10 +708,10 @@ DECLARE_INTERFACE_(ID3D10EffectSamplerVariable, ID3D10EffectVariable)
+     STDMETHOD_(struct ID3D10EffectType *, GetType)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_VARIABLE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetMemberBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetElement)(THIS_ UINT index) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetParentConstantBuffer)(THIS) PURE;
+     STDMETHOD_(struct ID3D10EffectScalarVariable *, AsScalar)(THIS) PURE;
+@@ -743,9 +743,9 @@ DECLARE_INTERFACE(ID3D10EffectTechnique)
+     STDMETHOD_(WINBOOL, IsValid)(THIS) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_TECHNIQUE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectPass *, GetPassByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectPass *, GetPassByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectPass *, GetPassByName)(THIS_ const char *name) PURE;
+     STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *mask) PURE;
+ };
+ #undef INTERFACE
+@@ -756,7 +756,7 @@ DEFINE_GUID(IID_ID3D10Effect, 0x51b0ca8b, 0xec0b, 0x4519, 0x87, 0x0d, 0x8e, 0xe1
+ DECLARE_INTERFACE_(ID3D10Effect, IUnknown)
+ {
+     /* IUnknown methods */
+-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
++    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
+     /* ID3D10Effect methods */
+@@ -765,12 +765,12 @@ DECLARE_INTERFACE_(ID3D10Effect, IUnknown)
+     STDMETHOD(GetDevice)(THIS_ ID3D10Device **device) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3D10_EFFECT_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetVariableBySemantic)(THIS_ LPCSTR semantic) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetVariableByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetVariableBySemantic)(THIS_ const char *semantic) PURE;
+     STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectTechnique *, GetTechniqueByName)(THIS_ const char *name) PURE;
+     STDMETHOD(Optimize)(THIS) PURE;
+     STDMETHOD_(WINBOOL, IsOptimized)(THIS) PURE;
+ };
+@@ -782,7 +782,7 @@ DEFINE_GUID(IID_ID3D10EffectPool, 0x9537ab04, 0x3250, 0x412e, 0x82, 0x13, 0xfc,
+ DECLARE_INTERFACE_(ID3D10EffectPool, IUnknown)
+ {
+     /* IUnknown methods */
+-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
++    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
+     /* ID3D10EffectPool methods */
+@@ -801,7 +801,7 @@ DECLARE_INTERFACE(ID3D10EffectPass)
+     STDMETHOD(GetGeometryShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
+     STDMETHOD(GetPixelShaderDesc)(THIS_ D3D10_PASS_SHADER_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10EffectVariable *, GetAnnotationByName)(THIS_ const char *name) PURE;
+     STDMETHOD(Apply)(THIS_ UINT flags) PURE;
+     STDMETHOD(ComputeStateBlockMask)(THIS_ D3D10_STATE_BLOCK_MASK *mask) PURE;
+ };
+diff --git a/mingw-w64-headers/direct-x/include/d3d10shader.h b/mingw-w64-headers/direct-x/include/d3d10shader.h
+index 4fe06ff..47efdb1 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10shader.h
++++ b/mingw-w64-headers/direct-x/include/d3d10shader.h
+@@ -73,7 +73,7 @@ typedef ID3DInclude *LPD3D10INCLUDE;
+ 
+ typedef struct _D3D10_SHADER_INPUT_BIND_DESC
+ {
+-    LPCSTR Name;
++    const char *Name;
+     D3D10_SHADER_INPUT_TYPE Type;
+     UINT BindPoint;
+     UINT BindCount;
+@@ -85,7 +85,7 @@ typedef struct _D3D10_SHADER_INPUT_BIND_DESC
+ 
+ typedef struct _D3D10_SIGNATURE_PARAMETER_DESC
+ {
+-    LPCSTR SemanticName;
++    const char *SemanticName;
+     UINT SemanticIndex;
+     UINT Register;
+     D3D10_NAME SystemValueType;
+@@ -97,7 +97,7 @@ typedef struct _D3D10_SIGNATURE_PARAMETER_DESC
+ typedef struct _D3D10_SHADER_DESC
+ {
+     UINT Version;
+-    LPCSTR Creator;
++    const char *Creator;
+     UINT Flags;
+     UINT ConstantBuffers;
+     UINT BoundResources;
+@@ -128,7 +128,7 @@ typedef struct _D3D10_SHADER_DESC
+ 
+ typedef struct _D3D10_SHADER_BUFFER_DESC
+ {
+-    LPCSTR Name;
++    const char *Name;
+     D3D10_CBUFFER_TYPE Type;
+     UINT Variables;
+     UINT Size;
+@@ -137,11 +137,11 @@ typedef struct _D3D10_SHADER_BUFFER_DESC
+ 
+ typedef struct _D3D10_SHADER_VARIABLE_DESC
+ {
+-    LPCSTR Name;
++    const char *Name;
+     UINT StartOffset;
+     UINT Size;
+     UINT uFlags;
+-    LPVOID DefaultValue;
++    void *DefaultValue;
+ } D3D10_SHADER_VARIABLE_DESC;
+ 
+ typedef struct _D3D10_SHADER_TYPE_DESC
+@@ -162,8 +162,8 @@ DECLARE_INTERFACE(ID3D10ShaderReflectionType)
+ {
+     STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_TYPE_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10ShaderReflectionType *, GetMemberTypeByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10ShaderReflectionType *, GetMemberTypeByName)(THIS_ LPCSTR name) PURE;
+-    STDMETHOD_(LPCSTR, GetMemberTypeName)(THIS_ UINT index) PURE;
++    STDMETHOD_(struct ID3D10ShaderReflectionType *, GetMemberTypeByName)(THIS_ const char *name) PURE;
++    STDMETHOD_(const char *, GetMemberTypeName)(THIS_ UINT index) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -184,7 +184,7 @@ DECLARE_INTERFACE(ID3D10ShaderReflectionConstantBuffer)
+ {
+     STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_BUFFER_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10ShaderReflectionVariable *, GetVariableByName)(THIS_ const char *name) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -194,13 +194,13 @@ DEFINE_GUID(IID_ID3D10ShaderReflection, 0xd40e20b6, 0xf8f7, 0x42ad, 0xab, 0x20,
+ DECLARE_INTERFACE_(ID3D10ShaderReflection, IUnknown)
+ {
+     /* IUnknown methods */
+-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *object) PURE;
++    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **out) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
+     /* ID3D10ShaderReflection methods */
+     STDMETHOD(GetDesc)(THIS_ D3D10_SHADER_DESC *desc) PURE;
+     STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByIndex)(THIS_ UINT index) PURE;
+-    STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ LPCSTR name) PURE;
++    STDMETHOD_(struct ID3D10ShaderReflectionConstantBuffer *, GetConstantBufferByName)(THIS_ const char *name) PURE;
+     STDMETHOD(GetResourceBindingDesc)(THIS_ UINT index, D3D10_SHADER_INPUT_BIND_DESC *desc) PURE;
+     STDMETHOD(GetInputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+     STDMETHOD(GetOutputParameterDesc)(THIS_ UINT index, D3D10_SIGNATURE_PARAMETER_DESC *desc) PURE;
+@@ -212,14 +212,14 @@ DECLARE_INTERFACE_(ID3D10ShaderReflection, IUnknown)
+ extern "C" {
+ #endif
+ 
+-HRESULT WINAPI D3D10CompileShader(LPCSTR data, SIZE_T data_size, LPCSTR filename,
+-        const D3D10_SHADER_MACRO *defines, ID3D10Include *include, LPCSTR entrypoint,
+-        LPCSTR profile, UINT flags, ID3D10Blob **shader, ID3D10Blob **error_messages);
++HRESULT WINAPI D3D10CompileShader(const char *data, SIZE_T data_size, const char *filename,
++        const D3D10_SHADER_MACRO *defines, ID3D10Include *include, const char *entrypoint,
++        const char *profile, UINT flags, ID3D10Blob **shader, ID3D10Blob **error_messages);
+ HRESULT WINAPI D3D10DisassembleShader(const void *data, SIZE_T data_size,
+         WINBOOL color_code, const char *comments, ID3D10Blob **disassembly);
+-LPCSTR WINAPI D3D10GetVertexShaderProfile(ID3D10Device *device);
+-LPCSTR WINAPI D3D10GetGeometryShaderProfile(ID3D10Device *device);
+-LPCSTR WINAPI D3D10GetPixelShaderProfile(ID3D10Device *device);
++const char * WINAPI D3D10GetVertexShaderProfile(ID3D10Device *device);
++const char * WINAPI D3D10GetGeometryShaderProfile(ID3D10Device *device);
++const char * WINAPI D3D10GetPixelShaderProfile(ID3D10Device *device);
+ 
+ HRESULT WINAPI D3D10ReflectShader(const void *data, SIZE_T data_size, ID3D10ShaderReflection **reflector);
+ HRESULT WINAPI D3D10GetInputSignatureBlob(const void *data, SIZE_T data_size, ID3D10Blob **blob);
+diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h
+index 87f19eb..49501b0 100644
+--- a/mingw-w64-headers/direct-x/include/d3d11.h
++++ b/mingw-w64-headers/direct-x/include/d3d11.h
+@@ -8622,7 +8622,7 @@ typedef enum D3D11_CREATE_DEVICE_FLAG {
+ 
+ #include <d3d10_1.h>
+ #ifndef D3D11_IGNORE_SDK_LAYERS
+-/* FIXME: # include <d3d11sdklayers.h> */
++# include <d3d11sdklayers.h>
+ #endif
+ #include <d3d10misc.h>
+ #include <d3d10shader.h>
+diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl
+index 48e968a..2e1d7ad 100644
+--- a/mingw-w64-headers/direct-x/include/d3d11.idl
++++ b/mingw-w64-headers/direct-x/include/d3d11.idl
+@@ -1983,7 +1983,7 @@ const UINT D3D11_SDK_VERSION = 7;
+ 
+ cpp_quote("#include <d3d10_1.h>")
+ cpp_quote("#ifndef D3D11_IGNORE_SDK_LAYERS")
+-cpp_quote("/* FIXME: # include <d3d11sdklayers.h> */")
++cpp_quote("# include <d3d11sdklayers.h>")
+ cpp_quote("#endif")
+ cpp_quote("#include <d3d10misc.h>")
+ cpp_quote("#include <d3d10shader.h>")
+diff --git a/mingw-w64-headers/direct-x/include/d3d11sdklayers.h b/mingw-w64-headers/direct-x/include/d3d11sdklayers.h
+new file mode 100644
+index 0000000..efce823
+--- /dev/null
++++ b/mingw-w64-headers/direct-x/include/d3d11sdklayers.h
+@@ -0,0 +1,1952 @@
++/*** Autogenerated by WIDL 1.6 from direct-x/include/d3d11sdklayers.idl - Do not edit ***/
++
++#ifndef __REQUIRED_RPCNDR_H_VERSION__
++#define __REQUIRED_RPCNDR_H_VERSION__ 475
++#endif
++
++#include <rpc.h>
++#include <rpcndr.h>
++
++#ifndef COM_NO_WINDOWS_H
++#include <windows.h>
++#include <ole2.h>
++#endif
++
++#ifndef __d3d11sdklayers_h__
++#define __d3d11sdklayers_h__
++
++/* Forward declarations */
++
++#ifndef __ID3D11InfoQueue_FWD_DEFINED__
++#define __ID3D11InfoQueue_FWD_DEFINED__
++typedef interface ID3D11InfoQueue ID3D11InfoQueue;
++#endif
++
++/* Headers for imported files */
++
++#include <oaidl.h>
++#include <ocidl.h>
++#include <d3d11.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++typedef enum D3D11_MESSAGE_CATEGORY {
++    D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0,
++    D3D11_MESSAGE_CATEGORY_MISCELLANEOUS = 1,
++    D3D11_MESSAGE_CATEGORY_INITIALIZATION = 2,
++    D3D11_MESSAGE_CATEGORY_CLEANUP = 3,
++    D3D11_MESSAGE_CATEGORY_COMPILATION = 4,
++    D3D11_MESSAGE_CATEGORY_STATE_CREATION = 5,
++    D3D11_MESSAGE_CATEGORY_STATE_SETTING = 6,
++    D3D11_MESSAGE_CATEGORY_STATE_GETTING = 7,
++    D3D11_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = 8,
++    D3D11_MESSAGE_CATEGORY_EXECUTION = 9,
++    D3D11_MESSAGE_CATEGORY_SHADER = 10
++} D3D11_MESSAGE_CATEGORY;
++typedef enum D3D11_MESSAGE_SEVERITY {
++    D3D11_MESSAGE_SEVERITY_CORRUPTION = 0,
++    D3D11_MESSAGE_SEVERITY_ERROR = 1,
++    D3D11_MESSAGE_SEVERITY_WARNING = 2,
++    D3D11_MESSAGE_SEVERITY_INFO = 3,
++    D3D11_MESSAGE_SEVERITY_MESSAGE = 4
++} D3D11_MESSAGE_SEVERITY;
++typedef enum D3D11_MESSAGE_ID {
++    D3D11_MESSAGE_ID_UNKNOWN = 0,
++    D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD = 1,
++    D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD = 2,
++    D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD = 3,
++    D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD = 4,
++    D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD = 5,
++    D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD = 6,
++    D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD = 7,
++    D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD = 8,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD = 9,
++    D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD = 10,
++    D3D11_MESSAGE_ID_STRING_FROM_APPLICATION = 11,
++    D3D11_MESSAGE_ID_CORRUPTED_THIS = 12,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER1 = 13,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER2 = 14,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER3 = 15,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER4 = 16,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER5 = 17,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER6 = 18,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER7 = 19,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER8 = 20,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER9 = 21,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER10 = 22,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER11 = 23,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER12 = 24,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER13 = 25,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER14 = 26,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER15 = 27,
++    D3D11_MESSAGE_ID_CORRUPTED_MULTITHREADING = 28,
++    D3D11_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = 29,
++    D3D11_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT = 30,
++    D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT = 31,
++    D3D11_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT = 32,
++    D3D11_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT = 33,
++    D3D11_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 34,
++    D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 35,
++    D3D11_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT = 36,
++    D3D11_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT = 37,
++    D3D11_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 38,
++    D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 39,
++    D3D11_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT = 40,
++    D3D11_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT = 41,
++    D3D11_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT = 42,
++    D3D11_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 43,
++    D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 44,
++    D3D11_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT = 45,
++    D3D11_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT = 46,
++    D3D11_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT = 47,
++    D3D11_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT = 48,
++    D3D11_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT = 49,
++    D3D11_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT = 50,
++    D3D11_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = 51,
++    D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = 52,
++    D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN = 53,
++    D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS = 54,
++    D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = 55,
++    D3D11_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = 56,
++    D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT = 57,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES = 58,
++    D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE = 59,
++    D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS = 60,
++    D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS = 61,
++    D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS = 62,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS = 63,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS = 64,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA = 65,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS = 66,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS = 67,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS = 68,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN = 69,
++    D3D11_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN = 70,
++    D3D11_MESSAGE_ID_CREATEBUFFER_NULLDESC = 71,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS = 72,
++    D3D11_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION = 73,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT = 74,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT = 75,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES = 76,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE = 77,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS = 78,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS = 79,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS = 80,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS = 81,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS = 82,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA = 83,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS = 84,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS = 85,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS = 86,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN = 87,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN = 88,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_NULLDESC = 89,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION = 90,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT = 91,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT = 92,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES = 93,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE = 94,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS = 95,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS = 96,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS = 97,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS = 98,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS = 99,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA = 100,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS = 101,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS = 102,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS = 103,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN = 104,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN = 105,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_NULLDESC = 106,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION = 107,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT = 108,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT = 109,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES = 110,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE = 111,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS = 112,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS = 113,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS = 114,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS = 115,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS = 116,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA = 117,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS = 118,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS = 119,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS = 120,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN = 121,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN = 122,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_NULLDESC = 123,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION = 124,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 125,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = 126,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 127,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 128,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 129,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS = 130,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN = 131,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN = 132,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 133,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 134,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = 135,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = 136,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 137,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = 138,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS = 139,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN = 140,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN = 141,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 142,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = 143,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 144,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 145,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 146,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS = 147,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN = 148,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN = 149,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = 150,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = 151,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = 152,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 153,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = 154,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 155,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 156,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 157,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 158,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = 159,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 160,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 161,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = 162,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = 163,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC = 164,
++    D3D11_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = 165,
++    D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 166,
++    D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = 167,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = 168,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 169,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 170,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 171,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 172,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 173,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 174,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 175,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL = 176,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL = 177,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 178,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 179,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 180,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 181,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 182,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 183,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 184,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 185,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 186,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 187,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 188,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 189,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 190,
++    D3D11_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = 191,
++    D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 192,
++    D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = 193,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = 194,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = 195,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 196,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 197,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS = 198,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC = 199,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 200,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 201,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 202,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 203,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 204,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 205,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 206,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 207,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 208,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 209,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS = 210,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC = 211,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = 212,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = 213,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = 214,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 215,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 216,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 217,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 218,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS = 219,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC = 220,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER = 221,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU = 222,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV = 223,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW = 224,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS = 225,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY = 226,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC = 227,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD = 228,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD = 229,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS = 230,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC = 231,
++    D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY = 232,
++    D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS = 233,
++    D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG = 234,
++    D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC = 235,
++    D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED = 236,
++    D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED = 237,
++    D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER = 238,
++    D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE = 239,
++    D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY = 240,
++    D3D11_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER = 241,
++    D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID = 242,
++    D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE = 243,
++    D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED = 244,
++    D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY = 245,
++    D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER = 246,
++    D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 247,
++    D3D11_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY = 248,
++    D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY = 249,
++    D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER = 250,
++    D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 251,
++    D3D11_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY = 252,
++    D3D11_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER = 253,
++    D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED = 254,
++    D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY = 255,
++    D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER = 256,
++    D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 257,
++    D3D11_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY = 258,
++    D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT = 259,
++    D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR = 260,
++    D3D11_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH = 261,
++    D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH = 262,
++    D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = 263,
++    D3D11_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY = 264,
++    D3D11_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY = 265,
++    D3D11_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 266,
++    D3D11_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY = 267,
++    D3D11_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY = 268,
++    D3D11_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 269,
++    D3D11_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY = 270,
++    D3D11_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY = 271,
++    D3D11_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY = 272,
++    D3D11_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 273,
++    D3D11_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY = 274,
++    D3D11_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY = 275,
++    D3D11_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY = 276,
++    D3D11_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID = 277,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE = 278,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE = 279,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX = 280,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE = 281,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE = 282,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE = 283,
++    D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE = 284,
++    D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE = 285,
++    D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE = 286,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE = 287,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX = 288,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE = 289,
++    D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID = 290,
++    D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID = 291,
++    D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID = 292,
++    D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID = 293,
++    D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID = 294,
++    D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE = 295,
++    D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS = 296,
++    D3D11_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED = 297,
++    D3D11_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN = 298,
++    D3D11_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED = 299,
++    D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE = 300,
++    D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE = 301,
++    D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS = 302,
++    D3D11_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED = 303,
++    D3D11_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN = 304,
++    D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE = 305,
++    D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED = 306,
++    D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE = 307,
++    D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE = 308,
++    D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS = 309,
++    D3D11_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED = 310,
++    D3D11_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN = 311,
++    D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE = 312,
++    D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED = 313,
++    D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE = 314,
++    D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE = 315,
++    D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS = 316,
++    D3D11_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED = 317,
++    D3D11_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN = 318,
++    D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE = 319,
++    D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED = 320,
++    D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED = 321,
++    D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED = 322,
++    D3D11_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS = 323,
++    D3D11_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN = 324,
++    D3D11_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN = 325,
++    D3D11_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE = 326,
++    D3D11_MESSAGE_ID_REF_THREADING_MODE = 327,
++    D3D11_MESSAGE_ID_REF_UMDRIVER_EXCEPTION = 328,
++    D3D11_MESSAGE_ID_REF_KMDRIVER_EXCEPTION = 329,
++    D3D11_MESSAGE_ID_REF_HARDWARE_EXCEPTION = 330,
++    D3D11_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE = 331,
++    D3D11_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER = 332,
++    D3D11_MESSAGE_ID_REF_OUT_OF_MEMORY = 333,
++    D3D11_MESSAGE_ID_REF_INFO = 334,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW = 335,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW = 336,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW = 337,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW = 338,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW = 339,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW = 340,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET = 341,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 342,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX = 343,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE = 344,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK = 345,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE = 346,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 347,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET = 348,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET = 349,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET = 350,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL = 351,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET = 352,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET = 353,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH = 354,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 355,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL = 356,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET = 357,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID = 358,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL = 359,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH = 360,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH = 361,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT = 362,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET = 363,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED = 364,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY = 365,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED = 366,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED = 367,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED = 368,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED = 369,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED = 370,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED = 371,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED = 372,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED = 373,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE = 374,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER = 375,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 376,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 377,
++    D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = 378,
++    D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 379,
++    D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 380,
++    D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN = 381,
++    D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN = 382,
++    D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN = 383,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET = 384,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 385,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 386,
++    D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH = 387,
++    D3D11_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW = 388,
++    D3D11_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS = 389,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH = 390,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = 391,
++    D3D11_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY = 392,
++    D3D11_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY = 393,
++    D3D11_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN = 394,
++    D3D11_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN = 395,
++    D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER = 396,
++    D3D11_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED = 397,
++    D3D11_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = 398,
++    D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN = 399,
++    D3D11_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN = 400,
++    D3D11_MESSAGE_ID_CREATECOUNTER_NULLDESC = 401,
++    D3D11_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER = 402,
++    D3D11_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER = 403,
++    D3D11_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE = 404,
++    D3D11_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED = 405,
++    D3D11_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION = 406,
++    D3D11_MESSAGE_ID_QUERY_BEGIN_DUPLICATE = 407,
++    D3D11_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS = 408,
++    D3D11_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION = 409,
++    D3D11_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS = 410,
++    D3D11_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN = 411,
++    D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE = 412,
++    D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS = 413,
++    D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL = 414,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH = 415,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED = 416,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 417,
++    D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE = 418,
++    D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE = 419,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = 420,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH = 421,
++    D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY = 422,
++    D3D11_MESSAGE_ID_LIVE_BUFFER = 423,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE1D = 424,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE2D = 425,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE3D = 426,
++    D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW = 427,
++    D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW = 428,
++    D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW = 429,
++    D3D11_MESSAGE_ID_LIVE_VERTEXSHADER = 430,
++    D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER = 431,
++    D3D11_MESSAGE_ID_LIVE_PIXELSHADER = 432,
++    D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT = 433,
++    D3D11_MESSAGE_ID_LIVE_SAMPLER = 434,
++    D3D11_MESSAGE_ID_LIVE_BLENDSTATE = 435,
++    D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE = 436,
++    D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE = 437,
++    D3D11_MESSAGE_ID_LIVE_QUERY = 438,
++    D3D11_MESSAGE_ID_LIVE_PREDICATE = 439,
++    D3D11_MESSAGE_ID_LIVE_COUNTER = 440,
++    D3D11_MESSAGE_ID_LIVE_DEVICE = 441,
++    D3D11_MESSAGE_ID_LIVE_SWAPCHAIN = 442,
++    D3D11_MESSAGE_ID_D3D10_MESSAGES_END = 443,
++    D3D11_MESSAGE_ID_D3D10L9_MESSAGES_START = 0x100000,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED = 0x100001,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED = 0x100002,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT = 0x100003,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY = 0x100004,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE = 0x100005,
++    D3D11_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED = 0x100006,
++    D3D11_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS = 0x100007,
++    D3D11_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS = 0x100008,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS = 0x100009,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND = 0x10000a,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D = 0x10000b,
++    D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE = 0x10000c,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE = 0x10000d,
++    D3D11_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS = 0x10000e,
++    D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS = 0x10000f,
++    D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX = 0x100010,
++    D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS = 0x100011,
++    D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED = 0x100012,
++    D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS = 0x100013,
++    D3D11_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY = 0x100014,
++    D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK = 0x100015,
++    D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK = 0x100016,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT = 0x100017,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE = 0x100018,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE = 0x100019,
++    D3D11_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE = 0x10001a,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD = 0x10001b,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL = 0x10001c,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX = 0x10001d,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO = 0x10001e,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES = 0x10001f,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET = 0x100020,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER = 0x100021,
++    D3D11_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE = 0x100022,
++    D3D11_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE = 0x100023,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE = 0x100024,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS = 0x100025,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT = 0x100026,
++    D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS = 0x100027,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES = 0x100028,
++    D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED = 0x100029,
++    D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED = 0x10002a,
++    D3D11_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED = 0x10002b,
++    D3D11_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED = 0x10002c,
++    D3D11_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED = 0x10002d,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND = 0x10002e,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND = 0x10002f,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED = 0x100030,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE = 0x100031,
++    D3D11_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED = 0x100032,
++    D3D11_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3 = 0x100033,
++    D3D11_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED = 0x100034,
++    D3D11_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO = 0x100035,
++    D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION = 0x100036,
++    D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED = 0x100037,
++    D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR = 0x100038,
++    D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA = 0x100039,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP = 0x10003a,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED = 0x10003b,
++    D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT = 0x10003c,
++    D3D11_MESSAGE_ID_COPYRESOURCE_NO_3D_MISMATCHED_UPDATES = 0x10003d,
++    D3D11_MESSAGE_ID_D3D10L9_MESSAGES_END = 0x10003e,
++    D3D11_MESSAGE_ID_D3D11_MESSAGES_START = 0x200000,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = 0x200001,
++    D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = 0x200002,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = 0x200003,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS = 0x200004,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = 0x200005,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS = 0x200006,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE = 0x200007,
++    D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = 0x200008,
++    D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_COMMANDLISTFLAGS = 0x200009,
++    D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_SINGLETHREADED = 0x20000a,
++    D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALIDARG_RETURN = 0x20000b,
++    D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN = 0x20000c,
++    D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_OUTOFMEMORY_RETURN = 0x20000d,
++    D3D11_MESSAGE_ID_FINISHDISPLAYLIST_ONIMMEDIATECONTEXT = 0x20000e,
++    D3D11_MESSAGE_ID_FINISHDISPLAYLIST_OUTOFMEMORY_RETURN = 0x20000f,
++    D3D11_MESSAGE_ID_FINISHDISPLAYLIST_INVALID_CALL_RETURN = 0x200010,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = 0x200011,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = 0x200012,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = 0x200013,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = 0x200014,
++    D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_HAZARD = 0x200015,
++    D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_HAZARD = 0x200016,
++    D3D11_MESSAGE_ID_HSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 0x200017,
++    D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 0x200018,
++    D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL = 0x200019,
++    D3D11_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = 0x20001a,
++    D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = 0x20001b,
++    D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = 0x20001c,
++    D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = 0x20001d,
++    D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_VIEWS_EMPTY = 0x20001e,
++    D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFER = 0x20001f,
++    D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x200020,
++    D3D11_MESSAGE_ID_DEVICE_HSSETSAMPLERS_SAMPLERS_EMPTY = 0x200021,
++    D3D11_MESSAGE_ID_DEVICE_HSGETSHADERRESOURCES_VIEWS_EMPTY = 0x200022,
++    D3D11_MESSAGE_ID_DEVICE_HSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x200023,
++    D3D11_MESSAGE_ID_DEVICE_HSGETSAMPLERS_SAMPLERS_EMPTY = 0x200024,
++    D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_HAZARD = 0x200025,
++    D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_HAZARD = 0x200026,
++    D3D11_MESSAGE_ID_DSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 0x200027,
++    D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 0x200028,
++    D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL = 0x200029,
++    D3D11_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = 0x20002a,
++    D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = 0x20002b,
++    D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = 0x20002c,
++    D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = 0x20002d,
++    D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_VIEWS_EMPTY = 0x20002e,
++    D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFER = 0x20002f,
++    D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x200030,
++    D3D11_MESSAGE_ID_DEVICE_DSSETSAMPLERS_SAMPLERS_EMPTY = 0x200031,
++    D3D11_MESSAGE_ID_DEVICE_DSGETSHADERRESOURCES_VIEWS_EMPTY = 0x200032,
++    D3D11_MESSAGE_ID_DEVICE_DSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x200033,
++    D3D11_MESSAGE_ID_DEVICE_DSGETSAMPLERS_SAMPLERS_EMPTY = 0x200034,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH = 0x200035,
++    D3D11_MESSAGE_ID_DEFERRED_CONTEXT_REMOVAL_PROCESS_AT_FAULT = 0x200036,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER = 0x200037,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED = 0x200038,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW = 0x200039,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE = 0x20003a,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE = 0x20003b,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS = 0x20003c,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED = 0x20003d,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN = 0x20003e,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN = 0x20003f,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD = 0x200040,
++    D3D11_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE = 0x200041,
++    D3D11_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = 0x200042,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS = 0x200043,
++    D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED = 0x200044,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH = 0x200045,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = 0x200046,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH = 0x200047,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = 0x200048,
++    D3D11_MESSAGE_ID_CREATE_CONTEXT = 0x200049,
++    D3D11_MESSAGE_ID_LIVE_CONTEXT = 0x20004a,
++    D3D11_MESSAGE_ID_DESTROY_CONTEXT = 0x20004b,
++    D3D11_MESSAGE_ID_CREATE_BUFFER = 0x20004c,
++    D3D11_MESSAGE_ID_LIVE_BUFFER_WIN7 = 0x20004d,
++    D3D11_MESSAGE_ID_DESTROY_BUFFER = 0x20004e,
++    D3D11_MESSAGE_ID_CREATE_TEXTURE1D = 0x20004f,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE1D_WIN7 = 0x200050,
++    D3D11_MESSAGE_ID_DESTROY_TEXTURE1D = 0x200051,
++    D3D11_MESSAGE_ID_CREATE_TEXTURE2D = 0x200052,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE2D_WIN7 = 0x200053,
++    D3D11_MESSAGE_ID_DESTROY_TEXTURE2D = 0x200054,
++    D3D11_MESSAGE_ID_CREATE_TEXTURE3D = 0x200055,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE3D_WIN7 = 0x200056,
++    D3D11_MESSAGE_ID_DESTROY_TEXTURE3D = 0x200057,
++    D3D11_MESSAGE_ID_CREATE_SHADERRESOURCEVIEW = 0x200058,
++    D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW_WIN7 = 0x200059,
++    D3D11_MESSAGE_ID_DESTROY_SHADERRESOURCEVIEW = 0x20005a,
++    D3D11_MESSAGE_ID_CREATE_RENDERTARGETVIEW = 0x20005b,
++    D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW_WIN7 = 0x20005c,
++    D3D11_MESSAGE_ID_DESTROY_RENDERTARGETVIEW = 0x20005d,
++    D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILVIEW = 0x20005e,
++    D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW_WIN7 = 0x20005f,
++    D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILVIEW = 0x200060,
++    D3D11_MESSAGE_ID_CREATE_VERTEXSHADER = 0x200061,
++    D3D11_MESSAGE_ID_LIVE_VERTEXSHADER_WIN7 = 0x200062,
++    D3D11_MESSAGE_ID_DESTROY_VERTEXSHADER = 0x200063,
++    D3D11_MESSAGE_ID_CREATE_HULLSHADER = 0x200064,
++    D3D11_MESSAGE_ID_LIVE_HULLSHADER = 0x200065,
++    D3D11_MESSAGE_ID_DESTROY_HULLSHADER = 0x200066,
++    D3D11_MESSAGE_ID_CREATE_DOMAINSHADER = 0x200067,
++    D3D11_MESSAGE_ID_LIVE_DOMAINSHADER = 0x200068,
++    D3D11_MESSAGE_ID_DESTROY_DOMAINSHADER = 0x200069,
++    D3D11_MESSAGE_ID_CREATE_GEOMETRYSHADER = 0x20006a,
++    D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER_WIN7 = 0x20006b,
++    D3D11_MESSAGE_ID_DESTROY_GEOMETRYSHADER = 0x20006c,
++    D3D11_MESSAGE_ID_CREATE_PIXELSHADER = 0x20006d,
++    D3D11_MESSAGE_ID_LIVE_PIXELSHADER_WIN7 = 0x20006e,
++    D3D11_MESSAGE_ID_DESTROY_PIXELSHADER = 0x20006f,
++    D3D11_MESSAGE_ID_CREATE_INPUTLAYOUT = 0x200070,
++    D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT_WIN7 = 0x200071,
++    D3D11_MESSAGE_ID_DESTROY_INPUTLAYOUT = 0x200072,
++    D3D11_MESSAGE_ID_CREATE_SAMPLER = 0x200073,
++    D3D11_MESSAGE_ID_LIVE_SAMPLER_WIN7 = 0x200074,
++    D3D11_MESSAGE_ID_DESTROY_SAMPLER = 0x200075,
++    D3D11_MESSAGE_ID_CREATE_BLENDSTATE = 0x200076,
++    D3D11_MESSAGE_ID_LIVE_BLENDSTATE_WIN7 = 0x200077,
++    D3D11_MESSAGE_ID_DESTROY_BLENDSTATE = 0x200078,
++    D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILSTATE = 0x200079,
++    D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE_WIN7 = 0x20007a,
++    D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILSTATE = 0x20007b,
++    D3D11_MESSAGE_ID_CREATE_RASTERIZERSTATE = 0x20007c,
++    D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE_WIN7 = 0x20007d,
++    D3D11_MESSAGE_ID_DESTROY_RASTERIZERSTATE = 0x20007e,
++    D3D11_MESSAGE_ID_CREATE_QUERY = 0x20007f,
++    D3D11_MESSAGE_ID_LIVE_QUERY_WIN7 = 0x200080,
++    D3D11_MESSAGE_ID_DESTROY_QUERY = 0x200081,
++    D3D11_MESSAGE_ID_CREATE_PREDICATE = 0x200082,
++    D3D11_MESSAGE_ID_LIVE_PREDICATE_WIN7 = 0x200083,
++    D3D11_MESSAGE_ID_DESTROY_PREDICATE = 0x200084,
++    D3D11_MESSAGE_ID_CREATE_COUNTER = 0x200085,
++    D3D11_MESSAGE_ID_DESTROY_COUNTER = 0x200086,
++    D3D11_MESSAGE_ID_CREATE_COMMANDLIST = 0x200087,
++    D3D11_MESSAGE_ID_LIVE_COMMANDLIST = 0x200088,
++    D3D11_MESSAGE_ID_DESTROY_COMMANDLIST = 0x200089,
++    D3D11_MESSAGE_ID_CREATE_CLASSINSTANCE = 0x20008a,
++    D3D11_MESSAGE_ID_LIVE_CLASSINSTANCE = 0x20008b,
++    D3D11_MESSAGE_ID_DESTROY_CLASSINSTANCE = 0x20008c,
++    D3D11_MESSAGE_ID_CREATE_CLASSLINKAGE = 0x20008d,
++    D3D11_MESSAGE_ID_LIVE_CLASSLINKAGE = 0x20008e,
++    D3D11_MESSAGE_ID_DESTROY_CLASSLINKAGE = 0x20008f,
++    D3D11_MESSAGE_ID_LIVE_DEVICE_WIN7 = 0x200090,
++    D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY_WIN7 = 0x200091,
++    D3D11_MESSAGE_ID_CREATE_COMPUTESHADER = 0x200092,
++    D3D11_MESSAGE_ID_LIVE_COMPUTESHADER = 0x200093,
++    D3D11_MESSAGE_ID_DESTROY_COMPUTESHADER = 0x200094,
++    D3D11_MESSAGE_ID_CREATE_UNORDEREDACCESSVIEW = 0x200095,
++    D3D11_MESSAGE_ID_LIVE_UNORDEREDACCESSVIEW = 0x200096,
++    D3D11_MESSAGE_ID_DESTROY_UNORDEREDACCESSVIEW = 0x200097,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACES_FEATURELEVEL = 0x200098,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACE_COUNT_MISMATCH = 0x200099,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE = 0x20009a,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_INDEX = 0x20009b,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_TYPE = 0x20009c,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_DATA = 0x20009d,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_UNBOUND_INSTANCE_DATA = 0x20009e,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INSTANCE_DATA_BINDINGS = 0x20009f,
++    D3D11_MESSAGE_ID_DEVICE_CREATESHADER_CLASSLINKAGE_FULL = 0x2000a0,
++    D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE = 0x2000a1,
++    D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = 0x2000a2,
++    D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN = 0x2000a3,
++    D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_HAZARD = 0x2000a4,
++    D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_HAZARD = 0x2000a5,
++    D3D11_MESSAGE_ID_CSSETSHADERRESOURCES_UNBINDDELETINGOBJECT = 0x2000a6,
++    D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT = 0x2000a7,
++    D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL = 0x2000a8,
++    D3D11_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = 0x2000a9,
++    D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = 0x2000aa,
++    D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERTYPE = 0x2000ab,
++    D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = 0x2000ac,
++    D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY = 0x2000ad,
++    D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER = 0x2000ae,
++    D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x2000af,
++    D3D11_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY = 0x2000b0,
++    D3D11_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY = 0x2000b1,
++    D3D11_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY = 0x2000b2,
++    D3D11_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY = 0x2000b3,
++    D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b4,
++    D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b5,
++    D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b6,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b7,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b8,
++    D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000b9,
++    D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x2000ba,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE = 0x2000bb,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS = 0x2000bc,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = 0x2000bd,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = 0x2000be,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = 0x2000bf,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = 0x2000c0,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = 0x2000c1,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_HAZARD = 0x2000c2,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS = 0x2000c3,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP = 0x2000c4,
++    D3D11_MESSAGE_ID_CSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT = 0x2000c5,
++    D3D11_MESSAGE_ID_PSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT = 0x2000c6,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN = 0x2000c7,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN = 0x2000c8,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_TOOMANYOBJECTS = 0x2000c9,
++    D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_HAZARD = 0x2000ca,
++    D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH = 0x2000cb,
++    D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY = 0x2000cc,
++    D3D11_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY = 0x2000cd,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = 0x2000ce,
++    D3D11_MESSAGE_ID_CREATESHADERRESESOURCEVIEW_TOOMANYOBJECTS = 0x2000cf,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER = 0x2000d0,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED = 0x2000d1,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW = 0x2000d2,
++    D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDCONTEXT = 0x2000d3,
++    D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDRESOURCE = 0x2000d4,
++    D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDMINLOD = 0x2000d5,
++    D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDCONTEXT = 0x2000d6,
++    D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDRESOURCE = 0x2000d7,
++    D3D11_MESSAGE_ID_OMSETDEPTHSTENCIL_UNBINDDELETINGOBJECT = 0x2000d8,
++    D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY = 0x2000d9,
++    D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY = 0x2000da,
++    D3D11_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED = 0x2000db,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH = 0x2000dc,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET = 0x2000dd,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP = 0x2000de,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH = 0x2000df,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED = 0x2000e0,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED = 0x2000e1,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH = 0x2000e2,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH = 0x2000e3,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED = 0x2000e4,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED = 0x2000e5,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED = 0x2000e6,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED = 0x2000e7,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED = 0x2000e8,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED = 0x2000e9,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED = 0x2000ea,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED = 0x2000eb,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED = 0x2000ec,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED = 0x2000ed,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW = 0x2000ee,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO = 0x2000ef,
++    D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH = 0x2000f0,
++    D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH = 0x2000f1,
++    D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED = 0x2000f2,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED = 0x2000f3,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED = 0x2000f4,
++    D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET = 0x2000f5,
++    D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET = 0x2000f6,
++    D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE = 0x2000f7,
++    D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE = 0x2000f8,
++    D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED = 0x2000f9,
++    D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDVIEW = 0x2000fa,
++    D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDOFFSET = 0x2000fb,
++    D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_TOOMANYVIEWS = 0x2000fc,
++    D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT = 0x2000fd,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED = 0x2000fe,
++    D3D11_MESSAGE_ID_REF_WARNING = 0x2000ff,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_PIXEL_SHADER_WITHOUT_RTV_OR_DSV = 0x200100,
++    D3D11_MESSAGE_ID_SHADER_ABORT = 0x200101,
++    D3D11_MESSAGE_ID_SHADER_MESSAGE = 0x200102,
++    D3D11_MESSAGE_ID_SHADER_ERROR = 0x200103,
++    D3D11_MESSAGE_ID_OFFERRESOURCES_INVALIDRESOURCE = 0x200104,
++    D3D11_MESSAGE_ID_HSSETSAMPLERS_UNBINDDELETINGOBJECT = 0x200105,
++    D3D11_MESSAGE_ID_DSSETSAMPLERS_UNBINDDELETINGOBJECT = 0x200106,
++    D3D11_MESSAGE_ID_CSSETSAMPLERS_UNBINDDELETINGOBJECT = 0x200107,
++    D3D11_MESSAGE_ID_HSSETSHADER_UNBINDDELETINGOBJECT = 0x200108,
++    D3D11_MESSAGE_ID_DSSETSHADER_UNBINDDELETINGOBJECT = 0x200109,
++    D3D11_MESSAGE_ID_CSSETSHADER_UNBINDDELETINGOBJECT = 0x20010a,
++    D3D11_MESSAGE_ID_ENQUEUESETEVENT_INVALIDARG_RETURN = 0x20010b,
++    D3D11_MESSAGE_ID_ENQUEUESETEVENT_OUTOFMEMORY_RETURN = 0x20010c,
++    D3D11_MESSAGE_ID_ENQUEUESETEVENT_ACCESSDENIED_RETURN = 0x20010d,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NUMUAVS_INVALIDRANGE = 0x20010e,
++    D3D11_MESSAGE_ID_D3D11_MESSAGES_END = 0x20010f,
++    D3D11_MESSAGE_ID_D3D11_1_MESSAGES_START = 0x300000,
++    D3D11_MESSAGE_ID_CREATE_VIDEODECODER = 0x300001,
++    D3D11_MESSAGE_ID_CREATE_VIDEOPROCESSORENUM = 0x300002,
++    D3D11_MESSAGE_ID_CREATE_VIDEOPROCESSOR = 0x300003,
++    D3D11_MESSAGE_ID_CREATE_DECODEROUTPUTVIEW = 0x300004,
++    D3D11_MESSAGE_ID_CREATE_PROCESSORINPUTVIEW = 0x300005,
++    D3D11_MESSAGE_ID_CREATE_PROCESSOROUTPUTVIEW = 0x300006,
++    D3D11_MESSAGE_ID_CREATE_DEVICECONTEXTSTATE = 0x300007,
++    D3D11_MESSAGE_ID_LIVE_VIDEODECODER = 0x300008,
++    D3D11_MESSAGE_ID_LIVE_VIDEOPROCESSORENUM = 0x300009,
++    D3D11_MESSAGE_ID_LIVE_VIDEOPROCESSOR = 0x30000a,
++    D3D11_MESSAGE_ID_LIVE_DECODEROUTPUTVIEW = 0x30000b,
++    D3D11_MESSAGE_ID_LIVE_PROCESSORINPUTVIEW = 0x30000c,
++    D3D11_MESSAGE_ID_LIVE_PROCESSOROUTPUTVIEW = 0x30000d,
++    D3D11_MESSAGE_ID_LIVE_DEVICECONTEXTSTATE = 0x30000e,
++    D3D11_MESSAGE_ID_DESTROY_VIDEODECODER = 0x30000f,
++    D3D11_MESSAGE_ID_DESTROY_VIDEOPROCESSORENUM = 0x300010,
++    D3D11_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = 0x300011,
++    D3D11_MESSAGE_ID_DESTROY_DECODEROUTPUTVIEW = 0x300012,
++    D3D11_MESSAGE_ID_DESTROY_PROCESSORINPUTVIEW = 0x300013,
++    D3D11_MESSAGE_ID_DESTROY_PROCESSOROUTPUTVIEW = 0x300014,
++    D3D11_MESSAGE_ID_DESTROY_DEVICECONTEXTSTATE = 0x300015,
++    D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDFLAGS = 0x300016,
++    D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDFEATURELEVEL = 0x300017,
++    D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_FEATURELEVELS_NOT_SUPPORTED = 0x300018,
++    D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDREFIID = 0x300019,
++    D3D11_MESSAGE_ID_DEVICE_DISCARDVIEW_INVALIDVIEW = 0x30001a,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION1_INVALIDCOPYFLAGS = 0x30001b,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE1_INVALIDCOPYFLAGS = 0x30001c,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = 0x30001d,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_OUTOFMEMORY_RETURN = 0x30001e,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_NULLPARAM = 0x30001f,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_INVALIDFORMAT = 0x300020,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_ZEROWIDTHHEIGHT = 0x300021,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_DRIVER_INVALIDBUFFERSIZE = 0x300022,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_DRIVER_INVALIDBUFFERUSAGE = 0x300023,
++    D3D11_MESSAGE_ID_GETVIDEODECODERPROFILECOUNT_OUTOFMEMORY = 0x300024,
++    D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_NULLPARAM = 0x300025,
++    D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_INVALIDINDEX = 0x300026,
++    D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_OUTOFMEMORY_RETURN = 0x300027,
++    D3D11_MESSAGE_ID_CHECKVIDEODECODERFORMAT_NULLPARAM = 0x300028,
++    D3D11_MESSAGE_ID_CHECKVIDEODECODERFORMAT_OUTOFMEMORY_RETURN = 0x300029,
++    D3D11_MESSAGE_ID_GETVIDEODECODERCONFIGCOUNT_NULLPARAM = 0x30002a,
++    D3D11_MESSAGE_ID_GETVIDEODECODERCONFIGCOUNT_OUTOFMEMORY_RETURN = 0x30002b,
++    D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_NULLPARAM = 0x30002c,
++    D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_INVALIDINDEX = 0x30002d,
++    D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_OUTOFMEMORY_RETURN = 0x30002e,
++    D3D11_MESSAGE_ID_GETDECODERCREATIONPARAMS_NULLPARAM = 0x30002f,
++    D3D11_MESSAGE_ID_GETDECODERDRIVERHANDLE_NULLPARAM = 0x300030,
++    D3D11_MESSAGE_ID_GETDECODERBUFFER_NULLPARAM = 0x300031,
++    D3D11_MESSAGE_ID_GETDECODERBUFFER_INVALIDBUFFER = 0x300032,
++    D3D11_MESSAGE_ID_GETDECODERBUFFER_INVALIDTYPE = 0x300033,
++    D3D11_MESSAGE_ID_GETDECODERBUFFER_LOCKED = 0x300034,
++    D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_NULLPARAM = 0x300035,
++    D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_INVALIDTYPE = 0x300036,
++    D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_NOTLOCKED = 0x300037,
++    D3D11_MESSAGE_ID_DECODERBEGINFRAME_NULLPARAM = 0x300038,
++    D3D11_MESSAGE_ID_DECODERBEGINFRAME_HAZARD = 0x300039,
++    D3D11_MESSAGE_ID_DECODERENDFRAME_NULLPARAM = 0x30003a,
++    D3D11_MESSAGE_ID_SUBMITDECODERBUFFERS_NULLPARAM = 0x30003b,
++    D3D11_MESSAGE_ID_SUBMITDECODERBUFFERS_INVALIDTYPE = 0x30003c,
++    D3D11_MESSAGE_ID_DECODEREXTENSION_NULLPARAM = 0x30003d,
++    D3D11_MESSAGE_ID_DECODEREXTENSION_INVALIDRESOURCE = 0x30003e,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_OUTOFMEMORY_RETURN = 0x30003f,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_NULLPARAM = 0x300040,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDFRAMEFORMAT = 0x300041,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDUSAGE = 0x300042,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDINPUTFRAMERATE = 0x300043,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDOUTPUTFRAMERATE = 0x300044,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDWIDTHHEIGHT = 0x300045,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORCONTENTDESC_NULLPARAM = 0x300046,
++    D3D11_MESSAGE_ID_CHECKVIDEOPROCESSORFORMAT_NULLPARAM = 0x300047,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORCAPS_NULLPARAM = 0x300048,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORRATECONVERSIONCAPS_NULLPARAM = 0x300049,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORRATECONVERSIONCAPS_INVALIDINDEX = 0x30004a,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORCUSTOMRATE_NULLPARAM = 0x30004b,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORCUSTOMRATE_INVALIDINDEX = 0x30004c,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORFILTERRANGE_NULLPARAM = 0x30004d,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORFILTERRANGE_UNSUPPORTED = 0x30004e,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOR_OUTOFMEMORY_RETURN = 0x30004f,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOR_NULLPARAM = 0x300050,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTTARGETRECT_NULLPARAM = 0x300051,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTBACKGROUNDCOLOR_NULLPARAM = 0x300052,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTBACKGROUNDCOLOR_INVALIDALPHA = 0x300053,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE_NULLPARAM = 0x300054,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_NULLPARAM = 0x300055,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_UNSUPPORTED = 0x300056,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_INVALIDSTREAM = 0x300057,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_INVALIDFILLMODE = 0x300058,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_NULLPARAM = 0x300059,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSTEREOMODE_NULLPARAM = 0x30005a,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSTEREOMODE_UNSUPPORTED = 0x30005b,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTEXTENSION_NULLPARAM = 0x30005c,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTTARGETRECT_NULLPARAM = 0x30005d,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTBACKGROUNDCOLOR_NULLPARAM = 0x30005e,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE_NULLPARAM = 0x30005f,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTALPHAFILLMODE_NULLPARAM = 0x300060,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCONSTRICTION_NULLPARAM = 0x300061,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_UNSUPPORTED = 0x300062,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_INVALIDSIZE = 0x300063,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSTEREOMODE_NULLPARAM = 0x300064,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTEXTENSION_NULLPARAM = 0x300065,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_NULLPARAM = 0x300066,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_INVALIDFORMAT = 0x300067,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_INVALIDSTREAM = 0x300068,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE_NULLPARAM = 0x300069,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE_INVALIDSTREAM = 0x30006a,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_NULLPARAM = 0x30006b,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDRATE = 0x30006c,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDFLAG = 0x30006d,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDSTREAM = 0x30006e,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_NULLPARAM = 0x30006f,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_INVALIDSTREAM = 0x300070,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_INVALIDRECT = 0x300071,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_NULLPARAM = 0x300072,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_INVALIDSTREAM = 0x300073,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_INVALIDRECT = 0x300074,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_NULLPARAM = 0x300075,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_INVALIDSTREAM = 0x300076,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_INVALIDALPHA = 0x300077,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_NULLPARAM = 0x300078,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDSTREAM = 0x300079,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDCOUNT = 0x30007a,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDALPHA = 0x30007b,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_NULLPARAM = 0x30007c,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_INVALIDSTREAM = 0x30007d,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_INVALIDRATIO = 0x30007e,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_NULLPARAM = 0x30007f,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_INVALIDSTREAM = 0x300080,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_INVALIDRANGE = 0x300081,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_UNSUPPORTED = 0x300082,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_NULLPARAM = 0x300083,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_INVALIDSTREAM = 0x300084,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_UNSUPPORTED = 0x300085,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_FLIPUNSUPPORTED = 0x300086,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_MONOOFFSETUNSUPPORTED = 0x300087,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_FORMATUNSUPPORTED = 0x300088,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_INVALIDFORMAT = 0x300089,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMAUTOPROCESSINGMODE_NULLPARAM = 0x30008a,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMAUTOPROCESSINGMODE_INVALIDSTREAM = 0x30008b,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_NULLPARAM = 0x30008c,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDSTREAM = 0x30008d,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDFILTER = 0x30008e,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_UNSUPPORTED = 0x30008f,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDLEVEL = 0x300090,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMEXTENSION_NULLPARAM = 0x300091,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMEXTENSION_INVALIDSTREAM = 0x300092,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMFRAMEFORMAT_NULLPARAM = 0x300093,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE_NULLPARAM = 0x300094,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMOUTPUTRATE_NULLPARAM = 0x300095,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMSOURCERECT_NULLPARAM = 0x300096,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMDESTRECT_NULLPARAM = 0x300097,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMALPHA_NULLPARAM = 0x300098,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMPALETTE_NULLPARAM = 0x300099,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMPIXELASPECTRATIO_NULLPARAM = 0x30009a,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMLUMAKEY_NULLPARAM = 0x30009b,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMSTEREOFORMAT_NULLPARAM = 0x30009c,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMAUTOPROCESSINGMODE_NULLPARAM = 0x30009d,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMFILTER_NULLPARAM = 0x30009e,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMEXTENSION_NULLPARAM = 0x30009f,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMEXTENSION_INVALIDSTREAM = 0x3000a0,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_NULLPARAM = 0x3000a1,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDSTREAMCOUNT = 0x3000a2,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_TARGETRECT = 0x3000a3,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDOUTPUT = 0x3000a4,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDPASTFRAMES = 0x3000a5,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDFUTUREFRAMES = 0x3000a6,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDSOURCERECT = 0x3000a7,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDDESTRECT = 0x3000a8,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDINPUTRESOURCE = 0x3000a9,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDARRAYSIZE = 0x3000aa,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDARRAY = 0x3000ab,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_RIGHTEXPECTED = 0x3000ac,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_RIGHTNOTEXPECTED = 0x3000ad,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_STEREONOTENABLED = 0x3000ae,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDRIGHTRESOURCE = 0x3000af,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_NOSTEREOSTREAMS = 0x3000b0,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INPUTHAZARD = 0x3000b1,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_OUTPUTHAZARD = 0x3000b2,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_OUTOFMEMORY_RETURN = 0x3000b3,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_NULLPARAM = 0x3000b4,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDTYPE = 0x3000b5,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDBIND = 0x3000b6,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_UNSUPPORTEDFORMAT = 0x3000b7,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDMIP = 0x3000b8,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_UNSUPPORTEMIP = 0x3000b9,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDARRAYSIZE = 0x3000ba,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDARRAY = 0x3000bb,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDDIMENSION = 0x3000bc,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_OUTOFMEMORY_RETURN = 0x3000bd,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_NULLPARAM = 0x3000be,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDTYPE = 0x3000bf,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDBIND = 0x3000c0,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMISC = 0x3000c1,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDUSAGE = 0x3000c2,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDFORMAT = 0x3000c3,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDFOURCC = 0x3000c4,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMIP = 0x3000c5,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_UNSUPPORTEDMIP = 0x3000c6,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDARRAYSIZE = 0x3000c7,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDARRAY = 0x3000c8,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDDIMENSION = 0x3000c9,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_OUTOFMEMORY_RETURN = 0x3000ca,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_NULLPARAM = 0x3000cb,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDTYPE = 0x3000cc,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDBIND = 0x3000cd,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDFORMAT = 0x3000ce,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMIP = 0x3000cf,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_UNSUPPORTEDMIP = 0x3000d0,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_UNSUPPORTEDARRAY = 0x3000d1,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDARRAY = 0x3000d2,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDDIMENSION = 0x3000d3,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_FORCED_SAMPLE_COUNT = 0x3000d4,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = 0x3000d5,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDARRAYWITHDECODER = 0x3000d6,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDARRAYWITHDECODER = 0x3000d7,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDARRAYWITHDECODER = 0x3000d8,
++    D3D11_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE = 0x3000d9,
++    D3D11_MESSAGE_ID_REF_WARNING_ATOMIC_INCONSISTENT = 0x3000da,
++    D3D11_MESSAGE_ID_REF_WARNING_READING_UNINITIALIZED_RESOURCE = 0x3000db,
++    D3D11_MESSAGE_ID_REF_WARNING_RAW_HAZARD = 0x3000dc,
++    D3D11_MESSAGE_ID_REF_WARNING_WAR_HAZARD = 0x3000dd,
++    D3D11_MESSAGE_ID_REF_WARNING_WAW_HAZARD = 0x3000de,
++    D3D11_MESSAGE_ID_CREATECRYPTOSESSION_NULLPARAM = 0x3000df,
++    D3D11_MESSAGE_ID_CREATECRYPTOSESSION_OUTOFMEMORY_RETURN = 0x3000e0,
++    D3D11_MESSAGE_ID_GETCRYPTOTYPE_NULLPARAM = 0x3000e1,
++    D3D11_MESSAGE_ID_GETDECODERPROFILE_NULLPARAM = 0x3000e2,
++    D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATESIZE_NULLPARAM = 0x3000e3,
++    D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATE_NULLPARAM = 0x3000e4,
++    D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATE_WRONGSIZE = 0x3000e5,
++    D3D11_MESSAGE_ID_GETCRYPTOSESSIONHANDLE_WRONGSIZE = 0x3000e6,
++    D3D11_MESSAGE_ID_NEGOTIATECRPYTOSESSIONKEYEXCHANGE_NULLPARAM = 0x3000e7,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_UNSUPPORTED = 0x3000e8,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_NULLPARAM = 0x3000e9,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_WRONGDEVICE = 0x3000ea,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_WRONGDEVICE = 0x3000eb,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_FORMAT_MISMATCH = 0x3000ec,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SIZE_MISMATCH = 0x3000ed,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_MULTISAMPLED = 0x3000ee,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_NOT_STAGING = 0x3000ef,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_MAPPED = 0x3000f0,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_MAPPED = 0x3000f1,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_OFFERED = 0x3000f2,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_OFFERED = 0x3000f3,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_CONTENT_UNDEFINED = 0x3000f4,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_UNSUPPORTED = 0x3000f5,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_NULLPARAM = 0x3000f6,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_WRONGDEVICE = 0x3000f7,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_WRONGDEVICE = 0x3000f8,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_FORMAT_MISMATCH = 0x3000f9,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SIZE_MISMATCH = 0x3000fa,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_MULTISAMPLED = 0x3000fb,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_NOT_STAGING = 0x3000fc,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_NOT_RENDER_TARGET = 0x3000fd,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_MAPPED = 0x3000fe,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_MAPPED = 0x3000ff,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_OFFERED = 0x300100,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_OFFERED = 0x300101,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_CONTENT_UNDEFINED = 0x300102,
++    D3D11_MESSAGE_ID_STARTSESSIONKEYREFRESH_NULLPARAM = 0x300103,
++    D3D11_MESSAGE_ID_STARTSESSIONKEYREFRESH_INVALIDSIZE = 0x300104,
++    D3D11_MESSAGE_ID_FINISHSESSIONKEYREFRESH_NULLPARAM = 0x300105,
++    D3D11_MESSAGE_ID_GETENCRYPTIONBLTKEY_NULLPARAM = 0x300106,
++    D3D11_MESSAGE_ID_GETENCRYPTIONBLTKEY_INVALIDSIZE = 0x300107,
++    D3D11_MESSAGE_ID_GETCONTENTPROTECTIONCAPS_NULLPARAM = 0x300108,
++    D3D11_MESSAGE_ID_CHECKCRYPTOKEYEXCHANGE_NULLPARAM = 0x300109,
++    D3D11_MESSAGE_ID_CHECKCRYPTOKEYEXCHANGE_INVALIDINDEX = 0x30010a,
++    D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_NULLPARAM = 0x30010b,
++    D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_UNSUPPORTED = 0x30010c,
++    D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_INVALIDTYPE = 0x30010d,
++    D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_OUTOFMEMORY_RETURN = 0x30010e,
++    D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATESIZE_INVALIDCHANNEL = 0x30010f,
++    D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATESIZE_NULLPARAM = 0x300110,
++    D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_INVALIDCHANNEL = 0x300111,
++    D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_NULLPARAM = 0x300112,
++    D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_WRONGSIZE = 0x300113,
++    D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_INVALIDCHANNEL = 0x300114,
++    D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_NULLPARAM = 0x300115,
++    D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_NULLPARAM = 0x300116,
++    D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_WRONGCHANNEL = 0x300117,
++    D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_UNSUPPORTEDQUERY = 0x300118,
++    D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_WRONGSIZE = 0x300119,
++    D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_INVALIDPROCESSINDEX = 0x30011a,
++    D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_NULLPARAM = 0x30011b,
++    D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_WRONGCHANNEL = 0x30011c,
++    D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_UNSUPPORTEDCONFIGURE = 0x30011d,
++    D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_WRONGSIZE = 0x30011e,
++    D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_INVALIDPROCESSIDTYPE = 0x30011f,
++    D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300120,
++    D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300121,
++    D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300122,
++    D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300123,
++    D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300124,
++    D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT = 0x300125,
++    D3D11_MESSAGE_ID_NEGOTIATECRPYTOSESSIONKEYEXCHANGE_INVALIDSIZE = 0x300126,
++    D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_INVALIDSIZE = 0x300127,
++    D3D11_MESSAGE_ID_OFFERRESOURCES_INVALIDPRIORITY = 0x300128,
++    D3D11_MESSAGE_ID_GETCRYPTOSESSIONHANDLE_OUTOFMEMORY = 0x300129,
++    D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_NULLPARAM = 0x30012a,
++    D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDTYPE = 0x30012b,
++    D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDBIND = 0x30012c,
++    D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDARRAY = 0x30012d,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_NULLPARAM = 0x30012e,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_INVALIDSTREAM = 0x30012f,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_INVALID = 0x300130,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_UNSUPPORTED = 0x300131,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMROTATION_NULLPARAM = 0x300132,
++    D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDVIEW = 0x300133,
++    D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x300134,
++    D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x300135,
++    D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x300136,
++    D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x300137,
++    D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x300138,
++    D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x300139,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x30013a,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x30013b,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = 0x30013c,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_SHADEREXTENSIONSNOTSUPPORTED = 0x30013d,
++    D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x30013e,
++    D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x30013f,
++    D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x300140,
++    D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_SHADEREXTENSIONSNOTSUPPORTED = 0x300141,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_MINPRECISION = 0x300142,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_UNSUPPORTED = 0x300143,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_UNSUPPORTED = 0x300144,
++    D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = 0x300145,
++    D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = 0x300146,
++    D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = 0x300147,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = 0x300148,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = 0x300149,
++    D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = 0x30014a,
++    D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = 0x30014b,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_INVALIDOFFSET = 0x30014c,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_TOOMANYVIEWS = 0x30014d,
++    D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_NOTSUPPORTED = 0x30014e,
++    D3D11_MESSAGE_ID_SWAPDEVICECONTEXTSTATE_NOTSUPPORTED = 0x30014f,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE_PREFERUPDATESUBRESOURCE1 = 0x300150,
++    D3D11_MESSAGE_ID_GETDC_INACCESSIBLE = 0x300151,
++    D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDRECT = 0x300152,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLE_MASK_IGNORED_ON_FL9 = 0x300153,
++    D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE1_NOT_SUPPORTED = 0x300154,
++    D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BY_NAME_NOT_SUPPORTED = 0x300155,
++    D3D11_MESSAGE_ID_ENQUEUESETEVENT_NOT_SUPPORTED = 0x300156,
++    D3D11_MESSAGE_ID_OFFERRELEASE_NOT_SUPPORTED = 0x300157,
++    D3D11_MESSAGE_ID_OFFERRESOURCES_INACCESSIBLE = 0x300158,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMSAA = 0x300159,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMSAA = 0x30015a,
++    D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = 0x30015b,
++    D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = 0x30015c,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE_EMPTYDESTBOX = 0x30015d,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_EMPTYSOURCEBOX = 0x30015e,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = 0x30015f,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_DEPTHSTENCILVIEW_NOT_SET = 0x300160,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET = 0x300161,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET_DUE_TO_FLIP_PRESENT = 0x300162,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET_DUE_TO_FLIP_PRESENT = 0x300163,
++    D3D11_MESSAGE_ID_D3D11_1_MESSAGES_END = 0x300164
++} D3D11_MESSAGE_ID;
++typedef struct D3D11_MESSAGE {
++    D3D11_MESSAGE_CATEGORY Category;
++    D3D11_MESSAGE_SEVERITY Severity;
++    D3D11_MESSAGE_ID ID;
++    const char *pDescription;
++    SIZE_T DescriptionByteLength;
++} D3D11_MESSAGE;
++typedef struct D3D11_INFO_QUEUE_FILTER_DESC {
++    UINT NumCategories;
++    D3D11_MESSAGE_CATEGORY *pCategoryList;
++    UINT NumSeverities;
++    D3D11_MESSAGE_SEVERITY *pSeverityList;
++    UINT NumIDs;
++    D3D11_MESSAGE_ID *pIDList;
++} D3D11_INFO_QUEUE_FILTER_DESC;
++typedef struct D3D11_INFO_QUEUE_FILTER {
++    D3D11_INFO_QUEUE_FILTER_DESC AllowList;
++    D3D11_INFO_QUEUE_FILTER_DESC DenyList;
++} D3D11_INFO_QUEUE_FILTER;
++#define D3D11_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024
++/*****************************************************************************
++ * ID3D11InfoQueue interface
++ */
++#ifndef __ID3D11InfoQueue_INTERFACE_DEFINED__
++#define __ID3D11InfoQueue_INTERFACE_DEFINED__
++
++#ifdef WINE_NO_UNICODE_MACROS
++#undef GetMessage
++#endif
++DEFINE_GUID(IID_ID3D11InfoQueue, 0x6543dbb6, 0x1b48, 0x42f5, 0xab,0x82, 0xe9,0x7e,0xc7,0x43,0x26,0xf6);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("6543dbb6-1b48-42f5-ab82-e97ec74326f6")
++ID3D11InfoQueue : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit(
++        UINT64 MessageCountLimit) = 0;
++
++    virtual void STDMETHODCALLTYPE ClearStoredMessages(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetMessage(
++        UINT64 MessageIndex,
++        D3D11_MESSAGE *pMessage,
++        SIZE_T *pMessageByteLength) = 0;
++
++    virtual UINT64 STDMETHODCALLTYPE GetNumMessagesAllowedByStorageFilter(
++        ) = 0;
++
++    virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDeniedByStorageFilter(
++        ) = 0;
++
++    virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessages(
++        ) = 0;
++
++    virtual UINT64 STDMETHODCALLTYPE GetNumStoredMessagesAllowedByRetrievalFilter(
++        ) = 0;
++
++    virtual UINT64 STDMETHODCALLTYPE GetNumMessagesDiscardedByMessageCountLimit(
++        ) = 0;
++
++    virtual UINT64 STDMETHODCALLTYPE GetMessageCountLimit(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE AddStorageFilterEntries(
++        D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetStorageFilter(
++        D3D11_INFO_QUEUE_FILTER *pFilter,
++        SIZE_T *pFilterByteLength) = 0;
++
++    virtual void STDMETHODCALLTYPE ClearStorageFilter(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE PushStorageFilter(
++        D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
++
++    virtual void STDMETHODCALLTYPE PopStorageFilter(
++        ) = 0;
++
++    virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries(
++        D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter(
++        D3D11_INFO_QUEUE_FILTER *pFilter,
++        SIZE_T *pFilterByteLength) = 0;
++
++    virtual void STDMETHODCALLTYPE ClearRetrievalFilter(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter(
++        D3D11_INFO_QUEUE_FILTER *pFilter) = 0;
++
++    virtual void STDMETHODCALLTYPE PopRetrievalFilter(
++        ) = 0;
++
++    virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE AddMessage(
++        D3D11_MESSAGE_CATEGORY Category,
++        D3D11_MESSAGE_SEVERITY Severity,
++        D3D11_MESSAGE_ID ID,
++        LPCSTR pDescription) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage(
++        D3D11_MESSAGE_SEVERITY Severity,
++        LPCSTR pDescription) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory(
++        D3D11_MESSAGE_CATEGORY Category,
++        WINBOOL bEnable) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity(
++        D3D11_MESSAGE_SEVERITY Severity,
++        WINBOOL bEnable) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE SetBreakOnID(
++        D3D11_MESSAGE_ID ID,
++        WINBOOL bEnable) = 0;
++
++    virtual WINBOOL STDMETHODCALLTYPE GetBreakOnCategory(
++        D3D11_MESSAGE_CATEGORY Category) = 0;
++
++    virtual WINBOOL STDMETHODCALLTYPE GetBreakOnSeverity(
++        D3D11_MESSAGE_SEVERITY Severity) = 0;
++
++    virtual WINBOOL STDMETHODCALLTYPE GetBreakOnID(
++        D3D11_MESSAGE_ID ID) = 0;
++
++    virtual void STDMETHODCALLTYPE SetMuteDebugOutput(
++        WINBOOL bMute) = 0;
++
++    virtual WINBOOL STDMETHODCALLTYPE GetMuteDebugOutput(
++        ) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(ID3D11InfoQueue, 0x6543dbb6, 0x1b48, 0x42f5, 0xab,0x82, 0xe9,0x7e,0xc7,0x43,0x26,0xf6)
++#endif
++#else
++typedef struct ID3D11InfoQueueVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        ID3D11InfoQueue* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        ID3D11InfoQueue* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        ID3D11InfoQueue* This);
++
++    /*** ID3D11InfoQueue methods ***/
++    HRESULT (STDMETHODCALLTYPE *SetMessageCountLimit)(
++        ID3D11InfoQueue* This,
++        UINT64 MessageCountLimit);
++
++    void (STDMETHODCALLTYPE *ClearStoredMessages)(
++        ID3D11InfoQueue* This);
++
++    HRESULT (STDMETHODCALLTYPE *GetMessage)(
++        ID3D11InfoQueue* This,
++        UINT64 MessageIndex,
++        D3D11_MESSAGE *pMessage,
++        SIZE_T *pMessageByteLength);
++
++    UINT64 (STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter)(
++        ID3D11InfoQueue* This);
++
++    UINT64 (STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter)(
++        ID3D11InfoQueue* This);
++
++    UINT64 (STDMETHODCALLTYPE *GetNumStoredMessages)(
++        ID3D11InfoQueue* This);
++
++    UINT64 (STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter)(
++        ID3D11InfoQueue* This);
++
++    UINT64 (STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit)(
++        ID3D11InfoQueue* This);
++
++    UINT64 (STDMETHODCALLTYPE *GetMessageCountLimit)(
++        ID3D11InfoQueue* This);
++
++    HRESULT (STDMETHODCALLTYPE *AddStorageFilterEntries)(
++        ID3D11InfoQueue* This,
++        D3D11_INFO_QUEUE_FILTER *pFilter);
++
++    HRESULT (STDMETHODCALLTYPE *GetStorageFilter)(
++        ID3D11InfoQueue* This,
++        D3D11_INFO_QUEUE_FILTER *pFilter,
++        SIZE_T *pFilterByteLength);
++
++    void (STDMETHODCALLTYPE *ClearStorageFilter)(
++        ID3D11InfoQueue* This);
++
++    HRESULT (STDMETHODCALLTYPE *PushEmptyStorageFilter)(
++        ID3D11InfoQueue* This);
++
++    HRESULT (STDMETHODCALLTYPE *PushCopyOfStorageFilter)(
++        ID3D11InfoQueue* This);
++
++    HRESULT (STDMETHODCALLTYPE *PushStorageFilter)(
++        ID3D11InfoQueue* This,
++        D3D11_INFO_QUEUE_FILTER *pFilter);
++
++    void (STDMETHODCALLTYPE *PopStorageFilter)(
++        ID3D11InfoQueue* This);
++
++    UINT (STDMETHODCALLTYPE *GetStorageFilterStackSize)(
++        ID3D11InfoQueue* This);
++
++    HRESULT (STDMETHODCALLTYPE *AddRetrievalFilterEntries)(
++        ID3D11InfoQueue* This,
++        D3D11_INFO_QUEUE_FILTER *pFilter);
++
++    HRESULT (STDMETHODCALLTYPE *GetRetrievalFilter)(
++        ID3D11InfoQueue* This,
++        D3D11_INFO_QUEUE_FILTER *pFilter,
++        SIZE_T *pFilterByteLength);
++
++    void (STDMETHODCALLTYPE *ClearRetrievalFilter)(
++        ID3D11InfoQueue* This);
++
++    HRESULT (STDMETHODCALLTYPE *PushEmptyRetrievalFilter)(
++        ID3D11InfoQueue* This);
++
++    HRESULT (STDMETHODCALLTYPE *PushCopyOfRetrievalFilter)(
++        ID3D11InfoQueue* This);
++
++    HRESULT (STDMETHODCALLTYPE *PushRetrievalFilter)(
++        ID3D11InfoQueue* This,
++        D3D11_INFO_QUEUE_FILTER *pFilter);
++
++    void (STDMETHODCALLTYPE *PopRetrievalFilter)(
++        ID3D11InfoQueue* This);
++
++    UINT (STDMETHODCALLTYPE *GetRetrievalFilterStackSize)(
++        ID3D11InfoQueue* This);
++
++    HRESULT (STDMETHODCALLTYPE *AddMessage)(
++        ID3D11InfoQueue* This,
++        D3D11_MESSAGE_CATEGORY Category,
++        D3D11_MESSAGE_SEVERITY Severity,
++        D3D11_MESSAGE_ID ID,
++        LPCSTR pDescription);
++
++    HRESULT (STDMETHODCALLTYPE *AddApplicationMessage)(
++        ID3D11InfoQueue* This,
++        D3D11_MESSAGE_SEVERITY Severity,
++        LPCSTR pDescription);
++
++    HRESULT (STDMETHODCALLTYPE *SetBreakOnCategory)(
++        ID3D11InfoQueue* This,
++        D3D11_MESSAGE_CATEGORY Category,
++        WINBOOL bEnable);
++
++    HRESULT (STDMETHODCALLTYPE *SetBreakOnSeverity)(
++        ID3D11InfoQueue* This,
++        D3D11_MESSAGE_SEVERITY Severity,
++        WINBOOL bEnable);
++
++    HRESULT (STDMETHODCALLTYPE *SetBreakOnID)(
++        ID3D11InfoQueue* This,
++        D3D11_MESSAGE_ID ID,
++        WINBOOL bEnable);
++
++    WINBOOL (STDMETHODCALLTYPE *GetBreakOnCategory)(
++        ID3D11InfoQueue* This,
++        D3D11_MESSAGE_CATEGORY Category);
++
++    WINBOOL (STDMETHODCALLTYPE *GetBreakOnSeverity)(
++        ID3D11InfoQueue* This,
++        D3D11_MESSAGE_SEVERITY Severity);
++
++    WINBOOL (STDMETHODCALLTYPE *GetBreakOnID)(
++        ID3D11InfoQueue* This,
++        D3D11_MESSAGE_ID ID);
++
++    void (STDMETHODCALLTYPE *SetMuteDebugOutput)(
++        ID3D11InfoQueue* This,
++        WINBOOL bMute);
++
++    WINBOOL (STDMETHODCALLTYPE *GetMuteDebugOutput)(
++        ID3D11InfoQueue* This);
++
++    END_INTERFACE
++} ID3D11InfoQueueVtbl;
++interface ID3D11InfoQueue {
++    CONST_VTBL ID3D11InfoQueueVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define ID3D11InfoQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define ID3D11InfoQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define ID3D11InfoQueue_Release(This) (This)->lpVtbl->Release(This)
++/*** ID3D11InfoQueue methods ***/
++#define ID3D11InfoQueue_SetMessageCountLimit(This,MessageCountLimit) (This)->lpVtbl->SetMessageCountLimit(This,MessageCountLimit)
++#define ID3D11InfoQueue_ClearStoredMessages(This) (This)->lpVtbl->ClearStoredMessages(This)
++#define ID3D11InfoQueue_GetMessage(This,MessageIndex,pMessage,pMessageByteLength) (This)->lpVtbl->GetMessage(This,MessageIndex,pMessage,pMessageByteLength)
++#define ID3D11InfoQueue_GetNumMessagesAllowedByStorageFilter(This) (This)->lpVtbl->GetNumMessagesAllowedByStorageFilter(This)
++#define ID3D11InfoQueue_GetNumMessagesDeniedByStorageFilter(This) (This)->lpVtbl->GetNumMessagesDeniedByStorageFilter(This)
++#define ID3D11InfoQueue_GetNumStoredMessages(This) (This)->lpVtbl->GetNumStoredMessages(This)
++#define ID3D11InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(This) (This)->lpVtbl->GetNumStoredMessagesAllowedByRetrievalFilter(This)
++#define ID3D11InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This) (This)->lpVtbl->GetNumMessagesDiscardedByMessageCountLimit(This)
++#define ID3D11InfoQueue_GetMessageCountLimit(This) (This)->lpVtbl->GetMessageCountLimit(This)
++#define ID3D11InfoQueue_AddStorageFilterEntries(This,pFilter) (This)->lpVtbl->AddStorageFilterEntries(This,pFilter)
++#define ID3D11InfoQueue_GetStorageFilter(This,pFilter,pFilterByteLength) (This)->lpVtbl->GetStorageFilter(This,pFilter,pFilterByteLength)
++#define ID3D11InfoQueue_ClearStorageFilter(This) (This)->lpVtbl->ClearStorageFilter(This)
++#define ID3D11InfoQueue_PushEmptyStorageFilter(This) (This)->lpVtbl->PushEmptyStorageFilter(This)
++#define ID3D11InfoQueue_PushCopyOfStorageFilter(This) (This)->lpVtbl->PushCopyOfStorageFilter(This)
++#define ID3D11InfoQueue_PushStorageFilter(This,pFilter) (This)->lpVtbl->PushStorageFilter(This,pFilter)
++#define ID3D11InfoQueue_PopStorageFilter(This) (This)->lpVtbl->PopStorageFilter(This)
++#define ID3D11InfoQueue_GetStorageFilterStackSize(This) (This)->lpVtbl->GetStorageFilterStackSize(This)
++#define ID3D11InfoQueue_AddRetrievalFilterEntries(This,pFilter) (This)->lpVtbl->AddRetrievalFilterEntries(This,pFilter)
++#define ID3D11InfoQueue_GetRetrievalFilter(This,pFilter,pFilterByteLength) (This)->lpVtbl->GetRetrievalFilter(This,pFilter,pFilterByteLength)
++#define ID3D11InfoQueue_ClearRetrievalFilter(This) (This)->lpVtbl->ClearRetrievalFilter(This)
++#define ID3D11InfoQueue_PushEmptyRetrievalFilter(This) (This)->lpVtbl->PushEmptyRetrievalFilter(This)
++#define ID3D11InfoQueue_PushCopyOfRetrievalFilter(This) (This)->lpVtbl->PushCopyOfRetrievalFilter(This)
++#define ID3D11InfoQueue_PushRetrievalFilter(This,pFilter) (This)->lpVtbl->PushRetrievalFilter(This,pFilter)
++#define ID3D11InfoQueue_PopRetrievalFilter(This) (This)->lpVtbl->PopRetrievalFilter(This)
++#define ID3D11InfoQueue_GetRetrievalFilterStackSize(This) (This)->lpVtbl->GetRetrievalFilterStackSize(This)
++#define ID3D11InfoQueue_AddMessage(This,Category,Severity,ID,pDescription) (This)->lpVtbl->AddMessage(This,Category,Severity,ID,pDescription)
++#define ID3D11InfoQueue_AddApplicationMessage(This,Severity,pDescription) (This)->lpVtbl->AddApplicationMessage(This,Severity,pDescription)
++#define ID3D11InfoQueue_SetBreakOnCategory(This,Category,bEnable) (This)->lpVtbl->SetBreakOnCategory(This,Category,bEnable)
++#define ID3D11InfoQueue_SetBreakOnSeverity(This,Severity,bEnable) (This)->lpVtbl->SetBreakOnSeverity(This,Severity,bEnable)
++#define ID3D11InfoQueue_SetBreakOnID(This,ID,bEnable) (This)->lpVtbl->SetBreakOnID(This,ID,bEnable)
++#define ID3D11InfoQueue_GetBreakOnCategory(This,Category) (This)->lpVtbl->GetBreakOnCategory(This,Category)
++#define ID3D11InfoQueue_GetBreakOnSeverity(This,Severity) (This)->lpVtbl->GetBreakOnSeverity(This,Severity)
++#define ID3D11InfoQueue_GetBreakOnID(This,ID) (This)->lpVtbl->GetBreakOnID(This,ID)
++#define ID3D11InfoQueue_SetMuteDebugOutput(This,bMute) (This)->lpVtbl->SetMuteDebugOutput(This,bMute)
++#define ID3D11InfoQueue_GetMuteDebugOutput(This) (This)->lpVtbl->GetMuteDebugOutput(This)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT ID3D11InfoQueue_QueryInterface(ID3D11InfoQueue* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG ID3D11InfoQueue_AddRef(ID3D11InfoQueue* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG ID3D11InfoQueue_Release(ID3D11InfoQueue* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** ID3D11InfoQueue methods ***/
++static FORCEINLINE HRESULT ID3D11InfoQueue_SetMessageCountLimit(ID3D11InfoQueue* This,UINT64 MessageCountLimit) {
++    return This->lpVtbl->SetMessageCountLimit(This,MessageCountLimit);
++}
++static FORCEINLINE void ID3D11InfoQueue_ClearStoredMessages(ID3D11InfoQueue* This) {
++    This->lpVtbl->ClearStoredMessages(This);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_GetMessage(ID3D11InfoQueue* This,UINT64 MessageIndex,D3D11_MESSAGE *pMessage,SIZE_T *pMessageByteLength) {
++    return This->lpVtbl->GetMessage(This,MessageIndex,pMessage,pMessageByteLength);
++}
++static FORCEINLINE UINT64 ID3D11InfoQueue_GetNumMessagesAllowedByStorageFilter(ID3D11InfoQueue* This) {
++    return This->lpVtbl->GetNumMessagesAllowedByStorageFilter(This);
++}
++static FORCEINLINE UINT64 ID3D11InfoQueue_GetNumMessagesDeniedByStorageFilter(ID3D11InfoQueue* This) {
++    return This->lpVtbl->GetNumMessagesDeniedByStorageFilter(This);
++}
++static FORCEINLINE UINT64 ID3D11InfoQueue_GetNumStoredMessages(ID3D11InfoQueue* This) {
++    return This->lpVtbl->GetNumStoredMessages(This);
++}
++static FORCEINLINE UINT64 ID3D11InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(ID3D11InfoQueue* This) {
++    return This->lpVtbl->GetNumStoredMessagesAllowedByRetrievalFilter(This);
++}
++static FORCEINLINE UINT64 ID3D11InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(ID3D11InfoQueue* This) {
++    return This->lpVtbl->GetNumMessagesDiscardedByMessageCountLimit(This);
++}
++static FORCEINLINE UINT64 ID3D11InfoQueue_GetMessageCountLimit(ID3D11InfoQueue* This) {
++    return This->lpVtbl->GetMessageCountLimit(This);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_AddStorageFilterEntries(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter) {
++    return This->lpVtbl->AddStorageFilterEntries(This,pFilter);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_GetStorageFilter(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter,SIZE_T *pFilterByteLength) {
++    return This->lpVtbl->GetStorageFilter(This,pFilter,pFilterByteLength);
++}
++static FORCEINLINE void ID3D11InfoQueue_ClearStorageFilter(ID3D11InfoQueue* This) {
++    This->lpVtbl->ClearStorageFilter(This);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_PushEmptyStorageFilter(ID3D11InfoQueue* This) {
++    return This->lpVtbl->PushEmptyStorageFilter(This);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_PushCopyOfStorageFilter(ID3D11InfoQueue* This) {
++    return This->lpVtbl->PushCopyOfStorageFilter(This);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_PushStorageFilter(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter) {
++    return This->lpVtbl->PushStorageFilter(This,pFilter);
++}
++static FORCEINLINE void ID3D11InfoQueue_PopStorageFilter(ID3D11InfoQueue* This) {
++    This->lpVtbl->PopStorageFilter(This);
++}
++static FORCEINLINE UINT ID3D11InfoQueue_GetStorageFilterStackSize(ID3D11InfoQueue* This) {
++    return This->lpVtbl->GetStorageFilterStackSize(This);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_AddRetrievalFilterEntries(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter) {
++    return This->lpVtbl->AddRetrievalFilterEntries(This,pFilter);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_GetRetrievalFilter(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter,SIZE_T *pFilterByteLength) {
++    return This->lpVtbl->GetRetrievalFilter(This,pFilter,pFilterByteLength);
++}
++static FORCEINLINE void ID3D11InfoQueue_ClearRetrievalFilter(ID3D11InfoQueue* This) {
++    This->lpVtbl->ClearRetrievalFilter(This);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_PushEmptyRetrievalFilter(ID3D11InfoQueue* This) {
++    return This->lpVtbl->PushEmptyRetrievalFilter(This);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_PushCopyOfRetrievalFilter(ID3D11InfoQueue* This) {
++    return This->lpVtbl->PushCopyOfRetrievalFilter(This);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_PushRetrievalFilter(ID3D11InfoQueue* This,D3D11_INFO_QUEUE_FILTER *pFilter) {
++    return This->lpVtbl->PushRetrievalFilter(This,pFilter);
++}
++static FORCEINLINE void ID3D11InfoQueue_PopRetrievalFilter(ID3D11InfoQueue* This) {
++    This->lpVtbl->PopRetrievalFilter(This);
++}
++static FORCEINLINE UINT ID3D11InfoQueue_GetRetrievalFilterStackSize(ID3D11InfoQueue* This) {
++    return This->lpVtbl->GetRetrievalFilterStackSize(This);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_AddMessage(ID3D11InfoQueue* This,D3D11_MESSAGE_CATEGORY Category,D3D11_MESSAGE_SEVERITY Severity,D3D11_MESSAGE_ID ID,LPCSTR pDescription) {
++    return This->lpVtbl->AddMessage(This,Category,Severity,ID,pDescription);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_AddApplicationMessage(ID3D11InfoQueue* This,D3D11_MESSAGE_SEVERITY Severity,LPCSTR pDescription) {
++    return This->lpVtbl->AddApplicationMessage(This,Severity,pDescription);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_SetBreakOnCategory(ID3D11InfoQueue* This,D3D11_MESSAGE_CATEGORY Category,WINBOOL bEnable) {
++    return This->lpVtbl->SetBreakOnCategory(This,Category,bEnable);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_SetBreakOnSeverity(ID3D11InfoQueue* This,D3D11_MESSAGE_SEVERITY Severity,WINBOOL bEnable) {
++    return This->lpVtbl->SetBreakOnSeverity(This,Severity,bEnable);
++}
++static FORCEINLINE HRESULT ID3D11InfoQueue_SetBreakOnID(ID3D11InfoQueue* This,D3D11_MESSAGE_ID ID,WINBOOL bEnable) {
++    return This->lpVtbl->SetBreakOnID(This,ID,bEnable);
++}
++static FORCEINLINE WINBOOL ID3D11InfoQueue_GetBreakOnCategory(ID3D11InfoQueue* This,D3D11_MESSAGE_CATEGORY Category) {
++    return This->lpVtbl->GetBreakOnCategory(This,Category);
++}
++static FORCEINLINE WINBOOL ID3D11InfoQueue_GetBreakOnSeverity(ID3D11InfoQueue* This,D3D11_MESSAGE_SEVERITY Severity) {
++    return This->lpVtbl->GetBreakOnSeverity(This,Severity);
++}
++static FORCEINLINE WINBOOL ID3D11InfoQueue_GetBreakOnID(ID3D11InfoQueue* This,D3D11_MESSAGE_ID ID) {
++    return This->lpVtbl->GetBreakOnID(This,ID);
++}
++static FORCEINLINE void ID3D11InfoQueue_SetMuteDebugOutput(ID3D11InfoQueue* This,WINBOOL bMute) {
++    This->lpVtbl->SetMuteDebugOutput(This,bMute);
++}
++static FORCEINLINE WINBOOL ID3D11InfoQueue_GetMuteDebugOutput(ID3D11InfoQueue* This) {
++    return This->lpVtbl->GetMuteDebugOutput(This);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_SetMessageCountLimit_Proxy(
++    ID3D11InfoQueue* This,
++    UINT64 MessageCountLimit);
++void __RPC_STUB ID3D11InfoQueue_SetMessageCountLimit_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++void STDMETHODCALLTYPE ID3D11InfoQueue_ClearStoredMessages_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_ClearStoredMessages_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_GetMessage_Proxy(
++    ID3D11InfoQueue* This,
++    UINT64 MessageIndex,
++    D3D11_MESSAGE *pMessage,
++    SIZE_T *pMessageByteLength);
++void __RPC_STUB ID3D11InfoQueue_GetMessage_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++UINT64 STDMETHODCALLTYPE ID3D11InfoQueue_GetNumMessagesAllowedByStorageFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_GetNumMessagesAllowedByStorageFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++UINT64 STDMETHODCALLTYPE ID3D11InfoQueue_GetNumMessagesDeniedByStorageFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_GetNumMessagesDeniedByStorageFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++UINT64 STDMETHODCALLTYPE ID3D11InfoQueue_GetNumStoredMessages_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_GetNumStoredMessages_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++UINT64 STDMETHODCALLTYPE ID3D11InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++UINT64 STDMETHODCALLTYPE ID3D11InfoQueue_GetNumMessagesDiscardedByMessageCountLimit_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_GetNumMessagesDiscardedByMessageCountLimit_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++UINT64 STDMETHODCALLTYPE ID3D11InfoQueue_GetMessageCountLimit_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_GetMessageCountLimit_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_AddStorageFilterEntries_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_INFO_QUEUE_FILTER *pFilter);
++void __RPC_STUB ID3D11InfoQueue_AddStorageFilterEntries_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_GetStorageFilter_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_INFO_QUEUE_FILTER *pFilter,
++    SIZE_T *pFilterByteLength);
++void __RPC_STUB ID3D11InfoQueue_GetStorageFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++void STDMETHODCALLTYPE ID3D11InfoQueue_ClearStorageFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_ClearStorageFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_PushEmptyStorageFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_PushEmptyStorageFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_PushCopyOfStorageFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_PushCopyOfStorageFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_PushStorageFilter_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_INFO_QUEUE_FILTER *pFilter);
++void __RPC_STUB ID3D11InfoQueue_PushStorageFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++void STDMETHODCALLTYPE ID3D11InfoQueue_PopStorageFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_PopStorageFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++UINT STDMETHODCALLTYPE ID3D11InfoQueue_GetStorageFilterStackSize_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_GetStorageFilterStackSize_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_AddRetrievalFilterEntries_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_INFO_QUEUE_FILTER *pFilter);
++void __RPC_STUB ID3D11InfoQueue_AddRetrievalFilterEntries_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_GetRetrievalFilter_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_INFO_QUEUE_FILTER *pFilter,
++    SIZE_T *pFilterByteLength);
++void __RPC_STUB ID3D11InfoQueue_GetRetrievalFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++void STDMETHODCALLTYPE ID3D11InfoQueue_ClearRetrievalFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_ClearRetrievalFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_PushEmptyRetrievalFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_PushEmptyRetrievalFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_PushCopyOfRetrievalFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_PushCopyOfRetrievalFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_PushRetrievalFilter_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_INFO_QUEUE_FILTER *pFilter);
++void __RPC_STUB ID3D11InfoQueue_PushRetrievalFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++void STDMETHODCALLTYPE ID3D11InfoQueue_PopRetrievalFilter_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_PopRetrievalFilter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++UINT STDMETHODCALLTYPE ID3D11InfoQueue_GetRetrievalFilterStackSize_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_GetRetrievalFilterStackSize_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_AddMessage_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_MESSAGE_CATEGORY Category,
++    D3D11_MESSAGE_SEVERITY Severity,
++    D3D11_MESSAGE_ID ID,
++    LPCSTR pDescription);
++void __RPC_STUB ID3D11InfoQueue_AddMessage_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_AddApplicationMessage_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_MESSAGE_SEVERITY Severity,
++    LPCSTR pDescription);
++void __RPC_STUB ID3D11InfoQueue_AddApplicationMessage_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_SetBreakOnCategory_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_MESSAGE_CATEGORY Category,
++    WINBOOL bEnable);
++void __RPC_STUB ID3D11InfoQueue_SetBreakOnCategory_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_SetBreakOnSeverity_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_MESSAGE_SEVERITY Severity,
++    WINBOOL bEnable);
++void __RPC_STUB ID3D11InfoQueue_SetBreakOnSeverity_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ID3D11InfoQueue_SetBreakOnID_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_MESSAGE_ID ID,
++    WINBOOL bEnable);
++void __RPC_STUB ID3D11InfoQueue_SetBreakOnID_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++WINBOOL STDMETHODCALLTYPE ID3D11InfoQueue_GetBreakOnCategory_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_MESSAGE_CATEGORY Category);
++void __RPC_STUB ID3D11InfoQueue_GetBreakOnCategory_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++WINBOOL STDMETHODCALLTYPE ID3D11InfoQueue_GetBreakOnSeverity_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_MESSAGE_SEVERITY Severity);
++void __RPC_STUB ID3D11InfoQueue_GetBreakOnSeverity_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++WINBOOL STDMETHODCALLTYPE ID3D11InfoQueue_GetBreakOnID_Proxy(
++    ID3D11InfoQueue* This,
++    D3D11_MESSAGE_ID ID);
++void __RPC_STUB ID3D11InfoQueue_GetBreakOnID_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++void STDMETHODCALLTYPE ID3D11InfoQueue_SetMuteDebugOutput_Proxy(
++    ID3D11InfoQueue* This,
++    WINBOOL bMute);
++void __RPC_STUB ID3D11InfoQueue_SetMuteDebugOutput_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++WINBOOL STDMETHODCALLTYPE ID3D11InfoQueue_GetMuteDebugOutput_Proxy(
++    ID3D11InfoQueue* This);
++void __RPC_STUB ID3D11InfoQueue_GetMuteDebugOutput_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __ID3D11InfoQueue_INTERFACE_DEFINED__ */
++
++/* Begin additional prototypes for all interfaces */
++
++
++/* End additional prototypes */
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* __d3d11sdklayers_h__ */
+diff --git a/mingw-w64-headers/direct-x/include/d3d11sdklayers.idl b/mingw-w64-headers/direct-x/include/d3d11sdklayers.idl
+new file mode 100644
+index 0000000..e74922a
+--- /dev/null
++++ b/mingw-w64-headers/direct-x/include/d3d11sdklayers.idl
+@@ -0,0 +1,1259 @@
++/*
++ * Copyright 2013 Jacek Caban for CodeWeavers
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
++ */
++
++import "oaidl.idl";
++import "ocidl.idl";
++import "d3d11.idl";
++
++typedef enum D3D11_MESSAGE_CATEGORY {
++    D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED,
++    D3D11_MESSAGE_CATEGORY_MISCELLANEOUS,
++    D3D11_MESSAGE_CATEGORY_INITIALIZATION,
++    D3D11_MESSAGE_CATEGORY_CLEANUP,
++    D3D11_MESSAGE_CATEGORY_COMPILATION,
++    D3D11_MESSAGE_CATEGORY_STATE_CREATION,
++    D3D11_MESSAGE_CATEGORY_STATE_SETTING,
++    D3D11_MESSAGE_CATEGORY_STATE_GETTING,
++    D3D11_MESSAGE_CATEGORY_RESOURCE_MANIPULATION,
++    D3D11_MESSAGE_CATEGORY_EXECUTION,
++    D3D11_MESSAGE_CATEGORY_SHADER
++} D3D11_MESSAGE_CATEGORY;
++
++typedef enum D3D11_MESSAGE_SEVERITY {
++    D3D11_MESSAGE_SEVERITY_CORRUPTION,
++    D3D11_MESSAGE_SEVERITY_ERROR,
++    D3D11_MESSAGE_SEVERITY_WARNING,
++    D3D11_MESSAGE_SEVERITY_INFO,
++    D3D11_MESSAGE_SEVERITY_MESSAGE
++} D3D11_MESSAGE_SEVERITY;
++
++typedef enum D3D11_MESSAGE_ID {
++    D3D11_MESSAGE_ID_UNKNOWN = 0,
++    D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD,
++    D3D11_MESSAGE_ID_STRING_FROM_APPLICATION,
++    D3D11_MESSAGE_ID_CORRUPTED_THIS,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER1,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER2,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER3,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER4,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER5,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER6,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER7,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER8,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER9,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER10,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER11,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER12,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER13,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER14,
++    D3D11_MESSAGE_ID_CORRUPTED_PARAMETER15,
++    D3D11_MESSAGE_ID_CORRUPTED_MULTITHREADING,
++    D3D11_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_GETPRIVATEDATA_MOREDATA,
++    D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA,
++    D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN,
++    D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS,
++    D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS,
++    D3D11_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES,
++    D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE,
++    D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS,
++    D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS,
++    D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEBUFFER_NULLDESC,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS,
++    D3D11_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_NULLDESC,
++    D3D11_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_NULLDESC,
++    D3D11_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_NULLDESC,
++    D3D11_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC,
++    D3D11_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE,
++    D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE,
++    D3D11_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE,
++    D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC,
++    D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY,
++    D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS,
++    D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG,
++    D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC,
++    D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED,
++    D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED,
++    D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER,
++    D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE,
++    D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER,
++    D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID,
++    D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE,
++    D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED,
++    D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER,
++    D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER,
++    D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER,
++    D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED,
++    D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER,
++    D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT,
++    D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR,
++    D3D11_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH,
++    D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH,
++    D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID,
++    D3D11_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE,
++    D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE,
++    D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE,
++    D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE,
++    D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID,
++    D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID,
++    D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID,
++    D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID,
++    D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID,
++    D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE,
++    D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS,
++    D3D11_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED,
++    D3D11_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN,
++    D3D11_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED,
++    D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE,
++    D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE,
++    D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS,
++    D3D11_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED,
++    D3D11_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN,
++    D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE,
++    D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED,
++    D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE,
++    D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE,
++    D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS,
++    D3D11_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED,
++    D3D11_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN,
++    D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE,
++    D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED,
++    D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE,
++    D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE,
++    D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS,
++    D3D11_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED,
++    D3D11_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN,
++    D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE,
++    D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED,
++    D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED,
++    D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED,
++    D3D11_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS,
++    D3D11_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN,
++    D3D11_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE,
++    D3D11_MESSAGE_ID_REF_THREADING_MODE,
++    D3D11_MESSAGE_ID_REF_UMDRIVER_EXCEPTION,
++    D3D11_MESSAGE_ID_REF_KMDRIVER_EXCEPTION,
++    D3D11_MESSAGE_ID_REF_HARDWARE_EXCEPTION,
++    D3D11_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE,
++    D3D11_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER,
++    D3D11_MESSAGE_ID_REF_OUT_OF_MEMORY,
++    D3D11_MESSAGE_ID_REF_INFO,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0,
++    D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT,
++    D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT,
++    D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT,
++    D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC,
++    D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH,
++    D3D11_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW,
++    D3D11_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH,
++    D3D11_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY,
++    D3D11_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY,
++    D3D11_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER,
++    D3D11_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED,
++    D3D11_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER,
++    D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN,
++    D3D11_MESSAGE_ID_CREATECOUNTER_NULLDESC,
++    D3D11_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER,
++    D3D11_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER,
++    D3D11_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE,
++    D3D11_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED,
++    D3D11_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION,
++    D3D11_MESSAGE_ID_QUERY_BEGIN_DUPLICATE,
++    D3D11_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS,
++    D3D11_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION,
++    D3D11_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS,
++    D3D11_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN,
++    D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE,
++    D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS,
++    D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN,
++    D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE,
++    D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH,
++    D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY,
++    D3D11_MESSAGE_ID_LIVE_BUFFER,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE1D,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE2D,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE3D,
++    D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW,
++    D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW,
++    D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW,
++    D3D11_MESSAGE_ID_LIVE_VERTEXSHADER,
++    D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER,
++    D3D11_MESSAGE_ID_LIVE_PIXELSHADER,
++    D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT,
++    D3D11_MESSAGE_ID_LIVE_SAMPLER,
++    D3D11_MESSAGE_ID_LIVE_BLENDSTATE,
++    D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE,
++    D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE,
++    D3D11_MESSAGE_ID_LIVE_QUERY,
++    D3D11_MESSAGE_ID_LIVE_PREDICATE,
++    D3D11_MESSAGE_ID_LIVE_COUNTER,
++    D3D11_MESSAGE_ID_LIVE_DEVICE,
++    D3D11_MESSAGE_ID_LIVE_SWAPCHAIN,
++    D3D11_MESSAGE_ID_D3D10_MESSAGES_END,
++
++    D3D11_MESSAGE_ID_D3D10L9_MESSAGES_START = 0x00100000,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE,
++    D3D11_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS,
++    D3D11_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D,
++    D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE,
++    D3D11_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS,
++    D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS,
++    D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX,
++    D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS,
++    D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS,
++    D3D11_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY,
++    D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK,
++    D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK,
++    D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE,
++    D3D11_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER,
++    D3D11_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE,
++    D3D11_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT,
++    D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES,
++    D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED,
++    D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE,
++    D3D11_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3,
++    D3D11_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED,
++    D3D11_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO,
++    D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION,
++    D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR,
++    D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA,
++    D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP,
++    D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT,
++    D3D11_MESSAGE_ID_COPYRESOURCE_NO_3D_MISMATCHED_UPDATES,
++    D3D11_MESSAGE_ID_D3D10L9_MESSAGES_END,
++
++    D3D11_MESSAGE_ID_D3D11_MESSAGES_START = 0x00200000,
++    D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS,
++    D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE,
++    D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE,
++    D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_COMMANDLISTFLAGS,
++    D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_SINGLETHREADED,
++    D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN,
++    D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_FINISHDISPLAYLIST_ONIMMEDIATECONTEXT,
++    D3D11_MESSAGE_ID_FINISHDISPLAYLIST_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_FINISHDISPLAYLIST_INVALID_CALL_RETURN,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES,
++    D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES,
++    D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_HAZARD,
++    D3D11_MESSAGE_ID_HSSETSHADERRESOURCES_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL,
++    D3D11_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE,
++    D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE,
++    D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE,
++    D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFER,
++    D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_HSSETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_HSGETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_HSGETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_HSGETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_HAZARD,
++    D3D11_MESSAGE_ID_DSSETSHADERRESOURCES_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL,
++    D3D11_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE,
++    D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE,
++    D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE,
++    D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFER,
++    D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_DSSETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_DSGETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_DSGETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_DSGETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH,
++    D3D11_MESSAGE_ID_DEFERRED_CONTEXT_REMOVAL_PROCESS_AT_FAULT,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED,
++    D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD,
++    D3D11_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE,
++    D3D11_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS,
++    D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH,
++    D3D11_MESSAGE_ID_CREATE_CONTEXT,
++    D3D11_MESSAGE_ID_LIVE_CONTEXT,
++    D3D11_MESSAGE_ID_DESTROY_CONTEXT,
++    D3D11_MESSAGE_ID_CREATE_BUFFER,
++    D3D11_MESSAGE_ID_LIVE_BUFFER_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_BUFFER,
++    D3D11_MESSAGE_ID_CREATE_TEXTURE1D,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE1D_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_TEXTURE1D,
++    D3D11_MESSAGE_ID_CREATE_TEXTURE2D,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE2D_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_TEXTURE2D,
++    D3D11_MESSAGE_ID_CREATE_TEXTURE3D,
++    D3D11_MESSAGE_ID_LIVE_TEXTURE3D_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_TEXTURE3D,
++    D3D11_MESSAGE_ID_CREATE_SHADERRESOURCEVIEW,
++    D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_SHADERRESOURCEVIEW,
++    D3D11_MESSAGE_ID_CREATE_RENDERTARGETVIEW,
++    D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_RENDERTARGETVIEW,
++    D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILVIEW,
++    D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILVIEW,
++    D3D11_MESSAGE_ID_CREATE_VERTEXSHADER,
++    D3D11_MESSAGE_ID_LIVE_VERTEXSHADER_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_VERTEXSHADER,
++    D3D11_MESSAGE_ID_CREATE_HULLSHADER,
++    D3D11_MESSAGE_ID_LIVE_HULLSHADER,
++    D3D11_MESSAGE_ID_DESTROY_HULLSHADER,
++    D3D11_MESSAGE_ID_CREATE_DOMAINSHADER,
++    D3D11_MESSAGE_ID_LIVE_DOMAINSHADER,
++    D3D11_MESSAGE_ID_DESTROY_DOMAINSHADER,
++    D3D11_MESSAGE_ID_CREATE_GEOMETRYSHADER,
++    D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_GEOMETRYSHADER,
++    D3D11_MESSAGE_ID_CREATE_PIXELSHADER,
++    D3D11_MESSAGE_ID_LIVE_PIXELSHADER_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_PIXELSHADER,
++    D3D11_MESSAGE_ID_CREATE_INPUTLAYOUT,
++    D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_INPUTLAYOUT,
++    D3D11_MESSAGE_ID_CREATE_SAMPLER,
++    D3D11_MESSAGE_ID_LIVE_SAMPLER_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_SAMPLER,
++    D3D11_MESSAGE_ID_CREATE_BLENDSTATE,
++    D3D11_MESSAGE_ID_LIVE_BLENDSTATE_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_BLENDSTATE,
++    D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILSTATE,
++    D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILSTATE,
++    D3D11_MESSAGE_ID_CREATE_RASTERIZERSTATE,
++    D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_RASTERIZERSTATE,
++    D3D11_MESSAGE_ID_CREATE_QUERY,
++    D3D11_MESSAGE_ID_LIVE_QUERY_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_QUERY,
++    D3D11_MESSAGE_ID_CREATE_PREDICATE,
++    D3D11_MESSAGE_ID_LIVE_PREDICATE_WIN7,
++    D3D11_MESSAGE_ID_DESTROY_PREDICATE,
++    D3D11_MESSAGE_ID_CREATE_COUNTER,
++    D3D11_MESSAGE_ID_DESTROY_COUNTER,
++    D3D11_MESSAGE_ID_CREATE_COMMANDLIST,
++    D3D11_MESSAGE_ID_LIVE_COMMANDLIST,
++    D3D11_MESSAGE_ID_DESTROY_COMMANDLIST,
++    D3D11_MESSAGE_ID_CREATE_CLASSINSTANCE,
++    D3D11_MESSAGE_ID_LIVE_CLASSINSTANCE,
++    D3D11_MESSAGE_ID_DESTROY_CLASSINSTANCE,
++    D3D11_MESSAGE_ID_CREATE_CLASSLINKAGE,
++    D3D11_MESSAGE_ID_LIVE_CLASSLINKAGE,
++    D3D11_MESSAGE_ID_DESTROY_CLASSLINKAGE,
++    D3D11_MESSAGE_ID_LIVE_DEVICE_WIN7,
++    D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY_WIN7,
++    D3D11_MESSAGE_ID_CREATE_COMPUTESHADER,
++    D3D11_MESSAGE_ID_LIVE_COMPUTESHADER,
++    D3D11_MESSAGE_ID_DESTROY_COMPUTESHADER,
++    D3D11_MESSAGE_ID_CREATE_UNORDEREDACCESSVIEW,
++    D3D11_MESSAGE_ID_LIVE_UNORDEREDACCESSVIEW,
++    D3D11_MESSAGE_ID_DESTROY_UNORDEREDACCESSVIEW,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACES_FEATURELEVEL,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACE_COUNT_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_INDEX,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_TYPE,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_DATA,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_UNBOUND_INSTANCE_DATA,
++    D3D11_MESSAGE_ID_DEVICE_SETSHADER_INSTANCE_DATA_BINDINGS,
++    D3D11_MESSAGE_ID_DEVICE_CREATESHADER_CLASSLINKAGE_FULL,
++    D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE,
++    D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE,
++    D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_HAZARD,
++    D3D11_MESSAGE_ID_CSSETSHADERRESOURCES_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL,
++    D3D11_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE,
++    D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERTYPE,
++    D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE,
++    D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER,
++    D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_HAZARD,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP,
++    D3D11_MESSAGE_ID_CSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_PSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_TOOMANYOBJECTS,
++    D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_HAZARD,
++    D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH,
++    D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS,
++    D3D11_MESSAGE_ID_CREATESHADERRESESOURCEVIEW_TOOMANYOBJECTS,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW,
++    D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDCONTEXT,
++    D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDRESOURCE,
++    D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDMINLOD,
++    D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDCONTEXT,
++    D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDRESOURCE,
++    D3D11_MESSAGE_ID_OMSETDEPTHSTENCIL_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY,
++    D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY,
++    D3D11_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO,
++    D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH,
++    D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED,
++    D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET,
++    D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET,
++    D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE,
++    D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE,
++    D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDVIEW,
++    D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDOFFSET,
++    D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_TOOMANYVIEWS,
++    D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED,
++    D3D11_MESSAGE_ID_REF_WARNING,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_PIXEL_SHADER_WITHOUT_RTV_OR_DSV,
++    D3D11_MESSAGE_ID_SHADER_ABORT,
++    D3D11_MESSAGE_ID_SHADER_MESSAGE,
++    D3D11_MESSAGE_ID_SHADER_ERROR,
++    D3D11_MESSAGE_ID_OFFERRESOURCES_INVALIDRESOURCE,
++    D3D11_MESSAGE_ID_HSSETSAMPLERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_DSSETSAMPLERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_CSSETSAMPLERS_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_HSSETSHADER_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_DSSETSHADER_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_CSSETSHADER_UNBINDDELETINGOBJECT,
++    D3D11_MESSAGE_ID_ENQUEUESETEVENT_INVALIDARG_RETURN,
++    D3D11_MESSAGE_ID_ENQUEUESETEVENT_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_ENQUEUESETEVENT_ACCESSDENIED_RETURN,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NUMUAVS_INVALIDRANGE,
++    D3D11_MESSAGE_ID_D3D11_MESSAGES_END,
++
++    D3D11_MESSAGE_ID_D3D11_1_MESSAGES_START = 0x00300000,
++    D3D11_MESSAGE_ID_CREATE_VIDEODECODER,
++    D3D11_MESSAGE_ID_CREATE_VIDEOPROCESSORENUM,
++    D3D11_MESSAGE_ID_CREATE_VIDEOPROCESSOR,
++    D3D11_MESSAGE_ID_CREATE_DECODEROUTPUTVIEW,
++    D3D11_MESSAGE_ID_CREATE_PROCESSORINPUTVIEW,
++    D3D11_MESSAGE_ID_CREATE_PROCESSOROUTPUTVIEW,
++    D3D11_MESSAGE_ID_CREATE_DEVICECONTEXTSTATE,
++    D3D11_MESSAGE_ID_LIVE_VIDEODECODER,
++    D3D11_MESSAGE_ID_LIVE_VIDEOPROCESSORENUM,
++    D3D11_MESSAGE_ID_LIVE_VIDEOPROCESSOR,
++    D3D11_MESSAGE_ID_LIVE_DECODEROUTPUTVIEW,
++    D3D11_MESSAGE_ID_LIVE_PROCESSORINPUTVIEW,
++    D3D11_MESSAGE_ID_LIVE_PROCESSOROUTPUTVIEW,
++    D3D11_MESSAGE_ID_LIVE_DEVICECONTEXTSTATE,
++    D3D11_MESSAGE_ID_DESTROY_VIDEODECODER,
++    D3D11_MESSAGE_ID_DESTROY_VIDEOPROCESSORENUM,
++    D3D11_MESSAGE_ID_DESTROY_VIDEOPROCESSOR,
++    D3D11_MESSAGE_ID_DESTROY_DECODEROUTPUTVIEW,
++    D3D11_MESSAGE_ID_DESTROY_PROCESSORINPUTVIEW,
++    D3D11_MESSAGE_ID_DESTROY_PROCESSOROUTPUTVIEW,
++    D3D11_MESSAGE_ID_DESTROY_DEVICECONTEXTSTATE,
++    D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDFLAGS,
++    D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDFEATURELEVEL,
++    D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_FEATURELEVELS_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_CREATEDEVICECONTEXTSTATE_INVALIDREFIID,
++    D3D11_MESSAGE_ID_DEVICE_DISCARDVIEW_INVALIDVIEW,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION1_INVALIDCOPYFLAGS,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE1_INVALIDCOPYFLAGS,
++    D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_NULLPARAM,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_ZEROWIDTHHEIGHT,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_DRIVER_INVALIDBUFFERSIZE,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODER_DRIVER_INVALIDBUFFERUSAGE,
++    D3D11_MESSAGE_ID_GETVIDEODECODERPROFILECOUNT_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_NULLPARAM,
++    D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_INVALIDINDEX,
++    D3D11_MESSAGE_ID_GETVIDEODECODERPROFILE_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CHECKVIDEODECODERFORMAT_NULLPARAM,
++    D3D11_MESSAGE_ID_CHECKVIDEODECODERFORMAT_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_GETVIDEODECODERCONFIGCOUNT_NULLPARAM,
++    D3D11_MESSAGE_ID_GETVIDEODECODERCONFIGCOUNT_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_NULLPARAM,
++    D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_INVALIDINDEX,
++    D3D11_MESSAGE_ID_GETVIDEODECODERCONFIG_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_GETDECODERCREATIONPARAMS_NULLPARAM,
++    D3D11_MESSAGE_ID_GETDECODERDRIVERHANDLE_NULLPARAM,
++    D3D11_MESSAGE_ID_GETDECODERBUFFER_NULLPARAM,
++    D3D11_MESSAGE_ID_GETDECODERBUFFER_INVALIDBUFFER,
++    D3D11_MESSAGE_ID_GETDECODERBUFFER_INVALIDTYPE,
++    D3D11_MESSAGE_ID_GETDECODERBUFFER_LOCKED,
++    D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_NULLPARAM,
++    D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_INVALIDTYPE,
++    D3D11_MESSAGE_ID_RELEASEDECODERBUFFER_NOTLOCKED,
++    D3D11_MESSAGE_ID_DECODERBEGINFRAME_NULLPARAM,
++    D3D11_MESSAGE_ID_DECODERBEGINFRAME_HAZARD,
++    D3D11_MESSAGE_ID_DECODERENDFRAME_NULLPARAM,
++    D3D11_MESSAGE_ID_SUBMITDECODERBUFFERS_NULLPARAM,
++    D3D11_MESSAGE_ID_SUBMITDECODERBUFFERS_INVALIDTYPE,
++    D3D11_MESSAGE_ID_DECODEREXTENSION_NULLPARAM,
++    D3D11_MESSAGE_ID_DECODEREXTENSION_INVALIDRESOURCE,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_NULLPARAM,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDFRAMEFORMAT,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDUSAGE,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDINPUTFRAMERATE,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDOUTPUTFRAMERATE,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORENUMERATOR_INVALIDWIDTHHEIGHT,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORCONTENTDESC_NULLPARAM,
++    D3D11_MESSAGE_ID_CHECKVIDEOPROCESSORFORMAT_NULLPARAM,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORCAPS_NULLPARAM,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORRATECONVERSIONCAPS_NULLPARAM,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORRATECONVERSIONCAPS_INVALIDINDEX,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORCUSTOMRATE_NULLPARAM,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORCUSTOMRATE_INVALIDINDEX,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORFILTERRANGE_NULLPARAM,
++    D3D11_MESSAGE_ID_GETVIDEOPROCESSORFILTERRANGE_UNSUPPORTED,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOR_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOR_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTTARGETRECT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTBACKGROUNDCOLOR_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTBACKGROUNDCOLOR_INVALIDALPHA,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCOLORSPACE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_UNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTALPHAFILLMODE_INVALIDFILLMODE,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSTEREOMODE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTSTEREOMODE_UNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTEXTENSION_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTTARGETRECT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTBACKGROUNDCOLOR_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCOLORSPACE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTALPHAFILLMODE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTCONSTRICTION_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_UNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETOUTPUTCONSTRICTION_INVALIDSIZE,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTSTEREOMODE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETOUTPUTEXTENSION_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFRAMEFORMAT_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMCOLORSPACE_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDRATE,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDFLAG,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMOUTPUTRATE_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSOURCERECT_INVALIDRECT,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMDESTRECT_INVALIDRECT,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_INVALIDALPHA,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDCOUNT,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPALETTE_INVALIDALPHA,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_INVALIDRATIO,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_INVALIDRANGE,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMLUMAKEY_UNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_UNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_FLIPUNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_MONOOFFSETUNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_FORMATUNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMSTEREOFORMAT_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMAUTOPROCESSINGMODE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMAUTOPROCESSINGMODE_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDFILTER,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_UNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMFILTER_INVALIDLEVEL,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMEXTENSION_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMEXTENSION_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMFRAMEFORMAT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMCOLORSPACE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMOUTPUTRATE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMSOURCERECT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMDESTRECT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMALPHA_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMPALETTE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMPIXELASPECTRATIO_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMLUMAKEY_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMSTEREOFORMAT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMAUTOPROCESSINGMODE_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMFILTER_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMEXTENSION_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMEXTENSION_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDSTREAMCOUNT,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_TARGETRECT,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDOUTPUT,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDPASTFRAMES,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDFUTUREFRAMES,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDSOURCERECT,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDDESTRECT,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDINPUTRESOURCE,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDARRAYSIZE,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDARRAY,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_RIGHTEXPECTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_RIGHTNOTEXPECTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_STEREONOTENABLED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INVALIDRIGHTRESOURCE,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_NOSTEREOSTREAMS,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_INPUTHAZARD,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORBLT_OUTPUTHAZARD,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_NULLPARAM,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDTYPE,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDBIND,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_UNSUPPORTEDFORMAT,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDMIP,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_UNSUPPORTEMIP,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDARRAYSIZE,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDARRAY,
++    D3D11_MESSAGE_ID_CREATEVIDEODECODEROUTPUTVIEW_INVALIDDIMENSION,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_NULLPARAM,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDTYPE,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDBIND,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMISC,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDUSAGE,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDFOURCC,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMIP,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_UNSUPPORTEDMIP,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDARRAYSIZE,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDARRAY,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDDIMENSION,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_NULLPARAM,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDTYPE,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDBIND,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDFORMAT,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMIP,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_UNSUPPORTEDMIP,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_UNSUPPORTEDARRAY,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDARRAY,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDDIMENSION,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_FORCED_SAMPLE_COUNT,
++    D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS,
++    D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDARRAYWITHDECODER,
++    D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDARRAYWITHDECODER,
++    D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDARRAYWITHDECODER,
++    D3D11_MESSAGE_ID_DEVICE_LOCKEDOUT_INTERFACE,
++    D3D11_MESSAGE_ID_REF_WARNING_ATOMIC_INCONSISTENT,
++    D3D11_MESSAGE_ID_REF_WARNING_READING_UNINITIALIZED_RESOURCE,
++    D3D11_MESSAGE_ID_REF_WARNING_RAW_HAZARD,
++    D3D11_MESSAGE_ID_REF_WARNING_WAR_HAZARD,
++    D3D11_MESSAGE_ID_REF_WARNING_WAW_HAZARD,
++    D3D11_MESSAGE_ID_CREATECRYPTOSESSION_NULLPARAM,
++    D3D11_MESSAGE_ID_CREATECRYPTOSESSION_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_GETCRYPTOTYPE_NULLPARAM,
++    D3D11_MESSAGE_ID_GETDECODERPROFILE_NULLPARAM,
++    D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATESIZE_NULLPARAM,
++    D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATE_NULLPARAM,
++    D3D11_MESSAGE_ID_GETCRYPTOSESSIONCERTIFICATE_WRONGSIZE,
++    D3D11_MESSAGE_ID_GETCRYPTOSESSIONHANDLE_WRONGSIZE,
++    D3D11_MESSAGE_ID_NEGOTIATECRPYTOSESSIONKEYEXCHANGE_NULLPARAM,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_UNSUPPORTED,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_NULLPARAM,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_WRONGDEVICE,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_WRONGDEVICE,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_FORMAT_MISMATCH,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SIZE_MISMATCH,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_MULTISAMPLED,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_NOT_STAGING,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_MAPPED,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_MAPPED,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_OFFERED,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_DST_OFFERED,
++    D3D11_MESSAGE_ID_ENCRYPTIONBLT_SRC_CONTENT_UNDEFINED,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_NULLPARAM,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_WRONGDEVICE,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_WRONGDEVICE,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_FORMAT_MISMATCH,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SIZE_MISMATCH,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_MULTISAMPLED,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_NOT_STAGING,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_NOT_RENDER_TARGET,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_MAPPED,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_MAPPED,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_OFFERED,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_DST_OFFERED,
++    D3D11_MESSAGE_ID_DECRYPTIONBLT_SRC_CONTENT_UNDEFINED,
++    D3D11_MESSAGE_ID_STARTSESSIONKEYREFRESH_NULLPARAM,
++    D3D11_MESSAGE_ID_STARTSESSIONKEYREFRESH_INVALIDSIZE,
++    D3D11_MESSAGE_ID_FINISHSESSIONKEYREFRESH_NULLPARAM,
++    D3D11_MESSAGE_ID_GETENCRYPTIONBLTKEY_NULLPARAM,
++    D3D11_MESSAGE_ID_GETENCRYPTIONBLTKEY_INVALIDSIZE,
++    D3D11_MESSAGE_ID_GETCONTENTPROTECTIONCAPS_NULLPARAM,
++    D3D11_MESSAGE_ID_CHECKCRYPTOKEYEXCHANGE_NULLPARAM,
++    D3D11_MESSAGE_ID_CHECKCRYPTOKEYEXCHANGE_INVALIDINDEX,
++    D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_NULLPARAM,
++    D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_UNSUPPORTED,
++    D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_INVALIDTYPE,
++    D3D11_MESSAGE_ID_CREATEAUTHENTICATEDCHANNEL_OUTOFMEMORY_RETURN,
++    D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATESIZE_INVALIDCHANNEL,
++    D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATESIZE_NULLPARAM,
++    D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_INVALIDCHANNEL,
++    D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_NULLPARAM,
++    D3D11_MESSAGE_ID_GETAUTHENTICATEDCHANNELCERTIFICATE_WRONGSIZE,
++    D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_INVALIDCHANNEL,
++    D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_NULLPARAM,
++    D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_NULLPARAM,
++    D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_WRONGCHANNEL,
++    D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_UNSUPPORTEDQUERY,
++    D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_WRONGSIZE,
++    D3D11_MESSAGE_ID_QUERYAUTHENTICATEDCHANNEL_INVALIDPROCESSINDEX,
++    D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_NULLPARAM,
++    D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_WRONGCHANNEL,
++    D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_UNSUPPORTEDCONFIGURE,
++    D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_WRONGSIZE,
++    D3D11_MESSAGE_ID_CONFIGUREAUTHENTICATEDCHANNEL_INVALIDPROCESSIDTYPE,
++    D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT,
++    D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT,
++    D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT,
++    D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT,
++    D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT,
++    D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFEROFFSETORCOUNT,
++    D3D11_MESSAGE_ID_NEGOTIATECRPYTOSESSIONKEYEXCHANGE_INVALIDSIZE,
++    D3D11_MESSAGE_ID_NEGOTIATEAUTHENTICATEDCHANNELKEYEXCHANGE_INVALIDSIZE,
++    D3D11_MESSAGE_ID_OFFERRESOURCES_INVALIDPRIORITY,
++    D3D11_MESSAGE_ID_GETCRYPTOSESSIONHANDLE_OUTOFMEMORY,
++    D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_NULLPARAM,
++    D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDTYPE,
++    D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDBIND,
++    D3D11_MESSAGE_ID_ACQUIREHANDLEFORCAPTURE_INVALIDARRAY,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_NULLPARAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_INVALIDSTREAM,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_INVALID,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMROTATION_UNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORGETSTREAMROTATION_NULLPARAM,
++    D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDVIEW,
++    D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_SHADEREXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_SHADEREXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_SHADEREXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_SHADEREXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_SHADEREXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_SHADEREXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_SHADEREXTENSIONSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_MINPRECISION,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMALPHA_UNSUPPORTED,
++    D3D11_MESSAGE_ID_VIDEOPROCESSORSETSTREAMPIXELASPECTRATIO_UNSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_INVALIDOFFSET,
++    D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_TOOMANYVIEWS,
++    D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_NOTSUPPORTED,
++    D3D11_MESSAGE_ID_SWAPDEVICECONTEXTSTATE_NOTSUPPORTED,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE_PREFERUPDATESUBRESOURCE1,
++    D3D11_MESSAGE_ID_GETDC_INACCESSIBLE,
++    D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDRECT,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLE_MASK_IGNORED_ON_FL9,
++    D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE1_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BY_NAME_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_ENQUEUESETEVENT_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_OFFERRELEASE_NOT_SUPPORTED,
++    D3D11_MESSAGE_ID_OFFERRESOURCES_INACCESSIBLE,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSORINPUTVIEW_INVALIDMSAA,
++    D3D11_MESSAGE_ID_CREATEVIDEOPROCESSOROUTPUTVIEW_INVALIDMSAA,
++    D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT,
++    D3D11_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT,
++    D3D11_MESSAGE_ID_UPDATESUBRESOURCE_EMPTYDESTBOX,
++    D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_EMPTYSOURCEBOX,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_DEPTHSTENCILVIEW_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET,
++    D3D11_MESSAGE_ID_DEVICE_DRAW_RENDERTARGETVIEW_NOT_SET_DUE_TO_FLIP_PRESENT,
++    D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET_DUE_TO_FLIP_PRESENT,
++    D3D11_MESSAGE_ID_D3D11_1_MESSAGES_END
++} D3D11_MESSAGE_ID;
++
++typedef struct D3D11_MESSAGE {
++    D3D11_MESSAGE_CATEGORY Category;
++    D3D11_MESSAGE_SEVERITY Severity;
++    D3D11_MESSAGE_ID ID;
++    const char *pDescription;
++    SIZE_T DescriptionByteLength;
++} D3D11_MESSAGE;
++
++typedef struct D3D11_INFO_QUEUE_FILTER_DESC {
++    UINT NumCategories;
++    D3D11_MESSAGE_CATEGORY *pCategoryList;
++    UINT NumSeverities;
++    D3D11_MESSAGE_SEVERITY *pSeverityList;
++    UINT NumIDs;
++    D3D11_MESSAGE_ID *pIDList;
++} D3D11_INFO_QUEUE_FILTER_DESC;
++
++typedef struct D3D11_INFO_QUEUE_FILTER {
++    D3D11_INFO_QUEUE_FILTER_DESC AllowList;
++    D3D11_INFO_QUEUE_FILTER_DESC DenyList;
++} D3D11_INFO_QUEUE_FILTER;
++
++cpp_quote("#define D3D11_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024")
++
++[
++    object,
++    uuid(6543dbb6-1b48-42f5-ab82-e97ec74326f6),
++    local,
++    pointer_default(unique)
++]
++interface ID3D11InfoQueue : IUnknown {
++    HRESULT SetMessageCountLimit(UINT64 MessageCountLimit);
++    void ClearStoredMessages();
++
++cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
++cpp_quote("#undef GetMessage")
++cpp_quote("#endif")
++    HRESULT GetMessage(UINT64 MessageIndex, D3D11_MESSAGE* pMessage, SIZE_T *pMessageByteLength);
++
++    UINT64 GetNumMessagesAllowedByStorageFilter();
++    UINT64 GetNumMessagesDeniedByStorageFilter();
++    UINT64 GetNumStoredMessages();
++    UINT64 GetNumStoredMessagesAllowedByRetrievalFilter();
++    UINT64 GetNumMessagesDiscardedByMessageCountLimit();
++    UINT64 GetMessageCountLimit();
++    HRESULT AddStorageFilterEntries(D3D11_INFO_QUEUE_FILTER *pFilter);
++    HRESULT GetStorageFilter(D3D11_INFO_QUEUE_FILTER *pFilter, SIZE_T *pFilterByteLength);
++    void ClearStorageFilter();
++    HRESULT PushEmptyStorageFilter();
++    HRESULT PushCopyOfStorageFilter();
++    HRESULT PushStorageFilter(D3D11_INFO_QUEUE_FILTER *pFilter);
++    void PopStorageFilter();
++    UINT GetStorageFilterStackSize();
++    HRESULT AddRetrievalFilterEntries(D3D11_INFO_QUEUE_FILTER *pFilter);
++    HRESULT GetRetrievalFilter(D3D11_INFO_QUEUE_FILTER *pFilter, SIZE_T *pFilterByteLength);
++    void ClearRetrievalFilter();
++    HRESULT PushEmptyRetrievalFilter();
++    HRESULT PushCopyOfRetrievalFilter();
++    HRESULT PushRetrievalFilter(D3D11_INFO_QUEUE_FILTER *pFilter);
++    void PopRetrievalFilter();
++    UINT GetRetrievalFilterStackSize();
++    HRESULT AddMessage(D3D11_MESSAGE_CATEGORY Category, D3D11_MESSAGE_SEVERITY Severity,
++            D3D11_MESSAGE_ID ID, LPCSTR pDescription);
++    HRESULT AddApplicationMessage(D3D11_MESSAGE_SEVERITY Severity, LPCSTR pDescription);
++    HRESULT SetBreakOnCategory(D3D11_MESSAGE_CATEGORY Category, BOOL bEnable);
++    HRESULT SetBreakOnSeverity(D3D11_MESSAGE_SEVERITY Severity, BOOL bEnable);
++    HRESULT SetBreakOnID(D3D11_MESSAGE_ID ID, BOOL bEnable);
++    BOOL GetBreakOnCategory(D3D11_MESSAGE_CATEGORY Category);
++    BOOL GetBreakOnSeverity(D3D11_MESSAGE_SEVERITY Severity);
++    BOOL GetBreakOnID(D3D11_MESSAGE_ID ID);
++    void SetMuteDebugOutput(BOOL bMute);
++    BOOL GetMuteDebugOutput();
++}
+diff --git a/mingw-w64-headers/direct-x/include/d3d9.h b/mingw-w64-headers/direct-x/include/d3d9.h
+index ed6cadd..da052f6 100644
+--- a/mingw-w64-headers/direct-x/include/d3d9.h
++++ b/mingw-w64-headers/direct-x/include/d3d9.h
+@@ -2088,13 +2088,13 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
+ extern "C" {
+ #endif  /* defined(__cplusplus) */
+ 
+-int         WINAPI D3DPERF_BeginEvent(D3DCOLOR,LPCWSTR);
+-int         WINAPI D3DPERF_EndEvent(void);
+-DWORD       WINAPI D3DPERF_GetStatus(void);
+-WINBOOL     WINAPI D3DPERF_QueryRepeatFrame(void);
+-void        WINAPI D3DPERF_SetMarker(D3DCOLOR,LPCWSTR);
+-void        WINAPI D3DPERF_SetOptions(DWORD);
+-void        WINAPI D3DPERF_SetRegion(D3DCOLOR,LPCWSTR);
++int WINAPI D3DPERF_BeginEvent(D3DCOLOR color, const WCHAR *name);
++int WINAPI D3DPERF_EndEvent(void);
++DWORD WINAPI D3DPERF_GetStatus(void);
++WINBOOL WINAPI D3DPERF_QueryRepeatFrame(void);
++void WINAPI D3DPERF_SetMarker(D3DCOLOR color, const WCHAR *name);
++void WINAPI D3DPERF_SetOptions(DWORD options);
++void WINAPI D3DPERF_SetRegion(D3DCOLOR color, const WCHAR *name);
+ 
+ /* Define the main entrypoint as well */
+ IDirect3D9* WINAPI Direct3DCreate9(UINT SDKVersion);
+diff --git a/mingw-w64-headers/direct-x/include/d3dcommon.h b/mingw-w64-headers/direct-x/include/d3dcommon.h
+index a513942..5c1e674 100644
+--- a/mingw-w64-headers/direct-x/include/d3dcommon.h
++++ b/mingw-w64-headers/direct-x/include/d3dcommon.h
+@@ -37,8 +37,8 @@ extern "C" {
+ #endif
+ 
+ typedef struct _D3D_SHADER_MACRO {
+-    LPCSTR Name;
+-    LPCSTR Definition;
++    const char *Name;
++    const char *Definition;
+ } D3D_SHADER_MACRO;
+ typedef struct _D3D_SHADER_MACRO *LPD3D_SHADER_MACRO;
+ /*****************************************************************************
+@@ -776,6 +776,7 @@ typedef enum _D3D_SHADER_INPUT_TYPE {
+     D3D11_SIT_UAV_CONSUME_STRUCTURED = 10,
+     D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER = 11
+ } D3D_SHADER_INPUT_TYPE;
++DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);
+ /* Begin additional prototypes for all interfaces */
+ 
+ 
+diff --git a/mingw-w64-headers/direct-x/include/d3dcommon.idl b/mingw-w64-headers/direct-x/include/d3dcommon.idl
+index bc1f372..f8fe203 100644
+--- a/mingw-w64-headers/direct-x/include/d3dcommon.idl
++++ b/mingw-w64-headers/direct-x/include/d3dcommon.idl
+@@ -21,8 +21,8 @@ import "ocidl.idl";
+ 
+ typedef struct _D3D_SHADER_MACRO
+ {
+-    LPCSTR Name;
+-    LPCSTR Definition;
++    const char *Name;
++    const char *Definition;
+ } D3D_SHADER_MACRO;
+ 
+ typedef struct _D3D_SHADER_MACRO* LPD3D_SHADER_MACRO;
+@@ -635,3 +635,5 @@ typedef enum _D3D_SHADER_INPUT_TYPE
+     D3D11_SIT_UAV_CONSUME_STRUCTURED,
+     D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER,
+ } D3D_SHADER_INPUT_TYPE;
++
++cpp_quote("DEFINE_GUID(WKPDID_D3DDebugObjectName,0x429b8c22,0x9188,0x4b0c,0x87,0x42,0xac,0xb0,0xbf,0x85,0xc2,0x00);")
+diff --git a/mingw-w64-headers/direct-x/include/dxgi.h b/mingw-w64-headers/direct-x/include/dxgi.h
+index 94521c0..733bf39 100644
+--- a/mingw-w64-headers/direct-x/include/dxgi.h
++++ b/mingw-w64-headers/direct-x/include/dxgi.h
+@@ -1529,6 +1529,14 @@ void __RPC_STUB IDXGIAdapter_CheckInterfaceSupport_Stub(
+ 
+ #endif  /* __IDXGIAdapter_INTERFACE_DEFINED__ */
+ 
++#define DXGI_MAX_SWAP_CHAIN_BUFFERS  (16)
++#define DXGI_PRESENT_TEST                   __MSABI_LONG(0x00000001U)
++#define DXGI_PRESENT_DO_NOT_SEQUENCE        __MSABI_LONG(0x00000002U)
++#define DXGI_PRESENT_RESTART                __MSABI_LONG(0x00000004U)
++#define DXGI_PRESENT_DO_NOT_WAIT            __MSABI_LONG(0x00000008U)
++#define DXGI_PRESENT_STEREO_PREFER_RIGHT    __MSABI_LONG(0x00000010U)
++#define DXGI_PRESENT_STEREO_TEMPORARY_MONO  __MSABI_LONG(0x00000020U)
++#define DXGI_PRESENT_RESTRICT_TO_OUTPUT     __MSABI_LONG(0x00000040U)
+ /*****************************************************************************
+  * IDXGISwapChain interface
+  */
+diff --git a/mingw-w64-headers/direct-x/include/dxgi.idl b/mingw-w64-headers/direct-x/include/dxgi.idl
+index ea7f3d1..bb12283 100644
+--- a/mingw-w64-headers/direct-x/include/dxgi.idl
++++ b/mingw-w64-headers/direct-x/include/dxgi.idl
+@@ -289,6 +289,16 @@ interface IDXGIAdapter : IDXGIObject
+     );
+ }
+ 
++cpp_quote("#define DXGI_MAX_SWAP_CHAIN_BUFFERS  (16)")
++
++cpp_quote("#define DXGI_PRESENT_TEST                   __MSABI_LONG(0x00000001U)")
++cpp_quote("#define DXGI_PRESENT_DO_NOT_SEQUENCE        __MSABI_LONG(0x00000002U)")
++cpp_quote("#define DXGI_PRESENT_RESTART                __MSABI_LONG(0x00000004U)")
++cpp_quote("#define DXGI_PRESENT_DO_NOT_WAIT            __MSABI_LONG(0x00000008U)")
++cpp_quote("#define DXGI_PRESENT_STEREO_PREFER_RIGHT    __MSABI_LONG(0x00000010U)")
++cpp_quote("#define DXGI_PRESENT_STEREO_TEMPORARY_MONO  __MSABI_LONG(0x00000020U)")
++cpp_quote("#define DXGI_PRESENT_RESTRICT_TO_OUTPUT     __MSABI_LONG(0x00000040U)")
++
+ [
+     object,
+     local,
+-- 
+2.1.0
+
diff --git a/0005-winerror.h-Added-some-missing-error-codes.patch b/0005-winerror.h-Added-some-missing-error-codes.patch
new file mode 100644
index 0000000..44b2fda
--- /dev/null
+++ b/0005-winerror.h-Added-some-missing-error-codes.patch
@@ -0,0 +1,30 @@
+From a1b89708ca86535c7ec974eb27adb7daf6a4b3f4 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Mon, 17 Mar 2014 08:53:14 +0000
+Subject: [PATCH 05/25] winerror.h: Added some missing error codes.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6529 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/include/winerror.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/mingw-w64-headers/include/winerror.h b/mingw-w64-headers/include/winerror.h
+index ee383e6..b424b27 100644
+--- a/mingw-w64-headers/include/winerror.h
++++ b/mingw-w64-headers/include/winerror.h
+@@ -211,6 +211,12 @@
+ #define ERROR_EXE_MACHINE_TYPE_MISMATCH __MSABI_LONG(216)
+ #define ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY __MSABI_LONG(217)
+ #define ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY __MSABI_LONG(218)
++#define ERROR_FILE_CHECKED_OUT __MSABI_LONG(220)
++#define ERROR_CHECKOUT_REQUIRED __MSABI_LONG(221)
++#define ERROR_BAD_FILE_TYPE __MSABI_LONG(222)
++#define ERROR_FILE_TOO_LARGE __MSABI_LONG(223)
++#define ERROR_FORMS_AUTH_REQUIRED __MSABI_LONG(224)
++#define ERROR_PIPE_LOCAL __MSABI_LONG(229)
+ #define ERROR_BAD_PIPE __MSABI_LONG(230)
+ #define ERROR_PIPE_BUSY __MSABI_LONG(231)
+ #define ERROR_NO_DATA __MSABI_LONG(232)
+-- 
+2.1.0
+
diff --git a/0006-d2d1_1helper.h-Added-some-missing-helpers.patch b/0006-d2d1_1helper.h-Added-some-missing-helpers.patch
new file mode 100644
index 0000000..0aea034
--- /dev/null
+++ b/0006-d2d1_1helper.h-Added-some-missing-helpers.patch
@@ -0,0 +1,57 @@
+From e9547e593101897d69017f66c1851d78d7fbc921 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Thu, 28 Nov 2013 18:45:01 +0000
+Subject: [PATCH 06/25] d2d1_1helper.h: Added some missing helpers.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6387 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/include/d2d1_1helper.h | 33 ++++++++++++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/mingw-w64-headers/include/d2d1_1helper.h b/mingw-w64-headers/include/d2d1_1helper.h
+index 574cd0d..9523203 100644
+--- a/mingw-w64-headers/include/d2d1_1helper.h
++++ b/mingw-w64-headers/include/d2d1_1helper.h
+@@ -39,6 +39,39 @@ namespace D2D1 {
+         return r;
+     }
+ 
++    class Matrix5x4F : public D2D1_MATRIX_5X4_F {
++    public:
++        inline Matrix5x4F(
++                FLOAT m11, FLOAT m12, FLOAT m13, FLOAT m14,
++                FLOAT m21, FLOAT m22, FLOAT m23, FLOAT m24,
++                FLOAT m31, FLOAT m32, FLOAT m33, FLOAT m34,
++                FLOAT m41, FLOAT m42, FLOAT m43, FLOAT m44,
++                FLOAT m51, FLOAT m52, FLOAT m53, FLOAT m54) {
++            _11 = m11; _12 = m12; _13 = m13; _14 = m14;
++            _21 = m21; _22 = m22; _23 = m23; _24 = m24;
++            _31 = m31; _32 = m32; _33 = m33; _34 = m34;
++            _41 = m41; _42 = m42; _43 = m43; _44 = m44;
++            _51 = m51; _52 = m52; _53 = m53; _54 = m54;
++        }
++
++        inline Matrix5x4F() {
++            _11 = 1; _12 = 0; _13 = 0; _14 = 0;
++            _21 = 0; _22 = 1; _23 = 0; _24 = 0;
++            _31 = 0; _32 = 0; _33 = 1; _34 = 0;
++            _41 = 0; _42 = 0; _43 = 0; _44 = 1;
++            _51 = 0; _52 = 0; _53 = 0; _54 = 0;
++        }
++    };
++
++    D2D1FORCEINLINE D2D1_VECTOR_3F Vector3F(FLOAT x = 0.0f, FLOAT y = 0.0f, FLOAT z = 0.0f) {
++        D2D1_VECTOR_3F r = {x, y, z};
++        return r;
++    }
++
++    D2D1FORCEINLINE D2D1_VECTOR_4F Vector4F(FLOAT x = 0.0f, FLOAT y = 0.0f, FLOAT z = 0.0f, FLOAT w = 0.0f) {
++        D2D1_VECTOR_4F r = {x, y, z, w};
++        return r;
++    }
+ }
+ 
+ #endif /* D2D_USE_C_DEFINITIONS */
+-- 
+2.1.0
+
diff --git a/0007-d2d1effects.h-Added-some-missing-declarations.patch b/0007-d2d1effects.h-Added-some-missing-declarations.patch
new file mode 100644
index 0000000..2c1a2ef
--- /dev/null
+++ b/0007-d2d1effects.h-Added-some-missing-declarations.patch
@@ -0,0 +1,332 @@
+From 764776686e6764a8417f9966966c5633e576091e Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Thu, 28 Nov 2013 18:45:22 +0000
+Subject: [PATCH 07/25] d2d1effects.h: Added some missing declarations.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6388 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/include/d2d1effects.h | 309 ++++++++++++++++++++++++++++++++
+ 1 file changed, 309 insertions(+)
+
+diff --git a/mingw-w64-headers/include/d2d1effects.h b/mingw-w64-headers/include/d2d1effects.h
+index 7707c22..0608957 100644
+--- a/mingw-w64-headers/include/d2d1effects.h
++++ b/mingw-w64-headers/include/d2d1effects.h
+@@ -73,5 +73,314 @@ typedef enum D2D1_COMPOSITE_PROP {
+     D2D1_COMPOSITE_PROP_FORCE_DWORD = 0xffffffff
+ } D2D1_COMPOSITE_PROP;
+ 
++typedef enum D2D1_CHANNEL_SELECTOR {
++    D2D1_CHANNEL_SELECTOR_R = 0,
++    D2D1_CHANNEL_SELECTOR_G = 1,
++    D2D1_CHANNEL_SELECTOR_B = 2,
++    D2D1_CHANNEL_SELECTOR_A = 3,
++    D2D1_CHANNEL_SELECTOR_FORCE_DWORD = 0xffffffff
++} D2D1_CHANNEL_SELECTOR;
++
++typedef enum D2D1_BORDER_MODE {
++    D2D1_BORDER_MODE_SOFT = 0,
++    D2D1_BORDER_MODE_HARD = 1,
++    D2D1_BORDER_MODE_FORCE_DWORD = 0xffffffff
++} D2D1_BORDER_MODE;
++
++typedef enum D2D1_COLORMATRIX_PROP {
++    D2D1_COLORMATRIX_PROP_COLOR_MATRIX = 0,
++    D2D1_COLORMATRIX_PROP_ALPHA_MODE   = 1,
++    D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT = 2,
++    D2D1_COLORMATRIX_PROP_FORCE_DWORD  = 0xffffffff
++} D2D1_COLORMATRIX_PROP;
++
++typedef enum D2D1_COLORMATRIX_ALPHA_MODE {
++    D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED = 1,
++    D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT      = 2,
++    D2D1_COLORMATRIX_ALPHA_MODE_FORCE_DWORD   = 0xffffffff
++} D2D1_COLORMATRIX_ALPHA_MODE;
++
++typedef enum D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE {
++    D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_NEAREST_NEIGHBOR    = 0,
++    D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_LINEAR              = 1,
++    D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_CUBIC               = 2,
++    D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = 3,
++    D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_ANISOTROPIC         = 4,
++    D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC  = 5,
++    D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE_FORCE_DWORD         = 0xffffffff
++} D2D1_2DAFFINETRANSFORM_INTERPOLATION_MODE;
++
++typedef enum D2D1_BLEND_PROP {
++    D2D1_BLEND_PROP_MODE = 0,
++    D2D1_BLEND_PROP_FORCE_DWORD = 0xffffffff
++} D2D1_BLEND_PROP;
++
++typedef enum D2D1_BLEND_MODE {
++    D2D1_BLEND_MODE_MULTIPLY      = 0,
++    D2D1_BLEND_MODE_SCREEN        = 1,
++    D2D1_BLEND_MODE_DARKEN        = 2,
++    D2D1_BLEND_MODE_LIGHTEN       = 3,
++    D2D1_BLEND_MODE_DISSOLVE      = 4,
++    D2D1_BLEND_MODE_COLOR_BURN    = 5,
++    D2D1_BLEND_MODE_LINEAR_BURN   = 6,
++    D2D1_BLEND_MODE_DARKER_COLOR  = 7,
++    D2D1_BLEND_MODE_LIGHTER_COLOR = 8,
++    D2D1_BLEND_MODE_COLOR_DODGE   = 9,
++    D2D1_BLEND_MODE_LINEAR_DODGE  = 10,
++    D2D1_BLEND_MODE_OVERLAY       = 11,
++    D2D1_BLEND_MODE_SOFT_LIGHT    = 12,
++    D2D1_BLEND_MODE_HARD_LIGHT    = 13,
++    D2D1_BLEND_MODE_VIVID_LIGHT   = 14,
++    D2D1_BLEND_MODE_LINEAR_LIGHT  = 15,
++    D2D1_BLEND_MODE_PIN_LIGHT     = 16,
++    D2D1_BLEND_MODE_HARD_MIX      = 17,
++    D2D1_BLEND_MODE_DIFFERENCE    = 18,
++    D2D1_BLEND_MODE_EXCLUSION     = 19,
++    D2D1_BLEND_MODE_HUE           = 20,
++    D2D1_BLEND_MODE_SATURATION    = 21,
++    D2D1_BLEND_MODE_COLOR         = 22,
++    D2D1_BLEND_MODE_LUMINOSITY    = 23,
++    D2D1_BLEND_MODE_SUBTRACT      = 24,
++    D2D1_BLEND_MODE_DIVISION      = 25,
++    D2D1_BLEND_MODE_FORCE_DWORD   = 0xffffffff
++} D2D1_BLEND_MODE;
++
++typedef enum D2D1_MORPHOLOGY_PROP {
++    D2D1_MORPHOLOGY_PROP_MODE   = 0,
++    D2D1_MORPHOLOGY_PROP_WIDTH  = 1,
++    D2D1_MORPHOLOGY_PROP_HEIGHT = 2,
++    D2D1_MORPHOLOGY_PROP_FORCE_DWORD = 0xffffffff
++} D2D1_MORPHOLOGY_PROP;
++
++typedef enum D2D1_FLOOD_PROP {
++    D2D1_FLOOD_PROP_COLOR = 0,
++    D2D1_FLOOD_PROP_FORCE_DWORD = 0xffffffff
++} D2D1_FLOOD_PROP;
++
++typedef enum D2D1_MORPHOLOGY_MODE {
++    D2D1_MORPHOLOGY_MODE_ERODE  = 0,
++    D2D1_MORPHOLOGY_MODE_DILATE = 1,
++    D2D1_MORPHOLOGY_MODE_FORCE_DWORD = 0xffffffff
++} D2D1_MORPHOLOGY_MODE;
++
++typedef enum D2D1_TURBULENCE_NOISE {
++    D2D1_TURBULENCE_NOISE_FRACTAL_SUM = 0,
++    D2D1_TURBULENCE_NOISE_TURBULENCE  = 1,
++    D2D1_TURBULENCE_NOISE_FORCE_DWORD = 0xffffffff
++} D2D1_TURBULENCE_NOISE;
++
++typedef enum D2D1_DISPLACEMENTMAP_PROP {
++    D2D1_DISPLACEMENTMAP_PROP_SCALE            = 0,
++    D2D1_DISPLACEMENTMAP_PROP_X_CHANNEL_SELECT = 1,
++    D2D1_DISPLACEMENTMAP_PROP_Y_CHANNEL_SELECT = 2,
++    D2D1_DISPLACEMENTMAP_PROP_FORCE_DWORD      = 0xffffffff
++} D2D1_DISPLACEMENTMAP_PROP;
++
++typedef enum D2D1_TURBULENCE_PROP {
++    D2D1_TURBULENCE_PROP_OFFSET         = 0,
++    D2D1_TURBULENCE_PROP_SIZE           = 1,
++    D2D1_TURBULENCE_PROP_BASE_FREQUENCY = 2,
++    D2D1_TURBULENCE_PROP_NUM_OCTAVES    = 3,
++    D2D1_TURBULENCE_PROP_SEED           = 4,
++    D2D1_TURBULENCE_PROP_NOISE          = 5,
++    D2D1_TURBULENCE_PROP_STITCHABLE     = 6,
++    D2D1_TURBULENCE_PROP_FORCE_DWORD    = 0xffffffff
++} D2D1_TURBULENCE_PROP;
++
++typedef enum D2D1_ARITHMETICCOMPOSITE_PROP {
++    D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS = 0,
++    D2D1_ARITHMETICCOMPOSITE_PROP_CLAMP_OUTPUT = 1,
++    D2D1_ARITHMETICCOMPOSITE_PROP_FORCE_DWORD  = 0xffffffff
++} D2D1_ARITHMETICCOMPOSITE_PROP;
++
++typedef enum D2D1_CROP_PROP {
++    D2D1_CROP_PROP_RECT        = 0,
++    D2D1_CROP_PROP_BORDER_MODE = 1,
++    D2D1_CROP_PROP_FORCE_DWORD = 0xffffffff
++} D2D1_CROP_PROP;
++
++typedef enum D2D1_GAUSSIANBLUR_PROP {
++    D2D1_GAUSSIANBLUR_PROP_STANDARD_DEVIATION = 0,
++    D2D1_GAUSSIANBLUR_PROP_OPTIMIZATION       = 1,
++    D2D1_GAUSSIANBLUR_PROP_BORDER_MODE        = 2,
++    D2D1_GAUSSIANBLUR_PROP_FORCE_DWORD        = 0xffffffff
++} D2D1_GAUSSIANBLUR_PROP;
++
++typedef enum D2D1_DIRECTIONALBLUR_PROP {
++    D2D1_DIRECTIONALBLUR_PROP_STANDARD_DEVIATION = 0,
++    D2D1_DIRECTIONALBLUR_PROP_ANGLE              = 1,
++    D2D1_DIRECTIONALBLUR_PROP_OPTIMIZATION       = 2,
++    D2D1_DIRECTIONALBLUR_PROP_BORDER_MODE        = 3,
++    D2D1_DIRECTIONALBLUR_PROP_FORCE_DWORD        = 0xffffffff
++} D2D1_DIRECTIONALBLUR_PROP;
++
++typedef enum D2D1_SPOTDIFFUSE_PROP {
++    D2D1_SPOTDIFFUSE_PROP_LIGHT_POSITION      = 0,
++    D2D1_SPOTDIFFUSE_PROP_POINTS_AT           = 1,
++    D2D1_SPOTDIFFUSE_PROP_FOCUS               = 2,
++    D2D1_SPOTDIFFUSE_PROP_LIMITING_CONE_ANGLE = 3,
++    D2D1_SPOTDIFFUSE_PROP_DIFFUSE_CONSTANT    = 4,
++    D2D1_SPOTDIFFUSE_PROP_SURFACE_SCALE       = 5,
++    D2D1_SPOTDIFFUSE_PROP_COLOR               = 6,
++    D2D1_SPOTDIFFUSE_PROP_KERNEL_UNIT_LENGTH  = 7,
++    D2D1_SPOTDIFFUSE_PROP_SCALE_MODE          = 8,
++    D2D1_SPOTDIFFUSE_PROP_FORCE_DWORD         = 0xffffffff
++} D2D1_SPOTDIFFUSE_PROP;
++
++typedef enum D2D1_BORDER_PROP {
++    D2D1_BORDER_PROP_EDGE_MODE_X = 0,
++    D2D1_BORDER_PROP_EDGE_MODE_Y = 1,
++    D2D1_BORDER_PROP_FORCE_DWORD = 0xffffffff
++} D2D1_BORDER_PROP;
++
++typedef enum D2D1_POINTDIFFUSE_PROP {
++    D2D1_POINTDIFFUSE_PROP_LIGHT_POSITION     = 0,
++    D2D1_POINTDIFFUSE_PROP_DIFFUSE_CONSTANT   = 1,
++    D2D1_POINTDIFFUSE_PROP_SURFACE_SCALE      = 2,
++    D2D1_POINTDIFFUSE_PROP_COLOR              = 3,
++    D2D1_POINTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 4,
++    D2D1_POINTDIFFUSE_PROP_SCALE_MODE         = 5,
++    D2D1_POINTDIFFUSE_PROP_FORCE_DWORD        = 0xffffffff
++} D2D1_POINTDIFFUSE_PROP;
++
++typedef enum D2D1_TABLETRANSFER_PROP {
++    D2D1_TABLETRANSFER_PROP_RED_TABLE     = 0,
++    D2D1_TABLETRANSFER_PROP_RED_DISABLE   = 1,
++    D2D1_TABLETRANSFER_PROP_GREEN_TABLE   = 2,
++    D2D1_TABLETRANSFER_PROP_GREEN_DISABLE = 3,
++    D2D1_TABLETRANSFER_PROP_BLUE_TABLE    = 4,
++    D2D1_TABLETRANSFER_PROP_BLUE_DISABLE  = 5,
++    D2D1_TABLETRANSFER_PROP_ALPHA_TABLE   = 6,
++    D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE = 7,
++    D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT  = 8,
++    D2D1_TABLETRANSFER_PROP_FORCE_DWORD   = 0xffffffff
++} D2D1_TABLETRANSFER_PROP;
++
++typedef enum D2D1_DISCRETETRANSFER_PROP {
++    D2D1_DISCRETETRANSFER_PROP_RED_TABLE     = 0,
++    D2D1_DISCRETETRANSFER_PROP_RED_DISABLE   = 1,
++    D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE   = 2,
++    D2D1_DISCRETETRANSFER_PROP_GREEN_DISABLE = 3,
++    D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE    = 4,
++    D2D1_DISCRETETRANSFER_PROP_BLUE_DISABLE  = 5,
++    D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE   = 6,
++    D2D1_DISCRETETRANSFER_PROP_ALPHA_DISABLE = 7,
++    D2D1_DISCRETETRANSFER_PROP_CLAMP_OUTPUT  = 8,
++    D2D1_DISCRETETRANSFER_PROP_FORCE_DWORD   = 0xffffffff
++} D2D1_DISCRETETRANSFER_PROP;
++
++typedef enum D2D1_LINEARTRANSFER_PROP {
++    D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT   = 0,
++    D2D1_LINEARTRANSFER_PROP_RED_SLOPE         = 1,
++    D2D1_LINEARTRANSFER_PROP_RED_DISABLE       = 2,
++    D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT = 3,
++    D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE       = 4,
++    D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE     = 5,
++    D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT  = 6,
++    D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE        = 7,
++    D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE      = 8,
++    D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT = 9,
++    D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE       = 10,
++    D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE     = 11,
++    D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT      = 12,
++    D2D1_LINEARTRANSFER_PROP_FORCE_DWORD       = 0xffffffff
++} D2D1_LINEARTRANSFER_PROP;
++
++typedef enum D2D1_GAMMATRANSFER_PROP {
++    D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE   = 0,
++    D2D1_GAMMATRANSFER_PROP_RED_EXPONENT    = 1,
++    D2D1_GAMMATRANSFER_PROP_RED_OFFSET      = 2,
++    D2D1_GAMMATRANSFER_PROP_RED_DISABLE     = 3,
++    D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE = 4,
++    D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT  = 5,
++    D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET    = 6,
++    D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE   = 7,
++    D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE  = 8,
++    D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT   = 9,
++    D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET     = 10,
++    D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE    = 11,
++    D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE = 12,
++    D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT  = 13,
++    D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET    = 14,
++    D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE   = 15,
++    D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT    = 16,
++    D2D1_GAMMATRANSFER_PROP_FORCE_DWORD     = 0xffffffff
++} D2D1_GAMMATRANSFER_PROP;
++
++typedef enum D2D1_CONVOLVEMATRIX_PROP {
++    D2D1_CONVOLVEMATRIX_PROP_KERNEL_UNIT_LENGTH = 0,
++    D2D1_CONVOLVEMATRIX_PROP_SCALE_MODE         = 1,
++    D2D1_CONVOLVEMATRIX_PROP_KERNEL_SIZE_X      = 2,
++    D2D1_CONVOLVEMATRIX_PROP_KERNEL_SIZE_Y      = 3,
++    D2D1_CONVOLVEMATRIX_PROP_KERNEL_MATRIX      = 4,
++    D2D1_CONVOLVEMATRIX_PROP_DIVISOR            = 5,
++    D2D1_CONVOLVEMATRIX_PROP_BIAS               = 6,
++    D2D1_CONVOLVEMATRIX_PROP_KERNEL_OFFSET      = 7,
++    D2D1_CONVOLVEMATRIX_PROP_PRESERVE_ALPHA     = 8,
++    D2D1_CONVOLVEMATRIX_PROP_BORDER_MODE        = 9,
++    D2D1_CONVOLVEMATRIX_PROP_CLAMP_OUTPUT       = 10,
++    D2D1_CONVOLVEMATRIX_PROP_FORCE_DWORD        = 0xffffffff
++} D2D1_CONVOLVEMATRIX_PROP;
++
++typedef enum D2D1_BORDER_EDGE_MODE {
++    D2D1_BORDER_EDGE_MODE_CLAMP       = 0,
++    D2D1_BORDER_EDGE_MODE_WRAP        = 1,
++    D2D1_BORDER_EDGE_MODE_MIRROR      = 2,
++    D2D1_BORDER_EDGE_MODE_FORCE_DWORD = 0xffffffff
++} D2D1_BORDER_EDGE_MODE;
++
++typedef enum D2D1_DISTANTDIFFUSE_PROP {
++    D2D1_DISTANTDIFFUSE_PROP_AZIMUTH            = 0,
++    D2D1_DISTANTDIFFUSE_PROP_ELEVATION          = 1,
++    D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT   = 2,
++    D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE      = 3,
++    D2D1_DISTANTDIFFUSE_PROP_COLOR              = 4,
++    D2D1_DISTANTDIFFUSE_PROP_KERNEL_UNIT_LENGTH = 5,
++    D2D1_DISTANTDIFFUSE_PROP_SCALE_MODE         = 6,
++    D2D1_DISTANTDIFFUSE_PROP_FORCE_DWORD        = 0xffffffff
++} D2D1_DISTANTDIFFUSE_PROP;
++
++typedef enum D2D1_POINTSPECULAR_PROP {
++    D2D1_POINTSPECULAR_PROP_LIGHT_POSITION     = 0,
++    D2D1_POINTSPECULAR_PROP_SPECULAR_EXPONENT  = 1,
++    D2D1_POINTSPECULAR_PROP_SPECULAR_CONSTANT  = 2,
++    D2D1_POINTSPECULAR_PROP_SURFACE_SCALE      = 3,
++    D2D1_POINTSPECULAR_PROP_COLOR              = 4,
++    D2D1_POINTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 5,
++    D2D1_POINTSPECULAR_PROP_SCALE_MODE         = 6,
++    D2D1_POINTSPECULAR_PROP_FORCE_DWORD        = 0xffffffff
++} D2D1_POINTSPECULAR_PROP;
++
++typedef enum D2D1_SPOTSPECULAR_PROP {
++    D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION      = 0,
++    D2D1_SPOTSPECULAR_PROP_POINTS_AT           = 1,
++    D2D1_SPOTSPECULAR_PROP_FOCUS               = 2,
++    D2D1_SPOTSPECULAR_PROP_LIMITING_CONE_ANGLE = 3,
++    D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT   = 4,
++    D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT   = 5,
++    D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE       = 6,
++    D2D1_SPOTSPECULAR_PROP_COLOR               = 7,
++    D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH  = 8,
++    D2D1_SPOTSPECULAR_PROP_SCALE_MODE          = 9,
++    D2D1_SPOTSPECULAR_PROP_FORCE_DWORD         = 0xffffffff
++} D2D1_SPOTSPECULAR_PROP;
++
++typedef enum D2D1_DISTANTSPECULAR_PROP {
++    D2D1_DISTANTSPECULAR_PROP_AZIMUTH            = 0,
++    D2D1_DISTANTSPECULAR_PROP_ELEVATION          = 1,
++    D2D1_DISTANTSPECULAR_PROP_SPECULAR_EXPONENT  = 2,
++    D2D1_DISTANTSPECULAR_PROP_SPECULAR_CONSTANT  = 3,
++    D2D1_DISTANTSPECULAR_PROP_SURFACE_SCALE      = 4,
++    D2D1_DISTANTSPECULAR_PROP_COLOR              = 5,
++    D2D1_DISTANTSPECULAR_PROP_KERNEL_UNIT_LENGTH = 6,
++    D2D1_DISTANTSPECULAR_PROP_SCALE_MODE         = 7,
++    D2D1_DISTANTSPECULAR_PROP_FORCE_DWORD        = 0xffffffff
++} D2D1_DISTANTSPECULAR_PROP;
++
++typedef enum D2D1_TILE_PROP {
++    D2D1_TILE_PROP_RECT = 0,
++    D2D1_TILE_PROP_FORCE_DWORD = 0xffffffff
++} D2D1_TILE_PROP;
++
+ #endif
+ #endif /* _D2D1_EFFECTS_ */
+-- 
+2.1.0
+
diff --git a/0008-winsdkver.h-Added-new-header.patch b/0008-winsdkver.h-Added-new-header.patch
new file mode 100644
index 0000000..b0b6546
--- /dev/null
+++ b/0008-winsdkver.h-Added-new-header.patch
@@ -0,0 +1,40 @@
+From d46907ad2efaa8466a20497545d864bcf473ad18 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <jacek at codeweavers.com>
+Date: Mon, 6 Oct 2014 11:23:33 +0200
+Subject: [PATCH 08/25] winsdkver.h: Added new header.
+
+---
+ mingw-w64-headers/include/winsdkver.h | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+ create mode 100644 mingw-w64-headers/include/winsdkver.h
+
+diff --git a/mingw-w64-headers/include/winsdkver.h b/mingw-w64-headers/include/winsdkver.h
+new file mode 100644
+index 0000000..45526e8
+--- /dev/null
++++ b/mingw-w64-headers/include/winsdkver.h
+@@ -0,0 +1,21 @@
++/**
++ * This file is part of the mingw-w64 runtime package.
++ * No warranty is given; refer to the file DISCLAIMER within this package.
++ */
++
++#ifndef _INC_WINSDKVER
++#define _INC_WINSDKVER
++
++#include <winapifamily.h>
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
++
++#define _WIN32_MAXVER         0x0602
++#define _WIN32_WINDOWS_MAXVER 0x0602
++#define NTDDI_MAXVER          0x0602
++#define _WIN32_IE_MAXVER      0x0b00
++#define _WIN32_WINNT_MAXVER   0x0602
++#define WINVER_MAXVER         0x0602
++
++#endif
++#endif
+-- 
+2.1.0
+
diff --git a/0009-dwrite_1.h-Added-new-header-file.patch b/0009-dwrite_1.h-Added-new-header-file.patch
new file mode 100644
index 0000000..0c88742
--- /dev/null
+++ b/0009-dwrite_1.h-Added-new-header-file.patch
@@ -0,0 +1,167 @@
+From 65551ffe37ad4937e4347b0e5ccf6029b2cf6710 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <jacek at codeweavers.com>
+Date: Fri, 15 Aug 2014 19:15:27 +0200
+Subject: [PATCH 09/25] dwrite_1.h: Added new header file.
+
+---
+ mingw-w64-headers/include/dwrite_1.h | 148 +++++++++++++++++++++++++++++++++++
+ 1 file changed, 148 insertions(+)
+ create mode 100644 mingw-w64-headers/include/dwrite_1.h
+
+diff --git a/mingw-w64-headers/include/dwrite_1.h b/mingw-w64-headers/include/dwrite_1.h
+new file mode 100644
+index 0000000..1630881
+--- /dev/null
++++ b/mingw-w64-headers/include/dwrite_1.h
+@@ -0,0 +1,148 @@
++/**
++ * This file has no copyright assigned and is placed in the Public Domain.
++ * This file is part of the mingw-w64 runtime package.
++ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
++ */
++
++#ifndef DWRITE_1_H_INCLUDED
++#define DWRITE_1_H_INCLUDED
++
++#include <dwrite.h>
++
++enum DWRITE_OUTLINE_THRESHOLD {
++    DWRITE_OUTLINE_THRESHOLD_ANTIALIASED,
++    DWRITE_OUTLINE_THRESHOLD_ALIASED
++};
++
++struct DWRITE_CARET_METRICS {
++    INT16 slopeRise;
++    INT16 slopeRun;
++    INT16 offset;
++};
++
++struct DWRITE_UNICODE_RANGE {
++    UINT32 first;
++    UINT32 last;
++};
++
++struct DWRITE_FONT_METRICS1 : public DWRITE_FONT_METRICS {
++    INT16 glyphBoxLeft;
++    INT16 glyphBoxTop;
++    INT16 glyphBoxRight;
++    INT16 glyphBoxBottom;
++    INT16 subscriptPositionX;
++    INT16 subscriptPositionY;
++    INT16 subscriptSizeX;
++    INT16 subscriptSizeY;
++    INT16 superscriptPositionX;
++    INT16 superscriptPositionY;
++    INT16 superscriptSizeX;
++    INT16 superscriptSizeY;
++    BOOL hasTypographicMetrics;
++};
++
++#undef  INTERFACE
++#define INTERFACE IDWriteFontCollection
++DECLARE_INTERFACE_(IDWriteFontFace1, IDWriteFontFace)
++{
++    BEGIN_INTERFACE
++
++#ifndef __cplusplus
++    /* IUnknown methods */
++    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
++    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
++    STDMETHOD_(ULONG, Release)(THIS) PURE;
++
++    /* IDWriteFontFace methods */
++    STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
++
++    STDMETHOD(GetFiles)(THIS_
++        UINT32 *numberOfFiles,
++        IDWriteFontFile **fontFiles) PURE;
++
++    STDMETHOD_(UINT32, GetIndex)(THIS) PURE;
++    STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
++    STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
++
++    STDMETHOD_(void, GetMetrics)(THIS_
++        DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
++
++    STDMETHOD_(UINT16, GetGlyphCount)(THIS) PURE;
++
++    STDMETHOD(GetDesignGlyphMetrics)(THIS_
++        UINT16 const *glyphIndices,
++        UINT32 glyphCount,
++        DWRITE_GLYPH_METRICS *glyphMetrics,
++        WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
++
++    STDMETHOD(GetGlyphIndices)(THIS_
++        UINT32 const *codePoints,
++        UINT32 codePointCount,
++        UINT16 *glyphIndices) PURE;
++
++    STDMETHOD(TryGetFontTable)(THIS_
++        UINT32 openTypeTableTag,
++        const void **tableData,
++        UINT32 *tableSize,
++        void **tableContext,
++        WINBOOL *exists) PURE;
++
++    STDMETHOD_(void, ReleaseFontTable)(THIS_
++        void *tableContext) PURE;
++
++    STDMETHOD(GetGlyphRunOutline)(THIS_
++        FLOAT emSize,
++        UINT16 const *glyphIndices,
++        FLOAT const *glyphAdvances,
++        DWRITE_GLYPH_OFFSET const *glyphOffsets,
++        UINT32 glyphCount,
++        WINBOOL isSideways,
++        WINBOOL isRightToLeft,
++        IDWriteGeometrySink *geometrySink) PURE;
++
++    STDMETHOD(GetRecommendedRenderingMode)(THIS_
++        FLOAT emSize,
++        FLOAT pixelsPerDip,
++        DWRITE_MEASURING_MODE measuringMode,
++        IDWriteRenderingParams *renderingParams,
++        DWRITE_RENDERING_MODE *renderingMode) PURE;
++
++    STDMETHOD(GetGdiCompatibleMetrics)(THIS_
++        FLOAT emSize,
++        FLOAT pixelsPerDip,
++        DWRITE_MATRIX const *transform,
++        DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
++
++
++    STDMETHOD(GetGdiCompatibleGlyphMetrics)(THIS_
++        FLOAT emSize,
++        FLOAT pixelsPerDip,
++        DWRITE_MATRIX const *transform,
++        WINBOOL useGdiNatural,
++        UINT16 const *glyphIndices,
++        UINT32 glyphCount,
++        DWRITE_GLYPH_METRICS *glyphMetrics,
++        WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
++#endif
++
++    /* IDWriteFontFace1 methods */
++    STDMETHOD_(void, GetMetrics)(THIS_ DWRITE_FONT_METRICS*) PURE;
++    STDMETHOD(GetGdiCompatibleMetrics)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,DWRITE_FONT_METRICS1*) PURE;
++    STDMETHOD_(void, GetCaretMetrics)(THIS_ DWRITE_CARET_METRICS*) PURE;
++    STDMETHOD(GetUnicodeRanges)(THIS_ UINT32, DWRITE_UNICODE_RANGE*,UINT32*) PURE;
++    STDMETHOD_(BOOL, IsMonospacedFont)(THIS) PURE;
++    STDMETHOD(GetDesignGlyphAdvances)(THIS_ UINT32,UINT16 const*,INT32*,BOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
++    STDMETHOD(GetGdiCompatibleGlyphAdvances)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,BOOL,UINT32,
++            UINT16 const*,INT32*) PURE;
++    STDMETHOD(GetKerningPairAdjustments)(THIS_ UINT32,UINT16 const*,INT32*) PURE;
++    STDMETHOD_(BOOL, HasKerningPairs)(THIS);
++    STDMETHOD(GetRecommendedRenderingMode)(FLOAT,FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,
++            DWRITE_OUTLINE_THRESHOLD,DWRITE_MEASURING_MODE,DWRITE_RENDERING_MODE*) PURE;
++    STDMETHOD(GetVerticalGlyphVariants)(THIS_ UINT32,UINT16 const*,UINT16*);
++    STDMETHOD_(BOOL, HasVerticalGlyphVariants)(THIS);
++};
++
++__CRT_UUID_DECL(IDWriteFontFace1, 0xa71efdb4,0x9fdb,0x4838,0xad,0x90,0xcf,0xc3,0xbe,0x8c,0x3d,0xaf);
++
++
++#endif /* DWRITE_1_H_INCLUDED */
+-- 
+2.1.0
+
diff --git a/0010-Added-some-missing-WMF-declarations.patch b/0010-Added-some-missing-WMF-declarations.patch
new file mode 100644
index 0000000..87be65a
--- /dev/null
+++ b/0010-Added-some-missing-WMF-declarations.patch
@@ -0,0 +1,60 @@
+From e1c8442ec6655ce548cdcb87b6ae9f27dc11b7a6 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Fri, 22 Nov 2013 13:17:26 +0000
+Subject: [PATCH 10/25] Added some missing WMF declarations.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6383 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/include/mfapi.h   |  2 ++
+ mingw-w64-headers/include/mferror.h | 23 +++++++++++++++++++++++
+ 2 files changed, 25 insertions(+)
+
+diff --git a/mingw-w64-headers/include/mfapi.h b/mingw-w64-headers/include/mfapi.h
+index 7c669b8..1c9a34b 100644
+--- a/mingw-w64-headers/include/mfapi.h
++++ b/mingw-w64-headers/include/mfapi.h
+@@ -231,6 +231,8 @@ DEFINE_MEDIATYPE_GUID(MFAudioFormat_MPEG,              WAVE_FORMAT_MPEG);
+ DEFINE_MEDIATYPE_GUID(MFAudioFormat_AAC,               WAVE_FORMAT_MPEG_HEAAC);
+ DEFINE_MEDIATYPE_GUID(MFAudioFormat_ADTS,              WAVE_FORMAT_MPEG_ADTS_AAC);
+ 
++DEFINE_GUID(MFMPEG4Format_Base,             0x00000000,0x767a,0x494d,0xb4,0x78,0xf2,0x9d,0x25,0xdc,0x90,0x37);
++
+ DEFINE_GUID(MF_MT_MAJOR_TYPE,               0x48eba18e,0xf8c9,0x4687,0xbf,0x11,0x0a,0x74,0xc9,0xf9,0x6a,0x8f);
+ DEFINE_GUID(MF_MT_SUBTYPE,                  0xf7e34c9a,0x42e8,0x4714,0xb7,0x4b,0xcb,0x29,0xd7,0x2c,0x35,0xe5);
+ DEFINE_GUID(MF_MT_ALL_SAMPLES_INDEPENDENT,  0xc9173739,0x5e56,0x461c,0xb7,0x13,0x46,0xfb,0x99,0x5c,0xb9,0x5f);
+diff --git a/mingw-w64-headers/include/mferror.h b/mingw-w64-headers/include/mferror.h
+index 26140f8..a665cc6 100644
+--- a/mingw-w64-headers/include/mferror.h
++++ b/mingw-w64-headers/include/mferror.h
+@@ -78,5 +78,28 @@
+ #define MF_E_TOPO_MISSING_SOURCE       _HRESULT_TYPEDEF_(0xc00d521a)
+ #define MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED       _HRESULT_TYPEDEF_(0xc00d521b)
+ #define MF_E_TRANSFORM_TYPE_NOT_SET      _HRESULT_TYPEDEF_(0xc00d6d60)
++#define MF_E_TRANSFORM_STREAM_CHANGE     _HRESULT_TYPEDEF_(0xc00d6d61)
++#define MF_E_TRANSFORM_INPUT_REMAINING   _HRESULT_TYPEDEF_(0xc00d6d62)
++#define MF_E_TRANSFORM_PROFILE_MISSING   _HRESULT_TYPEDEF_(0xc00d6d63)
++#define MF_E_TRANSFORM_PROFILE_INVALID_OR_CORRUPT  _HRESULT_TYPEDEF_(0xc00d6d64)
++#define MF_E_TRANSFORM_PROFILE_TRUNCATED           _HRESULT_TYPEDEF_(0xc00d6d65)
++#define MF_E_TRANSFORM_PROPERTY_PID_NOT_RECOGNIZED _HRESULT_TYPEDEF_(0xc00d6d66)
++#define MF_E_TRANSFORM_PROPERTY_VARIANT_TYPE_WRONG _HRESULT_TYPEDEF_(0xc00d6d67)
++#define MF_E_TRANSFORM_PROPERTY_NOT_WRITEABLE      _HRESULT_TYPEDEF_(0xc00d6d68)
++#define MF_E_TRANSFORM_PROPERTY_ARRAY_VALUE_WRONG_NUM_DIM  _HRESULT_TYPEDEF_(0xc00d6d69)
++#define MF_E_TRANSFORM_PROPERTY_VALUE_SIZE_WRONG   _HRESULT_TYPEDEF_(0xc00d6d6a)
++#define MF_E_TRANSFORM_PROPERTY_VALUE_OUT_OF_RANGE _HRESULT_TYPEDEF_(0xc00d6d6b)
++#define MF_E_TRANSFORM_PROPERTY_VALUE_INCOMPATIBLE _HRESULT_TYPEDEF_(0xc00d6d6c)
++#define MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_OUTPUT_MEDIATYPE       _HRESULT_TYPEDEF_(0xc00d6d6d)
++#define MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_INPUT_MEDIATYPE        _HRESULT_TYPEDEF_(0xc00d6d6e)
++#define MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_MEDIATYPE_COMBINATION  _HRESULT_TYPEDEF_(0xc00d6d6f)
++#define MF_E_TRANSFORM_CONFLICTS_WITH_OTHER_CURRENTLY_ENABLED_FEATURES _HRESULT_TYPEDEF_(0xc00d6d70)
++#define MF_E_TRANSFORM_NEED_MORE_INPUT                                 _HRESULT_TYPEDEF_(0xc00d6d72)
++#define MF_E_TRANSFORM_NOT_POSSIBLE_FOR_CURRENT_SPKR_CONFIG            _HRESULT_TYPEDEF_(0xc00d6d73)
++#define MF_E_TRANSFORM_CANNOT_CHANGE_MEDIATYPE_WHILE_PROCESSING        _HRESULT_TYPEDEF_(0xc00d6d74)
++#define MF_S_TRANSFORM_DO_NOT_PROPAGATE_EVENT       _HRESULT_TYPEDEF_(0x000d6d75)
++#define MF_E_UNSUPPORTED_D3D_TYPE                   _HRESULT_TYPEDEF_(0xc00d6d76)
++#define MF_E_TRANSFORM_ASYNC_LOCKED                 _HRESULT_TYPEDEF_(0xc00d6d77)
++#define MF_E_TRANSFORM_CANNOT_INITIALIZE_ACM_DRIVER _HRESULT_TYPEDEF_(0xc00d6d78)
+ 
+ #endif /* _MFERROR_H */
+-- 
+2.1.0
+
diff --git a/0011-mstcpip.h-Declare-RtlIpv6-functions-only-if-ws2ipdef.patch b/0011-mstcpip.h-Declare-RtlIpv6-functions-only-if-ws2ipdef.patch
new file mode 100644
index 0000000..5765f12
--- /dev/null
+++ b/0011-mstcpip.h-Declare-RtlIpv6-functions-only-if-ws2ipdef.patch
@@ -0,0 +1,58 @@
+From e96bd4330beed5eeb06c6ea6e1bb25fc2b3ccbc0 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Fri, 7 Feb 2014 12:14:09 +0000
+Subject: [PATCH 11/25] mstcpip.h: Declare RtlIpv6* functions only if
+ ws2ipdef.h is included.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6475 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/include/mstcpip.h  | 4 ++++
+ mingw-w64-headers/include/ws2ipdef.h | 6 +++---
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/mingw-w64-headers/include/mstcpip.h b/mingw-w64-headers/include/mstcpip.h
+index 9ae73af..200f1c2 100644
+--- a/mingw-w64-headers/include/mstcpip.h
++++ b/mingw-w64-headers/include/mstcpip.h
+@@ -99,6 +99,8 @@ typedef struct _SOCKET_SECURITY_SETTINGS_IPSEC {
+ #define RtlIpv6AddressToString __MINGW_NAME_AW(RtlIpv6AddressToString)
+ #define RtlIpv6AddressToStringEx __MINGW_NAME_AW(RtlIpv6AddressToStringEx)
+ 
++#ifdef _WS2IPDEF_
++
+ LPSTR NTAPI RtlIpv6AddressToStringA(const IN6_ADDR *Addr, LPSTR S);
+ LPWSTR NTAPI RtlIpv6AddressToStringW(const IN6_ADDR *Addr, LPWSTR S);
+ 
+@@ -125,6 +127,8 @@ LONG NTAPI RtlIpv4StringToAddressExW(PCWSTR AddressString, BOOLEAN Strict, IN_AD
+ LONG NTAPI RtlIpv6StringToAddressExA(PCSTR AddressString, IN6_ADDR *Address, PULONG ScopeId, PUSHORT Port);
+ LONG NTAPI RtlIpv6StringToAddressExW(PCWSTR AddressString, IN6_ADDR *Address, PULONG ScopeId, PUSHORT Port);
+ 
++#endif /* _WS2IPDEF_ */
++
+ #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
+ #endif /*(_WIN32_WINNT >= 0x0502)*/
+ 
+diff --git a/mingw-w64-headers/include/ws2ipdef.h b/mingw-w64-headers/include/ws2ipdef.h
+index bd810f7..4a4528c 100644
+--- a/mingw-w64-headers/include/ws2ipdef.h
++++ b/mingw-w64-headers/include/ws2ipdef.h
+@@ -2,8 +2,8 @@
+  * This file is part of the mingw-w64 runtime package.
+  * No warranty is given; refer to the file DISCLAIMER within this package.
+  */
+-#ifndef _INC_WS2IPDEF
+-#define _INC_WS2IPDEF
++#ifndef _WS2IPDEF_
++#define _WS2IPDEF_
+ 
+ #include <winapifamily.h>
+ 
+@@ -123,4 +123,4 @@ typedef struct group_source_req {
+ 
+ #endif /* WINAPI_PARTION_DESKTOP.  */
+ 
+-#endif /*_INC_WS2IPDEF*/
++#endif /*_WS2IPDEF_ */
+-- 
+2.1.0
+
diff --git a/0012-Added-dxgi1_2.h-missing-in-previous-commit.patch b/0012-Added-dxgi1_2.h-missing-in-previous-commit.patch
new file mode 100644
index 0000000..889d55a
--- /dev/null
+++ b/0012-Added-dxgi1_2.h-missing-in-previous-commit.patch
@@ -0,0 +1,310 @@
+From bb013f7b20cecf5f7f63cd7cdc8eedf19729431f Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Thu, 27 Mar 2014 12:30:27 +0000
+Subject: [PATCH 12/25] Added dxgi1_2.h missing in previous commit.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6558 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/direct-x/include/dxgi1_2.h | 290 +++++++++++++++++++++++++++
+ 1 file changed, 290 insertions(+)
+ create mode 100644 mingw-w64-headers/direct-x/include/dxgi1_2.h
+
+diff --git a/mingw-w64-headers/direct-x/include/dxgi1_2.h b/mingw-w64-headers/direct-x/include/dxgi1_2.h
+new file mode 100644
+index 0000000..72e67f0
+--- /dev/null
++++ b/mingw-w64-headers/direct-x/include/dxgi1_2.h
+@@ -0,0 +1,290 @@
++/*** Autogenerated by WIDL 1.6 from direct-x/include/dxgi1_2.idl - Do not edit ***/
++
++#ifndef __REQUIRED_RPCNDR_H_VERSION__
++#define __REQUIRED_RPCNDR_H_VERSION__ 475
++#endif
++
++#include <rpc.h>
++#include <rpcndr.h>
++
++#ifndef COM_NO_WINDOWS_H
++#include <windows.h>
++#include <ole2.h>
++#endif
++
++#ifndef __dxgi1_2_h__
++#define __dxgi1_2_h__
++
++/* Forward declarations */
++
++#ifndef __IDXGIDevice2_FWD_DEFINED__
++#define __IDXGIDevice2_FWD_DEFINED__
++typedef interface IDXGIDevice2 IDXGIDevice2;
++#endif
++
++/* Headers for imported files */
++
++#include <dxgi.h>
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++typedef enum _DXGI_OFFER_RESOURCE_PRIORITY {
++    DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1,
++    DXGI_OFFER_RESOURCE_PRIORITY_NORMAL = 2,
++    DXGI_OFFER_RESOURCE_PRIORITY_HIGH = 3
++} DXGI_OFFER_RESOURCE_PRIORITY;
++/*****************************************************************************
++ * IDXGIDevice2 interface
++ */
++#ifndef __IDXGIDevice2_INTERFACE_DEFINED__
++#define __IDXGIDevice2_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IDXGIDevice2, 0x05008617, 0xfbfd, 0x4051, 0xa7,0x90, 0x14,0x48,0x84,0xb4,0xf6,0xa9);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("05008617-fbfd-4051-a790-144884b4f6a9")
++IDXGIDevice2 : public IDXGIDevice1
++{
++    virtual HRESULT STDMETHODCALLTYPE OfferResources(
++        UINT NumResources,
++        IDXGIResource *const *ppResources,
++        DXGI_OFFER_RESOURCE_PRIORITY Priority) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ReclaimResources(
++        UINT NumResources,
++        IDXGIResource *const *ppResources,
++        WINBOOL *pDiscarded) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE EnqueueSetEvent(
++        HANDLE hEvent) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDXGIDevice2, 0x05008617, 0xfbfd, 0x4051, 0xa7,0x90, 0x14,0x48,0x84,0xb4,0xf6,0xa9)
++#endif
++#else
++typedef struct IDXGIDevice2Vtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IDXGIDevice2* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IDXGIDevice2* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IDXGIDevice2* This);
++
++    /*** IDXGIObject methods ***/
++    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
++        IDXGIDevice2* This,
++        REFGUID guid,
++        UINT data_size,
++        const void *data);
++
++    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
++        IDXGIDevice2* This,
++        REFGUID guid,
++        const IUnknown *object);
++
++    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
++        IDXGIDevice2* This,
++        REFGUID guid,
++        UINT *data_size,
++        void *data);
++
++    HRESULT (STDMETHODCALLTYPE *GetParent)(
++        IDXGIDevice2* This,
++        REFIID riid,
++        void **parent);
++
++    /*** IDXGIDevice methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetAdapter)(
++        IDXGIDevice2* This,
++        IDXGIAdapter **adapter);
++
++    HRESULT (STDMETHODCALLTYPE *CreateSurface)(
++        IDXGIDevice2* This,
++        const DXGI_SURFACE_DESC *desc,
++        UINT surface_count,
++        DXGI_USAGE usage,
++        const DXGI_SHARED_RESOURCE *shared_resource,
++        IDXGISurface **surface);
++
++    HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)(
++        IDXGIDevice2* This,
++        IUnknown *const *resources,
++        DXGI_RESIDENCY *residency,
++        UINT resource_count);
++
++    HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)(
++        IDXGIDevice2* This,
++        INT priority);
++
++    HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)(
++        IDXGIDevice2* This,
++        INT *priority);
++
++    /*** IDXGIDevice1 methods ***/
++    HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
++        IDXGIDevice2* This,
++        UINT MaxLatency);
++
++    HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
++        IDXGIDevice2* This,
++        UINT *pMaxLatency);
++
++    /*** IDXGIDevice2 methods ***/
++    HRESULT (STDMETHODCALLTYPE *OfferResources)(
++        IDXGIDevice2* This,
++        UINT NumResources,
++        IDXGIResource *const *ppResources,
++        DXGI_OFFER_RESOURCE_PRIORITY Priority);
++
++    HRESULT (STDMETHODCALLTYPE *ReclaimResources)(
++        IDXGIDevice2* This,
++        UINT NumResources,
++        IDXGIResource *const *ppResources,
++        WINBOOL *pDiscarded);
++
++    HRESULT (STDMETHODCALLTYPE *EnqueueSetEvent)(
++        IDXGIDevice2* This,
++        HANDLE hEvent);
++
++    END_INTERFACE
++} IDXGIDevice2Vtbl;
++interface IDXGIDevice2 {
++    CONST_VTBL IDXGIDevice2Vtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IDXGIDevice2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IDXGIDevice2_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IDXGIDevice2_Release(This) (This)->lpVtbl->Release(This)
++/*** IDXGIObject methods ***/
++#define IDXGIDevice2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
++#define IDXGIDevice2_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
++#define IDXGIDevice2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
++#define IDXGIDevice2_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
++/*** IDXGIDevice methods ***/
++#define IDXGIDevice2_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter)
++#define IDXGIDevice2_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface)
++#define IDXGIDevice2_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count)
++#define IDXGIDevice2_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority)
++#define IDXGIDevice2_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority)
++/*** IDXGIDevice1 methods ***/
++#define IDXGIDevice2_SetMaximumFrameLatency(This,MaxLatency) (This)->lpVtbl->SetMaximumFrameLatency(This,MaxLatency)
++#define IDXGIDevice2_GetMaximumFrameLatency(This,pMaxLatency) (This)->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency)
++/*** IDXGIDevice2 methods ***/
++#define IDXGIDevice2_OfferResources(This,NumResources,ppResources,Priority) (This)->lpVtbl->OfferResources(This,NumResources,ppResources,Priority)
++#define IDXGIDevice2_ReclaimResources(This,NumResources,ppResources,pDiscarded) (This)->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded)
++#define IDXGIDevice2_EnqueueSetEvent(This,hEvent) (This)->lpVtbl->EnqueueSetEvent(This,hEvent)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IDXGIDevice2_QueryInterface(IDXGIDevice2* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IDXGIDevice2_AddRef(IDXGIDevice2* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IDXGIDevice2_Release(IDXGIDevice2* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IDXGIObject methods ***/
++static FORCEINLINE HRESULT IDXGIDevice2_SetPrivateData(IDXGIDevice2* This,REFGUID guid,UINT data_size,const void *data) {
++    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
++}
++static FORCEINLINE HRESULT IDXGIDevice2_SetPrivateDataInterface(IDXGIDevice2* This,REFGUID guid,const IUnknown *object) {
++    return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
++}
++static FORCEINLINE HRESULT IDXGIDevice2_GetPrivateData(IDXGIDevice2* This,REFGUID guid,UINT *data_size,void *data) {
++    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
++}
++static FORCEINLINE HRESULT IDXGIDevice2_GetParent(IDXGIDevice2* This,REFIID riid,void **parent) {
++    return This->lpVtbl->GetParent(This,riid,parent);
++}
++/*** IDXGIDevice methods ***/
++static FORCEINLINE HRESULT IDXGIDevice2_GetAdapter(IDXGIDevice2* This,IDXGIAdapter **adapter) {
++    return This->lpVtbl->GetAdapter(This,adapter);
++}
++static FORCEINLINE HRESULT IDXGIDevice2_CreateSurface(IDXGIDevice2* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) {
++    return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface);
++}
++static FORCEINLINE HRESULT IDXGIDevice2_QueryResourceResidency(IDXGIDevice2* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) {
++    return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count);
++}
++static FORCEINLINE HRESULT IDXGIDevice2_SetGPUThreadPriority(IDXGIDevice2* This,INT priority) {
++    return This->lpVtbl->SetGPUThreadPriority(This,priority);
++}
++static FORCEINLINE HRESULT IDXGIDevice2_GetGPUThreadPriority(IDXGIDevice2* This,INT *priority) {
++    return This->lpVtbl->GetGPUThreadPriority(This,priority);
++}
++/*** IDXGIDevice1 methods ***/
++static FORCEINLINE HRESULT IDXGIDevice2_SetMaximumFrameLatency(IDXGIDevice2* This,UINT MaxLatency) {
++    return This->lpVtbl->SetMaximumFrameLatency(This,MaxLatency);
++}
++static FORCEINLINE HRESULT IDXGIDevice2_GetMaximumFrameLatency(IDXGIDevice2* This,UINT *pMaxLatency) {
++    return This->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency);
++}
++/*** IDXGIDevice2 methods ***/
++static FORCEINLINE HRESULT IDXGIDevice2_OfferResources(IDXGIDevice2* This,UINT NumResources,IDXGIResource *const *ppResources,DXGI_OFFER_RESOURCE_PRIORITY Priority) {
++    return This->lpVtbl->OfferResources(This,NumResources,ppResources,Priority);
++}
++static FORCEINLINE HRESULT IDXGIDevice2_ReclaimResources(IDXGIDevice2* This,UINT NumResources,IDXGIResource *const *ppResources,WINBOOL *pDiscarded) {
++    return This->lpVtbl->ReclaimResources(This,NumResources,ppResources,pDiscarded);
++}
++static FORCEINLINE HRESULT IDXGIDevice2_EnqueueSetEvent(IDXGIDevice2* This,HANDLE hEvent) {
++    return This->lpVtbl->EnqueueSetEvent(This,hEvent);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IDXGIDevice2_OfferResources_Proxy(
++    IDXGIDevice2* This,
++    UINT NumResources,
++    IDXGIResource *const *ppResources,
++    DXGI_OFFER_RESOURCE_PRIORITY Priority);
++void __RPC_STUB IDXGIDevice2_OfferResources_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IDXGIDevice2_ReclaimResources_Proxy(
++    IDXGIDevice2* This,
++    UINT NumResources,
++    IDXGIResource *const *ppResources,
++    WINBOOL *pDiscarded);
++void __RPC_STUB IDXGIDevice2_ReclaimResources_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IDXGIDevice2_EnqueueSetEvent_Proxy(
++    IDXGIDevice2* This,
++    HANDLE hEvent);
++void __RPC_STUB IDXGIDevice2_EnqueueSetEvent_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IDXGIDevice2_INTERFACE_DEFINED__ */
++
++/* Begin additional prototypes for all interfaces */
++
++
++/* End additional prototypes */
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif /* __dxgi1_2_h__ */
+-- 
+2.1.0
+
diff --git a/0013-Updated-imported-headers-to-current-Wine-version.patch b/0013-Updated-imported-headers-to-current-Wine-version.patch
new file mode 100644
index 0000000..728593d
--- /dev/null
+++ b/0013-Updated-imported-headers-to-current-Wine-version.patch
@@ -0,0 +1,514 @@
+From 53df7b6db5f4dbd2fbfd6d7825cbca5e68b38a51 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <jacek at codeweavers.com>
+Date: Tue, 19 Aug 2014 12:46:21 +0200
+Subject: [PATCH 13/25] Updated imported headers to current Wine version.
+
+---
+ mingw-w64-headers/direct-x/include/d3d10_1.h    |  40 +++++
+ mingw-w64-headers/direct-x/include/d3d10_1.idl  |  23 +++
+ mingw-w64-headers/direct-x/include/d3d11.h      | 206 ++++++++++++++++++++++++
+ mingw-w64-headers/direct-x/include/d3d11.idl    | 121 ++++++++++++++
+ mingw-w64-headers/direct-x/include/d3dx9shape.h |   2 +
+ mingw-w64-headers/include/objidl.h              |   4 +-
+ 6 files changed, 394 insertions(+), 2 deletions(-)
+
+diff --git a/mingw-w64-headers/direct-x/include/d3d10_1.h b/mingw-w64-headers/direct-x/include/d3d10_1.h
+index 680fa62..aaeb30e 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10_1.h
++++ b/mingw-w64-headers/direct-x/include/d3d10_1.h
+@@ -42,6 +42,46 @@ typedef interface ID3D10Device1 ID3D10Device1;
+ extern "C" {
+ #endif
+ 
++#define D3D10_1_DEFAULT_SAMPLE_MASK (0xffffffff)
++
++#define D3D10_1_GS_INPUT_REGISTER_COUNT (32)
++
++#define D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
++
++#define D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS (128)
++
++#define D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT (32)
++
++#define D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS (1)
++
++#define D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT (32)
++
++#define D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT (1)
++
++#define D3D10_1_SHADER_MAJOR_VERSION (4)
++
++#define D3D10_1_SHADER_MINOR_VERSION (1)
++
++#define D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
++
++#define D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (256)
++
++#define D3D10_1_SO_BUFFER_SLOT_COUNT (4)
++
++#define D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER (1)
++
++#define D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT (64)
++
++#define D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT (32)
++
++#define D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT (8)
++
++#define D3D10_1_VS_INPUT_REGISTER_COUNT (32)
++
++#define D3D10_1_VS_OUTPUT_REGISTER_COUNT (32)
++
++#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP      (0.6)
++#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f)
+ #include <d3d10_1shader.h>
+ #define D3D10_1_SHADER_MAJOR_VERSION (4)
+ 
+diff --git a/mingw-w64-headers/direct-x/include/d3d10_1.idl b/mingw-w64-headers/direct-x/include/d3d10_1.idl
+index bfae754..d0e02d4 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10_1.idl
++++ b/mingw-w64-headers/direct-x/include/d3d10_1.idl
+@@ -19,6 +19,29 @@
+ import "oaidl.idl";
+ import "ocidl.idl";
+ 
++const UINT D3D10_1_DEFAULT_SAMPLE_MASK                     = 0xffffffff;
++const UINT D3D10_1_GS_INPUT_REGISTER_COUNT                 = 32;
++const UINT D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT     = 32;
++const UINT D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS = 128;
++const UINT D3D10_1_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT = 32;
++const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENTS      = 1;
++const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32;
++const UINT D3D10_1_PS_OUTPUT_MASK_REGISTER_COUNT           = 1;
++const UINT D3D10_1_SHADER_MAJOR_VERSION                    = 4;
++const UINT D3D10_1_SHADER_MINOR_VERSION                    = 1;
++const UINT D3D10_1_SO_BUFFER_MAX_STRIDE_IN_BYTES           = 2048;
++const UINT D3D10_1_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES     = 256;
++const UINT D3D10_1_SO_BUFFER_SLOT_COUNT                    = 4;
++const UINT D3D10_1_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER  = 1;
++const UINT D3D10_1_SO_SINGLE_BUFFER_COMPONENT_LIMIT        = 64;
++const UINT D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT           = 32;
++const UINT D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT           = 8;
++const UINT D3D10_1_VS_INPUT_REGISTER_COUNT                 = 32;
++const UINT D3D10_1_VS_OUTPUT_REGISTER_COUNT                = 32;
++
++cpp_quote("#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP      (0.6)")
++cpp_quote("#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f)")
++
+ import "d3d10.idl";
+ cpp_quote("#include <d3d10_1shader.h>")
+ 
+diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h
+index 49501b0..e08c5e0 100644
+--- a/mingw-w64-headers/direct-x/include/d3d11.h
++++ b/mingw-w64-headers/direct-x/include/d3d11.h
+@@ -187,6 +187,76 @@ typedef D3D_PRIMITIVE D3D11_PRIMITIVE;
+ typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
+ typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
+ typedef RECT D3D11_RECT;
++#define D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT (14)
++
++#define D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS (4)
++
++#define D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT (32)
++
++#define D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT (15)
++
++#define D3D11_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT (16)
++
++#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
++
++#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15)
++
++#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
++
++#define D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
++
++#define D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT (64)
++
++#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS (4)
++
++#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT (1)
++
++#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST (1)
++
++#define D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS (1)
++
++#define D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT (32)
++
++#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS (1)
++
++#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT (128)
++
++#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST (1)
++
++#define D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS (1)
++
++#define D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT (128)
++
++#define D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS (1)
++
++#define D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT (16)
++
++#define D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST (1)
++
++#define D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS (1)
++
++#define D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT (16)
++
++#define D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT (32)
++
++#define D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS (4)
++
++#define D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT (32)
++
++#define D3D11_COMMONSHADER_TEMP_REGISTER_COUNT (4096)
++
++#define D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST (3)
++
++#define D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS (3)
++
++#define D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX (10)
++
++#define D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN (-10)
++
++#define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE (-8)
++
++#define D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE (7)
++
+ #define D3D11_DEFAULT_DEPTH_BIAS (0)
+ 
+ #define D3D11_DEFAULT_DEPTH_BIAS_CLAMP 0.0f
+@@ -251,6 +321,135 @@ typedef RECT D3D11_RECT;
+ 
+ #define D3D11_VS_OUTPUT_REGISTER_COUNT (32)
+ 
++#define D3D11_PS_CS_UAV_REGISTER_COMPONENTS (1)
++
++#define D3D11_PS_CS_UAV_REGISTER_COUNT (8)
++
++#define D3D11_PS_CS_UAV_REGISTER_READS_PER_INST (1)
++
++#define D3D11_PS_CS_UAV_REGISTER_READ_PORTS (1)
++
++#define D3D11_PS_FRONTFACING_DEFAULT_VALUE (0xffffffff)
++
++#define D3D11_PS_FRONTFACING_FALSE_VALUE (0)
++
++#define D3D11_PS_FRONTFACING_TRUE_VALUE (0xffffffff)
++
++#define D3D11_PS_INPUT_REGISTER_COMPONENTS (4)
++
++#define D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT (32)
++
++#define D3D11_PS_INPUT_REGISTER_COUNT (32)
++
++#define D3D11_PS_INPUT_REGISTER_READS_PER_INST (2)
++
++#define D3D11_PS_INPUT_REGISTER_READ_PORTS (1)
++
++#define D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.0f)
++#define D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS (1)
++
++#define D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT (32)
++
++#define D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT (1)
++
++#define D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS (1)
++
++#define D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT (32)
++
++#define D3D11_PS_OUTPUT_MASK_REGISTER_COUNT (1)
++
++#define D3D11_PS_OUTPUT_REGISTER_COMPONENTS (4)
++
++#define D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT (32)
++
++#define D3D11_PS_OUTPUT_REGISTER_COUNT (8)
++
++#define D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.5f)
++#define D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT (16)
++
++#define D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE (4096)
++
++#define D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP (27)
++
++#define D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
++
++#define D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE (4096)
++
++#define D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP (32)
++
++#define D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP (32)
++
++#define D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION (16384)
++
++#define D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT (1024)
++
++#define D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
++
++#define D3D11_REQ_MAXANISOTROPY (16)
++
++#define D3D11_REQ_MIP_LEVELS (15)
++
++#define D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES (2048)
++
++#define D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE (4096)
++
++#define D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH (16384)
++
++#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM (128)
++
++#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0.25f)
++#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM (2048)
++
++#define D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP (20)
++
++#define D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE (4096)
++
++#define D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (2048)
++
++#define D3D11_REQ_TEXTURE1D_U_DIMENSION (16384)
++
++#define D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION (2048)
++
++#define D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION (16384)
++
++#define D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION (2048)
++
++#define D3D11_REQ_TEXTURECUBE_DIMENSION (16384)
++
++#define D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL (0)
++
++#define D3D11_SHADER_MAJOR_VERSION (5)
++
++#define D3D11_SHADER_MAX_INSTANCES (65535)
++
++#define D3D11_SHADER_MAX_INTERFACES (253)
++
++#define D3D11_SHADER_MAX_INTERFACE_CALL_SITES (4096)
++
++#define D3D11_SHADER_MAX_TYPES (65535)
++
++#define D3D11_SHADER_MINOR_VERSION (0)
++
++#define D3D11_SHIFT_INSTRUCTION_PAD_VALUE (0)
++
++#define D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT (5)
++
++#define D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT (8)
++
++#define D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
++
++#define D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES (512)
++
++#define D3D11_SO_BUFFER_SLOT_COUNT (4)
++
++#define D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff)
++
++#define D3D11_SO_NO_RASTERIZED_STREAM (0xffffffff)
++
++#define D3D11_SO_OUTPUT_COMPONENT_COUNT (128)
++
++#define D3D11_SO_STREAM_COUNT (4)
++
+ #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+ struct CD3D11_DEFAULT {};
+ extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;
+@@ -471,6 +670,13 @@ typedef enum D3D11_MAP {
+     D3D11_MAP_WRITE_DISCARD = 4,
+     D3D11_MAP_WRITE_NO_OVERWRITE = 5
+ } D3D11_MAP;
++typedef enum D3D11_MAP_FLAG {
++    D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000
++} D3D11_MAP_FLAG;
++typedef struct D3D11_QUERY_DATA_SO_STATISTICS {
++    UINT64 NumPrimitivesWritten;
++    UINT64 PrimitivesStorageNeeded;
++} D3D11_QUERY_DATA_SO_STATISTICS;
+ typedef struct D3D11_MAPPED_SUBRESOURCE {
+     void *pData;
+     UINT RowPitch;
+diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl
+index 2e1d7ad..d03ffd3 100644
+--- a/mingw-w64-headers/direct-x/include/d3d11.idl
++++ b/mingw-w64-headers/direct-x/include/d3d11.idl
+@@ -27,6 +27,42 @@ typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
+ typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
+ typedef RECT D3D11_RECT;
+ 
++const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT      = 14;
++const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS          = 4;
++const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT = 32;
++const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT       = 15;
++const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_PARTIAL_UPDATE_EXTENTS_BYTE_ALIGNMENT = 16;
++const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
++const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT      = 15;
++const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
++const UINT D3D11_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
++const UINT D3D11_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT           = 64;
++const UINT D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS = 4;
++const UINT D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT = 1;
++const UINT D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
++const UINT D3D11_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS = 1;
++const UINT D3D11_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT = 32;
++const UINT D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS  = 1;
++const UINT D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT       = 128;
++const UINT D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST = 1;
++const UINT D3D11_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS  = 1;
++const UINT D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT           = 128;
++const UINT D3D11_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS         = 1;
++const UINT D3D11_COMMONSHADER_SAMPLER_REGISTER_COUNT              = 16;
++const UINT D3D11_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST     = 1;
++const UINT D3D11_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS         = 1;
++const UINT D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT                  = 16;
++const UINT D3D11_COMMONSHADER_SUBROUTINE_NESTING_LIMIT            = 32;
++const UINT D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENTS            = 4;
++const UINT D3D11_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT   = 32;
++const UINT D3D11_COMMONSHADER_TEMP_REGISTER_COUNT                 = 4096;
++const UINT D3D11_COMMONSHADER_TEMP_REGISTER_READS_PER_INST        = 3;
++const UINT D3D11_COMMONSHADER_TEMP_REGISTER_READ_PORTS            = 3;
++const UINT D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX        = 10;
++const INT D3D11_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN         = -10;
++const INT D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE            = -8;
++const UINT D3D11_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE           = 7;
++
+ const UINT D3D11_DEFAULT_DEPTH_BIAS          = 0;
+ cpp_quote("#define D3D11_DEFAULT_DEPTH_BIAS_CLAMP 0.0f")
+ const UINT D3D11_DEFAULT_MAX_ANISOTROPY      = 16;
+@@ -66,6 +102,80 @@ const UINT D3D11_SHADER_MAX_TYPES            = 65535;
+ const UINT D3D11_SHADER_MINOR_VERSION        = 0;
+ const UINT D3D11_VS_OUTPUT_REGISTER_COUNT    = 32;
+ 
++const UINT D3D11_PS_CS_UAV_REGISTER_COMPONENTS         = 1;
++const UINT D3D11_PS_CS_UAV_REGISTER_COUNT              = 8;
++const UINT D3D11_PS_CS_UAV_REGISTER_READS_PER_INST     = 1;
++const UINT D3D11_PS_CS_UAV_REGISTER_READ_PORTS         = 1;
++const UINT D3D11_PS_FRONTFACING_DEFAULT_VALUE          = 0xffffffff;
++const UINT D3D11_PS_FRONTFACING_FALSE_VALUE            = 0;
++const UINT D3D11_PS_FRONTFACING_TRUE_VALUE             = 0xffffffff;
++const UINT D3D11_PS_INPUT_REGISTER_COMPONENTS          = 4;
++const UINT D3D11_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
++const UINT D3D11_PS_INPUT_REGISTER_COUNT               = 32;
++const UINT D3D11_PS_INPUT_REGISTER_READS_PER_INST      = 2;
++const UINT D3D11_PS_INPUT_REGISTER_READ_PORTS          = 1;
++cpp_quote("#define D3D11_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.0f)")
++const UINT D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS   = 1;
++const UINT D3D11_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT = 32;
++const UINT D3D11_PS_OUTPUT_DEPTH_REGISTER_COUNT        = 1;
++const UINT D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENTS    = 1;
++const UINT D3D11_PS_OUTPUT_MASK_REGISTER_COMPONENT_BIT_COUNT = 32;
++const UINT D3D11_PS_OUTPUT_MASK_REGISTER_COUNT         = 1;
++const UINT D3D11_PS_OUTPUT_REGISTER_COMPONENTS         = 4;
++const UINT D3D11_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT = 32;
++const UINT D3D11_PS_OUTPUT_REGISTER_COUNT              = 8;
++cpp_quote("#define D3D11_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT (0.5f)")
++
++const UINT D3D11_RAW_UAV_SRV_BYTE_ALIGNMENT            = 16;
++
++const UINT D3D11_REQ_BLEND_OBJECT_COUNT_PER_DEVICE     = 4096;
++const UINT D3D11_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP = 27;
++const UINT D3D11_REQ_CONSTANT_BUFFER_ELEMENT_COUNT     = 4096;
++const UINT D3D11_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_DEVICE = 4096;
++const UINT D3D11_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP  = 32;
++const UINT D3D11_REQ_DRAW_VERTEX_COUNT_2_TO_EXP        = 32;
++const UINT D3D11_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION = 16384;
++const UINT D3D11_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT = 1024;
++const UINT D3D11_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT = 4096;
++const UINT D3D11_REQ_MAXANISOTROPY                     = 16;
++const UINT D3D11_REQ_MIP_LEVELS                        = 15;
++const UINT D3D11_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES = 2048;
++const UINT D3D11_REQ_RASTERIZER_OBJECT_COUNT_PER_DEVICE = 4096;
++const UINT D3D11_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH     = 16384;
++const UINT D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_A_TERM = 128;
++cpp_quote("#define D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_B_TERM (0.25f)")
++const UINT D3D11_REQ_RESOURCE_SIZE_IN_MEGABYTES_EXPRESSION_C_TERM = 2048;
++const UINT D3D11_REQ_RESOURCE_VIEW_COUNT_PER_DEVICE_2_TO_EXP = 20;
++const UINT D3D11_REQ_SAMPLER_OBJECT_COUNT_PER_DEVICE   = 4096;
++const UINT D3D11_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION    = 2048;
++const UINT D3D11_REQ_TEXTURE1D_U_DIMENSION             = 16384;
++const UINT D3D11_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION    = 2048;
++const UINT D3D11_REQ_TEXTURE2D_U_OR_V_DIMENSION        = 16384;
++const UINT D3D11_REQ_TEXTURE3D_U_V_OR_W_DIMENSION      = 2048;
++const UINT D3D11_REQ_TEXTURECUBE_DIMENSION             = 16384;
++
++const UINT D3D11_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL = 0;
++
++const UINT D3D11_SHADER_MAJOR_VERSION                  = 5;
++const UINT D3D11_SHADER_MAX_INSTANCES                  = 65535;
++const UINT D3D11_SHADER_MAX_INTERFACES                 = 253;
++const UINT D3D11_SHADER_MAX_INTERFACE_CALL_SITES       = 4096;
++const UINT D3D11_SHADER_MAX_TYPES                      = 65535;
++const UINT D3D11_SHADER_MINOR_VERSION                  = 0;
++
++const UINT D3D11_SHIFT_INSTRUCTION_PAD_VALUE           = 0;
++const UINT D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5;
++
++const UINT D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT      = 8;
++
++const UINT D3D11_SO_BUFFER_MAX_STRIDE_IN_BYTES         = 2048;
++const UINT D3D11_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES   = 512;
++const UINT D3D11_SO_BUFFER_SLOT_COUNT                  = 4;
++const UINT D3D11_SO_DDI_REGISTER_INDEX_DENOTING_GAP    = 0xffffffff;
++const UINT D3D11_SO_NO_RASTERIZED_STREAM               = 0xffffffff;
++const UINT D3D11_SO_OUTPUT_COMPONENT_COUNT             = 128;
++const UINT D3D11_SO_STREAM_COUNT                       = 4;
++
+ cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
+ cpp_quote("struct CD3D11_DEFAULT {};")
+ cpp_quote("extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;")
+@@ -343,6 +453,17 @@ typedef enum D3D11_MAP
+     D3D11_MAP_WRITE_NO_OVERWRITE
+ } D3D11_MAP;
+ 
++typedef enum D3D11_MAP_FLAG
++{
++    D3D11_MAP_FLAG_DO_NOT_WAIT = 0x00100000
++} D3D11_MAP_FLAG;
++
++typedef struct D3D11_QUERY_DATA_SO_STATISTICS
++{
++    UINT64 NumPrimitivesWritten;
++    UINT64 PrimitivesStorageNeeded;
++} D3D11_QUERY_DATA_SO_STATISTICS;
++
+ typedef struct D3D11_MAPPED_SUBRESOURCE
+ {
+     void *pData;
+diff --git a/mingw-w64-headers/direct-x/include/d3dx9shape.h b/mingw-w64-headers/direct-x/include/d3dx9shape.h
+index 1fbf608..ec19750 100644
+--- a/mingw-w64-headers/direct-x/include/d3dx9shape.h
++++ b/mingw-w64-headers/direct-x/include/d3dx9shape.h
+@@ -38,6 +38,8 @@ HRESULT WINAPI D3DXCreateTextA(struct IDirect3DDevice9 *device, HDC hdc, const c
+         float extrusion, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency, GLYPHMETRICSFLOAT *glyphmetrics);
+ HRESULT WINAPI D3DXCreateTextW(struct IDirect3DDevice9 *device, HDC hdc, const WCHAR *text, float deviation,
+         FLOAT extrusion, struct ID3DXMesh **mesh, struct ID3DXBuffer **adjacency, GLYPHMETRICSFLOAT *glyphmetrics);
++HRESULT WINAPI D3DXCreateTorus(struct IDirect3DDevice9 *device,
++        float innerradius, float outerradius, UINT sides, UINT rings, struct ID3DXMesh **mesh, ID3DXBuffer **adjacency);
+ #define D3DXCreateText __MINGW_NAME_AW(D3DXCreateText)
+ 
+ #ifdef __cplusplus
+diff --git a/mingw-w64-headers/include/objidl.h b/mingw-w64-headers/include/objidl.h
+index 833bcd7..3d348b4 100644
+--- a/mingw-w64-headers/include/objidl.h
++++ b/mingw-w64-headers/include/objidl.h
+@@ -11389,7 +11389,7 @@ IUnknown *pUnkForRelease;
+ #else
+ typedef struct tagSTGMEDIUM {
+     DWORD tymed;
+-    union {
++    __C89_NAMELESS union {
+         HBITMAP hBitmap;
+         HMETAFILEPICT hMetaFilePict;
+         HENHMETAFILE hEnhMetaFile;
+@@ -11410,7 +11410,7 @@ typedef struct _GDI_OBJECT {
+     } u;
+ } GDI_OBJECT;
+ typedef struct _userSTGMEDIUM {
+-    struct _STGMEDIUM_UNION {
++    __C89_NAMELESS struct _STGMEDIUM_UNION {
+         DWORD tymed;
+         union {
+             wireHMETAFILEPICT hMetaFilePict;
+-- 
+2.1.0
+
diff --git a/0014-tsattrs.h-Added-new-header-file.patch b/0014-tsattrs.h-Added-new-header-file.patch
new file mode 100644
index 0000000..a5da933
--- /dev/null
+++ b/0014-tsattrs.h-Added-new-header-file.patch
@@ -0,0 +1,119 @@
+From 8429c370f2dbb4ac4a4472614bda5c240db3ac5b Mon Sep 17 00:00:00 2001
+From: Jacek Caban <jacek at codeweavers.com>
+Date: Tue, 19 Aug 2014 14:30:31 +0200
+Subject: [PATCH 14/25] tsattrs.h: Added new header file.
+
+---
+ mingw-w64-headers/include/tsattrs.h | 100 ++++++++++++++++++++++++++++++++++++
+ 1 file changed, 100 insertions(+)
+ create mode 100644 mingw-w64-headers/include/tsattrs.h
+
+diff --git a/mingw-w64-headers/include/tsattrs.h b/mingw-w64-headers/include/tsattrs.h
+new file mode 100644
+index 0000000..c119cbd
+--- /dev/null
++++ b/mingw-w64-headers/include/tsattrs.h
+@@ -0,0 +1,100 @@
++/**
++ * This file has no copyright assigned and is placed in the Public Domain.
++ * This file is part of the mingw-w64 runtime package.
++ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
++ */
++
++#ifndef _TSATTRS_H_
++#define _TSATTRS_H_
++
++DEFINE_GUID(TSATTRID_OTHERS, 0xb3c32af9,0x57d0,0x46a9,0xbc,0xa8,0xda,0xc2,0x38,0xa1,0x30,0x57);
++
++DEFINE_GUID(TSATTRID_Font,                           0x573ea825,0x749b,0x4f8a,0x9c,0xfd,0x21,0xc3,0x60,0x5c,0xa8,0x28);
++DEFINE_GUID(TSATTRID_Font_FaceName,                  0xb536aeb6,0x053b,0x4eb8,0xb6,0x5a,0x50,0xda,0x1e,0x81,0xe7,0x2e);
++DEFINE_GUID(TSATTRID_Font_SizePts,                   0xc8493302,0xa5e9,0x456d,0xaf,0x04,0x80,0x05,0xe4,0x13,0x0f,0x03);
++DEFINE_GUID(TSATTRID_Font_Style,                     0x68b2a77f,0x6b0e,0x4f28,0x81,0x77,0x57,0x1c,0x2f,0x3a,0x42,0xb1);
++DEFINE_GUID(TSATTRID_Font_Style_Bold,                0x48813a43,0x8a20,0x4940,0x8e,0x58,0x97,0x82,0x3f,0x7b,0x26,0x8a);
++DEFINE_GUID(TSATTRID_Font_Style_Italic,              0x8740682a,0xa765,0x48e1,0xac,0xfc,0xd2,0x22,0x22,0xb2,0xf8,0x10);
++DEFINE_GUID(TSATTRID_Font_Style_SmallCaps,           0xfacb6bc6,0x9100,0x4cc6,0xb9,0x69,0x11,0xee,0xa4,0x5a,0x86,0xb4);
++DEFINE_GUID(TSATTRID_Font_Style_Capitalize,          0x7d85a3ba,0xb4fd,0x43b3,0xbe,0xfc,0x6b,0x98,0x5c,0x84,0x31,0x41);
++DEFINE_GUID(TSATTRID_Font_Style_Uppercase,           0x33a300e8,0xe340,0x4937,0xb6,0x97,0x8f,0x23,0x40,0x45,0xcd,0x9a);
++DEFINE_GUID(TSATTRID_Font_Style_Lowercase,           0x76d8ccb5,0xca7b,0x4498,0x8e,0xe9,0xd5,0xc4,0xf6,0xf7,0x4c,0x60);
++DEFINE_GUID(TSATTRID_Font_Style_Animation,           0xdcf73d22,0xe029,0x47b7,0xbb,0x36,0xf2,0x63,0xa3,0xd0,0x04,0xcc);
++DEFINE_GUID(TSATTRID_Font_Style_Animation_LasVegasLights,     0xf40423d5,0x0f87,0x4f8f,0xba,0xda,0xe6,0xd6,0x0c,0x25,0xe1,0x52);
++DEFINE_GUID(TSATTRID_Font_Style_Animation_BlinkingBackground, 0x86e5b104,0x0104,0x4b10,0xb5,0x85,0x00,0xf2,0x52,0x75,0x22,0xb5);
++DEFINE_GUID(TSATTRID_Font_Style_Animation_SparkleText,        0x533aad20,0x962c,0x4e9f,0x8c,0x09,0xb4,0x2e,0xa4,0x74,0x97,0x11);
++DEFINE_GUID(TSATTRID_Font_Style_Animation_MarchingBlackAnts,  0x7644e067,0xf186,0x4902,0xbf,0xc6,0xec,0x81,0x5a,0xa2,0x0e,0x9d);
++DEFINE_GUID(TSATTRID_Font_Style_Animation_MarchingRedAnts,    0x78368dad,0x50fb,0x4c6f,0x84,0x0b,0xd4,0x86,0xbb,0x6c,0xf7,0x81);
++DEFINE_GUID(TSATTRID_Font_Style_Animation_Shimmer,    0x2ce31b58,0x5293,0x4c36,0x88,0x09,0xbf,0x8b,0xb5,0x1a,0x27,0xb3);
++DEFINE_GUID(TSATTRID_Font_Style_Animation_WipeDown,   0x5872e874,0x367b,0x4803,0xb1,0x60,0xc9,0x0f,0xf6,0x25,0x69,0xd0);
++DEFINE_GUID(TSATTRID_Font_Style_Animation_WipeRight,  0xb855cbe3,0x3d2c,0x4600,0xb1,0xe9,0xe1,0xc9,0xce,0x02,0xf8,0x42);
++DEFINE_GUID(TSATTRID_Font_Style_Emboss,               0xbd8ed742,0x349e,0x4e37,0x82,0xfb,0x43,0x79,0x79,0xcb,0x53,0xa7);
++DEFINE_GUID(TSATTRID_Font_Style_Engrave,              0x9c3371de,0x8332,0x4897,0xbe,0x5d,0x89,0x23,0x32,0x23,0x17,0x9a);
++DEFINE_GUID(TSATTRID_Font_Style_Hidden,               0xb1e28770,0x881c,0x475f,0x86,0x3f,0x88,0x7a,0x64,0x7b,0x10,0x90);
++DEFINE_GUID(TSATTRID_Font_Style_Kerning,              0xcc26e1b4,0x2f9a,0x47c8,0x8b,0xff,0xbf,0x1e,0xb7,0xcc,0xe0,0xdd);
++DEFINE_GUID(TSATTRID_Font_Style_Outlined,             0x10e6db31,0xdb0d,0x4ac6,0xa7,0xf5,0x9c,0x9c,0xff,0x6f,0x2a,0xb4);
++DEFINE_GUID(TSATTRID_Font_Style_Position,             0x15cd26ab,0xf2fb,0x4062,0xb5,0xa6,0x9a,0x49,0xe1,0xa5,0xcc,0x0b);
++DEFINE_GUID(TSATTRID_Font_Style_Protected,            0x1c557cb2,0x14cf,0x4554,0xa5,0x74,0xec,0xb2,0xf7,0xe7,0xef,0xd4);
++DEFINE_GUID(TSATTRID_Font_Style_Shadow,               0x5f686d2f,0xc6cd,0x4c56,0x8a,0x1a,0x99,0x4a,0x4b,0x97,0x66,0xbe);
++DEFINE_GUID(TSATTRID_Font_Style_Spacing,              0x98c1200d,0x8f06,0x409a,0x8e,0x49,0x6a,0x55,0x4b,0xf7,0xc1,0x53);
++DEFINE_GUID(TSATTRID_Font_Style_Weight,               0x12f3189c,0x8bb0,0x461b,0xb1,0xfa,0xea,0xf9,0x07,0x04,0x7f,0xe0);
++DEFINE_GUID(TSATTRID_Font_Style_Height,               0x7e937477,0x12e6,0x458b,0x92,0x6a,0x1f,0xa4,0x4e,0xe8,0xf3,0x91);
++DEFINE_GUID(TSATTRID_Font_Style_Underline,            0xc3c9c9f3,0x7902,0x444b,0x9a,0x7b,0x48,0xe7,0x0f,0x4b,0x50,0xf7);
++DEFINE_GUID(TSATTRID_Font_Style_Underline_Single,     0x1b6720e5,0x0f73,0x4951,0xa6,0xb3,0x6f,0x19,0xe4,0x3c,0x94,0x61);
++DEFINE_GUID(TSATTRID_Font_Style_Underline_Double,     0x74d24aa6,0x1db3,0x4c69,0xa1,0x76,0x31,0x12,0x0e,0x75,0x86,0xd5);
++DEFINE_GUID(TSATTRID_Font_Style_Strikethrough,        0x0c562193,0x2d08,0x4668,0x96,0x01,0xce,0xd4,0x13,0x09,0xd7,0xaf);
++DEFINE_GUID(TSATTRID_Font_Style_Strikethrough_Single, 0x75d736b6,0x3c8f,0x4b97,0xab,0x78,0x18,0x77,0xcb,0x99,0x0d,0x31);
++DEFINE_GUID(TSATTRID_Font_Style_Strikethrough_Double, 0x62489b31,0xa3e7,0x4f94,0xac,0x43,0xeb,0xaf,0x8f,0xcc,0x7a,0x9f);
++DEFINE_GUID(TSATTRID_Font_Style_Overline,             0xe3989f4a,0x992b,0x4301,0x8c,0xe1,0xa5,0xb7,0xc6,0xd1,0xf3,0xc8);
++DEFINE_GUID(TSATTRID_Font_Style_Overline_Single,      0x8440d94c,0x51ce,0x47b2,0x8d,0x4c,0x15,0x75,0x1e,0x5f,0x72,0x1b);
++DEFINE_GUID(TSATTRID_Font_Style_Overline_Double,      0xdc46063a,0xe115,0x46e3,0xbc,0xd8,0xca,0x67,0x72,0xaa,0x95,0xb4);
++DEFINE_GUID(TSATTRID_Font_Style_Blink,                0xbfb2c036,0x7acf,0x4532,0xb7,0x20,0xb4,0x16,0xdd,0x77,0x65,0xa8);
++DEFINE_GUID(TSATTRID_Font_Style_Subscript,            0x5774fb84,0x389b,0x43bc,0xa7,0x4b,0x15,0x68,0x34,0x7c,0xf0,0xf4);
++DEFINE_GUID(TSATTRID_Font_Style_Superscript,          0x2ea4993c,0x563c,0x49aa,0x93,0x72,0x0b,0xef,0x09,0xa9,0x25,0x5b);
++DEFINE_GUID(TSATTRID_Font_Style_Color,                0x857a7a37,0xb8af,0x4e9a,0x81,0xb4,0xac,0xf7,0x00,0xc8,0x41,0x1b);
++DEFINE_GUID(TSATTRID_Font_Style_BackgroundColor,      0xb50eaa4e,0x3091,0x4468,0x81,0xdb,0xd7,0x9e,0xa1,0x90,0xc7,0xc7);
++
++DEFINE_GUID(TSATTRID_Text,                            0x7edb8e68,0x81f9,0x449d,0xa1,0x5a,0x87,0xa8,0x38,0x8f,0xaa,0xc0);
++DEFINE_GUID(TSATTRID_Text_VerticalWriting,            0x6bba8195,0x046f,0x4ea9,0xb3,0x11,0x97,0xfd,0x66,0xc4,0x27,0x4b);
++DEFINE_GUID(TSATTRID_Text_RightToLeft,                0xca666e71,0x1b08,0x453d,0xbf,0xdd,0x28,0xe0,0x8c,0x8a,0xaf,0x7a);
++DEFINE_GUID(TSATTRID_Text_Orientation,                0x6bab707f,0x8785,0x4c39,0x8b,0x52,0x96,0xf8,0x78,0x30,0x3f,0xfb);
++DEFINE_GUID(TSATTRID_Text_Language,                   0xd8c04ef1,0x5753,0x4c25,0x88,0x87,0x85,0x44,0x3f,0xe5,0xf8,0x19);
++DEFINE_GUID(TSATTRID_Text_ReadOnly,                   0x85836617,0xde32,0x4afd,0xa5,0x0f,0xa2,0xdb,0x11,0x0e,0x6e,0x4d);
++DEFINE_GUID(TSATTRID_Text_EmbeddedObject,             0x7edb8e68,0x81f9,0x449d,0xa1,0x5a,0x87,0xa8,0x38,0x8f,0xaa,0xc0);
++DEFINE_GUID(TSATTRID_Text_Alignment,                  0x139941e6,0x1767,0x456d,0x93,0x8e,0x35,0xba,0x56,0x8b,0x5c,0xd4);
++DEFINE_GUID(TSATTRID_Text_Alignment_Left,             0x16ae95d3,0x6361,0x43a2,0x84,0x95,0xd0,0x0f,0x39,0x7f,0x16,0x93);
++DEFINE_GUID(TSATTRID_Text_Alignment_Right,            0xb36f0f98,0x1b9e,0x4360,0x86,0x16,0x03,0xfb,0x08,0xa7,0x84,0x56);
++DEFINE_GUID(TSATTRID_Text_Alignment_Center,           0xa4a95c16,0x53bf,0x4d55,0x8b,0x87,0x4b,0xdd,0x8d,0x42,0x75,0xfc);
++DEFINE_GUID(TSATTRID_Text_Alignment_Justify,          0xed350740,0xa0f7,0x42d3,0x8e,0xa8,0xf8,0x1b,0x64,0x88,0xfa,0xf0);
++DEFINE_GUID(TSATTRID_Text_Link,                       0x47cd9051,0x3722,0x4cd8,0xb7,0xc8,0x4e,0x17,0xca,0x17,0x59,0xf5);
++DEFINE_GUID(TSATTRID_Text_Hyphenation,                0xdadf4525,0x618e,0x49eb,0xb1,0xa8,0x3b,0x68,0xbd,0x76,0x48,0xe3);
++DEFINE_GUID(TSATTRID_Text_Para,                       0x5edc5822,0x99dc,0x4dd6,0xae,0xc3,0xb6,0x2b,0xaa,0x5b,0x2e,0x7c);
++DEFINE_GUID(TSATTRID_Text_Para_FirstLineIndent,       0x07c97a13,0x7472,0x4dd8,0x90,0xa9,0x91,0xe3,0xd7,0xe4,0xf2,0x9c);
++DEFINE_GUID(TSATTRID_Text_Para_LeftIndent,            0xfb2848e9,0x7471,0x41c9,0xb6,0xb3,0x8a,0x14,0x50,0xe0,0x18,0x97);
++DEFINE_GUID(TSATTRID_Text_Para_RightIndent,           0x2c7f26f9,0xa5e2,0x48da,0xb9,0x8a,0x52,0x0c,0xb1,0x65,0x13,0xbf);
++DEFINE_GUID(TSATTRID_Text_Para_SpaceAfter,            0x7b0a3f55,0x22dc,0x425f,0xa4,0x11,0x93,0xda,0x1d,0x8f,0x9b,0xaa);
++DEFINE_GUID(TSATTRID_Text_Para_SpaceBefore,           0x8df98589,0x194a,0x4601,0xb2,0x51,0x98,0x65,0xa3,0xe9,0x06,0xdd);
++DEFINE_GUID(TSATTRID_Text_Para_LineSpacing,           0x699b380d,0x7f8c,0x46d6,0xa7,0x3b,0xdf,0xe3,0xd1,0x53,0x8d,0xf3);
++DEFINE_GUID(TSATTRID_Text_Para_LineSpacing_Single,    0xed350740,0xa0f7,0x42d3,0x8e,0xa8,0xf8,0x1b,0x64,0x88,0xfa,0xf0);
++DEFINE_GUID(TSATTRID_Text_Para_LineSpacing_OnePtFive, 0x0428a021,0x0397,0x4b57,0x9a,0x17,0x07,0x95,0x99,0x4c,0xd3,0xc5);
++DEFINE_GUID(TSATTRID_Text_Para_LineSpacing_Double,    0x82fb1805,0xa6c4,0x4231,0xac,0x12,0x62,0x60,0xaf,0x2a,0xba,0x28);
++DEFINE_GUID(TSATTRID_Text_Para_LineSpacing_AtLeast,   0xadfedf31,0x2d44,0x4434,0xa5,0xff,0x7f,0x4c,0x49,0x90,0xa9,0x05);
++DEFINE_GUID(TSATTRID_Text_Para_LineSpacing_Exactly,   0x3d45ad40,0x23de,0x48d7,0xa6,0xb3,0x76,0x54,0x20,0xc6,0x20,0xcc);
++DEFINE_GUID(TSATTRID_Text_Para_LineSpacing_Multiple,  0x910f1e3c,0xd6d0,0x4f65,0x8a,0x3c,0x42,0xb4,0xb3,0x18,0x68,0xc5);
++
++DEFINE_GUID(TSATTRID_List,                  0x436d673b,0x26f1,0x4aee,0x9e,0x65,0x8f,0x83,0xa4,0xed,0x48,0x84);
++DEFINE_GUID(TSATTRID_List_LevelIndel,       0x7f7cc899,0x311f,0x487b,0xad,0x5d,0xe2,0xa4,0x59,0xe1,0x2d,0x42);
++DEFINE_GUID(TSATTRID_List_Type,             0xae3e665e,0x4bce,0x49e3,0xa0,0xfe,0x2d,0xb4,0x7d,0x3a,0x17,0xae);
++DEFINE_GUID(TSATTRID_List_Type_Bullet,      0xbccd77c5,0x4c4d,0x4ce2,0xb1,0x02,0x55,0x9f,0x3b,0x2b,0xfc,0xea);
++DEFINE_GUID(TSATTRID_List_Type_Arabic,      0x1338c5d6,0x98a3,0x4fa3,0x9b,0xd1,0x7a,0x60,0xee,0xf8,0xe9,0xe0);
++DEFINE_GUID(TSATTRID_List_Type_LowerLetter, 0x96372285,0xf3cf,0x491e,0xa9,0x25,0x38,0x32,0x34,0x7f,0xd2,0x37);
++DEFINE_GUID(TSATTRID_List_Type_UpperLetter, 0x7987b7cd,0xce52,0x428b,0x9b,0x95,0xa3,0x57,0xf6,0xf1,0x0c,0x45);
++DEFINE_GUID(TSATTRID_List_Type_LowerRoman,  0x90466262,0x3980,0x4b8e,0x93,0x68,0x91,0x8b,0xd1,0x21,0x8a,0x41);
++DEFINE_GUID(TSATTRID_List_Type_UpperRoman,  0x0f6ab552,0x4a80,0x467f,0xb2,0xf1,0x12,0x7e,0x2a,0xa3,0xba,0x9e);
++
++DEFINE_GUID(TSATTRID_App,                   0xa80f77df,0x4237,0x40e5,0x84,0x9c,0xb5,0xfa,0x51,0xc1,0x3a,0xc7);
++DEFINE_GUID(TSATTRID_App_IncorrectSpelling, 0xf42de43c,0xef12,0x430d,0x94,0x4c,0x9a,0x08,0x97,0x0a,0x25,0xd2);
++DEFINE_GUID(TSATTRID_App_IncorrectGrammar,  0xbd54e398,0xad03,0x4b74,0xb6,0xb3,0x5e,0xdb,0x19,0x99,0x63,0x88);
++
++#endif
++
+-- 
+2.1.0
+
diff --git a/0015-Add-winapifamily-check-correct-enumerator-values-add.patch b/0015-Add-winapifamily-check-correct-enumerator-values-add.patch
new file mode 100644
index 0000000..c9556ea
--- /dev/null
+++ b/0015-Add-winapifamily-check-correct-enumerator-values-add.patch
@@ -0,0 +1,294 @@
+From dda200d7e9392fe3d1fbb338742c4f680eaa0682 Mon Sep 17 00:00:00 2001
+From: Kai Tietz <ktietz70 at googlemail.com>
+Date: Mon, 25 Aug 2014 14:57:52 +0200
+Subject: [PATCH 15/25] Add winapifamily-check,  correct enumerator values, add
+ missing types and API.
+
+---
+ mingw-w64-headers/include/restartmanager.h | 260 ++++++++++++-----------------
+ 1 file changed, 103 insertions(+), 157 deletions(-)
+
+diff --git a/mingw-w64-headers/include/restartmanager.h b/mingw-w64-headers/include/restartmanager.h
+index 23f400b..092a991 100644
+--- a/mingw-w64-headers/include/restartmanager.h
++++ b/mingw-w64-headers/include/restartmanager.h
+@@ -1,173 +1,119 @@
+ /**
+- * This file has no copyright assigned and is placed in the Public Domain.
+  * This file is part of the mingw-w64 runtime package.
+- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
++ * No warranty is given; refer to the file DISCLAIMER within this package.
+  */
++
+ #ifndef _INC_RESTARTMANAGER
+ #define _INC_RESTARTMANAGER
+ 
+-#if (_WIN32_WINNT >= 0x0600)
++#include <winapifamily.h>
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ 
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+ 
+-typedef enum _RM_APP_STATUS {
+-  RmStatusUnknown          = 0x0,
+-  RmStatusRunning          = 0x1,
+-  RmStatusStopped          = 0x2,
+-  RmStatusStoppedOther     = 0x4,
+-  RmStatusRestarted        = 0x8,
+-  RmStatusErrorOnStop      = 0x10,
+-  RmStatusErrorOnRestart   = 0x20,
+-  RmStatusShutdownMasked   = 0x40,
+-  RmStatusRestartMasked    = 0x80
+-} RM_APP_STATUS;
+-
+-typedef enum _RM_APP_TYPE {
+-  RmUnknownApp    = 0,
+-  RmMainWindow    = 1,
+-  RmOtherWindow   = 2,
+-  RmService       = 3,
+-  RmExplorer      = 4,
+-  RmConsole       = 5,
+-  RmCritical      = 1000
+-} RM_APP_TYPE;
+-
+-typedef enum _RM_FILTER_ACTION {
+-  RmInvalidFilterAction   = 0,
+-  RmNoRestart             = 1,
+-  RmNoShutdown            = 2
+-} RM_FILTER_ACTION;
+-
+-typedef enum _RM_FILTER_TRIGGER {
+-  RmFilterTriggerInvalid   = 0,
+-  RmFilterTriggerFile      = 1,
+-  RmFilterTriggerProcess   = 2,
+-  RmFilterTriggerService   = 3
+-} RM_FILTER_TRIGGER;
+-
+-typedef enum _RM_REBOOT_REASON {
+-  RmRebootReasonNone               = 0x0,
+-  RmRebootReasonPermissionDenied   = 0x1,
+-  RmRebootReasonSessionMismatch    = 0x2,
+-  RmRebootReasonCriticalProcess    = 0x4,
+-  RmRebootReasonCriticalService    = 0x8,
+-  RmRebootReasonDetectedSelf       = 0x10
+-} RM_REBOOT_REASON;
+-
+-typedef enum _RM_SHUTDOWN_TYPE {
+-  RmForceShutdown            = 0x1,
+-  RmShutdownOnlyRegistered   = 0x10
+-} RM_SHUTDOWN_TYPE;
+-
+-typedef struct _RM_UNIQUE_PROCESS {
+-  DWORD    dwProcessId;
+-  FILETIME ProcessStartTime;
+-} RM_UNIQUE_PROCESS, *PRM_UNIQUE_PROCESS;
+-
+-typedef struct _RM_FILTER_INFO {
+-  RM_FILTER_ACTION  FilterAction;
+-  RM_FILTER_TRIGGER FilterTrigger;
+-  DWORD             cbNextOffset;
+-  LPWSTR            strFilename;
+-  RM_UNIQUE_PROCESS Process;
+-  LPWSTR            strServiceShortName;
+-} RM_FILTER_INFO, *PRM_FILTER_INFO;
+-
+-typedef struct _RM_PROCESS_INFO {
+-  RM_UNIQUE_PROCESS Process;
+-  WCHAR             strAppName[CCH_RM_MAX_APP_NAME+1];
+-  WCHAR             strServiceShortName[CCH_RM_MAX_SVC_NAME+1];
+-  RM_APP_TYPE       ApplicationType;
+-  ULONG             AppStatus;
+-  DWORD             TSSessionId;
+-  WINBOOL           bRestartable;
+-} RM_PROCESS_INFO;
+-
+-typedef void ( *RM_WRITE_STATUS_CALLBACK )(
+-  UINT nPercentComplete
+-);
+-
+-DWORD WINAPI RmAddFilter(
+-  DWORD dwSessionHandle,
+-  LPCWSTR strFilename,
+-  RM_UNIQUE_PROCESS *Application,
+-  LPCWSTR strShortServiceName,
+-  RM_FILTER_ACTION ActionType
+-);
+-
+-DWORD WINAPI RmCancelCurrentTask(
+-  DWORD dwSessionHandle
+-);
+-
+-DWORD WINAPI RmEndSession(
+-  DWORD dwSessionHandle
+-);
+-
+-DWORD WINAPI RmGetFilterList(
+-  DWORD dwSessionHandle,
+-  PBYTE pbFilterBuf,
+-  DWORD cbFilterBuf,
+-  LPDWORD cbFilterBufNeeded
+-);
+-
+-DWORD WINAPI RmGetList(
+-  DWORD dwSessionHandle,
+-  UINT *pnProcInfoNeeded,
+-  UINT *pnProcInfo,
+-  RM_PROCESS_INFO rgAffectedApps[ ],
+-  LPDWORD lpdwRebootReasons
+-);
+-
+-DWORD WINAPI RmJoinSession(
+-  DWORD *pSessionHandle,
+-  const WCHAR strSessionKey[ ]
+-);
+-
+-DWORD WINAPI RmRegisterResources(
+-  DWORD dwSessionHandle,
+-  UINT nFiles,
+-  LPCWSTR rgsFilenames[ ],
+-  UINT nApplications,
+-  RM_UNIQUE_PROCESS rgApplications[ ],
+-  UINT nServices,
+-  LPCWSTR rgsServiceNames[ ]
+-);
+-
+-DWORD WINAPI RmRemoveFilter(
+-  DWORD dwSessionHandle,
+-  LPCWSTR strFilename,
+-  RM_UNIQUE_PROCESS *Application,
+-  LPCWSTR strShortServiceName
+-);
+-
+-DWORD WINAPI RmRestart(
+-  DWORD dwSessionHandle,
+-  DWORD dwRestartFlags,
+-  RM_WRITE_STATUS_CALLBACK fnStatus
+-);
+-
+-#define RmForceShutdown 0x1
+-#define RmShutdownOnlyRegistered 0x10
+-
+-DWORD WINAPI RmShutdown(
+-  DWORD dwSessionHandle,
+-  ULONG lActionFlags,
+-  RM_WRITE_STATUS_CALLBACK fnStatus
+-);
+-
+-DWORD WINAPI RmStartSession(
+-  DWORD *pSessionHandle,
+-  DWORD dwSessionFlags,
+-  WCHAR strSessionKey[]
+-);
++#define RM_SESSION_KEY_LEN  sizeof (GUID)
++#define CCH_RM_SESSION_KEY  RM_SESSION_KEY_LEN * 2
++#define CCH_RM_MAX_APP_NAME 255
++#define CCH_RM_MAX_SVC_NAME 63
++#define RM_INVALID_TS_SESSION -1
++#define RM_INVALID_PROCESS -1
++
++  typedef enum _RM_APP_STATUS {
++    RmStatusUnknown = 0x0,
++    RmStatusRunning = 0x1,
++    RmStatusStopped = 0x2,
++    RmStatusStoppedOther = 0x4,
++    RmStatusRestarted = 0x8,
++    RmStatusErrorOnStop = 0x10,
++    RmStatusErrorOnRestart = 0x20,
++    RmStatusShutdownMasked = 0x40,
++    RmStatusRestartMasked = 0x80
++  } RM_APP_STATUS;
++
++  typedef enum _RM_SHUTDOWN_TYPE {
++    RmForceShutdown = 0x1,
++    RmShutdownOnlyRegistered = 0x10
++  } RM_SHUTDOWN_TYPE;
++
++  typedef enum _RM_APP_TYPE {
++    RmUnknownApp = 0,
++    RmMainWindow,
++    RmOtherWindow,
++    RmService,
++    RmExplorer,
++    RmConsole,
++    RmCritical = 1000
++  } RM_APP_TYPE;
++
++  typedef enum _RM_REBOOT_REASON {
++    RmRebootReasonNone = 0x0,
++    RmRebootReasonPermissionDenied = 0x1,
++    RmRebootReasonSessionMismatch = 0x2,
++    RmRebootReasonCriticalProcess = 0x4,
++    RmRebootReasonCriticalService = 0x8,
++    RmRebootReasonDetectedSelf = 0x10
++  } RM_REBOOT_REASON;
++
++  typedef enum _RM_FILTER_TRIGGER {
++    RmFilterTriggerInvalid = 0,
++    RmFilterTriggerFile,
++    RmFilterTriggerProcess,
++    RmFilterTriggerService 
++  } RM_FILTER_TRIGGER;
++
++  typedef enum _RM_FILTER_ACTION {
++    RmInvalidFilterAction = 0,
++    RmNoRestart,
++    RmNoShutdown
++  } RM_FILTER_ACTION;
++
++  typedef struct _RM_UNIQUE_PROCESS {
++    DWORD dwProcessId;
++    FILETIME ProcessStartTime;
++  } RM_UNIQUE_PROCESS, *PRM_UNIQUE_PROCESS;
++
++  typedef struct _RM_PROCESS_INFO {
++    RM_UNIQUE_PROCESS Process;
++    WCHAR strAppName[CCH_RM_MAX_APP_NAME + 1];
++    WCHAR strServiceShortName[CCH_RM_MAX_SVC_NAME + 1];
++    RM_APP_TYPE ApplicationType;
++    ULONG AppStatus;
++    DWORD TSSessionId;
++    BOOL bRestartable;
++  } RM_PROCESS_INFO, *PRM_PROCESS_INFO;
++
++  typedef struct _RM_FILTER_INFO {
++    RM_FILTER_ACTION FilterAction;
++    RM_FILTER_TRIGGER FilterTrigger;
++    DWORD cbNextOffset;
++    __C89_NAMELESS union {
++      LPWSTR strFilename;
++      RM_UNIQUE_PROCESS Process;
++      LPWSTR strServiceShortName;
++    };
++  } RM_FILTER_INFO, *PRM_FILTER_INFO;
++
++  typedef void (*RM_WRITE_STATUS_CALLBACK)(UINT nPercentComplete);
++
++  DWORD WINAPI RmStartSession(DWORD *pSessionHandle, DWORD dwSessionFlags, WCHAR strSessionKey[]);
++  DWORD WINAPI RmJoinSession(DWORD *pSessionHandle, const WCHAR strSessionKey[]);
++  DWORD WINAPI RmEndSession(DWORD dwSessionHandle);
++  DWORD WINAPI RmRegisterResources(DWORD dwSessionHandle, UINT nFiles, LPCWSTR rgsFileNames[], UINT nApplications, RM_UNIQUE_PROCESS rgApplications[], UINT nServices, LPCWSTR rgsServiceNames[]);
++  DWORD WINAPI RmGetList(DWORD dwSessionHandle, UINT *pnProcInfoNeeded, UINT *pnProcInfo, RM_PROCESS_INFO rgAffectedApps[], LPDWORD lpdwRebootReasons);
++  DWORD WINAPI RmShutdown(DWORD dwSessionHandle, ULONG lActionFlags, RM_WRITE_STATUS_CALLBACK fnStatus);
++  DWORD WINAPI RmRestart(DWORD dwSessionHandle, DWORD dwRestartFlags, RM_WRITE_STATUS_CALLBACK fnStatus);
++  DWORD WINAPI RmCancelCurrentTask(DWORD dwSessionHandle);
++  DWORD WINAPI RmAddFilter(DWORD dwSessionHandle, LPCWSTR strModuleName, RM_UNIQUE_PROCESS *pProcess, LPCWSTR strServiceShortName, RM_FILTER_ACTION FilterAction);
++  DWORD WINAPI RmRemoveFilter(DWORD dwSessionHandle, LPCWSTR strModuleName, RM_UNIQUE_PROCESS *pProcess, LPCWSTR strServiceShortName);
++  DWORD WINAPI RmGetFilterList(DWORD dwSessionHandle, PBYTE pbFilterBuf, DWORD cbFilterBuf, LPDWORD cbFilterBufNeeded);
+ 
+ #ifdef __cplusplus
+ }
+-#endif
++#endif // __cplusplus
+ 
+-#endif /* (_WIN32_WINNT >= 0x0600) */
+-
+-#endif /*_INC_RESTARTMANAGER*/
++#endif
+ 
++#endif
+-- 
+2.1.0
+
diff --git a/0016-Add-comadmin.idl-to-Makefile.am-and-regenerate-files.patch b/0016-Add-comadmin.idl-to-Makefile.am-and-regenerate-files.patch
new file mode 100644
index 0000000..9b1a3c0
--- /dev/null
+++ b/0016-Add-comadmin.idl-to-Makefile.am-and-regenerate-files.patch
@@ -0,0 +1,3474 @@
+From eedf07ac7d97f757f3d757ac96fbf49c73ff5439 Mon Sep 17 00:00:00 2001
+From: Kai Tietz <ktietz70 at googlemail.com>
+Date: Tue, 2 Sep 2014 17:56:58 +0200
+Subject: [PATCH 16/25] Add comadmin.idl to Makefile.am and regenerate files.
+
+---
+ mingw-w64-headers/Makefile.am        |    1 +
+ mingw-w64-headers/Makefile.in        |    1 +
+ mingw-w64-headers/include/comadmin.h | 3235 +++++++++++++++++++++++++++-------
+ 3 files changed, 2629 insertions(+), 608 deletions(-)
+
+diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
+index 50e3dcc..dbac5e9 100644
+--- a/mingw-w64-headers/Makefile.am
++++ b/mingw-w64-headers/Makefile.am
+@@ -65,6 +65,7 @@ IDL_SRCS = \
+   include/audioclient.idl \
+   include/audioendpoints.idl \
+   include/audiopolicy.idl \
++  include/comadmin.idl \
+   include/control.idl \
+   include/ctfutb.idl \
+   include/dbgprop.idl \
+diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
+index 4425c64..663989d 100644
+--- a/mingw-w64-headers/Makefile.in
++++ b/mingw-w64-headers/Makefile.in
+@@ -289,6 +289,7 @@ EXTRA_HEADERS = \
+ @HAVE_WIDL_TRUE@  include/audioclient.idl \
+ @HAVE_WIDL_TRUE@  include/audioendpoints.idl \
+ @HAVE_WIDL_TRUE@  include/audiopolicy.idl \
++ at HAVE_WIDL_TRUE@  include/comadmin.idl \
+ @HAVE_WIDL_TRUE@  include/control.idl \
+ @HAVE_WIDL_TRUE@  include/ctfutb.idl \
+ @HAVE_WIDL_TRUE@  include/dbgprop.idl \
+diff --git a/mingw-w64-headers/include/comadmin.h b/mingw-w64-headers/include/comadmin.h
+index d0a7faf..54b5a4f 100644
+--- a/mingw-w64-headers/include/comadmin.h
++++ b/mingw-w64-headers/include/comadmin.h
+@@ -1,45 +1,40 @@
+-/**
+- * This file has no copyright assigned and is placed in the Public Domain.
+- * This file is part of the mingw-w64 runtime package.
+- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+- */
++/*** Autogenerated by WIDL 1.6 from comadmin.idl - Do not edit ***/
++
+ #ifndef __REQUIRED_RPCNDR_H_VERSION__
+ #define __REQUIRED_RPCNDR_H_VERSION__ 475
+ #endif
+ 
+-#include "rpc.h"
+-#include "rpcndr.h"
+-
+-#ifndef __RPCNDR_H_VERSION__
+-#error This stub requires an updated version of <rpcndr.h>
+-#endif
++#include <rpc.h>
++#include <rpcndr.h>
+ 
+ #ifndef COM_NO_WINDOWS_H
+-#include "windows.h"
+-#include "ole2.h"
++#include <windows.h>
++#include <ole2.h>
+ #endif
+ 
+ #ifndef __comadmin_h__
+ #define __comadmin_h__
+ 
++/* Forward declarations */
++
+ #ifndef __ICOMAdminCatalog_FWD_DEFINED__
+ #define __ICOMAdminCatalog_FWD_DEFINED__
+-typedef struct ICOMAdminCatalog ICOMAdminCatalog;
++typedef interface ICOMAdminCatalog ICOMAdminCatalog;
+ #endif
+ 
+ #ifndef __ICOMAdminCatalog2_FWD_DEFINED__
+ #define __ICOMAdminCatalog2_FWD_DEFINED__
+-typedef struct ICOMAdminCatalog2 ICOMAdminCatalog2;
++typedef interface ICOMAdminCatalog2 ICOMAdminCatalog2;
+ #endif
+ 
+ #ifndef __ICatalogObject_FWD_DEFINED__
+ #define __ICatalogObject_FWD_DEFINED__
+-typedef struct ICatalogObject ICatalogObject;
++typedef interface ICatalogObject ICatalogObject;
+ #endif
+ 
+ #ifndef __ICatalogCollection_FWD_DEFINED__
+ #define __ICatalogCollection_FWD_DEFINED__
+-typedef struct ICatalogCollection ICatalogCollection;
++typedef interface ICatalogCollection ICatalogCollection;
+ #endif
+ 
+ #ifndef __COMAdminCatalog_FWD_DEFINED__
+@@ -48,8 +43,8 @@ typedef struct ICatalogCollection ICatalogCollection;
+ typedef class COMAdminCatalog COMAdminCatalog;
+ #else
+ typedef struct COMAdminCatalog COMAdminCatalog;
+-#endif
+-#endif
++#endif /* defined __cplusplus */
++#endif /* defined __COMAdminCatalog_FWD_DEFINED__ */
+ 
+ #ifndef __COMAdminCatalogObject_FWD_DEFINED__
+ #define __COMAdminCatalogObject_FWD_DEFINED__
+@@ -57,8 +52,8 @@ typedef struct COMAdminCatalog COMAdminCatalog;
+ typedef class COMAdminCatalogObject COMAdminCatalogObject;
+ #else
+ typedef struct COMAdminCatalogObject COMAdminCatalogObject;
+-#endif
+-#endif
++#endif /* defined __cplusplus */
++#endif /* defined __COMAdminCatalogObject_FWD_DEFINED__ */
+ 
+ #ifndef __COMAdminCatalogCollection_FWD_DEFINED__
+ #define __COMAdminCatalogCollection_FWD_DEFINED__
+@@ -66,109 +61,609 @@ typedef struct COMAdminCatalogObject COMAdminCatalogObject;
+ typedef class COMAdminCatalogCollection COMAdminCatalogCollection;
+ #else
+ typedef struct COMAdminCatalogCollection COMAdminCatalogCollection;
+-#endif
+-#endif
++#endif /* defined __cplusplus */
++#endif /* defined __COMAdminCatalogCollection_FWD_DEFINED__ */
++
++/* Headers for imported files */
+ 
+-#include "unknwn.h"
+-#include "oaidl.h"
++#include <unknwn.h>
++#include <oaidl.h>
+ 
+ #ifdef __cplusplus
+-extern "C"{
++extern "C" {
+ #endif
+ 
+-#ifndef __MIDL_user_allocate_free_DEFINED__
+-#define __MIDL_user_allocate_free_DEFINED__
+-  void *__RPC_API MIDL_user_allocate(size_t);
+-  void __RPC_API MIDL_user_free(void *);
+-#endif
++/**
++ * This file is part of the mingw-w64 runtime package.
++ * No warranty is given; refer to the file DISCLAIMER within this package.
++ */
+ 
+-#include <objbase.h>
++#include <winapifamily.h>
+ 
+-  extern RPC_IF_HANDLE __MIDL_itf_comadmin_0000_v0_0_c_ifspec;
+-  extern RPC_IF_HANDLE __MIDL_itf_comadmin_0000_v0_0_s_ifspec;
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+ 
++#include <objbase.h>
++
++typedef enum COMAdminInUse {
++    COMAdminNotInUse = 0,
++    COMAdminInUseByCatalog = 1,
++    COMAdminInUseByRegistryUnknown = 2,
++    COMAdminInUseByRegistryProxyStub = 3,
++    COMAdminInUseByRegistryTypeLib = 4,
++    COMAdminInUseByRegistryClsid = 5
++} COMAdminInUse;
++typedef enum COMAdminErrorCodes {
++    COMAdminErrObjectErrors = 0x80110401,
++    COMAdminErrObjectInvalid = 0x80110402,
++    COMAdminErrKeyMissing = 0x80110403,
++    COMAdminErrAlreadyInstalled = 0x80110404,
++    COMAdminErrAppFileWriteFail = 0x80110407,
++    COMAdminErrAppFileReadFail = 0x80110408,
++    COMAdminErrAppFileVersion = 0x80110409,
++    COMAdminErrBadPath = 0x8011040a,
++    COMAdminErrApplicationExists = 0x8011040b,
++    COMAdminErrRoleExists = 0x8011040c,
++    COMAdminErrCantCopyFile = 0x8011040d,
++    COMAdminErrNoUser = 0x8011040f,
++    COMAdminErrInvalidUserids = 0x80110410,
++    COMAdminErrNoRegistryCLSID = 0x80110411,
++    COMAdminErrBadRegistryProgID = 0x80110412,
++    COMAdminErrAuthenticationLevel = 0x80110413,
++    COMAdminErrUserPasswdNotValid = 0x80110414,
++    COMAdminErrCLSIDOrIIDMismatch = 0x80110418,
++    COMAdminErrRemoteInterface = 0x80110419,
++    COMAdminErrDllRegisterServer = 0x8011041a,
++    COMAdminErrNoServerShare = 0x8011041b,
++    COMAdminErrDllLoadFailed = 0x8011041d,
++    COMAdminErrBadRegistryLibID = 0x8011041e,
++    COMAdminErrAppDirNotFound = 0x8011041f,
++    COMAdminErrRegistrarFailed = 0x80110423,
++    COMAdminErrCompFileDoesNotExist = 0x80110424,
++    COMAdminErrCompFileLoadDLLFail = 0x80110425,
++    COMAdminErrCompFileGetClassObj = 0x80110426,
++    COMAdminErrCompFileClassNotAvail = 0x80110427,
++    COMAdminErrCompFileBadTLB = 0x80110428,
++    COMAdminErrCompFileNotInstallable = 0x80110429,
++    COMAdminErrNotChangeable = 0x8011042a,
++    COMAdminErrNotDeletable = 0x8011042b,
++    COMAdminErrSession = 0x8011042c,
++    COMAdminErrCompMoveLocked = 0x8011042d,
++    COMAdminErrCompMoveBadDest = 0x8011042e,
++    COMAdminErrRegisterTLB = 0x80110430,
++    COMAdminErrSystemApp = 0x80110433,
++    COMAdminErrCompFileNoRegistrar = 0x80110434,
++    COMAdminErrCoReqCompInstalled = 0x80110435,
++    COMAdminErrServiceNotInstalled = 0x80110436,
++    COMAdminErrPropertySaveFailed = 0x80110437,
++    COMAdminErrObjectExists = 0x80110438,
++    COMAdminErrComponentExists = 0x80110439,
++    COMAdminErrRegFileCorrupt = 0x8011043b,
++    COMAdminErrPropertyOverflow = 0x8011043c,
++    COMAdminErrNotInRegistry = 0x8011043e,
++    COMAdminErrObjectNotPoolable = 0x8011043f,
++    COMAdminErrApplidMatchesClsid = 0x80110446,
++    COMAdminErrRoleDoesNotExist = 0x80110447,
++    COMAdminErrStartAppNeedsComponents = 0x80110448,
++    COMAdminErrRequiresDifferentPlatform = 0x80110449,
++    COMAdminErrQueuingServiceNotAvailable = 0x80110602,
++    COMAdminErrObjectParentMissing = 0x80110808,
++    COMAdminErrObjectDoesNotExist = 0x80110809,
++    COMAdminErrCanNotExportAppProxy = 0x8011044a,
++    COMAdminErrCanNotStartApp = 0x8011044b,
++    COMAdminErrCanNotExportSystemApp = 0x8011044c,
++    COMAdminErrCanNotSubscribeToComponent = 0x8011044d,
++    COMAdminErrAppNotRunning = 0x8011080a,
++    COMAdminErrEventClassCannotBeSubscriber = 0x8011044e,
++    COMAdminErrLibAppProxyIncompatible = 0x8011044f,
++    COMAdminErrBasePartitionOnly = 0x80110450,
++    COMAdminErrDuplicatePartitionName = 0x80110457,
++    COMAdminErrPartitionInUse = 0x80110459,
++    COMAdminErrImportedComponentsNotAllowed = 0x8011045b,
++    COMAdminErrRegdbNotInitialized = 0x80110472,
++    COMAdminErrRegdbNotOpen = 0x80110473,
++    COMAdminErrRegdbSystemErr = 0x80110474,
++    COMAdminErrRegdbAlreadyRunning = 0x80110475,
++    COMAdminErrMigVersionNotSupported = 0x80110480,
++    COMAdminErrMigSchemaNotFound = 0x80110481,
++    COMAdminErrCatBitnessMismatch = 0x80110482,
++    COMAdminErrCatUnacceptableBitness = 0x80110483,
++    COMAdminErrCatWrongAppBitnessBitness = 0x80110484,
++    COMAdminErrCatPauseResumeNotSupported = 0x80110485,
++    COMAdminErrCatServerFault = 0x80110486,
++    COMAdminErrCantRecycleLibraryApps = 0x8011080f,
++    COMAdminErrCantRecycleServiceApps = 0x80110811,
++    COMAdminErrProcessAlreadyRecycled = 0x80110812,
++    COMAdminErrPausedProcessMayNotBeRecycled = 0x80110813,
++    COMAdminErrInvalidPartition = 0x8011080b,
++    COMAdminErrPartitionMsiOnly = 0x80110819,
++    COMAdminErrStartAppDisabled = 0x80110451,
++    COMAdminErrCompMoveSource = 0x8011081c,
++    COMAdminErrCompMoveDest = 0x8011081d,
++    COMAdminErrCompMovePrivate = 0x8011081e,
++    COMAdminErrCannotCopyEventClass = 0x80110820
++} COMAdminErrorCodes;
++typedef enum COMAdminComponentType {
++    COMAdmin32BitComponent = 0x1,
++    COMAdmin64BitComponent = 0x2
++} COMAdminComponentType;
++typedef enum COMAdminApplicationInstallOptions {
++    COMAdminInstallNoUsers = 0,
++    COMAdminInstallUsers = 1,
++    COMAdminInstallForceOverwriteOfFiles = 2
++} COMAdminApplicationInstallOptions;
++typedef enum COMAdminApplicationExportOptions {
++    COMAdminExportNoUsers = 0x0,
++    COMAdminExportUsers = 0x1,
++    COMAdminExportApplicationProxy = 0x2,
++    COMAdminExportForceOverwriteOfFiles = 0x4,
++    COMAdminExportIn10Format = 0x10
++} COMAdminApplicationExportOptions;
++typedef enum COMAdminThreadingModels {
++    COMAdminThreadingModelApartment = 0,
++    COMAdminThreadingModelFree = 1,
++    COMAdminThreadingModelMain = 2,
++    COMAdminThreadingModelBoth = 3,
++    COMAdminThreadingModelNeutral = 4,
++    COMAdminThreadingModelNotSpecified = 5
++} COMAdminThreadingModels;
++typedef enum COMAdminTransactionOptions {
++    COMAdminTransactionIgnored = 0,
++    COMAdminTransactionNone = 1,
++    COMAdminTransactionSupported = 2,
++    COMAdminTransactionRequired = 3,
++    COMAdminTransactionRequiresNew = 4
++} COMAdminTransactionOptions;
++typedef enum COMAdminTxIsolationLevelOptions {
++    COMAdminTxIsolationLevelAny = 0,
++    COMAdminTxIsolationLevelReadUnCommitted = 1,
++    COMAdminTxIsolationLevelReadCommitted = 2,
++    COMAdminTxIsolationLevelRepeatableRead = 3,
++    COMAdminTxIsolationLevelSerializable = 4
++} COMAdminTxIsolationLevelOptions;
++typedef enum COMAdminSynchronizationOptions {
++    COMAdminSynchronizationIgnored = 0,
++    COMAdminSynchronizationNone = 1,
++    COMAdminSynchronizationSupported = 2,
++    COMAdminSynchronizationRequired = 3,
++    COMAdminSynchronizationRequiresNew = 4
++} COMAdminSynchronizationOptions;
++typedef enum COMAdminActivationOptions {
++    COMAdminActivationInproc = 0,
++    COMAdminActivationLocal = 1
++} COMAdminActivationOptions;
++typedef enum COMAdminAccessChecksLevelOptions {
++    COMAdminAccessChecksApplicationLevel = 0,
++    COMAdminAccessChecksApplicationComponentLevel = 1
++} COMAdminAccessChecksLevelOptions;
++typedef enum COMAdminAuthenticationLevelOptions {
++    COMAdminAuthenticationDefault = 0,
++    COMAdminAuthenticationNone = 1,
++    COMAdminAuthenticationConnect = 2,
++    COMAdminAuthenticationCall = 3,
++    COMAdminAuthenticationPacket = 4,
++    COMAdminAuthenticationIntegrity = 5,
++    COMAdminAuthenticationPrivacy = 6
++} COMAdminAuthenticationLevelOptions;
++typedef enum COMAdminImpersonationLevelOptions {
++    COMAdminImpersonationAnonymous = 1,
++    COMAdminImpersonationIdentify = 2,
++    COMAdminImpersonationImpersonate = 3,
++    COMAdminImpersonationDelegate = 4
++} COMAdminImpersonationLevelOptions;
++typedef enum COMAdminAuthenticationCapabilitiesOptions {
++    COMAdminAuthenticationCapabilitiesNone = 0x0,
++    COMAdminAuthenticationCapabilitiesSecureReference = 0x2,
++    COMAdminAuthenticationCapabilitiesStaticCloaking = 0x20,
++    COMAdminAuthenticationCapabilitiesDynamicCloaking = 0x40
++} COMAdminAuthenticationCapabilitiesOptions;
++typedef enum COMAdminOS {
++    COMAdminOSNotInitialized = 0,
++    COMAdminOSWindows3_1 = 1,
++    COMAdminOSWindows9x = 2,
++    COMAdminOSWindows2000 = 3,
++    COMAdminOSWindows2000AdvancedServer = 4,
++    COMAdminOSWindows2000Unknown = 5,
++    COMAdminOSUnknown = 6,
++    COMAdminOSWindowsXPPersonal = 11,
++    COMAdminOSWindowsXPProfessional = 12,
++    COMAdminOSWindowsNETStandardServer = 13,
++    COMAdminOSWindowsNETEnterpriseServer = 14,
++    COMAdminOSWindowsNETDatacenterServer = 15,
++    COMAdminOSWindowsNETWebServer = 16,
++    COMAdminOSWindowsLonghornPersonal = 17,
++    COMAdminOSWindowsLonghornProfessional = 18,
++    COMAdminOSWindowsLonghornStandardServer = 19,
++    COMAdminOSWindowsLonghornEnterpriseServer = 20,
++    COMAdminOSWindowsLonghornDatacenterServer = 21,
++    COMAdminOSWindowsLonghornWebServer = 22,
++    COMAdminOSWindows7Personal = 23,
++    COMAdminOSWindows7Professional = 24,
++    COMAdminOSWindows7StandardServer = 25,
++    COMAdminOSWindows7EnterpriseServer = 26,
++    COMAdminOSWindows7DatacenterServer = 27,
++    COMAdminOSWindows7WebServer = 28,
++    COMAdminOSWindows8Personal = 29,
++    COMAdminOSWindows8Professional = 30,
++    COMAdminOSWindows8StandardServer = 31,
++    COMAdminOSWindows8EnterpriseServer = 32,
++    COMAdminOSWindows8DatacenterServer = 33,
++    COMAdminOSWindows8WebServer = 34
++} COMAdminOS;
++typedef enum COMAdminServiceOptions {
++    COMAdminServiceLoadBalanceRouter = 1
++} COMAdminServiceOptions;
++typedef enum COMAdminServiceStatusOptions {
++    COMAdminServiceStopped = 0,
++    COMAdminServiceStartPending = 1,
++    COMAdminServiceStopPending = 2,
++    COMAdminServiceRunning = 3,
++    COMAdminServiceContinuePending = 4,
++    COMAdminServicePausePending = 5,
++    COMAdminServicePaused = 6,
++    COMAdminServiceUnknownState = 7
++} COMAdminServiceStatusOptions;
++typedef enum COMAdminComponentFlags {
++    COMAdminCompFlagTypeInfoFound = 0x1,
++    COMAdminCompFlagCOMPlusPropertiesFound = 0x2,
++    COMAdminCompFlagProxyFound = 0x4,
++    COMAdminCompFlagInterfacesFound = 0x8,
++    COMAdminCompFlagAlreadyInstalled = 0x10,
++    COMAdminCompFlagNotInApplication = 0x20
++} COMAdminComponentFlags;
++typedef enum COMAdminQCMessageAuthenticateOptions {
++    COMAdminQCMessageAuthenticateSecureApps = 0,
++    COMAdminQCMessageAuthenticateOff = 1,
++    COMAdminQCMessageAuthenticateOn = 2
++} COMAdminQCMessageAuthenticateOptions;
++typedef enum COMAdminFileFlags {
++    COMAdminFileFlagLoadable = 0x1,
++    COMAdminFileFlagCOM = 0x2,
++    COMAdminFileFlagContainsPS = 0x4,
++    COMAdminFileFlagContainsComp = 0x8,
++    COMAdminFileFlagContainsTLB = 0x10,
++    COMAdminFileFlagSelfReg = 0x20,
++    COMAdminFileFlagSelfUnReg = 0x40,
++    COMAdminFileFlagUnloadableDLL = 0x80,
++    COMAdminFileFlagDoesNotExist = 0x100,
++    COMAdminFileFlagAlreadyInstalled = 0x200,
++    COMAdminFileFlagBadTLB = 0x400,
++    COMAdminFileFlagGetClassObjFailed = 0x800,
++    COMAdminFileFlagClassNotAvailable = 0x1000,
++    COMAdminFileFlagRegistrar = 0x2000,
++    COMAdminFileFlagNoRegistrar = 0x4000,
++    COMAdminFileFlagDLLRegsvrFailed = 0x8000,
++    COMAdminFileFlagRegTLBFailed = 0x10000,
++    COMAdminFileFlagRegistrarFailed = 0x20000,
++    COMAdminFileFlagError = 0x40000
++} COMAdminFileFlags;
++/*****************************************************************************
++ * ICOMAdminCatalog interface
++ */
+ #ifndef __ICOMAdminCatalog_INTERFACE_DEFINED__
+ #define __ICOMAdminCatalog_INTERFACE_DEFINED__
+-  EXTERN_C const IID IID_ICOMAdminCatalog;
++
++DEFINE_GUID(IID_ICOMAdminCatalog, 0xdd662187, 0xdfc2, 0x11d1, 0xa2,0xcf, 0x00,0x80,0x5f,0xc7,0x92,0x35);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct ICOMAdminCatalog : public IDispatch {
+-  public:
+-    virtual HRESULT WINAPI GetCollection(BSTR bstrCollName,IDispatch **ppCatalogCollection) = 0;
+-    virtual HRESULT WINAPI Connect(BSTR bstrCatalogServerName,IDispatch **ppCatalogCollection) = 0;
+-    virtual HRESULT WINAPI get_MajorVersion(__LONG32 *plMajorVersion) = 0;
+-    virtual HRESULT WINAPI get_MinorVersion(__LONG32 *plMinorVersion) = 0;
+-    virtual HRESULT WINAPI GetCollectionByQuery(BSTR bstrCollName,SAFEARRAY **ppsaVarQuery,IDispatch **ppCatalogCollection) = 0;
+-    virtual HRESULT WINAPI ImportComponent(BSTR bstrApplIDOrName,BSTR bstrCLSIDOrProgID) = 0;
+-    virtual HRESULT WINAPI InstallComponent(BSTR bstrApplIDOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL) = 0;
+-    virtual HRESULT WINAPI ShutdownApplication(BSTR bstrApplIDOrName) = 0;
+-    virtual HRESULT WINAPI ExportApplication(BSTR bstrApplIDOrName,BSTR bstrApplicationFile,__LONG32 lOptions) = 0;
+-    virtual HRESULT WINAPI InstallApplication(BSTR bstrApplicationFile,BSTR bstrDestinationDirectory,__LONG32 lOptions,BSTR bstrUserId,BSTR bstrPassword,BSTR bstrRSN) = 0;
+-    virtual HRESULT WINAPI StopRouter(void) = 0;
+-    virtual HRESULT WINAPI RefreshRouter(void) = 0;
+-    virtual HRESULT WINAPI StartRouter(void) = 0;
+-    virtual HRESULT WINAPI Reserved1(void) = 0;
+-    virtual HRESULT WINAPI Reserved2(void) = 0;
+-    virtual HRESULT WINAPI InstallMultipleComponents(BSTR bstrApplIDOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs) = 0;
+-    virtual HRESULT WINAPI GetMultipleComponentsInfo(BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarClassNames,SAFEARRAY **ppsaVarFileFlags,SAFEARRAY **ppsaVarComponentFlags) = 0;
+-    virtual HRESULT WINAPI RefreshComponents(void) = 0;
+-    virtual HRESULT WINAPI BackupREGDB(BSTR bstrBackupFilePath) = 0;
+-    virtual HRESULT WINAPI RestoreREGDB(BSTR bstrBackupFilePath) = 0;
+-    virtual HRESULT WINAPI QueryApplicationFile(BSTR bstrApplicationFile,BSTR *pbstrApplicationName,BSTR *pbstrApplicationDescription,VARIANT_BOOL *pbHasUsers,VARIANT_BOOL *pbIsProxy,SAFEARRAY **ppsaVarFileNames) = 0;
+-    virtual HRESULT WINAPI StartApplication(BSTR bstrApplIdOrName) = 0;
+-    virtual HRESULT WINAPI ServiceCheck(__LONG32 lService,__LONG32 *plStatus) = 0;
+-    virtual HRESULT WINAPI InstallMultipleEventClasses(BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDS) = 0;
+-    virtual HRESULT WINAPI InstallEventClass(BSTR bstrApplIdOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL) = 0;
+-    virtual HRESULT WINAPI GetEventClassesForIID(BSTR bstrIID,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarProgIDs,SAFEARRAY **ppsaVarDescriptions) = 0;
+-  };
++MIDL_INTERFACE("dd662187-dfc2-11d1-a2cf-00805fc79235")
++ICOMAdminCatalog : public IDispatch
++{
++    virtual HRESULT STDMETHODCALLTYPE GetCollection(
++        BSTR bstrCollName,
++        IDispatch **ppCatalogCollection) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Connect(
++        BSTR bstrCatalogServerName,
++        IDispatch **ppCatalogCollection) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_MajorVersion(
++        LONG *plMajorVersion) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_MinorVersion(
++        LONG *plMinorVersion) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetCollectionByQuery(
++        BSTR bstrCollName,
++        SAFEARRAY **ppsaVarQuery,
++        IDispatch **ppCatalogCollection) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ImportComponent(
++        BSTR bstrApplIDOrName,
++        BSTR bstrCLSIDOrProgID) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE InstallComponent(
++        BSTR bstrApplIDOrName,
++        BSTR bstrDLL,
++        BSTR bstrTLB,
++        BSTR bstrPSDLL) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ShutdownApplication(
++        BSTR bstrApplIDOrName) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ExportApplication(
++        BSTR bstrApplIDOrName,
++        BSTR bstrApplicationFile,
++        LONG lOptions) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE InstallApplication(
++        BSTR bstrApplicationFile,
++        BSTR bstrDestinationDirectory,
++        LONG lOptions,
++        BSTR bstrUserId,
++        BSTR bstrPassword,
++        BSTR bstrRSN) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE StopRouter(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE RefreshRouter(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE StartRouter(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Reserved1(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Reserved2(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE InstallMultipleComponents(
++        BSTR bstrApplIDOrName,
++        SAFEARRAY **ppsaVarFileNames,
++        SAFEARRAY **ppsaVarCLSIDs) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetMultipleComponentsInfo(
++        BSTR bstrApplIdOrName,
++        SAFEARRAY **ppsaVarFileNames,
++        SAFEARRAY **ppsaVarCLSIDs,
++        SAFEARRAY **ppsaVarClassNames,
++        SAFEARRAY **ppsaVarFileFlags,
++        SAFEARRAY **ppsaVarComponentFlags) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE RefreshComponents(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE BackupREGDB(
++        BSTR bstrBackupFilePath) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE RestoreREGDB(
++        BSTR bstrBackupFilePath) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE QueryApplicationFile(
++        BSTR bstrApplicationFile,
++        BSTR *pbstrApplicationName,
++        BSTR *pbstrApplicationDescription,
++        VARIANT_BOOL *pbHasUsers,
++        VARIANT_BOOL *pbIsProxy,
++        SAFEARRAY **ppsaVarFileNames) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE StartApplication(
++        BSTR bstrApplIdOrName) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ServiceCheck(
++        LONG lService,
++        LONG *plStatus) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE InstallMultipleEventClasses(
++        BSTR bstrApplIdOrName,
++        SAFEARRAY **ppsaVarFileNames,
++        SAFEARRAY **ppsaVarCLSIDS) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE InstallEventClass(
++        BSTR bstrApplIdOrName,
++        BSTR bstrDLL,
++        BSTR bstrTLB,
++        BSTR bstrPSDLL) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetEventClassesForIID(
++        BSTR bstrIID,
++        SAFEARRAY **ppsaVarCLSIDs,
++        SAFEARRAY **ppsaVarProgIDs,
++        SAFEARRAY **ppsaVarDescriptions) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(ICOMAdminCatalog, 0xdd662187, 0xdfc2, 0x11d1, 0xa2,0xcf, 0x00,0x80,0x5f,0xc7,0x92,0x35)
++#endif
+ #else
+-  typedef struct ICOMAdminCatalogVtbl {
++typedef struct ICOMAdminCatalogVtbl {
+     BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(ICOMAdminCatalog *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(ICOMAdminCatalog *This);
+-      ULONG (WINAPI *Release)(ICOMAdminCatalog *This);
+-      HRESULT (WINAPI *GetTypeInfoCount)(ICOMAdminCatalog *This,UINT *pctinfo);
+-      HRESULT (WINAPI *GetTypeInfo)(ICOMAdminCatalog *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
+-      HRESULT (WINAPI *GetIDsOfNames)(ICOMAdminCatalog *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
+-      HRESULT (WINAPI *Invoke)(ICOMAdminCatalog *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
+-      HRESULT (WINAPI *GetCollection)(ICOMAdminCatalog *This,BSTR bstrCollName,IDispatch **ppCatalogCollection);
+-      HRESULT (WINAPI *Connect)(ICOMAdminCatalog *This,BSTR bstrCatalogServerName,IDispatch **ppCatalogCollection);
+-      HRESULT (WINAPI *get_MajorVersion)(ICOMAdminCatalog *This,__LONG32 *plMajorVersion);
+-      HRESULT (WINAPI *get_MinorVersion)(ICOMAdminCatalog *This,__LONG32 *plMinorVersion);
+-      HRESULT (WINAPI *GetCollectionByQuery)(ICOMAdminCatalog *This,BSTR bstrCollName,SAFEARRAY **ppsaVarQuery,IDispatch **ppCatalogCollection);
+-      HRESULT (WINAPI *ImportComponent)(ICOMAdminCatalog *This,BSTR bstrApplIDOrName,BSTR bstrCLSIDOrProgID);
+-      HRESULT (WINAPI *InstallComponent)(ICOMAdminCatalog *This,BSTR bstrApplIDOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL);
+-      HRESULT (WINAPI *ShutdownApplication)(ICOMAdminCatalog *This,BSTR bstrApplIDOrName);
+-      HRESULT (WINAPI *ExportApplication)(ICOMAdminCatalog *This,BSTR bstrApplIDOrName,BSTR bstrApplicationFile,__LONG32 lOptions);
+-      HRESULT (WINAPI *InstallApplication)(ICOMAdminCatalog *This,BSTR bstrApplicationFile,BSTR bstrDestinationDirectory,__LONG32 lOptions,BSTR bstrUserId,BSTR bstrPassword,BSTR bstrRSN);
+-      HRESULT (WINAPI *StopRouter)(ICOMAdminCatalog *This);
+-      HRESULT (WINAPI *RefreshRouter)(ICOMAdminCatalog *This);
+-      HRESULT (WINAPI *StartRouter)(ICOMAdminCatalog *This);
+-      HRESULT (WINAPI *Reserved1)(ICOMAdminCatalog *This);
+-      HRESULT (WINAPI *Reserved2)(ICOMAdminCatalog *This);
+-      HRESULT (WINAPI *InstallMultipleComponents)(ICOMAdminCatalog *This,BSTR bstrApplIDOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs);
+-      HRESULT (WINAPI *GetMultipleComponentsInfo)(ICOMAdminCatalog *This,BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarClassNames,SAFEARRAY **ppsaVarFileFlags,SAFEARRAY **ppsaVarComponentFlags);
+-      HRESULT (WINAPI *RefreshComponents)(ICOMAdminCatalog *This);
+-      HRESULT (WINAPI *BackupREGDB)(ICOMAdminCatalog *This,BSTR bstrBackupFilePath);
+-      HRESULT (WINAPI *RestoreREGDB)(ICOMAdminCatalog *This,BSTR bstrBackupFilePath);
+-      HRESULT (WINAPI *QueryApplicationFile)(ICOMAdminCatalog *This,BSTR bstrApplicationFile,BSTR *pbstrApplicationName,BSTR *pbstrApplicationDescription,VARIANT_BOOL *pbHasUsers,VARIANT_BOOL *pbIsProxy,SAFEARRAY **ppsaVarFileNames);
+-      HRESULT (WINAPI *StartApplication)(ICOMAdminCatalog *This,BSTR bstrApplIdOrName);
+-      HRESULT (WINAPI *ServiceCheck)(ICOMAdminCatalog *This,__LONG32 lService,__LONG32 *plStatus);
+-      HRESULT (WINAPI *InstallMultipleEventClasses)(ICOMAdminCatalog *This,BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDS);
+-      HRESULT (WINAPI *InstallEventClass)(ICOMAdminCatalog *This,BSTR bstrApplIdOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL);
+-      HRESULT (WINAPI *GetEventClassesForIID)(ICOMAdminCatalog *This,BSTR bstrIID,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarProgIDs,SAFEARRAY **ppsaVarDescriptions);
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        ICOMAdminCatalog* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        ICOMAdminCatalog* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        ICOMAdminCatalog* This);
++
++    /*** IDispatch methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
++        ICOMAdminCatalog* This,
++        UINT *pctinfo);
++
++    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
++        ICOMAdminCatalog* This,
++        UINT iTInfo,
++        LCID lcid,
++        ITypeInfo **ppTInfo);
++
++    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
++        ICOMAdminCatalog* This,
++        REFIID riid,
++        LPOLESTR *rgszNames,
++        UINT cNames,
++        LCID lcid,
++        DISPID *rgDispId);
++
++    HRESULT (STDMETHODCALLTYPE *Invoke)(
++        ICOMAdminCatalog* This,
++        DISPID dispIdMember,
++        REFIID riid,
++        LCID lcid,
++        WORD wFlags,
++        DISPPARAMS *pDispParams,
++        VARIANT *pVarResult,
++        EXCEPINFO *pExcepInfo,
++        UINT *puArgErr);
++
++    /*** ICOMAdminCatalog methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetCollection)(
++        ICOMAdminCatalog* This,
++        BSTR bstrCollName,
++        IDispatch **ppCatalogCollection);
++
++    HRESULT (STDMETHODCALLTYPE *Connect)(
++        ICOMAdminCatalog* This,
++        BSTR bstrCatalogServerName,
++        IDispatch **ppCatalogCollection);
++
++    HRESULT (STDMETHODCALLTYPE *get_MajorVersion)(
++        ICOMAdminCatalog* This,
++        LONG *plMajorVersion);
++
++    HRESULT (STDMETHODCALLTYPE *get_MinorVersion)(
++        ICOMAdminCatalog* This,
++        LONG *plMinorVersion);
++
++    HRESULT (STDMETHODCALLTYPE *GetCollectionByQuery)(
++        ICOMAdminCatalog* This,
++        BSTR bstrCollName,
++        SAFEARRAY **ppsaVarQuery,
++        IDispatch **ppCatalogCollection);
++
++    HRESULT (STDMETHODCALLTYPE *ImportComponent)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplIDOrName,
++        BSTR bstrCLSIDOrProgID);
++
++    HRESULT (STDMETHODCALLTYPE *InstallComponent)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplIDOrName,
++        BSTR bstrDLL,
++        BSTR bstrTLB,
++        BSTR bstrPSDLL);
++
++    HRESULT (STDMETHODCALLTYPE *ShutdownApplication)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplIDOrName);
++
++    HRESULT (STDMETHODCALLTYPE *ExportApplication)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplIDOrName,
++        BSTR bstrApplicationFile,
++        LONG lOptions);
++
++    HRESULT (STDMETHODCALLTYPE *InstallApplication)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplicationFile,
++        BSTR bstrDestinationDirectory,
++        LONG lOptions,
++        BSTR bstrUserId,
++        BSTR bstrPassword,
++        BSTR bstrRSN);
++
++    HRESULT (STDMETHODCALLTYPE *StopRouter)(
++        ICOMAdminCatalog* This);
++
++    HRESULT (STDMETHODCALLTYPE *RefreshRouter)(
++        ICOMAdminCatalog* This);
++
++    HRESULT (STDMETHODCALLTYPE *StartRouter)(
++        ICOMAdminCatalog* This);
++
++    HRESULT (STDMETHODCALLTYPE *Reserved1)(
++        ICOMAdminCatalog* This);
++
++    HRESULT (STDMETHODCALLTYPE *Reserved2)(
++        ICOMAdminCatalog* This);
++
++    HRESULT (STDMETHODCALLTYPE *InstallMultipleComponents)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplIDOrName,
++        SAFEARRAY **ppsaVarFileNames,
++        SAFEARRAY **ppsaVarCLSIDs);
++
++    HRESULT (STDMETHODCALLTYPE *GetMultipleComponentsInfo)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplIdOrName,
++        SAFEARRAY **ppsaVarFileNames,
++        SAFEARRAY **ppsaVarCLSIDs,
++        SAFEARRAY **ppsaVarClassNames,
++        SAFEARRAY **ppsaVarFileFlags,
++        SAFEARRAY **ppsaVarComponentFlags);
++
++    HRESULT (STDMETHODCALLTYPE *RefreshComponents)(
++        ICOMAdminCatalog* This);
++
++    HRESULT (STDMETHODCALLTYPE *BackupREGDB)(
++        ICOMAdminCatalog* This,
++        BSTR bstrBackupFilePath);
++
++    HRESULT (STDMETHODCALLTYPE *RestoreREGDB)(
++        ICOMAdminCatalog* This,
++        BSTR bstrBackupFilePath);
++
++    HRESULT (STDMETHODCALLTYPE *QueryApplicationFile)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplicationFile,
++        BSTR *pbstrApplicationName,
++        BSTR *pbstrApplicationDescription,
++        VARIANT_BOOL *pbHasUsers,
++        VARIANT_BOOL *pbIsProxy,
++        SAFEARRAY **ppsaVarFileNames);
++
++    HRESULT (STDMETHODCALLTYPE *StartApplication)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplIdOrName);
++
++    HRESULT (STDMETHODCALLTYPE *ServiceCheck)(
++        ICOMAdminCatalog* This,
++        LONG lService,
++        LONG *plStatus);
++
++    HRESULT (STDMETHODCALLTYPE *InstallMultipleEventClasses)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplIdOrName,
++        SAFEARRAY **ppsaVarFileNames,
++        SAFEARRAY **ppsaVarCLSIDS);
++
++    HRESULT (STDMETHODCALLTYPE *InstallEventClass)(
++        ICOMAdminCatalog* This,
++        BSTR bstrApplIdOrName,
++        BSTR bstrDLL,
++        BSTR bstrTLB,
++        BSTR bstrPSDLL);
++
++    HRESULT (STDMETHODCALLTYPE *GetEventClassesForIID)(
++        ICOMAdminCatalog* This,
++        BSTR bstrIID,
++        SAFEARRAY **ppsaVarCLSIDs,
++        SAFEARRAY **ppsaVarProgIDs,
++        SAFEARRAY **ppsaVarDescriptions);
++
+     END_INTERFACE
+-  } ICOMAdminCatalogVtbl;
+-  struct ICOMAdminCatalog {
+-    CONST_VTBL struct ICOMAdminCatalogVtbl *lpVtbl;
+-  };
++} ICOMAdminCatalogVtbl;
++interface ICOMAdminCatalog {
++    CONST_VTBL ICOMAdminCatalogVtbl* lpVtbl;
++};
++
+ #ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
+ #define ICOMAdminCatalog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+ #define ICOMAdminCatalog_AddRef(This) (This)->lpVtbl->AddRef(This)
+ #define ICOMAdminCatalog_Release(This) (This)->lpVtbl->Release(This)
++/*** IDispatch methods ***/
+ #define ICOMAdminCatalog_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+ #define ICOMAdminCatalog_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+ #define ICOMAdminCatalog_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+ #define ICOMAdminCatalog_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
++/*** ICOMAdminCatalog methods ***/
+ #define ICOMAdminCatalog_GetCollection(This,bstrCollName,ppCatalogCollection) (This)->lpVtbl->GetCollection(This,bstrCollName,ppCatalogCollection)
+ #define ICOMAdminCatalog_Connect(This,bstrCatalogServerName,ppCatalogCollection) (This)->lpVtbl->Connect(This,bstrCatalogServerName,ppCatalogCollection)
+ #define ICOMAdminCatalog_get_MajorVersion(This,plMajorVersion) (This)->lpVtbl->get_MajorVersion(This,plMajorVersion)
+@@ -195,188 +690,872 @@ extern "C"{
+ #define ICOMAdminCatalog_InstallMultipleEventClasses(This,bstrApplIdOrName,ppsaVarFileNames,ppsaVarCLSIDS) (This)->lpVtbl->InstallMultipleEventClasses(This,bstrApplIdOrName,ppsaVarFileNames,ppsaVarCLSIDS)
+ #define ICOMAdminCatalog_InstallEventClass(This,bstrApplIdOrName,bstrDLL,bstrTLB,bstrPSDLL) (This)->lpVtbl->InstallEventClass(This,bstrApplIdOrName,bstrDLL,bstrTLB,bstrPSDLL)
+ #define ICOMAdminCatalog_GetEventClassesForIID(This,bstrIID,ppsaVarCLSIDs,ppsaVarProgIDs,ppsaVarDescriptions) (This)->lpVtbl->GetEventClassesForIID(This,bstrIID,ppsaVarCLSIDs,ppsaVarProgIDs,ppsaVarDescriptions)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT ICOMAdminCatalog_QueryInterface(ICOMAdminCatalog* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG ICOMAdminCatalog_AddRef(ICOMAdminCatalog* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG ICOMAdminCatalog_Release(ICOMAdminCatalog* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IDispatch methods ***/
++static FORCEINLINE HRESULT ICOMAdminCatalog_GetTypeInfoCount(ICOMAdminCatalog* This,UINT *pctinfo) {
++    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_GetTypeInfo(ICOMAdminCatalog* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
++    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_GetIDsOfNames(ICOMAdminCatalog* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
++    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_Invoke(ICOMAdminCatalog* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
++    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
++}
++/*** ICOMAdminCatalog methods ***/
++static FORCEINLINE HRESULT ICOMAdminCatalog_GetCollection(ICOMAdminCatalog* This,BSTR bstrCollName,IDispatch **ppCatalogCollection) {
++    return This->lpVtbl->GetCollection(This,bstrCollName,ppCatalogCollection);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_Connect(ICOMAdminCatalog* This,BSTR bstrCatalogServerName,IDispatch **ppCatalogCollection) {
++    return This->lpVtbl->Connect(This,bstrCatalogServerName,ppCatalogCollection);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_get_MajorVersion(ICOMAdminCatalog* This,LONG *plMajorVersion) {
++    return This->lpVtbl->get_MajorVersion(This,plMajorVersion);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_get_MinorVersion(ICOMAdminCatalog* This,LONG *plMinorVersion) {
++    return This->lpVtbl->get_MinorVersion(This,plMinorVersion);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_GetCollectionByQuery(ICOMAdminCatalog* This,BSTR bstrCollName,SAFEARRAY **ppsaVarQuery,IDispatch **ppCatalogCollection) {
++    return This->lpVtbl->GetCollectionByQuery(This,bstrCollName,ppsaVarQuery,ppCatalogCollection);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_ImportComponent(ICOMAdminCatalog* This,BSTR bstrApplIDOrName,BSTR bstrCLSIDOrProgID) {
++    return This->lpVtbl->ImportComponent(This,bstrApplIDOrName,bstrCLSIDOrProgID);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_InstallComponent(ICOMAdminCatalog* This,BSTR bstrApplIDOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL) {
++    return This->lpVtbl->InstallComponent(This,bstrApplIDOrName,bstrDLL,bstrTLB,bstrPSDLL);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_ShutdownApplication(ICOMAdminCatalog* This,BSTR bstrApplIDOrName) {
++    return This->lpVtbl->ShutdownApplication(This,bstrApplIDOrName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_ExportApplication(ICOMAdminCatalog* This,BSTR bstrApplIDOrName,BSTR bstrApplicationFile,LONG lOptions) {
++    return This->lpVtbl->ExportApplication(This,bstrApplIDOrName,bstrApplicationFile,lOptions);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_InstallApplication(ICOMAdminCatalog* This,BSTR bstrApplicationFile,BSTR bstrDestinationDirectory,LONG lOptions,BSTR bstrUserId,BSTR bstrPassword,BSTR bstrRSN) {
++    return This->lpVtbl->InstallApplication(This,bstrApplicationFile,bstrDestinationDirectory,lOptions,bstrUserId,bstrPassword,bstrRSN);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_StopRouter(ICOMAdminCatalog* This) {
++    return This->lpVtbl->StopRouter(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_RefreshRouter(ICOMAdminCatalog* This) {
++    return This->lpVtbl->RefreshRouter(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_StartRouter(ICOMAdminCatalog* This) {
++    return This->lpVtbl->StartRouter(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_Reserved1(ICOMAdminCatalog* This) {
++    return This->lpVtbl->Reserved1(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_Reserved2(ICOMAdminCatalog* This) {
++    return This->lpVtbl->Reserved2(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_InstallMultipleComponents(ICOMAdminCatalog* This,BSTR bstrApplIDOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs) {
++    return This->lpVtbl->InstallMultipleComponents(This,bstrApplIDOrName,ppsaVarFileNames,ppsaVarCLSIDs);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_GetMultipleComponentsInfo(ICOMAdminCatalog* This,BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarClassNames,SAFEARRAY **ppsaVarFileFlags,SAFEARRAY **ppsaVarComponentFlags) {
++    return This->lpVtbl->GetMultipleComponentsInfo(This,bstrApplIdOrName,ppsaVarFileNames,ppsaVarCLSIDs,ppsaVarClassNames,ppsaVarFileFlags,ppsaVarComponentFlags);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_RefreshComponents(ICOMAdminCatalog* This) {
++    return This->lpVtbl->RefreshComponents(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_BackupREGDB(ICOMAdminCatalog* This,BSTR bstrBackupFilePath) {
++    return This->lpVtbl->BackupREGDB(This,bstrBackupFilePath);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_RestoreREGDB(ICOMAdminCatalog* This,BSTR bstrBackupFilePath) {
++    return This->lpVtbl->RestoreREGDB(This,bstrBackupFilePath);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_QueryApplicationFile(ICOMAdminCatalog* This,BSTR bstrApplicationFile,BSTR *pbstrApplicationName,BSTR *pbstrApplicationDescription,VARIANT_BOOL *pbHasUsers,VARIANT_BOOL *pbIsProxy,SAFEARRAY **ppsaVarFileNames) {
++    return This->lpVtbl->QueryApplicationFile(This,bstrApplicationFile,pbstrApplicationName,pbstrApplicationDescription,pbHasUsers,pbIsProxy,ppsaVarFileNames);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_StartApplication(ICOMAdminCatalog* This,BSTR bstrApplIdOrName) {
++    return This->lpVtbl->StartApplication(This,bstrApplIdOrName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_ServiceCheck(ICOMAdminCatalog* This,LONG lService,LONG *plStatus) {
++    return This->lpVtbl->ServiceCheck(This,lService,plStatus);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_InstallMultipleEventClasses(ICOMAdminCatalog* This,BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDS) {
++    return This->lpVtbl->InstallMultipleEventClasses(This,bstrApplIdOrName,ppsaVarFileNames,ppsaVarCLSIDS);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_InstallEventClass(ICOMAdminCatalog* This,BSTR bstrApplIdOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL) {
++    return This->lpVtbl->InstallEventClass(This,bstrApplIdOrName,bstrDLL,bstrTLB,bstrPSDLL);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog_GetEventClassesForIID(ICOMAdminCatalog* This,BSTR bstrIID,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarProgIDs,SAFEARRAY **ppsaVarDescriptions) {
++    return This->lpVtbl->GetEventClassesForIID(This,bstrIID,ppsaVarCLSIDs,ppsaVarProgIDs,ppsaVarDescriptions);
++}
+ #endif
+ #endif
+-  HRESULT WINAPI ICOMAdminCatalog_GetCollection_Proxy(ICOMAdminCatalog *This,BSTR bstrCollName,IDispatch **ppCatalogCollection);
+-  void __RPC_STUB ICOMAdminCatalog_GetCollection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_Connect_Proxy(ICOMAdminCatalog *This,BSTR bstrCatalogServerName,IDispatch **ppCatalogCollection);
+-  void __RPC_STUB ICOMAdminCatalog_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_get_MajorVersion_Proxy(ICOMAdminCatalog *This,__LONG32 *plMajorVersion);
+-  void __RPC_STUB ICOMAdminCatalog_get_MajorVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_get_MinorVersion_Proxy(ICOMAdminCatalog *This,__LONG32 *plMinorVersion);
+-  void __RPC_STUB ICOMAdminCatalog_get_MinorVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_GetCollectionByQuery_Proxy(ICOMAdminCatalog *This,BSTR bstrCollName,SAFEARRAY **ppsaVarQuery,IDispatch **ppCatalogCollection);
+-  void __RPC_STUB ICOMAdminCatalog_GetCollectionByQuery_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_ImportComponent_Proxy(ICOMAdminCatalog *This,BSTR bstrApplIDOrName,BSTR bstrCLSIDOrProgID);
+-  void __RPC_STUB ICOMAdminCatalog_ImportComponent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_InstallComponent_Proxy(ICOMAdminCatalog *This,BSTR bstrApplIDOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL);
+-  void __RPC_STUB ICOMAdminCatalog_InstallComponent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_ShutdownApplication_Proxy(ICOMAdminCatalog *This,BSTR bstrApplIDOrName);
+-  void __RPC_STUB ICOMAdminCatalog_ShutdownApplication_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_ExportApplication_Proxy(ICOMAdminCatalog *This,BSTR bstrApplIDOrName,BSTR bstrApplicationFile,__LONG32 lOptions);
+-  void __RPC_STUB ICOMAdminCatalog_ExportApplication_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_InstallApplication_Proxy(ICOMAdminCatalog *This,BSTR bstrApplicationFile,BSTR bstrDestinationDirectory,__LONG32 lOptions,BSTR bstrUserId,BSTR bstrPassword,BSTR bstrRSN);
+-  void __RPC_STUB ICOMAdminCatalog_InstallApplication_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_StopRouter_Proxy(ICOMAdminCatalog *This);
+-  void __RPC_STUB ICOMAdminCatalog_StopRouter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_RefreshRouter_Proxy(ICOMAdminCatalog *This);
+-  void __RPC_STUB ICOMAdminCatalog_RefreshRouter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_StartRouter_Proxy(ICOMAdminCatalog *This);
+-  void __RPC_STUB ICOMAdminCatalog_StartRouter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_Reserved1_Proxy(ICOMAdminCatalog *This);
+-  void __RPC_STUB ICOMAdminCatalog_Reserved1_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_Reserved2_Proxy(ICOMAdminCatalog *This);
+-  void __RPC_STUB ICOMAdminCatalog_Reserved2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_InstallMultipleComponents_Proxy(ICOMAdminCatalog *This,BSTR bstrApplIDOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs);
+-  void __RPC_STUB ICOMAdminCatalog_InstallMultipleComponents_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_GetMultipleComponentsInfo_Proxy(ICOMAdminCatalog *This,BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarClassNames,SAFEARRAY **ppsaVarFileFlags,SAFEARRAY **ppsaVarComponentFlags);
+-  void __RPC_STUB ICOMAdminCatalog_GetMultipleComponentsInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_RefreshComponents_Proxy(ICOMAdminCatalog *This);
+-  void __RPC_STUB ICOMAdminCatalog_RefreshComponents_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_BackupREGDB_Proxy(ICOMAdminCatalog *This,BSTR bstrBackupFilePath);
+-  void __RPC_STUB ICOMAdminCatalog_BackupREGDB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_RestoreREGDB_Proxy(ICOMAdminCatalog *This,BSTR bstrBackupFilePath);
+-  void __RPC_STUB ICOMAdminCatalog_RestoreREGDB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_QueryApplicationFile_Proxy(ICOMAdminCatalog *This,BSTR bstrApplicationFile,BSTR *pbstrApplicationName,BSTR *pbstrApplicationDescription,VARIANT_BOOL *pbHasUsers,VARIANT_BOOL *pbIsProxy,SAFEARRAY **ppsaVarFileNames);
+-  void __RPC_STUB ICOMAdminCatalog_QueryApplicationFile_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_StartApplication_Proxy(ICOMAdminCatalog *This,BSTR bstrApplIdOrName);
+-  void __RPC_STUB ICOMAdminCatalog_StartApplication_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_ServiceCheck_Proxy(ICOMAdminCatalog *This,__LONG32 lService,__LONG32 *plStatus);
+-  void __RPC_STUB ICOMAdminCatalog_ServiceCheck_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_InstallMultipleEventClasses_Proxy(ICOMAdminCatalog *This,BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDS);
+-  void __RPC_STUB ICOMAdminCatalog_InstallMultipleEventClasses_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_InstallEventClass_Proxy(ICOMAdminCatalog *This,BSTR bstrApplIdOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL);
+-  void __RPC_STUB ICOMAdminCatalog_InstallEventClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog_GetEventClassesForIID_Proxy(ICOMAdminCatalog *This,BSTR bstrIID,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarProgIDs,SAFEARRAY **ppsaVarDescriptions);
+-  void __RPC_STUB ICOMAdminCatalog_GetEventClassesForIID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
++
+ #endif
+ 
+-  typedef enum COMAdminInUse {
+-    COMAdminNotInUse = 0,COMAdminInUseByCatalog = 0x1,COMAdminInUseByRegistryUnknown = 0x2,COMAdminInUseByRegistryProxyStub = 0x3,
+-    COMAdminInUseByRegistryTypeLib = 0x4,COMAdminInUseByRegistryClsid = 0x5
+-  } COMAdminInUse;
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_GetCollection_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrCollName,
++    IDispatch **ppCatalogCollection);
++void __RPC_STUB ICOMAdminCatalog_GetCollection_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_Connect_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrCatalogServerName,
++    IDispatch **ppCatalogCollection);
++void __RPC_STUB ICOMAdminCatalog_Connect_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_get_MajorVersion_Proxy(
++    ICOMAdminCatalog* This,
++    LONG *plMajorVersion);
++void __RPC_STUB ICOMAdminCatalog_get_MajorVersion_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_get_MinorVersion_Proxy(
++    ICOMAdminCatalog* This,
++    LONG *plMinorVersion);
++void __RPC_STUB ICOMAdminCatalog_get_MinorVersion_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_GetCollectionByQuery_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrCollName,
++    SAFEARRAY **ppsaVarQuery,
++    IDispatch **ppCatalogCollection);
++void __RPC_STUB ICOMAdminCatalog_GetCollectionByQuery_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_ImportComponent_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplIDOrName,
++    BSTR bstrCLSIDOrProgID);
++void __RPC_STUB ICOMAdminCatalog_ImportComponent_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_InstallComponent_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplIDOrName,
++    BSTR bstrDLL,
++    BSTR bstrTLB,
++    BSTR bstrPSDLL);
++void __RPC_STUB ICOMAdminCatalog_InstallComponent_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_ShutdownApplication_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplIDOrName);
++void __RPC_STUB ICOMAdminCatalog_ShutdownApplication_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_ExportApplication_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplIDOrName,
++    BSTR bstrApplicationFile,
++    LONG lOptions);
++void __RPC_STUB ICOMAdminCatalog_ExportApplication_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_InstallApplication_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplicationFile,
++    BSTR bstrDestinationDirectory,
++    LONG lOptions,
++    BSTR bstrUserId,
++    BSTR bstrPassword,
++    BSTR bstrRSN);
++void __RPC_STUB ICOMAdminCatalog_InstallApplication_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_StopRouter_Proxy(
++    ICOMAdminCatalog* This);
++void __RPC_STUB ICOMAdminCatalog_StopRouter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_RefreshRouter_Proxy(
++    ICOMAdminCatalog* This);
++void __RPC_STUB ICOMAdminCatalog_RefreshRouter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_StartRouter_Proxy(
++    ICOMAdminCatalog* This);
++void __RPC_STUB ICOMAdminCatalog_StartRouter_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_Reserved1_Proxy(
++    ICOMAdminCatalog* This);
++void __RPC_STUB ICOMAdminCatalog_Reserved1_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_Reserved2_Proxy(
++    ICOMAdminCatalog* This);
++void __RPC_STUB ICOMAdminCatalog_Reserved2_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_InstallMultipleComponents_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplIDOrName,
++    SAFEARRAY **ppsaVarFileNames,
++    SAFEARRAY **ppsaVarCLSIDs);
++void __RPC_STUB ICOMAdminCatalog_InstallMultipleComponents_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_GetMultipleComponentsInfo_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplIdOrName,
++    SAFEARRAY **ppsaVarFileNames,
++    SAFEARRAY **ppsaVarCLSIDs,
++    SAFEARRAY **ppsaVarClassNames,
++    SAFEARRAY **ppsaVarFileFlags,
++    SAFEARRAY **ppsaVarComponentFlags);
++void __RPC_STUB ICOMAdminCatalog_GetMultipleComponentsInfo_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_RefreshComponents_Proxy(
++    ICOMAdminCatalog* This);
++void __RPC_STUB ICOMAdminCatalog_RefreshComponents_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_BackupREGDB_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrBackupFilePath);
++void __RPC_STUB ICOMAdminCatalog_BackupREGDB_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_RestoreREGDB_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrBackupFilePath);
++void __RPC_STUB ICOMAdminCatalog_RestoreREGDB_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_QueryApplicationFile_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplicationFile,
++    BSTR *pbstrApplicationName,
++    BSTR *pbstrApplicationDescription,
++    VARIANT_BOOL *pbHasUsers,
++    VARIANT_BOOL *pbIsProxy,
++    SAFEARRAY **ppsaVarFileNames);
++void __RPC_STUB ICOMAdminCatalog_QueryApplicationFile_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_StartApplication_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplIdOrName);
++void __RPC_STUB ICOMAdminCatalog_StartApplication_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_ServiceCheck_Proxy(
++    ICOMAdminCatalog* This,
++    LONG lService,
++    LONG *plStatus);
++void __RPC_STUB ICOMAdminCatalog_ServiceCheck_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_InstallMultipleEventClasses_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplIdOrName,
++    SAFEARRAY **ppsaVarFileNames,
++    SAFEARRAY **ppsaVarCLSIDS);
++void __RPC_STUB ICOMAdminCatalog_InstallMultipleEventClasses_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_InstallEventClass_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrApplIdOrName,
++    BSTR bstrDLL,
++    BSTR bstrTLB,
++    BSTR bstrPSDLL);
++void __RPC_STUB ICOMAdminCatalog_InstallEventClass_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog_GetEventClassesForIID_Proxy(
++    ICOMAdminCatalog* This,
++    BSTR bstrIID,
++    SAFEARRAY **ppsaVarCLSIDs,
++    SAFEARRAY **ppsaVarProgIDs,
++    SAFEARRAY **ppsaVarDescriptions);
++void __RPC_STUB ICOMAdminCatalog_GetEventClassesForIID_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
+ 
+-  extern RPC_IF_HANDLE __MIDL_itf_comadmin_0116_v0_0_c_ifspec;
+-  extern RPC_IF_HANDLE __MIDL_itf_comadmin_0116_v0_0_s_ifspec;
++#endif  /* __ICOMAdminCatalog_INTERFACE_DEFINED__ */
+ 
++/*****************************************************************************
++ * ICOMAdminCatalog2 interface
++ */
+ #ifndef __ICOMAdminCatalog2_INTERFACE_DEFINED__
+ #define __ICOMAdminCatalog2_INTERFACE_DEFINED__
+-  EXTERN_C const IID IID_ICOMAdminCatalog2;
++
++DEFINE_GUID(IID_ICOMAdminCatalog2, 0x790c6e0b, 0x9194, 0x4cc9, 0x94,0x26, 0xa4,0x8a,0x63,0x18,0x56,0x96);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct ICOMAdminCatalog2 : public ICOMAdminCatalog {
+-  public:
+-    virtual HRESULT WINAPI GetCollectionByQuery2(BSTR bstrCollectionName,VARIANT *pVarQueryStrings,IDispatch **ppCatalogCollection) = 0;
+-    virtual HRESULT WINAPI GetApplicationInstanceIDFromProcessID(__LONG32 lProcessID,BSTR *pbstrApplicationInstanceID) = 0;
+-    virtual HRESULT WINAPI ShutdownApplicationInstances(VARIANT *pVarApplicationInstanceID) = 0;
+-    virtual HRESULT WINAPI PauseApplicationInstances(VARIANT *pVarApplicationInstanceID) = 0;
+-    virtual HRESULT WINAPI ResumeApplicationInstances(VARIANT *pVarApplicationInstanceID) = 0;
+-    virtual HRESULT WINAPI RecycleApplicationInstances(VARIANT *pVarApplicationInstanceID,__LONG32 lReasonCode) = 0;
+-    virtual HRESULT WINAPI AreApplicationInstancesPaused(VARIANT *pVarApplicationInstanceID,VARIANT_BOOL *pVarBoolPaused) = 0;
+-    virtual HRESULT WINAPI DumpApplicationInstance(BSTR bstrApplicationInstanceID,BSTR bstrDirectory,__LONG32 lMaxImages,BSTR *pbstrDumpFile) = 0;
+-    virtual HRESULT WINAPI get_IsApplicationInstanceDumpSupported(VARIANT_BOOL *pVarBoolDumpSupported) = 0;
+-    virtual HRESULT WINAPI CreateServiceForApplication(BSTR bstrApplicationIDOrName,BSTR bstrServiceName,BSTR bstrStartType,BSTR bstrErrorControl,BSTR bstrDependencies,BSTR bstrRunAs,BSTR bstrPassword,VARIANT_BOOL bDesktopOk) = 0;
+-    virtual HRESULT WINAPI DeleteServiceForApplication(BSTR bstrApplicationIDOrName) = 0;
+-    virtual HRESULT WINAPI GetPartitionID(BSTR bstrApplicationIDOrName,BSTR *pbstrPartitionID) = 0;
+-    virtual HRESULT WINAPI GetPartitionName(BSTR bstrApplicationIDOrName,BSTR *pbstrPartitionName) = 0;
+-    virtual HRESULT WINAPI put_CurrentPartition(BSTR bstrPartitionIDOrName) = 0;
+-    virtual HRESULT WINAPI get_CurrentPartitionID(BSTR *pbstrPartitionID) = 0;
+-    virtual HRESULT WINAPI get_CurrentPartitionName(BSTR *pbstrPartitionName) = 0;
+-    virtual HRESULT WINAPI get_GlobalPartitionID(BSTR *pbstrGlobalPartitionID) = 0;
+-    virtual HRESULT WINAPI FlushPartitionCache(void) = 0;
+-    virtual HRESULT WINAPI CopyApplications(BSTR bstrSourcePartitionIDOrName,VARIANT *pVarApplicationID,BSTR bstrDestinationPartitionIDOrName) = 0;
+-    virtual HRESULT WINAPI CopyComponents(BSTR bstrSourceApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,BSTR bstrDestinationApplicationIDOrName) = 0;
+-    virtual HRESULT WINAPI MoveComponents(BSTR bstrSourceApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,BSTR bstrDestinationApplicationIDOrName) = 0;
+-    virtual HRESULT WINAPI AliasComponent(BSTR bstrSrcApplicationIDOrName,BSTR bstrCLSIDOrProgID,BSTR bstrDestApplicationIDOrName,BSTR bstrNewProgId,BSTR bstrNewClsid) = 0;
+-    virtual HRESULT WINAPI IsSafeToDelete(BSTR bstrDllName,COMAdminInUse *pCOMAdminInUse) = 0;
+-    virtual HRESULT WINAPI ImportUnconfiguredComponents(BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType) = 0;
+-    virtual HRESULT WINAPI PromoteUnconfiguredComponents(BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType) = 0;
+-    virtual HRESULT WINAPI ImportComponents(BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType) = 0;
+-    virtual HRESULT WINAPI get_Is64BitCatalogServer(VARIANT_BOOL *pbIs64Bit) = 0;
+-    virtual HRESULT WINAPI ExportPartition(BSTR bstrPartitionIDOrName,BSTR bstrPartitionFileName,__LONG32 lOptions) = 0;
+-    virtual HRESULT WINAPI InstallPartition(BSTR bstrFileName,BSTR bstrDestDirectory,__LONG32 lOptions,BSTR bstrUserID,BSTR bstrPassword,BSTR bstrRSN) = 0;
+-    virtual HRESULT WINAPI QueryApplicationFile2(BSTR bstrApplicationFile,IDispatch **ppFilesForImport) = 0;
+-    virtual HRESULT WINAPI GetComponentVersionCount(BSTR bstrCLSIDOrProgID,__LONG32 *plVersionCount) = 0;
+-  };
++MIDL_INTERFACE("790c6e0b-9194-4cc9-9426-a48a63185696")
++ICOMAdminCatalog2 : public ICOMAdminCatalog
++{
++    virtual HRESULT STDMETHODCALLTYPE GetCollectionByQuery2(
++        BSTR bstrCollectionName,
++        VARIANT *pVarQueryStrings,
++        IDispatch **ppCatalogCollection) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetApplicationInstanceIDFromProcessID(
++        LONG lProcessID,
++        BSTR *pbstrApplicationInstanceID) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ShutdownApplicationInstances(
++        VARIANT *pVarApplicationInstanceID) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE PauseApplicationInstances(
++        VARIANT *pVarApplicationInstanceID) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ResumeApplicationInstances(
++        VARIANT *pVarApplicationInstanceID) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE RecycleApplicationInstances(
++        VARIANT *pVarApplicationInstanceID,
++        LONG lReasonCode) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE AreApplicationInstancesPaused(
++        VARIANT *pVarApplicationInstanceID,
++        VARIANT_BOOL *pVarBoolPaused) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE DumpApplicationInstance(
++        BSTR bstrApplicationInstanceID,
++        BSTR bstrDirectory,
++        LONG lMaxImages,
++        BSTR *pbstrDumpFile) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_IsApplicationInstanceDumpSupported(
++        VARIANT_BOOL *pVarBoolDumpSupported) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE CreateServiceForApplication(
++        BSTR bstrApplicationIDOrName,
++        BSTR bstrServiceName,
++        BSTR bstrStartType,
++        BSTR bstrErrorControl,
++        BSTR bstrDependencies,
++        BSTR bstrRunAs,
++        BSTR bstrPassword,
++        VARIANT_BOOL bDesktopOk) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE DeleteServiceForApplication(
++        BSTR bstrApplicationIDOrName) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetPartitionID(
++        BSTR bstrApplicationIDOrName,
++        BSTR *pbstrPartitionID) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetPartitionName(
++        BSTR bstrApplicationIDOrName,
++        BSTR *pbstrPartitionName) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE put_CurrentPartition(
++        BSTR bstrPartitionIDOrName) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_CurrentPartitionID(
++        BSTR *pbstrPartitionID) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_CurrentPartitionName(
++        BSTR *pbstrPartitionName) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_GlobalPartitionID(
++        BSTR *pbstrGlobalPartitionID) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE FlushPartitionCache(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE CopyApplications(
++        BSTR bstrSourcePartitionIDOrName,
++        VARIANT *pVarApplicationID,
++        BSTR bstrDestinationPartitionIDOrName) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE CopyComponents(
++        BSTR bstrSourceApplicationIDOrName,
++        VARIANT *pVarCLSIDOrProgID,
++        BSTR bstrDestinationApplicationIDOrName) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE MoveComponents(
++        BSTR bstrSourceApplicationIDOrName,
++        VARIANT *pVarCLSIDOrProgID,
++        BSTR bstrDestinationApplicationIDOrName) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE AliasComponent(
++        BSTR bstrSrcApplicationIDOrName,
++        BSTR bstrCLSIDOrProgID,
++        BSTR bstrDestApplicationIDOrName,
++        BSTR bstrNewProgId,
++        BSTR bstrNewClsid) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE IsSafeToDelete(
++        BSTR bstrDllName,
++        COMAdminInUse *pCOMAdminInUse) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ImportUnconfiguredComponents(
++        BSTR bstrApplicationIDOrName,
++        VARIANT *pVarCLSIDOrProgID,
++        VARIANT *pVarComponentType) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE PromoteUnconfiguredComponents(
++        BSTR bstrApplicationIDOrName,
++        VARIANT *pVarCLSIDOrProgID,
++        VARIANT *pVarComponentType) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ImportComponents(
++        BSTR bstrApplicationIDOrName,
++        VARIANT *pVarCLSIDOrProgID,
++        VARIANT *pVarComponentType) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_Is64BitCatalogServer(
++        VARIANT_BOOL *pbIs64Bit) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ExportPartition(
++        BSTR bstrPartitionIDOrName,
++        BSTR bstrPartitionFileName,
++        LONG lOptions) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE InstallPartition(
++        BSTR bstrFileName,
++        BSTR bstrDestDirectory,
++        LONG lOptions,
++        BSTR bstrUserID,
++        BSTR bstrPassword,
++        BSTR bstrRSN) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE QueryApplicationFile2(
++        BSTR bstrApplicationFile,
++        IDispatch **ppFilesForImport) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetComponentVersionCount(
++        BSTR bstrCLSIDOrProgID,
++        LONG *plVersionCount) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(ICOMAdminCatalog2, 0x790c6e0b, 0x9194, 0x4cc9, 0x94,0x26, 0xa4,0x8a,0x63,0x18,0x56,0x96)
++#endif
+ #else
+-  typedef struct ICOMAdminCatalog2Vtbl {
++typedef struct ICOMAdminCatalog2Vtbl {
+     BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(ICOMAdminCatalog2 *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(ICOMAdminCatalog2 *This);
+-      ULONG (WINAPI *Release)(ICOMAdminCatalog2 *This);
+-      HRESULT (WINAPI *GetTypeInfoCount)(ICOMAdminCatalog2 *This,UINT *pctinfo);
+-      HRESULT (WINAPI *GetTypeInfo)(ICOMAdminCatalog2 *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
+-      HRESULT (WINAPI *GetIDsOfNames)(ICOMAdminCatalog2 *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
+-      HRESULT (WINAPI *Invoke)(ICOMAdminCatalog2 *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
+-      HRESULT (WINAPI *GetCollection)(ICOMAdminCatalog2 *This,BSTR bstrCollName,IDispatch **ppCatalogCollection);
+-      HRESULT (WINAPI *Connect)(ICOMAdminCatalog2 *This,BSTR bstrCatalogServerName,IDispatch **ppCatalogCollection);
+-      HRESULT (WINAPI *get_MajorVersion)(ICOMAdminCatalog2 *This,__LONG32 *plMajorVersion);
+-      HRESULT (WINAPI *get_MinorVersion)(ICOMAdminCatalog2 *This,__LONG32 *plMinorVersion);
+-      HRESULT (WINAPI *GetCollectionByQuery)(ICOMAdminCatalog2 *This,BSTR bstrCollName,SAFEARRAY **ppsaVarQuery,IDispatch **ppCatalogCollection);
+-      HRESULT (WINAPI *ImportComponent)(ICOMAdminCatalog2 *This,BSTR bstrApplIDOrName,BSTR bstrCLSIDOrProgID);
+-      HRESULT (WINAPI *InstallComponent)(ICOMAdminCatalog2 *This,BSTR bstrApplIDOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL);
+-      HRESULT (WINAPI *ShutdownApplication)(ICOMAdminCatalog2 *This,BSTR bstrApplIDOrName);
+-      HRESULT (WINAPI *ExportApplication)(ICOMAdminCatalog2 *This,BSTR bstrApplIDOrName,BSTR bstrApplicationFile,__LONG32 lOptions);
+-      HRESULT (WINAPI *InstallApplication)(ICOMAdminCatalog2 *This,BSTR bstrApplicationFile,BSTR bstrDestinationDirectory,__LONG32 lOptions,BSTR bstrUserId,BSTR bstrPassword,BSTR bstrRSN);
+-      HRESULT (WINAPI *StopRouter)(ICOMAdminCatalog2 *This);
+-      HRESULT (WINAPI *RefreshRouter)(ICOMAdminCatalog2 *This);
+-      HRESULT (WINAPI *StartRouter)(ICOMAdminCatalog2 *This);
+-      HRESULT (WINAPI *Reserved1)(ICOMAdminCatalog2 *This);
+-      HRESULT (WINAPI *Reserved2)(ICOMAdminCatalog2 *This);
+-      HRESULT (WINAPI *InstallMultipleComponents)(ICOMAdminCatalog2 *This,BSTR bstrApplIDOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs);
+-      HRESULT (WINAPI *GetMultipleComponentsInfo)(ICOMAdminCatalog2 *This,BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarClassNames,SAFEARRAY **ppsaVarFileFlags,SAFEARRAY **ppsaVarComponentFlags);
+-      HRESULT (WINAPI *RefreshComponents)(ICOMAdminCatalog2 *This);
+-      HRESULT (WINAPI *BackupREGDB)(ICOMAdminCatalog2 *This,BSTR bstrBackupFilePath);
+-      HRESULT (WINAPI *RestoreREGDB)(ICOMAdminCatalog2 *This,BSTR bstrBackupFilePath);
+-      HRESULT (WINAPI *QueryApplicationFile)(ICOMAdminCatalog2 *This,BSTR bstrApplicationFile,BSTR *pbstrApplicationName,BSTR *pbstrApplicationDescription,VARIANT_BOOL *pbHasUsers,VARIANT_BOOL *pbIsProxy,SAFEARRAY **ppsaVarFileNames);
+-      HRESULT (WINAPI *StartApplication)(ICOMAdminCatalog2 *This,BSTR bstrApplIdOrName);
+-      HRESULT (WINAPI *ServiceCheck)(ICOMAdminCatalog2 *This,__LONG32 lService,__LONG32 *plStatus);
+-      HRESULT (WINAPI *InstallMultipleEventClasses)(ICOMAdminCatalog2 *This,BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDS);
+-      HRESULT (WINAPI *InstallEventClass)(ICOMAdminCatalog2 *This,BSTR bstrApplIdOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL);
+-      HRESULT (WINAPI *GetEventClassesForIID)(ICOMAdminCatalog2 *This,BSTR bstrIID,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarProgIDs,SAFEARRAY **ppsaVarDescriptions);
+-      HRESULT (WINAPI *GetCollectionByQuery2)(ICOMAdminCatalog2 *This,BSTR bstrCollectionName,VARIANT *pVarQueryStrings,IDispatch **ppCatalogCollection);
+-      HRESULT (WINAPI *GetApplicationInstanceIDFromProcessID)(ICOMAdminCatalog2 *This,__LONG32 lProcessID,BSTR *pbstrApplicationInstanceID);
+-      HRESULT (WINAPI *ShutdownApplicationInstances)(ICOMAdminCatalog2 *This,VARIANT *pVarApplicationInstanceID);
+-      HRESULT (WINAPI *PauseApplicationInstances)(ICOMAdminCatalog2 *This,VARIANT *pVarApplicationInstanceID);
+-      HRESULT (WINAPI *ResumeApplicationInstances)(ICOMAdminCatalog2 *This,VARIANT *pVarApplicationInstanceID);
+-      HRESULT (WINAPI *RecycleApplicationInstances)(ICOMAdminCatalog2 *This,VARIANT *pVarApplicationInstanceID,__LONG32 lReasonCode);
+-      HRESULT (WINAPI *AreApplicationInstancesPaused)(ICOMAdminCatalog2 *This,VARIANT *pVarApplicationInstanceID,VARIANT_BOOL *pVarBoolPaused);
+-      HRESULT (WINAPI *DumpApplicationInstance)(ICOMAdminCatalog2 *This,BSTR bstrApplicationInstanceID,BSTR bstrDirectory,__LONG32 lMaxImages,BSTR *pbstrDumpFile);
+-      HRESULT (WINAPI *get_IsApplicationInstanceDumpSupported)(ICOMAdminCatalog2 *This,VARIANT_BOOL *pVarBoolDumpSupported);
+-      HRESULT (WINAPI *CreateServiceForApplication)(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,BSTR bstrServiceName,BSTR bstrStartType,BSTR bstrErrorControl,BSTR bstrDependencies,BSTR bstrRunAs,BSTR bstrPassword,VARIANT_BOOL bDesktopOk);
+-      HRESULT (WINAPI *DeleteServiceForApplication)(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName);
+-      HRESULT (WINAPI *GetPartitionID)(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,BSTR *pbstrPartitionID);
+-      HRESULT (WINAPI *GetPartitionName)(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,BSTR *pbstrPartitionName);
+-      HRESULT (WINAPI *put_CurrentPartition)(ICOMAdminCatalog2 *This,BSTR bstrPartitionIDOrName);
+-      HRESULT (WINAPI *get_CurrentPartitionID)(ICOMAdminCatalog2 *This,BSTR *pbstrPartitionID);
+-      HRESULT (WINAPI *get_CurrentPartitionName)(ICOMAdminCatalog2 *This,BSTR *pbstrPartitionName);
+-      HRESULT (WINAPI *get_GlobalPartitionID)(ICOMAdminCatalog2 *This,BSTR *pbstrGlobalPartitionID);
+-      HRESULT (WINAPI *FlushPartitionCache)(ICOMAdminCatalog2 *This);
+-      HRESULT (WINAPI *CopyApplications)(ICOMAdminCatalog2 *This,BSTR bstrSourcePartitionIDOrName,VARIANT *pVarApplicationID,BSTR bstrDestinationPartitionIDOrName);
+-      HRESULT (WINAPI *CopyComponents)(ICOMAdminCatalog2 *This,BSTR bstrSourceApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,BSTR bstrDestinationApplicationIDOrName);
+-      HRESULT (WINAPI *MoveComponents)(ICOMAdminCatalog2 *This,BSTR bstrSourceApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,BSTR bstrDestinationApplicationIDOrName);
+-      HRESULT (WINAPI *AliasComponent)(ICOMAdminCatalog2 *This,BSTR bstrSrcApplicationIDOrName,BSTR bstrCLSIDOrProgID,BSTR bstrDestApplicationIDOrName,BSTR bstrNewProgId,BSTR bstrNewClsid);
+-      HRESULT (WINAPI *IsSafeToDelete)(ICOMAdminCatalog2 *This,BSTR bstrDllName,COMAdminInUse *pCOMAdminInUse);
+-      HRESULT (WINAPI *ImportUnconfiguredComponents)(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType);
+-      HRESULT (WINAPI *PromoteUnconfiguredComponents)(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType);
+-      HRESULT (WINAPI *ImportComponents)(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType);
+-      HRESULT (WINAPI *get_Is64BitCatalogServer)(ICOMAdminCatalog2 *This,VARIANT_BOOL *pbIs64Bit);
+-      HRESULT (WINAPI *ExportPartition)(ICOMAdminCatalog2 *This,BSTR bstrPartitionIDOrName,BSTR bstrPartitionFileName,__LONG32 lOptions);
+-      HRESULT (WINAPI *InstallPartition)(ICOMAdminCatalog2 *This,BSTR bstrFileName,BSTR bstrDestDirectory,__LONG32 lOptions,BSTR bstrUserID,BSTR bstrPassword,BSTR bstrRSN);
+-      HRESULT (WINAPI *QueryApplicationFile2)(ICOMAdminCatalog2 *This,BSTR bstrApplicationFile,IDispatch **ppFilesForImport);
+-      HRESULT (WINAPI *GetComponentVersionCount)(ICOMAdminCatalog2 *This,BSTR bstrCLSIDOrProgID,__LONG32 *plVersionCount);
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        ICOMAdminCatalog2* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        ICOMAdminCatalog2* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        ICOMAdminCatalog2* This);
++
++    /*** IDispatch methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
++        ICOMAdminCatalog2* This,
++        UINT *pctinfo);
++
++    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
++        ICOMAdminCatalog2* This,
++        UINT iTInfo,
++        LCID lcid,
++        ITypeInfo **ppTInfo);
++
++    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
++        ICOMAdminCatalog2* This,
++        REFIID riid,
++        LPOLESTR *rgszNames,
++        UINT cNames,
++        LCID lcid,
++        DISPID *rgDispId);
++
++    HRESULT (STDMETHODCALLTYPE *Invoke)(
++        ICOMAdminCatalog2* This,
++        DISPID dispIdMember,
++        REFIID riid,
++        LCID lcid,
++        WORD wFlags,
++        DISPPARAMS *pDispParams,
++        VARIANT *pVarResult,
++        EXCEPINFO *pExcepInfo,
++        UINT *puArgErr);
++
++    /*** ICOMAdminCatalog methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetCollection)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrCollName,
++        IDispatch **ppCatalogCollection);
++
++    HRESULT (STDMETHODCALLTYPE *Connect)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrCatalogServerName,
++        IDispatch **ppCatalogCollection);
++
++    HRESULT (STDMETHODCALLTYPE *get_MajorVersion)(
++        ICOMAdminCatalog2* This,
++        LONG *plMajorVersion);
++
++    HRESULT (STDMETHODCALLTYPE *get_MinorVersion)(
++        ICOMAdminCatalog2* This,
++        LONG *plMinorVersion);
++
++    HRESULT (STDMETHODCALLTYPE *GetCollectionByQuery)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrCollName,
++        SAFEARRAY **ppsaVarQuery,
++        IDispatch **ppCatalogCollection);
++
++    HRESULT (STDMETHODCALLTYPE *ImportComponent)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplIDOrName,
++        BSTR bstrCLSIDOrProgID);
++
++    HRESULT (STDMETHODCALLTYPE *InstallComponent)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplIDOrName,
++        BSTR bstrDLL,
++        BSTR bstrTLB,
++        BSTR bstrPSDLL);
++
++    HRESULT (STDMETHODCALLTYPE *ShutdownApplication)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplIDOrName);
++
++    HRESULT (STDMETHODCALLTYPE *ExportApplication)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplIDOrName,
++        BSTR bstrApplicationFile,
++        LONG lOptions);
++
++    HRESULT (STDMETHODCALLTYPE *InstallApplication)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationFile,
++        BSTR bstrDestinationDirectory,
++        LONG lOptions,
++        BSTR bstrUserId,
++        BSTR bstrPassword,
++        BSTR bstrRSN);
++
++    HRESULT (STDMETHODCALLTYPE *StopRouter)(
++        ICOMAdminCatalog2* This);
++
++    HRESULT (STDMETHODCALLTYPE *RefreshRouter)(
++        ICOMAdminCatalog2* This);
++
++    HRESULT (STDMETHODCALLTYPE *StartRouter)(
++        ICOMAdminCatalog2* This);
++
++    HRESULT (STDMETHODCALLTYPE *Reserved1)(
++        ICOMAdminCatalog2* This);
++
++    HRESULT (STDMETHODCALLTYPE *Reserved2)(
++        ICOMAdminCatalog2* This);
++
++    HRESULT (STDMETHODCALLTYPE *InstallMultipleComponents)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplIDOrName,
++        SAFEARRAY **ppsaVarFileNames,
++        SAFEARRAY **ppsaVarCLSIDs);
++
++    HRESULT (STDMETHODCALLTYPE *GetMultipleComponentsInfo)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplIdOrName,
++        SAFEARRAY **ppsaVarFileNames,
++        SAFEARRAY **ppsaVarCLSIDs,
++        SAFEARRAY **ppsaVarClassNames,
++        SAFEARRAY **ppsaVarFileFlags,
++        SAFEARRAY **ppsaVarComponentFlags);
++
++    HRESULT (STDMETHODCALLTYPE *RefreshComponents)(
++        ICOMAdminCatalog2* This);
++
++    HRESULT (STDMETHODCALLTYPE *BackupREGDB)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrBackupFilePath);
++
++    HRESULT (STDMETHODCALLTYPE *RestoreREGDB)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrBackupFilePath);
++
++    HRESULT (STDMETHODCALLTYPE *QueryApplicationFile)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationFile,
++        BSTR *pbstrApplicationName,
++        BSTR *pbstrApplicationDescription,
++        VARIANT_BOOL *pbHasUsers,
++        VARIANT_BOOL *pbIsProxy,
++        SAFEARRAY **ppsaVarFileNames);
++
++    HRESULT (STDMETHODCALLTYPE *StartApplication)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplIdOrName);
++
++    HRESULT (STDMETHODCALLTYPE *ServiceCheck)(
++        ICOMAdminCatalog2* This,
++        LONG lService,
++        LONG *plStatus);
++
++    HRESULT (STDMETHODCALLTYPE *InstallMultipleEventClasses)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplIdOrName,
++        SAFEARRAY **ppsaVarFileNames,
++        SAFEARRAY **ppsaVarCLSIDS);
++
++    HRESULT (STDMETHODCALLTYPE *InstallEventClass)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplIdOrName,
++        BSTR bstrDLL,
++        BSTR bstrTLB,
++        BSTR bstrPSDLL);
++
++    HRESULT (STDMETHODCALLTYPE *GetEventClassesForIID)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrIID,
++        SAFEARRAY **ppsaVarCLSIDs,
++        SAFEARRAY **ppsaVarProgIDs,
++        SAFEARRAY **ppsaVarDescriptions);
++
++    /*** ICOMAdminCatalog2 methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetCollectionByQuery2)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrCollectionName,
++        VARIANT *pVarQueryStrings,
++        IDispatch **ppCatalogCollection);
++
++    HRESULT (STDMETHODCALLTYPE *GetApplicationInstanceIDFromProcessID)(
++        ICOMAdminCatalog2* This,
++        LONG lProcessID,
++        BSTR *pbstrApplicationInstanceID);
++
++    HRESULT (STDMETHODCALLTYPE *ShutdownApplicationInstances)(
++        ICOMAdminCatalog2* This,
++        VARIANT *pVarApplicationInstanceID);
++
++    HRESULT (STDMETHODCALLTYPE *PauseApplicationInstances)(
++        ICOMAdminCatalog2* This,
++        VARIANT *pVarApplicationInstanceID);
++
++    HRESULT (STDMETHODCALLTYPE *ResumeApplicationInstances)(
++        ICOMAdminCatalog2* This,
++        VARIANT *pVarApplicationInstanceID);
++
++    HRESULT (STDMETHODCALLTYPE *RecycleApplicationInstances)(
++        ICOMAdminCatalog2* This,
++        VARIANT *pVarApplicationInstanceID,
++        LONG lReasonCode);
++
++    HRESULT (STDMETHODCALLTYPE *AreApplicationInstancesPaused)(
++        ICOMAdminCatalog2* This,
++        VARIANT *pVarApplicationInstanceID,
++        VARIANT_BOOL *pVarBoolPaused);
++
++    HRESULT (STDMETHODCALLTYPE *DumpApplicationInstance)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationInstanceID,
++        BSTR bstrDirectory,
++        LONG lMaxImages,
++        BSTR *pbstrDumpFile);
++
++    HRESULT (STDMETHODCALLTYPE *get_IsApplicationInstanceDumpSupported)(
++        ICOMAdminCatalog2* This,
++        VARIANT_BOOL *pVarBoolDumpSupported);
++
++    HRESULT (STDMETHODCALLTYPE *CreateServiceForApplication)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationIDOrName,
++        BSTR bstrServiceName,
++        BSTR bstrStartType,
++        BSTR bstrErrorControl,
++        BSTR bstrDependencies,
++        BSTR bstrRunAs,
++        BSTR bstrPassword,
++        VARIANT_BOOL bDesktopOk);
++
++    HRESULT (STDMETHODCALLTYPE *DeleteServiceForApplication)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationIDOrName);
++
++    HRESULT (STDMETHODCALLTYPE *GetPartitionID)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationIDOrName,
++        BSTR *pbstrPartitionID);
++
++    HRESULT (STDMETHODCALLTYPE *GetPartitionName)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationIDOrName,
++        BSTR *pbstrPartitionName);
++
++    HRESULT (STDMETHODCALLTYPE *put_CurrentPartition)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrPartitionIDOrName);
++
++    HRESULT (STDMETHODCALLTYPE *get_CurrentPartitionID)(
++        ICOMAdminCatalog2* This,
++        BSTR *pbstrPartitionID);
++
++    HRESULT (STDMETHODCALLTYPE *get_CurrentPartitionName)(
++        ICOMAdminCatalog2* This,
++        BSTR *pbstrPartitionName);
++
++    HRESULT (STDMETHODCALLTYPE *get_GlobalPartitionID)(
++        ICOMAdminCatalog2* This,
++        BSTR *pbstrGlobalPartitionID);
++
++    HRESULT (STDMETHODCALLTYPE *FlushPartitionCache)(
++        ICOMAdminCatalog2* This);
++
++    HRESULT (STDMETHODCALLTYPE *CopyApplications)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrSourcePartitionIDOrName,
++        VARIANT *pVarApplicationID,
++        BSTR bstrDestinationPartitionIDOrName);
++
++    HRESULT (STDMETHODCALLTYPE *CopyComponents)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrSourceApplicationIDOrName,
++        VARIANT *pVarCLSIDOrProgID,
++        BSTR bstrDestinationApplicationIDOrName);
++
++    HRESULT (STDMETHODCALLTYPE *MoveComponents)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrSourceApplicationIDOrName,
++        VARIANT *pVarCLSIDOrProgID,
++        BSTR bstrDestinationApplicationIDOrName);
++
++    HRESULT (STDMETHODCALLTYPE *AliasComponent)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrSrcApplicationIDOrName,
++        BSTR bstrCLSIDOrProgID,
++        BSTR bstrDestApplicationIDOrName,
++        BSTR bstrNewProgId,
++        BSTR bstrNewClsid);
++
++    HRESULT (STDMETHODCALLTYPE *IsSafeToDelete)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrDllName,
++        COMAdminInUse *pCOMAdminInUse);
++
++    HRESULT (STDMETHODCALLTYPE *ImportUnconfiguredComponents)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationIDOrName,
++        VARIANT *pVarCLSIDOrProgID,
++        VARIANT *pVarComponentType);
++
++    HRESULT (STDMETHODCALLTYPE *PromoteUnconfiguredComponents)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationIDOrName,
++        VARIANT *pVarCLSIDOrProgID,
++        VARIANT *pVarComponentType);
++
++    HRESULT (STDMETHODCALLTYPE *ImportComponents)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationIDOrName,
++        VARIANT *pVarCLSIDOrProgID,
++        VARIANT *pVarComponentType);
++
++    HRESULT (STDMETHODCALLTYPE *get_Is64BitCatalogServer)(
++        ICOMAdminCatalog2* This,
++        VARIANT_BOOL *pbIs64Bit);
++
++    HRESULT (STDMETHODCALLTYPE *ExportPartition)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrPartitionIDOrName,
++        BSTR bstrPartitionFileName,
++        LONG lOptions);
++
++    HRESULT (STDMETHODCALLTYPE *InstallPartition)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrFileName,
++        BSTR bstrDestDirectory,
++        LONG lOptions,
++        BSTR bstrUserID,
++        BSTR bstrPassword,
++        BSTR bstrRSN);
++
++    HRESULT (STDMETHODCALLTYPE *QueryApplicationFile2)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrApplicationFile,
++        IDispatch **ppFilesForImport);
++
++    HRESULT (STDMETHODCALLTYPE *GetComponentVersionCount)(
++        ICOMAdminCatalog2* This,
++        BSTR bstrCLSIDOrProgID,
++        LONG *plVersionCount);
++
+     END_INTERFACE
+-  } ICOMAdminCatalog2Vtbl;
+-  struct ICOMAdminCatalog2 {
+-    CONST_VTBL struct ICOMAdminCatalog2Vtbl *lpVtbl;
+-  };
++} ICOMAdminCatalog2Vtbl;
++interface ICOMAdminCatalog2 {
++    CONST_VTBL ICOMAdminCatalog2Vtbl* lpVtbl;
++};
++
+ #ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
+ #define ICOMAdminCatalog2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+ #define ICOMAdminCatalog2_AddRef(This) (This)->lpVtbl->AddRef(This)
+ #define ICOMAdminCatalog2_Release(This) (This)->lpVtbl->Release(This)
++/*** IDispatch methods ***/
+ #define ICOMAdminCatalog2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+ #define ICOMAdminCatalog2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+ #define ICOMAdminCatalog2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+ #define ICOMAdminCatalog2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
++/*** ICOMAdminCatalog methods ***/
+ #define ICOMAdminCatalog2_GetCollection(This,bstrCollName,ppCatalogCollection) (This)->lpVtbl->GetCollection(This,bstrCollName,ppCatalogCollection)
+ #define ICOMAdminCatalog2_Connect(This,bstrCatalogServerName,ppCatalogCollection) (This)->lpVtbl->Connect(This,bstrCatalogServerName,ppCatalogCollection)
+ #define ICOMAdminCatalog2_get_MajorVersion(This,plMajorVersion) (This)->lpVtbl->get_MajorVersion(This,plMajorVersion)
+@@ -403,6 +1582,7 @@ extern "C"{
+ #define ICOMAdminCatalog2_InstallMultipleEventClasses(This,bstrApplIdOrName,ppsaVarFileNames,ppsaVarCLSIDS) (This)->lpVtbl->InstallMultipleEventClasses(This,bstrApplIdOrName,ppsaVarFileNames,ppsaVarCLSIDS)
+ #define ICOMAdminCatalog2_InstallEventClass(This,bstrApplIdOrName,bstrDLL,bstrTLB,bstrPSDLL) (This)->lpVtbl->InstallEventClass(This,bstrApplIdOrName,bstrDLL,bstrTLB,bstrPSDLL)
+ #define ICOMAdminCatalog2_GetEventClassesForIID(This,bstrIID,ppsaVarCLSIDs,ppsaVarProgIDs,ppsaVarDescriptions) (This)->lpVtbl->GetEventClassesForIID(This,bstrIID,ppsaVarCLSIDs,ppsaVarProgIDs,ppsaVarDescriptions)
++/*** ICOMAdminCatalog2 methods ***/
+ #define ICOMAdminCatalog2_GetCollectionByQuery2(This,bstrCollectionName,pVarQueryStrings,ppCatalogCollection) (This)->lpVtbl->GetCollectionByQuery2(This,bstrCollectionName,pVarQueryStrings,ppCatalogCollection)
+ #define ICOMAdminCatalog2_GetApplicationInstanceIDFromProcessID(This,lProcessID,pbstrApplicationInstanceID) (This)->lpVtbl->GetApplicationInstanceIDFromProcessID(This,lProcessID,pbstrApplicationInstanceID)
+ #define ICOMAdminCatalog2_ShutdownApplicationInstances(This,pVarApplicationInstanceID) (This)->lpVtbl->ShutdownApplicationInstances(This,pVarApplicationInstanceID)
+@@ -434,116 +1614,638 @@ extern "C"{
+ #define ICOMAdminCatalog2_InstallPartition(This,bstrFileName,bstrDestDirectory,lOptions,bstrUserID,bstrPassword,bstrRSN) (This)->lpVtbl->InstallPartition(This,bstrFileName,bstrDestDirectory,lOptions,bstrUserID,bstrPassword,bstrRSN)
+ #define ICOMAdminCatalog2_QueryApplicationFile2(This,bstrApplicationFile,ppFilesForImport) (This)->lpVtbl->QueryApplicationFile2(This,bstrApplicationFile,ppFilesForImport)
+ #define ICOMAdminCatalog2_GetComponentVersionCount(This,bstrCLSIDOrProgID,plVersionCount) (This)->lpVtbl->GetComponentVersionCount(This,bstrCLSIDOrProgID,plVersionCount)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT ICOMAdminCatalog2_QueryInterface(ICOMAdminCatalog2* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG ICOMAdminCatalog2_AddRef(ICOMAdminCatalog2* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG ICOMAdminCatalog2_Release(ICOMAdminCatalog2* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IDispatch methods ***/
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetTypeInfoCount(ICOMAdminCatalog2* This,UINT *pctinfo) {
++    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetTypeInfo(ICOMAdminCatalog2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
++    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetIDsOfNames(ICOMAdminCatalog2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
++    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_Invoke(ICOMAdminCatalog2* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
++    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
++}
++/*** ICOMAdminCatalog methods ***/
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetCollection(ICOMAdminCatalog2* This,BSTR bstrCollName,IDispatch **ppCatalogCollection) {
++    return This->lpVtbl->GetCollection(This,bstrCollName,ppCatalogCollection);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_Connect(ICOMAdminCatalog2* This,BSTR bstrCatalogServerName,IDispatch **ppCatalogCollection) {
++    return This->lpVtbl->Connect(This,bstrCatalogServerName,ppCatalogCollection);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_get_MajorVersion(ICOMAdminCatalog2* This,LONG *plMajorVersion) {
++    return This->lpVtbl->get_MajorVersion(This,plMajorVersion);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_get_MinorVersion(ICOMAdminCatalog2* This,LONG *plMinorVersion) {
++    return This->lpVtbl->get_MinorVersion(This,plMinorVersion);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetCollectionByQuery(ICOMAdminCatalog2* This,BSTR bstrCollName,SAFEARRAY **ppsaVarQuery,IDispatch **ppCatalogCollection) {
++    return This->lpVtbl->GetCollectionByQuery(This,bstrCollName,ppsaVarQuery,ppCatalogCollection);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_ImportComponent(ICOMAdminCatalog2* This,BSTR bstrApplIDOrName,BSTR bstrCLSIDOrProgID) {
++    return This->lpVtbl->ImportComponent(This,bstrApplIDOrName,bstrCLSIDOrProgID);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_InstallComponent(ICOMAdminCatalog2* This,BSTR bstrApplIDOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL) {
++    return This->lpVtbl->InstallComponent(This,bstrApplIDOrName,bstrDLL,bstrTLB,bstrPSDLL);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_ShutdownApplication(ICOMAdminCatalog2* This,BSTR bstrApplIDOrName) {
++    return This->lpVtbl->ShutdownApplication(This,bstrApplIDOrName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_ExportApplication(ICOMAdminCatalog2* This,BSTR bstrApplIDOrName,BSTR bstrApplicationFile,LONG lOptions) {
++    return This->lpVtbl->ExportApplication(This,bstrApplIDOrName,bstrApplicationFile,lOptions);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_InstallApplication(ICOMAdminCatalog2* This,BSTR bstrApplicationFile,BSTR bstrDestinationDirectory,LONG lOptions,BSTR bstrUserId,BSTR bstrPassword,BSTR bstrRSN) {
++    return This->lpVtbl->InstallApplication(This,bstrApplicationFile,bstrDestinationDirectory,lOptions,bstrUserId,bstrPassword,bstrRSN);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_StopRouter(ICOMAdminCatalog2* This) {
++    return This->lpVtbl->StopRouter(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_RefreshRouter(ICOMAdminCatalog2* This) {
++    return This->lpVtbl->RefreshRouter(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_StartRouter(ICOMAdminCatalog2* This) {
++    return This->lpVtbl->StartRouter(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_Reserved1(ICOMAdminCatalog2* This) {
++    return This->lpVtbl->Reserved1(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_Reserved2(ICOMAdminCatalog2* This) {
++    return This->lpVtbl->Reserved2(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_InstallMultipleComponents(ICOMAdminCatalog2* This,BSTR bstrApplIDOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs) {
++    return This->lpVtbl->InstallMultipleComponents(This,bstrApplIDOrName,ppsaVarFileNames,ppsaVarCLSIDs);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetMultipleComponentsInfo(ICOMAdminCatalog2* This,BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarClassNames,SAFEARRAY **ppsaVarFileFlags,SAFEARRAY **ppsaVarComponentFlags) {
++    return This->lpVtbl->GetMultipleComponentsInfo(This,bstrApplIdOrName,ppsaVarFileNames,ppsaVarCLSIDs,ppsaVarClassNames,ppsaVarFileFlags,ppsaVarComponentFlags);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_RefreshComponents(ICOMAdminCatalog2* This) {
++    return This->lpVtbl->RefreshComponents(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_BackupREGDB(ICOMAdminCatalog2* This,BSTR bstrBackupFilePath) {
++    return This->lpVtbl->BackupREGDB(This,bstrBackupFilePath);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_RestoreREGDB(ICOMAdminCatalog2* This,BSTR bstrBackupFilePath) {
++    return This->lpVtbl->RestoreREGDB(This,bstrBackupFilePath);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_QueryApplicationFile(ICOMAdminCatalog2* This,BSTR bstrApplicationFile,BSTR *pbstrApplicationName,BSTR *pbstrApplicationDescription,VARIANT_BOOL *pbHasUsers,VARIANT_BOOL *pbIsProxy,SAFEARRAY **ppsaVarFileNames) {
++    return This->lpVtbl->QueryApplicationFile(This,bstrApplicationFile,pbstrApplicationName,pbstrApplicationDescription,pbHasUsers,pbIsProxy,ppsaVarFileNames);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_StartApplication(ICOMAdminCatalog2* This,BSTR bstrApplIdOrName) {
++    return This->lpVtbl->StartApplication(This,bstrApplIdOrName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_ServiceCheck(ICOMAdminCatalog2* This,LONG lService,LONG *plStatus) {
++    return This->lpVtbl->ServiceCheck(This,lService,plStatus);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_InstallMultipleEventClasses(ICOMAdminCatalog2* This,BSTR bstrApplIdOrName,SAFEARRAY **ppsaVarFileNames,SAFEARRAY **ppsaVarCLSIDS) {
++    return This->lpVtbl->InstallMultipleEventClasses(This,bstrApplIdOrName,ppsaVarFileNames,ppsaVarCLSIDS);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_InstallEventClass(ICOMAdminCatalog2* This,BSTR bstrApplIdOrName,BSTR bstrDLL,BSTR bstrTLB,BSTR bstrPSDLL) {
++    return This->lpVtbl->InstallEventClass(This,bstrApplIdOrName,bstrDLL,bstrTLB,bstrPSDLL);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetEventClassesForIID(ICOMAdminCatalog2* This,BSTR bstrIID,SAFEARRAY **ppsaVarCLSIDs,SAFEARRAY **ppsaVarProgIDs,SAFEARRAY **ppsaVarDescriptions) {
++    return This->lpVtbl->GetEventClassesForIID(This,bstrIID,ppsaVarCLSIDs,ppsaVarProgIDs,ppsaVarDescriptions);
++}
++/*** ICOMAdminCatalog2 methods ***/
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetCollectionByQuery2(ICOMAdminCatalog2* This,BSTR bstrCollectionName,VARIANT *pVarQueryStrings,IDispatch **ppCatalogCollection) {
++    return This->lpVtbl->GetCollectionByQuery2(This,bstrCollectionName,pVarQueryStrings,ppCatalogCollection);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetApplicationInstanceIDFromProcessID(ICOMAdminCatalog2* This,LONG lProcessID,BSTR *pbstrApplicationInstanceID) {
++    return This->lpVtbl->GetApplicationInstanceIDFromProcessID(This,lProcessID,pbstrApplicationInstanceID);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_ShutdownApplicationInstances(ICOMAdminCatalog2* This,VARIANT *pVarApplicationInstanceID) {
++    return This->lpVtbl->ShutdownApplicationInstances(This,pVarApplicationInstanceID);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_PauseApplicationInstances(ICOMAdminCatalog2* This,VARIANT *pVarApplicationInstanceID) {
++    return This->lpVtbl->PauseApplicationInstances(This,pVarApplicationInstanceID);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_ResumeApplicationInstances(ICOMAdminCatalog2* This,VARIANT *pVarApplicationInstanceID) {
++    return This->lpVtbl->ResumeApplicationInstances(This,pVarApplicationInstanceID);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_RecycleApplicationInstances(ICOMAdminCatalog2* This,VARIANT *pVarApplicationInstanceID,LONG lReasonCode) {
++    return This->lpVtbl->RecycleApplicationInstances(This,pVarApplicationInstanceID,lReasonCode);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_AreApplicationInstancesPaused(ICOMAdminCatalog2* This,VARIANT *pVarApplicationInstanceID,VARIANT_BOOL *pVarBoolPaused) {
++    return This->lpVtbl->AreApplicationInstancesPaused(This,pVarApplicationInstanceID,pVarBoolPaused);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_DumpApplicationInstance(ICOMAdminCatalog2* This,BSTR bstrApplicationInstanceID,BSTR bstrDirectory,LONG lMaxImages,BSTR *pbstrDumpFile) {
++    return This->lpVtbl->DumpApplicationInstance(This,bstrApplicationInstanceID,bstrDirectory,lMaxImages,pbstrDumpFile);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_get_IsApplicationInstanceDumpSupported(ICOMAdminCatalog2* This,VARIANT_BOOL *pVarBoolDumpSupported) {
++    return This->lpVtbl->get_IsApplicationInstanceDumpSupported(This,pVarBoolDumpSupported);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_CreateServiceForApplication(ICOMAdminCatalog2* This,BSTR bstrApplicationIDOrName,BSTR bstrServiceName,BSTR bstrStartType,BSTR bstrErrorControl,BSTR bstrDependencies,BSTR bstrRunAs,BSTR bstrPassword,VARIANT_BOOL bDesktopOk) {
++    return This->lpVtbl->CreateServiceForApplication(This,bstrApplicationIDOrName,bstrServiceName,bstrStartType,bstrErrorControl,bstrDependencies,bstrRunAs,bstrPassword,bDesktopOk);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_DeleteServiceForApplication(ICOMAdminCatalog2* This,BSTR bstrApplicationIDOrName) {
++    return This->lpVtbl->DeleteServiceForApplication(This,bstrApplicationIDOrName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetPartitionID(ICOMAdminCatalog2* This,BSTR bstrApplicationIDOrName,BSTR *pbstrPartitionID) {
++    return This->lpVtbl->GetPartitionID(This,bstrApplicationIDOrName,pbstrPartitionID);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetPartitionName(ICOMAdminCatalog2* This,BSTR bstrApplicationIDOrName,BSTR *pbstrPartitionName) {
++    return This->lpVtbl->GetPartitionName(This,bstrApplicationIDOrName,pbstrPartitionName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_put_CurrentPartition(ICOMAdminCatalog2* This,BSTR bstrPartitionIDOrName) {
++    return This->lpVtbl->put_CurrentPartition(This,bstrPartitionIDOrName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_get_CurrentPartitionID(ICOMAdminCatalog2* This,BSTR *pbstrPartitionID) {
++    return This->lpVtbl->get_CurrentPartitionID(This,pbstrPartitionID);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_get_CurrentPartitionName(ICOMAdminCatalog2* This,BSTR *pbstrPartitionName) {
++    return This->lpVtbl->get_CurrentPartitionName(This,pbstrPartitionName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_get_GlobalPartitionID(ICOMAdminCatalog2* This,BSTR *pbstrGlobalPartitionID) {
++    return This->lpVtbl->get_GlobalPartitionID(This,pbstrGlobalPartitionID);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_FlushPartitionCache(ICOMAdminCatalog2* This) {
++    return This->lpVtbl->FlushPartitionCache(This);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_CopyApplications(ICOMAdminCatalog2* This,BSTR bstrSourcePartitionIDOrName,VARIANT *pVarApplicationID,BSTR bstrDestinationPartitionIDOrName) {
++    return This->lpVtbl->CopyApplications(This,bstrSourcePartitionIDOrName,pVarApplicationID,bstrDestinationPartitionIDOrName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_CopyComponents(ICOMAdminCatalog2* This,BSTR bstrSourceApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,BSTR bstrDestinationApplicationIDOrName) {
++    return This->lpVtbl->CopyComponents(This,bstrSourceApplicationIDOrName,pVarCLSIDOrProgID,bstrDestinationApplicationIDOrName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_MoveComponents(ICOMAdminCatalog2* This,BSTR bstrSourceApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,BSTR bstrDestinationApplicationIDOrName) {
++    return This->lpVtbl->MoveComponents(This,bstrSourceApplicationIDOrName,pVarCLSIDOrProgID,bstrDestinationApplicationIDOrName);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_AliasComponent(ICOMAdminCatalog2* This,BSTR bstrSrcApplicationIDOrName,BSTR bstrCLSIDOrProgID,BSTR bstrDestApplicationIDOrName,BSTR bstrNewProgId,BSTR bstrNewClsid) {
++    return This->lpVtbl->AliasComponent(This,bstrSrcApplicationIDOrName,bstrCLSIDOrProgID,bstrDestApplicationIDOrName,bstrNewProgId,bstrNewClsid);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_IsSafeToDelete(ICOMAdminCatalog2* This,BSTR bstrDllName,COMAdminInUse *pCOMAdminInUse) {
++    return This->lpVtbl->IsSafeToDelete(This,bstrDllName,pCOMAdminInUse);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_ImportUnconfiguredComponents(ICOMAdminCatalog2* This,BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType) {
++    return This->lpVtbl->ImportUnconfiguredComponents(This,bstrApplicationIDOrName,pVarCLSIDOrProgID,pVarComponentType);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_PromoteUnconfiguredComponents(ICOMAdminCatalog2* This,BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType) {
++    return This->lpVtbl->PromoteUnconfiguredComponents(This,bstrApplicationIDOrName,pVarCLSIDOrProgID,pVarComponentType);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_ImportComponents(ICOMAdminCatalog2* This,BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType) {
++    return This->lpVtbl->ImportComponents(This,bstrApplicationIDOrName,pVarCLSIDOrProgID,pVarComponentType);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_get_Is64BitCatalogServer(ICOMAdminCatalog2* This,VARIANT_BOOL *pbIs64Bit) {
++    return This->lpVtbl->get_Is64BitCatalogServer(This,pbIs64Bit);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_ExportPartition(ICOMAdminCatalog2* This,BSTR bstrPartitionIDOrName,BSTR bstrPartitionFileName,LONG lOptions) {
++    return This->lpVtbl->ExportPartition(This,bstrPartitionIDOrName,bstrPartitionFileName,lOptions);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_InstallPartition(ICOMAdminCatalog2* This,BSTR bstrFileName,BSTR bstrDestDirectory,LONG lOptions,BSTR bstrUserID,BSTR bstrPassword,BSTR bstrRSN) {
++    return This->lpVtbl->InstallPartition(This,bstrFileName,bstrDestDirectory,lOptions,bstrUserID,bstrPassword,bstrRSN);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_QueryApplicationFile2(ICOMAdminCatalog2* This,BSTR bstrApplicationFile,IDispatch **ppFilesForImport) {
++    return This->lpVtbl->QueryApplicationFile2(This,bstrApplicationFile,ppFilesForImport);
++}
++static FORCEINLINE HRESULT ICOMAdminCatalog2_GetComponentVersionCount(ICOMAdminCatalog2* This,BSTR bstrCLSIDOrProgID,LONG *plVersionCount) {
++    return This->lpVtbl->GetComponentVersionCount(This,bstrCLSIDOrProgID,plVersionCount);
++}
+ #endif
+ #endif
+-  HRESULT WINAPI ICOMAdminCatalog2_GetCollectionByQuery2_Proxy(ICOMAdminCatalog2 *This,BSTR bstrCollectionName,VARIANT *pVarQueryStrings,IDispatch **ppCatalogCollection);
+-  void __RPC_STUB ICOMAdminCatalog2_GetCollectionByQuery2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_GetApplicationInstanceIDFromProcessID_Proxy(ICOMAdminCatalog2 *This,__LONG32 lProcessID,BSTR *pbstrApplicationInstanceID);
+-  void __RPC_STUB ICOMAdminCatalog2_GetApplicationInstanceIDFromProcessID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_ShutdownApplicationInstances_Proxy(ICOMAdminCatalog2 *This,VARIANT *pVarApplicationInstanceID);
+-  void __RPC_STUB ICOMAdminCatalog2_ShutdownApplicationInstances_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_PauseApplicationInstances_Proxy(ICOMAdminCatalog2 *This,VARIANT *pVarApplicationInstanceID);
+-  void __RPC_STUB ICOMAdminCatalog2_PauseApplicationInstances_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_ResumeApplicationInstances_Proxy(ICOMAdminCatalog2 *This,VARIANT *pVarApplicationInstanceID);
+-  void __RPC_STUB ICOMAdminCatalog2_ResumeApplicationInstances_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_RecycleApplicationInstances_Proxy(ICOMAdminCatalog2 *This,VARIANT *pVarApplicationInstanceID,__LONG32 lReasonCode);
+-  void __RPC_STUB ICOMAdminCatalog2_RecycleApplicationInstances_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_AreApplicationInstancesPaused_Proxy(ICOMAdminCatalog2 *This,VARIANT *pVarApplicationInstanceID,VARIANT_BOOL *pVarBoolPaused);
+-  void __RPC_STUB ICOMAdminCatalog2_AreApplicationInstancesPaused_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_DumpApplicationInstance_Proxy(ICOMAdminCatalog2 *This,BSTR bstrApplicationInstanceID,BSTR bstrDirectory,__LONG32 lMaxImages,BSTR *pbstrDumpFile);
+-  void __RPC_STUB ICOMAdminCatalog2_DumpApplicationInstance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_get_IsApplicationInstanceDumpSupported_Proxy(ICOMAdminCatalog2 *This,VARIANT_BOOL *pVarBoolDumpSupported);
+-  void __RPC_STUB ICOMAdminCatalog2_get_IsApplicationInstanceDumpSupported_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_CreateServiceForApplication_Proxy(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,BSTR bstrServiceName,BSTR bstrStartType,BSTR bstrErrorControl,BSTR bstrDependencies,BSTR bstrRunAs,BSTR bstrPassword,VARIANT_BOOL bDesktopOk);
+-  void __RPC_STUB ICOMAdminCatalog2_CreateServiceForApplication_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_DeleteServiceForApplication_Proxy(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName);
+-  void __RPC_STUB ICOMAdminCatalog2_DeleteServiceForApplication_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_GetPartitionID_Proxy(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,BSTR *pbstrPartitionID);
+-  void __RPC_STUB ICOMAdminCatalog2_GetPartitionID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_GetPartitionName_Proxy(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,BSTR *pbstrPartitionName);
+-  void __RPC_STUB ICOMAdminCatalog2_GetPartitionName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_put_CurrentPartition_Proxy(ICOMAdminCatalog2 *This,BSTR bstrPartitionIDOrName);
+-  void __RPC_STUB ICOMAdminCatalog2_put_CurrentPartition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_get_CurrentPartitionID_Proxy(ICOMAdminCatalog2 *This,BSTR *pbstrPartitionID);
+-  void __RPC_STUB ICOMAdminCatalog2_get_CurrentPartitionID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_get_CurrentPartitionName_Proxy(ICOMAdminCatalog2 *This,BSTR *pbstrPartitionName);
+-  void __RPC_STUB ICOMAdminCatalog2_get_CurrentPartitionName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_get_GlobalPartitionID_Proxy(ICOMAdminCatalog2 *This,BSTR *pbstrGlobalPartitionID);
+-  void __RPC_STUB ICOMAdminCatalog2_get_GlobalPartitionID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_FlushPartitionCache_Proxy(ICOMAdminCatalog2 *This);
+-  void __RPC_STUB ICOMAdminCatalog2_FlushPartitionCache_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_CopyApplications_Proxy(ICOMAdminCatalog2 *This,BSTR bstrSourcePartitionIDOrName,VARIANT *pVarApplicationID,BSTR bstrDestinationPartitionIDOrName);
+-  void __RPC_STUB ICOMAdminCatalog2_CopyApplications_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_CopyComponents_Proxy(ICOMAdminCatalog2 *This,BSTR bstrSourceApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,BSTR bstrDestinationApplicationIDOrName);
+-  void __RPC_STUB ICOMAdminCatalog2_CopyComponents_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_MoveComponents_Proxy(ICOMAdminCatalog2 *This,BSTR bstrSourceApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,BSTR bstrDestinationApplicationIDOrName);
+-  void __RPC_STUB ICOMAdminCatalog2_MoveComponents_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_AliasComponent_Proxy(ICOMAdminCatalog2 *This,BSTR bstrSrcApplicationIDOrName,BSTR bstrCLSIDOrProgID,BSTR bstrDestApplicationIDOrName,BSTR bstrNewProgId,BSTR bstrNewClsid);
+-  void __RPC_STUB ICOMAdminCatalog2_AliasComponent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_IsSafeToDelete_Proxy(ICOMAdminCatalog2 *This,BSTR bstrDllName,COMAdminInUse *pCOMAdminInUse);
+-  void __RPC_STUB ICOMAdminCatalog2_IsSafeToDelete_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_ImportUnconfiguredComponents_Proxy(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType);
+-  void __RPC_STUB ICOMAdminCatalog2_ImportUnconfiguredComponents_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_PromoteUnconfiguredComponents_Proxy(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType);
+-  void __RPC_STUB ICOMAdminCatalog2_PromoteUnconfiguredComponents_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_ImportComponents_Proxy(ICOMAdminCatalog2 *This,BSTR bstrApplicationIDOrName,VARIANT *pVarCLSIDOrProgID,VARIANT *pVarComponentType);
+-  void __RPC_STUB ICOMAdminCatalog2_ImportComponents_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_get_Is64BitCatalogServer_Proxy(ICOMAdminCatalog2 *This,VARIANT_BOOL *pbIs64Bit);
+-  void __RPC_STUB ICOMAdminCatalog2_get_Is64BitCatalogServer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_ExportPartition_Proxy(ICOMAdminCatalog2 *This,BSTR bstrPartitionIDOrName,BSTR bstrPartitionFileName,__LONG32 lOptions);
+-  void __RPC_STUB ICOMAdminCatalog2_ExportPartition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_InstallPartition_Proxy(ICOMAdminCatalog2 *This,BSTR bstrFileName,BSTR bstrDestDirectory,__LONG32 lOptions,BSTR bstrUserID,BSTR bstrPassword,BSTR bstrRSN);
+-  void __RPC_STUB ICOMAdminCatalog2_InstallPartition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_QueryApplicationFile2_Proxy(ICOMAdminCatalog2 *This,BSTR bstrApplicationFile,IDispatch **ppFilesForImport);
+-  void __RPC_STUB ICOMAdminCatalog2_QueryApplicationFile2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICOMAdminCatalog2_GetComponentVersionCount_Proxy(ICOMAdminCatalog2 *This,BSTR bstrCLSIDOrProgID,__LONG32 *plVersionCount);
+-  void __RPC_STUB ICOMAdminCatalog2_GetComponentVersionCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
++
+ #endif
+ 
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_GetCollectionByQuery2_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrCollectionName,
++    VARIANT *pVarQueryStrings,
++    IDispatch **ppCatalogCollection);
++void __RPC_STUB ICOMAdminCatalog2_GetCollectionByQuery2_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_GetApplicationInstanceIDFromProcessID_Proxy(
++    ICOMAdminCatalog2* This,
++    LONG lProcessID,
++    BSTR *pbstrApplicationInstanceID);
++void __RPC_STUB ICOMAdminCatalog2_GetApplicationInstanceIDFromProcessID_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_ShutdownApplicationInstances_Proxy(
++    ICOMAdminCatalog2* This,
++    VARIANT *pVarApplicationInstanceID);
++void __RPC_STUB ICOMAdminCatalog2_ShutdownApplicationInstances_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_PauseApplicationInstances_Proxy(
++    ICOMAdminCatalog2* This,
++    VARIANT *pVarApplicationInstanceID);
++void __RPC_STUB ICOMAdminCatalog2_PauseApplicationInstances_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_ResumeApplicationInstances_Proxy(
++    ICOMAdminCatalog2* This,
++    VARIANT *pVarApplicationInstanceID);
++void __RPC_STUB ICOMAdminCatalog2_ResumeApplicationInstances_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_RecycleApplicationInstances_Proxy(
++    ICOMAdminCatalog2* This,
++    VARIANT *pVarApplicationInstanceID,
++    LONG lReasonCode);
++void __RPC_STUB ICOMAdminCatalog2_RecycleApplicationInstances_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_AreApplicationInstancesPaused_Proxy(
++    ICOMAdminCatalog2* This,
++    VARIANT *pVarApplicationInstanceID,
++    VARIANT_BOOL *pVarBoolPaused);
++void __RPC_STUB ICOMAdminCatalog2_AreApplicationInstancesPaused_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_DumpApplicationInstance_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrApplicationInstanceID,
++    BSTR bstrDirectory,
++    LONG lMaxImages,
++    BSTR *pbstrDumpFile);
++void __RPC_STUB ICOMAdminCatalog2_DumpApplicationInstance_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_get_IsApplicationInstanceDumpSupported_Proxy(
++    ICOMAdminCatalog2* This,
++    VARIANT_BOOL *pVarBoolDumpSupported);
++void __RPC_STUB ICOMAdminCatalog2_get_IsApplicationInstanceDumpSupported_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_CreateServiceForApplication_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrApplicationIDOrName,
++    BSTR bstrServiceName,
++    BSTR bstrStartType,
++    BSTR bstrErrorControl,
++    BSTR bstrDependencies,
++    BSTR bstrRunAs,
++    BSTR bstrPassword,
++    VARIANT_BOOL bDesktopOk);
++void __RPC_STUB ICOMAdminCatalog2_CreateServiceForApplication_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_DeleteServiceForApplication_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrApplicationIDOrName);
++void __RPC_STUB ICOMAdminCatalog2_DeleteServiceForApplication_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_GetPartitionID_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrApplicationIDOrName,
++    BSTR *pbstrPartitionID);
++void __RPC_STUB ICOMAdminCatalog2_GetPartitionID_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_GetPartitionName_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrApplicationIDOrName,
++    BSTR *pbstrPartitionName);
++void __RPC_STUB ICOMAdminCatalog2_GetPartitionName_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_put_CurrentPartition_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrPartitionIDOrName);
++void __RPC_STUB ICOMAdminCatalog2_put_CurrentPartition_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_get_CurrentPartitionID_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR *pbstrPartitionID);
++void __RPC_STUB ICOMAdminCatalog2_get_CurrentPartitionID_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_get_CurrentPartitionName_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR *pbstrPartitionName);
++void __RPC_STUB ICOMAdminCatalog2_get_CurrentPartitionName_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_get_GlobalPartitionID_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR *pbstrGlobalPartitionID);
++void __RPC_STUB ICOMAdminCatalog2_get_GlobalPartitionID_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_FlushPartitionCache_Proxy(
++    ICOMAdminCatalog2* This);
++void __RPC_STUB ICOMAdminCatalog2_FlushPartitionCache_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_CopyApplications_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrSourcePartitionIDOrName,
++    VARIANT *pVarApplicationID,
++    BSTR bstrDestinationPartitionIDOrName);
++void __RPC_STUB ICOMAdminCatalog2_CopyApplications_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_CopyComponents_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrSourceApplicationIDOrName,
++    VARIANT *pVarCLSIDOrProgID,
++    BSTR bstrDestinationApplicationIDOrName);
++void __RPC_STUB ICOMAdminCatalog2_CopyComponents_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_MoveComponents_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrSourceApplicationIDOrName,
++    VARIANT *pVarCLSIDOrProgID,
++    BSTR bstrDestinationApplicationIDOrName);
++void __RPC_STUB ICOMAdminCatalog2_MoveComponents_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_AliasComponent_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrSrcApplicationIDOrName,
++    BSTR bstrCLSIDOrProgID,
++    BSTR bstrDestApplicationIDOrName,
++    BSTR bstrNewProgId,
++    BSTR bstrNewClsid);
++void __RPC_STUB ICOMAdminCatalog2_AliasComponent_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_IsSafeToDelete_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrDllName,
++    COMAdminInUse *pCOMAdminInUse);
++void __RPC_STUB ICOMAdminCatalog2_IsSafeToDelete_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_ImportUnconfiguredComponents_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrApplicationIDOrName,
++    VARIANT *pVarCLSIDOrProgID,
++    VARIANT *pVarComponentType);
++void __RPC_STUB ICOMAdminCatalog2_ImportUnconfiguredComponents_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_PromoteUnconfiguredComponents_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrApplicationIDOrName,
++    VARIANT *pVarCLSIDOrProgID,
++    VARIANT *pVarComponentType);
++void __RPC_STUB ICOMAdminCatalog2_PromoteUnconfiguredComponents_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_ImportComponents_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrApplicationIDOrName,
++    VARIANT *pVarCLSIDOrProgID,
++    VARIANT *pVarComponentType);
++void __RPC_STUB ICOMAdminCatalog2_ImportComponents_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_get_Is64BitCatalogServer_Proxy(
++    ICOMAdminCatalog2* This,
++    VARIANT_BOOL *pbIs64Bit);
++void __RPC_STUB ICOMAdminCatalog2_get_Is64BitCatalogServer_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_ExportPartition_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrPartitionIDOrName,
++    BSTR bstrPartitionFileName,
++    LONG lOptions);
++void __RPC_STUB ICOMAdminCatalog2_ExportPartition_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_InstallPartition_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrFileName,
++    BSTR bstrDestDirectory,
++    LONG lOptions,
++    BSTR bstrUserID,
++    BSTR bstrPassword,
++    BSTR bstrRSN);
++void __RPC_STUB ICOMAdminCatalog2_InstallPartition_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_QueryApplicationFile2_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrApplicationFile,
++    IDispatch **ppFilesForImport);
++void __RPC_STUB ICOMAdminCatalog2_QueryApplicationFile2_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICOMAdminCatalog2_GetComponentVersionCount_Proxy(
++    ICOMAdminCatalog2* This,
++    BSTR bstrCLSIDOrProgID,
++    LONG *plVersionCount);
++void __RPC_STUB ICOMAdminCatalog2_GetComponentVersionCount_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __ICOMAdminCatalog2_INTERFACE_DEFINED__ */
++
++/*****************************************************************************
++ * ICatalogObject interface
++ */
+ #ifndef __ICatalogObject_INTERFACE_DEFINED__
+ #define __ICatalogObject_INTERFACE_DEFINED__
+-  EXTERN_C const IID IID_ICatalogObject;
++
++DEFINE_GUID(IID_ICatalogObject, 0x6eb22871, 0x8a19, 0x11d0, 0x81,0xb6, 0x00,0xa0,0xc9,0x23,0x1c,0x29);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct ICatalogObject : public IDispatch {
+-  public:
+-    virtual HRESULT WINAPI get_Value(BSTR bstrPropName,VARIANT *pvarRetVal) = 0;
+-    virtual HRESULT WINAPI put_Value(BSTR bstrPropName,VARIANT val) = 0;
+-    virtual HRESULT WINAPI get_Key(VARIANT *pvarRetVal) = 0;
+-    virtual HRESULT WINAPI get_Name(VARIANT *pvarRetVal) = 0;
+-    virtual HRESULT WINAPI IsPropertyReadOnly(BSTR bstrPropName,VARIANT_BOOL *pbRetVal) = 0;
+-    virtual HRESULT WINAPI get_Valid(VARIANT_BOOL *pbRetVal) = 0;
+-    virtual HRESULT WINAPI IsPropertyWriteOnly(BSTR bstrPropName,VARIANT_BOOL *pbRetVal) = 0;
+-  };
++MIDL_INTERFACE("6eb22871-8a19-11d0-81b6-00a0c9231c29")
++ICatalogObject : public IDispatch
++{
++    virtual HRESULT STDMETHODCALLTYPE get_Value(
++        BSTR bstrPropName,
++        VARIANT *pvarRetVal) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE put_Value(
++        BSTR bstrPropName,
++        VARIANT val) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_Key(
++        VARIANT *pvarRetVal) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_Name(
++        VARIANT *pvarRetVal) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE IsPropertyReadOnly(
++        BSTR bstrPropName,
++        VARIANT_BOOL *pbRetVal) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_Valid(
++        VARIANT_BOOL *pbRetVal) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE IsPropertyWriteOnly(
++        BSTR bstrPropName,
++        VARIANT_BOOL *pbRetVal) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(ICatalogObject, 0x6eb22871, 0x8a19, 0x11d0, 0x81,0xb6, 0x00,0xa0,0xc9,0x23,0x1c,0x29)
++#endif
+ #else
+-  typedef struct ICatalogObjectVtbl {
++typedef struct ICatalogObjectVtbl {
+     BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(ICatalogObject *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(ICatalogObject *This);
+-      ULONG (WINAPI *Release)(ICatalogObject *This);
+-      HRESULT (WINAPI *GetTypeInfoCount)(ICatalogObject *This,UINT *pctinfo);
+-      HRESULT (WINAPI *GetTypeInfo)(ICatalogObject *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
+-      HRESULT (WINAPI *GetIDsOfNames)(ICatalogObject *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
+-      HRESULT (WINAPI *Invoke)(ICatalogObject *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
+-      HRESULT (WINAPI *get_Value)(ICatalogObject *This,BSTR bstrPropName,VARIANT *pvarRetVal);
+-      HRESULT (WINAPI *put_Value)(ICatalogObject *This,BSTR bstrPropName,VARIANT val);
+-      HRESULT (WINAPI *get_Key)(ICatalogObject *This,VARIANT *pvarRetVal);
+-      HRESULT (WINAPI *get_Name)(ICatalogObject *This,VARIANT *pvarRetVal);
+-      HRESULT (WINAPI *IsPropertyReadOnly)(ICatalogObject *This,BSTR bstrPropName,VARIANT_BOOL *pbRetVal);
+-      HRESULT (WINAPI *get_Valid)(ICatalogObject *This,VARIANT_BOOL *pbRetVal);
+-      HRESULT (WINAPI *IsPropertyWriteOnly)(ICatalogObject *This,BSTR bstrPropName,VARIANT_BOOL *pbRetVal);
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        ICatalogObject* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        ICatalogObject* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        ICatalogObject* This);
++
++    /*** IDispatch methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
++        ICatalogObject* This,
++        UINT *pctinfo);
++
++    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
++        ICatalogObject* This,
++        UINT iTInfo,
++        LCID lcid,
++        ITypeInfo **ppTInfo);
++
++    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
++        ICatalogObject* This,
++        REFIID riid,
++        LPOLESTR *rgszNames,
++        UINT cNames,
++        LCID lcid,
++        DISPID *rgDispId);
++
++    HRESULT (STDMETHODCALLTYPE *Invoke)(
++        ICatalogObject* This,
++        DISPID dispIdMember,
++        REFIID riid,
++        LCID lcid,
++        WORD wFlags,
++        DISPPARAMS *pDispParams,
++        VARIANT *pVarResult,
++        EXCEPINFO *pExcepInfo,
++        UINT *puArgErr);
++
++    /*** ICatalogObject methods ***/
++    HRESULT (STDMETHODCALLTYPE *get_Value)(
++        ICatalogObject* This,
++        BSTR bstrPropName,
++        VARIANT *pvarRetVal);
++
++    HRESULT (STDMETHODCALLTYPE *put_Value)(
++        ICatalogObject* This,
++        BSTR bstrPropName,
++        VARIANT val);
++
++    HRESULT (STDMETHODCALLTYPE *get_Key)(
++        ICatalogObject* This,
++        VARIANT *pvarRetVal);
++
++    HRESULT (STDMETHODCALLTYPE *get_Name)(
++        ICatalogObject* This,
++        VARIANT *pvarRetVal);
++
++    HRESULT (STDMETHODCALLTYPE *IsPropertyReadOnly)(
++        ICatalogObject* This,
++        BSTR bstrPropName,
++        VARIANT_BOOL *pbRetVal);
++
++    HRESULT (STDMETHODCALLTYPE *get_Valid)(
++        ICatalogObject* This,
++        VARIANT_BOOL *pbRetVal);
++
++    HRESULT (STDMETHODCALLTYPE *IsPropertyWriteOnly)(
++        ICatalogObject* This,
++        BSTR bstrPropName,
++        VARIANT_BOOL *pbRetVal);
++
+     END_INTERFACE
+-  } ICatalogObjectVtbl;
+-  struct ICatalogObject {
+-    CONST_VTBL struct ICatalogObjectVtbl *lpVtbl;
+-  };
++} ICatalogObjectVtbl;
++interface ICatalogObject {
++    CONST_VTBL ICatalogObjectVtbl* lpVtbl;
++};
++
+ #ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
+ #define ICatalogObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+ #define ICatalogObject_AddRef(This) (This)->lpVtbl->AddRef(This)
+ #define ICatalogObject_Release(This) (This)->lpVtbl->Release(This)
++/*** IDispatch methods ***/
+ #define ICatalogObject_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+ #define ICatalogObject_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+ #define ICatalogObject_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+ #define ICatalogObject_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
++/*** ICatalogObject methods ***/
+ #define ICatalogObject_get_Value(This,bstrPropName,pvarRetVal) (This)->lpVtbl->get_Value(This,bstrPropName,pvarRetVal)
+ #define ICatalogObject_put_Value(This,bstrPropName,val) (This)->lpVtbl->put_Value(This,bstrPropName,val)
+ #define ICatalogObject_get_Key(This,pvarRetVal) (This)->lpVtbl->get_Key(This,pvarRetVal)
+@@ -551,86 +2253,319 @@ extern "C"{
+ #define ICatalogObject_IsPropertyReadOnly(This,bstrPropName,pbRetVal) (This)->lpVtbl->IsPropertyReadOnly(This,bstrPropName,pbRetVal)
+ #define ICatalogObject_get_Valid(This,pbRetVal) (This)->lpVtbl->get_Valid(This,pbRetVal)
+ #define ICatalogObject_IsPropertyWriteOnly(This,bstrPropName,pbRetVal) (This)->lpVtbl->IsPropertyWriteOnly(This,bstrPropName,pbRetVal)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT ICatalogObject_QueryInterface(ICatalogObject* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG ICatalogObject_AddRef(ICatalogObject* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG ICatalogObject_Release(ICatalogObject* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IDispatch methods ***/
++static FORCEINLINE HRESULT ICatalogObject_GetTypeInfoCount(ICatalogObject* This,UINT *pctinfo) {
++    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
++}
++static FORCEINLINE HRESULT ICatalogObject_GetTypeInfo(ICatalogObject* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
++    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
++}
++static FORCEINLINE HRESULT ICatalogObject_GetIDsOfNames(ICatalogObject* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
++    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
++}
++static FORCEINLINE HRESULT ICatalogObject_Invoke(ICatalogObject* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
++    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
++}
++/*** ICatalogObject methods ***/
++static FORCEINLINE HRESULT ICatalogObject_get_Value(ICatalogObject* This,BSTR bstrPropName,VARIANT *pvarRetVal) {
++    return This->lpVtbl->get_Value(This,bstrPropName,pvarRetVal);
++}
++static FORCEINLINE HRESULT ICatalogObject_put_Value(ICatalogObject* This,BSTR bstrPropName,VARIANT val) {
++    return This->lpVtbl->put_Value(This,bstrPropName,val);
++}
++static FORCEINLINE HRESULT ICatalogObject_get_Key(ICatalogObject* This,VARIANT *pvarRetVal) {
++    return This->lpVtbl->get_Key(This,pvarRetVal);
++}
++static FORCEINLINE HRESULT ICatalogObject_get_Name(ICatalogObject* This,VARIANT *pvarRetVal) {
++    return This->lpVtbl->get_Name(This,pvarRetVal);
++}
++static FORCEINLINE HRESULT ICatalogObject_IsPropertyReadOnly(ICatalogObject* This,BSTR bstrPropName,VARIANT_BOOL *pbRetVal) {
++    return This->lpVtbl->IsPropertyReadOnly(This,bstrPropName,pbRetVal);
++}
++static FORCEINLINE HRESULT ICatalogObject_get_Valid(ICatalogObject* This,VARIANT_BOOL *pbRetVal) {
++    return This->lpVtbl->get_Valid(This,pbRetVal);
++}
++static FORCEINLINE HRESULT ICatalogObject_IsPropertyWriteOnly(ICatalogObject* This,BSTR bstrPropName,VARIANT_BOOL *pbRetVal) {
++    return This->lpVtbl->IsPropertyWriteOnly(This,bstrPropName,pbRetVal);
++}
+ #endif
+ #endif
+-  HRESULT WINAPI ICatalogObject_get_Value_Proxy(ICatalogObject *This,BSTR bstrPropName,VARIANT *pvarRetVal);
+-  void __RPC_STUB ICatalogObject_get_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogObject_put_Value_Proxy(ICatalogObject *This,BSTR bstrPropName,VARIANT val);
+-  void __RPC_STUB ICatalogObject_put_Value_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogObject_get_Key_Proxy(ICatalogObject *This,VARIANT *pvarRetVal);
+-  void __RPC_STUB ICatalogObject_get_Key_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogObject_get_Name_Proxy(ICatalogObject *This,VARIANT *pvarRetVal);
+-  void __RPC_STUB ICatalogObject_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogObject_IsPropertyReadOnly_Proxy(ICatalogObject *This,BSTR bstrPropName,VARIANT_BOOL *pbRetVal);
+-  void __RPC_STUB ICatalogObject_IsPropertyReadOnly_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogObject_get_Valid_Proxy(ICatalogObject *This,VARIANT_BOOL *pbRetVal);
+-  void __RPC_STUB ICatalogObject_get_Valid_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogObject_IsPropertyWriteOnly_Proxy(ICatalogObject *This,BSTR bstrPropName,VARIANT_BOOL *pbRetVal);
+-  void __RPC_STUB ICatalogObject_IsPropertyWriteOnly_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
++
+ #endif
+ 
++HRESULT STDMETHODCALLTYPE ICatalogObject_get_Value_Proxy(
++    ICatalogObject* This,
++    BSTR bstrPropName,
++    VARIANT *pvarRetVal);
++void __RPC_STUB ICatalogObject_get_Value_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogObject_put_Value_Proxy(
++    ICatalogObject* This,
++    BSTR bstrPropName,
++    VARIANT val);
++void __RPC_STUB ICatalogObject_put_Value_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogObject_get_Key_Proxy(
++    ICatalogObject* This,
++    VARIANT *pvarRetVal);
++void __RPC_STUB ICatalogObject_get_Key_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogObject_get_Name_Proxy(
++    ICatalogObject* This,
++    VARIANT *pvarRetVal);
++void __RPC_STUB ICatalogObject_get_Name_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogObject_IsPropertyReadOnly_Proxy(
++    ICatalogObject* This,
++    BSTR bstrPropName,
++    VARIANT_BOOL *pbRetVal);
++void __RPC_STUB ICatalogObject_IsPropertyReadOnly_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogObject_get_Valid_Proxy(
++    ICatalogObject* This,
++    VARIANT_BOOL *pbRetVal);
++void __RPC_STUB ICatalogObject_get_Valid_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogObject_IsPropertyWriteOnly_Proxy(
++    ICatalogObject* This,
++    BSTR bstrPropName,
++    VARIANT_BOOL *pbRetVal);
++void __RPC_STUB ICatalogObject_IsPropertyWriteOnly_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __ICatalogObject_INTERFACE_DEFINED__ */
++
++/*****************************************************************************
++ * ICatalogCollection interface
++ */
+ #ifndef __ICatalogCollection_INTERFACE_DEFINED__
+ #define __ICatalogCollection_INTERFACE_DEFINED__
+-  EXTERN_C const IID IID_ICatalogCollection;
++
++DEFINE_GUID(IID_ICatalogCollection, 0x6eb22872, 0x8a19, 0x11d0, 0x81,0xb6, 0x00,0xa0,0xc9,0x23,0x1c,0x29);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct ICatalogCollection : public IDispatch {
+-  public:
+-    virtual HRESULT WINAPI get__NewEnum(IUnknown **ppEnumVariant) = 0;
+-    virtual HRESULT WINAPI get_Item(__LONG32 lIndex,IDispatch **ppCatalogObject) = 0;
+-    virtual HRESULT WINAPI get_Count(__LONG32 *plObjectCount) = 0;
+-    virtual HRESULT WINAPI Remove(__LONG32 lIndex) = 0;
+-    virtual HRESULT WINAPI Add(IDispatch **ppCatalogObject) = 0;
+-    virtual HRESULT WINAPI Populate(void) = 0;
+-    virtual HRESULT WINAPI SaveChanges(__LONG32 *pcChanges) = 0;
+-    virtual HRESULT WINAPI GetCollection(BSTR bstrCollName,VARIANT varObjectKey,IDispatch **ppCatalogCollection) = 0;
+-    virtual HRESULT WINAPI get_Name(VARIANT *pVarNamel) = 0;
+-    virtual HRESULT WINAPI get_AddEnabled(VARIANT_BOOL *pVarBool) = 0;
+-    virtual HRESULT WINAPI get_RemoveEnabled(VARIANT_BOOL *pVarBool) = 0;
+-    virtual HRESULT WINAPI GetUtilInterface(IDispatch **ppIDispatch) = 0;
+-    virtual HRESULT WINAPI get_DataStoreMajorVersion(__LONG32 *plMajorVersion) = 0;
+-    virtual HRESULT WINAPI get_DataStoreMinorVersion(__LONG32 *plMinorVersionl) = 0;
+-    virtual HRESULT WINAPI PopulateByKey(SAFEARRAY *psaKeys) = 0;
+-    virtual HRESULT WINAPI PopulateByQuery(BSTR bstrQueryString,__LONG32 lQueryType) = 0;
+-  };
++MIDL_INTERFACE("6eb22872-8a19-11d0-81b6-00a0c9231c29")
++ICatalogCollection : public IDispatch
++{
++    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
++        IUnknown **ppEnumVariant) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_Item(
++        LONG lIndex,
++        IDispatch **ppCatalogObject) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_Count(
++        LONG *plObjectCount) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Remove(
++        LONG lIndex) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Add(
++        IDispatch **ppCatalogObject) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Populate(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE SaveChanges(
++        LONG *pcChanges) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetCollection(
++        BSTR bstrCollName,
++        VARIANT varObjectKey,
++        IDispatch **ppCatalogCollection) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_Name(
++        VARIANT *pVarNamel) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_AddEnabled(
++        VARIANT_BOOL *pVarBool) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_RemoveEnabled(
++        VARIANT_BOOL *pVarBool) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetUtilInterface(
++        IDispatch **ppIDispatch) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_DataStoreMajorVersion(
++        LONG *plMajorVersion) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE get_DataStoreMinorVersion(
++        LONG *plMinorVersionl) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE PopulateByKey(
++        SAFEARRAY *psaKeys) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE PopulateByQuery(
++        BSTR bstrQueryString,
++        LONG lQueryType) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(ICatalogCollection, 0x6eb22872, 0x8a19, 0x11d0, 0x81,0xb6, 0x00,0xa0,0xc9,0x23,0x1c,0x29)
++#endif
+ #else
+-  typedef struct ICatalogCollectionVtbl {
++typedef struct ICatalogCollectionVtbl {
+     BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(ICatalogCollection *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(ICatalogCollection *This);
+-      ULONG (WINAPI *Release)(ICatalogCollection *This);
+-      HRESULT (WINAPI *GetTypeInfoCount)(ICatalogCollection *This,UINT *pctinfo);
+-      HRESULT (WINAPI *GetTypeInfo)(ICatalogCollection *This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo);
+-      HRESULT (WINAPI *GetIDsOfNames)(ICatalogCollection *This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId);
+-      HRESULT (WINAPI *Invoke)(ICatalogCollection *This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr);
+-      HRESULT (WINAPI *get__NewEnum)(ICatalogCollection *This,IUnknown **ppEnumVariant);
+-      HRESULT (WINAPI *get_Item)(ICatalogCollection *This,__LONG32 lIndex,IDispatch **ppCatalogObject);
+-      HRESULT (WINAPI *get_Count)(ICatalogCollection *This,__LONG32 *plObjectCount);
+-      HRESULT (WINAPI *Remove)(ICatalogCollection *This,__LONG32 lIndex);
+-      HRESULT (WINAPI *Add)(ICatalogCollection *This,IDispatch **ppCatalogObject);
+-      HRESULT (WINAPI *Populate)(ICatalogCollection *This);
+-      HRESULT (WINAPI *SaveChanges)(ICatalogCollection *This,__LONG32 *pcChanges);
+-      HRESULT (WINAPI *GetCollection)(ICatalogCollection *This,BSTR bstrCollName,VARIANT varObjectKey,IDispatch **ppCatalogCollection);
+-      HRESULT (WINAPI *get_Name)(ICatalogCollection *This,VARIANT *pVarNamel);
+-      HRESULT (WINAPI *get_AddEnabled)(ICatalogCollection *This,VARIANT_BOOL *pVarBool);
+-      HRESULT (WINAPI *get_RemoveEnabled)(ICatalogCollection *This,VARIANT_BOOL *pVarBool);
+-      HRESULT (WINAPI *GetUtilInterface)(ICatalogCollection *This,IDispatch **ppIDispatch);
+-      HRESULT (WINAPI *get_DataStoreMajorVersion)(ICatalogCollection *This,__LONG32 *plMajorVersion);
+-      HRESULT (WINAPI *get_DataStoreMinorVersion)(ICatalogCollection *This,__LONG32 *plMinorVersionl);
+-      HRESULT (WINAPI *PopulateByKey)(ICatalogCollection *This,SAFEARRAY *psaKeys);
+-      HRESULT (WINAPI *PopulateByQuery)(ICatalogCollection *This,BSTR bstrQueryString,__LONG32 lQueryType);
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        ICatalogCollection* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        ICatalogCollection* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        ICatalogCollection* This);
++
++    /*** IDispatch methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
++        ICatalogCollection* This,
++        UINT *pctinfo);
++
++    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
++        ICatalogCollection* This,
++        UINT iTInfo,
++        LCID lcid,
++        ITypeInfo **ppTInfo);
++
++    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
++        ICatalogCollection* This,
++        REFIID riid,
++        LPOLESTR *rgszNames,
++        UINT cNames,
++        LCID lcid,
++        DISPID *rgDispId);
++
++    HRESULT (STDMETHODCALLTYPE *Invoke)(
++        ICatalogCollection* This,
++        DISPID dispIdMember,
++        REFIID riid,
++        LCID lcid,
++        WORD wFlags,
++        DISPPARAMS *pDispParams,
++        VARIANT *pVarResult,
++        EXCEPINFO *pExcepInfo,
++        UINT *puArgErr);
++
++    /*** ICatalogCollection methods ***/
++    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
++        ICatalogCollection* This,
++        IUnknown **ppEnumVariant);
++
++    HRESULT (STDMETHODCALLTYPE *get_Item)(
++        ICatalogCollection* This,
++        LONG lIndex,
++        IDispatch **ppCatalogObject);
++
++    HRESULT (STDMETHODCALLTYPE *get_Count)(
++        ICatalogCollection* This,
++        LONG *plObjectCount);
++
++    HRESULT (STDMETHODCALLTYPE *Remove)(
++        ICatalogCollection* This,
++        LONG lIndex);
++
++    HRESULT (STDMETHODCALLTYPE *Add)(
++        ICatalogCollection* This,
++        IDispatch **ppCatalogObject);
++
++    HRESULT (STDMETHODCALLTYPE *Populate)(
++        ICatalogCollection* This);
++
++    HRESULT (STDMETHODCALLTYPE *SaveChanges)(
++        ICatalogCollection* This,
++        LONG *pcChanges);
++
++    HRESULT (STDMETHODCALLTYPE *GetCollection)(
++        ICatalogCollection* This,
++        BSTR bstrCollName,
++        VARIANT varObjectKey,
++        IDispatch **ppCatalogCollection);
++
++    HRESULT (STDMETHODCALLTYPE *get_Name)(
++        ICatalogCollection* This,
++        VARIANT *pVarNamel);
++
++    HRESULT (STDMETHODCALLTYPE *get_AddEnabled)(
++        ICatalogCollection* This,
++        VARIANT_BOOL *pVarBool);
++
++    HRESULT (STDMETHODCALLTYPE *get_RemoveEnabled)(
++        ICatalogCollection* This,
++        VARIANT_BOOL *pVarBool);
++
++    HRESULT (STDMETHODCALLTYPE *GetUtilInterface)(
++        ICatalogCollection* This,
++        IDispatch **ppIDispatch);
++
++    HRESULT (STDMETHODCALLTYPE *get_DataStoreMajorVersion)(
++        ICatalogCollection* This,
++        LONG *plMajorVersion);
++
++    HRESULT (STDMETHODCALLTYPE *get_DataStoreMinorVersion)(
++        ICatalogCollection* This,
++        LONG *plMinorVersionl);
++
++    HRESULT (STDMETHODCALLTYPE *PopulateByKey)(
++        ICatalogCollection* This,
++        SAFEARRAY *psaKeys);
++
++    HRESULT (STDMETHODCALLTYPE *PopulateByQuery)(
++        ICatalogCollection* This,
++        BSTR bstrQueryString,
++        LONG lQueryType);
++
+     END_INTERFACE
+-  } ICatalogCollectionVtbl;
+-  struct ICatalogCollection {
+-    CONST_VTBL struct ICatalogCollectionVtbl *lpVtbl;
+-  };
++} ICatalogCollectionVtbl;
++interface ICatalogCollection {
++    CONST_VTBL ICatalogCollectionVtbl* lpVtbl;
++};
++
+ #ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
+ #define ICatalogCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+ #define ICatalogCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+ #define ICatalogCollection_Release(This) (This)->lpVtbl->Release(This)
++/*** IDispatch methods ***/
+ #define ICatalogCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+ #define ICatalogCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+ #define ICatalogCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+ #define ICatalogCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
++/*** ICatalogCollection methods ***/
+ #define ICatalogCollection_get__NewEnum(This,ppEnumVariant) (This)->lpVtbl->get__NewEnum(This,ppEnumVariant)
+ #define ICatalogCollection_get_Item(This,lIndex,ppCatalogObject) (This)->lpVtbl->get_Item(This,lIndex,ppCatalogObject)
+ #define ICatalogCollection_get_Count(This,plObjectCount) (This)->lpVtbl->get_Count(This,plObjectCount)
+@@ -647,230 +2582,314 @@ extern "C"{
+ #define ICatalogCollection_get_DataStoreMinorVersion(This,plMinorVersionl) (This)->lpVtbl->get_DataStoreMinorVersion(This,plMinorVersionl)
+ #define ICatalogCollection_PopulateByKey(This,psaKeys) (This)->lpVtbl->PopulateByKey(This,psaKeys)
+ #define ICatalogCollection_PopulateByQuery(This,bstrQueryString,lQueryType) (This)->lpVtbl->PopulateByQuery(This,bstrQueryString,lQueryType)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT ICatalogCollection_QueryInterface(ICatalogCollection* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG ICatalogCollection_AddRef(ICatalogCollection* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG ICatalogCollection_Release(ICatalogCollection* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IDispatch methods ***/
++static FORCEINLINE HRESULT ICatalogCollection_GetTypeInfoCount(ICatalogCollection* This,UINT *pctinfo) {
++    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
++}
++static FORCEINLINE HRESULT ICatalogCollection_GetTypeInfo(ICatalogCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
++    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
++}
++static FORCEINLINE HRESULT ICatalogCollection_GetIDsOfNames(ICatalogCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
++    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
++}
++static FORCEINLINE HRESULT ICatalogCollection_Invoke(ICatalogCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
++    return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
++}
++/*** ICatalogCollection methods ***/
++static FORCEINLINE HRESULT ICatalogCollection_get__NewEnum(ICatalogCollection* This,IUnknown **ppEnumVariant) {
++    return This->lpVtbl->get__NewEnum(This,ppEnumVariant);
++}
++static FORCEINLINE HRESULT ICatalogCollection_get_Item(ICatalogCollection* This,LONG lIndex,IDispatch **ppCatalogObject) {
++    return This->lpVtbl->get_Item(This,lIndex,ppCatalogObject);
++}
++static FORCEINLINE HRESULT ICatalogCollection_get_Count(ICatalogCollection* This,LONG *plObjectCount) {
++    return This->lpVtbl->get_Count(This,plObjectCount);
++}
++static FORCEINLINE HRESULT ICatalogCollection_Remove(ICatalogCollection* This,LONG lIndex) {
++    return This->lpVtbl->Remove(This,lIndex);
++}
++static FORCEINLINE HRESULT ICatalogCollection_Add(ICatalogCollection* This,IDispatch **ppCatalogObject) {
++    return This->lpVtbl->Add(This,ppCatalogObject);
++}
++static FORCEINLINE HRESULT ICatalogCollection_Populate(ICatalogCollection* This) {
++    return This->lpVtbl->Populate(This);
++}
++static FORCEINLINE HRESULT ICatalogCollection_SaveChanges(ICatalogCollection* This,LONG *pcChanges) {
++    return This->lpVtbl->SaveChanges(This,pcChanges);
++}
++static FORCEINLINE HRESULT ICatalogCollection_GetCollection(ICatalogCollection* This,BSTR bstrCollName,VARIANT varObjectKey,IDispatch **ppCatalogCollection) {
++    return This->lpVtbl->GetCollection(This,bstrCollName,varObjectKey,ppCatalogCollection);
++}
++static FORCEINLINE HRESULT ICatalogCollection_get_Name(ICatalogCollection* This,VARIANT *pVarNamel) {
++    return This->lpVtbl->get_Name(This,pVarNamel);
++}
++static FORCEINLINE HRESULT ICatalogCollection_get_AddEnabled(ICatalogCollection* This,VARIANT_BOOL *pVarBool) {
++    return This->lpVtbl->get_AddEnabled(This,pVarBool);
++}
++static FORCEINLINE HRESULT ICatalogCollection_get_RemoveEnabled(ICatalogCollection* This,VARIANT_BOOL *pVarBool) {
++    return This->lpVtbl->get_RemoveEnabled(This,pVarBool);
++}
++static FORCEINLINE HRESULT ICatalogCollection_GetUtilInterface(ICatalogCollection* This,IDispatch **ppIDispatch) {
++    return This->lpVtbl->GetUtilInterface(This,ppIDispatch);
++}
++static FORCEINLINE HRESULT ICatalogCollection_get_DataStoreMajorVersion(ICatalogCollection* This,LONG *plMajorVersion) {
++    return This->lpVtbl->get_DataStoreMajorVersion(This,plMajorVersion);
++}
++static FORCEINLINE HRESULT ICatalogCollection_get_DataStoreMinorVersion(ICatalogCollection* This,LONG *plMinorVersionl) {
++    return This->lpVtbl->get_DataStoreMinorVersion(This,plMinorVersionl);
++}
++static FORCEINLINE HRESULT ICatalogCollection_PopulateByKey(ICatalogCollection* This,SAFEARRAY *psaKeys) {
++    return This->lpVtbl->PopulateByKey(This,psaKeys);
++}
++static FORCEINLINE HRESULT ICatalogCollection_PopulateByQuery(ICatalogCollection* This,BSTR bstrQueryString,LONG lQueryType) {
++    return This->lpVtbl->PopulateByQuery(This,bstrQueryString,lQueryType);
++}
+ #endif
+ #endif
+-  HRESULT WINAPI ICatalogCollection_get__NewEnum_Proxy(ICatalogCollection *This,IUnknown **ppEnumVariant);
+-  void __RPC_STUB ICatalogCollection_get__NewEnum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_get_Item_Proxy(ICatalogCollection *This,__LONG32 lIndex,IDispatch **ppCatalogObject);
+-  void __RPC_STUB ICatalogCollection_get_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_get_Count_Proxy(ICatalogCollection *This,__LONG32 *plObjectCount);
+-  void __RPC_STUB ICatalogCollection_get_Count_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_Remove_Proxy(ICatalogCollection *This,__LONG32 lIndex);
+-  void __RPC_STUB ICatalogCollection_Remove_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_Add_Proxy(ICatalogCollection *This,IDispatch **ppCatalogObject);
+-  void __RPC_STUB ICatalogCollection_Add_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_Populate_Proxy(ICatalogCollection *This);
+-  void __RPC_STUB ICatalogCollection_Populate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_SaveChanges_Proxy(ICatalogCollection *This,__LONG32 *pcChanges);
+-  void __RPC_STUB ICatalogCollection_SaveChanges_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_GetCollection_Proxy(ICatalogCollection *This,BSTR bstrCollName,VARIANT varObjectKey,IDispatch **ppCatalogCollection);
+-  void __RPC_STUB ICatalogCollection_GetCollection_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_get_Name_Proxy(ICatalogCollection *This,VARIANT *pVarNamel);
+-  void __RPC_STUB ICatalogCollection_get_Name_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_get_AddEnabled_Proxy(ICatalogCollection *This,VARIANT_BOOL *pVarBool);
+-  void __RPC_STUB ICatalogCollection_get_AddEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_get_RemoveEnabled_Proxy(ICatalogCollection *This,VARIANT_BOOL *pVarBool);
+-  void __RPC_STUB ICatalogCollection_get_RemoveEnabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_GetUtilInterface_Proxy(ICatalogCollection *This,IDispatch **ppIDispatch);
+-  void __RPC_STUB ICatalogCollection_GetUtilInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_get_DataStoreMajorVersion_Proxy(ICatalogCollection *This,__LONG32 *plMajorVersion);
+-  void __RPC_STUB ICatalogCollection_get_DataStoreMajorVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_get_DataStoreMinorVersion_Proxy(ICatalogCollection *This,__LONG32 *plMinorVersionl);
+-  void __RPC_STUB ICatalogCollection_get_DataStoreMinorVersion_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_PopulateByKey_Proxy(ICatalogCollection *This,SAFEARRAY *psaKeys);
+-  void __RPC_STUB ICatalogCollection_PopulateByKey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI ICatalogCollection_PopulateByQuery_Proxy(ICatalogCollection *This,BSTR bstrQueryString,__LONG32 lQueryType);
+-  void __RPC_STUB ICatalogCollection_PopulateByQuery_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
++
+ #endif
+ 
+-#ifndef __COMAdmin_LIBRARY_DEFINED__
+-#define __COMAdmin_LIBRARY_DEFINED__
+-  typedef enum COMAdminComponentType {
+-    COMAdmin32BitComponent = 0x1,COMAdmin64BitComponent = 0x2
+-  } COMAdminComponentType;
++HRESULT STDMETHODCALLTYPE ICatalogCollection_get__NewEnum_Proxy(
++    ICatalogCollection* This,
++    IUnknown **ppEnumVariant);
++void __RPC_STUB ICatalogCollection_get__NewEnum_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_get_Item_Proxy(
++    ICatalogCollection* This,
++    LONG lIndex,
++    IDispatch **ppCatalogObject);
++void __RPC_STUB ICatalogCollection_get_Item_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_get_Count_Proxy(
++    ICatalogCollection* This,
++    LONG *plObjectCount);
++void __RPC_STUB ICatalogCollection_get_Count_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_Remove_Proxy(
++    ICatalogCollection* This,
++    LONG lIndex);
++void __RPC_STUB ICatalogCollection_Remove_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_Add_Proxy(
++    ICatalogCollection* This,
++    IDispatch **ppCatalogObject);
++void __RPC_STUB ICatalogCollection_Add_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_Populate_Proxy(
++    ICatalogCollection* This);
++void __RPC_STUB ICatalogCollection_Populate_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_SaveChanges_Proxy(
++    ICatalogCollection* This,
++    LONG *pcChanges);
++void __RPC_STUB ICatalogCollection_SaveChanges_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_GetCollection_Proxy(
++    ICatalogCollection* This,
++    BSTR bstrCollName,
++    VARIANT varObjectKey,
++    IDispatch **ppCatalogCollection);
++void __RPC_STUB ICatalogCollection_GetCollection_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_get_Name_Proxy(
++    ICatalogCollection* This,
++    VARIANT *pVarNamel);
++void __RPC_STUB ICatalogCollection_get_Name_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_get_AddEnabled_Proxy(
++    ICatalogCollection* This,
++    VARIANT_BOOL *pVarBool);
++void __RPC_STUB ICatalogCollection_get_AddEnabled_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_get_RemoveEnabled_Proxy(
++    ICatalogCollection* This,
++    VARIANT_BOOL *pVarBool);
++void __RPC_STUB ICatalogCollection_get_RemoveEnabled_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_GetUtilInterface_Proxy(
++    ICatalogCollection* This,
++    IDispatch **ppIDispatch);
++void __RPC_STUB ICatalogCollection_GetUtilInterface_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_get_DataStoreMajorVersion_Proxy(
++    ICatalogCollection* This,
++    LONG *plMajorVersion);
++void __RPC_STUB ICatalogCollection_get_DataStoreMajorVersion_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_get_DataStoreMinorVersion_Proxy(
++    ICatalogCollection* This,
++    LONG *plMinorVersionl);
++void __RPC_STUB ICatalogCollection_get_DataStoreMinorVersion_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_PopulateByKey_Proxy(
++    ICatalogCollection* This,
++    SAFEARRAY *psaKeys);
++void __RPC_STUB ICatalogCollection_PopulateByKey_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ICatalogCollection_PopulateByQuery_Proxy(
++    ICatalogCollection* This,
++    BSTR bstrQueryString,
++    LONG lQueryType);
++void __RPC_STUB ICatalogCollection_PopulateByQuery_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
+ 
+-  typedef enum COMAdminApplicationInstallOptions {
+-    COMAdminInstallNoUsers = 0,COMAdminInstallUsers = 1,COMAdminInstallForceOverwriteOfFiles = 2
+-  } COMAdminApplicationInstallOptions;
++#endif  /* __ICatalogCollection_INTERFACE_DEFINED__ */
+ 
+-  typedef enum COMAdminApplicationExportOptions {
+-    COMAdminExportNoUsers = 0,COMAdminExportUsers = 1,COMAdminExportApplicationProxy = 2,COMAdminExportForceOverwriteOfFiles = 4,
+-    COMAdminExportIn10Format = 16
+-  } COMAdminApplicationExportOptions;
+ 
+-  typedef enum COMAdminThreadingModels {
+-    COMAdminThreadingModelApartment = 0,COMAdminThreadingModelFree = 1,COMAdminThreadingModelMain = 2,COMAdminThreadingModelBoth = 3,
+-    COMAdminThreadingModelNeutral = 4,COMAdminThreadingModelNotSpecified = 5
+-  } COMAdminThreadingModels;
++DEFINE_GUID(LIBID_COMAdmin, 0xf618c513, 0xdfb8, 0x11d1, 0xa2,0xcf, 0x00,0x80,0x5f,0xc7,0x92,0x35);
+ 
+-  typedef enum COMAdminTransactionOptions {
+-    COMAdminTransactionIgnored = 0,COMAdminTransactionNone = 1,COMAdminTransactionSupported = 2,COMAdminTransactionRequired = 3,
+-    COMAdminTransactionRequiresNew = 4
+-  } COMAdminTransactionOptions;
++/*****************************************************************************
++ * COMAdminCatalog coclass
++ */
+ 
+-  typedef enum COMAdminTxIsolationLevelOptions {
+-    COMAdminTxIsolationLevelAny = 0,COMAdminTxIsolationLevelReadUnCommitted,
+-    COMAdminTxIsolationLevelReadCommitted,COMAdminTxIsolationLevelRepeatableRead,
+-    COMAdminTxIsolationLevelSerializable
+-  } COMAdminTxIsolationLevelOptions;
++DEFINE_GUID(CLSID_COMAdminCatalog, 0xf618c514, 0xdfb8, 0x11d1, 0xa2,0xcf, 0x00,0x80,0x5f,0xc7,0x92,0x35);
+ 
+-  typedef enum COMAdminSynchronizationOptions {
+-    COMAdminSynchronizationIgnored = 0,COMAdminSynchronizationNone = 1,COMAdminSynchronizationSupported = 2,COMAdminSynchronizationRequired = 3,
+-    COMAdminSynchronizationRequiresNew = 4
+-  } COMAdminSynchronizationOptions;
+-
+-  typedef enum COMAdminActivationOptions {
+-    COMAdminActivationInproc = 0,COMAdminActivationLocal = 1
+-  } COMAdminActivationOptions;
+-
+-  typedef enum COMAdminAccessChecksLevelOptions {
+-    COMAdminAccessChecksApplicationLevel = 0,COMAdminAccessChecksApplicationComponentLevel = 1
+-  } COMAdminAccessChecksLevelOptions;
+-
+-  typedef enum COMAdminAuthenticationLevelOptions {
+-    COMAdminAuthenticationDefault = 0,COMAdminAuthenticationNone = 1,COMAdminAuthenticationConnect = 2,COMAdminAuthenticationCall = 3,
+-    COMAdminAuthenticationPacket = 4,COMAdminAuthenticationIntegrity = 5,COMAdminAuthenticationPrivacy = 6
+-  } COMAdminAuthenticationLevelOptions;
+-
+-  typedef enum COMAdminImpersonationLevelOptions {
+-    COMAdminImpersonationAnonymous = 1,COMAdminImpersonationIdentify = 2,COMAdminImpersonationImpersonate = 3,COMAdminImpersonationDelegate = 4
+-  } COMAdminImpersonationLevelOptions;
+-
+-  typedef enum COMAdminAuthenticationCapabilitiesOptions {
+-    COMAdminAuthenticationCapabilitiesNone = 0,COMAdminAuthenticationCapabilitiesSecureReference = 0x2,
+-    COMAdminAuthenticationCapabilitiesStaticCloaking = 0x20,COMAdminAuthenticationCapabilitiesDynamicCloaking = 0x40
+-  } COMAdminAuthenticationCapabilitiesOptions;
+-
+-  typedef enum COMAdminOS {
+-    COMAdminOSNotInitialized = 0,COMAdminOSWindows3_1 = 1,COMAdminOSWindows9x = 2,COMAdminOSWindows2000 = 3,
+-    COMAdminOSWindows2000AdvancedServer = 4,COMAdminOSWindows2000Unknown = 5,COMAdminOSUnknown = 6,COMAdminOSWindowsXPPersonal = 11,
+-    COMAdminOSWindowsXPProfessional = 12,COMAdminOSWindowsNETStandardServer = 13,COMAdminOSWindowsNETEnterpriseServer = 14,
+-    COMAdminOSWindowsNETDatacenterServer = 15,COMAdminOSWindowsNETWebServer = 16,COMAdminOSWindowsLonghornPersonal = 17,
+-    COMAdminOSWindowsLonghornProfessional = 18,COMAdminOSWindowsLonghornStandardServer = 19,COMAdminOSWindowsLonghornEnterpriseServer = 20,
+-    COMAdminOSWindowsLonghornDatacenterServer = 21,COMAdminOSWindowsLonghornWebServer = 22
+-  } COMAdminOS;
+-
+-  typedef enum COMAdminServiceOptions {
+-    COMAdminServiceLoadBalanceRouter = 1
+-  } COMAdminServiceOptions;
+-
+-  typedef enum COMAdminServiceStatusOptions {
+-    COMAdminServiceStopped = 0,COMAdminServiceStartPending,COMAdminServiceStopPending,
+-    COMAdminServiceRunning,COMAdminServiceContinuePending,COMAdminServicePausePending,
+-    COMAdminServicePaused,COMAdminServiceUnknownState
+-  } COMAdminServiceStatusOptions;
+-
+-  typedef enum COMAdminQCMessageAuthenticateOptions {
+-    COMAdminQCMessageAuthenticateSecureApps = 0,COMAdminQCMessageAuthenticateOff = 1,COMAdminQCMessageAuthenticateOn = 2
+-  } COMAdminQCMessageAuthenticateOptions;
+-
+-  typedef enum COMAdminFileFlags {
+-    COMAdminFileFlagLoadable = 0x1,COMAdminFileFlagCOM = 0x2,COMAdminFileFlagContainsPS = 0x4,COMAdminFileFlagContainsComp = 0x8,
+-    COMAdminFileFlagContainsTLB = 0x10,COMAdminFileFlagSelfReg = 0x20,COMAdminFileFlagSelfUnReg = 0x40,COMAdminFileFlagUnloadableDLL = 0x80,
+-    COMAdminFileFlagDoesNotExist = 0x100,COMAdminFileFlagAlreadyInstalled = 0x200,COMAdminFileFlagBadTLB = 0x400,
+-    COMAdminFileFlagGetClassObjFailed = 0x800,COMAdminFileFlagClassNotAvailable = 0x1000,COMAdminFileFlagRegistrar = 0x2000,
+-    COMAdminFileFlagNoRegistrar = 0x4000,COMAdminFileFlagDLLRegsvrFailed = 0x8000,COMAdminFileFlagRegTLBFailed = 0x10000,
+-    COMAdminFileFlagRegistrarFailed = 0x20000,COMAdminFileFlagError = 0x40000
+-  } COMAdminFileFlags;
+-
+-  typedef enum COMAdminComponentFlags {
+-    COMAdminCompFlagTypeInfoFound = 0x1,COMAdminCompFlagCOMPlusPropertiesFound = 0x2,COMAdminCompFlagProxyFound = 0x4,
+-    COMAdminCompFlagInterfacesFound = 0x8,COMAdminCompFlagAlreadyInstalled = 0x10,COMAdminCompFlagNotInApplication = 0x20
+-  } COMAdminComponentFlags;
++#ifdef __cplusplus
++class DECLSPEC_UUID("f618c514-dfb8-11d1-a2cf-00805fc79235") COMAdminCatalog;
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(COMAdminCatalog, 0xf618c514, 0xdfb8, 0x11d1, 0xa2,0xcf, 0x00,0x80,0x5f,0xc7,0x92,0x35)
++#endif
++#endif
++
++/*****************************************************************************
++ * COMAdminCatalogObject coclass
++ */
++
++DEFINE_GUID(CLSID_COMAdminCatalogObject, 0xf618c515, 0xdfb8, 0x11d1, 0xa2,0xcf, 0x00,0x80,0x5f,0xc7,0x92,0x35);
++
++#ifdef __cplusplus
++class DECLSPEC_UUID("f618c515-dfb8-11d1-a2cf-00805fc79235") COMAdminCatalogObject;
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(COMAdminCatalogObject, 0xf618c515, 0xdfb8, 0x11d1, 0xa2,0xcf, 0x00,0x80,0x5f,0xc7,0x92,0x35)
++#endif
++#endif
++
++/*****************************************************************************
++ * COMAdminCatalogCollection coclass
++ */
++
++DEFINE_GUID(CLSID_COMAdminCatalogCollection, 0xf618c516, 0xdfb8, 0x11d1, 0xa2,0xcf, 0x00,0x80,0x5f,0xc7,0x92,0x35);
++
++#ifdef __cplusplus
++class DECLSPEC_UUID("f618c516-dfb8-11d1-a2cf-00805fc79235") COMAdminCatalogCollection;
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(COMAdminCatalogCollection, 0xf618c516, 0xdfb8, 0x11d1, 0xa2,0xcf, 0x00,0x80,0x5f,0xc7,0x92,0x35)
++#endif
++#endif
+ 
+ #define COMAdminCollectionRoot ("Root")
++
+ #define COMAdminCollectionApplications ("Applications")
++
+ #define COMAdminCollectionComponents ("Components")
++
+ #define COMAdminCollectionComputerList ("ComputerList")
++
+ #define COMAdminCollectionApplicationCluster ("ApplicationCluster")
++
+ #define COMAdminCollectionLocalComputer ("LocalComputer")
++
+ #define COMAdminCollectionInprocServers ("InprocServers")
++
+ #define COMAdminCollectionRelatedCollectionInfo ("RelatedCollectionInfo")
++
+ #define COMAdminCollectionPropertyInfo ("PropertyInfo")
++
+ #define COMAdminCollectionRoles ("Roles")
++
+ #define COMAdminCollectionErrorInfo ("ErrorInfo")
++
+ #define COMAdminCollectionInterfacesForComponent ("InterfacesForComponent")
++
+ #define COMAdminCollectionRolesForComponent ("RolesForComponent")
++
+ #define COMAdminCollectionMethodsForInterface ("MethodsForInterface")
++
+ #define COMAdminCollectionRolesForInterface ("RolesForInterface")
++
+ #define COMAdminCollectionRolesForMethod ("RolesForMethod")
++
+ #define COMAdminCollectionUsersInRole ("UsersInRole")
++
+ #define COMAdminCollectionDCOMProtocols ("DCOMProtocols")
++
+ #define COMAdminCollectionPartitions ("Partitions")
+ 
+-  typedef enum COMAdminErrorCodes {
+-    COMAdminErrObjectErrors = (HRESULT)0x80110401,COMAdminErrObjectInvalid = (HRESULT)0x80110402,COMAdminErrKeyMissing = (HRESULT)0x80110403,
+-    COMAdminErrAlreadyInstalled = (HRESULT)0x80110404,COMAdminErrAppFileWriteFail = (HRESULT)0x80110407,
+-    COMAdminErrAppFileReadFail = (HRESULT)0x80110408,COMAdminErrAppFileVersion = (HRESULT)0x80110409,COMAdminErrBadPath = (HRESULT)0x8011040a,
+-    COMAdminErrApplicationExists = (HRESULT)0x8011040b,COMAdminErrRoleExists = (HRESULT)0x8011040c,COMAdminErrCantCopyFile = (HRESULT)0x8011040d,
+-    COMAdminErrNoUser = (HRESULT)0x8011040f,COMAdminErrInvalidUserids = (HRESULT)0x80110410,COMAdminErrNoRegistryCLSID = (HRESULT)0x80110411,
+-    COMAdminErrBadRegistryProgID = (HRESULT)0x80110412,COMAdminErrAuthenticationLevel = (HRESULT)0x80110413,
+-    COMAdminErrUserPasswdNotValid = (HRESULT)0x80110414,COMAdminErrCLSIDOrIIDMismatch = (HRESULT)0x80110418,
+-    COMAdminErrRemoteInterface = (HRESULT)0x80110419,COMAdminErrDllRegisterServer = (HRESULT)0x8011041a,
+-    COMAdminErrNoServerShare = (HRESULT)0x8011041b,COMAdminErrDllLoadFailed = (HRESULT)0x8011041d,COMAdminErrBadRegistryLibID = (HRESULT)0x8011041e,
+-    COMAdminErrAppDirNotFound = (HRESULT)0x8011041f,COMAdminErrRegistrarFailed = (HRESULT)0x80110423,
+-    COMAdminErrCompFileDoesNotExist = (HRESULT)0x80110424,COMAdminErrCompFileLoadDLLFail = (HRESULT)0x80110425,
+-    COMAdminErrCompFileGetClassObj = (HRESULT)0x80110426,COMAdminErrCompFileClassNotAvail = (HRESULT)0x80110427,
+-    COMAdminErrCompFileBadTLB = (HRESULT)0x80110428,COMAdminErrCompFileNotInstallable = (HRESULT)0x80110429,
+-    COMAdminErrNotChangeable = (HRESULT)0x8011042a,COMAdminErrNotDeletable = (HRESULT)0x8011042b,COMAdminErrSession = (HRESULT)0x8011042c,
+-    COMAdminErrCompMoveLocked = (HRESULT)0x8011042d,COMAdminErrCompMoveBadDest = (HRESULT)0x8011042e,COMAdminErrRegisterTLB = (HRESULT)0x80110430,
+-    COMAdminErrSystemApp = (HRESULT)0x80110433,COMAdminErrCompFileNoRegistrar = (HRESULT)0x80110434,
+-    COMAdminErrCoReqCompInstalled = (HRESULT)0x80110435,COMAdminErrServiceNotInstalled = (HRESULT)0x80110436,
+-    COMAdminErrPropertySaveFailed = (HRESULT)0x80110437,COMAdminErrObjectExists = (HRESULT)0x80110438,
+-    COMAdminErrComponentExists = (HRESULT)0x80110439,COMAdminErrRegFileCorrupt = (HRESULT)0x8011043b,
+-    COMAdminErrPropertyOverflow = (HRESULT)0x8011043c,COMAdminErrNotInRegistry = (HRESULT)0x8011043e,
+-    COMAdminErrObjectNotPoolable = (HRESULT)0x8011043f,COMAdminErrApplidMatchesClsid = (HRESULT)0x80110446,
+-    COMAdminErrRoleDoesNotExist = (HRESULT)0x80110447,COMAdminErrStartAppNeedsComponents = (HRESULT)0x80110448,
+-    COMAdminErrRequiresDifferentPlatform = (HRESULT)0x80110449,COMAdminErrQueuingServiceNotAvailable = (HRESULT)0x80110602,
+-    COMAdminErrObjectParentMissing = (HRESULT)0x80110808,COMAdminErrObjectDoesNotExist = (HRESULT)0x80110809,
+-    COMAdminErrCanNotExportAppProxy = (HRESULT)0x8011044a,COMAdminErrCanNotStartApp = (HRESULT)0x8011044b,
+-    COMAdminErrCanNotExportSystemApp = (HRESULT)0x8011044c,COMAdminErrCanNotSubscribeToComponent = (HRESULT)0x8011044d,
+-    COMAdminErrAppNotRunning = (HRESULT)0x8011080a,COMAdminErrEventClassCannotBeSubscriber = (HRESULT)0x8011044e,
+-    COMAdminErrLibAppProxyIncompatible = (HRESULT)0x8011044f,COMAdminErrBasePartitionOnly = (HRESULT)0x80110450,
+-    COMAdminErrDuplicatePartitionName = (HRESULT)0x80110457,COMAdminErrPartitionInUse = (HRESULT)0x80110459,
+-    COMAdminErrImportedComponentsNotAllowed = (HRESULT)0x8011045b,COMAdminErrRegdbNotInitialized = (HRESULT)0x80110472,
+-    COMAdminErrRegdbNotOpen = (HRESULT)0x80110473,COMAdminErrRegdbSystemErr = (HRESULT)0x80110474,
+-    COMAdminErrRegdbAlreadyRunning = (HRESULT)0x80110475,COMAdminErrMigVersionNotSupported = (HRESULT)0x80110480,
+-    COMAdminErrMigSchemaNotFound = (HRESULT)0x80110481,COMAdminErrCatBitnessMismatch = (HRESULT)0x80110482,
+-    COMAdminErrCatUnacceptableBitness = (HRESULT)0x80110483,COMAdminErrCatWrongAppBitnessBitness = (HRESULT)0x80110484,
+-    COMAdminErrCatPauseResumeNotSupported = (HRESULT)0x80110485,COMAdminErrCatServerFault = (HRESULT)0x80110486,
+-    COMAdminErrCantRecycleLibraryApps = (HRESULT)0x8011080f,COMAdminErrCantRecycleServiceApps = (HRESULT)0x80110811,
+-    COMAdminErrProcessAlreadyRecycled = (HRESULT)0x80110812,COMAdminErrPausedProcessMayNotBeRecycled = (HRESULT)0x80110813,
+-    COMAdminErrInvalidPartition = (HRESULT)0x8011080b,COMAdminErrPartitionMsiOnly = (HRESULT)0x80110819,
+-    COMAdminErrStartAppDisabled = (HRESULT)0x80110451,COMAdminErrCompMoveSource = (HRESULT)0x8011081c,
+-    COMAdminErrCompMoveDest = (HRESULT)0x8011081d,COMAdminErrCompMovePrivate = (HRESULT)0x8011081e,
+-    COMAdminErrCannotCopyEventClass = (HRESULT)0x80110820
+-  };
+-
+-  EXTERN_C const IID LIBID_COMAdmin;
+-  EXTERN_C const CLSID CLSID_COMAdminCatalog;
+-#ifdef __cplusplus
+-  class COMAdminCatalog;
+-#endif
+-  EXTERN_C const CLSID CLSID_COMAdminCatalogObject;
+-#ifdef __cplusplus
+-  class COMAdminCatalogObject;
+-#endif
+-  EXTERN_C const CLSID CLSID_COMAdminCatalogCollection;
+-#ifdef __cplusplus
+-  class COMAdminCatalogCollection;
+-#endif
+ #endif
++/* Begin additional prototypes for all interfaces */
+ 
+-  ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
+-  unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
+-  unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
+-  void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
+-  ULONG __RPC_API LPSAFEARRAY_UserSize(ULONG *,ULONG,LPSAFEARRAY *);
+-  unsigned char *__RPC_API LPSAFEARRAY_UserMarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
+-  unsigned char *__RPC_API LPSAFEARRAY_UserUnmarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
+-  void __RPC_API LPSAFEARRAY_UserFree(ULONG *,LPSAFEARRAY *);
+-  ULONG __RPC_API VARIANT_UserSize(ULONG *,ULONG,VARIANT *);
+-  unsigned char *__RPC_API VARIANT_UserMarshal(ULONG *,unsigned char *,VARIANT *);
+-  unsigned char *__RPC_API VARIANT_UserUnmarshal(ULONG *,unsigned char *,VARIANT *);
+-  void __RPC_API VARIANT_UserFree(ULONG *,VARIANT *);
++ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
++unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
++unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
++void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
++ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
++unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
++unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
++void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
++
++/* End additional prototypes */
+ 
+ #ifdef __cplusplus
+ }
+ #endif
+-#endif
++
++#endif /* __comadmin_h__ */
+-- 
+2.1.0
+
diff --git a/0017-Updated-imported-headers-to-current-Wine-version.patch b/0017-Updated-imported-headers-to-current-Wine-version.patch
new file mode 100644
index 0000000..32b3313
--- /dev/null
+++ b/0017-Updated-imported-headers-to-current-Wine-version.patch
@@ -0,0 +1,6206 @@
+From 9acc0a66ac3568c4d7b5c7a48c16ff34d65b30b5 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Fri, 17 Jan 2014 13:35:06 +0000
+Subject: [PATCH 17/25] Updated imported headers to current Wine version.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6443 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/direct-x/include/d3d8.h        |   87 +-
+ mingw-w64-headers/direct-x/include/d3d9.h        |  175 +-
+ mingw-w64-headers/direct-x/include/d3drmobj.h    |   14 +-
+ mingw-w64-headers/direct-x/include/d3dx9anim.h   |    7 +-
+ mingw-w64-headers/direct-x/include/d3dx9core.h   |   12 +-
+ mingw-w64-headers/direct-x/include/d3dx9effect.h |   88 +-
+ mingw-w64-headers/direct-x/include/d3dx9math.inl |  244 +--
+ mingw-w64-headers/direct-x/include/d3dx9mesh.h   |   62 +-
+ mingw-w64-headers/direct-x/include/dmusici.h     |    1 -
+ mingw-w64-headers/direct-x/include/dpaddr.h      |   20 +-
+ mingw-w64-headers/direct-x/include/dplay8.h      |  194 +-
+ mingw-w64-headers/direct-x/include/dplobby8.h    |   36 +-
+ mingw-w64-headers/direct-x/include/dpnathlp.h    |   58 +-
+ mingw-w64-headers/direct-x/include/vfwmsgs.h     |   11 +
+ mingw-w64-headers/include/axextend.idl           |  195 ++
+ mingw-w64-headers/include/corerror.h             |    6 +-
+ mingw-w64-headers/include/msctf.h                |  110 ++
+ mingw-w64-headers/include/msctf.idl              |   21 +
+ mingw-w64-headers/include/strmif.h               | 2171 ++++++++++++++++------
+ mingw-w64-headers/include/strmif.idl             |  382 ----
+ mingw-w64-headers/include/winhttp.h              |    2 +-
+ 21 files changed, 2448 insertions(+), 1448 deletions(-)
+
+diff --git a/mingw-w64-headers/direct-x/include/d3d8.h b/mingw-w64-headers/direct-x/include/d3d8.h
+index 7d06268..092907c 100644
+--- a/mingw-w64-headers/direct-x/include/d3d8.h
++++ b/mingw-w64-headers/direct-x/include/d3d8.h
+@@ -203,12 +203,12 @@ DECLARE_INTERFACE_(IDirect3DVolume8,IUnknown)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DVolume8 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid,CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID   refguid,void * pData, DWORD * pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
+     STDMETHOD(GetContainer)(THIS_ REFIID  riid, void ** ppContainer) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC * pDesc) PURE;
+-    STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox, DWORD  Flags) PURE;
++    STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
+     STDMETHOD(UnlockBox)(THIS) PURE;
+ };
+ #undef INTERFACE
+@@ -254,7 +254,8 @@ DECLARE_INTERFACE_(IDirect3DSwapChain8,IUnknown)
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DSwapChain8 methods ***/
+-    STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect, CONST RECT * pDestRect, HWND  hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
++    STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
++            const RGNDATA *dirty_region) PURE;
+     STDMETHOD(GetBackBuffer)(THIS_ UINT  BackBuffer, D3DBACKBUFFER_TYPE  Type, struct IDirect3DSurface8 ** ppBackBuffer) PURE;
+ };
+ #undef INTERFACE
+@@ -289,12 +290,12 @@ DECLARE_INTERFACE_(IDirect3DSurface8,IUnknown)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DSurface8 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid,CONST void * pData,DWORD  SizeOfData,DWORD  Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid,void * pData,DWORD * pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
+     STDMETHOD(GetContainer)(THIS_ REFIID  riid, void ** ppContainer) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC * pDesc) PURE;
+-    STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT * pLockedRect, CONST RECT * pRect,DWORD  Flags) PURE;
++    STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
+     STDMETHOD(UnlockRect)(THIS) PURE;
+ };
+ #undef INTERFACE
+@@ -341,7 +342,7 @@ DECLARE_INTERFACE_(IDirect3DResource8,IUnknown)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource8 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
+     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
+@@ -393,7 +394,7 @@ DECLARE_INTERFACE_(IDirect3DVertexBuffer8,IDirect3DResource8)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource8 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
+     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
+@@ -457,7 +458,7 @@ DECLARE_INTERFACE_(IDirect3DIndexBuffer8,IDirect3DResource8)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource8 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
+     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
+@@ -521,7 +522,7 @@ DECLARE_INTERFACE_(IDirect3DBaseTexture8,IDirect3DResource8)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource8 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
+     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
+@@ -585,7 +586,7 @@ DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource8 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
+     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
+@@ -599,9 +600,10 @@ DECLARE_INTERFACE_(IDirect3DCubeTexture8,IDirect3DBaseTexture8)
+     /*** IDirect3DCubeTexture8 methods ***/
+     STDMETHOD(GetLevelDesc)(THIS_ UINT  Level,D3DSURFACE_DESC * pDesc) PURE;
+     STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level,IDirect3DSurface8 ** ppCubeMapSurface) PURE;
+-    STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level,D3DLOCKED_RECT * pLockedRect,CONST RECT * pRect,DWORD  Flags) PURE;
++    STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES face, UINT level, D3DLOCKED_RECT *locked_rect,
++            const RECT *rect, DWORD flags) PURE;
+     STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES  FaceType,UINT  Level) PURE;
+-    STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES  FaceType,CONST RECT * pDirtyRect) PURE;
++    STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES face, const RECT *dirty_rect) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -667,7 +669,7 @@ DECLARE_INTERFACE_(IDirect3DTexture8,IDirect3DBaseTexture8)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource8 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
+     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
+@@ -681,9 +683,9 @@ DECLARE_INTERFACE_(IDirect3DTexture8,IDirect3DBaseTexture8)
+     /*** IDirect3DTexture8 methods ***/
+     STDMETHOD(GetLevelDesc)(THIS_ UINT  Level,D3DSURFACE_DESC * pDesc) PURE;
+     STDMETHOD(GetSurfaceLevel)(THIS_ UINT  Level,IDirect3DSurface8 ** ppSurfaceLevel) PURE;
+-    STDMETHOD(LockRect)(THIS_ UINT  Level,D3DLOCKED_RECT * pLockedRect,CONST RECT * pRect,DWORD  Flags) PURE;
++    STDMETHOD(LockRect)(THIS_ UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
+     STDMETHOD(UnlockRect)(THIS_ UINT  Level) PURE;
+-    STDMETHOD(AddDirtyRect)(THIS_ CONST RECT * pDirtyRect) PURE;
++    STDMETHOD(AddDirtyRect)(THIS_ const RECT *dirty_rect) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -749,7 +751,7 @@ DECLARE_INTERFACE_(IDirect3DVolumeTexture8,IDirect3DBaseTexture8)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource8 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice8 ** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID  refguid, CONST void * pData, DWORD  SizeOfData, DWORD  Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID  refguid, void * pData, DWORD * pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID  refguid) PURE;
+     STDMETHOD_(DWORD,SetPriority)(THIS_ DWORD  PriorityNew) PURE;
+@@ -763,9 +765,9 @@ DECLARE_INTERFACE_(IDirect3DVolumeTexture8,IDirect3DBaseTexture8)
+     /*** IDirect3DVolumeTexture8 methods ***/
+     STDMETHOD(GetLevelDesc)(THIS_ UINT  Level,D3DVOLUME_DESC * pDesc) PURE;
+     STDMETHOD(GetVolumeLevel)(THIS_ UINT  Level,IDirect3DVolume8 ** ppVolumeLevel) PURE;
+-    STDMETHOD(LockBox)(THIS_ UINT  Level,D3DLOCKED_BOX * pLockedVolume,CONST D3DBOX * pBox,DWORD  Flags) PURE;
++    STDMETHOD(LockBox)(THIS_ UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
+     STDMETHOD(UnlockBox)(THIS_ UINT  Level) PURE;
+-    STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX * pDirtyBox) PURE;
++    STDMETHOD(AddDirtyBox)(THIS_ const D3DBOX *dirty_box) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -842,10 +844,11 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
+     STDMETHOD_(WINBOOL,ShowCursor)(THIS_ WINBOOL  bShow) PURE;
+     STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters, IDirect3DSwapChain8 ** pSwapChain) PURE;
+     STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS * pPresentationParameters) PURE;
+-    STDMETHOD(Present)(THIS_ CONST RECT * pSourceRect,CONST RECT * pDestRect,HWND  hDestWindowOverride,CONST RGNDATA * pDirtyRegion) PURE;
++    STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
++            const RGNDATA *dirty_region) PURE;
+     STDMETHOD(GetBackBuffer)(THIS_ UINT  BackBuffer,D3DBACKBUFFER_TYPE  Type,IDirect3DSurface8 ** ppBackBuffer) PURE;
+     STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS * pRasterStatus) PURE;
+-    STDMETHOD_(void,SetGammaRamp)(THIS_ DWORD  Flags,CONST D3DGAMMARAMP * pRamp) PURE;
++    STDMETHOD_(void, SetGammaRamp)(THIS_ DWORD flags, const D3DGAMMARAMP *ramp) PURE;
+     STDMETHOD_(void,GetGammaRamp)(THIS_ D3DGAMMARAMP * pRamp) PURE;
+     STDMETHOD(CreateTexture)(THIS_ UINT  Width,UINT  Height,UINT  Levels,DWORD  Usage,D3DFORMAT  Format,D3DPOOL  Pool,IDirect3DTexture8 ** ppTexture) PURE;
+     STDMETHOD(CreateVolumeTexture)(THIS_ UINT  Width,UINT  Height,UINT  Depth,UINT  Levels,DWORD  Usage,D3DFORMAT  Format,D3DPOOL  Pool,IDirect3DVolumeTexture8 ** ppVolumeTexture) PURE;
+@@ -855,7 +858,8 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
+     STDMETHOD(CreateRenderTarget)(THIS_ UINT  Width,UINT  Height,D3DFORMAT  Format,D3DMULTISAMPLE_TYPE  MultiSample,WINBOOL  Lockable,IDirect3DSurface8 ** ppSurface) PURE;
+     STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT  Width,UINT  Height,D3DFORMAT  Format,D3DMULTISAMPLE_TYPE  MultiSample,IDirect3DSurface8 ** ppSurface) PURE;
+     STDMETHOD(CreateImageSurface)(THIS_ UINT  Width,UINT  Height,D3DFORMAT  Format,IDirect3DSurface8 ** ppSurface) PURE;
+-    STDMETHOD(CopyRects)(THIS_ IDirect3DSurface8 * pSourceSurface,CONST RECT * pSourceRectsArray,UINT  cRects,IDirect3DSurface8 * pDestinationSurface,CONST POINT * pDestPointsArray) PURE;
++    STDMETHOD(CopyRects)(THIS_ IDirect3DSurface8 *src_surface, const RECT *src_rects,
++            UINT rect_count, IDirect3DSurface8 *dst_surface, const POINT *dst_points) PURE;
+     STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture8 * pSourceTexture,IDirect3DBaseTexture8 * pDestinationTexture) PURE;
+     STDMETHOD(GetFrontBuffer)(THIS_ IDirect3DSurface8 * pDestSurface) PURE;
+     STDMETHOD(SetRenderTarget)(THIS_ IDirect3DSurface8 * pRenderTarget,IDirect3DSurface8 * pNewZStencil) PURE;
+@@ -863,19 +867,20 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
+     STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface8 ** ppZStencilSurface) PURE;
+     STDMETHOD(BeginScene)(THIS) PURE;
+     STDMETHOD(EndScene)(THIS) PURE;
+-    STDMETHOD(Clear)(THIS_ DWORD  Count,CONST D3DRECT * pRects,DWORD  Flags,D3DCOLOR  Color,float  Z,DWORD  Stencil) PURE;
+-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE  State,CONST D3DMATRIX * pMatrix) PURE;
++    STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags, D3DCOLOR color,
++            float z, DWORD stencil) PURE;
++    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
+     STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE  State,D3DMATRIX * pMatrix) PURE;
+-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE  State, CONST D3DMATRIX * pMatrix) PURE;
+-    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT8 * pViewport) PURE;
++    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
++    STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT8 *viewport) PURE;
+     STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT8 * pViewport) PURE;
+-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL8 * pMaterial) PURE;
++    STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL8 *material) PURE;
+     STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL8 *pMaterial) PURE;
+-    STDMETHOD(SetLight)(THIS_ DWORD  Index,CONST D3DLIGHT8 * pLight) PURE;
++    STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT8 *light) PURE;
+     STDMETHOD(GetLight)(THIS_ DWORD  Index,D3DLIGHT8 * pLight) PURE;
+     STDMETHOD(LightEnable)(THIS_ DWORD  Index,WINBOOL  Enable) PURE;
+     STDMETHOD(GetLightEnable)(THIS_ DWORD  Index,WINBOOL * pEnable) PURE;
+-    STDMETHOD(SetClipPlane)(THIS_ DWORD  Index,CONST float * pPlane) PURE;
++    STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
+     STDMETHOD(GetClipPlane)(THIS_ DWORD  Index,float * pPlane) PURE;
+     STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE  State,DWORD  Value) PURE;
+     STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE  State,DWORD * pValue) PURE;
+@@ -885,7 +890,7 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
+     STDMETHOD(CaptureStateBlock)(THIS_ DWORD  Token) PURE;
+     STDMETHOD(DeleteStateBlock)(THIS_ DWORD  Token) PURE;
+     STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE  Type,DWORD * pToken) PURE;
+-    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS8 * pClipStatus) PURE;
++    STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS8 *clip_status) PURE;
+     STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS8 * pClipStatus) PURE;
+     STDMETHOD(GetTexture)(THIS_ DWORD  Stage,IDirect3DBaseTexture8 ** ppTexture) PURE;
+     STDMETHOD(SetTexture)(THIS_ DWORD  Stage,IDirect3DBaseTexture8 * pTexture) PURE;
+@@ -893,20 +898,24 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
+     STDMETHOD(SetTextureStageState)(THIS_ DWORD  Stage,D3DTEXTURESTAGESTATETYPE  Type,DWORD  Value) PURE;
+     STDMETHOD(ValidateDevice)(THIS_ DWORD * pNumPasses) PURE;
+     STDMETHOD(GetInfo)(THIS_ DWORD  DevInfoID,void * pDevInfoStruct,DWORD  DevInfoStructSize) PURE;
+-    STDMETHOD(SetPaletteEntries)(THIS_ UINT  PaletteNumber,CONST PALETTEENTRY * pEntries) PURE;
++    STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
+     STDMETHOD(GetPaletteEntries)(THIS_ UINT  PaletteNumber,PALETTEENTRY * pEntries) PURE;
+     STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT  PaletteNumber) PURE;
+     STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT  * PaletteNumber) PURE;
+     STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  StartVertex,UINT  PrimitiveCount) PURE;
+     STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  minIndex,UINT  NumVertices,UINT  startIndex,UINT  primCount) PURE;
+-    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  PrimitiveCount,CONST void * pVertexStreamZeroData,UINT  VertexStreamZeroStride) PURE;
+-    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE  PrimitiveType,UINT  MinVertexIndex,UINT  NumVertexIndices,UINT  PrimitiveCount,CONST void * pIndexData,D3DFORMAT  IndexDataFormat,CONST void * pVertexStreamZeroData,UINT  VertexStreamZeroStride) PURE;
++    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT primitive_count,
++            const void *data, UINT stride) PURE;
++    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx,
++            UINT vertex_count, UINT primitive_count, const void *index_data, D3DFORMAT index_format,
++            const void *data, UINT stride) PURE;
+     STDMETHOD(ProcessVertices)(THIS_ UINT  SrcStartIndex,UINT  DestIndex,UINT  VertexCount,IDirect3DVertexBuffer8 * pDestBuffer,DWORD  Flags) PURE;
+-    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD * pDeclaration,CONST DWORD * pFunction,DWORD * pHandle,DWORD  Usage) PURE;
++    STDMETHOD(CreateVertexShader)(THIS_ const DWORD *declaration, const DWORD *byte_code,
++            DWORD *shader, DWORD usage) PURE;
+     STDMETHOD(SetVertexShader)(THIS_ DWORD  Handle) PURE;
+     STDMETHOD(GetVertexShader)(THIS_ DWORD * pHandle) PURE;
+     STDMETHOD(DeleteVertexShader)(THIS_ DWORD  Handle) PURE;
+-    STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD  Register,CONST void * pConstantData,DWORD  ConstantCount) PURE;
++    STDMETHOD(SetVertexShaderConstant)(THIS_ DWORD reg_idx, const void *data, DWORD count) PURE;
+     STDMETHOD(GetVertexShaderConstant)(THIS_ DWORD  Register,void * pConstantData,DWORD  ConstantCount) PURE;
+     STDMETHOD(GetVertexShaderDeclaration)(THIS_ DWORD  Handle,void * pData,DWORD * pSizeOfData) PURE;
+     STDMETHOD(GetVertexShaderFunction)(THIS_ DWORD  Handle,void * pData,DWORD * pSizeOfData) PURE;
+@@ -914,15 +923,17 @@ DECLARE_INTERFACE_(IDirect3DDevice8,IUnknown)
+     STDMETHOD(GetStreamSource)(THIS_ UINT  StreamNumber,IDirect3DVertexBuffer8 ** ppStreamData,UINT * pStride) PURE;
+     STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer8 * pIndexData,UINT  BaseVertexIndex) PURE;
+     STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer8 ** ppIndexData,UINT * pBaseVertexIndex) PURE;
+-    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD * pFunction,DWORD * pHandle) PURE;
++    STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, DWORD *shader) PURE;
+     STDMETHOD(SetPixelShader)(THIS_ DWORD  Handle) PURE;
+     STDMETHOD(GetPixelShader)(THIS_ DWORD * pHandle) PURE;
+     STDMETHOD(DeletePixelShader)(THIS_ DWORD  Handle) PURE;
+-    STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD  Register,CONST void * pConstantData,DWORD  ConstantCount) PURE;
++    STDMETHOD(SetPixelShaderConstant)(THIS_ DWORD reg_idx, const void *data, DWORD count) PURE;
+     STDMETHOD(GetPixelShaderConstant)(THIS_ DWORD  Register,void * pConstantData,DWORD  ConstantCount) PURE;
+     STDMETHOD(GetPixelShaderFunction)(THIS_ DWORD  Handle,void * pData,DWORD * pSizeOfData) PURE;
+-    STDMETHOD(DrawRectPatch)(THIS_ UINT  Handle,CONST float * pNumSegs,CONST D3DRECTPATCH_INFO * pRectPatchInfo) PURE;
+-    STDMETHOD(DrawTriPatch)(THIS_ UINT  Handle,CONST float * pNumSegs,CONST D3DTRIPATCH_INFO * pTriPatchInfo) PURE;
++    STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count,
++            const D3DRECTPATCH_INFO *patch_info) PURE;
++    STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count,
++            const D3DTRIPATCH_INFO *patch_info) PURE;
+     STDMETHOD(DeletePatch)(THIS_ UINT  Handle) PURE;
+ };
+ #undef INTERFACE
+diff --git a/mingw-w64-headers/direct-x/include/d3d9.h b/mingw-w64-headers/direct-x/include/d3d9.h
+index da052f6..d810066 100644
+--- a/mingw-w64-headers/direct-x/include/d3d9.h
++++ b/mingw-w64-headers/direct-x/include/d3d9.h
+@@ -280,8 +280,9 @@ DECLARE_INTERFACE_(IDirect3D9Ex,IDirect3D9)
+     STDMETHOD_(HMONITOR, GetAdapterMonitor)(THIS_ UINT Adapter) PURE;
+     STDMETHOD(CreateDevice)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, struct IDirect3DDevice9** ppReturnedDeviceInterface) PURE;
+     /*** IDirect3D9Ex methods ***/
+-    STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter) PURE;
+-    STDMETHOD(EnumAdapterModesEx)(THIS_ UINT Adapter, CONST D3DDISPLAYMODEFILTER *pFilter, UINT Mode, D3DDISPLAYMODEEX* pMode) PURE;
++    STDMETHOD_(UINT, GetAdapterModeCountEx)(THIS_ UINT adapter_idx, const D3DDISPLAYMODEFILTER *filter) PURE;
++    STDMETHOD(EnumAdapterModesEx)(THIS_ UINT adapter_idx, const D3DDISPLAYMODEFILTER *filter,
++            UINT mode_idx, D3DDISPLAYMODEEX *mode) PURE;
+     STDMETHOD(GetAdapterDisplayModeEx)(THIS_ UINT Adapter, D3DDISPLAYMODEEX *pMode, D3DDISPLAYROTATION *pRotation);
+     STDMETHOD(CreateDeviceEx)(THIS_ UINT Adapter, D3DDEVTYPE DeviceType, HWND hFocusWindow, DWORD BehaviorFlags, D3DPRESENT_PARAMETERS* pPresentationParameters, D3DDISPLAYMODEEX* pFullscreenDisplayMode, struct IDirect3DDevice9Ex **ppReturnedDeviceInterface) PURE;
+     STDMETHOD(GetAdapterLUID)(THIS_ UINT Adatper, LUID *pLUID) PURE;
+@@ -348,12 +349,12 @@ DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DVolume9 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+     STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3DVOLUME_DESC* pDesc) PURE;
+-    STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE;
++    STDMETHOD(LockBox)(THIS_ D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
+     STDMETHOD(UnlockBox)(THIS) PURE;
+ };
+ #undef INTERFACE
+@@ -399,7 +400,8 @@ DECLARE_INTERFACE_(IDirect3DSwapChain9,IUnknown)
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DSwapChain9 methods ***/
+-    STDMETHOD(Present)(THIS_ CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) PURE;
++    STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
++            const RGNDATA *dirty_region, DWORD flags) PURE;
+     STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9 *pDestSurface) PURE;
+     STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface9 **ppBackBuffer) PURE;
+     STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS *pRasterStatus) PURE;
+@@ -448,7 +450,8 @@ DECLARE_INTERFACE_(IDirect3DSwapChain9Ex,IDirect3DSwapChain9)
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DSwapChain9 methods ***/
+-    STDMETHOD(Present)(THIS_ CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) PURE;
++    STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect, HWND dst_window_override,
++            const RGNDATA *dirty_region, DWORD flags) PURE;
+     STDMETHOD(GetFrontBufferData)(THIS_ struct IDirect3DSurface9 *pDestSurface) PURE;
+     STDMETHOD(GetBackBuffer)(THIS_ UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, struct IDirect3DSurface9 **ppBackBuffer) PURE;
+     STDMETHOD(GetRasterStatus)(THIS_ D3DRASTER_STATUS *pRasterStatus) PURE;
+@@ -510,7 +513,7 @@ DECLARE_INTERFACE_(IDirect3DResource9,IUnknown)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource9 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+     STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+@@ -562,7 +565,7 @@ DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource9 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+     STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+@@ -572,7 +575,7 @@ DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
+     /*** IDirect3DSurface9 methods ***/
+     STDMETHOD(GetContainer)(THIS_ REFIID riid, void** ppContainer) PURE;
+     STDMETHOD(GetDesc)(THIS_ D3DSURFACE_DESC* pDesc) PURE;
+-    STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
++    STDMETHOD(LockRect)(THIS_ D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
+     STDMETHOD(UnlockRect)(THIS) PURE;
+     STDMETHOD(GetDC)(THIS_ HDC* phdc) PURE;
+     STDMETHOD(ReleaseDC)(THIS_ HDC hdc) PURE;
+@@ -635,7 +638,7 @@ DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource9 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+     STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+@@ -699,7 +702,7 @@ DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource9 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+     STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+@@ -763,7 +766,7 @@ DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource9 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+     STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+@@ -836,7 +839,7 @@ DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource9 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+     STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+@@ -853,9 +856,10 @@ DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
+     /*** IDirect3DCubeTexture9 methods ***/
+     STDMETHOD(GetLevelDesc)(THIS_ UINT Level,D3DSURFACE_DESC* pDesc) PURE;
+     STDMETHOD(GetCubeMapSurface)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, IDirect3DSurface9** ppCubeMapSurface) PURE;
+-    STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
++    STDMETHOD(LockRect)(THIS_ D3DCUBEMAP_FACES face, UINT level,
++            D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
+     STDMETHOD(UnlockRect)(THIS_ D3DCUBEMAP_FACES FaceType, UINT Level) PURE;
+-    STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES FaceType, CONST RECT* pDirtyRect) PURE;
++    STDMETHOD(AddDirtyRect)(THIS_ D3DCUBEMAP_FACES face, const RECT *dirty_rect) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -927,7 +931,7 @@ DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource9 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+     STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+@@ -944,9 +948,9 @@ DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
+     /*** IDirect3DTexture9 methods ***/
+     STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DSURFACE_DESC* pDesc) PURE;
+     STDMETHOD(GetSurfaceLevel)(THIS_ UINT Level, IDirect3DSurface9** ppSurfaceLevel) PURE;
+-    STDMETHOD(LockRect)(THIS_ UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) PURE;
++    STDMETHOD(LockRect)(THIS_ UINT level, D3DLOCKED_RECT *locked_rect, const RECT *rect, DWORD flags) PURE;
+     STDMETHOD(UnlockRect)(THIS_ UINT Level) PURE;
+-    STDMETHOD(AddDirtyRect)(THIS_ CONST RECT* pDirtyRect) PURE;
++    STDMETHOD(AddDirtyRect)(THIS_ const RECT *dirty_rect) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -1018,7 +1022,7 @@ DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirect3DResource9 methods ***/
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9** ppDevice) PURE;
+-    STDMETHOD(SetPrivateData)(THIS_ REFGUID refguid, CONST void* pData, DWORD SizeOfData, DWORD Flags) PURE;
++    STDMETHOD(SetPrivateData)(THIS_ REFGUID guid, const void *data, DWORD data_size, DWORD flags) PURE;
+     STDMETHOD(GetPrivateData)(THIS_ REFGUID refguid, void* pData, DWORD* pSizeOfData) PURE;
+     STDMETHOD(FreePrivateData)(THIS_ REFGUID refguid) PURE;
+     STDMETHOD_(DWORD, SetPriority)(THIS_ DWORD PriorityNew) PURE;
+@@ -1035,9 +1039,9 @@ DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
+     /*** IDirect3DVolumeTexture9 methods ***/
+     STDMETHOD(GetLevelDesc)(THIS_ UINT Level, D3DVOLUME_DESC *pDesc) PURE;
+     STDMETHOD(GetVolumeLevel)(THIS_ UINT Level, IDirect3DVolume9** ppVolumeLevel) PURE;
+-    STDMETHOD(LockBox)(THIS_ UINT Level, D3DLOCKED_BOX* pLockedVolume, CONST D3DBOX* pBox, DWORD Flags) PURE;
++    STDMETHOD(LockBox)(THIS_ UINT level, D3DLOCKED_BOX *locked_box, const D3DBOX *box, DWORD flags) PURE;
+     STDMETHOD(UnlockBox)(THIS_ UINT Level) PURE;
+-    STDMETHOD(AddDirtyBox)(THIS_ CONST D3DBOX* pDirtyBox) PURE;
++    STDMETHOD(AddDirtyBox)(THIS_ const D3DBOX *dirty_box) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -1304,11 +1308,12 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
+     STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
+     STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
+     STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
+-    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE;
++    STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect,
++            HWND dst_window_override, const RGNDATA *dirty_region) PURE;
+     STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
+     STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
+     STDMETHOD(SetDialogBoxMode)(THIS_ WINBOOL bEnableDialogs) PURE;
+-    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE;
++    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT swapchain_idx, DWORD flags, const D3DGAMMARAMP *ramp) PURE;
+     STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
+     STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
+     STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
+@@ -1317,12 +1322,14 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
+     STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
+     STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, WINBOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
+     STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, WINBOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
+-    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE;
++    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
++            IDirect3DSurface9 *dst_surface, const POINT *dst_point) PURE;
+     STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
+     STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
+     STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
+-    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE;
+-    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE;
++    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
++            IDirect3DSurface9 *dst_surface, const RECT *dst_rect, D3DTEXTUREFILTERTYPE filter) PURE;
++    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9 *surface, const RECT *rect, D3DCOLOR color) PURE;
+     STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
+     STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
+     STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
+@@ -1330,26 +1337,27 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
+     STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
+     STDMETHOD(BeginScene)(THIS) PURE;
+     STDMETHOD(EndScene)(THIS) PURE;
+-    STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE;
+-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE;
++    STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags,
++            D3DCOLOR color, float z, DWORD stencil) PURE;
++    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
+     STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
+-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE;
+-    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
++    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
++    STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT9 *viewport) PURE;
+     STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
+-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
++    STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL9 *material) PURE;
+     STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
+-    STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE;
++    STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT9 *light) PURE;
+     STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
+     STDMETHOD(LightEnable)(THIS_ DWORD Index, WINBOOL Enable) PURE;
+     STDMETHOD(GetLightEnable)(THIS_ DWORD Index, WINBOOL* pEnable) PURE;
+-    STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE;
++    STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
+     STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
+     STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
+     STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
+     STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
+     STDMETHOD(BeginStateBlock)(THIS) PURE;
+     STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
+-    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
++    STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS9 *clip_status) PURE;
+     STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
+     STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
+     STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
+@@ -1358,11 +1366,11 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
+     STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
+     STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
+     STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
+-    STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
++    STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
+     STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
+     STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
+     STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
+-    STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE;
++    STDMETHOD(SetScissorRect)(THIS_ const RECT *rect) PURE;
+     STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
+     STDMETHOD(SetSoftwareVertexProcessing)(THIS_ WINBOOL bSoftware) PURE;
+     STDMETHOD_(WINBOOL, GetSoftwareVertexProcessing)(THIS) PURE;
+@@ -1370,22 +1378,25 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
+     STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
+     STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
+     STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
+-    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
+-    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
++    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type,
++            UINT primitive_count, const void *data, UINT stride) PURE;
++    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx, UINT vertex_count,
++            UINT primitive_count, const void *index_data, D3DFORMAT index_format, const void *data, UINT stride) PURE;
+     STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
+-    STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE;
++    STDMETHOD(CreateVertexDeclaration)(THIS_ const D3DVERTEXELEMENT9 *elements,
++            IDirect3DVertexDeclaration9 **declaration) PURE;
+     STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
+     STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
+     STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
+     STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
+-    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE;
++    STDMETHOD(CreateVertexShader)(THIS_ const DWORD *byte_code, IDirect3DVertexShader9 **shader) PURE;
+     STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
+     STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
+-    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
++    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
+     STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
+-    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
++    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
+     STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
+-    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST WINBOOL* pConstantData, UINT  BoolCount) PURE;
++    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT reg_idx, const WINBOOL *data, UINT count) PURE;
+     STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, WINBOOL* pConstantData, UINT BoolCount) PURE;
+     STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
+     STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
+@@ -1393,17 +1404,17 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
+     STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
+     STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
+     STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
+-    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE;
++    STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, IDirect3DPixelShader9 **shader) PURE;
+     STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
+     STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
+-    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
++    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
+     STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
+-    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
++    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
+     STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
+-    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST WINBOOL* pConstantData, UINT  BoolCount) PURE;
++    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT reg_idx, const WINBOOL *data, UINT count) PURE;
+     STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, WINBOOL* pConstantData, UINT BoolCount) PURE;
+-    STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
+-    STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
++    STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count, const D3DRECTPATCH_INFO *patch_info) PURE;
++    STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count, const D3DTRIPATCH_INFO *patch_info) PURE;
+     STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
+     STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
+ };
+@@ -1681,11 +1692,12 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
+     STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
+     STDMETHOD_(UINT, GetNumberOfSwapChains)(THIS) PURE;
+     STDMETHOD(Reset)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters) PURE;
+-    STDMETHOD(Present)(THIS_ CONST RECT* pSourceRect, CONST RECT* pDestRect, HWND hDestWindowOverride, CONST RGNDATA* pDirtyRegion) PURE;
++    STDMETHOD(Present)(THIS_ const RECT *src_rect, const RECT *dst_rect,
++            HWND dst_window_override, const RGNDATA *dirty_region) PURE;
+     STDMETHOD(GetBackBuffer)(THIS_ UINT iSwapChain, UINT iBackBuffer, D3DBACKBUFFER_TYPE Type, IDirect3DSurface9** ppBackBuffer) PURE;
+     STDMETHOD(GetRasterStatus)(THIS_ UINT iSwapChain, D3DRASTER_STATUS* pRasterStatus) PURE;
+     STDMETHOD(SetDialogBoxMode)(THIS_ WINBOOL bEnableDialogs) PURE;
+-    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT iSwapChain, DWORD Flags, CONST D3DGAMMARAMP* pRamp) PURE;
++    STDMETHOD_(void, SetGammaRamp)(THIS_ UINT swapchain_idx, DWORD flags, const D3DGAMMARAMP *ramp) PURE;
+     STDMETHOD_(void, GetGammaRamp)(THIS_ UINT iSwapChain, D3DGAMMARAMP* pRamp) PURE;
+     STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture, HANDLE* pSharedHandle) PURE;
+     STDMETHOD(CreateVolumeTexture)(THIS_ UINT Width, UINT Height, UINT Depth, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DVolumeTexture9** ppVolumeTexture, HANDLE* pSharedHandle) PURE;
+@@ -1694,12 +1706,14 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
+     STDMETHOD(CreateIndexBuffer)(THIS_ UINT Length, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DIndexBuffer9** ppIndexBuffer, HANDLE* pSharedHandle) PURE;
+     STDMETHOD(CreateRenderTarget)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, WINBOOL Lockable, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
+     STDMETHOD(CreateDepthStencilSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DMULTISAMPLE_TYPE MultiSample, DWORD MultisampleQuality, WINBOOL Discard, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
+-    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestinationSurface, CONST POINT* pDestPoint) PURE;
++    STDMETHOD(UpdateSurface)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
++            IDirect3DSurface9 *dst_surface, const POINT *dst_point) PURE;
+     STDMETHOD(UpdateTexture)(THIS_ IDirect3DBaseTexture9* pSourceTexture, IDirect3DBaseTexture9* pDestinationTexture) PURE;
+     STDMETHOD(GetRenderTargetData)(THIS_ IDirect3DSurface9* pRenderTarget, IDirect3DSurface9* pDestSurface) PURE;
+     STDMETHOD(GetFrontBufferData)(THIS_ UINT iSwapChain, IDirect3DSurface9* pDestSurface) PURE;
+-    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9* pSourceSurface, CONST RECT* pSourceRect, IDirect3DSurface9* pDestSurface, CONST RECT* pDestRect, D3DTEXTUREFILTERTYPE Filter) PURE;
+-    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9* pSurface, CONST RECT* pRect, D3DCOLOR color) PURE;
++    STDMETHOD(StretchRect)(THIS_ IDirect3DSurface9 *src_surface, const RECT *src_rect,
++            IDirect3DSurface9 *dst_surface, const RECT *dst_rect, D3DTEXTUREFILTERTYPE filter) PURE;
++    STDMETHOD(ColorFill)(THIS_ IDirect3DSurface9 *surface, const RECT *rect, D3DCOLOR color) PURE;
+     STDMETHOD(CreateOffscreenPlainSurface)(THIS_ UINT Width, UINT Height, D3DFORMAT Format, D3DPOOL Pool, IDirect3DSurface9** ppSurface, HANDLE* pSharedHandle) PURE;
+     STDMETHOD(SetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9* pRenderTarget) PURE;
+     STDMETHOD(GetRenderTarget)(THIS_ DWORD RenderTargetIndex, IDirect3DSurface9** ppRenderTarget) PURE;
+@@ -1707,26 +1721,27 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
+     STDMETHOD(GetDepthStencilSurface)(THIS_ IDirect3DSurface9** ppZStencilSurface) PURE;
+     STDMETHOD(BeginScene)(THIS) PURE;
+     STDMETHOD(EndScene)(THIS) PURE;
+-    STDMETHOD(Clear)(THIS_ DWORD Count, CONST D3DRECT* pRects, DWORD Flags, D3DCOLOR Color, float Z, DWORD Stencil) PURE;
+-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX* pMatrix) PURE;
++    STDMETHOD(Clear)(THIS_ DWORD rect_count, const D3DRECT *rects, DWORD flags,
++            D3DCOLOR color, float z, DWORD stencil) PURE;
++    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
+     STDMETHOD(GetTransform)(THIS_ D3DTRANSFORMSTATETYPE State, D3DMATRIX* pMatrix) PURE;
+-    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE, CONST D3DMATRIX*) PURE;
+-    STDMETHOD(SetViewport)(THIS_ CONST D3DVIEWPORT9* pViewport) PURE;
++    STDMETHOD(MultiplyTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
++    STDMETHOD(SetViewport)(THIS_ const D3DVIEWPORT9 *viewport) PURE;
+     STDMETHOD(GetViewport)(THIS_ D3DVIEWPORT9* pViewport) PURE;
+-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* pMaterial) PURE;
++    STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL9 *material) PURE;
+     STDMETHOD(GetMaterial)(THIS_ D3DMATERIAL9* pMaterial) PURE;
+-    STDMETHOD(SetLight)(THIS_ DWORD Index, CONST D3DLIGHT9*) PURE;
++    STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT9 *light) PURE;
+     STDMETHOD(GetLight)(THIS_ DWORD Index, D3DLIGHT9*) PURE;
+     STDMETHOD(LightEnable)(THIS_ DWORD Index, WINBOOL Enable) PURE;
+     STDMETHOD(GetLightEnable)(THIS_ DWORD Index, WINBOOL* pEnable) PURE;
+-    STDMETHOD(SetClipPlane)(THIS_ DWORD Index, CONST float* pPlane) PURE;
++    STDMETHOD(SetClipPlane)(THIS_ DWORD index, const float *plane) PURE;
+     STDMETHOD(GetClipPlane)(THIS_ DWORD Index, float* pPlane) PURE;
+     STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD Value) PURE;
+     STDMETHOD(GetRenderState)(THIS_ D3DRENDERSTATETYPE State, DWORD* pValue) PURE;
+     STDMETHOD(CreateStateBlock)(THIS_ D3DSTATEBLOCKTYPE Type, IDirect3DStateBlock9** ppSB) PURE;
+     STDMETHOD(BeginStateBlock)(THIS) PURE;
+     STDMETHOD(EndStateBlock)(THIS_ IDirect3DStateBlock9** ppSB) PURE;
+-    STDMETHOD(SetClipStatus)(THIS_ CONST D3DCLIPSTATUS9* pClipStatus) PURE;
++    STDMETHOD(SetClipStatus)(THIS_ const D3DCLIPSTATUS9 *clip_status) PURE;
+     STDMETHOD(GetClipStatus)(THIS_ D3DCLIPSTATUS9* pClipStatus) PURE;
+     STDMETHOD(GetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9** ppTexture) PURE;
+     STDMETHOD(SetTexture)(THIS_ DWORD Stage, IDirect3DBaseTexture9* pTexture) PURE;
+@@ -1735,11 +1750,11 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
+     STDMETHOD(GetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD* pValue) PURE;
+     STDMETHOD(SetSamplerState)(THIS_ DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value) PURE;
+     STDMETHOD(ValidateDevice)(THIS_ DWORD* pNumPasses) PURE;
+-    STDMETHOD(SetPaletteEntries)(THIS_ UINT PaletteNumber, CONST PALETTEENTRY* pEntries) PURE;
++    STDMETHOD(SetPaletteEntries)(THIS_ UINT palette_idx, const PALETTEENTRY *entries) PURE;
+     STDMETHOD(GetPaletteEntries)(THIS_ UINT PaletteNumber,PALETTEENTRY* pEntries) PURE;
+     STDMETHOD(SetCurrentTexturePalette)(THIS_ UINT PaletteNumber) PURE;
+     STDMETHOD(GetCurrentTexturePalette)(THIS_ UINT *PaletteNumber) PURE;
+-    STDMETHOD(SetScissorRect)(THIS_ CONST RECT* pRect) PURE;
++    STDMETHOD(SetScissorRect)(THIS_ const RECT *rect) PURE;
+     STDMETHOD(GetScissorRect)(THIS_ RECT* pRect) PURE;
+     STDMETHOD(SetSoftwareVertexProcessing)(THIS_ WINBOOL bSoftware) PURE;
+     STDMETHOD_(WINBOOL, GetSoftwareVertexProcessing)(THIS) PURE;
+@@ -1747,22 +1762,25 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
+     STDMETHOD_(float, GetNPatchMode)(THIS) PURE;
+     STDMETHOD(DrawPrimitive)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT StartVertex, UINT PrimitiveCount) PURE;
+     STDMETHOD(DrawIndexedPrimitive)(THIS_ D3DPRIMITIVETYPE, INT BaseVertexIndex, UINT MinVertexIndex, UINT NumVertices, UINT startIndex, UINT primCount) PURE;
+-    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT PrimitiveCount, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
+-    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE PrimitiveType, UINT MinVertexIndex, UINT NumVertices, UINT PrimitiveCount, CONST void* pIndexData, D3DFORMAT IndexDataFormat, CONST void* pVertexStreamZeroData, UINT VertexStreamZeroStride) PURE;
++    STDMETHOD(DrawPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type,
++            UINT primitive_count, const void *data, UINT stride) PURE;
++    STDMETHOD(DrawIndexedPrimitiveUP)(THIS_ D3DPRIMITIVETYPE primitive_type, UINT min_vertex_idx, UINT vertex_count,
++            UINT primitive_count, const void *index_data, D3DFORMAT index_format, const void *data, UINT stride) PURE;
+     STDMETHOD(ProcessVertices)(THIS_ UINT SrcStartIndex, UINT DestIndex, UINT VertexCount, IDirect3DVertexBuffer9* pDestBuffer, IDirect3DVertexDeclaration9* pVertexDecl, DWORD Flags) PURE;
+-    STDMETHOD(CreateVertexDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* pVertexElements, IDirect3DVertexDeclaration9** ppDecl) PURE;
++    STDMETHOD(CreateVertexDeclaration)(THIS_ const D3DVERTEXELEMENT9 *elements,
++            IDirect3DVertexDeclaration9 **declaration) PURE;
+     STDMETHOD(SetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9* pDecl) PURE;
+     STDMETHOD(GetVertexDeclaration)(THIS_ IDirect3DVertexDeclaration9** ppDecl) PURE;
+     STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
+     STDMETHOD(GetFVF)(THIS_ DWORD* pFVF) PURE;
+-    STDMETHOD(CreateVertexShader)(THIS_ CONST DWORD* pFunction, IDirect3DVertexShader9** ppShader) PURE;
++    STDMETHOD(CreateVertexShader)(THIS_ const DWORD *byte_core, IDirect3DVertexShader9 **shader) PURE;
+     STDMETHOD(SetVertexShader)(THIS_ IDirect3DVertexShader9* pShader) PURE;
+     STDMETHOD(GetVertexShader)(THIS_ IDirect3DVertexShader9** ppShader) PURE;
+-    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
++    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
+     STDMETHOD(GetVertexShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
+-    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
++    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
+     STDMETHOD(GetVertexShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
+-    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT StartRegister, CONST WINBOOL* pConstantData, UINT  BoolCount) PURE;
++    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT reg_idx, const WINBOOL *data, UINT count) PURE;
+     STDMETHOD(GetVertexShaderConstantB)(THIS_ UINT StartRegister, WINBOOL* pConstantData, UINT BoolCount) PURE;
+     STDMETHOD(SetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9* pStreamData, UINT OffsetInBytes, UINT Stride) PURE;
+     STDMETHOD(GetStreamSource)(THIS_ UINT StreamNumber, IDirect3DVertexBuffer9** ppStreamData, UINT* OffsetInBytes, UINT* pStride) PURE;
+@@ -1770,17 +1788,17 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
+     STDMETHOD(GetStreamSourceFreq)(THIS_ UINT StreamNumber, UINT* Divider) PURE;
+     STDMETHOD(SetIndices)(THIS_ IDirect3DIndexBuffer9* pIndexData) PURE;
+     STDMETHOD(GetIndices)(THIS_ IDirect3DIndexBuffer9** ppIndexData) PURE;
+-    STDMETHOD(CreatePixelShader)(THIS_ CONST DWORD* pFunction, IDirect3DPixelShader9** ppShader) PURE;
++    STDMETHOD(CreatePixelShader)(THIS_ const DWORD *byte_code, IDirect3DPixelShader9 **shader) PURE;
+     STDMETHOD(SetPixelShader)(THIS_ IDirect3DPixelShader9* pShader) PURE;
+     STDMETHOD(GetPixelShader)(THIS_ IDirect3DPixelShader9** ppShader) PURE;
+-    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT StartRegister, CONST float* pConstantData, UINT Vector4fCount) PURE;
++    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT reg_idx, const float *data, UINT count) PURE;
+     STDMETHOD(GetPixelShaderConstantF)(THIS_ UINT StartRegister, float* pConstantData, UINT Vector4fCount) PURE;
+-    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT StartRegister, CONST int* pConstantData, UINT Vector4iCount) PURE;
++    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT reg_idx, const int *data, UINT count) PURE;
+     STDMETHOD(GetPixelShaderConstantI)(THIS_ UINT StartRegister, int* pConstantData, UINT Vector4iCount) PURE;
+-    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT StartRegister, CONST WINBOOL* pConstantData, UINT  BoolCount) PURE;
++    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT reg_idx, const WINBOOL *data, UINT count) PURE;
+     STDMETHOD(GetPixelShaderConstantB)(THIS_ UINT StartRegister, WINBOOL* pConstantData, UINT BoolCount) PURE;
+-    STDMETHOD(DrawRectPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DRECTPATCH_INFO* pRectPatchInfo) PURE;
+-    STDMETHOD(DrawTriPatch)(THIS_ UINT Handle, CONST float* pNumSegs, CONST D3DTRIPATCH_INFO* pTriPatchInfo) PURE;
++    STDMETHOD(DrawRectPatch)(THIS_ UINT handle, const float *segment_count, const D3DRECTPATCH_INFO *patch_info) PURE;
++    STDMETHOD(DrawTriPatch)(THIS_ UINT handle, const float *segment_count, const D3DTRIPATCH_INFO *patch_info) PURE;
+     STDMETHOD(DeletePatch)(THIS_ UINT Handle) PURE;
+     STDMETHOD(CreateQuery)(THIS_ D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) PURE;
+     /* IDirect3DDevice9Ex methods */
+@@ -1788,7 +1806,8 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
+     STDMETHOD(ComposeRects)(THIS_ IDirect3DSurface9 *src_surface, IDirect3DSurface9 *dst_surface,
+             IDirect3DVertexBuffer9 *src_descs, UINT rect_count, IDirect3DVertexBuffer9 *dst_descs,
+             D3DCOMPOSERECTSOP operation, INT offset_x, INT offset_y) PURE;
+-    STDMETHOD(PresentEx)(THIS_ CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride, CONST RGNDATA *pDirtyRegion, DWORD dwFlags) PURE;
++    STDMETHOD(PresentEx)(THIS_ const RECT *src_rect, const RECT *dst_rect,
++            HWND dst_window_override, const RGNDATA *dirty_region, DWORD flags) PURE;
+     STDMETHOD(GetGPUThreadPriority)(THIS_ INT *pPriority) PURE;
+     STDMETHOD(SetGPUThreadPriority)(THIS_ INT Priority) PURE;
+     STDMETHOD(WaitForVBlank)(THIS_ UINT iSwapChain) PURE;
+diff --git a/mingw-w64-headers/direct-x/include/d3drmobj.h b/mingw-w64-headers/direct-x/include/d3drmobj.h
+index 159827e..810aa3d 100644
+--- a/mingw-w64-headers/direct-x/include/d3drmobj.h
++++ b/mingw-w64-headers/direct-x/include/d3drmobj.h
+@@ -1099,7 +1099,7 @@ DECLARE_INTERFACE_(IDirect3DRMFrame,IDirect3DRMVisual)
+     /*** IDirect3DRMFrame methods ***/
+     STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame *child) PURE;
+     STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+-    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
++    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
+     STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
+     STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+     STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
+@@ -1128,7 +1128,7 @@ DECLARE_INTERFACE_(IDirect3DRMFrame,IDirect3DRMVisual)
+     STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
+     STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame *child) PURE;
+     STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+-    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
++    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
+     STDMETHOD(DeleteVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
+     STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
+     STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
+@@ -1332,7 +1332,7 @@ DECLARE_INTERFACE_(IDirect3DRMFrame2,IDirect3DRMFrame)
+     /*** IDirect3DRMFrame methods ***/
+     STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame *child) PURE;
+     STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+-    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
++    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
+     STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
+     STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+     STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
+@@ -1361,7 +1361,7 @@ DECLARE_INTERFACE_(IDirect3DRMFrame2,IDirect3DRMFrame)
+     STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
+     STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame *child) PURE;
+     STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+-    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg) PURE;
++    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx) PURE;
+     STDMETHOD(DeleteVisual)(THIS_ IDirect3DRMVisual *visual) PURE;
+     STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
+     STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
+@@ -1393,7 +1393,7 @@ DECLARE_INTERFACE_(IDirect3DRMFrame2,IDirect3DRMFrame)
+     STDMETHOD(SetZbufferMode)(THIS_ D3DRMZBUFFERMODE) PURE;
+     STDMETHOD(Transform)(THIS_ D3DVECTOR *d, D3DVECTOR *s) PURE;
+     /*** IDirect3DRMFrame2 methods ***/
+-    STDMETHOD(AddMoveCallback2)(THIS_ D3DRMFRAMEMOVECALLBACK, VOID *arg, DWORD flags) PURE;
++    STDMETHOD(AddMoveCallback2)(THIS_ D3DRMFRAMEMOVECALLBACK cb, void *ctx, DWORD flags) PURE;
+     STDMETHOD(GetBox)(THIS_ D3DRMBOX *box) PURE;
+     STDMETHOD_(WINBOOL, GetBoxEnable)(THIS) PURE;
+     STDMETHOD(GetAxes)(THIS_ D3DVECTOR *dir, D3DVECTOR *up);
+@@ -1614,7 +1614,7 @@ DECLARE_INTERFACE_(IDirect3DRMFrame3,IDirect3DRMVisual)
+     /*** IDirect3DRMFrame3 methods ***/
+     STDMETHOD(AddChild)(THIS_ IDirect3DRMFrame3 *child) PURE;
+     STDMETHOD(AddLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+-    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK, VOID *arg, DWORD flags) PURE;
++    STDMETHOD(AddMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK cb, void *ctx, DWORD flags) PURE;
+     STDMETHOD(AddTransform)(THIS_ D3DRMCOMBINETYPE, D3DRMMATRIX4D) PURE;
+     STDMETHOD(AddTranslation)(THIS_ D3DRMCOMBINETYPE, D3DVALUE x, D3DVALUE y, D3DVALUE z) PURE;
+     STDMETHOD(AddScale)(THIS_ D3DRMCOMBINETYPE, D3DVALUE sx, D3DVALUE sy, D3DVALUE sz) PURE;
+@@ -1642,7 +1642,7 @@ DECLARE_INTERFACE_(IDirect3DRMFrame3,IDirect3DRMVisual)
+     STDMETHOD(Move)(THIS_ D3DVALUE delta) PURE;
+     STDMETHOD(DeleteChild)(THIS_ IDirect3DRMFrame3 *child) PURE;
+     STDMETHOD(DeleteLight)(THIS_ struct IDirect3DRMLight *light) PURE;
+-    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK, VOID *arg) PURE;
++    STDMETHOD(DeleteMoveCallback)(THIS_ D3DRMFRAME3MOVECALLBACK cb, void *ctx) PURE;
+     STDMETHOD(DeleteVisual)(THIS_ IUnknown *visual) PURE;
+     STDMETHOD_(D3DCOLOR, GetSceneBackground)(THIS) PURE;
+     STDMETHOD(GetSceneBackgroundDepth)(THIS_ IDirectDrawSurface **surface) PURE;
+diff --git a/mingw-w64-headers/direct-x/include/d3dx9anim.h b/mingw-w64-headers/direct-x/include/d3dx9anim.h
+index 4df6904..303286f 100644
+--- a/mingw-w64-headers/direct-x/include/d3dx9anim.h
++++ b/mingw-w64-headers/direct-x/include/d3dx9anim.h
+@@ -388,11 +388,12 @@ HRESULT WINAPI D3DXSaveMeshHierarchyToFileW(const WCHAR *filename, DWORD format,
+         ID3DXSaveUserData *user_data_saver);
+ #define D3DXSaveMeshHierarchyToFile __MINGW_NAME_AW(D3DXSaveMeshHierarchyToFile)
+ HRESULT WINAPI D3DXFrameDestroy(D3DXFRAME *frame_root, ID3DXAllocateHierarchy *alloc);
+-HRESULT WINAPI D3DXFrameAppendChild(LPD3DXFRAME, CONST D3DXFRAME*);
++HRESULT WINAPI D3DXFrameAppendChild(D3DXFRAME *parent, const D3DXFRAME *child);
+ D3DXFRAME * WINAPI D3DXFrameFind(const D3DXFRAME *root, const char *name);
+ HRESULT WINAPI D3DXFrameRegisterNamedMatrices(D3DXFRAME *frame_root, ID3DXAnimationController *animation_controller);
+-UINT WINAPI D3DXFrameNumNamedMatrices(CONST D3DXFRAME *frame_root);
+-HRESULT WINAPI D3DXFrameCalculateBoundingSphere(CONST D3DXFRAME*, LPD3DXVECTOR3, FLOAT*);
++UINT WINAPI D3DXFrameNumNamedMatrices(const D3DXFRAME *frame_root);
++HRESULT WINAPI D3DXFrameCalculateBoundingSphere(const D3DXFRAME *frame_root, D3DXVECTOR3 *center,
++        FLOAT *radius);
+ HRESULT WINAPI D3DXCreateKeyframedAnimationSet(const char *name, double ticks_per_second,
+         D3DXPLAYBACK_TYPE playback_type, UINT animation_count, UINT callback_key_count,
+         const D3DXKEY_CALLBACK *callback_keys, ID3DXKeyframedAnimationSet **animation_set);
+diff --git a/mingw-w64-headers/direct-x/include/d3dx9core.h b/mingw-w64-headers/direct-x/include/d3dx9core.h
+index 477642f..c59ad20 100644
+--- a/mingw-w64-headers/direct-x/include/d3dx9core.h
++++ b/mingw-w64-headers/direct-x/include/d3dx9core.h
+@@ -221,9 +221,9 @@ DECLARE_INTERFACE_(ID3DXLine, IUnknown)
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ 
+     STDMETHOD(Begin)(THIS) PURE;
+-    STDMETHOD(Draw)(THIS_ CONST D3DXVECTOR2 *vertexlist, DWORD vertexlistcount, D3DCOLOR color) PURE;
+-    STDMETHOD(DrawTransform)(THIS_ CONST D3DXVECTOR3 *vertexlist, DWORD vertexlistcount,
+-                             CONST D3DXMATRIX *transform, D3DCOLOR color) PURE;
++    STDMETHOD(Draw)(THIS_ const D3DXVECTOR2 *vertexlist, DWORD vertexlistcount, D3DCOLOR color) PURE;
++    STDMETHOD(DrawTransform)(THIS_ const D3DXVECTOR3 *vertexlist, DWORD vertexlistcount,
++            const D3DXMATRIX *transform, D3DCOLOR color) PURE;
+     STDMETHOD(SetPattern)(THIS_ DWORD pattern) PURE;
+     STDMETHOD_(DWORD, GetPattern)(THIS) PURE;
+     STDMETHOD(SetPatternScale)(THIS_ FLOAT scale) PURE;
+@@ -422,9 +422,9 @@ DECLARE_INTERFACE_(ID3DXSprite, IUnknown)
+     STDMETHOD(GetDevice)(THIS_ struct IDirect3DDevice9 **device) PURE;
+ 
+     STDMETHOD(GetTransform)(THIS_ D3DXMATRIX *transform) PURE;
+-    STDMETHOD(SetTransform)(THIS_ CONST D3DXMATRIX *transform) PURE;
+-    STDMETHOD(SetWorldViewRH)(THIS_ CONST D3DXMATRIX *world, CONST D3DXMATRIX *view) PURE;
+-    STDMETHOD(SetWorldViewLH)(THIS_ CONST D3DXMATRIX *world, CONST D3DXMATRIX *view) PURE;
++    STDMETHOD(SetTransform)(THIS_ const D3DXMATRIX *transform) PURE;
++    STDMETHOD(SetWorldViewRH)(THIS_ const D3DXMATRIX *world, const D3DXMATRIX *view) PURE;
++    STDMETHOD(SetWorldViewLH)(THIS_ const D3DXMATRIX *world, const D3DXMATRIX *view) PURE;
+ 
+     STDMETHOD(Begin)(THIS_ DWORD flags) PURE;
+     STDMETHOD(Draw)(THIS_ struct IDirect3DTexture9 *texture, const RECT *rect,
+diff --git a/mingw-w64-headers/direct-x/include/d3dx9effect.h b/mingw-w64-headers/direct-x/include/d3dx9effect.h
+index ceca13b..7056830 100644
+--- a/mingw-w64-headers/direct-x/include/d3dx9effect.h
++++ b/mingw-w64-headers/direct-x/include/d3dx9effect.h
+@@ -67,8 +67,8 @@ typedef struct _D3DXPASS_DESC
+ {
+     const char *Name;
+     UINT Annotations;
+-    CONST DWORD *pVertexShaderFunction;
+-    CONST DWORD *pPixelShaderFunction;
++    const DWORD *pVertexShaderFunction;
++    const DWORD *pPixelShaderFunction;
+ } D3DXPASS_DESC;
+ 
+ typedef struct _D3DXFUNCTION_DESC
+@@ -127,31 +127,31 @@ DECLARE_INTERFACE_(ID3DXBaseEffect, IUnknown)
+     STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, void *data, UINT bytes) PURE;
+     STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, WINBOOL b) PURE;
+     STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, WINBOOL* b) PURE;
+-    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, CONST WINBOOL* b, UINT count) PURE;
++    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, const WINBOOL *b, UINT count) PURE;
+     STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, WINBOOL* b, UINT count) PURE;
+     STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
+     STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
+-    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, CONST INT* n, UINT count) PURE;
++    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, const INT *n, UINT count) PURE;
+     STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
+     STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
+     STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
+-    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, CONST FLOAT* f, UINT count) PURE;
++    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, const FLOAT *f, UINT count) PURE;
+     STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
+-    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector) PURE;
++    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector) PURE;
+     STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
+-    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector, UINT count) PURE;
++    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector, UINT count) PURE;
+     STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
+-    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
++    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+     STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+-    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+-    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+-    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
++    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+     STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+-    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+     STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, const char *string) PURE;
+     STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, const char **string) PURE;
+@@ -176,9 +176,9 @@ DECLARE_INTERFACE_(ID3DXEffectStateManager, IUnknown)
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
+     /*** ID3DXEffectStateManager methods ***/
+-    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, CONST D3DMATRIX* matrix) PURE;
+-    STDMETHOD(SetMaterial)(THIS_ CONST D3DMATERIAL9* material) PURE;
+-    STDMETHOD(SetLight)(THIS_ DWORD index, CONST D3DLIGHT9* light) PURE;
++    STDMETHOD(SetTransform)(THIS_ D3DTRANSFORMSTATETYPE state, const D3DMATRIX *matrix) PURE;
++    STDMETHOD(SetMaterial)(THIS_ const D3DMATERIAL9 *material) PURE;
++    STDMETHOD(SetLight)(THIS_ DWORD index, const D3DLIGHT9 *light) PURE;
+     STDMETHOD(LightEnable)(THIS_ DWORD index, WINBOOL enable) PURE;
+     STDMETHOD(SetRenderState)(THIS_ D3DRENDERSTATETYPE state, DWORD value) PURE;
+     STDMETHOD(SetTexture)(THIS_ DWORD stage, struct IDirect3DBaseTexture9 *texture) PURE;
+@@ -187,13 +187,13 @@ DECLARE_INTERFACE_(ID3DXEffectStateManager, IUnknown)
+     STDMETHOD(SetNPatchMode)(THIS_ FLOAT num_segments) PURE;
+     STDMETHOD(SetFVF)(THIS_ DWORD format) PURE;
+     STDMETHOD(SetVertexShader)(THIS_ struct IDirect3DVertexShader9 *shader) PURE;
+-    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT register_index, CONST FLOAT* constant_data, UINT register_count) PURE;
+-    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT register_index, CONST INT* constant_data, UINT register_count) PURE;
+-    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT register_index, CONST WINBOOL* constant_data, UINT register_count) PURE;
++    STDMETHOD(SetVertexShaderConstantF)(THIS_ UINT register_index, const FLOAT *constant_data, UINT register_count) PURE;
++    STDMETHOD(SetVertexShaderConstantI)(THIS_ UINT register_index, const INT *constant_data, UINT register_count) PURE;
++    STDMETHOD(SetVertexShaderConstantB)(THIS_ UINT register_index, const WINBOOL *constant_data, UINT register_count) PURE;
+     STDMETHOD(SetPixelShader)(THIS_ struct IDirect3DPixelShader9 *shader) PURE;
+-    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT register_index, CONST FLOAT* constant_data, UINT register_count) PURE;
+-    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT register_index, CONST INT * constant_data, UINT register_count) PURE;
+-    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT register_index, CONST WINBOOL* constant_data, UINT register_count) PURE;
++    STDMETHOD(SetPixelShaderConstantF)(THIS_ UINT register_index, const FLOAT *constant_data, UINT register_count) PURE;
++    STDMETHOD(SetPixelShaderConstantI)(THIS_ UINT register_index, const INT *constant_data, UINT register_count) PURE;
++    STDMETHOD(SetPixelShaderConstantB)(THIS_ UINT register_index, const WINBOOL *constant_data, UINT register_count) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -231,31 +231,31 @@ DECLARE_INTERFACE_(ID3DXEffect, ID3DXBaseEffect)
+     STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, void *data, UINT bytes) PURE;
+     STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, WINBOOL b) PURE;
+     STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, WINBOOL* b) PURE;
+-    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, CONST WINBOOL* b, UINT count) PURE;
++    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, const WINBOOL *b, UINT count) PURE;
+     STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, WINBOOL* b, UINT count) PURE;
+     STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
+     STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
+-    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, CONST INT* n, UINT count) PURE;
++    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, const INT *n, UINT count) PURE;
+     STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
+     STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
+     STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
+-    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, CONST FLOAT* f, UINT count) PURE;
++    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, const FLOAT *f, UINT count) PURE;
+     STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
+-    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector) PURE;
++    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector) PURE;
+     STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
+-    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector, UINT count) PURE;
++    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector, UINT count) PURE;
+     STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
+-    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
++    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+     STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+-    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+-    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+-    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
++    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+     STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+-    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+     STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, const char *string) PURE;
+     STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, const char **string) PURE;
+@@ -324,31 +324,31 @@ DECLARE_INTERFACE_(ID3DXEffectCompiler, ID3DXBaseEffect)
+     STDMETHOD(GetValue)(THIS_ D3DXHANDLE parameter, void *data, UINT bytes) PURE;
+     STDMETHOD(SetBool)(THIS_ D3DXHANDLE parameter, WINBOOL b) PURE;
+     STDMETHOD(GetBool)(THIS_ D3DXHANDLE parameter, WINBOOL* b) PURE;
+-    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, CONST WINBOOL* b, UINT count) PURE;
++    STDMETHOD(SetBoolArray)(THIS_ D3DXHANDLE parameter, const WINBOOL *b, UINT count) PURE;
+     STDMETHOD(GetBoolArray)(THIS_ D3DXHANDLE parameter, WINBOOL* b, UINT count) PURE;
+     STDMETHOD(SetInt)(THIS_ D3DXHANDLE parameter, INT n) PURE;
+     STDMETHOD(GetInt)(THIS_ D3DXHANDLE parameter, INT* n) PURE;
+-    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, CONST INT* n, UINT count) PURE;
++    STDMETHOD(SetIntArray)(THIS_ D3DXHANDLE parameter, const INT *n, UINT count) PURE;
+     STDMETHOD(GetIntArray)(THIS_ D3DXHANDLE parameter, INT* n, UINT count) PURE;
+     STDMETHOD(SetFloat)(THIS_ D3DXHANDLE parameter, FLOAT f) PURE;
+     STDMETHOD(GetFloat)(THIS_ D3DXHANDLE parameter, FLOAT* f) PURE;
+-    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, CONST FLOAT* f, UINT count) PURE;
++    STDMETHOD(SetFloatArray)(THIS_ D3DXHANDLE parameter, const FLOAT *f, UINT count) PURE;
+     STDMETHOD(GetFloatArray)(THIS_ D3DXHANDLE parameter, FLOAT* f, UINT count) PURE;
+-    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector) PURE;
++    STDMETHOD(SetVector)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector) PURE;
+     STDMETHOD(GetVector)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector) PURE;
+-    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, CONST D3DXVECTOR4* vector, UINT count) PURE;
++    STDMETHOD(SetVectorArray)(THIS_ D3DXHANDLE parameter, const D3DXVECTOR4 *vector, UINT count) PURE;
+     STDMETHOD(GetVectorArray)(THIS_ D3DXHANDLE parameter, D3DXVECTOR4* vector, UINT count) PURE;
+-    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
++    STDMETHOD(SetMatrix)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+     STDMETHOD(GetMatrix)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+-    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+-    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixPointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+-    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix) PURE;
++    STDMETHOD(SetMatrixTranspose)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix) PURE;
+     STDMETHOD(GetMatrixTranspose)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix) PURE;
+-    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX* matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX *matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixTransposeArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX* matrix, UINT count) PURE;
+-    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, CONST D3DXMATRIX** matrix, UINT count) PURE;
++    STDMETHOD(SetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, const D3DXMATRIX **matrix, UINT count) PURE;
+     STDMETHOD(GetMatrixTransposePointerArray)(THIS_ D3DXHANDLE parameter, D3DXMATRIX** matrix, UINT count) PURE;
+     STDMETHOD(SetString)(THIS_ D3DXHANDLE parameter, const char *string) PURE;
+     STDMETHOD(GetString)(THIS_ D3DXHANDLE parameter, const char **string) PURE;
+diff --git a/mingw-w64-headers/direct-x/include/d3dx9math.inl b/mingw-w64-headers/direct-x/include/d3dx9math.inl
+index 0ba53f0..4d8e97d 100644
+--- a/mingw-w64-headers/direct-x/include/d3dx9math.inl
++++ b/mingw-w64-headers/direct-x/include/d3dx9math.inl
+@@ -27,7 +27,7 @@ inline D3DXVECTOR2::D3DXVECTOR2()
+ {
+ }
+ 
+-inline D3DXVECTOR2::D3DXVECTOR2(CONST FLOAT *pf)
++inline D3DXVECTOR2::D3DXVECTOR2(const FLOAT *pf)
+ {
+     if(!pf) return;
+     x = pf[0];
+@@ -45,19 +45,19 @@ inline D3DXVECTOR2::operator FLOAT* ()
+     return (FLOAT*)&x;
+ }
+ 
+-inline D3DXVECTOR2::operator CONST FLOAT* () const
++inline D3DXVECTOR2::operator const FLOAT* () const
+ {
+-    return (CONST FLOAT*)&x;
++    return (const FLOAT*)&x;
+ }
+ 
+-inline D3DXVECTOR2& D3DXVECTOR2::operator += (CONST D3DXVECTOR2& v)
++inline D3DXVECTOR2& D3DXVECTOR2::operator += (const D3DXVECTOR2& v)
+ {
+     x += v.x;
+     y += v.y;
+     return *this;
+ }
+ 
+-inline D3DXVECTOR2& D3DXVECTOR2::operator -= (CONST D3DXVECTOR2& v)
++inline D3DXVECTOR2& D3DXVECTOR2::operator -= (const D3DXVECTOR2& v)
+ {
+     x -= v.x;
+     y -= v.y;
+@@ -88,12 +88,12 @@ inline D3DXVECTOR2 D3DXVECTOR2::operator - () const
+     return D3DXVECTOR2(-x, -y);
+ }
+ 
+-inline D3DXVECTOR2 D3DXVECTOR2::operator + (CONST D3DXVECTOR2& v) const
++inline D3DXVECTOR2 D3DXVECTOR2::operator + (const D3DXVECTOR2& v) const
+ {
+     return D3DXVECTOR2(x + v.x, y + v.y);
+ }
+ 
+-inline D3DXVECTOR2 D3DXVECTOR2::operator - (CONST D3DXVECTOR2& v) const
++inline D3DXVECTOR2 D3DXVECTOR2::operator - (const D3DXVECTOR2& v) const
+ {
+     return D3DXVECTOR2(x - v.x, y - v.y);
+ }
+@@ -108,17 +108,17 @@ inline D3DXVECTOR2 D3DXVECTOR2::operator / (FLOAT f) const
+     return D3DXVECTOR2(x / f, y / f);
+ }
+ 
+-inline D3DXVECTOR2 operator * (FLOAT f, CONST D3DXVECTOR2& v)
++inline D3DXVECTOR2 operator * (FLOAT f, const D3DXVECTOR2& v)
+ {
+     return D3DXVECTOR2(f * v.x, f * v.y);
+ }
+ 
+-inline WINBOOL D3DXVECTOR2::operator == (CONST D3DXVECTOR2& v) const
++inline WINBOOL D3DXVECTOR2::operator == (const D3DXVECTOR2& v) const
+ {
+     return x == v.x && y == v.y;
+ }
+ 
+-inline WINBOOL D3DXVECTOR2::operator != (CONST D3DXVECTOR2& v) const
++inline WINBOOL D3DXVECTOR2::operator != (const D3DXVECTOR2& v) const
+ {
+     return x != v.x || y != v.y;
+ }
+@@ -127,7 +127,7 @@ inline D3DXVECTOR3::D3DXVECTOR3()
+ {
+ }
+ 
+-inline D3DXVECTOR3::D3DXVECTOR3(CONST FLOAT *pf)
++inline D3DXVECTOR3::D3DXVECTOR3(const FLOAT *pf)
+ {
+     if(!pf) return;
+     x = pf[0];
+@@ -135,7 +135,7 @@ inline D3DXVECTOR3::D3DXVECTOR3(CONST FLOAT *pf)
+     z = pf[2];
+ }
+ 
+-inline D3DXVECTOR3::D3DXVECTOR3(CONST D3DVECTOR& v)
++inline D3DXVECTOR3::D3DXVECTOR3(const D3DVECTOR& v)
+ {
+     x = v.x;
+     y = v.y;
+@@ -154,12 +154,12 @@ inline D3DXVECTOR3::operator FLOAT* ()
+     return (FLOAT*)&x;
+ }
+ 
+-inline D3DXVECTOR3::operator CONST FLOAT* () const
++inline D3DXVECTOR3::operator const FLOAT* () const
+ {
+-    return (CONST FLOAT*)&x;
++    return (const FLOAT*)&x;
+ }
+ 
+-inline D3DXVECTOR3& D3DXVECTOR3::operator += (CONST D3DXVECTOR3& v)
++inline D3DXVECTOR3& D3DXVECTOR3::operator += (const D3DXVECTOR3& v)
+ {
+     x += v.x;
+     y += v.y;
+@@ -167,7 +167,7 @@ inline D3DXVECTOR3& D3DXVECTOR3::operator += (CONST D3DXVECTOR3& v)
+     return *this;
+ }
+ 
+-inline D3DXVECTOR3& D3DXVECTOR3::operator -= (CONST D3DXVECTOR3& v)
++inline D3DXVECTOR3& D3DXVECTOR3::operator -= (const D3DXVECTOR3& v)
+ {
+     x -= v.x;
+     y -= v.y;
+@@ -201,12 +201,12 @@ inline D3DXVECTOR3 D3DXVECTOR3::operator - () const
+     return D3DXVECTOR3(-x, -y, -z);
+ }
+ 
+-inline D3DXVECTOR3 D3DXVECTOR3::operator + (CONST D3DXVECTOR3& v) const
++inline D3DXVECTOR3 D3DXVECTOR3::operator + (const D3DXVECTOR3& v) const
+ {
+     return D3DXVECTOR3(x + v.x, y + v.y, z + v.z);
+ }
+ 
+-inline D3DXVECTOR3 D3DXVECTOR3::operator - (CONST D3DXVECTOR3& v) const
++inline D3DXVECTOR3 D3DXVECTOR3::operator - (const D3DXVECTOR3& v) const
+ {
+     return D3DXVECTOR3(x - v.x, y - v.y, z - v.z);
+ }
+@@ -221,17 +221,17 @@ inline D3DXVECTOR3 D3DXVECTOR3::operator / (FLOAT f) const
+     return D3DXVECTOR3(x / f, y / f, z / f);
+ }
+ 
+-inline D3DXVECTOR3 operator * (FLOAT f, CONST D3DXVECTOR3& v)
++inline D3DXVECTOR3 operator * (FLOAT f, const D3DXVECTOR3& v)
+ {
+     return D3DXVECTOR3(f * v.x, f * v.y, f * v.z);
+ }
+ 
+-inline WINBOOL D3DXVECTOR3::operator == (CONST D3DXVECTOR3& v) const
++inline WINBOOL D3DXVECTOR3::operator == (const D3DXVECTOR3& v) const
+ {
+     return x == v.x && y == v.y && z == v.z;
+ }
+ 
+-inline WINBOOL D3DXVECTOR3::operator != (CONST D3DXVECTOR3& v) const
++inline WINBOOL D3DXVECTOR3::operator != (const D3DXVECTOR3& v) const
+ {
+     return x != v.x || y != v.y || z != v.z;
+ }
+@@ -240,7 +240,7 @@ inline D3DXVECTOR4::D3DXVECTOR4()
+ {
+ }
+ 
+-inline D3DXVECTOR4::D3DXVECTOR4(CONST FLOAT *pf)
++inline D3DXVECTOR4::D3DXVECTOR4(const FLOAT *pf)
+ {
+     if(!pf) return;
+     x = pf[0];
+@@ -262,12 +262,12 @@ inline D3DXVECTOR4::operator FLOAT* ()
+     return (FLOAT*)&x;
+ }
+ 
+-inline D3DXVECTOR4::operator CONST FLOAT* () const
++inline D3DXVECTOR4::operator const FLOAT* () const
+ {
+-    return (CONST FLOAT*)&x;
++    return (const FLOAT*)&x;
+ }
+ 
+-inline D3DXVECTOR4& D3DXVECTOR4::operator += (CONST D3DXVECTOR4& v)
++inline D3DXVECTOR4& D3DXVECTOR4::operator += (const D3DXVECTOR4& v)
+ {
+     x += v.x;
+     y += v.y;
+@@ -276,7 +276,7 @@ inline D3DXVECTOR4& D3DXVECTOR4::operator += (CONST D3DXVECTOR4& v)
+     return *this;
+ }
+ 
+-inline D3DXVECTOR4& D3DXVECTOR4::operator -= (CONST D3DXVECTOR4& v)
++inline D3DXVECTOR4& D3DXVECTOR4::operator -= (const D3DXVECTOR4& v)
+ {
+     x -= v.x;
+     y -= v.y;
+@@ -313,12 +313,12 @@ inline D3DXVECTOR4 D3DXVECTOR4::operator - () const
+     return D3DXVECTOR4(-x, -y, -z, -w);
+ }
+ 
+-inline D3DXVECTOR4 D3DXVECTOR4::operator + (CONST D3DXVECTOR4& v) const
++inline D3DXVECTOR4 D3DXVECTOR4::operator + (const D3DXVECTOR4& v) const
+ {
+     return D3DXVECTOR4(x + v.x, y + v.y, z + v.z, w + v.w);
+ }
+ 
+-inline D3DXVECTOR4 D3DXVECTOR4::operator - (CONST D3DXVECTOR4& v) const
++inline D3DXVECTOR4 D3DXVECTOR4::operator - (const D3DXVECTOR4& v) const
+ {
+     return D3DXVECTOR4(x - v.x, y - v.y, z - v.z, w - v.w);
+ }
+@@ -333,17 +333,17 @@ inline D3DXVECTOR4 D3DXVECTOR4::operator / (FLOAT f) const
+     return D3DXVECTOR4(x / f, y / f, z / f, w / f);
+ }
+ 
+-inline D3DXVECTOR4 operator * (FLOAT f, CONST D3DXVECTOR4& v)
++inline D3DXVECTOR4 operator * (FLOAT f, const D3DXVECTOR4& v)
+ {
+     return D3DXVECTOR4(f * v.x, f * v.y, f * v.z, f * v.w);
+ }
+ 
+-inline WINBOOL D3DXVECTOR4::operator == (CONST D3DXVECTOR4& v) const
++inline WINBOOL D3DXVECTOR4::operator == (const D3DXVECTOR4& v) const
+ {
+     return x == v.x && y == v.y && z == v.z && w == v.w;
+ }
+ 
+-inline WINBOOL D3DXVECTOR4::operator != (CONST D3DXVECTOR4& v) const
++inline WINBOOL D3DXVECTOR4::operator != (const D3DXVECTOR4& v) const
+ {
+     return x != v.x || y != v.y || z != v.z || w != v.w;
+ }
+@@ -352,13 +352,13 @@ inline D3DXMATRIX::D3DXMATRIX()
+ {
+ }
+ 
+-inline D3DXMATRIX::D3DXMATRIX(CONST FLOAT *pf)
++inline D3DXMATRIX::D3DXMATRIX(const FLOAT *pf)
+ {
+     if(!pf) return;
+     memcpy(&_11, pf, sizeof(D3DXMATRIX));
+ }
+ 
+-inline D3DXMATRIX::D3DXMATRIX(CONST D3DMATRIX& mat)
++inline D3DXMATRIX::D3DXMATRIX(const D3DMATRIX& mat)
+ {
+     memcpy(&_11, &mat, sizeof(D3DXMATRIX));
+ }
+@@ -389,18 +389,18 @@ inline D3DXMATRIX::operator FLOAT* ()
+     return (FLOAT*)&_11;
+ }
+ 
+-inline D3DXMATRIX::operator CONST FLOAT* () const
++inline D3DXMATRIX::operator const FLOAT* () const
+ {
+-    return (CONST FLOAT*)&_11;
++    return (const FLOAT*)&_11;
+ }
+ 
+-inline D3DXMATRIX& D3DXMATRIX::operator *= (CONST D3DXMATRIX& mat)
++inline D3DXMATRIX& D3DXMATRIX::operator *= (const D3DXMATRIX& mat)
+ {
+     D3DXMatrixMultiply(this, this, &mat);
+     return *this;
+ }
+ 
+-inline D3DXMATRIX& D3DXMATRIX::operator += (CONST D3DXMATRIX& mat)
++inline D3DXMATRIX& D3DXMATRIX::operator += (const D3DXMATRIX& mat)
+ {
+     _11 += mat._11; _12 += mat._12; _13 += mat._13; _14 += mat._14;
+     _21 += mat._21; _22 += mat._22; _23 += mat._23; _24 += mat._24;
+@@ -409,7 +409,7 @@ inline D3DXMATRIX& D3DXMATRIX::operator += (CONST D3DXMATRIX& mat)
+     return *this;
+ }
+ 
+-inline D3DXMATRIX& D3DXMATRIX::operator -= (CONST D3DXMATRIX& mat)
++inline D3DXMATRIX& D3DXMATRIX::operator -= (const D3DXMATRIX& mat)
+ {
+     _11 -= mat._11; _12 -= mat._12; _13 -= mat._13; _14 -= mat._14;
+     _21 -= mat._21; _22 -= mat._22; _23 -= mat._23; _24 -= mat._24;
+@@ -450,14 +450,14 @@ inline D3DXMATRIX D3DXMATRIX::operator - () const
+                       -_41, -_42, -_43, -_44);
+ }
+ 
+-inline D3DXMATRIX D3DXMATRIX::operator * (CONST D3DXMATRIX& mat) const
++inline D3DXMATRIX D3DXMATRIX::operator * (const D3DXMATRIX& mat) const
+ {
+     D3DXMATRIX buf;
+     D3DXMatrixMultiply(&buf, this, &mat);
+     return buf;
+ }
+ 
+-inline D3DXMATRIX D3DXMATRIX::operator + (CONST D3DXMATRIX& mat) const
++inline D3DXMATRIX D3DXMATRIX::operator + (const D3DXMATRIX& mat) const
+ {
+     return D3DXMATRIX(_11 + mat._11, _12 + mat._12, _13 + mat._13, _14 + mat._14,
+                       _21 + mat._21, _22 + mat._22, _23 + mat._23, _24 + mat._24,
+@@ -465,7 +465,7 @@ inline D3DXMATRIX D3DXMATRIX::operator + (CONST D3DXMATRIX& mat) const
+                       _41 + mat._41, _42 + mat._42, _43 + mat._43, _44 + mat._44);
+ }
+ 
+-inline D3DXMATRIX D3DXMATRIX::operator - (CONST D3DXMATRIX& mat) const
++inline D3DXMATRIX D3DXMATRIX::operator - (const D3DXMATRIX& mat) const
+ {
+     return D3DXMATRIX(_11 - mat._11, _12 - mat._12, _13 - mat._13, _14 - mat._14,
+                       _21 - mat._21, _22 - mat._22, _23 - mat._23, _24 - mat._24,
+@@ -490,7 +490,7 @@ inline D3DXMATRIX D3DXMATRIX::operator / (FLOAT f) const
+                       _41 * inv, _42 * inv, _43 * inv, _44 * inv);
+ }
+ 
+-inline D3DXMATRIX operator * (FLOAT f, CONST D3DXMATRIX& mat)
++inline D3DXMATRIX operator * (FLOAT f, const D3DXMATRIX& mat)
+ {
+     return D3DXMATRIX(f * mat._11, f * mat._12, f * mat._13, f * mat._14,
+                       f * mat._21, f * mat._22, f * mat._23, f * mat._24,
+@@ -498,12 +498,12 @@ inline D3DXMATRIX operator * (FLOAT f, CONST D3DXMATRIX& mat)
+                       f * mat._41, f * mat._42, f * mat._43, f * mat._44);
+ }
+ 
+-inline WINBOOL D3DXMATRIX::operator == (CONST D3DXMATRIX& mat) const
++inline WINBOOL D3DXMATRIX::operator == (const D3DXMATRIX& mat) const
+ {
+     return (memcmp(this, &mat, sizeof(D3DXMATRIX)) == 0);
+ }
+ 
+-inline WINBOOL D3DXMATRIX::operator != (CONST D3DXMATRIX& mat) const
++inline WINBOOL D3DXMATRIX::operator != (const D3DXMATRIX& mat) const
+ {
+     return (memcmp(this, &mat, sizeof(D3DXMATRIX)) != 0);
+ }
+@@ -512,7 +512,7 @@ inline D3DXQUATERNION::D3DXQUATERNION()
+ {
+ }
+ 
+-inline D3DXQUATERNION::D3DXQUATERNION(CONST FLOAT *pf)
++inline D3DXQUATERNION::D3DXQUATERNION(const FLOAT *pf)
+ {
+     if(!pf) return;
+     x = pf[0];
+@@ -534,12 +534,12 @@ inline D3DXQUATERNION::operator FLOAT* ()
+     return (FLOAT*)&x;
+ }
+ 
+-inline D3DXQUATERNION::operator CONST FLOAT* () const
++inline D3DXQUATERNION::operator const FLOAT* () const
+ {
+-    return (CONST FLOAT*)&x;
++    return (const FLOAT*)&x;
+ }
+ 
+-inline D3DXQUATERNION& D3DXQUATERNION::operator += (CONST D3DXQUATERNION& quat)
++inline D3DXQUATERNION& D3DXQUATERNION::operator += (const D3DXQUATERNION& quat)
+ {
+     x += quat.x;
+     y += quat.y;
+@@ -548,7 +548,7 @@ inline D3DXQUATERNION& D3DXQUATERNION::operator += (CONST D3DXQUATERNION& quat)
+     return *this;
+ }
+ 
+-inline D3DXQUATERNION& D3DXQUATERNION::operator -= (CONST D3DXQUATERNION& quat)
++inline D3DXQUATERNION& D3DXQUATERNION::operator -= (const D3DXQUATERNION& quat)
+ {
+     x -= quat.x;
+     y -= quat.y;
+@@ -557,7 +557,7 @@ inline D3DXQUATERNION& D3DXQUATERNION::operator -= (CONST D3DXQUATERNION& quat)
+     return *this;
+ }
+ 
+-inline D3DXQUATERNION& D3DXQUATERNION::operator *= (CONST D3DXQUATERNION& quat)
++inline D3DXQUATERNION& D3DXQUATERNION::operator *= (const D3DXQUATERNION& quat)
+ {
+     D3DXQuaternionMultiply(this, this, &quat);
+     return *this;
+@@ -592,17 +592,17 @@ inline D3DXQUATERNION D3DXQUATERNION::operator - () const
+     return D3DXQUATERNION(-x, -y, -z, -w);
+ }
+ 
+-inline D3DXQUATERNION D3DXQUATERNION::operator + (CONST D3DXQUATERNION& quat) const
++inline D3DXQUATERNION D3DXQUATERNION::operator + (const D3DXQUATERNION& quat) const
+ {
+     return D3DXQUATERNION(x + quat.x, y + quat.y, z + quat.z, w + quat.w);
+ }
+ 
+-inline D3DXQUATERNION D3DXQUATERNION::operator - (CONST D3DXQUATERNION& quat) const
++inline D3DXQUATERNION D3DXQUATERNION::operator - (const D3DXQUATERNION& quat) const
+ {
+     return D3DXQUATERNION(x - quat.x, y - quat.y, z - quat.z, w - quat.w);
+ }
+ 
+-inline D3DXQUATERNION D3DXQUATERNION::operator * (CONST D3DXQUATERNION& quat) const
++inline D3DXQUATERNION D3DXQUATERNION::operator * (const D3DXQUATERNION& quat) const
+ {
+     D3DXQUATERNION buf;
+     D3DXQuaternionMultiply(&buf, this, &quat);
+@@ -620,17 +620,17 @@ inline D3DXQUATERNION D3DXQUATERNION::operator / (FLOAT f) const
+     return D3DXQUATERNION(x * inv, y * inv, z * inv, w * inv);
+ }
+ 
+-inline D3DXQUATERNION operator * (FLOAT f, CONST D3DXQUATERNION& quat)
++inline D3DXQUATERNION operator * (FLOAT f, const D3DXQUATERNION& quat)
+ {
+     return D3DXQUATERNION(f * quat.x, f * quat.y, f * quat.z, f * quat.w);
+ }
+ 
+-inline WINBOOL D3DXQUATERNION::operator == (CONST D3DXQUATERNION& quat) const
++inline WINBOOL D3DXQUATERNION::operator == (const D3DXQUATERNION& quat) const
+ {
+     return x == quat.x && y == quat.y && z == quat.z && w == quat.w;
+ }
+ 
+-inline WINBOOL D3DXQUATERNION::operator != (CONST D3DXQUATERNION& quat) const
++inline WINBOOL D3DXQUATERNION::operator != (const D3DXQUATERNION& quat) const
+ {
+     return x != quat.x || y != quat.y || z != quat.z || w != quat.w;
+ }
+@@ -639,7 +639,7 @@ inline D3DXPLANE::D3DXPLANE()
+ {
+ }
+ 
+-inline D3DXPLANE::D3DXPLANE(CONST FLOAT *pf)
++inline D3DXPLANE::D3DXPLANE(const FLOAT *pf)
+ {
+     if(!pf) return;
+     a = pf[0];
+@@ -661,9 +661,9 @@ inline D3DXPLANE::operator FLOAT* ()
+     return (FLOAT*)&a;
+ }
+ 
+-inline D3DXPLANE::operator CONST FLOAT* () const
++inline D3DXPLANE::operator const FLOAT* () const
+ {
+-    return (CONST FLOAT*)&a;
++    return (const FLOAT*)&a;
+ }
+ 
+ inline D3DXPLANE D3DXPLANE::operator + () const
+@@ -676,12 +676,12 @@ inline D3DXPLANE D3DXPLANE::operator - () const
+     return D3DXPLANE(-a, -b, -c, -d);
+ }
+ 
+-inline WINBOOL D3DXPLANE::operator == (CONST D3DXPLANE& pl) const
++inline WINBOOL D3DXPLANE::operator == (const D3DXPLANE& pl) const
+ {
+     return a == pl.a && b == pl.b && c == pl.c && d == pl.d;
+ }
+ 
+-inline WINBOOL D3DXPLANE::operator != (CONST D3DXPLANE& pl) const
++inline WINBOOL D3DXPLANE::operator != (const D3DXPLANE& pl) const
+ {
+     return a != pl.a || b != pl.b || c != pl.c || d != pl.d;
+ }
+@@ -692,14 +692,14 @@ inline D3DXCOLOR::D3DXCOLOR()
+ 
+ inline D3DXCOLOR::D3DXCOLOR(DWORD col)
+ {
+-    CONST FLOAT f = 1.0f / 255.0f;
++    const FLOAT f = 1.0f / 255.0f;
+     r = f * (FLOAT)(unsigned char)(col >> 16);
+     g = f * (FLOAT)(unsigned char)(col >>  8);
+     b = f * (FLOAT)(unsigned char)col;
+     a = f * (FLOAT)(unsigned char)(col >> 24);
+ }
+ 
+-inline D3DXCOLOR::D3DXCOLOR(CONST FLOAT *pf)
++inline D3DXCOLOR::D3DXCOLOR(const FLOAT *pf)
+ {
+     if(!pf) return;
+     r = pf[0];
+@@ -708,7 +708,7 @@ inline D3DXCOLOR::D3DXCOLOR(CONST FLOAT *pf)
+     a = pf[3];
+ }
+ 
+-inline D3DXCOLOR::D3DXCOLOR(CONST D3DCOLORVALUE& col)
++inline D3DXCOLOR::D3DXCOLOR(const D3DCOLORVALUE& col)
+ {
+     r = col.r;
+     g = col.g;
+@@ -739,9 +739,9 @@ inline D3DXCOLOR::operator FLOAT * ()
+     return (FLOAT*)&r;
+ }
+ 
+-inline D3DXCOLOR::operator CONST FLOAT * () const
++inline D3DXCOLOR::operator const FLOAT * () const
+ {
+-    return (CONST FLOAT*)&r;
++    return (const FLOAT*)&r;
+ }
+ 
+ inline D3DXCOLOR::operator D3DCOLORVALUE * ()
+@@ -749,9 +749,9 @@ inline D3DXCOLOR::operator D3DCOLORVALUE * ()
+     return (D3DCOLORVALUE*)&r;
+ }
+ 
+-inline D3DXCOLOR::operator CONST D3DCOLORVALUE * () const
++inline D3DXCOLOR::operator const D3DCOLORVALUE * () const
+ {
+-    return (CONST D3DCOLORVALUE*)&r;
++    return (const D3DCOLORVALUE*)&r;
+ }
+ 
+ inline D3DXCOLOR::operator D3DCOLORVALUE& ()
+@@ -759,12 +759,12 @@ inline D3DXCOLOR::operator D3DCOLORVALUE& ()
+     return *((D3DCOLORVALUE*)&r);
+ }
+ 
+-inline D3DXCOLOR::operator CONST D3DCOLORVALUE& () const
++inline D3DXCOLOR::operator const D3DCOLORVALUE& () const
+ {
+-    return *((CONST D3DCOLORVALUE*)&r);
++    return *((const D3DCOLORVALUE*)&r);
+ }
+ 
+-inline D3DXCOLOR& D3DXCOLOR::operator += (CONST D3DXCOLOR& col)
++inline D3DXCOLOR& D3DXCOLOR::operator += (const D3DXCOLOR& col)
+ {
+     r += col.r;
+     g += col.g;
+@@ -773,7 +773,7 @@ inline D3DXCOLOR& D3DXCOLOR::operator += (CONST D3DXCOLOR& col)
+     return *this;
+ }
+ 
+-inline D3DXCOLOR& D3DXCOLOR::operator -= (CONST D3DXCOLOR& col)
++inline D3DXCOLOR& D3DXCOLOR::operator -= (const D3DXCOLOR& col)
+ {
+     r -= col.r;
+     g -= col.g;
+@@ -811,12 +811,12 @@ inline D3DXCOLOR D3DXCOLOR::operator - () const
+     return D3DXCOLOR(-r, -g, -b, -a);
+ }
+ 
+-inline D3DXCOLOR D3DXCOLOR::operator + (CONST D3DXCOLOR& col) const
++inline D3DXCOLOR D3DXCOLOR::operator + (const D3DXCOLOR& col) const
+ {
+     return D3DXCOLOR(r + col.r, g + col.g, b + col.b, a + col.a);
+ }
+ 
+-inline D3DXCOLOR D3DXCOLOR::operator - (CONST D3DXCOLOR& col) const
++inline D3DXCOLOR D3DXCOLOR::operator - (const D3DXCOLOR& col) const
+ {
+     return D3DXCOLOR(r - col.r, g - col.g, b - col.b, a - col.a);
+ }
+@@ -832,17 +832,17 @@ inline D3DXCOLOR D3DXCOLOR::operator / (FLOAT f) const
+     return D3DXCOLOR(r * inv, g * inv, b * inv, a * inv);
+ }
+ 
+-inline D3DXCOLOR operator * (FLOAT f, CONST D3DXCOLOR& col)
++inline D3DXCOLOR operator * (FLOAT f, const D3DXCOLOR& col)
+ {
+     return D3DXCOLOR(f * col.r, f * col.g, f * col.b, f * col.a);
+ }
+ 
+-inline WINBOOL D3DXCOLOR::operator == (CONST D3DXCOLOR& col) const
++inline WINBOOL D3DXCOLOR::operator == (const D3DXCOLOR& col) const
+ {
+     return r == col.r && g == col.g && b == col.b && a == col.a;
+ }
+ 
+-inline WINBOOL D3DXCOLOR::operator != (CONST D3DXCOLOR& col) const
++inline WINBOOL D3DXCOLOR::operator != (const D3DXCOLOR& col) const
+ {
+     return r != col.r || g != col.g || b != col.b || a != col.a;
+ }
+@@ -856,7 +856,7 @@ inline D3DXFLOAT16::D3DXFLOAT16(FLOAT f)
+     D3DXFloat32To16Array(this, &f, 1);
+ }
+ 
+-inline D3DXFLOAT16::D3DXFLOAT16(CONST D3DXFLOAT16 &f)
++inline D3DXFLOAT16::D3DXFLOAT16(const D3DXFLOAT16 &f)
+ {
+     value = f.value;
+ }
+@@ -868,12 +868,12 @@ inline D3DXFLOAT16::operator FLOAT ()
+     return f;
+ }
+ 
+-inline WINBOOL D3DXFLOAT16::operator == (CONST D3DXFLOAT16 &f) const
++inline WINBOOL D3DXFLOAT16::operator == (const D3DXFLOAT16 &f) const
+ {
+     return value == f.value;
+ }
+ 
+-inline WINBOOL D3DXFLOAT16::operator != (CONST D3DXFLOAT16 &f) const
++inline WINBOOL D3DXFLOAT16::operator != (const D3DXFLOAT16 &f) const
+ {
+     return value != f.value;
+ }
+@@ -882,7 +882,7 @@ inline WINBOOL D3DXFLOAT16::operator != (CONST D3DXFLOAT16 &f) const
+ 
+ /*_______________D3DXCOLOR_____________________*/
+ 
+-static inline D3DXCOLOR* D3DXColorAdd(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
++static inline D3DXCOLOR* D3DXColorAdd(D3DXCOLOR *pout, const D3DXCOLOR *pc1, const D3DXCOLOR *pc2)
+ {
+     if ( !pout || !pc1 || !pc2 ) return NULL;
+     pout->r = (pc1->r) + (pc2->r);
+@@ -892,7 +892,7 @@ static inline D3DXCOLOR* D3DXColorAdd(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CON
+     return pout;
+ }
+ 
+-static inline D3DXCOLOR* D3DXColorLerp(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2, FLOAT s)
++static inline D3DXCOLOR* D3DXColorLerp(D3DXCOLOR *pout, const D3DXCOLOR *pc1, const D3DXCOLOR *pc2, FLOAT s)
+ {
+     if ( !pout || !pc1 || !pc2 ) return NULL;
+     pout->r = (1-s) * (pc1->r) + s *(pc2->r);
+@@ -902,7 +902,7 @@ static inline D3DXCOLOR* D3DXColorLerp(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CO
+     return pout;
+ }
+ 
+-static inline D3DXCOLOR* D3DXColorModulate(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
++static inline D3DXCOLOR* D3DXColorModulate(D3DXCOLOR *pout, const D3DXCOLOR *pc1, const D3DXCOLOR *pc2)
+ {
+     if ( !pout || !pc1 || !pc2 ) return NULL;
+     pout->r = (pc1->r) * (pc2->r);
+@@ -912,7 +912,7 @@ static inline D3DXCOLOR* D3DXColorModulate(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1
+     return pout;
+ }
+ 
+-static inline D3DXCOLOR* D3DXColorNegative(D3DXCOLOR *pout, CONST D3DXCOLOR *pc)
++static inline D3DXCOLOR* D3DXColorNegative(D3DXCOLOR *pout, const D3DXCOLOR *pc)
+ {
+     if ( !pout || !pc ) return NULL;
+     pout->r = 1.0f - pc->r;
+@@ -922,7 +922,7 @@ static inline D3DXCOLOR* D3DXColorNegative(D3DXCOLOR *pout, CONST D3DXCOLOR *pc)
+     return pout;
+ }
+ 
+-static inline D3DXCOLOR* D3DXColorScale(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FLOAT s)
++static inline D3DXCOLOR* D3DXColorScale(D3DXCOLOR *pout, const D3DXCOLOR *pc, FLOAT s)
+ {
+     if ( !pout || !pc ) return NULL;
+     pout->r = s* (pc->r);
+@@ -932,7 +932,7 @@ static inline D3DXCOLOR* D3DXColorScale(D3DXCOLOR *pout, CONST D3DXCOLOR *pc, FL
+     return pout;
+ }
+ 
+-static inline D3DXCOLOR* D3DXColorSubtract(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1, CONST D3DXCOLOR *pc2)
++static inline D3DXCOLOR* D3DXColorSubtract(D3DXCOLOR *pout, const D3DXCOLOR *pc1, const D3DXCOLOR *pc2)
+ {
+     if ( !pout || !pc1 || !pc2 ) return NULL;
+     pout->r = (pc1->r) - (pc2->r);
+@@ -944,7 +944,7 @@ static inline D3DXCOLOR* D3DXColorSubtract(D3DXCOLOR *pout, CONST D3DXCOLOR *pc1
+ 
+ /*_______________D3DXVECTOR2________________________*/
+ 
+-static inline D3DXVECTOR2* D3DXVec2Add(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
++static inline D3DXVECTOR2* D3DXVec2Add(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x + pv2->x;
+@@ -952,31 +952,31 @@ static inline D3DXVECTOR2* D3DXVec2Add(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1
+     return pout;
+ }
+ 
+-static inline FLOAT D3DXVec2CCW(CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
++static inline FLOAT D3DXVec2CCW(const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+ {
+     if ( !pv1 || !pv2) return 0.0f;
+     return ( (pv1->x) * (pv2->y) - (pv1->y) * (pv2->x) );
+ }
+ 
+-static inline FLOAT D3DXVec2Dot(CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
++static inline FLOAT D3DXVec2Dot(const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+ {
+     if ( !pv1 || !pv2) return 0.0f;
+     return ( (pv1->x * pv2->x + pv1->y * pv2->y) );
+ }
+ 
+-static inline FLOAT D3DXVec2Length(CONST D3DXVECTOR2 *pv)
++static inline FLOAT D3DXVec2Length(const D3DXVECTOR2 *pv)
+ {
+     if (!pv) return 0.0f;
+     return sqrtf( pv->x * pv->x + pv->y * pv->y );
+ }
+ 
+-static inline FLOAT D3DXVec2LengthSq(CONST D3DXVECTOR2 *pv)
++static inline FLOAT D3DXVec2LengthSq(const D3DXVECTOR2 *pv)
+ {
+     if (!pv) return 0.0f;
+     return( (pv->x) * (pv->x) + (pv->y) * (pv->y) );
+ }
+ 
+-static inline D3DXVECTOR2* D3DXVec2Lerp(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2, FLOAT s)
++static inline D3DXVECTOR2* D3DXVec2Lerp(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2, FLOAT s)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = (1-s) * (pv1->x) + s * (pv2->x);
+@@ -984,7 +984,7 @@ static inline D3DXVECTOR2* D3DXVec2Lerp(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR2* D3DXVec2Maximize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
++static inline D3DXVECTOR2* D3DXVec2Maximize(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x > pv2->x ? pv1->x : pv2->x;
+@@ -992,7 +992,7 @@ static inline D3DXVECTOR2* D3DXVec2Maximize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR2* D3DXVec2Minimize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
++static inline D3DXVECTOR2* D3DXVec2Minimize(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x < pv2->x ? pv1->x : pv2->x;
+@@ -1000,7 +1000,7 @@ static inline D3DXVECTOR2* D3DXVec2Minimize(D3DXVECTOR2 *pout, CONST D3DXVECTOR2
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR2* D3DXVec2Scale(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv, FLOAT s)
++static inline D3DXVECTOR2* D3DXVec2Scale(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv, FLOAT s)
+ {
+     if ( !pout || !pv) return NULL;
+     pout->x = s * (pv->x);
+@@ -1008,7 +1008,7 @@ static inline D3DXVECTOR2* D3DXVec2Scale(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *p
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR2* D3DXVec2Subtract(D3DXVECTOR2 *pout, CONST D3DXVECTOR2 *pv1, CONST D3DXVECTOR2 *pv2)
++static inline D3DXVECTOR2* D3DXVec2Subtract(D3DXVECTOR2 *pout, const D3DXVECTOR2 *pv1, const D3DXVECTOR2 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x - pv2->x;
+@@ -1018,7 +1018,7 @@ static inline D3DXVECTOR2* D3DXVec2Subtract(D3DXVECTOR2 *pout, CONST D3DXVECTOR2
+ 
+ /*__________________D3DXVECTOR3_______________________*/
+ 
+-static inline D3DXVECTOR3* D3DXVec3Add(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
++static inline D3DXVECTOR3* D3DXVec3Add(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x + pv2->x;
+@@ -1027,7 +1027,7 @@ static inline D3DXVECTOR3* D3DXVec3Add(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
++static inline D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+ {
+     D3DXVECTOR3 temp;
+ 
+@@ -1039,25 +1039,25 @@ static inline D3DXVECTOR3* D3DXVec3Cross(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *p
+     return pout;
+ }
+ 
+-static inline FLOAT D3DXVec3Dot(CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
++static inline FLOAT D3DXVec3Dot(const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+ {
+     if ( !pv1 || !pv2 ) return 0.0f;
+     return (pv1->x) * (pv2->x) + (pv1->y) * (pv2->y) + (pv1->z) * (pv2->z);
+ }
+ 
+-static inline FLOAT D3DXVec3Length(CONST D3DXVECTOR3 *pv)
++static inline FLOAT D3DXVec3Length(const D3DXVECTOR3 *pv)
+ {
+     if (!pv) return 0.0f;
+     return sqrtf( pv->x * pv->x + pv->y * pv->y + pv->z * pv->z );
+ }
+ 
+-static inline FLOAT D3DXVec3LengthSq(CONST D3DXVECTOR3 *pv)
++static inline FLOAT D3DXVec3LengthSq(const D3DXVECTOR3 *pv)
+ {
+     if (!pv) return 0.0f;
+     return (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z);
+ }
+ 
+-static inline D3DXVECTOR3* D3DXVec3Lerp(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2, FLOAT s)
++static inline D3DXVECTOR3* D3DXVec3Lerp(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2, FLOAT s)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = (1-s) * (pv1->x) + s * (pv2->x);
+@@ -1066,7 +1066,7 @@ static inline D3DXVECTOR3* D3DXVec3Lerp(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR3* D3DXVec3Maximize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
++static inline D3DXVECTOR3* D3DXVec3Maximize(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x > pv2->x ? pv1->x : pv2->x;
+@@ -1075,7 +1075,7 @@ static inline D3DXVECTOR3* D3DXVec3Maximize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR3* D3DXVec3Minimize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
++static inline D3DXVECTOR3* D3DXVec3Minimize(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x < pv2->x ? pv1->x : pv2->x;
+@@ -1084,7 +1084,7 @@ static inline D3DXVECTOR3* D3DXVec3Minimize(D3DXVECTOR3 *pout, CONST D3DXVECTOR3
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR3* D3DXVec3Scale(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv, FLOAT s)
++static inline D3DXVECTOR3* D3DXVec3Scale(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv, FLOAT s)
+ {
+     if ( !pout || !pv) return NULL;
+     pout->x = s * (pv->x);
+@@ -1093,7 +1093,7 @@ static inline D3DXVECTOR3* D3DXVec3Scale(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *p
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR3* D3DXVec3Subtract(D3DXVECTOR3 *pout, CONST D3DXVECTOR3 *pv1, CONST D3DXVECTOR3 *pv2)
++static inline D3DXVECTOR3* D3DXVec3Subtract(D3DXVECTOR3 *pout, const D3DXVECTOR3 *pv1, const D3DXVECTOR3 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x - pv2->x;
+@@ -1103,7 +1103,7 @@ static inline D3DXVECTOR3* D3DXVec3Subtract(D3DXVECTOR3 *pout, CONST D3DXVECTOR3
+ }
+ /*__________________D3DXVECTOR4_______________________*/
+ 
+-static inline D3DXVECTOR4* D3DXVec4Add(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
++static inline D3DXVECTOR4* D3DXVec4Add(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x + pv2->x;
+@@ -1113,25 +1113,25 @@ static inline D3DXVECTOR4* D3DXVec4Add(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1
+     return pout;
+ }
+ 
+-static inline FLOAT D3DXVec4Dot(CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
++static inline FLOAT D3DXVec4Dot(const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2)
+ {
+     if (!pv1 || !pv2 ) return 0.0f;
+     return (pv1->x) * (pv2->x) + (pv1->y) * (pv2->y) + (pv1->z) * (pv2->z) + (pv1->w) * (pv2->w);
+ }
+ 
+-static inline FLOAT D3DXVec4Length(CONST D3DXVECTOR4 *pv)
++static inline FLOAT D3DXVec4Length(const D3DXVECTOR4 *pv)
+ {
+     if (!pv) return 0.0f;
+     return sqrtf( pv->x * pv->x + pv->y * pv->y + pv->z * pv->z + pv->w * pv->w );
+ }
+ 
+-static inline FLOAT D3DXVec4LengthSq(CONST D3DXVECTOR4 *pv)
++static inline FLOAT D3DXVec4LengthSq(const D3DXVECTOR4 *pv)
+ {
+     if (!pv) return 0.0f;
+     return (pv->x) * (pv->x) + (pv->y) * (pv->y) + (pv->z) * (pv->z) + (pv->w) * (pv->w);
+ }
+ 
+-static inline D3DXVECTOR4* D3DXVec4Lerp(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2, FLOAT s)
++static inline D3DXVECTOR4* D3DXVec4Lerp(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2, FLOAT s)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = (1-s) * (pv1->x) + s * (pv2->x);
+@@ -1142,7 +1142,7 @@ static inline D3DXVECTOR4* D3DXVec4Lerp(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv
+ }
+ 
+ 
+-static inline D3DXVECTOR4* D3DXVec4Maximize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
++static inline D3DXVECTOR4* D3DXVec4Maximize(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x > pv2->x ? pv1->x : pv2->x;
+@@ -1152,7 +1152,7 @@ static inline D3DXVECTOR4* D3DXVec4Maximize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR4* D3DXVec4Minimize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
++static inline D3DXVECTOR4* D3DXVec4Minimize(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x < pv2->x ? pv1->x : pv2->x;
+@@ -1162,7 +1162,7 @@ static inline D3DXVECTOR4* D3DXVec4Minimize(D3DXVECTOR4 *pout, CONST D3DXVECTOR4
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR4* D3DXVec4Scale(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv, FLOAT s)
++static inline D3DXVECTOR4* D3DXVec4Scale(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv, FLOAT s)
+ {
+     if ( !pout || !pv) return NULL;
+     pout->x = s * (pv->x);
+@@ -1172,7 +1172,7 @@ static inline D3DXVECTOR4* D3DXVec4Scale(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *p
+     return pout;
+ }
+ 
+-static inline D3DXVECTOR4* D3DXVec4Subtract(D3DXVECTOR4 *pout, CONST D3DXVECTOR4 *pv1, CONST D3DXVECTOR4 *pv2)
++static inline D3DXVECTOR4* D3DXVec4Subtract(D3DXVECTOR4 *pout, const D3DXVECTOR4 *pv1, const D3DXVECTOR4 *pv2)
+ {
+     if ( !pout || !pv1 || !pv2) return NULL;
+     pout->x = pv1->x - pv2->x;
+@@ -1231,19 +1231,19 @@ static inline WINBOOL D3DXMatrixIsIdentity(D3DXMATRIX *pm)
+ 
+ /*__________________D3DXPLANE____________________*/
+ 
+-static inline FLOAT D3DXPlaneDot(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
++static inline FLOAT D3DXPlaneDot(const D3DXPLANE *pp, const D3DXVECTOR4 *pv)
+ {
+     if ( !pp || !pv ) return 0.0f;
+     return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) + (pp->d) * (pv->w) );
+ }
+ 
+-static inline FLOAT D3DXPlaneDotCoord(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
++static inline FLOAT D3DXPlaneDotCoord(const D3DXPLANE *pp, const D3DXVECTOR4 *pv)
+ {
+     if ( !pp || !pv ) return 0.0f;
+     return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) + (pp->d) );
+ }
+ 
+-static inline FLOAT D3DXPlaneDotNormal(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *pv)
++static inline FLOAT D3DXPlaneDotNormal(const D3DXPLANE *pp, const D3DXVECTOR4 *pv)
+ {
+     if ( !pp || !pv ) return 0.0f;
+     return ( (pp->a) * (pv->x) + (pp->b) * (pv->y) + (pp->c) * (pv->z) );
+@@ -1251,7 +1251,7 @@ static inline FLOAT D3DXPlaneDotNormal(CONST D3DXPLANE *pp, CONST D3DXVECTOR4 *p
+ 
+ /*__________________D3DXQUATERNION____________________*/
+ 
+-static inline D3DXQUATERNION* D3DXQuaternionConjugate(D3DXQUATERNION *pout, CONST D3DXQUATERNION *pq)
++static inline D3DXQUATERNION* D3DXQuaternionConjugate(D3DXQUATERNION *pout, const D3DXQUATERNION *pq)
+ {
+     if ( !pout || !pq) return NULL;
+     pout->x = -pq->x;
+@@ -1261,7 +1261,7 @@ static inline D3DXQUATERNION* D3DXQuaternionConjugate(D3DXQUATERNION *pout, CONS
+     return pout;
+ }
+ 
+-static inline FLOAT D3DXQuaternionDot(CONST D3DXQUATERNION *pq1, CONST D3DXQUATERNION *pq2)
++static inline FLOAT D3DXQuaternionDot(const D3DXQUATERNION *pq1, const D3DXQUATERNION *pq2)
+ {
+     if ( !pq1 || !pq2 ) return 0.0f;
+     return (pq1->x) * (pq2->x) + (pq1->y) * (pq2->y) + (pq1->z) * (pq2->z) + (pq1->w) * (pq2->w);
+@@ -1283,13 +1283,13 @@ static inline WINBOOL D3DXQuaternionIsIdentity(D3DXQUATERNION *pq)
+     return ( (pq->x == 0.0f) && (pq->y == 0.0f) && (pq->z == 0.0f) && (pq->w == 1.0f) );
+ }
+ 
+-static inline FLOAT D3DXQuaternionLength(CONST D3DXQUATERNION *pq)
++static inline FLOAT D3DXQuaternionLength(const D3DXQUATERNION *pq)
+ {
+     if (!pq) return 0.0f;
+     return sqrtf( pq->x * pq->x + pq->y * pq->y + pq->z * pq->z + pq->w * pq->w );
+ }
+ 
+-static inline FLOAT D3DXQuaternionLengthSq(CONST D3DXQUATERNION *pq)
++static inline FLOAT D3DXQuaternionLengthSq(const D3DXQUATERNION *pq)
+ {
+     if (!pq) return 0.0f;
+     return (pq->x) * (pq->x) + (pq->y) * (pq->y) + (pq->z) * (pq->z) + (pq->w) * (pq->w);
+diff --git a/mingw-w64-headers/direct-x/include/d3dx9mesh.h b/mingw-w64-headers/direct-x/include/d3dx9mesh.h
+index e7d19e7..81f67d6 100644
+--- a/mingw-w64-headers/direct-x/include/d3dx9mesh.h
++++ b/mingw-w64-headers/direct-x/include/d3dx9mesh.h
+@@ -300,7 +300,7 @@ typedef struct _XFILECOMPRESSEDANIMATIONSET
+ } XFILECOMPRESSEDANIMATIONSET;
+ 
+ typedef HRESULT (WINAPI *LPD3DXUVATLASCB)(float complete, void *ctx);
+-typedef HRESULT (WINAPI *LPD3DXIMTSIGNALCALLBACK)(CONST D3DXVECTOR2 *, UINT, UINT, VOID *, FLOAT *);
++typedef HRESULT (WINAPI *LPD3DXIMTSIGNALCALLBACK)(const D3DXVECTOR2 *, UINT, UINT, void *, FLOAT *);
+ typedef HRESULT (WINAPI *LPD3DXSHPRTSIMCB)(float complete, void *ctx);
+ 
+ #undef INTERFACE
+@@ -332,8 +332,8 @@ DECLARE_INTERFACE_(ID3DXBaseMesh, IUnknown)
+     STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
+     STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
+     STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
+-    STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* point_reps, DWORD* adjacency) PURE;
+-    STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* adjacency, DWORD* point_reps) PURE;
++    STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ const DWORD *point_reps, DWORD *adjacency) PURE;
++    STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ const DWORD *adjacency, DWORD *point_reps) PURE;
+     STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
+     STDMETHOD(UpdateSemantics)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+ };
+@@ -366,8 +366,8 @@ DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
+     STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
+     STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
+     STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
+-    STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* point_reps, DWORD* adjacency) PURE;
+-    STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* adjacency, DWORD* point_reps) PURE;
++    STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ const DWORD *point_reps, DWORD *adjacency) PURE;
++    STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ const DWORD *adjacency, DWORD *point_reps) PURE;
+     STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
+     STDMETHOD(UpdateSemantics)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+     /*** ID3DXMesh ***/
+@@ -377,7 +377,8 @@ DECLARE_INTERFACE_(ID3DXMesh, ID3DXBaseMesh)
+             DWORD *face_remap, ID3DXBuffer **vertex_remap, ID3DXMesh **opt_mesh) PURE;
+     STDMETHOD(OptimizeInplace)(THIS_ DWORD flags, const DWORD *adjacency_in, DWORD *adjacency_out,
+                      DWORD *face_remap, ID3DXBuffer **vertex_remap) PURE;
+-    STDMETHOD(SetAttributeTable)(THIS_ CONST D3DXATTRIBUTERANGE* attrib_table, DWORD attrib_table_size) PURE;
++    STDMETHOD(SetAttributeTable)(THIS_ const D3DXATTRIBUTERANGE *attrib_table,
++            DWORD attrib_table_size) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -408,8 +409,8 @@ DECLARE_INTERFACE_(ID3DXPMesh, ID3DXBaseMesh)
+     STDMETHOD(LockIndexBuffer)(THIS_ DWORD flags, void **data) PURE;
+     STDMETHOD(UnlockIndexBuffer)(THIS) PURE;
+     STDMETHOD(GetAttributeTable)(THIS_ D3DXATTRIBUTERANGE* attrib_table, DWORD* attrib_table_size) PURE;
+-    STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ CONST DWORD* point_reps, DWORD* adjacency) PURE;
+-    STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ CONST DWORD* adjacency, DWORD* point_reps) PURE;
++    STDMETHOD(ConvertPointRepsToAdjacency)(THIS_ const DWORD *point_reps, DWORD *adjacency) PURE;
++    STDMETHOD(ConvertAdjacencyToPointReps)(THIS_ const DWORD *adjacency, DWORD *point_reps) PURE;
+     STDMETHOD(GenerateAdjacency)(THIS_ FLOAT epsilon, DWORD* adjacency) PURE;
+     STDMETHOD(UpdateSemantics)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+     /*** ID3DXPMesh ***/
+@@ -423,7 +424,8 @@ DECLARE_INTERFACE_(ID3DXPMesh, ID3DXBaseMesh)
+     STDMETHOD_(DWORD, GetMinFaces)(THIS) PURE;
+     STDMETHOD_(DWORD, GetMaxVertices)(THIS) PURE;
+     STDMETHOD_(DWORD, GetMinVertices)(THIS) PURE;
+-    STDMETHOD(Save)(THIS_ IStream *stream, CONST D3DXMATERIAL* material, CONST D3DXEFFECTINSTANCE* effect_instance, DWORD num_materials) PURE;
++    STDMETHOD(Save)(THIS_ IStream *stream, const D3DXMATERIAL *material,
++            const D3DXEFFECTINSTANCE *effect_instance, DWORD num_materials) PURE;
+     STDMETHOD(Optimize)(THIS_ DWORD flags, DWORD *adjacency_out, DWORD *face_remap,
+             ID3DXBuffer **vertex_remap, ID3DXMesh **opt_mesh) PURE;
+     STDMETHOD(OptimizeBaseLOD)(THIS_ DWORD flags, DWORD* face_remap) PURE;
+@@ -516,7 +518,8 @@ DECLARE_INTERFACE_(ID3DXSkinInfo, IUnknown)
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
+     /*** ID3DXSkinInfo ***/
+-    STDMETHOD(SetBoneInfluence)(THIS_ DWORD bone, DWORD num_influences, CONST DWORD* vertices, CONST FLOAT* weights) PURE;
++    STDMETHOD(SetBoneInfluence)(THIS_ DWORD bone, DWORD num_influences, const DWORD *vertices,
++            const FLOAT *weights) PURE;
+     STDMETHOD(SetBoneVertexInfluence)(THIS_ DWORD bone_num, DWORD influence_num, float weight) PURE;
+     STDMETHOD_(DWORD, GetNumBoneInfluences)(THIS_ DWORD bone) PURE;
+     STDMETHOD(GetBoneInfluence)(THIS_ DWORD bone, DWORD* vertices, FLOAT* weights) PURE;
+@@ -530,12 +533,12 @@ DECLARE_INTERFACE_(ID3DXSkinInfo, IUnknown)
+     STDMETHOD_(FLOAT, GetMinBoneInfluence)(THIS) PURE;
+     STDMETHOD(SetBoneName)(THIS_ DWORD bone_idx, const char *name) PURE;
+     STDMETHOD_(const char *, GetBoneName)(THIS_ DWORD bone_idx) PURE;
+-    STDMETHOD(SetBoneOffsetMatrix)(THIS_ DWORD bone, CONST D3DXMATRIX* bone_transform) PURE;
++    STDMETHOD(SetBoneOffsetMatrix)(THIS_ DWORD bone, const D3DXMATRIX *bone_transform) PURE;
+     STDMETHOD_(D3DXMATRIX *, GetBoneOffsetMatrix)(THIS_ DWORD bone) PURE;
+     STDMETHOD(Clone)(THIS_ ID3DXSkinInfo **skin_info) PURE;
+     STDMETHOD(Remap)(THIS_ DWORD num_vertices, DWORD* vertex_remap) PURE;
+     STDMETHOD(SetFVF)(THIS_ DWORD FVF) PURE;
+-    STDMETHOD(SetDeclaration)(THIS_ CONST D3DVERTEXELEMENT9* declaration) PURE;
++    STDMETHOD(SetDeclaration)(THIS_ const D3DVERTEXELEMENT9 *declaration) PURE;
+     STDMETHOD_(DWORD, GetFVF)(THIS) PURE;
+     STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9 declaration[MAX_FVF_DECL_SIZE]) PURE;
+     STDMETHOD(UpdateSkinnedMesh)(THIS_ const D3DXMATRIX *bone_transforms,
+@@ -638,9 +641,9 @@ DECLARE_INTERFACE_(ID3DXPRTEngine, IUnknown)
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
+     /*** ID3DXPRTEngine methods ***/
+-    STDMETHOD(SetMeshMaterials)(THIS_ CONST D3DXSHMATERIAL **materials, UINT num_meshes,
++    STDMETHOD(SetMeshMaterials)(THIS_ const D3DXSHMATERIAL **materials, UINT num_meshes,
+         UINT num_channels, WINBOOL set_albedo, FLOAT length_scale) PURE;
+-    STDMETHOD(SetPerVertexAlbedo)(THIS_ CONST VOID *data_in, UINT num_channels, UINT stride) PURE;
++    STDMETHOD(SetPerVertexAlbedo)(THIS_ const void *data_in, UINT num_channels, UINT stride) PURE;
+     STDMETHOD(SetPerTexelAlbedo)(THIS_ struct IDirect3DTexture9 *albedo_texture,
+             UINT num_channels, struct ID3DXTextureGutterHelper *gh) PURE;
+     STDMETHOD(GetVertexAlbedo)(THIS_ D3DXCOLOR *vert_colors, UINT num_verts) PURE;
+@@ -684,9 +687,10 @@ DECLARE_INTERFACE_(ID3DXPRTEngine, IUnknown)
+     STDMETHOD(ScaleMeshChunk)(THIS_ UINT mesh_chunk, float scale, ID3DXPRTBuffer *data_out) PURE;
+     STDMETHOD(MultiplyAlbedo)(THIS_ ID3DXPRTBuffer *data_out) PURE;
+     STDMETHOD(SetCallback)(THIS_ LPD3DXSHPRTSIMCB cb, float frequency, void *user_context) PURE;
+-    STDMETHOD_(WINBOOL, ShadowRayIntersects)(THIS_ CONST D3DXVECTOR3 *ray_pos, CONST D3DXVECTOR3 *ray_dir) PURE;
+-    STDMETHOD_(WINBOOL, ClosestRayIntersects)(THIS_ CONST D3DXVECTOR3 *ray_pos, CONST D3DXVECTOR3 *ray_dir,
+-        DWORD *face_index, FLOAT *u, FLOAT *v, FLOAT *dist) PURE;
++    STDMETHOD_(WINBOOL, ShadowRayIntersects)(THIS_ const D3DXVECTOR3 *ray_pos,
++            const D3DXVECTOR3 *ray_dir) PURE;
++    STDMETHOD_(WINBOOL, ClosestRayIntersects)(THIS_ const D3DXVECTOR3 *ray_pos,
++            const D3DXVECTOR3 *ray_dir, DWORD *face_index, FLOAT *u, FLOAT *v, FLOAT *dist) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -764,15 +768,19 @@ HRESULT WINAPI D3DXSavePRTCompBufferToFileW(const WCHAR *filename, ID3DXPRTCompB
+ UINT    WINAPI D3DXGetDeclLength(const D3DVERTEXELEMENT9 *decl);
+ UINT    WINAPI D3DXGetDeclVertexSize(const D3DVERTEXELEMENT9 *decl, DWORD stream_idx);
+ UINT    WINAPI D3DXGetFVFVertexSize(DWORD);
+-WINBOOL WINAPI D3DXBoxBoundProbe(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *);
+-WINBOOL WINAPI D3DXSphereBoundProbe(CONST D3DXVECTOR3 *,FLOAT,CONST D3DXVECTOR3 *,CONST D3DXVECTOR3 *);
++WINBOOL WINAPI D3DXBoxBoundProbe(const D3DXVECTOR3 *vmin, const D3DXVECTOR3 *vmax,
++        const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir);
++WINBOOL WINAPI D3DXSphereBoundProbe(const D3DXVECTOR3 *center, FLOAT radius,
++        const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir);
+ HRESULT WINAPI D3DXCleanMesh(D3DXCLEANTYPE clean_type, ID3DXMesh *mesh_in, const DWORD *adjacency_in,
+         ID3DXMesh **mesh_out, DWORD *adjacency_out, ID3DXBuffer **errors);
+ HRESULT WINAPI D3DXConcatenateMeshes(struct ID3DXMesh **meshes, UINT mesh_count, DWORD flags,
+         const D3DXMATRIX *geometry_matrices, const D3DXMATRIX *texture_matrices,
+         const D3DVERTEXELEMENT9 *declaration, struct IDirect3DDevice9 *device, struct ID3DXMesh **mesh);
+-HRESULT WINAPI D3DXComputeBoundingBox(CONST D3DXVECTOR3 *, DWORD, DWORD, D3DXVECTOR3 *, D3DXVECTOR3 *);
+-HRESULT WINAPI D3DXComputeBoundingSphere(CONST D3DXVECTOR3 *, DWORD, DWORD, D3DXVECTOR3 *, FLOAT *);
++HRESULT WINAPI D3DXComputeBoundingBox(const D3DXVECTOR3 *first_pos, DWORD num_vertices,
++        DWORD stride, D3DXVECTOR3 *vmin, D3DXVECTOR3 *vmax);
++HRESULT WINAPI D3DXComputeBoundingSphere(const D3DXVECTOR3 *first_pos, DWORD num_vertices,
++        DWORD stride, D3DXVECTOR3 *center, FLOAT *radius);
+ HRESULT WINAPI D3DXComputeIMTFromPerTexelSignal(ID3DXMesh *mesh, DWORD texture_idx, float *texel_signal,
+         UINT width, UINT height, UINT signal_dimension, UINT component_count, DWORD flags,
+         LPD3DXUVATLASCB cb, void *ctx, ID3DXBuffer **buffer);
+@@ -799,7 +807,7 @@ HRESULT WINAPI D3DXConvertMeshSubsetToStrips(struct ID3DXBaseMesh *mesh_in, DWOR
+         struct ID3DXBuffer **strip_lengths, DWORD *strip_count);
+ HRESULT WINAPI D3DXDeclaratorFromFVF(DWORD, D3DVERTEXELEMENT9[MAX_FVF_DECL_SIZE]);
+ HRESULT WINAPI D3DXFVFFromDeclarator(const D3DVERTEXELEMENT9 *decl, DWORD *fvf);
+-HRESULT WINAPI D3DXGenerateOutputDecl(D3DVERTEXELEMENT9 *, CONST D3DVERTEXELEMENT9 *);
++HRESULT WINAPI D3DXGenerateOutputDecl(D3DVERTEXELEMENT9 *decl_out, const D3DVERTEXELEMENT9 *decl_in);
+ HRESULT WINAPI D3DXGeneratePMesh(ID3DXMesh *mesh, const DWORD *adjacency,
+         const D3DXATTRIBUTEWEIGHTS *attribute_weights, const float *vertex_weights,
+         DWORD min_value, DWORD flags, ID3DXPMesh **pmesh);
+@@ -808,12 +816,15 @@ HRESULT WINAPI D3DXIntersect(ID3DXBaseMesh *mesh, const D3DXVECTOR3 *ray_positio
+ HRESULT WINAPI D3DXIntersectSubset(ID3DXBaseMesh *mesh, DWORD attribute_id, const D3DXVECTOR3 *ray_position,
+         const D3DXVECTOR3 *ray_direction, WINBOOL *hit, DWORD *face_idx, float *u, float *v, float *distance,
+         ID3DXBuffer **hits, DWORD *hit_count);
+-WINBOOL WINAPI D3DXIntersectTri(CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3 *, CONST D3DXVECTOR3*, FLOAT *, FLOAT *, FLOAT *);
++WINBOOL WINAPI D3DXIntersectTri(const D3DXVECTOR3 *vtx0, const D3DXVECTOR3 *vtx1,
++        const D3DXVECTOR3 *vtx2, const D3DXVECTOR3 *ray_pos, const D3DXVECTOR3 *ray_dir, FLOAT *u,
++        FLOAT *v, FLOAT *dist);
+ HRESULT WINAPI D3DXOptimizeFaces(const void *indices, UINT face_count,
+         UINT vertex_count, WINBOOL idx_32bit, DWORD *face_remap);
+ HRESULT WINAPI D3DXOptimizeVertices(const void *indices, UINT face_count,
+         UINT vertex_count, WINBOOL idx_32bit, DWORD *vertex_remap);
+-HRESULT WINAPI D3DXRectPatchSize(CONST FLOAT *, DWORD *, DWORD *);
++HRESULT WINAPI D3DXRectPatchSize(const FLOAT *segment_count, DWORD *num_triangles,
++        DWORD *num_vertices);
+ HRESULT WINAPI D3DXSHPRTCompSuperCluster(UINT *cluster_ids, ID3DXMesh *scene, UINT max_cluster_count,
+         UINT cluster_count, UINT *scluster_ids, UINT *scluster_count);
+ HRESULT WINAPI D3DXSHPRTCompSplitMeshSC(UINT *cluster_idx, UINT vertex_count, UINT cluster_count, UINT *scluster_ids,
+@@ -832,7 +843,8 @@ HRESULT WINAPI D3DXTesselateRectPatch(struct IDirect3DVertexBuffer9 *buffer, con
+         const D3DVERTEXELEMENT9 *declaration, const D3DRECTPATCH_INFO *patch_info, struct ID3DXMesh *mesh);
+ HRESULT WINAPI D3DXTesselateTriPatch(struct IDirect3DVertexBuffer9 *buffer, const float *segment_count,
+         const D3DVERTEXELEMENT9 *declaration, const D3DTRIPATCH_INFO *patch_info, struct ID3DXMesh *mesh);
+-HRESULT WINAPI D3DXTriPatchSize(CONST FLOAT *, DWORD *, DWORD *);
++HRESULT WINAPI D3DXTriPatchSize(const FLOAT *segment_count, DWORD *num_triangles,
++        DWORD *num_vertices);
+ HRESULT WINAPI D3DXUVAtlasCreate(ID3DXMesh *mesh_in, UINT max_chart_count, float max_stretch_in,
+         UINT width, UINT height, float gutter, DWORD texture_idx, const DWORD *adjacency, const DWORD *false_edges,
+         const float *imt_array, LPD3DXUVATLASCB cb, float cb_freq, void *ctx, DWORD flags, ID3DXMesh **mesh_out,
+diff --git a/mingw-w64-headers/direct-x/include/dmusici.h b/mingw-w64-headers/direct-x/include/dmusici.h
+index d26ec97..34e352e 100644
+--- a/mingw-w64-headers/direct-x/include/dmusici.h
++++ b/mingw-w64-headers/direct-x/include/dmusici.h
+@@ -64,7 +64,6 @@ DEFINE_GUID(CLSID_DirectMusicSynthSink,                    0xaec17ce3,0xa514,0x1
+ DEFINE_GUID(CLSID_DirectMusicSection,                      0x3f037241,0x414e,0x11d1,0xa7,0xce,0x00,0xa0,0xc9,0x13,0xf7,0x3c);
+ DEFINE_GUID(CLSID_DirectMusicAuditionTrack,                0xd2ac2897,0xb39b,0x11d1,0x87,0x04,0x00,0x60,0x08,0x93,0xb1,0xbd);
+ DEFINE_GUID(CLSID_DirectMusicSegTriggerTrack,              0xbae4d665,0x4ea1,0x11d3,0x8b,0xda,0x00,0x60,0x08,0x93,0xb1,0xb6);
+-DEFINE_GUID(CLSID_DirectMusicAudioPath,                    0xee0b9ca0,0xa81e,0x11d3,0x9b,0xd1,0x00,0x80,0xc7,0x15,0x0a,0x74);
+ DEFINE_GUID(CLSID_DirectMusicTemplate,                     0xd30bcc65,0x60e8,0x11d1,0xa7,0xce,0x00,0xa0,0xc9,0x13,0xf7,0x3c);
+ DEFINE_GUID(CLSID_DirectMusicScriptAutoImpSegment,         0x4062c116,0x0270,0x11d3,0x8b,0xcb,0x00,0x60,0x08,0x93,0xb1,0xb6);
+ DEFINE_GUID(CLSID_AudioVBScript,                           0x4ee17959,0x931e,0x49e4,0xa2,0xc6,0x97,0x7e,0xcf,0x36,0x28,0xf3);
+diff --git a/mingw-w64-headers/direct-x/include/dpaddr.h b/mingw-w64-headers/direct-x/include/dpaddr.h
+index 40ec4e0..9d3af01 100644
+--- a/mingw-w64-headers/direct-x/include/dpaddr.h
++++ b/mingw-w64-headers/direct-x/include/dpaddr.h
+@@ -237,14 +237,14 @@ DECLARE_INTERFACE_(IDirectPlay8Address,IUnknown)
+     STDMETHOD(GetURLA)(THIS_ CHAR* pszURL, PDWORD pdwNumChars) PURE;
+     STDMETHOD(GetSP)(THIS_ GUID* pguidSP) PURE;
+     STDMETHOD(GetUserData)(THIS_ LPVOID pvUserData, PDWORD pdwBufferSize) PURE;
+-    STDMETHOD(SetSP)(THIS_ CONST GUID* CONST pguidSP) PURE;
+-    STDMETHOD(SetUserData)(THIS_ CONST void* CONST pvUserData, CONST DWORD dwDataSize) PURE;
++    STDMETHOD(SetSP)(THIS_ const GUID* pguidSP) PURE;
++    STDMETHOD(SetUserData)(THIS_ const void* pvUserData, DWORD dwDataSize) PURE;
+     STDMETHOD(GetNumComponents)(THIS_ PDWORD pdwNumComponents) PURE;
+-    STDMETHOD(GetComponentByName)(THIS_ CONST WCHAR* CONST pwszName, LPVOID pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) PURE;
+-    STDMETHOD(GetComponentByIndex)(THIS_ CONST DWORD dwComponentID, WCHAR* pwszName, PDWORD pdwNameLen, void* pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) PURE;
+-    STDMETHOD(AddComponent)(THIS_ CONST WCHAR* CONST pwszName, CONST void* CONST lpvData, CONST DWORD dwDataSize, CONST DWORD dwDataType) PURE;
++    STDMETHOD(GetComponentByName)(THIS_ const WCHAR* pwszName, LPVOID pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) PURE;
++    STDMETHOD(GetComponentByIndex)(THIS_ DWORD dwComponentID, WCHAR* pwszName, PDWORD pdwNameLen, void* pvBuffer, PDWORD pdwBufferSize, PDWORD pdwDataType) PURE;
++    STDMETHOD(AddComponent)(THIS_ const WCHAR* pwszName, const void* lpvData, DWORD dwDataSize, DWORD dwDataType) PURE;
+     STDMETHOD(GetDevice)(THIS_ GUID* pDevGuid) PURE;
+-    STDMETHOD(SetDevice)(THIS_ CONST GUID* CONST devGuid) PURE;
++    STDMETHOD(SetDevice)(THIS_ const GUID* devGuid) PURE;
+     STDMETHOD(BuildFromDirectPlay4Address)(THIS_ LPVOID pvAddress, DWORD dwDataSize) PURE;
+ };
+ #undef INTERFACE
+@@ -313,9 +313,9 @@ DECLARE_INTERFACE_(IDirectPlay8AddressIP,IUnknown)
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirectPlay8AddressIP methods ***/
+-    STDMETHOD(BuildFromSockAddr)(THIS_ CONST SOCKADDR* CONST pSockAddr) PURE;
+-    STDMETHOD(BuildAddress)(THIS_ CONST WCHAR* CONST wszAddress, CONST USHORT usPort) PURE;
+-    STDMETHOD(BuildLocalAddress)(THIS_ CONST GUID* CONST pguidAdapter, CONST USHORT usPort) PURE;
++    STDMETHOD(BuildFromSockAddr)(THIS_ const SOCKADDR* pSockAddr) PURE;
++    STDMETHOD(BuildAddress)(THIS_ const WCHAR* wszAddress, USHORT usPort) PURE;
++    STDMETHOD(BuildLocalAddress)(THIS_ const GUID* pguidAdapter, USHORT usPort) PURE;
+     STDMETHOD(GetSockAddress)(THIS_ SOCKADDR* pSockAddr, PDWORD) PURE;
+     STDMETHOD(GetLocalAddress)(THIS_ GUID* pguidAdapter, USHORT* pusPort) PURE;
+     STDMETHOD(GetAddress)(THIS_ WCHAR* wszAddress, PDWORD pdwAddressLength, USHORT* psPort) PURE;
+@@ -350,7 +350,7 @@ DECLARE_INTERFACE_(IDirectPlay8AddressIP,IUnknown)
+ 
+ /* Export functions */
+ 
+-HRESULT WINAPI DirectPlay8AddressCreate(CONST GUID* pcIID, LPVOID* ppvInterface, IUnknown* pUnknown);
++HRESULT WINAPI DirectPlay8AddressCreate(const GUID* pcIID, LPVOID* ppvInterface, IUnknown* pUnknown);
+ 
+ #ifdef __cplusplus
+ }
+diff --git a/mingw-w64-headers/direct-x/include/dplay8.h b/mingw-w64-headers/direct-x/include/dplay8.h
+index 516f18e..678cef9 100644
+--- a/mingw-w64-headers/direct-x/include/dplay8.h
++++ b/mingw-w64-headers/direct-x/include/dplay8.h
+@@ -578,25 +578,25 @@ DECLARE_INTERFACE_(IDirectPlay8Client,IUnknown)
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirectPlay8Client methods ***/
+-    STDMETHOD(Initialize)(THIS_ PVOID CONST pvUserContext, CONST PFNDPNMESSAGEHANDLER pfn, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumServiceProviders)(THIS_ CONST GUID * CONST pguidServiceProvider, CONST GUID * CONST pguidApplication, DPN_SERVICE_PROVIDER_INFO * CONST pSPInfoBuffer, PDWORD CONST pcbEnumData, PDWORD CONST pcReturned, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumHosts)(THIS_ PDPN_APPLICATION_DESC CONST pApplicationDesc,IDirectPlay8Address * CONST pAddrHost,IDirectPlay8Address * CONST pDeviceInfo, PVOID CONST pUserEnumData, CONST DWORD dwUserEnumDataSize, CONST DWORD dwEnumCount, CONST DWORD dwRetryInterval, CONST DWORD dwTimeOut, PVOID CONST pvUserContext, DPNHANDLE * CONST pAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(CancelAsyncOperation)(THIS_ CONST DPNHANDLE hAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Connect)(THIS_ CONST DPN_APPLICATION_DESC * CONST pdnAppDesc,IDirectPlay8Address * CONST pHostAddr,IDirectPlay8Address * CONST pDeviceInfo, CONST DPN_SECURITY_DESC * CONST pdnSecurity, CONST DPN_SECURITY_CREDENTIALS * CONST pdnCredentials, CONST void * CONST pvUserConnectData, CONST DWORD dwUserConnectDataSize,void * CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Send)(THIS_ CONST DPN_BUFFER_DESC * CONST prgBufferDesc, CONST DWORD cBufferDesc, CONST DWORD dwTimeOut, void * CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetSendQueueInfo)(THIS_ DWORD * CONST pdwNumMsgs, DWORD * CONST pdwNumBytes, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetApplicationDesc)(THIS_ DPN_APPLICATION_DESC * CONST pAppDescBuffer, DWORD * CONST pcbDataSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetClientInfo)(THIS_ CONST DPN_PLAYER_INFO * CONST pdpnPlayerInfo, PVOID CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetServerInfo)(THIS_ DPN_PLAYER_INFO * CONST pdpnPlayerInfo, DWORD * CONST pdwSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetServerAddress)(THIS_ IDirectPlay8Address ** CONST pAddress, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Close)(THIS_ CONST DWORD dwFlags) PURE;
+-    STDMETHOD(ReturnBuffer)(THIS_ CONST DPNHANDLE hBufferHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetCaps)(THIS_ DPN_CAPS * CONST pdpCaps, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetCaps)(THIS_ CONST DPN_CAPS * CONST pdpCaps, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetSPCaps)(THIS_ CONST GUID * CONST pguidSP, CONST DPN_SP_CAPS * CONST pdpspCaps, CONST DWORD dwFlags ) PURE;
+-    STDMETHOD(GetSPCaps)(THIS_ CONST GUID * CONST pguidSP, DPN_SP_CAPS * CONST pdpspCaps, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetConnectionInfo)(THIS_ DPN_CONNECTION_INFO * CONST pdpConnectionInfo, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(RegisterLobby)(THIS_ CONST DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication * CONST pIDP8LobbiedApplication, CONST DWORD dwFlags) PURE;
++    STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE;
++    STDMETHOD(EnumServiceProviders)(THIS_ const GUID *pguidServiceProvider, const GUID *pguidApplication, DPN_SERVICE_PROVIDER_INFO *pSPInfoBuffer, PDWORD pcbEnumData, PDWORD pcReturned, DWORD dwFlags) PURE;
++    STDMETHOD(EnumHosts)(THIS_ PDPN_APPLICATION_DESC pApplicationDesc,IDirectPlay8Address *pAddrHost,IDirectPlay8Address *pDeviceInfo, PVOID pUserEnumData, DWORD dwUserEnumDataSize, DWORD dwEnumCount, DWORD dwRetryInterval, DWORD dwTimeOut, PVOID pvUserContext, DPNHANDLE *pAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(CancelAsyncOperation)(THIS_ DPNHANDLE hAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(Connect)(THIS_ const DPN_APPLICATION_DESC *pdnAppDesc,IDirectPlay8Address *pHostAddr,IDirectPlay8Address *pDeviceInfo, const DPN_SECURITY_DESC *pdnSecurity, const DPN_SECURITY_CREDENTIALS *pdnCredentials, const void *pvUserConnectData, DWORD dwUserConnectDataSize,void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(Send)(THIS_ const DPN_BUFFER_DESC *prgBufferDesc, DWORD cBufferDesc, DWORD dwTimeOut, void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetSendQueueInfo)(THIS_ DWORD *pdwNumMsgs, DWORD *pdwNumBytes, DWORD dwFlags) PURE;
++    STDMETHOD(GetApplicationDesc)(THIS_ DPN_APPLICATION_DESC *pAppDescBuffer, DWORD *pcbDataSize, DWORD dwFlags) PURE;
++    STDMETHOD(SetClientInfo)(THIS_ const DPN_PLAYER_INFO *pdpnPlayerInfo, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetServerInfo)(THIS_ DPN_PLAYER_INFO *pdpnPlayerInfo, DWORD *pdwSize, DWORD dwFlags) PURE;
++    STDMETHOD(GetServerAddress)(THIS_ IDirectPlay8Address ** pAddress, DWORD dwFlags) PURE;
++    STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE;
++    STDMETHOD(ReturnBuffer)(THIS_ DPNHANDLE hBufferHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetCaps)(THIS_ DPN_CAPS *pdpCaps, DWORD dwFlags) PURE;
++    STDMETHOD(SetCaps)(THIS_ const DPN_CAPS *pdpCaps, DWORD dwFlags) PURE;
++    STDMETHOD(SetSPCaps)(THIS_ const GUID *pguidSP, const DPN_SP_CAPS *pdpspCaps, DWORD dwFlags ) PURE;
++    STDMETHOD(GetSPCaps)(THIS_ const GUID *pguidSP, DPN_SP_CAPS *pdpspCaps, DWORD dwFlags) PURE;
++    STDMETHOD(GetConnectionInfo)(THIS_ DPN_CONNECTION_INFO *pdpConnectionInfo, DWORD dwFlags) PURE;
++    STDMETHOD(RegisterLobby)(THIS_ DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *pIDP8LobbiedApplication, DWORD dwFlags) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -663,37 +663,37 @@ DECLARE_INTERFACE_(IDirectPlay8Server,IUnknown)
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirectPlay8Server methods ***/
+-    STDMETHOD(Initialize)(THIS_ PVOID CONST pvUserContext, CONST PFNDPNMESSAGEHANDLER pfn, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumServiceProviders)(THIS_ CONST GUID * CONST pguidServiceProvider, CONST GUID * CONST pguidApplication, DPN_SERVICE_PROVIDER_INFO * CONST pSPInfoBuffer, PDWORD CONST pcbEnumData, PDWORD CONST pcReturned, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(CancelAsyncOperation)(THIS_ CONST DPNHANDLE hAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetSendQueueInfo)(THIS_ CONST DPNID dpnid, DWORD * CONST pdwNumMsgs, DWORD * CONST pdwNumBytes, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetApplicationDesc)(THIS_ DPN_APPLICATION_DESC * CONST pAppDescBuffer, DWORD * CONST pcbDataSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetServerInfo)(THIS_ CONST DPN_PLAYER_INFO * CONST pdpnPlayerInfo, PVOID CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetClientInfo)(THIS_ CONST DPNID dpnid, DPN_PLAYER_INFO * CONST pdpnPlayerInfo, DWORD * CONST pdwSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetClientAddress)(THIS_ CONST DPNID dpnid, IDirectPlay8Address ** CONST pAddress, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetLocalHostAddresses)(THIS_ IDirectPlay8Address ** CONST prgpAddress, DWORD * CONST pcAddress, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetApplicationDesc)(THIS_ CONST DPN_APPLICATION_DESC * CONST pad, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Host)(THIS_ CONST DPN_APPLICATION_DESC * CONST pdnAppDesc, IDirectPlay8Address ** CONST prgpDeviceInfo, CONST DWORD cDeviceInfo, CONST DPN_SECURITY_DESC * CONST pdnSecurity, CONST DPN_SECURITY_CREDENTIALS * CONST pdnCredentials, void * CONST pvPlayerContext, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SendTo)(THIS_ CONST DPNID dpnid, CONST DPN_BUFFER_DESC * CONST prgBufferDesc, CONST DWORD cBufferDesc, CONST DWORD dwTimeOut, void * CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(CreateGroup)(THIS_ CONST DPN_GROUP_INFO * CONST pdpnGroupInfo, void * CONST pvGroupContext, void * CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(DestroyGroup)(THIS_ CONST DPNID idGroup, PVOID CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(AddPlayerToGroup)(THIS_ CONST DPNID idGroup, CONST DPNID idClient, PVOID CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(RemovePlayerFromGroup)(THIS_ CONST DPNID idGroup, CONST DPNID idClient, PVOID CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetGroupInfo)(THIS_ CONST DPNID dpnid, DPN_GROUP_INFO * CONST pdpnGroupInfo, PVOID CONST pvAsyncContext, DPNHANDLE * CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetGroupInfo)(THIS_ CONST DPNID dpnid, DPN_GROUP_INFO * CONST pdpnGroupInfo, DWORD * CONST pdwSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumPlayersAndGroups)(THIS_ DPNID * CONST prgdpnid, DWORD * CONST pcdpnid, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumGroupMembers)(THIS_ CONST DPNID dpnid, DPNID * CONST prgdpnid, DWORD * CONST pcdpnid, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Close)(THIS_ CONST DWORD dwFlags) PURE;
+-    STDMETHOD(DestroyClient)(THIS_ CONST DPNID dpnidClient, CONST void * CONST pvDestroyData, CONST DWORD dwDestroyDataSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(ReturnBuffer)(THIS_ CONST DPNHANDLE hBufferHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetPlayerContext)(THIS_ CONST DPNID dpnid, PVOID * CONST ppvPlayerContext, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetGroupContext)(THIS_ CONST DPNID dpnid, PVOID * CONST ppvGroupContext, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetCaps)(THIS_ DPN_CAPS * CONST pdpCaps, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetCaps)(THIS_ CONST DPN_CAPS * CONST pdpCaps, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetSPCaps)(THIS_ CONST GUID * CONST pguidSP, CONST DPN_SP_CAPS * CONST pdpspCaps, CONST DWORD dwFlags ) PURE;
+-    STDMETHOD(GetSPCaps)(THIS_ CONST GUID * CONST pguidSP, DPN_SP_CAPS * CONST pdpspCaps, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetConnectionInfo)(THIS_ CONST DPNID dpnid, DPN_CONNECTION_INFO * CONST pdpConnectionInfo, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(RegisterLobby)(THIS_ CONST DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication * CONST pIDP8LobbiedApplication, CONST DWORD dwFlags) PURE;
++    STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE;
++    STDMETHOD(EnumServiceProviders)(THIS_ const GUID *pguidServiceProvider, const GUID *pguidApplication, DPN_SERVICE_PROVIDER_INFO *pSPInfoBuffer, PDWORD pcbEnumData, PDWORD pcReturned, DWORD dwFlags) PURE;
++    STDMETHOD(CancelAsyncOperation)(THIS_ DPNHANDLE hAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetSendQueueInfo)(THIS_ DPNID dpnid, DWORD *pdwNumMsgs, DWORD *pdwNumBytes, DWORD dwFlags) PURE;
++    STDMETHOD(GetApplicationDesc)(THIS_ DPN_APPLICATION_DESC *pAppDescBuffer, DWORD *pcbDataSize, DWORD dwFlags) PURE;
++    STDMETHOD(SetServerInfo)(THIS_ const DPN_PLAYER_INFO *pdpnPlayerInfo, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetClientInfo)(THIS_ DPNID dpnid, DPN_PLAYER_INFO *pdpnPlayerInfo, DWORD *pdwSize, DWORD dwFlags) PURE;
++    STDMETHOD(GetClientAddress)(THIS_ DPNID dpnid, IDirectPlay8Address ** pAddress, DWORD dwFlags) PURE;
++    STDMETHOD(GetLocalHostAddresses)(THIS_ IDirectPlay8Address ** prgpAddress, DWORD *pcAddress, DWORD dwFlags) PURE;
++    STDMETHOD(SetApplicationDesc)(THIS_ const DPN_APPLICATION_DESC *pad, DWORD dwFlags) PURE;
++    STDMETHOD(Host)(THIS_ const DPN_APPLICATION_DESC *pdnAppDesc, IDirectPlay8Address ** prgpDeviceInfo, DWORD cDeviceInfo, const DPN_SECURITY_DESC *pdnSecurity, const DPN_SECURITY_CREDENTIALS *pdnCredentials, void *pvPlayerContext, DWORD dwFlags) PURE;
++    STDMETHOD(SendTo)(THIS_ DPNID dpnid, const DPN_BUFFER_DESC *prgBufferDesc, DWORD cBufferDesc, DWORD dwTimeOut, void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(CreateGroup)(THIS_ const DPN_GROUP_INFO *pdpnGroupInfo, void *pvGroupContext, void *pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(DestroyGroup)(THIS_ DPNID idGroup, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(AddPlayerToGroup)(THIS_ DPNID idGroup, DPNID idClient, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(RemovePlayerFromGroup)(THIS_ DPNID idGroup, DPNID idClient, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(SetGroupInfo)(THIS_ DPNID dpnid, DPN_GROUP_INFO *pdpnGroupInfo, PVOID pvAsyncContext, DPNHANDLE *phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetGroupInfo)(THIS_ DPNID dpnid, DPN_GROUP_INFO *pdpnGroupInfo, DWORD *pdwSize, DWORD dwFlags) PURE;
++    STDMETHOD(EnumPlayersAndGroups)(THIS_ DPNID *prgdpnid, DWORD *pcdpnid, DWORD dwFlags) PURE;
++    STDMETHOD(EnumGroupMembers)(THIS_ DPNID dpnid, DPNID *prgdpnid, DWORD *pcdpnid, DWORD dwFlags) PURE;
++    STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE;
++    STDMETHOD(DestroyClient)(THIS_ DPNID dpnidClient, const void *pvDestroyData, DWORD dwDestroyDataSize, DWORD dwFlags) PURE;
++    STDMETHOD(ReturnBuffer)(THIS_ DPNHANDLE hBufferHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetPlayerContext)(THIS_ DPNID dpnid, PVOID *ppvPlayerContext, DWORD dwFlags) PURE;
++    STDMETHOD(GetGroupContext)(THIS_ DPNID dpnid, PVOID *ppvGroupContext, DWORD dwFlags) PURE;
++    STDMETHOD(GetCaps)(THIS_ DPN_CAPS *pdpCaps, DWORD dwFlags) PURE;
++    STDMETHOD(SetCaps)(THIS_ const DPN_CAPS *pdpCaps, DWORD dwFlags) PURE;
++    STDMETHOD(SetSPCaps)(THIS_ const GUID *pguidSP, const DPN_SP_CAPS *pdpspCaps, DWORD dwFlags ) PURE;
++    STDMETHOD(GetSPCaps)(THIS_ const GUID *pguidSP, DPN_SP_CAPS *pdpspCaps, DWORD dwFlags) PURE;
++    STDMETHOD(GetConnectionInfo)(THIS_ DPNID dpnid, DPN_CONNECTION_INFO *pdpConnectionInfo, DWORD dwFlags) PURE;
++    STDMETHOD(RegisterLobby)(THIS_ DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication *pIDP8LobbiedApplication, DWORD dwFlags) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -784,40 +784,40 @@ DECLARE_INTERFACE_(IDirectPlay8Peer,IUnknown)
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirectPlay8Peer methods ***/
+-    STDMETHOD(Initialize)(THIS_ PVOID CONST pvUserContext, CONST PFNDPNMESSAGEHANDLER pfn, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumServiceProviders)(THIS_ CONST GUID* CONST pguidServiceProvider, CONST GUID* CONST pguidApplication, DPN_SERVICE_PROVIDER_INFO* CONST pSPInfoBuffer, DWORD* CONST pcbEnumData, DWORD* CONST pcReturned, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(CancelAsyncOperation)(THIS_ CONST DPNHANDLE hAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Connect)(THIS_ CONST DPN_APPLICATION_DESC* CONST pdnAppDesc, IDirectPlay8Address* CONST pHostAddr, IDirectPlay8Address* CONST pDeviceInfo, CONST DPN_SECURITY_DESC* CONST pdnSecurity, CONST DPN_SECURITY_CREDENTIALS* CONST pdnCredentials, CONST void* CONST pvUserConnectData, CONST DWORD dwUserConnectDataSize, void* CONST pvPlayerContext, void* CONST pvAsyncContext, DPNHANDLE* CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SendTo)(THIS_ CONST DPNID dpnid, CONST DPN_BUFFER_DESC* CONST prgBufferDesc, CONST DWORD cBufferDesc, CONST DWORD dwTimeOut, void* CONST pvAsyncContext, DPNHANDLE* CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetSendQueueInfo)(THIS_ CONST DPNID dpnid, DWORD* CONST pdwNumMsgs, DWORD* CONST pdwNumBytes, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Host)(THIS_ CONST DPN_APPLICATION_DESC* CONST pdnAppDesc, IDirectPlay8Address **CONST prgpDeviceInfo, CONST DWORD cDeviceInfo, CONST DPN_SECURITY_DESC* CONST pdnSecurity, CONST DPN_SECURITY_CREDENTIALS* CONST pdnCredentials, void* CONST pvPlayerContext, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetApplicationDesc)(THIS_ DPN_APPLICATION_DESC* CONST pAppDescBuffer, DWORD* CONST pcbDataSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetApplicationDesc)(THIS_ CONST DPN_APPLICATION_DESC* CONST pad, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(CreateGroup)(THIS_ CONST DPN_GROUP_INFO* CONST pdpnGroupInfo, void* CONST pvGroupContext, void* CONST pvAsyncContext, DPNHANDLE* CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(DestroyGroup)(THIS_ CONST DPNID idGroup, PVOID CONST pvAsyncContext, DPNHANDLE* CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(AddPlayerToGroup)(THIS_ CONST DPNID idGroup, CONST DPNID idClient, PVOID CONST pvAsyncContext, DPNHANDLE* CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(RemovePlayerFromGroup)(THIS_ CONST DPNID idGroup, CONST DPNID idClient, PVOID CONST pvAsyncContext, DPNHANDLE* CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetGroupInfo)(THIS_ CONST DPNID dpnid, DPN_GROUP_INFO* CONST pdpnGroupInfo,PVOID CONST pvAsyncContext, DPNHANDLE* CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetGroupInfo)(THIS_ CONST DPNID dpnid, DPN_GROUP_INFO* CONST pdpnGroupInfo, DWORD* CONST pdwSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumPlayersAndGroups)(THIS_ DPNID* CONST prgdpnid, DWORD* CONST pcdpnid, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumGroupMembers)(THIS_ CONST DPNID dpnid, DPNID* CONST prgdpnid, DWORD* CONST pcdpnid, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetPeerInfo)(THIS_ CONST DPN_PLAYER_INFO* CONST pdpnPlayerInfo,PVOID CONST pvAsyncContext, DPNHANDLE* CONST phAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetPeerInfo)(THIS_ CONST DPNID dpnid, DPN_PLAYER_INFO* CONST pdpnPlayerInfo, DWORD* CONST pdwSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetPeerAddress)(THIS_ CONST DPNID dpnid, IDirectPlay8Address** CONST pAddress, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetLocalHostAddresses)(THIS_ IDirectPlay8Address** CONST prgpAddress, DWORD* CONST pcAddress, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Close)(THIS_ CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumHosts)(THIS_ PDPN_APPLICATION_DESC CONST pApplicationDesc, IDirectPlay8Address* CONST pAddrHost, IDirectPlay8Address* CONST pDeviceInfo,PVOID CONST pUserEnumData, CONST DWORD dwUserEnumDataSize, CONST DWORD dwEnumCount, CONST DWORD dwRetryInterval, CONST DWORD dwTimeOut,PVOID CONST pvUserContext, DPNHANDLE* CONST pAsyncHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(DestroyPeer)(THIS_ CONST DPNID dpnidClient, CONST void* CONST pvDestroyData, CONST DWORD dwDestroyDataSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(ReturnBuffer)(THIS_ CONST DPNHANDLE hBufferHandle, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetPlayerContext)(THIS_ CONST DPNID dpnid,PVOID* CONST ppvPlayerContext, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetGroupContext)(THIS_ CONST DPNID dpnid,PVOID* CONST ppvGroupContext, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetCaps)(THIS_ DPN_CAPS* CONST pdpCaps, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetCaps)(THIS_ CONST DPN_CAPS* CONST pdpCaps, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetSPCaps)(THIS_ CONST GUID* CONST pguidSP, CONST DPN_SP_CAPS* CONST pdpspCaps, CONST DWORD dwFlags ) PURE;
+-    STDMETHOD(GetSPCaps)(THIS_ CONST GUID* CONST pguidSP, DPN_SP_CAPS* CONST pdpspCaps, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetConnectionInfo)(THIS_ CONST DPNID dpnid, DPN_CONNECTION_INFO* CONST pdpConnectionInfo, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(RegisterLobby)(THIS_ CONST DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication* CONST pIDP8LobbiedApplication, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(TerminateSession)(THIS_ void* CONST pvTerminateData, CONST DWORD dwTerminateDataSize, CONST DWORD dwFlags) PURE;
++    STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE;
++    STDMETHOD(EnumServiceProviders)(THIS_ const GUID* pguidServiceProvider, const GUID* pguidApplication, DPN_SERVICE_PROVIDER_INFO* pSPInfoBuffer, DWORD* pcbEnumData, DWORD* pcReturned, DWORD dwFlags) PURE;
++    STDMETHOD(CancelAsyncOperation)(THIS_ DPNHANDLE hAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(Connect)(THIS_ const DPN_APPLICATION_DESC* pdnAppDesc, IDirectPlay8Address* pHostAddr, IDirectPlay8Address* pDeviceInfo, const DPN_SECURITY_DESC* pdnSecurity, const DPN_SECURITY_CREDENTIALS* pdnCredentials, const void* pvUserConnectData, DWORD dwUserConnectDataSize, void* pvPlayerContext, void* pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(SendTo)(THIS_ DPNID dpnid, const DPN_BUFFER_DESC* prgBufferDesc, DWORD cBufferDesc, DWORD dwTimeOut, void* pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetSendQueueInfo)(THIS_ DPNID dpnid, DWORD* pdwNumMsgs, DWORD* pdwNumBytes, DWORD dwFlags) PURE;
++    STDMETHOD(Host)(THIS_ const DPN_APPLICATION_DESC* pdnAppDesc, IDirectPlay8Address **prgpDeviceInfo, DWORD cDeviceInfo, const DPN_SECURITY_DESC* pdnSecurity, const DPN_SECURITY_CREDENTIALS* pdnCredentials, void* pvPlayerContext, DWORD dwFlags) PURE;
++    STDMETHOD(GetApplicationDesc)(THIS_ DPN_APPLICATION_DESC* pAppDescBuffer, DWORD* pcbDataSize, DWORD dwFlags) PURE;
++    STDMETHOD(SetApplicationDesc)(THIS_ const DPN_APPLICATION_DESC* pad, DWORD dwFlags) PURE;
++    STDMETHOD(CreateGroup)(THIS_ const DPN_GROUP_INFO* pdpnGroupInfo, void* pvGroupContext, void* pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(DestroyGroup)(THIS_ DPNID idGroup, PVOID pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(AddPlayerToGroup)(THIS_ DPNID idGroup, DPNID idClient, PVOID pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(RemovePlayerFromGroup)(THIS_ DPNID idGroup, DPNID idClient, PVOID pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(SetGroupInfo)(THIS_ DPNID dpnid, DPN_GROUP_INFO* pdpnGroupInfo,PVOID pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetGroupInfo)(THIS_ DPNID dpnid, DPN_GROUP_INFO* pdpnGroupInfo, DWORD* pdwSize, DWORD dwFlags) PURE;
++    STDMETHOD(EnumPlayersAndGroups)(THIS_ DPNID* prgdpnid, DWORD* pcdpnid, DWORD dwFlags) PURE;
++    STDMETHOD(EnumGroupMembers)(THIS_ DPNID dpnid, DPNID* prgdpnid, DWORD* pcdpnid, DWORD dwFlags) PURE;
++    STDMETHOD(SetPeerInfo)(THIS_ const DPN_PLAYER_INFO* pdpnPlayerInfo,PVOID pvAsyncContext, DPNHANDLE* phAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetPeerInfo)(THIS_ DPNID dpnid, DPN_PLAYER_INFO* pdpnPlayerInfo, DWORD* pdwSize, DWORD dwFlags) PURE;
++    STDMETHOD(GetPeerAddress)(THIS_ DPNID dpnid, IDirectPlay8Address** pAddress, DWORD dwFlags) PURE;
++    STDMETHOD(GetLocalHostAddresses)(THIS_ IDirectPlay8Address** prgpAddress, DWORD* pcAddress, DWORD dwFlags) PURE;
++    STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE;
++    STDMETHOD(EnumHosts)(THIS_ PDPN_APPLICATION_DESC pApplicationDesc, IDirectPlay8Address* pAddrHost, IDirectPlay8Address* pDeviceInfo,PVOID pUserEnumData, DWORD dwUserEnumDataSize, DWORD dwEnumCount, DWORD dwRetryInterval, DWORD dwTimeOut,PVOID pvUserContext, DPNHANDLE* pAsyncHandle, DWORD dwFlags) PURE;
++    STDMETHOD(DestroyPeer)(THIS_ DPNID dpnidClient, const void* pvDestroyData, DWORD dwDestroyDataSize, DWORD dwFlags) PURE;
++    STDMETHOD(ReturnBuffer)(THIS_ DPNHANDLE hBufferHandle, DWORD dwFlags) PURE;
++    STDMETHOD(GetPlayerContext)(THIS_ DPNID dpnid,PVOID* ppvPlayerContext, DWORD dwFlags) PURE;
++    STDMETHOD(GetGroupContext)(THIS_ DPNID dpnid,PVOID* ppvGroupContext, DWORD dwFlags) PURE;
++    STDMETHOD(GetCaps)(THIS_ DPN_CAPS* pdpCaps, DWORD dwFlags) PURE;
++    STDMETHOD(SetCaps)(THIS_ const DPN_CAPS* pdpCaps, DWORD dwFlags) PURE;
++    STDMETHOD(SetSPCaps)(THIS_ const GUID* pguidSP, const DPN_SP_CAPS* pdpspCaps, DWORD dwFlags ) PURE;
++    STDMETHOD(GetSPCaps)(THIS_ const GUID* pguidSP, DPN_SP_CAPS* pdpspCaps, DWORD dwFlags) PURE;
++    STDMETHOD(GetConnectionInfo)(THIS_ DPNID dpnid, DPN_CONNECTION_INFO* pdpConnectionInfo, DWORD dwFlags) PURE;
++    STDMETHOD(RegisterLobby)(THIS_ DPNHANDLE dpnHandle, struct IDirectPlay8LobbiedApplication* pIDP8LobbiedApplication, DWORD dwFlags) PURE;
++    STDMETHOD(TerminateSession)(THIS_ void* pvTerminateData, DWORD dwTerminateDataSize, DWORD dwFlags) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -915,12 +915,12 @@ DECLARE_INTERFACE_(IDirectPlay8ThreadPool,IUnknown)
+     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+-    /*** IDirectPlay8ThreadPool methods ***/	
+-    STDMETHOD(Initialize)(THIS_ PVOID CONST pvUserContext, CONST PFNDPNMESSAGEHANDLER pfn, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Close)(THIS_ CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetThreadCount)(THIS_ CONST DWORD dwProcessorNum, DWORD* CONST pdwNumThreads, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetThreadCount)(THIS_ CONST DWORD dwProcessorNum, CONST DWORD dwNumThreads, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(DoWork)(THIS_ CONST DWORD dwAllowedTimeSlice, CONST DWORD dwFlags) PURE;
++    /*** IDirectPlay8ThreadPool methods ***/
++    STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE;
++    STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE;
++    STDMETHOD(GetThreadCount)(THIS_ DWORD dwProcessorNum, DWORD* pdwNumThreads, DWORD dwFlags) PURE;
++    STDMETHOD(SetThreadCount)(THIS_ DWORD dwProcessorNum, DWORD dwNumThreads, DWORD dwFlags) PURE;
++    STDMETHOD(DoWork)(THIS_ DWORD dwAllowedTimeSlice, DWORD dwFlags) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -958,12 +958,12 @@ DECLARE_INTERFACE_(IDirectPlay8NATResolver,IUnknown)
+     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+-    /*** IDirectPlay8NATResolver methods ***/	
+-    STDMETHOD(Initialize)(THIS_ PVOID CONST pvUserContext, CONST PFNDPNMESSAGEHANDLER pfn, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Start)(THIS_ IDirectPlay8Address** CONST ppDevices, CONST DWORD dwNumDevices, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Close)(THIS_ CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumDevices)(THIS_ DPN_SERVICE_PROVIDER_INFO* CONST pSPInfoBuffer, PDWORD CONST pdwBufferSize, PDWORD CONST pdwNumDevices, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetAddresses)(THIS_ IDirectPlay8Address** CONST ppAddresses, DWORD* CONST pdwNumAddresses, CONST DWORD dwFlags) PURE;
++    /*** IDirectPlay8NATResolver methods ***/
++    STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE;
++    STDMETHOD(Start)(THIS_ IDirectPlay8Address** ppDevices, DWORD dwNumDevices, DWORD dwFlags) PURE;
++    STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE;
++    STDMETHOD(EnumDevices)(THIS_ DPN_SERVICE_PROVIDER_INFO* pSPInfoBuffer, PDWORD pdwBufferSize, PDWORD pdwNumDevices, DWORD dwFlags) PURE;
++    STDMETHOD(GetAddresses)(THIS_ IDirectPlay8Address** ppAddresses, DWORD* pdwNumAddresses, DWORD dwFlags) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -993,7 +993,7 @@ DECLARE_INTERFACE_(IDirectPlay8NATResolver,IUnknown)
+ 
+ /* Export functions */
+ 
+-HRESULT WINAPI DirectPlay8Create(CONST CLSID* pcIID, LPVOID* ppvInterface, IUnknown* pUnknown);
++HRESULT WINAPI DirectPlay8Create(const CLSID* pcIID, LPVOID* ppvInterface, IUnknown* pUnknown);
+ 
+ #ifdef __cplusplus
+ }
+diff --git a/mingw-w64-headers/direct-x/include/dplobby8.h b/mingw-w64-headers/direct-x/include/dplobby8.h
+index cf3a00a..dbd3bc1 100644
+--- a/mingw-w64-headers/direct-x/include/dplobby8.h
++++ b/mingw-w64-headers/direct-x/include/dplobby8.h
+@@ -152,15 +152,15 @@ DECLARE_INTERFACE_(IDirectPlay8LobbiedApplication,IUnknown)
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirectPlay8LobbiedApplication methods ***/
+-    STDMETHOD(Initialize)(THIS_ CONST PVOID pvUserContext, CONST PFNDPNMESSAGEHANDLER pfn, DPNHANDLE* CONST pdpnhConnection, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(RegisterProgram)(THIS_ PDPL_PROGRAM_DESC pdplProgramDesc, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(UnRegisterProgram)(THIS_ GUID* pguidApplication, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Send)(THIS_ CONST DPNHANDLE hConnection, BYTE* CONST pBuffer, CONST DWORD pBufferSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetAppAvailable)(THIS_ CONST WINBOOL fAvailable, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(UpdateStatus)(THIS_ CONST DPNHANDLE hConnection, CONST DWORD dwStatus, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Close)(THIS_ CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetConnectionSettings)(THIS_ CONST DPNHANDLE hConnection, DPL_CONNECTION_SETTINGS* CONST pdplSessionInfo, DWORD* pdwInfoSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(SetConnectionSettings)(THIS_ CONST DPNHANDLE hConnection, CONST DPL_CONNECTION_SETTINGS* CONST pdplSessionInfo, CONST DWORD dwFlags) PURE;
++    STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DPNHANDLE* pdpnhConnection, DWORD dwFlags) PURE;
++    STDMETHOD(RegisterProgram)(THIS_ PDPL_PROGRAM_DESC pdplProgramDesc, DWORD dwFlags) PURE;
++    STDMETHOD(UnRegisterProgram)(THIS_ GUID* pguidApplication, DWORD dwFlags) PURE;
++    STDMETHOD(Send)(THIS_ DPNHANDLE hConnection, BYTE* pBuffer, DWORD pBufferSize, DWORD dwFlags) PURE;
++    STDMETHOD(SetAppAvailable)(THIS_ WINBOOL fAvailable, DWORD dwFlags) PURE;
++    STDMETHOD(UpdateStatus)(THIS_ DPNHANDLE hConnection, DWORD dwStatus, DWORD dwFlags) PURE;
++    STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE;
++    STDMETHOD(GetConnectionSettings)(THIS_ DPNHANDLE hConnection, DPL_CONNECTION_SETTINGS* pdplSessionInfo, DWORD* pdwInfoSize, DWORD dwFlags) PURE;
++    STDMETHOD(SetConnectionSettings)(THIS_ DPNHANDLE hConnection, const DPL_CONNECTION_SETTINGS* pdplSessionInfo, DWORD dwFlags) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -207,14 +207,14 @@ DECLARE_INTERFACE_(IDirectPlay8LobbyClient,IUnknown)
+     STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG,Release)(THIS) PURE;
+     /*** IDirectPlay8LobbyClient methods ***/
+-    STDMETHOD(Initialize)(THIS_ CONST PVOID pvUserContext, CONST PFNDPNMESSAGEHANDLER pfn, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(EnumLocalPrograms)(THIS_ GUID* CONST pGuidApplication, BYTE* CONST pEnumData, DWORD* CONST pdwEnumData, DWORD* CONST pdwItems, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(ConnectApplication)(THIS_ DPL_CONNECT_INFO* CONST pdplConnectionInfo, CONST PVOID pvConnectionContext, DPNHANDLE* CONST hApplication, CONST DWORD dwTimeOut, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Send)(THIS_ CONST DPNHANDLE hConnection, BYTE* CONST pBuffer, CONST DWORD pBufferSize, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(ReleaseApplication)(THIS_ CONST DPNHANDLE hConnection, CONST DWORD dwFlags) PURE;
+-    STDMETHOD(Close)(THIS_ CONST DWORD dwFlags) PURE;
+-    STDMETHOD(GetConnectionSettings)(THIS_ CONST DPNHANDLE hConnection, DPL_CONNECTION_SETTINGS* CONST pdplSessionInfo, DWORD* pdwInfoSize, CONST DWORD dwFlags) PURE;	
+-    STDMETHOD(SetConnectionSettings)(THIS_ CONST DPNHANDLE hConnection, CONST DPL_CONNECTION_SETTINGS* CONST pdplSessionInfo, CONST DWORD dwFlags) PURE;
++    STDMETHOD(Initialize)(THIS_ PVOID pvUserContext, PFNDPNMESSAGEHANDLER pfn, DWORD dwFlags) PURE;
++    STDMETHOD(EnumLocalPrograms)(THIS_ GUID* pGuidApplication, BYTE* pEnumData, DWORD* pdwEnumData, DWORD* pdwItems, DWORD dwFlags) PURE;
++    STDMETHOD(ConnectApplication)(THIS_ DPL_CONNECT_INFO* pdplConnectionInfo, PVOID pvConnectionContext, DPNHANDLE* hApplication, DWORD dwTimeOut, DWORD dwFlags) PURE;
++    STDMETHOD(Send)(THIS_ DPNHANDLE hConnection, BYTE* pBuffer, DWORD pBufferSize, DWORD dwFlags) PURE;
++    STDMETHOD(ReleaseApplication)(THIS_ DPNHANDLE hConnection, DWORD dwFlags) PURE;
++    STDMETHOD(Close)(THIS_ DWORD dwFlags) PURE;
++    STDMETHOD(GetConnectionSettings)(THIS_ DPNHANDLE hConnection, DPL_CONNECTION_SETTINGS* pdplSessionInfo, DWORD* pdwInfoSize, DWORD dwFlags) PURE;
++    STDMETHOD(SetConnectionSettings)(THIS_ DPNHANDLE hConnection, const DPL_CONNECTION_SETTINGS* pdplSessionInfo, DWORD dwFlags) PURE;
+ };
+ #undef INTERFACE
+ 
+@@ -251,7 +251,7 @@ DECLARE_INTERFACE_(IDirectPlay8LobbyClient,IUnknown)
+ 
+ /* Export functions */
+ 
+-HRESULT WINAPI DirectPlay8LobbyCreate(CONST GUID* pcIID, LPVOID* ppvInterface, IUnknown* pUnknown);
++HRESULT WINAPI DirectPlay8LobbyCreate(const GUID* pcIID, LPVOID* ppvInterface, IUnknown* pUnknown);
+ 
+ #ifdef __cplusplus
+ }
+diff --git a/mingw-w64-headers/direct-x/include/dpnathlp.h b/mingw-w64-headers/direct-x/include/dpnathlp.h
+index a1b2026..05c6082 100644
+--- a/mingw-w64-headers/direct-x/include/dpnathlp.h
++++ b/mingw-w64-headers/direct-x/include/dpnathlp.h
+@@ -116,56 +116,56 @@ DECLARE_INTERFACE_(IDirectPlayNATHelp,IUnknown)
+ 
+    /*** IDirectPlayNATHelp functions ***/
+    STDMETHOD(Initialize)     (THIS_
+-                              const DWORD dwFlags) PURE;
++                              DWORD dwFlags) PURE;
+ 
+    STDMETHOD(Close)          (THIS_
+-                              const DWORD dwFlags) PURE;
++                              DWORD dwFlags) PURE;
+ 
+    STDMETHOD(GetCaps)        (THIS_
+-                              const PDPNHCAPS pCaps,
+-                              const DWORD dwFlags) PURE;
++                              PDPNHCAPS pCaps,
++                              DWORD dwFlags) PURE;
+ 
+    STDMETHOD(RegisterPorts)  (THIS_
+-                              const PSOCKADDR aLocalAddresses,
+-                              const DWORD dwAddressSize,
+-                              const DWORD dwAddresses,
+-                              const DWORD dwTime,
+-                              const PDPNHHANDLE phRegisteredPorts,
+-                              const DWORD dwFlags) PURE;
++                              PSOCKADDR aLocalAddresses,
++                              DWORD dwAddressSize,
++                              DWORD dwAddresses,
++                              DWORD dwTime,
++                              PDPNHHANDLE phRegisteredPorts,
++                              DWORD dwFlags) PURE;
+ 
+    STDMETHOD(GetRegisteredAddresses) (THIS_
+-                              const PDPNHHANDLE hRegisteredPorts,
+-                              const PSOCKADDR paPublicAddresses,
++                              PDPNHHANDLE hRegisteredPorts,
++                              PSOCKADDR paPublicAddresses,
+                               const DWORD *dwAddressSize,
+                               const DWORD *dwAddressFlags,
+                               const DWORD *dwRemaining,
+-                              const DWORD dwFlags) PURE;
++                              DWORD dwFlags) PURE;
+ 
+    STDMETHOD(DeregisterPorts)(THIS_
+-                              const DPNHHANDLE hRegPorts,
+-                              const DWORD dwFlags) PURE;
++                              DPNHHANDLE hRegPorts,
++                              DWORD dwFlags) PURE;
+ 
+    STDMETHOD(QueryAddress)   (THIS_
+-                              const PSOCKADDR pSource,
+-                              const PSOCKADDR pQuery,
+-                              const PSOCKADDR pResponse,
+-                              const INT iAddresses,
+-                              const DWORD dwFlags) PURE;
++                              PSOCKADDR pSource,
++                              PSOCKADDR pQuery,
++                              PSOCKADDR pResponse,
++                              INT iAddresses,
++                              DWORD dwFlags) PURE;
+ 
+    STDMETHOD(SetAlertEvent)  (THIS_
+-                              const HANDLE hEvent,
+-                              const DWORD dwFlags) PURE;
++                              HANDLE hEvent,
++                              DWORD dwFlags) PURE;
+ 
+    STDMETHOD(SetAlertIOCompletionPort)(THIS_
+-                              const HANDLE hIOCompletionPort,
+-                              const DWORD dwCompletion,
+-                              const DWORD dwMaxThreads,
+-                              const DWORD dwFlags) PURE;
++                              HANDLE hIOCompletionPort,
++                              DWORD dwCompletion,
++                              DWORD dwMaxThreads,
++                              DWORD dwFlags) PURE;
+ 
+    STDMETHOD(ExtendRegisteredPortsLease)(THIS_
+-                              const DPNHHANDLE hRegisteredPorts,
+-                              const DWORD dwLeaseTime,
+-                              const DWORD dwFlags) PURE;
++                              DPNHHANDLE hRegisteredPorts,
++                              DWORD dwLeaseTime,
++                              DWORD dwFlags) PURE;
+ };
+ 
+ #undef INTERFACE
+diff --git a/mingw-w64-headers/direct-x/include/vfwmsgs.h b/mingw-w64-headers/direct-x/include/vfwmsgs.h
+index 16b25c3..be5ff84 100644
+--- a/mingw-w64-headers/direct-x/include/vfwmsgs.h
++++ b/mingw-w64-headers/direct-x/include/vfwmsgs.h
+@@ -155,7 +155,18 @@
+ #define VFW_E_VMR_NOT_IN_MIXER_MODE      ((HRESULT)0x80040296)
+ #define VFW_E_VMR_NO_AP_SUPPLIED         ((HRESULT)0x80040297)
+ #define VFW_E_VMR_NO_DEINTERLACE_HW      ((HRESULT)0x80040298)
++#define VFW_E_VMR_NO_PROCAMP_HW          ((HRESULT)0x80040299)
+ #define VFW_E_DVD_VMR9_INCOMPATIBLEDEC   ((HRESULT)0x8004029A)
++#define VFW_E_NO_COPP_HW                 ((HRESULT)0x8004029B)
++#define VFW_E_DVD_NONBLOCKING            ((HRESULT)0x8004029C)
++#define VFW_E_DVD_TOO_MANY_RENDERERS_IN_FILTER_GRAPH    ((HRESULT)0x8004029D)
++#define VFW_E_DVD_NON_EVR_RENDERER_IN_FILTER_GRAPH      ((HRESULT)0x8004029E)
++#define VFW_E_DVD_RESOLUTION_ERROR       ((HRESULT)0x8004029F)
++#define VFW_E_CODECAPI_LINEAR_RANGE      ((HRESULT)0x80040310)
++#define VFW_E_CODECAPI_ENUMERATED        ((HRESULT)0x80040311)
++#define VFW_E_CODECAPI_NO_DEFAULT        ((HRESULT)0x80040313)
++#define VFW_E_CODECAPI_NO_CURRENT_VALUE  ((HRESULT)0x80040314)
++#define VFW_E_DVD_CHAPTER_DOES_NOT_EXIST ((HRESULT)0x80040315)
+ #define VFW_E_BAD_KEY                    ((HRESULT)0x800403F2)
+ 
+ #ifndef E_PROP_ID_UNSUPPORTED
+diff --git a/mingw-w64-headers/include/axextend.idl b/mingw-w64-headers/include/axextend.idl
+index acc66a5..207dbce 100644
+--- a/mingw-w64-headers/include/axextend.idl
++++ b/mingw-w64-headers/include/axextend.idl
+@@ -22,6 +22,8 @@ interface IAMAudioInputMixer;
+ interface IAMAudioRendererStats;
+ interface IAMBufferNegotiation;
+ interface IAMCameraControl;
++interface IAMCertifiedOutputProtection;
++interface IAMClockSlave;
+ interface IAMCopyCaptureFileProgress;
+ interface IAMCrossbar;
+ interface IAMDevMemoryAllocator;
+@@ -731,6 +733,122 @@ interface ICaptureGraphBuilder2 : IUnknown
+         [out] IPin **ppPin);
+ }
+ 
++[
++    local,
++    object,
++    uuid(5acd6aa0-f482-11ce-8b67-00aa00a3f1a6),
++    pointer_default(unique)
++]
++interface IConfigAviMux : IUnknown
++{
++    HRESULT SetMasterStream(
++        [in] LONG iStream);
++
++    HRESULT GetMasterStream(
++        [out] LONG *pStream);
++
++    HRESULT SetOutputCompatibilityIndex(
++        [in] BOOL fOldIndex);
++
++    HRESULT GetOutputCompatibilityIndex(
++        [out] BOOL *pfOldIndex);
++}
++
++[
++    local,
++    object,
++    uuid(bee3d220-157b-11d0-bd23-00a0c911ce86),
++    pointer_default(unique)
++]
++interface IConfigInterleaving : IUnknown
++{
++    typedef enum InterleavingMode {
++        INTERLEAVE_NONE,
++        INTERLEAVE_CAPTURE,
++        INTERLEAVE_FULL,
++        INTERLEAVE_NONE_BUFFERED
++    } InterleavingMode;
++
++    HRESULT put_Mode(
++        [in] InterleavingMode mode);
++
++    HRESULT get_Mode(
++        [out] InterleavingMode *pMode);
++
++    HRESULT put_Interleaving(
++        [in] const REFERENCE_TIME *prtInterleave,
++        [in] const REFERENCE_TIME *prtPreroll);
++
++    HRESULT get_Interleaving(
++        [out] REFERENCE_TIME *prtInterleave,
++        [out] REFERENCE_TIME *prtPreroll);
++}
++
++[
++    local,
++    object,
++    uuid(9fd52741-176d-4b36-8f51-ca8f933223be),
++    pointer_default(unique)
++]
++interface IAMClockSlave : IUnknown
++{
++    HRESULT SetErrorTolerance(
++        [in] DWORD dwTolerance);
++
++    HRESULT GetErrorTolerance(
++        [out] DWORD *pdwTolerance);
++}
++
++typedef struct _AMCOPPSignature {
++    BYTE Signature[256];
++} AMCOPPSignature;
++
++typedef struct _AMCOPPCommand {
++    GUID macKDI;
++    GUID guidCommandID;
++    DWORD dwSequence;
++    DWORD bSizeData;
++    BYTE CommandData[4056];
++} AMCOPPCommand, *LPAMCOPPCommand;
++
++typedef struct _AMCOPPStatusInput {
++    GUID rApp;
++    GUID guidStatusRequestID;
++    DWORD dwSequence;
++    DWORD cbSizeData;
++    BYTE StatusData[4056];
++} AMCOPPStatusInput, *LPAMCOPPStatusInput;
++
++typedef struct _AMCOPPStatusOutput {
++    GUID macKDI;
++    DWORD cbSizeData;
++    BYTE COPPStatus[4076];
++} AMCOPPStatusOutput, *LPAMCOPPStatusOutput;
++
++[
++    local,
++    object,
++    uuid(6feded3e-0ff1-4901-a2f1-43f7012c8515),
++    pointer_default(unique)
++]
++interface IAMCertifiedOutputProtection : IUnknown
++{
++    HRESULT KeyExchange (
++        [out] GUID* pRandom,
++        [out] BYTE** VarLenCertGH,
++        [out] DWORD* pdwLengthCertGH);
++
++    HRESULT SessionSequenceStart(
++        [in] AMCOPPSignature* pSig);
++
++    HRESULT ProtectionCommand(
++        [in] const AMCOPPCommand* cmd);
++
++    HRESULT ProtectionStatus(
++        [in] const AMCOPPStatusInput* pStatusInput,
++        [out] AMCOPPStatusOutput* pStatusOutput);
++};
++
+ enum _AM_RENSDEREXFLAGS
+ {
+     AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x01
+@@ -988,6 +1106,44 @@ interface IResourceManager : IUnknown
+ 
+ }
+ 
++typedef enum AM_STREAM_INFO_FLAGS
++{
++    AM_STREAM_INFO_START_DEFINED   = 0x01,
++    AM_STREAM_INFO_STOP_DEFINED    = 0x02,
++    AM_STREAM_INFO_DISCARDING      = 0x04,
++    AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
++} AM_STREAM_INFO_FLAGS;
++
++typedef struct AM_STREAM_INFO
++{
++    REFERENCE_TIME tStart;
++    REFERENCE_TIME tStop;
++    DWORD dwStartCookie;
++    DWORD dwStopCookie;
++    DWORD dwFlags;
++} AM_STREAM_INFO;
++
++[
++    local,
++    object,
++    uuid(36b73881-c2c8-11cf-8b46-00805f6cef60),
++    pointer_default(unique)
++]
++interface IAMStreamControl : IUnknown
++{
++    HRESULT StartAt(
++        [in] const REFERENCE_TIME *ptStart,
++        [in] DWORD dwCookie);
++
++    HRESULT StopAt(
++        [in] const REFERENCE_TIME *ptStop,
++        [in] BOOL bSendExtra,
++        [in] DWORD dwCookie);
++
++    HRESULT GetInfo(
++        [out] AM_STREAM_INFO *pInfo);
++}
++
+ cpp_quote("#ifndef _IKsPropertySet_")
+ cpp_quote("#define _IKsPropertySet_")
+ cpp_quote("#define KSPROPERTY_SUPPORT_GET  1")
+@@ -1023,6 +1179,45 @@ interface IKsPropertySet : IUnknown
+ cpp_quote("#endif /* _IKsPropertySet_ */")
+ 
+ [
++    local,
++    object,
++    uuid(6025a880-c0d5-11d0-bd4e-00a0c911ce86),
++    pointer_default(unique)
++]
++interface IMediaPropertyBag : IPropertyBag
++{
++    typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
++
++    HRESULT EnumProperty(
++            [in]  ULONG iProperty,
++            [in, out] VARIANT *pvarPropertyName,
++            [in, out] VARIANT *pvarPropertyValue);
++}
++
++
++[
++    local,
++    object,
++    uuid(5738e040-b67f-11d0-bd4d-00a0c911ce86),
++    pointer_default(unique)
++]
++interface IPersistMediaPropertyBag : IPersist
++{
++    HRESULT InitNew(void);
++
++    HRESULT Load(
++            [in] IMediaPropertyBag *pPropBag,
++            [in] IErrorLog *pErrorLog);
++
++    HRESULT Save(
++            [in] IMediaPropertyBag *pPropBag,
++            [in] BOOL fClearDirty,
++            [in] BOOL fSaveAllProperties);
++
++    typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
++}
++
++[
+     object,
+     uuid(36b73883-c2c8-11cf-8b46-00805f6cef60),
+     pointer_default(unique)
+diff --git a/mingw-w64-headers/include/corerror.h b/mingw-w64-headers/include/corerror.h
+index 3ddfe47..6419ea1 100644
+--- a/mingw-w64-headers/include/corerror.h
++++ b/mingw-w64-headers/include/corerror.h
+@@ -126,5 +126,9 @@
+ 
+ #define CLR_E_SHIM_RUNTIME              EMAKEHR(0x1700)
+ #define CLR_E_SHIM_RUNTIMEEXPORT        EMAKEHR(0x1701)
++#define CLR_E_SHIM_INSTALLROOT          EMAKEHR(0x1702)
++#define CLR_E_SHIM_INSTALLCOMP          EMAKEHR(0x1703)
++#define CLR_E_SHIM_LEGACYRUNTIMEALREADYBOUND EMAKEHR(0x1704)
++#define CLR_E_SHIM_SHUTDOWNINPROGRESS   EMAKEHR(0x1705)
+ 
+-#endif	/* __WINE_CORERROR_H */
++#endif    /* __WINE_CORERROR_H */
+diff --git a/mingw-w64-headers/include/msctf.h b/mingw-w64-headers/include/msctf.h
+index f714d46..15cc6a6 100644
+--- a/mingw-w64-headers/include/msctf.h
++++ b/mingw-w64-headers/include/msctf.h
+@@ -237,6 +237,11 @@ typedef interface ITfSourceSingle ITfSourceSingle;
+ typedef interface ITfThreadFocusSink ITfThreadFocusSink;
+ #endif
+ 
++#ifndef __ITfInputProcessorProfileActivationSink_FWD_DEFINED__
++#define __ITfInputProcessorProfileActivationSink_FWD_DEFINED__
++typedef interface ITfInputProcessorProfileActivationSink ITfInputProcessorProfileActivationSink;
++#endif
++
+ /* Headers for imported files */
+ 
+ #include <oaidl.h>
+@@ -298,6 +303,7 @@ typedef DWORD TfGuidAtom;
+ #define TF_MOD_IGNORE_ALL_MODIFIER   0x0400
+ #define TF_PROFILETYPE_INPUTPROCESSOR  0x0001
+ #define TF_PROFILETYPE_KEYBOARDLAYOUT  0x0002
++#define TF_IPSINK_FLAG_ACTIVE 0x0001
+ #ifndef __ITfDocumentMgr_FWD_DEFINED__
+ #define __ITfDocumentMgr_FWD_DEFINED__
+ typedef interface ITfDocumentMgr ITfDocumentMgr;
+@@ -1442,6 +1448,8 @@ void __RPC_STUB ITfContext_CreateRangeBackup_Stub(
+ 
+ #endif  /* __ITfContext_INTERFACE_DEFINED__ */
+ 
++#define TF_INVALID_COOKIE (0xffffffff)
++
+ /*****************************************************************************
+  * ITfSource interface
+  */
+@@ -8783,6 +8791,108 @@ void __RPC_STUB ITfThreadFocusSink_OnKillThreadFocus_Stub(
+ 
+ #endif  /* __ITfThreadFocusSink_INTERFACE_DEFINED__ */
+ 
++/*****************************************************************************
++ * ITfInputProcessorProfileActivationSink interface
++ */
++#ifndef __ITfInputProcessorProfileActivationSink_INTERFACE_DEFINED__
++#define __ITfInputProcessorProfileActivationSink_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_ITfInputProcessorProfileActivationSink, 0x71c6e74e, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("71c6e74e-0f28-11d8-a82a-00065b84435c")
++ITfInputProcessorProfileActivationSink : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE OnActivated(
++        DWORD dwProfileType,
++        LANGID langid,
++        REFCLSID clsid,
++        REFGUID catid,
++        REFGUID guidProfile,
++        HKL hkl,
++        DWORD dwFlags) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(ITfInputProcessorProfileActivationSink, 0x71c6e74e, 0x0f28, 0x11d8, 0xa8,0x2a, 0x00,0x06,0x5b,0x84,0x43,0x5c)
++#endif
++#else
++typedef struct ITfInputProcessorProfileActivationSinkVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        ITfInputProcessorProfileActivationSink* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        ITfInputProcessorProfileActivationSink* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        ITfInputProcessorProfileActivationSink* This);
++
++    /*** ITfInputProcessorProfileActivationSink methods ***/
++    HRESULT (STDMETHODCALLTYPE *OnActivated)(
++        ITfInputProcessorProfileActivationSink* This,
++        DWORD dwProfileType,
++        LANGID langid,
++        REFCLSID clsid,
++        REFGUID catid,
++        REFGUID guidProfile,
++        HKL hkl,
++        DWORD dwFlags);
++
++    END_INTERFACE
++} ITfInputProcessorProfileActivationSinkVtbl;
++interface ITfInputProcessorProfileActivationSink {
++    CONST_VTBL ITfInputProcessorProfileActivationSinkVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define ITfInputProcessorProfileActivationSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define ITfInputProcessorProfileActivationSink_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define ITfInputProcessorProfileActivationSink_Release(This) (This)->lpVtbl->Release(This)
++/*** ITfInputProcessorProfileActivationSink methods ***/
++#define ITfInputProcessorProfileActivationSink_OnActivated(This,dwProfileType,langid,clsid,catid,guidProfile,hkl,dwFlags) (This)->lpVtbl->OnActivated(This,dwProfileType,langid,clsid,catid,guidProfile,hkl,dwFlags)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT ITfInputProcessorProfileActivationSink_QueryInterface(ITfInputProcessorProfileActivationSink* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG ITfInputProcessorProfileActivationSink_AddRef(ITfInputProcessorProfileActivationSink* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG ITfInputProcessorProfileActivationSink_Release(ITfInputProcessorProfileActivationSink* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** ITfInputProcessorProfileActivationSink methods ***/
++static FORCEINLINE HRESULT ITfInputProcessorProfileActivationSink_OnActivated(ITfInputProcessorProfileActivationSink* This,DWORD dwProfileType,LANGID langid,REFCLSID clsid,REFGUID catid,REFGUID guidProfile,HKL hkl,DWORD dwFlags) {
++    return This->lpVtbl->OnActivated(This,dwProfileType,langid,clsid,catid,guidProfile,hkl,dwFlags);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE ITfInputProcessorProfileActivationSink_OnActivated_Proxy(
++    ITfInputProcessorProfileActivationSink* This,
++    DWORD dwProfileType,
++    LANGID langid,
++    REFCLSID clsid,
++    REFGUID catid,
++    REFGUID guidProfile,
++    HKL hkl,
++    DWORD dwFlags);
++void __RPC_STUB ITfInputProcessorProfileActivationSink_OnActivated_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __ITfInputProcessorProfileActivationSink_INTERFACE_DEFINED__ */
++
+ /* Begin additional prototypes for all interfaces */
+ 
+ ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
+diff --git a/mingw-w64-headers/include/msctf.idl b/mingw-w64-headers/include/msctf.idl
+index a3db32e..e4b54e4 100644
+--- a/mingw-w64-headers/include/msctf.idl
++++ b/mingw-w64-headers/include/msctf.idl
+@@ -84,6 +84,8 @@ cpp_quote("#define TF_MOD_IGNORE_ALL_MODIFIER   0x0400")
+ cpp_quote("#define TF_PROFILETYPE_INPUTPROCESSOR  0x0001")
+ cpp_quote("#define TF_PROFILETYPE_KEYBOARDLAYOUT  0x0002")
+ 
++cpp_quote("#define TF_IPSINK_FLAG_ACTIVE 0x0001")
++
+ interface ITfDocumentMgr;
+ interface ITfContext;
+ interface IEnumTfDocumentMgrs;
+@@ -326,6 +328,8 @@ interface ITfContext : IUnknown
+ 
+ };
+ 
++const DWORD TF_INVALID_COOKIE = 0xffffffff;
++
+ [
+   object,
+   uuid(4ea48a35-60ae-446f-8fd6-e6a8d82459f7),
+@@ -1522,3 +1526,20 @@ interface ITfThreadFocusSink : IUnknown
+ 
+     HRESULT OnKillThreadFocus();
+ };
++
++[
++  object,
++  uuid(71c6e74e-0f28-11d8-a82a-00065b84435c),
++  pointer_default(unique)
++]
++interface ITfInputProcessorProfileActivationSink : IUnknown
++{
++    HRESULT OnActivated(
++        [in] DWORD dwProfileType,
++        [in] LANGID langid,
++        [in] REFCLSID clsid,
++        [in] REFGUID catid,
++        [in] REFGUID guidProfile,
++        [in] HKL hkl,
++        [in] DWORD dwFlags);
++}
+diff --git a/mingw-w64-headers/include/strmif.h b/mingw-w64-headers/include/strmif.h
+index 6284089..827a830 100644
+--- a/mingw-w64-headers/include/strmif.h
++++ b/mingw-w64-headers/include/strmif.h
+@@ -1,4 +1,4 @@
+-/*** Autogenerated by WIDL 1.5.25 from include/strmif.idl - Do not edit ***/
++/*** Autogenerated by WIDL 1.6 from include/strmif.idl - Do not edit ***/
+ 
+ #ifndef __REQUIRED_RPCNDR_H_VERSION__
+ #define __REQUIRED_RPCNDR_H_VERSION__ 475
+@@ -62,6 +62,16 @@ typedef interface IBaseFilter IBaseFilter;
+ typedef interface IReferenceClock IReferenceClock;
+ #endif
+ 
++#ifndef __IReferenceClockTimerControl_FWD_DEFINED__
++#define __IReferenceClockTimerControl_FWD_DEFINED__
++typedef interface IReferenceClockTimerControl IReferenceClockTimerControl;
++#endif
++
++#ifndef __IReferenceClock2_FWD_DEFINED__
++#define __IReferenceClock2_FWD_DEFINED__
++typedef interface IReferenceClock2 IReferenceClock2;
++#endif
++
+ #ifndef __IMediaSample_FWD_DEFINED__
+ #define __IMediaSample_FWD_DEFINED__
+ typedef interface IMediaSample IMediaSample;
+@@ -72,6 +82,11 @@ typedef interface IMediaSample IMediaSample;
+ typedef interface IMediaSample2 IMediaSample2;
+ #endif
+ 
++#ifndef __IMediaSample2Config_FWD_DEFINED__
++#define __IMediaSample2Config_FWD_DEFINED__
++typedef interface IMediaSample2Config IMediaSample2Config;
++#endif
++
+ #ifndef __IMemAllocator_FWD_DEFINED__
+ #define __IMemAllocator_FWD_DEFINED__
+ typedef interface IMemAllocator IMemAllocator;
+@@ -182,6 +197,26 @@ typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
+ typedef interface ICaptureGraphBuilder2 ICaptureGraphBuilder2;
+ #endif
+ 
++#ifndef __IConfigAviMux_FWD_DEFINED__
++#define __IConfigAviMux_FWD_DEFINED__
++typedef interface IConfigAviMux IConfigAviMux;
++#endif
++
++#ifndef __IConfigInterleaving_FWD_DEFINED__
++#define __IConfigInterleaving_FWD_DEFINED__
++typedef interface IConfigInterleaving IConfigInterleaving;
++#endif
++
++#ifndef __IAMClockSlave_FWD_DEFINED__
++#define __IAMClockSlave_FWD_DEFINED__
++typedef interface IAMClockSlave IAMClockSlave;
++#endif
++
++#ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
++#define __IAMCertifiedOutputProtection_FWD_DEFINED__
++typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
++#endif
++
+ #ifndef __IFilterGraph2_FWD_DEFINED__
+ #define __IFilterGraph2_FWD_DEFINED__
+ typedef interface IFilterGraph2 IFilterGraph2;
+@@ -222,11 +257,26 @@ typedef interface IResourceConsumer IResourceConsumer;
+ typedef interface IResourceManager IResourceManager;
+ #endif
+ 
++#ifndef __IAMStreamControl_FWD_DEFINED__
++#define __IAMStreamControl_FWD_DEFINED__
++typedef interface IAMStreamControl IAMStreamControl;
++#endif
++
+ #ifndef __IKsPropertySet_FWD_DEFINED__
+ #define __IKsPropertySet_FWD_DEFINED__
+ typedef interface IKsPropertySet IKsPropertySet;
+ #endif
+ 
++#ifndef __IMediaPropertyBag_FWD_DEFINED__
++#define __IMediaPropertyBag_FWD_DEFINED__
++typedef interface IMediaPropertyBag IMediaPropertyBag;
++#endif
++
++#ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
++#define __IPersistMediaPropertyBag_FWD_DEFINED__
++typedef interface IPersistMediaPropertyBag IPersistMediaPropertyBag;
++#endif
++
+ #ifndef __ISeekingPassThru_FWD_DEFINED__
+ #define __ISeekingPassThru_FWD_DEFINED__
+ typedef interface ISeekingPassThru ISeekingPassThru;
+@@ -252,14 +302,26 @@ typedef interface IAMGraphBuilderCallback IAMGraphBuilderCallback;
+ extern "C" {
+ #endif
+ 
+-#define CDEF_CLASS_DEFAULT 0x0001
+-#define CDEF_BYPASS_CLASS_MANAGER 0x0002
+-#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x0008
+-#define CDEF_DEVMON_CMGR_DEVICE 0x0010
+-#define CDEF_DEVMON_DMO 0x0020
+-#define CDEF_DEVMON_PNP_DEVICE 0x0040
+-#define CDEF_DEVMON_FILTER 0x0080
+-#define CDEF_DEVMON_SELECTIVE_MASK 0x00f0
++/**
++ * This file is part of the mingw-w64 runtime package.
++ * No warranty is given; refer to the file DISCLAIMER within this package.
++ */
++
++#include <winapifamily.h>
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
++
++#define CDEF_CLASS_DEFAULT 0x1
++#define CDEF_BYPASS_CLASS_MANAGER 0x2
++#define CDEF_MERIT_ABOVE_DO_NOT_USE 0x8
++#define CDEF_DEVMON_CMGR_DEVICE 0x10
++#define CDEF_DEVMON_DMO 0x20
++#define CDEF_DEVMON_PNP_DEVICE 0x40
++#define CDEF_DEVMON_FILTER 0x80
++
++#define CDEF_DEVMON_SELECTIVE_MASK 0xf0
++
++
+ /*****************************************************************************
+  * ICreateDevEnum interface
+  */
+@@ -350,10 +412,22 @@ void __RPC_STUB ICreateDevEnum_CreateClassEnumerator_Stub(
+ 
+ #endif  /* __ICreateDevEnum_INTERFACE_DEFINED__ */
+ 
++#endif
++/**
++ * This file is part of the mingw-w64 runtime package.
++ * No warranty is given; refer to the file DISCLAIMER within this package.
++ */
++
++#include <winapifamily.h>
++
++#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
++
+ #define CHARS_IN_GUID 39
++
+ #ifdef WINE_NO_UNICODE_MACROS
+ #undef GetTimeFormat
+ #endif
++
+ typedef struct _AMMediaType {
+     GUID majortype;
+     GUID subtype;
+@@ -365,28 +439,35 @@ typedef struct _AMMediaType {
+     ULONG cbFormat;
+     BYTE *pbFormat;
+ } AM_MEDIA_TYPE;
++
+ typedef enum _PinDirection {
+     PINDIR_INPUT = 0,
+     PINDIR_OUTPUT = 1
+ } PIN_DIRECTION;
+-#define MAX_PIN_NAME    128
++
++#define MAX_PIN_NAME 128
+ #define MAX_FILTER_NAME 128
++
+ #ifndef REFERENCE_TIME_DEFINED
+ #define REFERENCE_TIME_DEFINED
+ typedef LONGLONG REFERENCE_TIME;
+ #endif
++
+ #ifndef REFTIME_DEFINED
+ #define REFTIME_DEFINED
+-typedef DOUBLE REFTIME;
++typedef double REFTIME;
+ #endif
++
+ typedef DWORD_PTR HSEMAPHORE;
+ typedef DWORD_PTR HEVENT;
++
+ typedef struct _AllocatorProperties {
+     LONG cBuffers;
+     LONG cbBuffer;
+     LONG cbAlign;
+     LONG cbPrefix;
+ } ALLOCATOR_PROPERTIES;
++
+ #ifndef __IAMovieSetup_FWD_DEFINED__
+ #define __IAMovieSetup_FWD_DEFINED__
+ typedef interface IAMovieSetup IAMovieSetup;
+@@ -457,6 +538,7 @@ typedef interface IPin IPin;
+ typedef interface IReferenceClock IReferenceClock;
+ #endif
+ 
++
+ /*****************************************************************************
+  * IPin interface
+  */
+@@ -468,6 +550,7 @@ typedef struct _PinInfo {
+     PIN_DIRECTION dir;
+     WCHAR achName[128];
+ } PIN_INFO;
++
+ DEFINE_GUID(IID_IPin, 0x56a86891, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+ MIDL_INTERFACE("56a86891-0ad4-11ce-b03a-0020af0ba770")
+@@ -820,6 +903,7 @@ void __RPC_STUB IPin_NewSegment_Stub(
+ #endif  /* __IPin_INTERFACE_DEFINED__ */
+ 
+ typedef IPin *PPIN;
++
+ /*****************************************************************************
+  * IEnumPins interface
+  */
+@@ -966,6 +1050,7 @@ void __RPC_STUB IEnumPins_Clone_Stub(
+ #endif  /* __IEnumPins_INTERFACE_DEFINED__ */
+ 
+ typedef IEnumPins *PENUMPINS;
++
+ /*****************************************************************************
+  * IEnumMediaTypes interface
+  */
+@@ -1112,6 +1197,7 @@ void __RPC_STUB IEnumMediaTypes_Clone_Stub(
+ #endif  /* __IEnumMediaTypes_INTERFACE_DEFINED__ */
+ 
+ typedef IEnumMediaTypes *PENUMMEDIATYPES;
++
+ /*****************************************************************************
+  * IFilterGraph interface
+  */
+@@ -1340,6 +1426,7 @@ void __RPC_STUB IFilterGraph_SetDefaultSyncSource_Stub(
+ #endif  /* __IFilterGraph_INTERFACE_DEFINED__ */
+ 
+ typedef IFilterGraph *PFILTERGRAPH;
++
+ /*****************************************************************************
+  * IEnumFilters interface
+  */
+@@ -1486,6 +1573,7 @@ void __RPC_STUB IEnumFilters_Clone_Stub(
+ #endif  /* __IEnumFilters_INTERFACE_DEFINED__ */
+ 
+ typedef IEnumFilters *PENUMFILTERS;
++
+ /*****************************************************************************
+  * IMediaFilter interface
+  */
+@@ -1497,6 +1585,7 @@ typedef enum _FilterState {
+     State_Paused = 1,
+     State_Running = 2
+ } FILTER_STATE;
++
+ DEFINE_GUID(IID_IMediaFilter, 0x56a86899, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+ MIDL_INTERFACE("56a86899-0ad4-11ce-b03a-0020af0ba770")
+@@ -1681,6 +1770,7 @@ void __RPC_STUB IMediaFilter_GetSyncSource_Stub(
+ #endif  /* __IMediaFilter_INTERFACE_DEFINED__ */
+ 
+ typedef IMediaFilter *PMEDIAFILTER;
++
+ /*****************************************************************************
+  * IBaseFilter interface
+  */
+@@ -1691,6 +1781,7 @@ typedef struct _FilterInfo {
+     WCHAR achName[128];
+     IFilterGraph *pGraph;
+ } FILTER_INFO;
++
+ DEFINE_GUID(IID_IBaseFilter, 0x56a86895, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+ MIDL_INTERFACE("56a86895-0ad4-11ce-b03a-0020af0ba770")
+@@ -1913,6 +2004,7 @@ void __RPC_STUB IBaseFilter_QueryVendorInfo_Stub(
+ #endif  /* __IBaseFilter_INTERFACE_DEFINED__ */
+ 
+ typedef IBaseFilter *PFILTER;
++
+ /*****************************************************************************
+  * IReferenceClock interface
+  */
+@@ -2073,6 +2165,216 @@ void __RPC_STUB IReferenceClock_Unadvise_Stub(
+ #endif  /* __IReferenceClock_INTERFACE_DEFINED__ */
+ 
+ typedef IReferenceClock *PREFERENCECLOCK;
++
++/*****************************************************************************
++ * IReferenceClockTimerControl interface
++ */
++#ifndef __IReferenceClockTimerControl_INTERFACE_DEFINED__
++#define __IReferenceClockTimerControl_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("ebec459c-2eca-4d42-a8af-30df557614b8")
++IReferenceClockTimerControl : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE SetDefaultTimerResolution(
++        REFERENCE_TIME timerResolution) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetDefaultTimerResolution(
++        REFERENCE_TIME *pTimerResolution) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IReferenceClockTimerControl, 0xebec459c, 0x2eca, 0x4d42, 0xa8,0xaf, 0x30,0xdf,0x55,0x76,0x14,0xb8)
++#endif
++#else
++typedef struct IReferenceClockTimerControlVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IReferenceClockTimerControl* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IReferenceClockTimerControl* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IReferenceClockTimerControl* This);
++
++    /*** IReferenceClockTimerControl methods ***/
++    HRESULT (STDMETHODCALLTYPE *SetDefaultTimerResolution)(
++        IReferenceClockTimerControl* This,
++        REFERENCE_TIME timerResolution);
++
++    HRESULT (STDMETHODCALLTYPE *GetDefaultTimerResolution)(
++        IReferenceClockTimerControl* This,
++        REFERENCE_TIME *pTimerResolution);
++
++    END_INTERFACE
++} IReferenceClockTimerControlVtbl;
++interface IReferenceClockTimerControl {
++    CONST_VTBL IReferenceClockTimerControlVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IReferenceClockTimerControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IReferenceClockTimerControl_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IReferenceClockTimerControl_Release(This) (This)->lpVtbl->Release(This)
++/*** IReferenceClockTimerControl methods ***/
++#define IReferenceClockTimerControl_SetDefaultTimerResolution(This,timerResolution) (This)->lpVtbl->SetDefaultTimerResolution(This,timerResolution)
++#define IReferenceClockTimerControl_GetDefaultTimerResolution(This,pTimerResolution) (This)->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IReferenceClockTimerControl_QueryInterface(IReferenceClockTimerControl* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IReferenceClockTimerControl_AddRef(IReferenceClockTimerControl* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IReferenceClockTimerControl_Release(IReferenceClockTimerControl* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IReferenceClockTimerControl methods ***/
++static FORCEINLINE HRESULT IReferenceClockTimerControl_SetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME timerResolution) {
++    return This->lpVtbl->SetDefaultTimerResolution(This,timerResolution);
++}
++static FORCEINLINE HRESULT IReferenceClockTimerControl_GetDefaultTimerResolution(IReferenceClockTimerControl* This,REFERENCE_TIME *pTimerResolution) {
++    return This->lpVtbl->GetDefaultTimerResolution(This,pTimerResolution);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IReferenceClockTimerControl_SetDefaultTimerResolution_Proxy(
++    IReferenceClockTimerControl* This,
++    REFERENCE_TIME timerResolution);
++void __RPC_STUB IReferenceClockTimerControl_SetDefaultTimerResolution_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IReferenceClockTimerControl_GetDefaultTimerResolution_Proxy(
++    IReferenceClockTimerControl* This,
++    REFERENCE_TIME *pTimerResolution);
++void __RPC_STUB IReferenceClockTimerControl_GetDefaultTimerResolution_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IReferenceClockTimerControl_INTERFACE_DEFINED__ */
++
++
++/*****************************************************************************
++ * IReferenceClock2 interface
++ */
++#ifndef __IReferenceClock2_INTERFACE_DEFINED__
++#define __IReferenceClock2_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("36b73885-c2c8-11cf-8b46-00805f6cef60")
++IReferenceClock2 : public IReferenceClock
++{
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IReferenceClock2, 0x36b73885, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
++#endif
++#else
++typedef struct IReferenceClock2Vtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IReferenceClock2* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IReferenceClock2* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IReferenceClock2* This);
++
++    /*** IReferenceClock methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetTime)(
++        IReferenceClock2* This,
++        REFERENCE_TIME *pTime);
++
++    HRESULT (STDMETHODCALLTYPE *AdviseTime)(
++        IReferenceClock2* This,
++        REFERENCE_TIME baseTime,
++        REFERENCE_TIME streamTime,
++        HEVENT hEvent,
++        DWORD_PTR *pdwAdviseCookie);
++
++    HRESULT (STDMETHODCALLTYPE *AdvisePeriodic)(
++        IReferenceClock2* This,
++        REFERENCE_TIME startTime,
++        REFERENCE_TIME periodTime,
++        HSEMAPHORE hSemaphore,
++        DWORD_PTR *pdwAdviseCookie);
++
++    HRESULT (STDMETHODCALLTYPE *Unadvise)(
++        IReferenceClock2* This,
++        DWORD_PTR dwAdviseCookie);
++
++    END_INTERFACE
++} IReferenceClock2Vtbl;
++interface IReferenceClock2 {
++    CONST_VTBL IReferenceClock2Vtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IReferenceClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IReferenceClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IReferenceClock2_Release(This) (This)->lpVtbl->Release(This)
++/*** IReferenceClock methods ***/
++#define IReferenceClock2_GetTime(This,pTime) (This)->lpVtbl->GetTime(This,pTime)
++#define IReferenceClock2_AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie) (This)->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie)
++#define IReferenceClock2_AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie) (This)->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie)
++#define IReferenceClock2_Unadvise(This,dwAdviseCookie) (This)->lpVtbl->Unadvise(This,dwAdviseCookie)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IReferenceClock2_QueryInterface(IReferenceClock2* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IReferenceClock2_AddRef(IReferenceClock2* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IReferenceClock2_Release(IReferenceClock2* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IReferenceClock methods ***/
++static FORCEINLINE HRESULT IReferenceClock2_GetTime(IReferenceClock2* This,REFERENCE_TIME *pTime) {
++    return This->lpVtbl->GetTime(This,pTime);
++}
++static FORCEINLINE HRESULT IReferenceClock2_AdviseTime(IReferenceClock2* This,REFERENCE_TIME baseTime,REFERENCE_TIME streamTime,HEVENT hEvent,DWORD_PTR *pdwAdviseCookie) {
++    return This->lpVtbl->AdviseTime(This,baseTime,streamTime,hEvent,pdwAdviseCookie);
++}
++static FORCEINLINE HRESULT IReferenceClock2_AdvisePeriodic(IReferenceClock2* This,REFERENCE_TIME startTime,REFERENCE_TIME periodTime,HSEMAPHORE hSemaphore,DWORD_PTR *pdwAdviseCookie) {
++    return This->lpVtbl->AdvisePeriodic(This,startTime,periodTime,hSemaphore,pdwAdviseCookie);
++}
++static FORCEINLINE HRESULT IReferenceClock2_Unadvise(IReferenceClock2* This,DWORD_PTR dwAdviseCookie) {
++    return This->lpVtbl->Unadvise(This,dwAdviseCookie);
++}
++#endif
++#endif
++
++#endif
++
++
++#endif  /* __IReferenceClock2_INTERFACE_DEFINED__ */
++
++typedef IReferenceClock2 *PREFERENCECLOCK2;
++
+ /*****************************************************************************
+  * IMediaSample interface
+  */
+@@ -2114,7 +2416,7 @@ IMediaSample : public IUnknown
+         ) = 0;
+ 
+     virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
+-        LONG length) = 0;
++        LONG a) = 0;
+ 
+     virtual HRESULT STDMETHODCALLTYPE GetMediaType(
+         AM_MEDIA_TYPE **ppMediaType) = 0;
+@@ -2193,7 +2495,7 @@ typedef struct IMediaSampleVtbl {
+ 
+     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
+         IMediaSample* This,
+-        LONG length);
++        LONG a);
+ 
+     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
+         IMediaSample* This,
+@@ -2242,7 +2544,7 @@ interface IMediaSample {
+ #define IMediaSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
+ #define IMediaSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
+ #define IMediaSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
+-#define IMediaSample_SetActualDataLength(This,length) (This)->lpVtbl->SetActualDataLength(This,length)
++#define IMediaSample_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
+ #define IMediaSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
+ #define IMediaSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
+ #define IMediaSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
+@@ -2288,8 +2590,8 @@ static FORCEINLINE HRESULT IMediaSample_SetPreroll(IMediaSample* This,WINBOOL bI
+ static FORCEINLINE LONG IMediaSample_GetActualDataLength(IMediaSample* This) {
+     return This->lpVtbl->GetActualDataLength(This);
+ }
+-static FORCEINLINE HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG length) {
+-    return This->lpVtbl->SetActualDataLength(This,length);
++static FORCEINLINE HRESULT IMediaSample_SetActualDataLength(IMediaSample* This,LONG a) {
++    return This->lpVtbl->SetActualDataLength(This,a);
+ }
+ static FORCEINLINE HRESULT IMediaSample_GetMediaType(IMediaSample* This,AM_MEDIA_TYPE **ppMediaType) {
+     return This->lpVtbl->GetMediaType(This,ppMediaType);
+@@ -2386,7 +2688,7 @@ void __RPC_STUB IMediaSample_GetActualDataLength_Stub(
+     DWORD* pdwStubPhase);
+ HRESULT STDMETHODCALLTYPE IMediaSample_SetActualDataLength_Proxy(
+     IMediaSample* This,
+-    LONG length);
++    LONG a);
+ void __RPC_STUB IMediaSample_SetActualDataLength_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+@@ -2445,6 +2747,7 @@ void __RPC_STUB IMediaSample_SetMediaTime_Stub(
+ #endif  /* __IMediaSample_INTERFACE_DEFINED__ */
+ 
+ typedef IMediaSample *PMEDIASAMPLE;
++
+ enum tagAM_SAMPLE_PROPERTY_FLAGS {
+     AM_SAMPLE_SPLICEPOINT = 0x1,
+     AM_SAMPLE_PREROLL = 0x2,
+@@ -2459,6 +2762,7 @@ enum tagAM_SAMPLE_PROPERTY_FLAGS {
+     AM_STREAM_CONTROL = 1
+ };
+ 
++
+ typedef struct tagAM_SAMPLE2_PROPERTIES {
+     DWORD cbData;
+     DWORD dwTypeSpecificFlags;
+@@ -2471,6 +2775,7 @@ typedef struct tagAM_SAMPLE2_PROPERTIES {
+     BYTE *pbBuffer;
+     LONG cbBuffer;
+ } AM_SAMPLE2_PROPERTIES;
++
+ /*****************************************************************************
+  * IMediaSample2 interface
+  */
+@@ -2547,7 +2852,7 @@ typedef struct IMediaSample2Vtbl {
+ 
+     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
+         IMediaSample2* This,
+-        LONG length);
++        LONG a);
+ 
+     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
+         IMediaSample2* This,
+@@ -2607,7 +2912,7 @@ interface IMediaSample2 {
+ #define IMediaSample2_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
+ #define IMediaSample2_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
+ #define IMediaSample2_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
+-#define IMediaSample2_SetActualDataLength(This,length) (This)->lpVtbl->SetActualDataLength(This,length)
++#define IMediaSample2_SetActualDataLength(This,a) (This)->lpVtbl->SetActualDataLength(This,a)
+ #define IMediaSample2_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
+ #define IMediaSample2_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
+ #define IMediaSample2_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
+@@ -2656,8 +2961,8 @@ static FORCEINLINE HRESULT IMediaSample2_SetPreroll(IMediaSample2* This,WINBOOL
+ static FORCEINLINE LONG IMediaSample2_GetActualDataLength(IMediaSample2* This) {
+     return This->lpVtbl->GetActualDataLength(This);
+ }
+-static FORCEINLINE HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG length) {
+-    return This->lpVtbl->SetActualDataLength(This,length);
++static FORCEINLINE HRESULT IMediaSample2_SetActualDataLength(IMediaSample2* This,LONG a) {
++    return This->lpVtbl->SetActualDataLength(This,a);
+ }
+ static FORCEINLINE HRESULT IMediaSample2_GetMediaType(IMediaSample2* This,AM_MEDIA_TYPE **ppMediaType) {
+     return This->lpVtbl->GetMediaType(This,ppMediaType);
+@@ -2711,72 +3016,159 @@ void __RPC_STUB IMediaSample2_SetProperties_Stub(
+ #endif  /* __IMediaSample2_INTERFACE_DEFINED__ */
+ 
+ typedef IMediaSample2 *PMEDIASAMPLE2;
+-#define AM_GBF_PREVFRAMESKIPPED 1
+-#define AM_GBF_NOTASYNCPOINT 2
+-#define AM_GBF_NOWAIT 4
+-#define AM_GBF_NODDSURFACELOCK 8
++
+ /*****************************************************************************
+- * IMemAllocator interface
++ * IMediaSample2Config interface
+  */
+-#ifndef __IMemAllocator_INTERFACE_DEFINED__
+-#define __IMemAllocator_INTERFACE_DEFINED__
++#ifndef __IMediaSample2Config_INTERFACE_DEFINED__
++#define __IMediaSample2Config_INTERFACE_DEFINED__
+ 
+-DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
++DEFINE_GUID(IID_IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+-MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770")
+-IMemAllocator : public IUnknown
++MIDL_INTERFACE("68961e68-832b-41ea-bc91-63593f3e70e3")
++IMediaSample2Config : public IUnknown
+ {
+-    virtual HRESULT STDMETHODCALLTYPE SetProperties(
+-        ALLOCATOR_PROPERTIES *pRequest,
+-        ALLOCATOR_PROPERTIES *pActual) = 0;
+-
+-    virtual HRESULT STDMETHODCALLTYPE GetProperties(
+-        ALLOCATOR_PROPERTIES *pProps) = 0;
+-
+-    virtual HRESULT STDMETHODCALLTYPE Commit(
+-        ) = 0;
+-
+-    virtual HRESULT STDMETHODCALLTYPE Decommit(
+-        ) = 0;
+-
+-    virtual HRESULT STDMETHODCALLTYPE GetBuffer(
+-        IMediaSample **ppBuffer,
+-        REFERENCE_TIME *pStartTime,
+-        REFERENCE_TIME *pEndTime,
+-        DWORD dwFlags) = 0;
+-
+-    virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
+-        IMediaSample *pBuffer) = 0;
++    virtual HRESULT STDMETHODCALLTYPE GetSurface(
++        IUnknown **ppDirect3DSurface9) = 0;
+ 
+ };
+ #ifdef __CRT_UUID_DECL
+-__CRT_UUID_DECL(IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
++__CRT_UUID_DECL(IMediaSample2Config, 0x68961e68, 0x832b, 0x41ea, 0xbc,0x91, 0x63,0x59,0x3f,0x3e,0x70,0xe3)
+ #endif
+ #else
+-typedef struct IMemAllocatorVtbl {
++typedef struct IMediaSample2ConfigVtbl {
+     BEGIN_INTERFACE
+ 
+     /*** IUnknown methods ***/
+     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+-        IMemAllocator* This,
++        IMediaSample2Config* This,
+         REFIID riid,
+         void **ppvObject);
+ 
+     ULONG (STDMETHODCALLTYPE *AddRef)(
+-        IMemAllocator* This);
++        IMediaSample2Config* This);
+ 
+     ULONG (STDMETHODCALLTYPE *Release)(
+-        IMemAllocator* This);
+-
+-    /*** IMemAllocator methods ***/
+-    HRESULT (STDMETHODCALLTYPE *SetProperties)(
+-        IMemAllocator* This,
+-        ALLOCATOR_PROPERTIES *pRequest,
+-        ALLOCATOR_PROPERTIES *pActual);
++        IMediaSample2Config* This);
+ 
+-    HRESULT (STDMETHODCALLTYPE *GetProperties)(
+-        IMemAllocator* This,
+-        ALLOCATOR_PROPERTIES *pProps);
++    /*** IMediaSample2Config methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetSurface)(
++        IMediaSample2Config* This,
++        IUnknown **ppDirect3DSurface9);
++
++    END_INTERFACE
++} IMediaSample2ConfigVtbl;
++interface IMediaSample2Config {
++    CONST_VTBL IMediaSample2ConfigVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IMediaSample2Config_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMediaSample2Config_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMediaSample2Config_Release(This) (This)->lpVtbl->Release(This)
++/*** IMediaSample2Config methods ***/
++#define IMediaSample2Config_GetSurface(This,ppDirect3DSurface9) (This)->lpVtbl->GetSurface(This,ppDirect3DSurface9)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IMediaSample2Config_QueryInterface(IMediaSample2Config* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IMediaSample2Config_AddRef(IMediaSample2Config* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IMediaSample2Config_Release(IMediaSample2Config* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IMediaSample2Config methods ***/
++static FORCEINLINE HRESULT IMediaSample2Config_GetSurface(IMediaSample2Config* This,IUnknown **ppDirect3DSurface9) {
++    return This->lpVtbl->GetSurface(This,ppDirect3DSurface9);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IMediaSample2Config_GetSurface_Proxy(
++    IMediaSample2Config* This,
++    IUnknown **ppDirect3DSurface9);
++void __RPC_STUB IMediaSample2Config_GetSurface_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IMediaSample2Config_INTERFACE_DEFINED__ */
++
++
++#define AM_GBF_PREVFRAMESKIPPED 1
++#define AM_GBF_NOTASYNCPOINT 2
++#define AM_GBF_NOWAIT 4
++#define AM_GBF_NODDSURFACELOCK 8
++
++/*****************************************************************************
++ * IMemAllocator interface
++ */
++#ifndef __IMemAllocator_INTERFACE_DEFINED__
++#define __IMemAllocator_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("56a8689c-0ad4-11ce-b03a-0020af0ba770")
++IMemAllocator : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE SetProperties(
++        ALLOCATOR_PROPERTIES *pRequest,
++        ALLOCATOR_PROPERTIES *pActual) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetProperties(
++        ALLOCATOR_PROPERTIES *pProps) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Commit(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Decommit(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetBuffer(
++        IMediaSample **ppBuffer,
++        REFERENCE_TIME *pStartTime,
++        REFERENCE_TIME *pEndTime,
++        DWORD dwFlags) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
++        IMediaSample *pBuffer) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IMemAllocator, 0x56a8689c, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70)
++#endif
++#else
++typedef struct IMemAllocatorVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IMemAllocator* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IMemAllocator* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IMemAllocator* This);
++
++    /*** IMemAllocator methods ***/
++    HRESULT (STDMETHODCALLTYPE *SetProperties)(
++        IMemAllocator* This,
++        ALLOCATOR_PROPERTIES *pRequest,
++        ALLOCATOR_PROPERTIES *pActual);
++
++    HRESULT (STDMETHODCALLTYPE *GetProperties)(
++        IMemAllocator* This,
++        ALLOCATOR_PROPERTIES *pProps);
+ 
+     HRESULT (STDMETHODCALLTYPE *Commit)(
+         IMemAllocator* This);
+@@ -2903,6 +3295,7 @@ void __RPC_STUB IMemAllocator_ReleaseBuffer_Stub(
+ #endif  /* __IMemAllocator_INTERFACE_DEFINED__ */
+ 
+ typedef IMemAllocator *PMEMALLOCATOR;
++
+ /*****************************************************************************
+  * IMemAllocatorCallbackTemp interface
+  */
+@@ -3059,6 +3452,7 @@ void __RPC_STUB IMemAllocatorCallbackTemp_GetFreeCount_Stub(
+ 
+ #endif  /* __IMemAllocatorCallbackTemp_INTERFACE_DEFINED__ */
+ 
++
+ /*****************************************************************************
+  * IMemAllocatorNotifyCallbackTemp interface
+  */
+@@ -3141,6 +3535,7 @@ void __RPC_STUB IMemAllocatorNotifyCallbackTemp_NotifyRelease_Stub(
+ 
+ #endif  /* __IMemAllocatorNotifyCallbackTemp_INTERFACE_DEFINED__ */
+ 
++
+ /*****************************************************************************
+  * IMemInputPin interface
+  */
+@@ -3328,6 +3723,7 @@ void __RPC_STUB IMemInputPin_ReceiveCanBlock_Stub(
+ #endif  /* __IMemInputPin_INTERFACE_DEFINED__ */
+ 
+ typedef IMemInputPin *PMEMINPUTPIN;
++
+ /*****************************************************************************
+  * IAMovieSetup interface
+  */
+@@ -3428,6 +3824,7 @@ void __RPC_STUB IAMovieSetup_Unregister_Stub(
+ #endif  /* __IAMovieSetup_INTERFACE_DEFINED__ */
+ 
+ typedef IAMovieSetup *PAMOVIESETUP;
++
+ typedef enum AM_SEEKING_SeekingFlags {
+     AM_SEEKING_NoPositioning = 0x0,
+     AM_SEEKING_AbsolutePositioning = 0x1,
+@@ -3439,6 +3836,7 @@ typedef enum AM_SEEKING_SeekingFlags {
+     AM_SEEKING_Segment = 0x10,
+     AM_SEEKING_NoFlush = 0x20
+ } AM_SEEKING_SEEKING_FLAGS;
++
+ typedef enum AM_SEEKING_SeekingCapabilities {
+     AM_SEEKING_CanSeekAbsolute = 0x1,
+     AM_SEEKING_CanSeekForwards = 0x2,
+@@ -3450,6 +3848,7 @@ typedef enum AM_SEEKING_SeekingCapabilities {
+     AM_SEEKING_CanDoSegments = 0x80,
+     AM_SEEKING_Source = 0x100
+ } AM_SEEKING_SEEKING_CAPABILITIES;
++
+ /*****************************************************************************
+  * IMediaSeeking interface
+  */
+@@ -3863,10 +4262,12 @@ void __RPC_STUB IMediaSeeking_GetPreroll_Stub(
+ #endif  /* __IMediaSeeking_INTERFACE_DEFINED__ */
+ 
+ typedef IMediaSeeking *PMEDIASEEKING;
++
+ enum tagAM_MEDIAEVENT_FLAGS {
+-    AM_MEDIAEVENT_NONOTIFY = 0x1
++  AM_MEDIAEVENT_NONOTIFY = 0x1
+ };
+ 
++#endif
+ #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
+ #define __IAMAnalogVideoDecoder_FWD_DEFINED__
+ typedef interface IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
+@@ -3897,6 +4298,16 @@ typedef interface IAMBufferNegotiation IAMBufferNegotiation;
+ typedef interface IAMCameraControl IAMCameraControl;
+ #endif
+ 
++#ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
++#define __IAMCertifiedOutputProtection_FWD_DEFINED__
++typedef interface IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
++#endif
++
++#ifndef __IAMClockSlave_FWD_DEFINED__
++#define __IAMClockSlave_FWD_DEFINED__
++typedef interface IAMClockSlave IAMClockSlave;
++#endif
++
+ #ifndef __IAMCopyCaptureFileProgress_FWD_DEFINED__
+ #define __IAMCopyCaptureFileProgress_FWD_DEFINED__
+ typedef interface IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
+@@ -4132,7 +4543,7 @@ typedef interface IQualityControl IQualityControl;
+ typedef interface ISeekingPassThru ISeekingPassThru;
+ #endif
+ 
+-typedef struct __WIDL_axextend_generated_name_00000000 {
++typedef struct __WIDL_strmif_generated_name_00000002 {
+     CLSID Clsid;
+     LPWSTR Name;
+ } REGFILTER;
+@@ -4577,11 +4988,11 @@ void __RPC_STUB IFilterMapper_EnumMatchingFilters_Stub(
+ 
+ #endif  /* __IFilterMapper_INTERFACE_DEFINED__ */
+ 
+-typedef struct __WIDL_axextend_generated_name_00000001 {
++typedef struct __WIDL_strmif_generated_name_00000003 {
+     const CLSID *clsMajorType;
+     const CLSID *clsMinorType;
+ } REGPINTYPES;
+-typedef struct __WIDL_axextend_generated_name_00000002 {
++typedef struct __WIDL_strmif_generated_name_00000004 {
+     LPWSTR strName;
+     WINBOOL bRendered;
+     WINBOOL bOutput;
+@@ -4592,7 +5003,7 @@ typedef struct __WIDL_axextend_generated_name_00000002 {
+     UINT nMediaTypes;
+     const REGPINTYPES *lpMediaType;
+ } REGFILTERPINS;
+-typedef struct __WIDL_axextend_generated_name_00000003 {
++typedef struct __WIDL_strmif_generated_name_00000005 {
+     CLSID clsMedium;
+     DWORD dw1;
+     DWORD dw2;
+@@ -4604,7 +5015,7 @@ enum {
+     REG_PINFLAG_B_OUTPUT = 0x8
+ };
+ 
+-typedef struct __WIDL_axextend_generated_name_00000004 {
++typedef struct __WIDL_strmif_generated_name_00000006 {
+     DWORD dwFlags;
+     UINT cInstances;
+     UINT nMediaTypes;
+@@ -4613,7 +5024,7 @@ typedef struct __WIDL_axextend_generated_name_00000004 {
+     const REGPINMEDIUM *lpMedium;
+     const CLSID *clsPinCategory;
+ } REGFILTERPINS2;
+-typedef struct __WIDL_axextend_generated_name_00000005 {
++typedef struct __WIDL_strmif_generated_name_00000007 {
+     DWORD dwVersion;
+     DWORD dwMerit;
+     __C89_NAMELESS union {
+@@ -6123,7 +6534,7 @@ void __RPC_STUB IFileSinkFilter2_GetMode_Stub(
+ #endif  /* __IFileSinkFilter2_INTERFACE_DEFINED__ */
+ 
+ typedef IFileSinkFilter2 *PFILESINKFILTER2;
+-typedef enum __WIDL_axextend_generated_name_00000006 {
++typedef enum __WIDL_strmif_generated_name_00000008 {
+     AM_FILE_OVERWRITE = 0x1
+ } AM_FILESINK_FLAGS;
+ /*****************************************************************************
+@@ -7100,130 +7511,702 @@ HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub(
+ 
+ #endif  /* __ICaptureGraphBuilder2_INTERFACE_DEFINED__ */
+ 
+-enum _AM_RENSDEREXFLAGS {
+-    AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
+-};
+-
+ /*****************************************************************************
+- * IFilterGraph2 interface
++ * IConfigAviMux interface
+  */
+-#ifndef __IFilterGraph2_INTERFACE_DEFINED__
+-#define __IFilterGraph2_INTERFACE_DEFINED__
++#ifndef __IConfigAviMux_INTERFACE_DEFINED__
++#define __IConfigAviMux_INTERFACE_DEFINED__
+ 
+-DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
++DEFINE_GUID(IID_IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6);
+ #if defined(__cplusplus) && !defined(CINTERFACE)
+-MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
+-IFilterGraph2 : public IGraphBuilder
++MIDL_INTERFACE("5acd6aa0-f482-11ce-8b67-00aa00a3f1a6")
++IConfigAviMux : public IUnknown
+ {
+-    virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker(
+-        IMoniker *pMoniker,
+-        IBindCtx *pCtx,
+-        LPCWSTR lpcwstrFilterName,
+-        IBaseFilter **ppFilter) = 0;
++    virtual HRESULT STDMETHODCALLTYPE SetMasterStream(
++        LONG iStream) = 0;
+ 
+-    virtual HRESULT STDMETHODCALLTYPE ReconnectEx(
+-        IPin *ppin,
+-        const AM_MEDIA_TYPE *pmt) = 0;
++    virtual HRESULT STDMETHODCALLTYPE GetMasterStream(
++        LONG *pStream) = 0;
+ 
+-    virtual HRESULT STDMETHODCALLTYPE RenderEx(
+-        IPin *pPinOut,
+-        DWORD dwFlags,
+-        DWORD *pvContext) = 0;
++    virtual HRESULT STDMETHODCALLTYPE SetOutputCompatibilityIndex(
++        WINBOOL fOldIndex) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetOutputCompatibilityIndex(
++        WINBOOL *pfOldIndex) = 0;
+ 
+ };
+ #ifdef __CRT_UUID_DECL
+-__CRT_UUID_DECL(IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
++__CRT_UUID_DECL(IConfigAviMux, 0x5acd6aa0, 0xf482, 0x11ce, 0x8b,0x67, 0x00,0xaa,0x00,0xa3,0xf1,0xa6)
+ #endif
+ #else
+-typedef struct IFilterGraph2Vtbl {
++typedef struct IConfigAviMuxVtbl {
+     BEGIN_INTERFACE
+ 
+     /*** IUnknown methods ***/
+     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+-        IFilterGraph2* This,
++        IConfigAviMux* This,
+         REFIID riid,
+         void **ppvObject);
+ 
+     ULONG (STDMETHODCALLTYPE *AddRef)(
+-        IFilterGraph2* This);
++        IConfigAviMux* This);
+ 
+     ULONG (STDMETHODCALLTYPE *Release)(
+-        IFilterGraph2* This);
++        IConfigAviMux* This);
+ 
+-    /*** IFilterGraph methods ***/
+-    HRESULT (STDMETHODCALLTYPE *AddFilter)(
+-        IFilterGraph2* This,
+-        IBaseFilter *pFilter,
+-        LPCWSTR pName);
++    /*** IConfigAviMux methods ***/
++    HRESULT (STDMETHODCALLTYPE *SetMasterStream)(
++        IConfigAviMux* This,
++        LONG iStream);
+ 
+-    HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
+-        IFilterGraph2* This,
+-        IBaseFilter *pFilter);
++    HRESULT (STDMETHODCALLTYPE *GetMasterStream)(
++        IConfigAviMux* This,
++        LONG *pStream);
+ 
+-    HRESULT (STDMETHODCALLTYPE *EnumFilters)(
+-        IFilterGraph2* This,
+-        IEnumFilters **ppEnum);
++    HRESULT (STDMETHODCALLTYPE *SetOutputCompatibilityIndex)(
++        IConfigAviMux* This,
++        WINBOOL fOldIndex);
+ 
+-    HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
+-        IFilterGraph2* This,
+-        LPCWSTR pName,
+-        IBaseFilter **ppFilter);
++    HRESULT (STDMETHODCALLTYPE *GetOutputCompatibilityIndex)(
++        IConfigAviMux* This,
++        WINBOOL *pfOldIndex);
+ 
+-    HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
+-        IFilterGraph2* This,
+-        IPin *ppinOut,
+-        IPin *ppinIn,
+-        const AM_MEDIA_TYPE *pmt);
++    END_INTERFACE
++} IConfigAviMuxVtbl;
++interface IConfigAviMux {
++    CONST_VTBL IConfigAviMuxVtbl* lpVtbl;
++};
+ 
+-    HRESULT (STDMETHODCALLTYPE *Reconnect)(
+-        IFilterGraph2* This,
+-        IPin *ppin);
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)
++/*** IConfigAviMux methods ***/
++#define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)
++#define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)
++#define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)
++#define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IConfigAviMux_QueryInterface(IConfigAviMux* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IConfigAviMux_AddRef(IConfigAviMux* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IConfigAviMux_Release(IConfigAviMux* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IConfigAviMux methods ***/
++static FORCEINLINE HRESULT IConfigAviMux_SetMasterStream(IConfigAviMux* This,LONG iStream) {
++    return This->lpVtbl->SetMasterStream(This,iStream);
++}
++static FORCEINLINE HRESULT IConfigAviMux_GetMasterStream(IConfigAviMux* This,LONG *pStream) {
++    return This->lpVtbl->GetMasterStream(This,pStream);
++}
++static FORCEINLINE HRESULT IConfigAviMux_SetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL fOldIndex) {
++    return This->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex);
++}
++static FORCEINLINE HRESULT IConfigAviMux_GetOutputCompatibilityIndex(IConfigAviMux* This,WINBOOL *pfOldIndex) {
++    return This->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex);
++}
++#endif
++#endif
+ 
+-    HRESULT (STDMETHODCALLTYPE *Disconnect)(
+-        IFilterGraph2* This,
+-        IPin *ppin);
++#endif
+ 
+-    HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
+-        IFilterGraph2* This);
++HRESULT STDMETHODCALLTYPE IConfigAviMux_SetMasterStream_Proxy(
++    IConfigAviMux* This,
++    LONG iStream);
++void __RPC_STUB IConfigAviMux_SetMasterStream_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IConfigAviMux_GetMasterStream_Proxy(
++    IConfigAviMux* This,
++    LONG *pStream);
++void __RPC_STUB IConfigAviMux_GetMasterStream_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IConfigAviMux_SetOutputCompatibilityIndex_Proxy(
++    IConfigAviMux* This,
++    WINBOOL fOldIndex);
++void __RPC_STUB IConfigAviMux_SetOutputCompatibilityIndex_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IConfigAviMux_GetOutputCompatibilityIndex_Proxy(
++    IConfigAviMux* This,
++    WINBOOL *pfOldIndex);
++void __RPC_STUB IConfigAviMux_GetOutputCompatibilityIndex_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
+ 
+-    /*** IGraphBuilder methods ***/
+-    HRESULT (STDMETHODCALLTYPE *Connect)(
+-        IFilterGraph2* This,
+-        IPin *ppinOut,
+-        IPin *ppinIn);
++#endif  /* __IConfigAviMux_INTERFACE_DEFINED__ */
+ 
+-    HRESULT (STDMETHODCALLTYPE *Render)(
+-        IFilterGraph2* This,
+-        IPin *ppinOut);
++/*****************************************************************************
++ * IConfigInterleaving interface
++ */
++#ifndef __IConfigInterleaving_INTERFACE_DEFINED__
++#define __IConfigInterleaving_INTERFACE_DEFINED__
+ 
+-    HRESULT (STDMETHODCALLTYPE *RenderFile)(
+-        IFilterGraph2* This,
+-        LPCWSTR lpcwstrFile,
+-        LPCWSTR lpcwstrPlayList);
++typedef enum InterleavingMode {
++    INTERLEAVE_NONE = 0,
++    INTERLEAVE_CAPTURE = 1,
++    INTERLEAVE_FULL = 2,
++    INTERLEAVE_NONE_BUFFERED = 3
++} InterleavingMode;
++DEFINE_GUID(IID_IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("bee3d220-157b-11d0-bd23-00a0c911ce86")
++IConfigInterleaving : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE put_Mode(
++        InterleavingMode mode) = 0;
+ 
+-    HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
+-        IFilterGraph2* This,
+-        LPCWSTR lpcwstrFileName,
+-        LPCWSTR lpcwstrFilterName,
+-        IBaseFilter **ppFilter);
++    virtual HRESULT STDMETHODCALLTYPE get_Mode(
++        InterleavingMode *pMode) = 0;
+ 
+-    HRESULT (STDMETHODCALLTYPE *SetLogFile)(
+-        IFilterGraph2* This,
+-        DWORD_PTR hFile);
++    virtual HRESULT STDMETHODCALLTYPE put_Interleaving(
++        const REFERENCE_TIME *prtInterleave,
++        const REFERENCE_TIME *prtPreroll) = 0;
+ 
+-    HRESULT (STDMETHODCALLTYPE *Abort)(
+-        IFilterGraph2* This);
++    virtual HRESULT STDMETHODCALLTYPE get_Interleaving(
++        REFERENCE_TIME *prtInterleave,
++        REFERENCE_TIME *prtPreroll) = 0;
+ 
+-    HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
+-        IFilterGraph2* This);
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IConfigInterleaving, 0xbee3d220, 0x157b, 0x11d0, 0xbd,0x23, 0x00,0xa0,0xc9,0x11,0xce,0x86)
++#endif
++#else
++typedef struct IConfigInterleavingVtbl {
++    BEGIN_INTERFACE
+ 
+-    /*** IFilterGraph2 methods ***/
+-    HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)(
+-        IFilterGraph2* This,
+-        IMoniker *pMoniker,
+-        IBindCtx *pCtx,
+-        LPCWSTR lpcwstrFilterName,
+-        IBaseFilter **ppFilter);
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IConfigInterleaving* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IConfigInterleaving* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IConfigInterleaving* This);
++
++    /*** IConfigInterleaving methods ***/
++    HRESULT (STDMETHODCALLTYPE *put_Mode)(
++        IConfigInterleaving* This,
++        InterleavingMode mode);
++
++    HRESULT (STDMETHODCALLTYPE *get_Mode)(
++        IConfigInterleaving* This,
++        InterleavingMode *pMode);
++
++    HRESULT (STDMETHODCALLTYPE *put_Interleaving)(
++        IConfigInterleaving* This,
++        const REFERENCE_TIME *prtInterleave,
++        const REFERENCE_TIME *prtPreroll);
++
++    HRESULT (STDMETHODCALLTYPE *get_Interleaving)(
++        IConfigInterleaving* This,
++        REFERENCE_TIME *prtInterleave,
++        REFERENCE_TIME *prtPreroll);
++
++    END_INTERFACE
++} IConfigInterleavingVtbl;
++interface IConfigInterleaving {
++    CONST_VTBL IConfigInterleavingVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)
++/*** IConfigInterleaving methods ***/
++#define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
++#define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
++#define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)
++#define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IConfigInterleaving_QueryInterface(IConfigInterleaving* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IConfigInterleaving_AddRef(IConfigInterleaving* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IConfigInterleaving_Release(IConfigInterleaving* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IConfigInterleaving methods ***/
++static FORCEINLINE HRESULT IConfigInterleaving_put_Mode(IConfigInterleaving* This,InterleavingMode mode) {
++    return This->lpVtbl->put_Mode(This,mode);
++}
++static FORCEINLINE HRESULT IConfigInterleaving_get_Mode(IConfigInterleaving* This,InterleavingMode *pMode) {
++    return This->lpVtbl->get_Mode(This,pMode);
++}
++static FORCEINLINE HRESULT IConfigInterleaving_put_Interleaving(IConfigInterleaving* This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) {
++    return This->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll);
++}
++static FORCEINLINE HRESULT IConfigInterleaving_get_Interleaving(IConfigInterleaving* This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) {
++    return This->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IConfigInterleaving_put_Mode_Proxy(
++    IConfigInterleaving* This,
++    InterleavingMode mode);
++void __RPC_STUB IConfigInterleaving_put_Mode_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IConfigInterleaving_get_Mode_Proxy(
++    IConfigInterleaving* This,
++    InterleavingMode *pMode);
++void __RPC_STUB IConfigInterleaving_get_Mode_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IConfigInterleaving_put_Interleaving_Proxy(
++    IConfigInterleaving* This,
++    const REFERENCE_TIME *prtInterleave,
++    const REFERENCE_TIME *prtPreroll);
++void __RPC_STUB IConfigInterleaving_put_Interleaving_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IConfigInterleaving_get_Interleaving_Proxy(
++    IConfigInterleaving* This,
++    REFERENCE_TIME *prtInterleave,
++    REFERENCE_TIME *prtPreroll);
++void __RPC_STUB IConfigInterleaving_get_Interleaving_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IConfigInterleaving_INTERFACE_DEFINED__ */
++
++/*****************************************************************************
++ * IAMClockSlave interface
++ */
++#ifndef __IAMClockSlave_INTERFACE_DEFINED__
++#define __IAMClockSlave_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("9fd52741-176d-4b36-8f51-ca8f933223be")
++IAMClockSlave : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE SetErrorTolerance(
++        DWORD dwTolerance) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetErrorTolerance(
++        DWORD *pdwTolerance) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IAMClockSlave, 0x9fd52741, 0x176d, 0x4b36, 0x8f,0x51, 0xca,0x8f,0x93,0x32,0x23,0xbe)
++#endif
++#else
++typedef struct IAMClockSlaveVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IAMClockSlave* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IAMClockSlave* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IAMClockSlave* This);
++
++    /*** IAMClockSlave methods ***/
++    HRESULT (STDMETHODCALLTYPE *SetErrorTolerance)(
++        IAMClockSlave* This,
++        DWORD dwTolerance);
++
++    HRESULT (STDMETHODCALLTYPE *GetErrorTolerance)(
++        IAMClockSlave* This,
++        DWORD *pdwTolerance);
++
++    END_INTERFACE
++} IAMClockSlaveVtbl;
++interface IAMClockSlave {
++    CONST_VTBL IAMClockSlaveVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)
++/*** IAMClockSlave methods ***/
++#define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)
++#define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IAMClockSlave_QueryInterface(IAMClockSlave* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IAMClockSlave_AddRef(IAMClockSlave* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IAMClockSlave_Release(IAMClockSlave* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IAMClockSlave methods ***/
++static FORCEINLINE HRESULT IAMClockSlave_SetErrorTolerance(IAMClockSlave* This,DWORD dwTolerance) {
++    return This->lpVtbl->SetErrorTolerance(This,dwTolerance);
++}
++static FORCEINLINE HRESULT IAMClockSlave_GetErrorTolerance(IAMClockSlave* This,DWORD *pdwTolerance) {
++    return This->lpVtbl->GetErrorTolerance(This,pdwTolerance);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IAMClockSlave_SetErrorTolerance_Proxy(
++    IAMClockSlave* This,
++    DWORD dwTolerance);
++void __RPC_STUB IAMClockSlave_SetErrorTolerance_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IAMClockSlave_GetErrorTolerance_Proxy(
++    IAMClockSlave* This,
++    DWORD *pdwTolerance);
++void __RPC_STUB IAMClockSlave_GetErrorTolerance_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IAMClockSlave_INTERFACE_DEFINED__ */
++
++typedef struct _AMCOPPSignature {
++    BYTE Signature[256];
++} AMCOPPSignature;
++typedef struct _AMCOPPCommand {
++    GUID macKDI;
++    GUID guidCommandID;
++    DWORD dwSequence;
++    DWORD bSizeData;
++    BYTE CommandData[4056];
++} AMCOPPCommand;
++typedef struct _AMCOPPCommand *LPAMCOPPCommand;
++typedef struct _AMCOPPStatusInput {
++    GUID rApp;
++    GUID guidStatusRequestID;
++    DWORD dwSequence;
++    DWORD cbSizeData;
++    BYTE StatusData[4056];
++} AMCOPPStatusInput;
++typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
++typedef struct _AMCOPPStatusOutput {
++    GUID macKDI;
++    DWORD cbSizeData;
++    BYTE COPPStatus[4076];
++} AMCOPPStatusOutput;
++typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
++/*****************************************************************************
++ * IAMCertifiedOutputProtection interface
++ */
++#ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
++#define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("6feded3e-0ff1-4901-a2f1-43f7012c8515")
++IAMCertifiedOutputProtection : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE KeyExchange(
++        GUID *pRandom,
++        BYTE **VarLenCertGH,
++        DWORD *pdwLengthCertGH) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE SessionSequenceStart(
++        AMCOPPSignature *pSig) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ProtectionCommand(
++        const AMCOPPCommand *cmd) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ProtectionStatus(
++        const AMCOPPStatusInput *pStatusInput,
++        AMCOPPStatusOutput *pStatusOutput) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IAMCertifiedOutputProtection, 0x6feded3e, 0x0ff1, 0x4901, 0xa2,0xf1, 0x43,0xf7,0x01,0x2c,0x85,0x15)
++#endif
++#else
++typedef struct IAMCertifiedOutputProtectionVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IAMCertifiedOutputProtection* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IAMCertifiedOutputProtection* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IAMCertifiedOutputProtection* This);
++
++    /*** IAMCertifiedOutputProtection methods ***/
++    HRESULT (STDMETHODCALLTYPE *KeyExchange)(
++        IAMCertifiedOutputProtection* This,
++        GUID *pRandom,
++        BYTE **VarLenCertGH,
++        DWORD *pdwLengthCertGH);
++
++    HRESULT (STDMETHODCALLTYPE *SessionSequenceStart)(
++        IAMCertifiedOutputProtection* This,
++        AMCOPPSignature *pSig);
++
++    HRESULT (STDMETHODCALLTYPE *ProtectionCommand)(
++        IAMCertifiedOutputProtection* This,
++        const AMCOPPCommand *cmd);
++
++    HRESULT (STDMETHODCALLTYPE *ProtectionStatus)(
++        IAMCertifiedOutputProtection* This,
++        const AMCOPPStatusInput *pStatusInput,
++        AMCOPPStatusOutput *pStatusOutput);
++
++    END_INTERFACE
++} IAMCertifiedOutputProtectionVtbl;
++interface IAMCertifiedOutputProtection {
++    CONST_VTBL IAMCertifiedOutputProtectionVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)
++/*** IAMCertifiedOutputProtection methods ***/
++#define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)
++#define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)
++#define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)
++#define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IAMCertifiedOutputProtection_QueryInterface(IAMCertifiedOutputProtection* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IAMCertifiedOutputProtection_AddRef(IAMCertifiedOutputProtection* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IAMCertifiedOutputProtection_Release(IAMCertifiedOutputProtection* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IAMCertifiedOutputProtection methods ***/
++static FORCEINLINE HRESULT IAMCertifiedOutputProtection_KeyExchange(IAMCertifiedOutputProtection* This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) {
++    return This->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH);
++}
++static FORCEINLINE HRESULT IAMCertifiedOutputProtection_SessionSequenceStart(IAMCertifiedOutputProtection* This,AMCOPPSignature *pSig) {
++    return This->lpVtbl->SessionSequenceStart(This,pSig);
++}
++static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionCommand(IAMCertifiedOutputProtection* This,const AMCOPPCommand *cmd) {
++    return This->lpVtbl->ProtectionCommand(This,cmd);
++}
++static FORCEINLINE HRESULT IAMCertifiedOutputProtection_ProtectionStatus(IAMCertifiedOutputProtection* This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) {
++    return This->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_KeyExchange_Proxy(
++    IAMCertifiedOutputProtection* This,
++    GUID *pRandom,
++    BYTE **VarLenCertGH,
++    DWORD *pdwLengthCertGH);
++void __RPC_STUB IAMCertifiedOutputProtection_KeyExchange_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_SessionSequenceStart_Proxy(
++    IAMCertifiedOutputProtection* This,
++    AMCOPPSignature *pSig);
++void __RPC_STUB IAMCertifiedOutputProtection_SessionSequenceStart_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_ProtectionCommand_Proxy(
++    IAMCertifiedOutputProtection* This,
++    const AMCOPPCommand *cmd);
++void __RPC_STUB IAMCertifiedOutputProtection_ProtectionCommand_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IAMCertifiedOutputProtection_ProtectionStatus_Proxy(
++    IAMCertifiedOutputProtection* This,
++    const AMCOPPStatusInput *pStatusInput,
++    AMCOPPStatusOutput *pStatusOutput);
++void __RPC_STUB IAMCertifiedOutputProtection_ProtectionStatus_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IAMCertifiedOutputProtection_INTERFACE_DEFINED__ */
++
++enum _AM_RENSDEREXFLAGS {
++    AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x1
++};
++
++/*****************************************************************************
++ * IFilterGraph2 interface
++ */
++#ifndef __IFilterGraph2_INTERFACE_DEFINED__
++#define __IFilterGraph2_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("36b73882-c2c8-11cf-8b46-00805f6cef60")
++IFilterGraph2 : public IGraphBuilder
++{
++    virtual HRESULT STDMETHODCALLTYPE AddSourceFilterForMoniker(
++        IMoniker *pMoniker,
++        IBindCtx *pCtx,
++        LPCWSTR lpcwstrFilterName,
++        IBaseFilter **ppFilter) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE ReconnectEx(
++        IPin *ppin,
++        const AM_MEDIA_TYPE *pmt) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE RenderEx(
++        IPin *pPinOut,
++        DWORD dwFlags,
++        DWORD *pvContext) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IFilterGraph2, 0x36b73882, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
++#endif
++#else
++typedef struct IFilterGraph2Vtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IFilterGraph2* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IFilterGraph2* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IFilterGraph2* This);
++
++    /*** IFilterGraph methods ***/
++    HRESULT (STDMETHODCALLTYPE *AddFilter)(
++        IFilterGraph2* This,
++        IBaseFilter *pFilter,
++        LPCWSTR pName);
++
++    HRESULT (STDMETHODCALLTYPE *RemoveFilter)(
++        IFilterGraph2* This,
++        IBaseFilter *pFilter);
++
++    HRESULT (STDMETHODCALLTYPE *EnumFilters)(
++        IFilterGraph2* This,
++        IEnumFilters **ppEnum);
++
++    HRESULT (STDMETHODCALLTYPE *FindFilterByName)(
++        IFilterGraph2* This,
++        LPCWSTR pName,
++        IBaseFilter **ppFilter);
++
++    HRESULT (STDMETHODCALLTYPE *ConnectDirect)(
++        IFilterGraph2* This,
++        IPin *ppinOut,
++        IPin *ppinIn,
++        const AM_MEDIA_TYPE *pmt);
++
++    HRESULT (STDMETHODCALLTYPE *Reconnect)(
++        IFilterGraph2* This,
++        IPin *ppin);
++
++    HRESULT (STDMETHODCALLTYPE *Disconnect)(
++        IFilterGraph2* This,
++        IPin *ppin);
++
++    HRESULT (STDMETHODCALLTYPE *SetDefaultSyncSource)(
++        IFilterGraph2* This);
++
++    /*** IGraphBuilder methods ***/
++    HRESULT (STDMETHODCALLTYPE *Connect)(
++        IFilterGraph2* This,
++        IPin *ppinOut,
++        IPin *ppinIn);
++
++    HRESULT (STDMETHODCALLTYPE *Render)(
++        IFilterGraph2* This,
++        IPin *ppinOut);
++
++    HRESULT (STDMETHODCALLTYPE *RenderFile)(
++        IFilterGraph2* This,
++        LPCWSTR lpcwstrFile,
++        LPCWSTR lpcwstrPlayList);
++
++    HRESULT (STDMETHODCALLTYPE *AddSourceFilter)(
++        IFilterGraph2* This,
++        LPCWSTR lpcwstrFileName,
++        LPCWSTR lpcwstrFilterName,
++        IBaseFilter **ppFilter);
++
++    HRESULT (STDMETHODCALLTYPE *SetLogFile)(
++        IFilterGraph2* This,
++        DWORD_PTR hFile);
++
++    HRESULT (STDMETHODCALLTYPE *Abort)(
++        IFilterGraph2* This);
++
++    HRESULT (STDMETHODCALLTYPE *ShouldOperationContinue)(
++        IFilterGraph2* This);
++
++    /*** IFilterGraph2 methods ***/
++    HRESULT (STDMETHODCALLTYPE *AddSourceFilterForMoniker)(
++        IFilterGraph2* This,
++        IMoniker *pMoniker,
++        IBindCtx *pCtx,
++        LPCWSTR lpcwstrFilterName,
++        IBaseFilter **ppFilter);
+ 
+     HRESULT (STDMETHODCALLTYPE *ReconnectEx)(
+         IFilterGraph2* This,
+@@ -8511,6 +9494,150 @@ void __RPC_STUB IResourceManager_ReleaseFocus_Stub(
+ 
+ #endif  /* __IResourceManager_INTERFACE_DEFINED__ */
+ 
++typedef enum AM_STREAM_INFO_FLAGS {
++    AM_STREAM_INFO_START_DEFINED = 0x1,
++    AM_STREAM_INFO_STOP_DEFINED = 0x2,
++    AM_STREAM_INFO_DISCARDING = 0x4,
++    AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
++} AM_STREAM_INFO_FLAGS;
++typedef struct AM_STREAM_INFO {
++    REFERENCE_TIME tStart;
++    REFERENCE_TIME tStop;
++    DWORD dwStartCookie;
++    DWORD dwStopCookie;
++    DWORD dwFlags;
++} AM_STREAM_INFO;
++/*****************************************************************************
++ * IAMStreamControl interface
++ */
++#ifndef __IAMStreamControl_INTERFACE_DEFINED__
++#define __IAMStreamControl_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("36b73881-c2c8-11cf-8b46-00805f6cef60")
++IAMStreamControl : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE StartAt(
++        const REFERENCE_TIME *ptStart,
++        DWORD dwCookie) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE StopAt(
++        const REFERENCE_TIME *ptStop,
++        WINBOOL bSendExtra,
++        DWORD dwCookie) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetInfo(
++        AM_STREAM_INFO *pInfo) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IAMStreamControl, 0x36b73881, 0xc2c8, 0x11cf, 0x8b,0x46, 0x00,0x80,0x5f,0x6c,0xef,0x60)
++#endif
++#else
++typedef struct IAMStreamControlVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IAMStreamControl* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IAMStreamControl* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IAMStreamControl* This);
++
++    /*** IAMStreamControl methods ***/
++    HRESULT (STDMETHODCALLTYPE *StartAt)(
++        IAMStreamControl* This,
++        const REFERENCE_TIME *ptStart,
++        DWORD dwCookie);
++
++    HRESULT (STDMETHODCALLTYPE *StopAt)(
++        IAMStreamControl* This,
++        const REFERENCE_TIME *ptStop,
++        WINBOOL bSendExtra,
++        DWORD dwCookie);
++
++    HRESULT (STDMETHODCALLTYPE *GetInfo)(
++        IAMStreamControl* This,
++        AM_STREAM_INFO *pInfo);
++
++    END_INTERFACE
++} IAMStreamControlVtbl;
++interface IAMStreamControl {
++    CONST_VTBL IAMStreamControlVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This)
++/*** IAMStreamControl methods ***/
++#define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie)
++#define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie)
++#define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IAMStreamControl_QueryInterface(IAMStreamControl* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IAMStreamControl_AddRef(IAMStreamControl* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IAMStreamControl_Release(IAMStreamControl* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IAMStreamControl methods ***/
++static FORCEINLINE HRESULT IAMStreamControl_StartAt(IAMStreamControl* This,const REFERENCE_TIME *ptStart,DWORD dwCookie) {
++    return This->lpVtbl->StartAt(This,ptStart,dwCookie);
++}
++static FORCEINLINE HRESULT IAMStreamControl_StopAt(IAMStreamControl* This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) {
++    return This->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie);
++}
++static FORCEINLINE HRESULT IAMStreamControl_GetInfo(IAMStreamControl* This,AM_STREAM_INFO *pInfo) {
++    return This->lpVtbl->GetInfo(This,pInfo);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IAMStreamControl_StartAt_Proxy(
++    IAMStreamControl* This,
++    const REFERENCE_TIME *ptStart,
++    DWORD dwCookie);
++void __RPC_STUB IAMStreamControl_StartAt_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IAMStreamControl_StopAt_Proxy(
++    IAMStreamControl* This,
++    const REFERENCE_TIME *ptStop,
++    WINBOOL bSendExtra,
++    DWORD dwCookie);
++void __RPC_STUB IAMStreamControl_StopAt_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IAMStreamControl_GetInfo_Proxy(
++    IAMStreamControl* This,
++    AM_STREAM_INFO *pInfo);
++void __RPC_STUB IAMStreamControl_GetInfo_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IAMStreamControl_INTERFACE_DEFINED__ */
++
+ #ifndef _IKsPropertySet_
+ #define _IKsPropertySet_
+ #define KSPROPERTY_SUPPORT_GET  1
+@@ -8603,80 +9730,334 @@ interface IKsPropertySet {
+ #ifdef COBJMACROS
+ #ifndef WIDL_C_INLINE_WRAPPERS
+ /*** IUnknown methods ***/
+-#define IKsPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+-#define IKsPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
+-#define IKsPropertySet_Release(This) (This)->lpVtbl->Release(This)
+-/*** IKsPropertySet methods ***/
+-#define IKsPropertySet_Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) (This)->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData)
+-#define IKsPropertySet_Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) (This)->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned)
+-#define IKsPropertySet_QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) (This)->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport)
++#define IKsPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IKsPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IKsPropertySet_Release(This) (This)->lpVtbl->Release(This)
++/*** IKsPropertySet methods ***/
++#define IKsPropertySet_Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData) (This)->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData)
++#define IKsPropertySet_Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned) (This)->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned)
++#define IKsPropertySet_QuerySupported(This,guidPropSet,dwPropID,pTypeSupport) (This)->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IKsPropertySet_QueryInterface(IKsPropertySet* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IKsPropertySet_AddRef(IKsPropertySet* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IKsPropertySet_Release(IKsPropertySet* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IKsPropertySet methods ***/
++static FORCEINLINE HRESULT IKsPropertySet_Set(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData) {
++    return This->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData);
++}
++static FORCEINLINE HRESULT IKsPropertySet_Get(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned) {
++    return This->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned);
++}
++static FORCEINLINE HRESULT IKsPropertySet_QuerySupported(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport) {
++    return This->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IKsPropertySet_Set_Proxy(
++    IKsPropertySet* This,
++    REFGUID guidPropSet,
++    DWORD dwPropID,
++    LPVOID pInstanceData,
++    DWORD cbInstanceData,
++    LPVOID pPropData,
++    DWORD cbPropData);
++void __RPC_STUB IKsPropertySet_Set_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IKsPropertySet_Get_Proxy(
++    IKsPropertySet* This,
++    REFGUID guidPropSet,
++    DWORD dwPropID,
++    LPVOID pInstanceData,
++    DWORD cbInstanceData,
++    LPVOID pPropData,
++    DWORD cbPropData,
++    DWORD *pcbReturned);
++void __RPC_STUB IKsPropertySet_Get_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IKsPropertySet_QuerySupported_Proxy(
++    IKsPropertySet* This,
++    REFGUID guidPropSet,
++    DWORD dwPropID,
++    DWORD *pTypeSupport);
++void __RPC_STUB IKsPropertySet_QuerySupported_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IKsPropertySet_INTERFACE_DEFINED__ */
++
++#endif /* _IKsPropertySet_ */
++/*****************************************************************************
++ * IMediaPropertyBag interface
++ */
++#ifndef __IMediaPropertyBag_INTERFACE_DEFINED__
++#define __IMediaPropertyBag_INTERFACE_DEFINED__
++
++typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
++DEFINE_GUID(IID_IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("6025a880-c0d5-11d0-bd4e-00a0c911ce86")
++IMediaPropertyBag : public IPropertyBag
++{
++    virtual HRESULT STDMETHODCALLTYPE EnumProperty(
++        ULONG iProperty,
++        VARIANT *pvarPropertyName,
++        VARIANT *pvarPropertyValue) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IMediaPropertyBag, 0x6025a880, 0xc0d5, 0x11d0, 0xbd,0x4e, 0x00,0xa0,0xc9,0x11,0xce,0x86)
++#endif
++#else
++typedef struct IMediaPropertyBagVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IMediaPropertyBag* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IMediaPropertyBag* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IMediaPropertyBag* This);
++
++    /*** IPropertyBag methods ***/
++    HRESULT (STDMETHODCALLTYPE *Read)(
++        IMediaPropertyBag* This,
++        LPCOLESTR pszPropName,
++        VARIANT *pVar,
++        IErrorLog *pErrorLog);
++
++    HRESULT (STDMETHODCALLTYPE *Write)(
++        IMediaPropertyBag* This,
++        LPCOLESTR pszPropName,
++        VARIANT *pVar);
++
++    /*** IMediaPropertyBag methods ***/
++    HRESULT (STDMETHODCALLTYPE *EnumProperty)(
++        IMediaPropertyBag* This,
++        ULONG iProperty,
++        VARIANT *pvarPropertyName,
++        VARIANT *pvarPropertyValue);
++
++    END_INTERFACE
++} IMediaPropertyBagVtbl;
++interface IMediaPropertyBag {
++    CONST_VTBL IMediaPropertyBagVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
++/*** IPropertyBag methods ***/
++#define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
++#define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
++/*** IMediaPropertyBag methods ***/
++#define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IMediaPropertyBag_QueryInterface(IMediaPropertyBag* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IMediaPropertyBag_AddRef(IMediaPropertyBag* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IMediaPropertyBag_Release(IMediaPropertyBag* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IPropertyBag methods ***/
++static FORCEINLINE HRESULT IMediaPropertyBag_Read(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog) {
++    return This->lpVtbl->Read(This,pszPropName,pVar,pErrorLog);
++}
++static FORCEINLINE HRESULT IMediaPropertyBag_Write(IMediaPropertyBag* This,LPCOLESTR pszPropName,VARIANT *pVar) {
++    return This->lpVtbl->Write(This,pszPropName,pVar);
++}
++/*** IMediaPropertyBag methods ***/
++static FORCEINLINE HRESULT IMediaPropertyBag_EnumProperty(IMediaPropertyBag* This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) {
++    return This->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IMediaPropertyBag_EnumProperty_Proxy(
++    IMediaPropertyBag* This,
++    ULONG iProperty,
++    VARIANT *pvarPropertyName,
++    VARIANT *pvarPropertyValue);
++void __RPC_STUB IMediaPropertyBag_EnumProperty_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IMediaPropertyBag_INTERFACE_DEFINED__ */
++
++/*****************************************************************************
++ * IPersistMediaPropertyBag interface
++ */
++#ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__
++#define __IPersistMediaPropertyBag_INTERFACE_DEFINED__
++
++typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
++DEFINE_GUID(IID_IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("5738e040-b67f-11d0-bd4d-00a0c911ce86")
++IPersistMediaPropertyBag : public IPersist
++{
++    virtual HRESULT STDMETHODCALLTYPE InitNew(
++        ) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Load(
++        IMediaPropertyBag *pPropBag,
++        IErrorLog *pErrorLog) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE Save(
++        IMediaPropertyBag *pPropBag,
++        WINBOOL fClearDirty,
++        WINBOOL fSaveAllProperties) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IPersistMediaPropertyBag, 0x5738e040, 0xb67f, 0x11d0, 0xbd,0x4d, 0x00,0xa0,0xc9,0x11,0xce,0x86)
++#endif
++#else
++typedef struct IPersistMediaPropertyBagVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IPersistMediaPropertyBag* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IPersistMediaPropertyBag* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IPersistMediaPropertyBag* This);
++
++    /*** IPersist methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetClassID)(
++        IPersistMediaPropertyBag* This,
++        CLSID *pClassID);
++
++    /*** IPersistMediaPropertyBag methods ***/
++    HRESULT (STDMETHODCALLTYPE *InitNew)(
++        IPersistMediaPropertyBag* This);
++
++    HRESULT (STDMETHODCALLTYPE *Load)(
++        IPersistMediaPropertyBag* This,
++        IMediaPropertyBag *pPropBag,
++        IErrorLog *pErrorLog);
++
++    HRESULT (STDMETHODCALLTYPE *Save)(
++        IPersistMediaPropertyBag* This,
++        IMediaPropertyBag *pPropBag,
++        WINBOOL fClearDirty,
++        WINBOOL fSaveAllProperties);
++
++    END_INTERFACE
++} IPersistMediaPropertyBagVtbl;
++interface IPersistMediaPropertyBag {
++    CONST_VTBL IPersistMediaPropertyBagVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
++/*** IPersist methods ***/
++#define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
++/*** IPersistMediaPropertyBag methods ***/
++#define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This)
++#define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog)
++#define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties)
+ #else
+ /*** IUnknown methods ***/
+-static FORCEINLINE HRESULT IKsPropertySet_QueryInterface(IKsPropertySet* This,REFIID riid,void **ppvObject) {
++static FORCEINLINE HRESULT IPersistMediaPropertyBag_QueryInterface(IPersistMediaPropertyBag* This,REFIID riid,void **ppvObject) {
+     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+ }
+-static FORCEINLINE ULONG IKsPropertySet_AddRef(IKsPropertySet* This) {
++static FORCEINLINE ULONG IPersistMediaPropertyBag_AddRef(IPersistMediaPropertyBag* This) {
+     return This->lpVtbl->AddRef(This);
+ }
+-static FORCEINLINE ULONG IKsPropertySet_Release(IKsPropertySet* This) {
++static FORCEINLINE ULONG IPersistMediaPropertyBag_Release(IPersistMediaPropertyBag* This) {
+     return This->lpVtbl->Release(This);
+ }
+-/*** IKsPropertySet methods ***/
+-static FORCEINLINE HRESULT IKsPropertySet_Set(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData) {
+-    return This->lpVtbl->Set(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData);
++/*** IPersist methods ***/
++static FORCEINLINE HRESULT IPersistMediaPropertyBag_GetClassID(IPersistMediaPropertyBag* This,CLSID *pClassID) {
++    return This->lpVtbl->GetClassID(This,pClassID);
+ }
+-static FORCEINLINE HRESULT IKsPropertySet_Get(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,LPVOID pInstanceData,DWORD cbInstanceData,LPVOID pPropData,DWORD cbPropData,DWORD *pcbReturned) {
+-    return This->lpVtbl->Get(This,guidPropSet,dwPropID,pInstanceData,cbInstanceData,pPropData,cbPropData,pcbReturned);
++/*** IPersistMediaPropertyBag methods ***/
++static FORCEINLINE HRESULT IPersistMediaPropertyBag_InitNew(IPersistMediaPropertyBag* This) {
++    return This->lpVtbl->InitNew(This);
+ }
+-static FORCEINLINE HRESULT IKsPropertySet_QuerySupported(IKsPropertySet* This,REFGUID guidPropSet,DWORD dwPropID,DWORD *pTypeSupport) {
+-    return This->lpVtbl->QuerySupported(This,guidPropSet,dwPropID,pTypeSupport);
++static FORCEINLINE HRESULT IPersistMediaPropertyBag_Load(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) {
++    return This->lpVtbl->Load(This,pPropBag,pErrorLog);
++}
++static FORCEINLINE HRESULT IPersistMediaPropertyBag_Save(IPersistMediaPropertyBag* This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties) {
++    return This->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties);
+ }
+ #endif
+ #endif
+ 
+ #endif
+ 
+-HRESULT STDMETHODCALLTYPE IKsPropertySet_Set_Proxy(
+-    IKsPropertySet* This,
+-    REFGUID guidPropSet,
+-    DWORD dwPropID,
+-    LPVOID pInstanceData,
+-    DWORD cbInstanceData,
+-    LPVOID pPropData,
+-    DWORD cbPropData);
+-void __RPC_STUB IKsPropertySet_Set_Stub(
++HRESULT STDMETHODCALLTYPE IPersistMediaPropertyBag_InitNew_Proxy(
++    IPersistMediaPropertyBag* This);
++void __RPC_STUB IPersistMediaPropertyBag_InitNew_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
+-HRESULT STDMETHODCALLTYPE IKsPropertySet_Get_Proxy(
+-    IKsPropertySet* This,
+-    REFGUID guidPropSet,
+-    DWORD dwPropID,
+-    LPVOID pInstanceData,
+-    DWORD cbInstanceData,
+-    LPVOID pPropData,
+-    DWORD cbPropData,
+-    DWORD *pcbReturned);
+-void __RPC_STUB IKsPropertySet_Get_Stub(
++HRESULT STDMETHODCALLTYPE IPersistMediaPropertyBag_Load_Proxy(
++    IPersistMediaPropertyBag* This,
++    IMediaPropertyBag *pPropBag,
++    IErrorLog *pErrorLog);
++void __RPC_STUB IPersistMediaPropertyBag_Load_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
+-HRESULT STDMETHODCALLTYPE IKsPropertySet_QuerySupported_Proxy(
+-    IKsPropertySet* This,
+-    REFGUID guidPropSet,
+-    DWORD dwPropID,
+-    DWORD *pTypeSupport);
+-void __RPC_STUB IKsPropertySet_QuerySupported_Stub(
++HRESULT STDMETHODCALLTYPE IPersistMediaPropertyBag_Save_Proxy(
++    IPersistMediaPropertyBag* This,
++    IMediaPropertyBag *pPropBag,
++    WINBOOL fClearDirty,
++    WINBOOL fSaveAllProperties);
++void __RPC_STUB IPersistMediaPropertyBag_Save_Stub(
+     IRpcStubBuffer* This,
+     IRpcChannelBuffer* pRpcChannelBuffer,
+     PRPC_MESSAGE pRpcMessage,
+     DWORD* pdwStubPhase);
+ 
+-#endif  /* __IKsPropertySet_INTERFACE_DEFINED__ */
++#endif  /* __IPersistMediaPropertyBag_INTERFACE_DEFINED__ */
+ 
+-#endif /* _IKsPropertySet_ */
+ /*****************************************************************************
+  * ISeekingPassThru interface
+  */
+@@ -8963,16 +10344,6 @@ typedef struct IReferenceClock2 IReferenceClock2;
+ typedef struct IDistributorNotify IDistributorNotify;
+ #endif
+ 
+-#ifndef __IAMStreamControl_FWD_DEFINED__
+-#define __IAMStreamControl_FWD_DEFINED__
+-typedef struct IAMStreamControl IAMStreamControl;
+-#endif
+-
+-#ifndef __IConfigAviMux_FWD_DEFINED__
+-#define __IConfigAviMux_FWD_DEFINED__
+-typedef struct IConfigAviMux IConfigAviMux;
+-#endif
+-
+ #ifndef __IAMVideoCompression_FWD_DEFINED__
+ #define __IAMVideoCompression_FWD_DEFINED__
+ typedef struct IAMVideoCompression IAMVideoCompression;
+@@ -9058,16 +10429,6 @@ typedef struct IAMTVAudioNotification IAMTVAudioNotification;
+ typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
+ #endif
+ 
+-#ifndef __IMediaPropertyBag_FWD_DEFINED__
+-#define __IMediaPropertyBag_FWD_DEFINED__
+-typedef struct IMediaPropertyBag IMediaPropertyBag;
+-#endif
+-
+-#ifndef __IPersistMediaPropertyBag_FWD_DEFINED__
+-#define __IPersistMediaPropertyBag_FWD_DEFINED__
+-typedef struct IPersistMediaPropertyBag IPersistMediaPropertyBag;
+-#endif
+-
+ #ifndef __IAMPhysicalPinInfo_FWD_DEFINED__
+ #define __IAMPhysicalPinInfo_FWD_DEFINED__
+ typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
+@@ -9218,11 +10579,6 @@ typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
+ typedef struct IRegisterServiceProvider IRegisterServiceProvider;
+ #endif
+ 
+-#ifndef __IAMClockSlave_FWD_DEFINED__
+-#define __IAMClockSlave_FWD_DEFINED__
+-typedef struct IAMClockSlave IAMClockSlave;
+-#endif
+-
+ #ifndef __ICodecAPI_FWD_DEFINED__
+ #define __ICodecAPI_FWD_DEFINED__
+ typedef struct ICodecAPI ICodecAPI;
+@@ -9248,11 +10604,6 @@ typedef struct IVideoEncoder IVideoEncoder;
+ typedef struct IAMDecoderCaps IAMDecoderCaps;
+ #endif
+ 
+-#ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__
+-#define __IAMCertifiedOutputProtection_FWD_DEFINED__
+-typedef struct IAMCertifiedOutputProtection IAMCertifiedOutputProtection;
+-#endif
+-
+ #ifndef __IDvdControl_FWD_DEFINED__
+ #define __IDvdControl_FWD_DEFINED__
+ typedef struct IDvdControl IDvdControl;
+@@ -9503,158 +10854,6 @@ typedef struct IAMPluginControl IAMPluginControl;
+   void __RPC_STUB IDistributorNotify_NotifyGraphChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+ #endif
+ 
+-  typedef enum __MIDL___MIDL_itf_strmif_0160_0001 {
+-    AM_STREAM_INFO_START_DEFINED = 0x1,AM_STREAM_INFO_STOP_DEFINED = 0x2,AM_STREAM_INFO_DISCARDING = 0x4,AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10
+-  } AM_STREAM_INFO_FLAGS;
+-
+-  typedef struct __MIDL___MIDL_itf_strmif_0160_0002 {
+-    REFERENCE_TIME tStart;
+-    REFERENCE_TIME tStop;
+-    DWORD dwStartCookie;
+-    DWORD dwStopCookie;
+-    DWORD dwFlags;
+-  } AM_STREAM_INFO;
+-
+-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0160_v0_0_c_ifspec;
+-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0160_v0_0_s_ifspec;
+-#ifndef __IAMStreamControl_INTERFACE_DEFINED__
+-#define __IAMStreamControl_INTERFACE_DEFINED__
+-  EXTERN_C const IID IID_IAMStreamControl;
+-#if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct IAMStreamControl : public IUnknown {
+-  public:
+-    virtual HRESULT WINAPI StartAt(const REFERENCE_TIME *ptStart,DWORD dwCookie) = 0;
+-    virtual HRESULT WINAPI StopAt(const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) = 0;
+-    virtual HRESULT WINAPI GetInfo(AM_STREAM_INFO *pInfo) = 0;
+-  };
+-#else
+-  typedef struct IAMStreamControlVtbl {
+-    BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(IAMStreamControl *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(IAMStreamControl *This);
+-      ULONG (WINAPI *Release)(IAMStreamControl *This);
+-      HRESULT (WINAPI *StartAt)(IAMStreamControl *This,const REFERENCE_TIME *ptStart,DWORD dwCookie);
+-      HRESULT (WINAPI *StopAt)(IAMStreamControl *This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie);
+-      HRESULT (WINAPI *GetInfo)(IAMStreamControl *This,AM_STREAM_INFO *pInfo);
+-    END_INTERFACE
+-  } IAMStreamControlVtbl;
+-  struct IAMStreamControl {
+-    CONST_VTBL struct IAMStreamControlVtbl *lpVtbl;
+-  };
+-#ifdef COBJMACROS
+-#define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+-#define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+-#define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This)
+-#define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie)
+-#define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie)
+-#define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)
+-#endif
+-#endif
+-  HRESULT WINAPI IAMStreamControl_StartAt_Proxy(IAMStreamControl *This,const REFERENCE_TIME *ptStart,DWORD dwCookie);
+-  void __RPC_STUB IAMStreamControl_StartAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IAMStreamControl_StopAt_Proxy(IAMStreamControl *This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie);
+-  void __RPC_STUB IAMStreamControl_StopAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IAMStreamControl_GetInfo_Proxy(IAMStreamControl *This,AM_STREAM_INFO *pInfo);
+-  void __RPC_STUB IAMStreamControl_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-#endif
+-
+-#ifndef __IConfigInterleaving_INTERFACE_DEFINED__
+-#define __IConfigInterleaving_INTERFACE_DEFINED__
+-  typedef enum __MIDL_IConfigInterleaving_0001 {
+-    INTERLEAVE_NONE = 0,
+-    INTERLEAVE_CAPTURE,INTERLEAVE_FULL,INTERLEAVE_NONE_BUFFERED
+-  } InterleavingMode;
+-
+-  EXTERN_C const IID IID_IConfigInterleaving;
+-#if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct IConfigInterleaving : public IUnknown {
+-  public:
+-    virtual HRESULT WINAPI put_Mode(InterleavingMode mode) = 0;
+-    virtual HRESULT WINAPI get_Mode(InterleavingMode *pMode) = 0;
+-    virtual HRESULT WINAPI put_Interleaving(const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) = 0;
+-    virtual HRESULT WINAPI get_Interleaving(REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) = 0;
+-  };
+-#else
+-  typedef struct IConfigInterleavingVtbl {
+-    BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(IConfigInterleaving *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(IConfigInterleaving *This);
+-      ULONG (WINAPI *Release)(IConfigInterleaving *This);
+-      HRESULT (WINAPI *put_Mode)(IConfigInterleaving *This,InterleavingMode mode);
+-      HRESULT (WINAPI *get_Mode)(IConfigInterleaving *This,InterleavingMode *pMode);
+-      HRESULT (WINAPI *put_Interleaving)(IConfigInterleaving *This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll);
+-      HRESULT (WINAPI *get_Interleaving)(IConfigInterleaving *This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll);
+-    END_INTERFACE
+-  } IConfigInterleavingVtbl;
+-  struct IConfigInterleaving {
+-    CONST_VTBL struct IConfigInterleavingVtbl *lpVtbl;
+-  };
+-#ifdef COBJMACROS
+-#define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+-#define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)
+-#define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)
+-#define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
+-#define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)
+-#define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)
+-#define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)
+-#endif
+-#endif
+-  HRESULT WINAPI IConfigInterleaving_put_Mode_Proxy(IConfigInterleaving *This,InterleavingMode mode);
+-  void __RPC_STUB IConfigInterleaving_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IConfigInterleaving_get_Mode_Proxy(IConfigInterleaving *This,InterleavingMode *pMode);
+-  void __RPC_STUB IConfigInterleaving_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IConfigInterleaving_put_Interleaving_Proxy(IConfigInterleaving *This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll);
+-  void __RPC_STUB IConfigInterleaving_put_Interleaving_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IConfigInterleaving_get_Interleaving_Proxy(IConfigInterleaving *This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll);
+-  void __RPC_STUB IConfigInterleaving_get_Interleaving_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-#endif
+-
+-#ifndef __IConfigAviMux_INTERFACE_DEFINED__
+-#define __IConfigAviMux_INTERFACE_DEFINED__
+-  EXTERN_C const IID IID_IConfigAviMux;
+-#if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct IConfigAviMux : public IUnknown {
+-  public:
+-    virtual HRESULT WINAPI SetMasterStream(LONG iStream) = 0;
+-    virtual HRESULT WINAPI GetMasterStream(LONG *pStream) = 0;
+-    virtual HRESULT WINAPI SetOutputCompatibilityIndex(WINBOOL fOldIndex) = 0;
+-    virtual HRESULT WINAPI GetOutputCompatibilityIndex(WINBOOL *pfOldIndex) = 0;
+-  };
+-#else
+-  typedef struct IConfigAviMuxVtbl {
+-    BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(IConfigAviMux *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(IConfigAviMux *This);
+-      ULONG (WINAPI *Release)(IConfigAviMux *This);
+-      HRESULT (WINAPI *SetMasterStream)(IConfigAviMux *This,LONG iStream);
+-      HRESULT (WINAPI *GetMasterStream)(IConfigAviMux *This,LONG *pStream);
+-      HRESULT (WINAPI *SetOutputCompatibilityIndex)(IConfigAviMux *This,WINBOOL fOldIndex);
+-      HRESULT (WINAPI *GetOutputCompatibilityIndex)(IConfigAviMux *This,WINBOOL *pfOldIndex);
+-    END_INTERFACE
+-  } IConfigAviMuxVtbl;
+-  struct IConfigAviMux {
+-    CONST_VTBL struct IConfigAviMuxVtbl *lpVtbl;
+-  };
+-#ifdef COBJMACROS
+-#define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+-#define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)
+-#define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)
+-#define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)
+-#define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)
+-#define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)
+-#define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)
+-#endif
+-#endif
+-  HRESULT WINAPI IConfigAviMux_SetMasterStream_Proxy(IConfigAviMux *This,LONG iStream);
+-  void __RPC_STUB IConfigAviMux_SetMasterStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IConfigAviMux_GetMasterStream_Proxy(IConfigAviMux *This,LONG *pStream);
+-  void __RPC_STUB IConfigAviMux_GetMasterStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IConfigAviMux_SetOutputCompatibilityIndex_Proxy(IConfigAviMux *This,WINBOOL fOldIndex);
+-  void __RPC_STUB IConfigAviMux_SetOutputCompatibilityIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IConfigAviMux_GetOutputCompatibilityIndex_Proxy(IConfigAviMux *This,WINBOOL *pfOldIndex);
+-  void __RPC_STUB IConfigAviMux_GetOutputCompatibilityIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-#endif
+-
+   typedef enum __MIDL___MIDL_itf_strmif_0167_0001 {
+     CompressionCaps_CanQuality = 0x1,CompressionCaps_CanCrunch = 0x2,CompressionCaps_CanKeyFrame = 0x4,CompressionCaps_CanBFrame = 0x8,
+     CompressionCaps_CanWindow = 0x10
+@@ -10797,90 +11996,6 @@ typedef struct IAMPluginControl IAMPluginControl;
+     AMPROPERTY_PIN_CATEGORY = 0,AMPROPERTY_PIN_MEDIUM = AMPROPERTY_PIN_CATEGORY + 1
+   } AMPROPERTY_PIN;
+ 
+-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0186_v0_0_c_ifspec;
+-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0186_v0_0_s_ifspec;
+-#ifndef __IMediaPropertyBag_INTERFACE_DEFINED__
+-#define __IMediaPropertyBag_INTERFACE_DEFINED__
+-  typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;
+-
+-  EXTERN_C const IID IID_IMediaPropertyBag;
+-#if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct IMediaPropertyBag : public IPropertyBag {
+-  public:
+-    virtual HRESULT WINAPI EnumProperty(ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) = 0;
+-  };
+-#else
+-  typedef struct IMediaPropertyBagVtbl {
+-    BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(IMediaPropertyBag *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(IMediaPropertyBag *This);
+-      ULONG (WINAPI *Release)(IMediaPropertyBag *This);
+-      HRESULT (WINAPI *Read)(IMediaPropertyBag *This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog);
+-      HRESULT (WINAPI *Write)(IMediaPropertyBag *This,LPCOLESTR pszPropName,VARIANT *pVar);
+-      HRESULT (WINAPI *EnumProperty)(IMediaPropertyBag *This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue);
+-    END_INTERFACE
+-  } IMediaPropertyBagVtbl;
+-  struct IMediaPropertyBag {
+-    CONST_VTBL struct IMediaPropertyBagVtbl *lpVtbl;
+-  };
+-#ifdef COBJMACROS
+-#define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+-#define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
+-#define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
+-#define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)
+-#define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)
+-#define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue)
+-#endif
+-#endif
+-  HRESULT WINAPI IMediaPropertyBag_EnumProperty_Proxy(IMediaPropertyBag *This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue);
+-  void __RPC_STUB IMediaPropertyBag_EnumProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-#endif
+-
+-#ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__
+-#define __IPersistMediaPropertyBag_INTERFACE_DEFINED__
+-  typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;
+-
+-  EXTERN_C const IID IID_IPersistMediaPropertyBag;
+-#if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct IPersistMediaPropertyBag : public IPersist {
+-  public:
+-    virtual HRESULT WINAPI InitNew(void) = 0;
+-    virtual HRESULT WINAPI Load(IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) = 0;
+-    virtual HRESULT WINAPI Save(IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties) = 0;
+-  };
+-#else
+-  typedef struct IPersistMediaPropertyBagVtbl {
+-    BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(IPersistMediaPropertyBag *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(IPersistMediaPropertyBag *This);
+-      ULONG (WINAPI *Release)(IPersistMediaPropertyBag *This);
+-      HRESULT (WINAPI *GetClassID)(IPersistMediaPropertyBag *This,CLSID *pClassID);
+-      HRESULT (WINAPI *InitNew)(IPersistMediaPropertyBag *This);
+-      HRESULT (WINAPI *Load)(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog);
+-      HRESULT (WINAPI *Save)(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties);
+-    END_INTERFACE
+-  } IPersistMediaPropertyBagVtbl;
+-  struct IPersistMediaPropertyBag {
+-    CONST_VTBL struct IPersistMediaPropertyBagVtbl *lpVtbl;
+-  };
+-#ifdef COBJMACROS
+-#define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+-#define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)
+-#define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)
+-#define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
+-#define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This)
+-#define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog)
+-#define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties)
+-#endif
+-#endif
+-  HRESULT WINAPI IPersistMediaPropertyBag_InitNew_Proxy(IPersistMediaPropertyBag *This);
+-  void __RPC_STUB IPersistMediaPropertyBag_InitNew_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IPersistMediaPropertyBag_Load_Proxy(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog);
+-  void __RPC_STUB IPersistMediaPropertyBag_Load_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IPersistMediaPropertyBag_Save_Proxy(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties);
+-  void __RPC_STUB IPersistMediaPropertyBag_Save_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-#endif
+-
+ #ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__
+ #define __IAMPhysicalPinInfo_INTERFACE_DEFINED__
+   EXTERN_C const IID IID_IAMPhysicalPinInfo;
+@@ -12381,42 +13496,6 @@ typedef struct IAMPluginControl IAMPluginControl;
+   void __RPC_STUB IRegisterServiceProvider_RegisterService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+ #endif
+ 
+-#ifndef __IAMClockSlave_INTERFACE_DEFINED__
+-#define __IAMClockSlave_INTERFACE_DEFINED__
+-  EXTERN_C const IID IID_IAMClockSlave;
+-#if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct IAMClockSlave : public IUnknown {
+-  public:
+-    virtual HRESULT WINAPI SetErrorTolerance(DWORD dwTolerance) = 0;
+-    virtual HRESULT WINAPI GetErrorTolerance(DWORD *pdwTolerance) = 0;
+-  };
+-#else
+-  typedef struct IAMClockSlaveVtbl {
+-    BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(IAMClockSlave *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(IAMClockSlave *This);
+-      ULONG (WINAPI *Release)(IAMClockSlave *This);
+-      HRESULT (WINAPI *SetErrorTolerance)(IAMClockSlave *This,DWORD dwTolerance);
+-      HRESULT (WINAPI *GetErrorTolerance)(IAMClockSlave *This,DWORD *pdwTolerance);
+-    END_INTERFACE
+-  } IAMClockSlaveVtbl;
+-  struct IAMClockSlave {
+-    CONST_VTBL struct IAMClockSlaveVtbl *lpVtbl;
+-  };
+-#ifdef COBJMACROS
+-#define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+-#define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)
+-#define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)
+-#define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)
+-#define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)
+-#endif
+-#endif
+-  HRESULT WINAPI IAMClockSlave_SetErrorTolerance_Proxy(IAMClockSlave *This,DWORD dwTolerance);
+-  void __RPC_STUB IAMClockSlave_SetErrorTolerance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IAMClockSlave_GetErrorTolerance_Proxy(IAMClockSlave *This,DWORD *pdwTolerance);
+-  void __RPC_STUB IAMClockSlave_GetErrorTolerance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-#endif
+-
+ #ifdef __cplusplus
+ #ifndef _IAMFilterGraphCallback_
+ #define _IAMFilterGraphCallback_
+@@ -12719,86 +13798,6 @@ typedef struct IAMPluginControl IAMPluginControl;
+   void __RPC_STUB IAMDecoderCaps_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+ #endif
+ 
+-  typedef struct _AMCOPPSignature {
+-    BYTE Signature[256];
+-  } AMCOPPSignature;
+-
+-  typedef struct _AMCOPPCommand {
+-    GUID macKDI;
+-    GUID guidCommandID;
+-    DWORD dwSequence;
+-    DWORD cbSizeData;
+-    BYTE CommandData[4056];
+-  } AMCOPPCommand;
+-
+-  typedef struct _AMCOPPCommand *LPAMCOPPCommand;
+-
+-  typedef struct _AMCOPPStatusInput {
+-    GUID rApp;
+-    GUID guidStatusRequestID;
+-    DWORD dwSequence;
+-    DWORD cbSizeData;
+-    BYTE StatusData[4056];
+-  } AMCOPPStatusInput;
+-
+-  typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;
+-
+-  typedef struct _AMCOPPStatusOutput {
+-    GUID macKDI;
+-    DWORD cbSizeData;
+-    BYTE COPPStatus[4076];
+-  } AMCOPPStatusOutput;
+-
+-  typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;
+-
+-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0375_v0_0_c_ifspec;
+-  extern RPC_IF_HANDLE __MIDL_itf_strmif_0375_v0_0_s_ifspec;
+-#ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
+-#define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__
+-  EXTERN_C const IID IID_IAMCertifiedOutputProtection;
+-#if defined(__cplusplus) && !defined(CINTERFACE)
+-  struct IAMCertifiedOutputProtection : public IUnknown {
+-  public:
+-    virtual HRESULT WINAPI KeyExchange(GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) = 0;
+-    virtual HRESULT WINAPI SessionSequenceStart(AMCOPPSignature *pSig) = 0;
+-    virtual HRESULT WINAPI ProtectionCommand(const AMCOPPCommand *cmd) = 0;
+-    virtual HRESULT WINAPI ProtectionStatus(const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) = 0;
+-  };
+-#else
+-  typedef struct IAMCertifiedOutputProtectionVtbl {
+-    BEGIN_INTERFACE
+-      HRESULT (WINAPI *QueryInterface)(IAMCertifiedOutputProtection *This,REFIID riid,void **ppvObject);
+-      ULONG (WINAPI *AddRef)(IAMCertifiedOutputProtection *This);
+-      ULONG (WINAPI *Release)(IAMCertifiedOutputProtection *This);
+-      HRESULT (WINAPI *KeyExchange)(IAMCertifiedOutputProtection *This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH);
+-      HRESULT (WINAPI *SessionSequenceStart)(IAMCertifiedOutputProtection *This,AMCOPPSignature *pSig);
+-      HRESULT (WINAPI *ProtectionCommand)(IAMCertifiedOutputProtection *This,const AMCOPPCommand *cmd);
+-      HRESULT (WINAPI *ProtectionStatus)(IAMCertifiedOutputProtection *This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput);
+-    END_INTERFACE
+-  } IAMCertifiedOutputProtectionVtbl;
+-  struct IAMCertifiedOutputProtection {
+-    CONST_VTBL struct IAMCertifiedOutputProtectionVtbl *lpVtbl;
+-  };
+-#ifdef COBJMACROS
+-#define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+-#define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)
+-#define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)
+-#define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)
+-#define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)
+-#define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)
+-#define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)
+-#endif
+-#endif
+-  HRESULT WINAPI IAMCertifiedOutputProtection_KeyExchange_Proxy(IAMCertifiedOutputProtection *This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH);
+-  void __RPC_STUB IAMCertifiedOutputProtection_KeyExchange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IAMCertifiedOutputProtection_SessionSequenceStart_Proxy(IAMCertifiedOutputProtection *This,AMCOPPSignature *pSig);
+-  void __RPC_STUB IAMCertifiedOutputProtection_SessionSequenceStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IAMCertifiedOutputProtection_ProtectionCommand_Proxy(IAMCertifiedOutputProtection *This,const AMCOPPCommand *cmd);
+-  void __RPC_STUB IAMCertifiedOutputProtection_ProtectionCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-  HRESULT WINAPI IAMCertifiedOutputProtection_ProtectionStatus_Proxy(IAMCertifiedOutputProtection *This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput);
+-  void __RPC_STUB IAMCertifiedOutputProtection_ProtectionStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
+-#endif
+-
+ #ifdef MINGW_HAS_DDRAW_H
+ #include <ddraw.h>
+ #else
+diff --git a/mingw-w64-headers/include/strmif.idl b/mingw-w64-headers/include/strmif.idl
+index c806ec4..700440a 100644
+--- a/mingw-w64-headers/include/strmif.idl
++++ b/mingw-w64-headers/include/strmif.idl
+@@ -20,16 +20,6 @@ cpp_quote("#define __IDistributorNotify_FWD_DEFINED__")
+ cpp_quote("typedef struct IDistributorNotify IDistributorNotify;")
+ cpp_quote("#endif")
+ cpp_quote("")
+-cpp_quote("#ifndef __IAMStreamControl_FWD_DEFINED__")
+-cpp_quote("#define __IAMStreamControl_FWD_DEFINED__")
+-cpp_quote("typedef struct IAMStreamControl IAMStreamControl;")
+-cpp_quote("#endif")
+-cpp_quote("")
+-cpp_quote("#ifndef __IConfigAviMux_FWD_DEFINED__")
+-cpp_quote("#define __IConfigAviMux_FWD_DEFINED__")
+-cpp_quote("typedef struct IConfigAviMux IConfigAviMux;")
+-cpp_quote("#endif")
+-cpp_quote("")
+ cpp_quote("#ifndef __IAMVideoCompression_FWD_DEFINED__")
+ cpp_quote("#define __IAMVideoCompression_FWD_DEFINED__")
+ cpp_quote("typedef struct IAMVideoCompression IAMVideoCompression;")
+@@ -115,16 +105,6 @@ cpp_quote("#define __IAMAnalogVideoEncoder_FWD_DEFINED__")
+ cpp_quote("typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;")
+ cpp_quote("#endif")
+ cpp_quote("")
+-cpp_quote("#ifndef __IMediaPropertyBag_FWD_DEFINED__")
+-cpp_quote("#define __IMediaPropertyBag_FWD_DEFINED__")
+-cpp_quote("typedef struct IMediaPropertyBag IMediaPropertyBag;")
+-cpp_quote("#endif")
+-cpp_quote("")
+-cpp_quote("#ifndef __IPersistMediaPropertyBag_FWD_DEFINED__")
+-cpp_quote("#define __IPersistMediaPropertyBag_FWD_DEFINED__")
+-cpp_quote("typedef struct IPersistMediaPropertyBag IPersistMediaPropertyBag;")
+-cpp_quote("#endif")
+-cpp_quote("")
+ cpp_quote("#ifndef __IAMPhysicalPinInfo_FWD_DEFINED__")
+ cpp_quote("#define __IAMPhysicalPinInfo_FWD_DEFINED__")
+ cpp_quote("typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;")
+@@ -275,11 +255,6 @@ cpp_quote("#define __IRegisterServiceProvider_FWD_DEFINED__")
+ cpp_quote("typedef struct IRegisterServiceProvider IRegisterServiceProvider;")
+ cpp_quote("#endif")
+ cpp_quote("")
+-cpp_quote("#ifndef __IAMClockSlave_FWD_DEFINED__")
+-cpp_quote("#define __IAMClockSlave_FWD_DEFINED__")
+-cpp_quote("typedef struct IAMClockSlave IAMClockSlave;")
+-cpp_quote("#endif")
+-cpp_quote("")
+ cpp_quote("#ifndef __ICodecAPI_FWD_DEFINED__")
+ cpp_quote("#define __ICodecAPI_FWD_DEFINED__")
+ cpp_quote("typedef struct ICodecAPI ICodecAPI;")
+@@ -305,11 +280,6 @@ cpp_quote("#define __IAMDecoderCaps_FWD_DEFINED__")
+ cpp_quote("typedef struct IAMDecoderCaps IAMDecoderCaps;")
+ cpp_quote("#endif")
+ cpp_quote("")
+-cpp_quote("#ifndef __IAMCertifiedOutputProtection_FWD_DEFINED__")
+-cpp_quote("#define __IAMCertifiedOutputProtection_FWD_DEFINED__")
+-cpp_quote("typedef struct IAMCertifiedOutputProtection IAMCertifiedOutputProtection;")
+-cpp_quote("#endif")
+-cpp_quote("")
+ cpp_quote("#ifndef __IDvdControl_FWD_DEFINED__")
+ cpp_quote("#define __IDvdControl_FWD_DEFINED__")
+ cpp_quote("typedef struct IDvdControl IDvdControl;")
+@@ -560,158 +530,6 @@ cpp_quote("  HRESULT WINAPI IDistributorNotify_NotifyGraphChange_Proxy(IDistribu
+ cpp_quote("  void __RPC_STUB IDistributorNotify_NotifyGraphChange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+ cpp_quote("#endif")
+ cpp_quote("")
+-cpp_quote("  typedef enum __MIDL___MIDL_itf_strmif_0160_0001 {")
+-cpp_quote("    AM_STREAM_INFO_START_DEFINED = 0x1,AM_STREAM_INFO_STOP_DEFINED = 0x2,AM_STREAM_INFO_DISCARDING = 0x4,AM_STREAM_INFO_STOP_SEND_EXTRA = 0x10")
+-cpp_quote("  } AM_STREAM_INFO_FLAGS;")
+-cpp_quote("")
+-cpp_quote("  typedef struct __MIDL___MIDL_itf_strmif_0160_0002 {")
+-cpp_quote("    REFERENCE_TIME tStart;")
+-cpp_quote("    REFERENCE_TIME tStop;")
+-cpp_quote("    DWORD dwStartCookie;")
+-cpp_quote("    DWORD dwStopCookie;")
+-cpp_quote("    DWORD dwFlags;")
+-cpp_quote("  } AM_STREAM_INFO;")
+-cpp_quote("")
+-cpp_quote("  extern RPC_IF_HANDLE __MIDL_itf_strmif_0160_v0_0_c_ifspec;")
+-cpp_quote("  extern RPC_IF_HANDLE __MIDL_itf_strmif_0160_v0_0_s_ifspec;")
+-cpp_quote("#ifndef __IAMStreamControl_INTERFACE_DEFINED__")
+-cpp_quote("#define __IAMStreamControl_INTERFACE_DEFINED__")
+-cpp_quote("  EXTERN_C const IID IID_IAMStreamControl;")
+-cpp_quote("#if defined(__cplusplus) && !defined(CINTERFACE)")
+-cpp_quote("  struct IAMStreamControl : public IUnknown {")
+-cpp_quote("  public:")
+-cpp_quote("    virtual HRESULT WINAPI StartAt(const REFERENCE_TIME *ptStart,DWORD dwCookie) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI StopAt(const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI GetInfo(AM_STREAM_INFO *pInfo) = 0;")
+-cpp_quote("  };")
+-cpp_quote("#else")
+-cpp_quote("  typedef struct IAMStreamControlVtbl {")
+-cpp_quote("    BEGIN_INTERFACE")
+-cpp_quote("      HRESULT (WINAPI *QueryInterface)(IAMStreamControl *This,REFIID riid,void **ppvObject);")
+-cpp_quote("      ULONG (WINAPI *AddRef)(IAMStreamControl *This);")
+-cpp_quote("      ULONG (WINAPI *Release)(IAMStreamControl *This);")
+-cpp_quote("      HRESULT (WINAPI *StartAt)(IAMStreamControl *This,const REFERENCE_TIME *ptStart,DWORD dwCookie);")
+-cpp_quote("      HRESULT (WINAPI *StopAt)(IAMStreamControl *This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie);")
+-cpp_quote("      HRESULT (WINAPI *GetInfo)(IAMStreamControl *This,AM_STREAM_INFO *pInfo);")
+-cpp_quote("    END_INTERFACE")
+-cpp_quote("  } IAMStreamControlVtbl;")
+-cpp_quote("  struct IAMStreamControl {")
+-cpp_quote("    CONST_VTBL struct IAMStreamControlVtbl *lpVtbl;")
+-cpp_quote("  };")
+-cpp_quote("#ifdef COBJMACROS")
+-cpp_quote("#define IAMStreamControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)")
+-cpp_quote("#define IAMStreamControl_AddRef(This) (This)->lpVtbl->AddRef(This)")
+-cpp_quote("#define IAMStreamControl_Release(This) (This)->lpVtbl->Release(This)")
+-cpp_quote("#define IAMStreamControl_StartAt(This,ptStart,dwCookie) (This)->lpVtbl->StartAt(This,ptStart,dwCookie)")
+-cpp_quote("#define IAMStreamControl_StopAt(This,ptStop,bSendExtra,dwCookie) (This)->lpVtbl->StopAt(This,ptStop,bSendExtra,dwCookie)")
+-cpp_quote("#define IAMStreamControl_GetInfo(This,pInfo) (This)->lpVtbl->GetInfo(This,pInfo)")
+-cpp_quote("#endif")
+-cpp_quote("#endif")
+-cpp_quote("  HRESULT WINAPI IAMStreamControl_StartAt_Proxy(IAMStreamControl *This,const REFERENCE_TIME *ptStart,DWORD dwCookie);")
+-cpp_quote("  void __RPC_STUB IAMStreamControl_StartAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IAMStreamControl_StopAt_Proxy(IAMStreamControl *This,const REFERENCE_TIME *ptStop,WINBOOL bSendExtra,DWORD dwCookie);")
+-cpp_quote("  void __RPC_STUB IAMStreamControl_StopAt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IAMStreamControl_GetInfo_Proxy(IAMStreamControl *This,AM_STREAM_INFO *pInfo);")
+-cpp_quote("  void __RPC_STUB IAMStreamControl_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("#endif")
+-cpp_quote("")
+-cpp_quote("#ifndef __IConfigInterleaving_INTERFACE_DEFINED__")
+-cpp_quote("#define __IConfigInterleaving_INTERFACE_DEFINED__")
+-cpp_quote("  typedef enum __MIDL_IConfigInterleaving_0001 {")
+-cpp_quote("    INTERLEAVE_NONE = 0,")
+-cpp_quote("    INTERLEAVE_CAPTURE,INTERLEAVE_FULL,INTERLEAVE_NONE_BUFFERED")
+-cpp_quote("  } InterleavingMode;")
+-cpp_quote("")
+-cpp_quote("  EXTERN_C const IID IID_IConfigInterleaving;")
+-cpp_quote("#if defined(__cplusplus) && !defined(CINTERFACE)")
+-cpp_quote("  struct IConfigInterleaving : public IUnknown {")
+-cpp_quote("  public:")
+-cpp_quote("    virtual HRESULT WINAPI put_Mode(InterleavingMode mode) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI get_Mode(InterleavingMode *pMode) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI put_Interleaving(const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI get_Interleaving(REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll) = 0;")
+-cpp_quote("  };")
+-cpp_quote("#else")
+-cpp_quote("  typedef struct IConfigInterleavingVtbl {")
+-cpp_quote("    BEGIN_INTERFACE")
+-cpp_quote("      HRESULT (WINAPI *QueryInterface)(IConfigInterleaving *This,REFIID riid,void **ppvObject);")
+-cpp_quote("      ULONG (WINAPI *AddRef)(IConfigInterleaving *This);")
+-cpp_quote("      ULONG (WINAPI *Release)(IConfigInterleaving *This);")
+-cpp_quote("      HRESULT (WINAPI *put_Mode)(IConfigInterleaving *This,InterleavingMode mode);")
+-cpp_quote("      HRESULT (WINAPI *get_Mode)(IConfigInterleaving *This,InterleavingMode *pMode);")
+-cpp_quote("      HRESULT (WINAPI *put_Interleaving)(IConfigInterleaving *This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll);")
+-cpp_quote("      HRESULT (WINAPI *get_Interleaving)(IConfigInterleaving *This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll);")
+-cpp_quote("    END_INTERFACE")
+-cpp_quote("  } IConfigInterleavingVtbl;")
+-cpp_quote("  struct IConfigInterleaving {")
+-cpp_quote("    CONST_VTBL struct IConfigInterleavingVtbl *lpVtbl;")
+-cpp_quote("  };")
+-cpp_quote("#ifdef COBJMACROS")
+-cpp_quote("#define IConfigInterleaving_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)")
+-cpp_quote("#define IConfigInterleaving_AddRef(This) (This)->lpVtbl->AddRef(This)")
+-cpp_quote("#define IConfigInterleaving_Release(This) (This)->lpVtbl->Release(This)")
+-cpp_quote("#define IConfigInterleaving_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)")
+-cpp_quote("#define IConfigInterleaving_get_Mode(This,pMode) (This)->lpVtbl->get_Mode(This,pMode)")
+-cpp_quote("#define IConfigInterleaving_put_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->put_Interleaving(This,prtInterleave,prtPreroll)")
+-cpp_quote("#define IConfigInterleaving_get_Interleaving(This,prtInterleave,prtPreroll) (This)->lpVtbl->get_Interleaving(This,prtInterleave,prtPreroll)")
+-cpp_quote("#endif")
+-cpp_quote("#endif")
+-cpp_quote("  HRESULT WINAPI IConfigInterleaving_put_Mode_Proxy(IConfigInterleaving *This,InterleavingMode mode);")
+-cpp_quote("  void __RPC_STUB IConfigInterleaving_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IConfigInterleaving_get_Mode_Proxy(IConfigInterleaving *This,InterleavingMode *pMode);")
+-cpp_quote("  void __RPC_STUB IConfigInterleaving_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IConfigInterleaving_put_Interleaving_Proxy(IConfigInterleaving *This,const REFERENCE_TIME *prtInterleave,const REFERENCE_TIME *prtPreroll);")
+-cpp_quote("  void __RPC_STUB IConfigInterleaving_put_Interleaving_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IConfigInterleaving_get_Interleaving_Proxy(IConfigInterleaving *This,REFERENCE_TIME *prtInterleave,REFERENCE_TIME *prtPreroll);")
+-cpp_quote("  void __RPC_STUB IConfigInterleaving_get_Interleaving_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("#endif")
+-cpp_quote("")
+-cpp_quote("#ifndef __IConfigAviMux_INTERFACE_DEFINED__")
+-cpp_quote("#define __IConfigAviMux_INTERFACE_DEFINED__")
+-cpp_quote("  EXTERN_C const IID IID_IConfigAviMux;")
+-cpp_quote("#if defined(__cplusplus) && !defined(CINTERFACE)")
+-cpp_quote("  struct IConfigAviMux : public IUnknown {")
+-cpp_quote("  public:")
+-cpp_quote("    virtual HRESULT WINAPI SetMasterStream(LONG iStream) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI GetMasterStream(LONG *pStream) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI SetOutputCompatibilityIndex(WINBOOL fOldIndex) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI GetOutputCompatibilityIndex(WINBOOL *pfOldIndex) = 0;")
+-cpp_quote("  };")
+-cpp_quote("#else")
+-cpp_quote("  typedef struct IConfigAviMuxVtbl {")
+-cpp_quote("    BEGIN_INTERFACE")
+-cpp_quote("      HRESULT (WINAPI *QueryInterface)(IConfigAviMux *This,REFIID riid,void **ppvObject);")
+-cpp_quote("      ULONG (WINAPI *AddRef)(IConfigAviMux *This);")
+-cpp_quote("      ULONG (WINAPI *Release)(IConfigAviMux *This);")
+-cpp_quote("      HRESULT (WINAPI *SetMasterStream)(IConfigAviMux *This,LONG iStream);")
+-cpp_quote("      HRESULT (WINAPI *GetMasterStream)(IConfigAviMux *This,LONG *pStream);")
+-cpp_quote("      HRESULT (WINAPI *SetOutputCompatibilityIndex)(IConfigAviMux *This,WINBOOL fOldIndex);")
+-cpp_quote("      HRESULT (WINAPI *GetOutputCompatibilityIndex)(IConfigAviMux *This,WINBOOL *pfOldIndex);")
+-cpp_quote("    END_INTERFACE")
+-cpp_quote("  } IConfigAviMuxVtbl;")
+-cpp_quote("  struct IConfigAviMux {")
+-cpp_quote("    CONST_VTBL struct IConfigAviMuxVtbl *lpVtbl;")
+-cpp_quote("  };")
+-cpp_quote("#ifdef COBJMACROS")
+-cpp_quote("#define IConfigAviMux_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)")
+-cpp_quote("#define IConfigAviMux_AddRef(This) (This)->lpVtbl->AddRef(This)")
+-cpp_quote("#define IConfigAviMux_Release(This) (This)->lpVtbl->Release(This)")
+-cpp_quote("#define IConfigAviMux_SetMasterStream(This,iStream) (This)->lpVtbl->SetMasterStream(This,iStream)")
+-cpp_quote("#define IConfigAviMux_GetMasterStream(This,pStream) (This)->lpVtbl->GetMasterStream(This,pStream)")
+-cpp_quote("#define IConfigAviMux_SetOutputCompatibilityIndex(This,fOldIndex) (This)->lpVtbl->SetOutputCompatibilityIndex(This,fOldIndex)")
+-cpp_quote("#define IConfigAviMux_GetOutputCompatibilityIndex(This,pfOldIndex) (This)->lpVtbl->GetOutputCompatibilityIndex(This,pfOldIndex)")
+-cpp_quote("#endif")
+-cpp_quote("#endif")
+-cpp_quote("  HRESULT WINAPI IConfigAviMux_SetMasterStream_Proxy(IConfigAviMux *This,LONG iStream);")
+-cpp_quote("  void __RPC_STUB IConfigAviMux_SetMasterStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IConfigAviMux_GetMasterStream_Proxy(IConfigAviMux *This,LONG *pStream);")
+-cpp_quote("  void __RPC_STUB IConfigAviMux_GetMasterStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IConfigAviMux_SetOutputCompatibilityIndex_Proxy(IConfigAviMux *This,WINBOOL fOldIndex);")
+-cpp_quote("  void __RPC_STUB IConfigAviMux_SetOutputCompatibilityIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IConfigAviMux_GetOutputCompatibilityIndex_Proxy(IConfigAviMux *This,WINBOOL *pfOldIndex);")
+-cpp_quote("  void __RPC_STUB IConfigAviMux_GetOutputCompatibilityIndex_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("#endif")
+-cpp_quote("")
+ cpp_quote("  typedef enum __MIDL___MIDL_itf_strmif_0167_0001 {")
+ cpp_quote("    CompressionCaps_CanQuality = 0x1,CompressionCaps_CanCrunch = 0x2,CompressionCaps_CanKeyFrame = 0x4,CompressionCaps_CanBFrame = 0x8,")
+ cpp_quote("    CompressionCaps_CanWindow = 0x10")
+@@ -1854,90 +1672,6 @@ cpp_quote("  typedef enum __MIDL___MIDL_itf_strmif_0185_0001 {")
+ cpp_quote("    AMPROPERTY_PIN_CATEGORY = 0,AMPROPERTY_PIN_MEDIUM = AMPROPERTY_PIN_CATEGORY + 1")
+ cpp_quote("  } AMPROPERTY_PIN;")
+ cpp_quote("")
+-cpp_quote("  extern RPC_IF_HANDLE __MIDL_itf_strmif_0186_v0_0_c_ifspec;")
+-cpp_quote("  extern RPC_IF_HANDLE __MIDL_itf_strmif_0186_v0_0_s_ifspec;")
+-cpp_quote("#ifndef __IMediaPropertyBag_INTERFACE_DEFINED__")
+-cpp_quote("#define __IMediaPropertyBag_INTERFACE_DEFINED__")
+-cpp_quote("  typedef IMediaPropertyBag *LPMEDIAPROPERTYBAG;")
+-cpp_quote("")
+-cpp_quote("  EXTERN_C const IID IID_IMediaPropertyBag;")
+-cpp_quote("#if defined(__cplusplus) && !defined(CINTERFACE)")
+-cpp_quote("  struct IMediaPropertyBag : public IPropertyBag {")
+-cpp_quote("  public:")
+-cpp_quote("    virtual HRESULT WINAPI EnumProperty(ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue) = 0;")
+-cpp_quote("  };")
+-cpp_quote("#else")
+-cpp_quote("  typedef struct IMediaPropertyBagVtbl {")
+-cpp_quote("    BEGIN_INTERFACE")
+-cpp_quote("      HRESULT (WINAPI *QueryInterface)(IMediaPropertyBag *This,REFIID riid,void **ppvObject);")
+-cpp_quote("      ULONG (WINAPI *AddRef)(IMediaPropertyBag *This);")
+-cpp_quote("      ULONG (WINAPI *Release)(IMediaPropertyBag *This);")
+-cpp_quote("      HRESULT (WINAPI *Read)(IMediaPropertyBag *This,LPCOLESTR pszPropName,VARIANT *pVar,IErrorLog *pErrorLog);")
+-cpp_quote("      HRESULT (WINAPI *Write)(IMediaPropertyBag *This,LPCOLESTR pszPropName,VARIANT *pVar);")
+-cpp_quote("      HRESULT (WINAPI *EnumProperty)(IMediaPropertyBag *This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue);")
+-cpp_quote("    END_INTERFACE")
+-cpp_quote("  } IMediaPropertyBagVtbl;")
+-cpp_quote("  struct IMediaPropertyBag {")
+-cpp_quote("    CONST_VTBL struct IMediaPropertyBagVtbl *lpVtbl;")
+-cpp_quote("  };")
+-cpp_quote("#ifdef COBJMACROS")
+-cpp_quote("#define IMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)")
+-cpp_quote("#define IMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)")
+-cpp_quote("#define IMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)")
+-cpp_quote("#define IMediaPropertyBag_Read(This,pszPropName,pVar,pErrorLog) (This)->lpVtbl->Read(This,pszPropName,pVar,pErrorLog)")
+-cpp_quote("#define IMediaPropertyBag_Write(This,pszPropName,pVar) (This)->lpVtbl->Write(This,pszPropName,pVar)")
+-cpp_quote("#define IMediaPropertyBag_EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue) (This)->lpVtbl->EnumProperty(This,iProperty,pvarPropertyName,pvarPropertyValue)")
+-cpp_quote("#endif")
+-cpp_quote("#endif")
+-cpp_quote("  HRESULT WINAPI IMediaPropertyBag_EnumProperty_Proxy(IMediaPropertyBag *This,ULONG iProperty,VARIANT *pvarPropertyName,VARIANT *pvarPropertyValue);")
+-cpp_quote("  void __RPC_STUB IMediaPropertyBag_EnumProperty_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("#endif")
+-cpp_quote("")
+-cpp_quote("#ifndef __IPersistMediaPropertyBag_INTERFACE_DEFINED__")
+-cpp_quote("#define __IPersistMediaPropertyBag_INTERFACE_DEFINED__")
+-cpp_quote("  typedef IPersistMediaPropertyBag *LPPERSISTMEDIAPROPERTYBAG;")
+-cpp_quote("")
+-cpp_quote("  EXTERN_C const IID IID_IPersistMediaPropertyBag;")
+-cpp_quote("#if defined(__cplusplus) && !defined(CINTERFACE)")
+-cpp_quote("  struct IPersistMediaPropertyBag : public IPersist {")
+-cpp_quote("  public:")
+-cpp_quote("    virtual HRESULT WINAPI InitNew(void) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI Load(IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI Save(IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties) = 0;")
+-cpp_quote("  };")
+-cpp_quote("#else")
+-cpp_quote("  typedef struct IPersistMediaPropertyBagVtbl {")
+-cpp_quote("    BEGIN_INTERFACE")
+-cpp_quote("      HRESULT (WINAPI *QueryInterface)(IPersistMediaPropertyBag *This,REFIID riid,void **ppvObject);")
+-cpp_quote("      ULONG (WINAPI *AddRef)(IPersistMediaPropertyBag *This);")
+-cpp_quote("      ULONG (WINAPI *Release)(IPersistMediaPropertyBag *This);")
+-cpp_quote("      HRESULT (WINAPI *GetClassID)(IPersistMediaPropertyBag *This,CLSID *pClassID);")
+-cpp_quote("      HRESULT (WINAPI *InitNew)(IPersistMediaPropertyBag *This);")
+-cpp_quote("      HRESULT (WINAPI *Load)(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog);")
+-cpp_quote("      HRESULT (WINAPI *Save)(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties);")
+-cpp_quote("    END_INTERFACE")
+-cpp_quote("  } IPersistMediaPropertyBagVtbl;")
+-cpp_quote("  struct IPersistMediaPropertyBag {")
+-cpp_quote("    CONST_VTBL struct IPersistMediaPropertyBagVtbl *lpVtbl;")
+-cpp_quote("  };")
+-cpp_quote("#ifdef COBJMACROS")
+-cpp_quote("#define IPersistMediaPropertyBag_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)")
+-cpp_quote("#define IPersistMediaPropertyBag_AddRef(This) (This)->lpVtbl->AddRef(This)")
+-cpp_quote("#define IPersistMediaPropertyBag_Release(This) (This)->lpVtbl->Release(This)")
+-cpp_quote("#define IPersistMediaPropertyBag_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)")
+-cpp_quote("#define IPersistMediaPropertyBag_InitNew(This) (This)->lpVtbl->InitNew(This)")
+-cpp_quote("#define IPersistMediaPropertyBag_Load(This,pPropBag,pErrorLog) (This)->lpVtbl->Load(This,pPropBag,pErrorLog)")
+-cpp_quote("#define IPersistMediaPropertyBag_Save(This,pPropBag,fClearDirty,fSaveAllProperties) (This)->lpVtbl->Save(This,pPropBag,fClearDirty,fSaveAllProperties)")
+-cpp_quote("#endif")
+-cpp_quote("#endif")
+-cpp_quote("  HRESULT WINAPI IPersistMediaPropertyBag_InitNew_Proxy(IPersistMediaPropertyBag *This);")
+-cpp_quote("  void __RPC_STUB IPersistMediaPropertyBag_InitNew_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IPersistMediaPropertyBag_Load_Proxy(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,IErrorLog *pErrorLog);")
+-cpp_quote("  void __RPC_STUB IPersistMediaPropertyBag_Load_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IPersistMediaPropertyBag_Save_Proxy(IPersistMediaPropertyBag *This,IMediaPropertyBag *pPropBag,WINBOOL fClearDirty,WINBOOL fSaveAllProperties);")
+-cpp_quote("  void __RPC_STUB IPersistMediaPropertyBag_Save_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("#endif")
+-cpp_quote("")
+ cpp_quote("#ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__")
+ cpp_quote("#define __IAMPhysicalPinInfo_INTERFACE_DEFINED__")
+ cpp_quote("  EXTERN_C const IID IID_IAMPhysicalPinInfo;")
+@@ -3438,42 +3172,6 @@ cpp_quote("  HRESULT WINAPI IRegisterServiceProvider_RegisterService_Proxy(IRegi
+ cpp_quote("  void __RPC_STUB IRegisterServiceProvider_RegisterService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+ cpp_quote("#endif")
+ cpp_quote("")
+-cpp_quote("#ifndef __IAMClockSlave_INTERFACE_DEFINED__")
+-cpp_quote("#define __IAMClockSlave_INTERFACE_DEFINED__")
+-cpp_quote("  EXTERN_C const IID IID_IAMClockSlave;")
+-cpp_quote("#if defined(__cplusplus) && !defined(CINTERFACE)")
+-cpp_quote("  struct IAMClockSlave : public IUnknown {")
+-cpp_quote("  public:")
+-cpp_quote("    virtual HRESULT WINAPI SetErrorTolerance(DWORD dwTolerance) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI GetErrorTolerance(DWORD *pdwTolerance) = 0;")
+-cpp_quote("  };")
+-cpp_quote("#else")
+-cpp_quote("  typedef struct IAMClockSlaveVtbl {")
+-cpp_quote("    BEGIN_INTERFACE")
+-cpp_quote("      HRESULT (WINAPI *QueryInterface)(IAMClockSlave *This,REFIID riid,void **ppvObject);")
+-cpp_quote("      ULONG (WINAPI *AddRef)(IAMClockSlave *This);")
+-cpp_quote("      ULONG (WINAPI *Release)(IAMClockSlave *This);")
+-cpp_quote("      HRESULT (WINAPI *SetErrorTolerance)(IAMClockSlave *This,DWORD dwTolerance);")
+-cpp_quote("      HRESULT (WINAPI *GetErrorTolerance)(IAMClockSlave *This,DWORD *pdwTolerance);")
+-cpp_quote("    END_INTERFACE")
+-cpp_quote("  } IAMClockSlaveVtbl;")
+-cpp_quote("  struct IAMClockSlave {")
+-cpp_quote("    CONST_VTBL struct IAMClockSlaveVtbl *lpVtbl;")
+-cpp_quote("  };")
+-cpp_quote("#ifdef COBJMACROS")
+-cpp_quote("#define IAMClockSlave_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)")
+-cpp_quote("#define IAMClockSlave_AddRef(This) (This)->lpVtbl->AddRef(This)")
+-cpp_quote("#define IAMClockSlave_Release(This) (This)->lpVtbl->Release(This)")
+-cpp_quote("#define IAMClockSlave_SetErrorTolerance(This,dwTolerance) (This)->lpVtbl->SetErrorTolerance(This,dwTolerance)")
+-cpp_quote("#define IAMClockSlave_GetErrorTolerance(This,pdwTolerance) (This)->lpVtbl->GetErrorTolerance(This,pdwTolerance)")
+-cpp_quote("#endif")
+-cpp_quote("#endif")
+-cpp_quote("  HRESULT WINAPI IAMClockSlave_SetErrorTolerance_Proxy(IAMClockSlave *This,DWORD dwTolerance);")
+-cpp_quote("  void __RPC_STUB IAMClockSlave_SetErrorTolerance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IAMClockSlave_GetErrorTolerance_Proxy(IAMClockSlave *This,DWORD *pdwTolerance);")
+-cpp_quote("  void __RPC_STUB IAMClockSlave_GetErrorTolerance_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("#endif")
+-cpp_quote("")
+ cpp_quote("#ifdef __cplusplus")
+ cpp_quote("#ifndef _IAMFilterGraphCallback_")
+ cpp_quote("#define _IAMFilterGraphCallback_")
+@@ -3776,86 +3474,6 @@ cpp_quote("  HRESULT WINAPI IAMDecoderCaps_GetDecoderCaps_Proxy(IAMDecoderCaps *
+ cpp_quote("  void __RPC_STUB IAMDecoderCaps_GetDecoderCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+ cpp_quote("#endif")
+ cpp_quote("")
+-cpp_quote("  typedef struct _AMCOPPSignature {")
+-cpp_quote("    BYTE Signature[256];")
+-cpp_quote("  } AMCOPPSignature;")
+-cpp_quote("")
+-cpp_quote("  typedef struct _AMCOPPCommand {")
+-cpp_quote("    GUID macKDI;")
+-cpp_quote("    GUID guidCommandID;")
+-cpp_quote("    DWORD dwSequence;")
+-cpp_quote("    DWORD cbSizeData;")
+-cpp_quote("    BYTE CommandData[4056];")
+-cpp_quote("  } AMCOPPCommand;")
+-cpp_quote("")
+-cpp_quote("  typedef struct _AMCOPPCommand *LPAMCOPPCommand;")
+-cpp_quote("")
+-cpp_quote("  typedef struct _AMCOPPStatusInput {")
+-cpp_quote("    GUID rApp;")
+-cpp_quote("    GUID guidStatusRequestID;")
+-cpp_quote("    DWORD dwSequence;")
+-cpp_quote("    DWORD cbSizeData;")
+-cpp_quote("    BYTE StatusData[4056];")
+-cpp_quote("  } AMCOPPStatusInput;")
+-cpp_quote("")
+-cpp_quote("  typedef struct _AMCOPPStatusInput *LPAMCOPPStatusInput;")
+-cpp_quote("")
+-cpp_quote("  typedef struct _AMCOPPStatusOutput {")
+-cpp_quote("    GUID macKDI;")
+-cpp_quote("    DWORD cbSizeData;")
+-cpp_quote("    BYTE COPPStatus[4076];")
+-cpp_quote("  } AMCOPPStatusOutput;")
+-cpp_quote("")
+-cpp_quote("  typedef struct _AMCOPPStatusOutput *LPAMCOPPStatusOutput;")
+-cpp_quote("")
+-cpp_quote("  extern RPC_IF_HANDLE __MIDL_itf_strmif_0375_v0_0_c_ifspec;")
+-cpp_quote("  extern RPC_IF_HANDLE __MIDL_itf_strmif_0375_v0_0_s_ifspec;")
+-cpp_quote("#ifndef __IAMCertifiedOutputProtection_INTERFACE_DEFINED__")
+-cpp_quote("#define __IAMCertifiedOutputProtection_INTERFACE_DEFINED__")
+-cpp_quote("  EXTERN_C const IID IID_IAMCertifiedOutputProtection;")
+-cpp_quote("#if defined(__cplusplus) && !defined(CINTERFACE)")
+-cpp_quote("  struct IAMCertifiedOutputProtection : public IUnknown {")
+-cpp_quote("  public:")
+-cpp_quote("    virtual HRESULT WINAPI KeyExchange(GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI SessionSequenceStart(AMCOPPSignature *pSig) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI ProtectionCommand(const AMCOPPCommand *cmd) = 0;")
+-cpp_quote("    virtual HRESULT WINAPI ProtectionStatus(const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput) = 0;")
+-cpp_quote("  };")
+-cpp_quote("#else")
+-cpp_quote("  typedef struct IAMCertifiedOutputProtectionVtbl {")
+-cpp_quote("    BEGIN_INTERFACE")
+-cpp_quote("      HRESULT (WINAPI *QueryInterface)(IAMCertifiedOutputProtection *This,REFIID riid,void **ppvObject);")
+-cpp_quote("      ULONG (WINAPI *AddRef)(IAMCertifiedOutputProtection *This);")
+-cpp_quote("      ULONG (WINAPI *Release)(IAMCertifiedOutputProtection *This);")
+-cpp_quote("      HRESULT (WINAPI *KeyExchange)(IAMCertifiedOutputProtection *This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH);")
+-cpp_quote("      HRESULT (WINAPI *SessionSequenceStart)(IAMCertifiedOutputProtection *This,AMCOPPSignature *pSig);")
+-cpp_quote("      HRESULT (WINAPI *ProtectionCommand)(IAMCertifiedOutputProtection *This,const AMCOPPCommand *cmd);")
+-cpp_quote("      HRESULT (WINAPI *ProtectionStatus)(IAMCertifiedOutputProtection *This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput);")
+-cpp_quote("    END_INTERFACE")
+-cpp_quote("  } IAMCertifiedOutputProtectionVtbl;")
+-cpp_quote("  struct IAMCertifiedOutputProtection {")
+-cpp_quote("    CONST_VTBL struct IAMCertifiedOutputProtectionVtbl *lpVtbl;")
+-cpp_quote("  };")
+-cpp_quote("#ifdef COBJMACROS")
+-cpp_quote("#define IAMCertifiedOutputProtection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)")
+-cpp_quote("#define IAMCertifiedOutputProtection_AddRef(This) (This)->lpVtbl->AddRef(This)")
+-cpp_quote("#define IAMCertifiedOutputProtection_Release(This) (This)->lpVtbl->Release(This)")
+-cpp_quote("#define IAMCertifiedOutputProtection_KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH) (This)->lpVtbl->KeyExchange(This,pRandom,VarLenCertGH,pdwLengthCertGH)")
+-cpp_quote("#define IAMCertifiedOutputProtection_SessionSequenceStart(This,pSig) (This)->lpVtbl->SessionSequenceStart(This,pSig)")
+-cpp_quote("#define IAMCertifiedOutputProtection_ProtectionCommand(This,cmd) (This)->lpVtbl->ProtectionCommand(This,cmd)")
+-cpp_quote("#define IAMCertifiedOutputProtection_ProtectionStatus(This,pStatusInput,pStatusOutput) (This)->lpVtbl->ProtectionStatus(This,pStatusInput,pStatusOutput)")
+-cpp_quote("#endif")
+-cpp_quote("#endif")
+-cpp_quote("  HRESULT WINAPI IAMCertifiedOutputProtection_KeyExchange_Proxy(IAMCertifiedOutputProtection *This,GUID *pRandom,BYTE **VarLenCertGH,DWORD *pdwLengthCertGH);")
+-cpp_quote("  void __RPC_STUB IAMCertifiedOutputProtection_KeyExchange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IAMCertifiedOutputProtection_SessionSequenceStart_Proxy(IAMCertifiedOutputProtection *This,AMCOPPSignature *pSig);")
+-cpp_quote("  void __RPC_STUB IAMCertifiedOutputProtection_SessionSequenceStart_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IAMCertifiedOutputProtection_ProtectionCommand_Proxy(IAMCertifiedOutputProtection *This,const AMCOPPCommand *cmd);")
+-cpp_quote("  void __RPC_STUB IAMCertifiedOutputProtection_ProtectionCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("  HRESULT WINAPI IAMCertifiedOutputProtection_ProtectionStatus_Proxy(IAMCertifiedOutputProtection *This,const AMCOPPStatusInput *pStatusInput,AMCOPPStatusOutput *pStatusOutput);")
+-cpp_quote("  void __RPC_STUB IAMCertifiedOutputProtection_ProtectionStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);")
+-cpp_quote("#endif")
+-cpp_quote("")
+ cpp_quote("#ifdef MINGW_HAS_DDRAW_H")
+ cpp_quote("#include <ddraw.h>")
+ cpp_quote("#else")
+diff --git a/mingw-w64-headers/include/winhttp.h b/mingw-w64-headers/include/winhttp.h
+index 058453f..d36e3c5 100644
+--- a/mingw-w64-headers/include/winhttp.h
++++ b/mingw-w64-headers/include/winhttp.h
+@@ -571,7 +571,7 @@ WINBOOL     WINAPI WinHttpSetCredentials(HINTERNET,DWORD,DWORD,LPCWSTR,LPCWSTR,L
+ WINBOOL     WINAPI WinHttpSetOption(HINTERNET,DWORD,LPVOID,DWORD);
+ WINHTTP_STATUS_CALLBACK WINAPI WinHttpSetStatusCallback(HINTERNET,WINHTTP_STATUS_CALLBACK,DWORD,DWORD_PTR);
+ WINBOOL     WINAPI WinHttpSetTimeouts(HINTERNET,int,int,int,int);
+-WINBOOL     WINAPI WinHttpTimeFromSystemTime(CONST SYSTEMTIME *,LPWSTR);
++WINBOOL     WINAPI WinHttpTimeFromSystemTime(const SYSTEMTIME *,LPWSTR);
+ WINBOOL     WINAPI WinHttpTimeToSystemTime(LPCWSTR,SYSTEMTIME*);
+ WINBOOL     WINAPI WinHttpWriteData(HINTERNET,LPCVOID,DWORD,LPDWORD);
+ 
+-- 
+2.1.0
+
diff --git a/0018-Updated-imported-headers-to-current-Wine-version.patch b/0018-Updated-imported-headers-to-current-Wine-version.patch
new file mode 100644
index 0000000..aacdfe6
--- /dev/null
+++ b/0018-Updated-imported-headers-to-current-Wine-version.patch
@@ -0,0 +1,541 @@
+From 63d50cc50e8ab3d654f3e191bb2cf761cdabd108 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <jacek at codeweavers.com>
+Date: Thu, 4 Sep 2014 10:56:53 +0200
+Subject: [PATCH 18/25] Updated imported headers to current Wine version.
+
+---
+ mingw-w64-headers/direct-x/include/d3d10_1.h   |   3 +
+ mingw-w64-headers/direct-x/include/d3d10_1.idl |   3 +
+ mingw-w64-headers/direct-x/include/d3d11.h     |  30 +++
+ mingw-w64-headers/direct-x/include/d3d11.idl   |  22 ++
+ mingw-w64-headers/include/comadmin.h           |   2 +-
+ mingw-w64-headers/include/msctf.h              | 326 +++++++++++++++++++++++++
+ mingw-w64-headers/include/msctf.idl            |  45 ++++
+ 7 files changed, 430 insertions(+), 1 deletion(-)
+
+diff --git a/mingw-w64-headers/direct-x/include/d3d10_1.h b/mingw-w64-headers/direct-x/include/d3d10_1.h
+index aaeb30e..eb06757 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10_1.h
++++ b/mingw-w64-headers/direct-x/include/d3d10_1.h
+@@ -42,6 +42,8 @@ typedef interface ID3D10Device1 ID3D10Device1;
+ extern "C" {
+ #endif
+ 
++#ifndef _D3D10_1_CONSTANTS
++#define _D3D10_1_CONSTANTS
+ #define D3D10_1_DEFAULT_SAMPLE_MASK (0xffffffff)
+ 
+ #define D3D10_1_GS_INPUT_REGISTER_COUNT (32)
+@@ -80,6 +82,7 @@ extern "C" {
+ 
+ #define D3D10_1_VS_OUTPUT_REGISTER_COUNT (32)
+ 
++#endif
+ #define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP      (0.6)
+ #define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f)
+ #include <d3d10_1shader.h>
+diff --git a/mingw-w64-headers/direct-x/include/d3d10_1.idl b/mingw-w64-headers/direct-x/include/d3d10_1.idl
+index d0e02d4..ba5517b 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10_1.idl
++++ b/mingw-w64-headers/direct-x/include/d3d10_1.idl
+@@ -19,6 +19,8 @@
+ import "oaidl.idl";
+ import "ocidl.idl";
+ 
++cpp_quote("#ifndef _D3D10_1_CONSTANTS")
++cpp_quote("#define _D3D10_1_CONSTANTS")
+ const UINT D3D10_1_DEFAULT_SAMPLE_MASK                     = 0xffffffff;
+ const UINT D3D10_1_GS_INPUT_REGISTER_COUNT                 = 32;
+ const UINT D3D10_1_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT     = 32;
+@@ -38,6 +40,7 @@ const UINT D3D10_1_STANDARD_VERTEX_ELEMENT_COUNT           = 32;
+ const UINT D3D10_1_SUBPIXEL_FRACTIONAL_BIT_COUNT           = 8;
+ const UINT D3D10_1_VS_INPUT_REGISTER_COUNT                 = 32;
+ const UINT D3D10_1_VS_OUTPUT_REGISTER_COUNT                = 32;
++cpp_quote("#endif")
+ 
+ cpp_quote("#define D3D10_1_FLOAT16_FUSED_TOLERANCE_IN_ULP      (0.6)")
+ cpp_quote("#define D3D10_1_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP (0.6f)")
+diff --git a/mingw-w64-headers/direct-x/include/d3d11.h b/mingw-w64-headers/direct-x/include/d3d11.h
+index e08c5e0..552ab5f 100644
+--- a/mingw-w64-headers/direct-x/include/d3d11.h
++++ b/mingw-w64-headers/direct-x/include/d3d11.h
+@@ -450,6 +450,36 @@ typedef RECT D3D11_RECT;
+ 
+ #define D3D11_SO_STREAM_COUNT (4)
+ 
++#define D3D11_SPEC_DATE_DAY (16)
++
++#define D3D11_SPEC_DATE_MONTH (5)
++
++#define D3D11_SPEC_DATE_YEAR (2011)
++
++#define D3D11_SPEC_VERSION                   (1.07)
++#define D3D11_SRGB_GAMMA                     (2.2f)
++#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_1    (12.92f)
++#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_2    (1.055f)
++#define D3D11_SRGB_TO_FLOAT_EXPONENT         (2.4f)
++#define D3D11_SRGB_TO_FLOAT_OFFSET           (0.055f)
++#define D3D11_SRGB_TO_FLOAT_THRESHOLD        (0.04045f)
++#define D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.5f)
++#define D3D11_STANDARD_COMPONENT_BIT_COUNT (32)
++
++#define D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED (64)
++
++#define D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4)
++
++#define D3D11_STANDARD_PIXEL_COMPONENT_COUNT (128)
++
++#define D3D11_STANDARD_PIXEL_ELEMENT_COUNT (32)
++
++#define D3D11_STANDARD_VECTOR_SIZE (4)
++
++#define D3D11_STANDARD_VERTEX_ELEMENT_COUNT (32)
++
++#define D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT (64)
++
+ #if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)
+ struct CD3D11_DEFAULT {};
+ extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;
+diff --git a/mingw-w64-headers/direct-x/include/d3d11.idl b/mingw-w64-headers/direct-x/include/d3d11.idl
+index d03ffd3..a08a32b 100644
+--- a/mingw-w64-headers/direct-x/include/d3d11.idl
++++ b/mingw-w64-headers/direct-x/include/d3d11.idl
+@@ -176,6 +176,28 @@ const UINT D3D11_SO_NO_RASTERIZED_STREAM               = 0xffffffff;
+ const UINT D3D11_SO_OUTPUT_COMPONENT_COUNT             = 128;
+ const UINT D3D11_SO_STREAM_COUNT                       = 4;
+ 
++const UINT D3D11_SPEC_DATE_DAY   = 16;
++const UINT D3D11_SPEC_DATE_MONTH = 05;
++const UINT D3D11_SPEC_DATE_YEAR  = 2011;
++
++cpp_quote("#define D3D11_SPEC_VERSION                   (1.07)")
++cpp_quote("#define D3D11_SRGB_GAMMA                     (2.2f)")
++cpp_quote("#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_1    (12.92f)")
++cpp_quote("#define D3D11_SRGB_TO_FLOAT_DENOMINATOR_2    (1.055f)")
++cpp_quote("#define D3D11_SRGB_TO_FLOAT_EXPONENT         (2.4f)")
++cpp_quote("#define D3D11_SRGB_TO_FLOAT_OFFSET           (0.055f)")
++cpp_quote("#define D3D11_SRGB_TO_FLOAT_THRESHOLD        (0.04045f)")
++cpp_quote("#define D3D11_SRGB_TO_FLOAT_TOLERANCE_IN_ULP (0.5f)")
++
++const UINT D3D11_STANDARD_COMPONENT_BIT_COUNT                     = 32;
++const UINT D3D11_STANDARD_COMPONENT_BIT_COUNT_DOUBLED             = 64;
++const UINT D3D11_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE = 4;
++const UINT D3D11_STANDARD_PIXEL_COMPONENT_COUNT                   = 128;
++const UINT D3D11_STANDARD_PIXEL_ELEMENT_COUNT                     = 32;
++const UINT D3D11_STANDARD_VECTOR_SIZE                             = 4;
++const UINT D3D11_STANDARD_VERTEX_ELEMENT_COUNT                    = 32;
++const UINT D3D11_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT            = 64;
++
+ cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
+ cpp_quote("struct CD3D11_DEFAULT {};")
+ cpp_quote("extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;")
+diff --git a/mingw-w64-headers/include/comadmin.h b/mingw-w64-headers/include/comadmin.h
+index 54b5a4f..a84a1a5 100644
+--- a/mingw-w64-headers/include/comadmin.h
++++ b/mingw-w64-headers/include/comadmin.h
+@@ -1,4 +1,4 @@
+-/*** Autogenerated by WIDL 1.6 from comadmin.idl - Do not edit ***/
++/*** Autogenerated by WIDL 1.6 from include/comadmin.idl - Do not edit ***/
+ 
+ #ifndef __REQUIRED_RPCNDR_H_VERSION__
+ #define __REQUIRED_RPCNDR_H_VERSION__ 475
+diff --git a/mingw-w64-headers/include/msctf.h b/mingw-w64-headers/include/msctf.h
+index 15cc6a6..5bed0a2 100644
+--- a/mingw-w64-headers/include/msctf.h
++++ b/mingw-w64-headers/include/msctf.h
+@@ -242,6 +242,21 @@ typedef interface ITfThreadFocusSink ITfThreadFocusSink;
+ typedef interface ITfInputProcessorProfileActivationSink ITfInputProcessorProfileActivationSink;
+ #endif
+ 
++#ifndef __ITfMouseSink_FWD_DEFINED__
++#define __ITfMouseSink_FWD_DEFINED__
++typedef interface ITfMouseSink ITfMouseSink;
++#endif
++
++#ifndef __ITfMouseTracker_FWD_DEFINED__
++#define __ITfMouseTracker_FWD_DEFINED__
++typedef interface ITfMouseTracker ITfMouseTracker;
++#endif
++
++#ifndef __ITfMouseTrackerACP_FWD_DEFINED__
++#define __ITfMouseTrackerACP_FWD_DEFINED__
++typedef interface ITfMouseTrackerACP ITfMouseTrackerACP;
++#endif
++
+ /* Headers for imported files */
+ 
+ #include <oaidl.h>
+@@ -8893,6 +8908,317 @@ void __RPC_STUB ITfInputProcessorProfileActivationSink_OnActivated_Stub(
+ 
+ #endif  /* __ITfInputProcessorProfileActivationSink_INTERFACE_DEFINED__ */
+ 
++/*****************************************************************************
++ * ITfMouseSink interface
++ */
++#ifndef __ITfMouseSink_INTERFACE_DEFINED__
++#define __ITfMouseSink_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_ITfMouseSink, 0xa1adaaa2, 0x3a24, 0x449d, 0xac,0x96, 0x51,0x83,0xe7,0xf5,0xc2,0x17);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("a1adaaa2-3a24-449d-ac96-5183e7f5c217")
++ITfMouseSink : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE OnMouseEvent(
++        ULONG uEdge,
++        ULONG uQuadrant,
++        DWORD dwBtnStatus,
++        WINBOOL *pfEaten) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(ITfMouseSink, 0xa1adaaa2, 0x3a24, 0x449d, 0xac,0x96, 0x51,0x83,0xe7,0xf5,0xc2,0x17)
++#endif
++#else
++typedef struct ITfMouseSinkVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        ITfMouseSink* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        ITfMouseSink* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        ITfMouseSink* This);
++
++    /*** ITfMouseSink methods ***/
++    HRESULT (STDMETHODCALLTYPE *OnMouseEvent)(
++        ITfMouseSink* This,
++        ULONG uEdge,
++        ULONG uQuadrant,
++        DWORD dwBtnStatus,
++        WINBOOL *pfEaten);
++
++    END_INTERFACE
++} ITfMouseSinkVtbl;
++interface ITfMouseSink {
++    CONST_VTBL ITfMouseSinkVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define ITfMouseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define ITfMouseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define ITfMouseSink_Release(This) (This)->lpVtbl->Release(This)
++/*** ITfMouseSink methods ***/
++#define ITfMouseSink_OnMouseEvent(This,uEdge,uQuadrant,dwBtnStatus,pfEaten) (This)->lpVtbl->OnMouseEvent(This,uEdge,uQuadrant,dwBtnStatus,pfEaten)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT ITfMouseSink_QueryInterface(ITfMouseSink* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG ITfMouseSink_AddRef(ITfMouseSink* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG ITfMouseSink_Release(ITfMouseSink* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** ITfMouseSink methods ***/
++static FORCEINLINE HRESULT ITfMouseSink_OnMouseEvent(ITfMouseSink* This,ULONG uEdge,ULONG uQuadrant,DWORD dwBtnStatus,WINBOOL *pfEaten) {
++    return This->lpVtbl->OnMouseEvent(This,uEdge,uQuadrant,dwBtnStatus,pfEaten);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE ITfMouseSink_OnMouseEvent_Proxy(
++    ITfMouseSink* This,
++    ULONG uEdge,
++    ULONG uQuadrant,
++    DWORD dwBtnStatus,
++    WINBOOL *pfEaten);
++void __RPC_STUB ITfMouseSink_OnMouseEvent_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __ITfMouseSink_INTERFACE_DEFINED__ */
++
++/*****************************************************************************
++ * ITfMouseTracker interface
++ */
++#ifndef __ITfMouseTracker_INTERFACE_DEFINED__
++#define __ITfMouseTracker_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_ITfMouseTracker, 0x09d146cd, 0xa544, 0x4132, 0x92,0x5b, 0x7a,0xfa,0x8e,0xf3,0x22,0xd0);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("09d146cd-a544-4132-925b-7afa8ef322d0")
++ITfMouseTracker : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE AdviseMouseSink(
++        ITfRange *range,
++        ITfMouseSink *pSink,
++        DWORD *pdwCookie) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE UnadviseMouseSink(
++        DWORD dwCookie) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(ITfMouseTracker, 0x09d146cd, 0xa544, 0x4132, 0x92,0x5b, 0x7a,0xfa,0x8e,0xf3,0x22,0xd0)
++#endif
++#else
++typedef struct ITfMouseTrackerVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        ITfMouseTracker* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        ITfMouseTracker* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        ITfMouseTracker* This);
++
++    /*** ITfMouseTracker methods ***/
++    HRESULT (STDMETHODCALLTYPE *AdviseMouseSink)(
++        ITfMouseTracker* This,
++        ITfRange *range,
++        ITfMouseSink *pSink,
++        DWORD *pdwCookie);
++
++    HRESULT (STDMETHODCALLTYPE *UnadviseMouseSink)(
++        ITfMouseTracker* This,
++        DWORD dwCookie);
++
++    END_INTERFACE
++} ITfMouseTrackerVtbl;
++interface ITfMouseTracker {
++    CONST_VTBL ITfMouseTrackerVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define ITfMouseTracker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define ITfMouseTracker_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define ITfMouseTracker_Release(This) (This)->lpVtbl->Release(This)
++/*** ITfMouseTracker methods ***/
++#define ITfMouseTracker_AdviseMouseSink(This,range,pSink,pdwCookie) (This)->lpVtbl->AdviseMouseSink(This,range,pSink,pdwCookie)
++#define ITfMouseTracker_UnadviseMouseSink(This,dwCookie) (This)->lpVtbl->UnadviseMouseSink(This,dwCookie)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT ITfMouseTracker_QueryInterface(ITfMouseTracker* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG ITfMouseTracker_AddRef(ITfMouseTracker* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG ITfMouseTracker_Release(ITfMouseTracker* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** ITfMouseTracker methods ***/
++static FORCEINLINE HRESULT ITfMouseTracker_AdviseMouseSink(ITfMouseTracker* This,ITfRange *range,ITfMouseSink *pSink,DWORD *pdwCookie) {
++    return This->lpVtbl->AdviseMouseSink(This,range,pSink,pdwCookie);
++}
++static FORCEINLINE HRESULT ITfMouseTracker_UnadviseMouseSink(ITfMouseTracker* This,DWORD dwCookie) {
++    return This->lpVtbl->UnadviseMouseSink(This,dwCookie);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE ITfMouseTracker_AdviseMouseSink_Proxy(
++    ITfMouseTracker* This,
++    ITfRange *range,
++    ITfMouseSink *pSink,
++    DWORD *pdwCookie);
++void __RPC_STUB ITfMouseTracker_AdviseMouseSink_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ITfMouseTracker_UnadviseMouseSink_Proxy(
++    ITfMouseTracker* This,
++    DWORD dwCookie);
++void __RPC_STUB ITfMouseTracker_UnadviseMouseSink_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __ITfMouseTracker_INTERFACE_DEFINED__ */
++
++/*****************************************************************************
++ * ITfMouseTrackerACP interface
++ */
++#ifndef __ITfMouseTrackerACP_INTERFACE_DEFINED__
++#define __ITfMouseTrackerACP_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_ITfMouseTrackerACP, 0x3bdd78e2, 0xc16e, 0x47fd, 0xb8,0x83, 0xce,0x6f,0xac,0xc1,0xa2,0x08);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("3bdd78e2-c16e-47fd-b883-ce6facc1a208")
++ITfMouseTrackerACP : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE AdviseMouseSink(
++        ITfRangeACP *range,
++        ITfMouseSink *pSink,
++        DWORD *pdwCookie) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE UnadviseMouseSink(
++        DWORD dwCookie) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(ITfMouseTrackerACP, 0x3bdd78e2, 0xc16e, 0x47fd, 0xb8,0x83, 0xce,0x6f,0xac,0xc1,0xa2,0x08)
++#endif
++#else
++typedef struct ITfMouseTrackerACPVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        ITfMouseTrackerACP* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        ITfMouseTrackerACP* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        ITfMouseTrackerACP* This);
++
++    /*** ITfMouseTrackerACP methods ***/
++    HRESULT (STDMETHODCALLTYPE *AdviseMouseSink)(
++        ITfMouseTrackerACP* This,
++        ITfRangeACP *range,
++        ITfMouseSink *pSink,
++        DWORD *pdwCookie);
++
++    HRESULT (STDMETHODCALLTYPE *UnadviseMouseSink)(
++        ITfMouseTrackerACP* This,
++        DWORD dwCookie);
++
++    END_INTERFACE
++} ITfMouseTrackerACPVtbl;
++interface ITfMouseTrackerACP {
++    CONST_VTBL ITfMouseTrackerACPVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define ITfMouseTrackerACP_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define ITfMouseTrackerACP_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define ITfMouseTrackerACP_Release(This) (This)->lpVtbl->Release(This)
++/*** ITfMouseTrackerACP methods ***/
++#define ITfMouseTrackerACP_AdviseMouseSink(This,range,pSink,pdwCookie) (This)->lpVtbl->AdviseMouseSink(This,range,pSink,pdwCookie)
++#define ITfMouseTrackerACP_UnadviseMouseSink(This,dwCookie) (This)->lpVtbl->UnadviseMouseSink(This,dwCookie)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT ITfMouseTrackerACP_QueryInterface(ITfMouseTrackerACP* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG ITfMouseTrackerACP_AddRef(ITfMouseTrackerACP* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG ITfMouseTrackerACP_Release(ITfMouseTrackerACP* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** ITfMouseTrackerACP methods ***/
++static FORCEINLINE HRESULT ITfMouseTrackerACP_AdviseMouseSink(ITfMouseTrackerACP* This,ITfRangeACP *range,ITfMouseSink *pSink,DWORD *pdwCookie) {
++    return This->lpVtbl->AdviseMouseSink(This,range,pSink,pdwCookie);
++}
++static FORCEINLINE HRESULT ITfMouseTrackerACP_UnadviseMouseSink(ITfMouseTrackerACP* This,DWORD dwCookie) {
++    return This->lpVtbl->UnadviseMouseSink(This,dwCookie);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE ITfMouseTrackerACP_AdviseMouseSink_Proxy(
++    ITfMouseTrackerACP* This,
++    ITfRangeACP *range,
++    ITfMouseSink *pSink,
++    DWORD *pdwCookie);
++void __RPC_STUB ITfMouseTrackerACP_AdviseMouseSink_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE ITfMouseTrackerACP_UnadviseMouseSink_Proxy(
++    ITfMouseTrackerACP* This,
++    DWORD dwCookie);
++void __RPC_STUB ITfMouseTrackerACP_UnadviseMouseSink_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __ITfMouseTrackerACP_INTERFACE_DEFINED__ */
++
+ /* Begin additional prototypes for all interfaces */
+ 
+ ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
+diff --git a/mingw-w64-headers/include/msctf.idl b/mingw-w64-headers/include/msctf.idl
+index e4b54e4..d7a257f 100644
+--- a/mingw-w64-headers/include/msctf.idl
++++ b/mingw-w64-headers/include/msctf.idl
+@@ -1543,3 +1543,48 @@ interface ITfInputProcessorProfileActivationSink : IUnknown
+         [in] HKL hkl,
+         [in] DWORD dwFlags);
+ }
++
++[
++    object,
++    local,
++    uuid(a1adaaa2-3a24-449d-ac96-5183e7f5c217),
++    pointer_default(unique)
++]
++interface ITfMouseSink : IUnknown
++{
++    HRESULT OnMouseEvent(
++        [in] ULONG uEdge,
++        [in] ULONG uQuadrant,
++        [in] DWORD dwBtnStatus,
++        [out] BOOL *pfEaten);
++}
++
++[
++    object,
++    uuid(09d146cd-a544-4132-925b-7afa8ef322d0),
++    pointer_default(unique)
++]
++interface ITfMouseTracker : IUnknown
++{
++    HRESULT AdviseMouseSink(
++        [in] ITfRange *range,
++        [in] ITfMouseSink *pSink,
++        [out] DWORD *pdwCookie);
++
++    HRESULT UnadviseMouseSink([in] DWORD dwCookie);
++}
++
++[
++    object,
++    uuid(3bdd78e2-c16e-47fd-b883-ce6facc1a208),
++    pointer_default(unique)
++]
++interface ITfMouseTrackerACP : IUnknown
++{
++    HRESULT AdviseMouseSink(
++        [in] ITfRangeACP *range,
++        [in] ITfMouseSink *pSink,
++        [out] DWORD *pdwCookie);
++
++    HRESULT UnadviseMouseSink([in] DWORD dwCookie);
++}
+-- 
+2.1.0
+
diff --git a/0019-Updated-imported-headers-to-current-Wine-version.patch b/0019-Updated-imported-headers-to-current-Wine-version.patch
new file mode 100644
index 0000000..2c7470f
--- /dev/null
+++ b/0019-Updated-imported-headers-to-current-Wine-version.patch
@@ -0,0 +1,425 @@
+From 20078c37a98b20a61881c0338fa3fb75375800df Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Thu, 6 Feb 2014 14:09:51 +0000
+Subject: [PATCH 19/25] Updated imported headers to current Wine version.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6473 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/direct-x/include/d3d10misc.h |  1 +
+ mingw-w64-headers/direct-x/include/d3d9.h      | 80 ++++++++++++++++++++++
+ mingw-w64-headers/include/devicetopology.h     |  5 +-
+ mingw-w64-headers/include/devicetopology.idl   |  3 +-
+ mingw-w64-headers/include/msctf.h              | 95 ++++++++++++++++++++++++++
+ mingw-w64-headers/include/msctf.idl            | 13 ++++
+ 6 files changed, 192 insertions(+), 5 deletions(-)
+
+diff --git a/mingw-w64-headers/direct-x/include/d3d10misc.h b/mingw-w64-headers/direct-x/include/d3d10misc.h
+index 9f7f8e9..f8f5617 100644
+--- a/mingw-w64-headers/direct-x/include/d3d10misc.h
++++ b/mingw-w64-headers/direct-x/include/d3d10misc.h
+@@ -30,6 +30,7 @@ typedef enum D3D10_DRIVER_TYPE {
+     D3D10_DRIVER_TYPE_REFERENCE = 1,
+     D3D10_DRIVER_TYPE_NULL      = 2,
+     D3D10_DRIVER_TYPE_SOFTWARE  = 3,
++    D3D10_DRIVER_TYPE_WARP      = 5,
+ } D3D10_DRIVER_TYPE;
+ 
+ HRESULT WINAPI D3D10CreateDevice(IDXGIAdapter *adapter, D3D10_DRIVER_TYPE driver_type,
+diff --git a/mingw-w64-headers/direct-x/include/d3d9.h b/mingw-w64-headers/direct-x/include/d3d9.h
+index d810066..afdd47b 100644
+--- a/mingw-w64-headers/direct-x/include/d3d9.h
++++ b/mingw-w64-headers/direct-x/include/d3d9.h
+@@ -204,6 +204,10 @@ DECLARE_INTERFACE_(IDirect3D9,IUnknown)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3D9,                   0x81BDCBCA, 0x64D4, 0x426D, 0xAE, 0x8D, 0xAD, 0x1, 0x47, 0xF4, 0x27, 0x5C);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3D9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -289,6 +293,10 @@ DECLARE_INTERFACE_(IDirect3D9Ex,IDirect3D9)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3D9Ex,                 0x02177241, 0x69FC, 0x400C, 0x8F, 0xF1, 0x93, 0xA4, 0x4D, 0xF6, 0x86, 0x1D);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3D9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -359,6 +367,10 @@ DECLARE_INTERFACE_(IDirect3DVolume9,IUnknown)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DVolume9,             0x24f416e6, 0x1f67, 0x4aa7, 0xb8, 0x8e, 0xd3, 0x3f, 0x6f, 0x31, 0x28, 0xa1);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DVolume9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -411,6 +423,10 @@ DECLARE_INTERFACE_(IDirect3DSwapChain9,IUnknown)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DSwapChain9,          0x794950f2, 0xadfc, 0x458a, 0x90, 0x5e, 0x10, 0xa1, 0xb, 0xb, 0x50, 0x3b);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DSwapChain9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -465,6 +481,10 @@ DECLARE_INTERFACE_(IDirect3DSwapChain9Ex,IDirect3DSwapChain9)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DSwapChain9Ex,        0x91886caf, 0x1c3d, 0x4d2e, 0xa0, 0xab, 0x3e, 0x4c, 0x7d, 0x8d, 0x33, 0x3);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DSwapChain9Ex_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -523,6 +543,10 @@ DECLARE_INTERFACE_(IDirect3DResource9,IUnknown)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DResource9,           0x5eec05d, 0x8f7d, 0x4362, 0xb9, 0x99, 0xd1, 0xba, 0xf3, 0x57, 0xc7, 0x4);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DResource9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -582,6 +606,10 @@ DECLARE_INTERFACE_(IDirect3DSurface9,IDirect3DResource9)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DSurface9,            0xcfbaf3a, 0x9ff6, 0x429a, 0x99, 0xb3, 0xa2, 0x79, 0x6a, 0xf8, 0xb8, 0x9b);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DSurface9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -652,6 +680,10 @@ DECLARE_INTERFACE_(IDirect3DVertexBuffer9,IDirect3DResource9)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DVertexBuffer9,       0xb64bb1b5, 0xfd70, 0x4df6, 0xbf, 0x91, 0x19, 0xd0, 0xa1, 0x24, 0x55, 0xe3);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DVertexBuffer9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -716,6 +748,10 @@ DECLARE_INTERFACE_(IDirect3DIndexBuffer9,IDirect3DResource9)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DIndexBuffer9,        0x7c9dd65e, 0xd3f7, 0x4529, 0xac, 0xee, 0x78, 0x58, 0x30, 0xac, 0xde, 0x35);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DIndexBuffer9_QueryInterface(p,a,b)        (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -783,6 +819,10 @@ DECLARE_INTERFACE_(IDirect3DBaseTexture9,IDirect3DResource9)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DBaseTexture9,        0x580ca87e, 0x1d3c, 0x4d54, 0x99, 0x1d, 0xb7, 0xd3, 0xe3, 0xc2, 0x98, 0xce);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DBaseTexture9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -863,6 +903,10 @@ DECLARE_INTERFACE_(IDirect3DCubeTexture9,IDirect3DBaseTexture9)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DCubeTexture9,        0xfff32f81, 0xd953, 0x473a, 0x92, 0x23, 0x93, 0xd6, 0x52, 0xab, 0xa9, 0x3f);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DCubeTexture9_QueryInterface(p,a,b)       (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -954,6 +998,10 @@ DECLARE_INTERFACE_(IDirect3DTexture9,IDirect3DBaseTexture9)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DTexture9,            0x85c31227, 0x3de5, 0x4f00, 0x9b, 0x3a, 0xf1, 0x1a, 0xc3, 0x8c, 0x18, 0xb5);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DTexture9_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -1045,6 +1093,10 @@ DECLARE_INTERFACE_(IDirect3DVolumeTexture9,IDirect3DBaseTexture9)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DVolumeTexture9,      0x2518526c, 0xe789, 0x4111, 0xa7, 0xb9, 0x47, 0xef, 0x32, 0x8d, 0x13, 0xe6);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DVolumeTexture9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -1117,6 +1169,10 @@ DECLARE_INTERFACE_(IDirect3DVertexDeclaration9,IUnknown)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DVertexDeclaration9,  0xdd13c59c, 0x36fa, 0x4098, 0xa8, 0xfb, 0xc7, 0xed, 0x39, 0xdc, 0x85, 0x46);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DVertexDeclaration9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -1151,6 +1207,10 @@ DECLARE_INTERFACE_(IDirect3DVertexShader9,IUnknown)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DVertexShader9,       0xefc5557e, 0x6265, 0x4613, 0x8a, 0x94, 0x43, 0x85, 0x78, 0x89, 0xeb, 0x36);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DVertexShader9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -1185,6 +1245,10 @@ DECLARE_INTERFACE_(IDirect3DPixelShader9,IUnknown)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DPixelShader9,        0x6d3bdbdc, 0x5b02, 0x4415, 0xb8, 0x52, 0xce, 0x5e, 0x8b, 0xcc, 0xb2, 0x89);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DPixelShader9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -1220,6 +1284,10 @@ DECLARE_INTERFACE_(IDirect3DStateBlock9,IUnknown)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DStateBlock9,         0xb07c4fe5, 0x310d, 0x4ba8, 0xa2, 0x3c, 0x4f, 0xf, 0x20, 0x6f, 0x21, 0x8b);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DStateBlock9_QueryInterface(p,a,b)  (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -1259,6 +1327,10 @@ DECLARE_INTERFACE_(IDirect3DQuery9,IUnknown)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DQuery9,              0xd9771460, 0xa695, 0x4f26, 0xbb, 0xd3, 0x27, 0xb8, 0x40, 0xb5, 0x41, 0xcc);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DQuery9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -1420,6 +1492,10 @@ DECLARE_INTERFACE_(IDirect3DDevice9,IUnknown)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DDevice9,             0xd0223b96, 0xbf7a, 0x43fd, 0x92, 0xbd, 0xa4, 0x3b, 0xd, 0x82, 0xb9, 0xeb);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DDevice9_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+@@ -1825,6 +1901,10 @@ DECLARE_INTERFACE_(IDirect3DDevice9Ex,IDirect3DDevice9)
+ };
+ #undef INTERFACE
+ 
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDirect3DDevice9Ex,           0xb18b10ce, 0x2649, 0x405a, 0x87, 0xf, 0x95, 0xf7, 0x77, 0xd4, 0x31, 0x3a);
++#endif
++
+ #if !defined(__cplusplus) || defined(CINTERFACE)
+ /*** IUnknown methods ***/
+ #define IDirect3DDevice9Ex_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+diff --git a/mingw-w64-headers/include/devicetopology.h b/mingw-w64-headers/include/devicetopology.h
+index 44ad9b8..af8da24 100644
+--- a/mingw-w64-headers/include/devicetopology.h
++++ b/mingw-w64-headers/include/devicetopology.h
+@@ -1,4 +1,4 @@
+-/*** Autogenerated by WIDL 1.6 from devicetopology.idl - Do not edit ***/
++/*** Autogenerated by WIDL 1.6 from include/devicetopology.idl - Do not edit ***/
+ 
+ #ifndef __REQUIRED_RPCNDR_H_VERSION__
+ #define __REQUIRED_RPCNDR_H_VERSION__ 475
+@@ -227,8 +227,7 @@ typedef enum __WIDL_devicetopology_generated_name_00000015 {
+     eConnTypeOtherAnalog = 7,
+     eConnTypeMultichannelAnalogDIN = 8,
+     eConnTypeXlrProfessional = 9,
+-    eConnTypeRj11Modem = 10,
+-    eConnTypeRJ11Modem = eConnTypeRj11Modem,
++    eConnTypeRJ11Modem = 10,
+     eConnTypeCombination = 11
+ } EPcxConnectionType;
+ typedef enum __WIDL_devicetopology_generated_name_00000016 {
+diff --git a/mingw-w64-headers/include/devicetopology.idl b/mingw-w64-headers/include/devicetopology.idl
+index a963c9c..74796a2 100644
+--- a/mingw-w64-headers/include/devicetopology.idl
++++ b/mingw-w64-headers/include/devicetopology.idl
+@@ -81,8 +81,7 @@ typedef enum
+     eConnTypeOtherAnalog,
+     eConnTypeMultichannelAnalogDIN,
+     eConnTypeXlrProfessional,
+-    eConnTypeRj11Modem,
+-    eConnTypeRJ11Modem = eConnTypeRj11Modem,
++    eConnTypeRJ11Modem,
+     eConnTypeCombination
+ } EPcxConnectionType;
+ 
+diff --git a/mingw-w64-headers/include/msctf.h b/mingw-w64-headers/include/msctf.h
+index 5bed0a2..f30fe17 100644
+--- a/mingw-w64-headers/include/msctf.h
++++ b/mingw-w64-headers/include/msctf.h
+@@ -87,6 +87,11 @@ typedef interface ITfTextEditSink ITfTextEditSink;
+ typedef interface ITfContextOwnerCompositionSink ITfContextOwnerCompositionSink;
+ #endif
+ 
++#ifndef __ITfActiveLanguageProfileNotifySink_FWD_DEFINED__
++#define __ITfActiveLanguageProfileNotifySink_FWD_DEFINED__
++typedef interface ITfActiveLanguageProfileNotifySink ITfActiveLanguageProfileNotifySink;
++#endif
++
+ #ifndef __IEnumTfLanguageProfiles_FWD_DEFINED__
+ #define __IEnumTfLanguageProfiles_FWD_DEFINED__
+ typedef interface IEnumTfLanguageProfiles IEnumTfLanguageProfiles;
+@@ -3636,6 +3641,96 @@ void __RPC_STUB ITfContextOwnerCompositionSink_OnEndComposition_Stub(
+ #endif  /* __ITfContextOwnerCompositionSink_INTERFACE_DEFINED__ */
+ 
+ /*****************************************************************************
++ * ITfActiveLanguageProfileNotifySink interface
++ */
++#ifndef __ITfActiveLanguageProfileNotifySink_INTERFACE_DEFINED__
++#define __ITfActiveLanguageProfileNotifySink_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_ITfActiveLanguageProfileNotifySink, 0xb246cb75, 0xa93e, 0x4652, 0xbf,0x8c, 0xb3,0xfe,0x0c,0xfd,0x7e,0x57);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("b246cb75-a93e-4652-bf8c-b3fe0cfd7e57")
++ITfActiveLanguageProfileNotifySink : public IUnknown
++{
++    virtual HRESULT STDMETHODCALLTYPE OnActivated(
++        REFCLSID clsid,
++        REFGUID guidProfile,
++        WINBOOL fActivated) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(ITfActiveLanguageProfileNotifySink, 0xb246cb75, 0xa93e, 0x4652, 0xbf,0x8c, 0xb3,0xfe,0x0c,0xfd,0x7e,0x57)
++#endif
++#else
++typedef struct ITfActiveLanguageProfileNotifySinkVtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        ITfActiveLanguageProfileNotifySink* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        ITfActiveLanguageProfileNotifySink* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        ITfActiveLanguageProfileNotifySink* This);
++
++    /*** ITfActiveLanguageProfileNotifySink methods ***/
++    HRESULT (STDMETHODCALLTYPE *OnActivated)(
++        ITfActiveLanguageProfileNotifySink* This,
++        REFCLSID clsid,
++        REFGUID guidProfile,
++        WINBOOL fActivated);
++
++    END_INTERFACE
++} ITfActiveLanguageProfileNotifySinkVtbl;
++interface ITfActiveLanguageProfileNotifySink {
++    CONST_VTBL ITfActiveLanguageProfileNotifySinkVtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define ITfActiveLanguageProfileNotifySink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define ITfActiveLanguageProfileNotifySink_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define ITfActiveLanguageProfileNotifySink_Release(This) (This)->lpVtbl->Release(This)
++/*** ITfActiveLanguageProfileNotifySink methods ***/
++#define ITfActiveLanguageProfileNotifySink_OnActivated(This,clsid,guidProfile,fActivated) (This)->lpVtbl->OnActivated(This,clsid,guidProfile,fActivated)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT ITfActiveLanguageProfileNotifySink_QueryInterface(ITfActiveLanguageProfileNotifySink* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG ITfActiveLanguageProfileNotifySink_AddRef(ITfActiveLanguageProfileNotifySink* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG ITfActiveLanguageProfileNotifySink_Release(ITfActiveLanguageProfileNotifySink* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** ITfActiveLanguageProfileNotifySink methods ***/
++static FORCEINLINE HRESULT ITfActiveLanguageProfileNotifySink_OnActivated(ITfActiveLanguageProfileNotifySink* This,REFCLSID clsid,REFGUID guidProfile,WINBOOL fActivated) {
++    return This->lpVtbl->OnActivated(This,clsid,guidProfile,fActivated);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE ITfActiveLanguageProfileNotifySink_OnActivated_Proxy(
++    ITfActiveLanguageProfileNotifySink* This,
++    REFCLSID clsid,
++    REFGUID guidProfile,
++    WINBOOL fActivated);
++void __RPC_STUB ITfActiveLanguageProfileNotifySink_OnActivated_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __ITfActiveLanguageProfileNotifySink_INTERFACE_DEFINED__ */
++
++/*****************************************************************************
+  * IEnumTfLanguageProfiles interface
+  */
+ #ifndef __IEnumTfLanguageProfiles_INTERFACE_DEFINED__
+diff --git a/mingw-w64-headers/include/msctf.idl b/mingw-w64-headers/include/msctf.idl
+index d7a257f..bce38ab 100644
+--- a/mingw-w64-headers/include/msctf.idl
++++ b/mingw-w64-headers/include/msctf.idl
+@@ -738,6 +738,19 @@ interface ITfContextOwnerCompositionSink : IUnknown
+ };
+ 
+ [
++    object,
++    uuid(b246cb75-a93e-4652-bf8c-b3fe0cfd7e57),
++    pointer_default(unique)
++]
++interface ITfActiveLanguageProfileNotifySink : IUnknown
++{
++    HRESULT OnActivated(
++        [in] REFCLSID clsid,
++        [in] REFGUID guidProfile,
++        [in] BOOL fActivated);
++}
++
++[
+   object,
+   uuid(3d61bf11-ac5f-42c8-a4cb-931bcc28c744),
+   pointer_default(unique)
+-- 
+2.1.0
+
diff --git a/0020-Fixed-some-version-guards.patch b/0020-Fixed-some-version-guards.patch
new file mode 100644
index 0000000..4391423
--- /dev/null
+++ b/0020-Fixed-some-version-guards.patch
@@ -0,0 +1,78 @@
+From 64f7891f507795e17a7c843b1a936f3750c3de09 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <cjacek at gmail.com>
+Date: Fri, 21 Feb 2014 11:46:07 +0000
+Subject: [PATCH 20/25] Fixed some version guards.
+
+git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6491 4407c894-4637-0410-b4f5-ada5f102cad1
+---
+ mingw-w64-headers/include/eaptypes.h | 4 ++--
+ mingw-w64-headers/include/evntprov.h | 4 ++--
+ mingw-w64-headers/include/wlanapi.h  | 3 ---
+ 3 files changed, 4 insertions(+), 7 deletions(-)
+
+diff --git a/mingw-w64-headers/include/eaptypes.h b/mingw-w64-headers/include/eaptypes.h
+index a6d77a1..544543d 100644
+--- a/mingw-w64-headers/include/eaptypes.h
++++ b/mingw-w64-headers/include/eaptypes.h
+@@ -5,7 +5,7 @@
+  */
+ #ifndef _INC_EAPTYPES
+ #define _INC_EAPTYPES
+-#if (_WIN32_WINNT >= 0x0600)
++
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+@@ -306,5 +306,5 @@ typedef struct _EAP_CRED_EXPIRY_RESP {
+ #ifdef __cplusplus
+ }
+ #endif
+-#endif /*(_WIN32_WINNT >= 0x0600)*/
++
+ #endif /*_INC_EAPTYPES*/
+diff --git a/mingw-w64-headers/include/evntprov.h b/mingw-w64-headers/include/evntprov.h
+index 23274e0..2ea61e1 100644
+--- a/mingw-w64-headers/include/evntprov.h
++++ b/mingw-w64-headers/include/evntprov.h
+@@ -102,7 +102,7 @@ typedef VOID
+   PEVENT_FILTER_DESCRIPTOR FilterData,
+   PVOID CallbackContext);
+ 
+-#if (_WIN32_WINNT >= 0x0600)
++#if (WINVER >= 0x0600)
+ ULONG EVNTAPI EventRegister(
+   LPCGUID ProviderId,
+   PENABLECALLBACK EnableCallback,
+@@ -153,7 +153,7 @@ ULONG EVNTAPI EventActivityIdControl(
+   LPGUID ActivityId
+ );
+ 
+-#endif /*(_WIN32_WINNT >= 0x0600)*/
++#endif /*(WINVER >= 0x0600)*/
+ 
+ #if (_WIN32_WINNT >= 0x0601)
+ ULONG EVNTAPI EventWriteEx(
+diff --git a/mingw-w64-headers/include/wlanapi.h b/mingw-w64-headers/include/wlanapi.h
+index 598b991..fa0e506 100644
+--- a/mingw-w64-headers/include/wlanapi.h
++++ b/mingw-w64-headers/include/wlanapi.h
+@@ -386,7 +386,6 @@ DWORD WINAPI WlanSetProfilePosition(
+   PVOID pReserved
+ );
+ 
+-#if (_WIN32_WINNT >= 0x0600)
+ typedef char DOT11_COUNTRY_OR_REGION_STRING[3];
+ 
+ typedef enum _WLAN_AUTOCONF_OPCODE {
+@@ -738,8 +737,6 @@ DWORD WINAPI WlanUIEditProfile(
+   PWLAN_REASON_CODE *pWlanReasonCode
+ );
+ 
+-#endif /*(_WIN32_WINNT >= 0x0600)*/
+-
+ #ifdef __cplusplus
+ }
+ #endif
+-- 
+2.1.0
+
diff --git a/0021-Lower-_WIN32_WINNT-requirements-for-Un-RegisterPower.patch b/0021-Lower-_WIN32_WINNT-requirements-for-Un-RegisterPower.patch
new file mode 100644
index 0000000..34a0e33
--- /dev/null
+++ b/0021-Lower-_WIN32_WINNT-requirements-for-Un-RegisterPower.patch
@@ -0,0 +1,30 @@
+From 8269507a53e48bd584db5fa6a8d174681800e893 Mon Sep 17 00:00:00 2001
+From: Erik van Pienbroek <epienbro at fedoraproject.org>
+Date: Wed, 31 Dec 2014 18:44:01 +0100
+Subject: [PATCH 21/25] Lower _WIN32_WINNT requirements for
+ {Un,}RegisterPowerSettingNotification
+
+This got changed in master in commit b354505ea8a1b93558c7941db2d94a949b922ecd
+Perhaps this change was done by accident as the MSDN documentation at
+http://msdn.microsoft.com/en-us/library/windows/desktop/aa373196%28v=vs.85%29.aspx
+indicates that these functions are only available as of Windows Vista
+---
+ mingw-w64-headers/include/winuser.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mingw-w64-headers/include/winuser.h b/mingw-w64-headers/include/winuser.h
+index 975b00d..0f1f8cd 100644
+--- a/mingw-w64-headers/include/winuser.h
++++ b/mingw-w64-headers/include/winuser.h
+@@ -1877,7 +1877,7 @@ extern "C" {
+ 
+   WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationA(HANDLE hRecipient,LPVOID NotificationFilter,DWORD Flags);
+   WINUSERAPI HDEVNOTIFY WINAPI RegisterDeviceNotificationW(HANDLE hRecipient,LPVOID NotificationFilter,DWORD Flags);
+-#if (_WIN32_WINNT >= 0x0600)
++#if (_WIN32_WINNT >= 0x0502)
+   WINUSERAPI HPOWERNOTIFY WINAPI RegisterPowerSettingNotification(HANDLE hRecipient,LPCGUID PowerSettingGuid,DWORD Flags);
+   WINUSERAPI WINBOOL WINAPI UnregisterPowerSettingNotification(HPOWERNOTIFY Handle);
+ #endif
+-- 
+2.1.0
+
diff --git a/0022-dwrite.h-Don-t-duplicate-parent-interface-methods-fo.patch b/0022-dwrite.h-Don-t-duplicate-parent-interface-methods-fo.patch
new file mode 100644
index 0000000..1653bd1
--- /dev/null
+++ b/0022-dwrite.h-Don-t-duplicate-parent-interface-methods-fo.patch
@@ -0,0 +1,394 @@
+From 9aaacfa9c6f2c9608d47b4997add4a81eeb2bbd2 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <jacek at codeweavers.com>
+Date: Fri, 15 Aug 2014 19:10:55 +0200
+Subject: [PATCH 22/25] dwrite.h: Don't duplicate parent interface methods for
+ C++ because it breaks templated QueryInterface implementation and fixed
+ IDWriteFontFileEnumerator declaration.
+
+---
+ mingw-w64-headers/include/dwrite.h | 59 ++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 57 insertions(+), 2 deletions(-)
+
+diff --git a/mingw-w64-headers/include/dwrite.h b/mingw-w64-headers/include/dwrite.h
+index df35bbd..3267977 100644
+--- a/mingw-w64-headers/include/dwrite.h
++++ b/mingw-w64-headers/include/dwrite.h
+@@ -614,10 +614,12 @@ DECLARE_INTERFACE_(IDWriteBitmapRenderTarget,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteBitmapRenderTarget methods */
+     STDMETHOD(DrawGlyphRun)(THIS_
+@@ -670,10 +672,12 @@ DECLARE_INTERFACE_(IDWriteFactory,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteFactory methods */
+     STDMETHOD(GetSystemFontCollection)(THIS_
+@@ -825,10 +829,12 @@ DECLARE_INTERFACE_(IDWriteFont,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteFont methods */
+     STDMETHOD(GetFontFamily)(THIS_
+@@ -884,10 +890,12 @@ DECLARE_INTERFACE_(IDWriteFontCollection,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteFontCollection methods */
+     STDMETHOD_(UINT32, GetFontFamilyCount)(THIS) PURE;
+@@ -923,10 +931,12 @@ DECLARE_INTERFACE_(IDWriteFontFace,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteFontFace methods */
+     STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
+@@ -1028,10 +1038,12 @@ DECLARE_INTERFACE_(IDWriteFontList,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteFontList methods */
+     STDMETHOD(GetFontCollection)(THIS_
+@@ -1060,6 +1072,7 @@ DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+@@ -1074,6 +1087,7 @@ DECLARE_INTERFACE_(IDWriteFontFamily,IDWriteFontList)
+     STDMETHOD(GetFont)(THIS_
+         UINT32 index,
+         IDWriteFont **font) PURE;
++#endif
+ 
+     /* IDWriteFontFamily methods */
+     STDMETHOD(GetFamilyNames)(THIS_
+@@ -1111,10 +1125,12 @@ DECLARE_INTERFACE_(IDWriteFontFile,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteFontFile methods */
+     STDMETHOD(GetReferenceKey)(THIS_
+@@ -1147,10 +1163,12 @@ DECLARE_INTERFACE_(IDWriteFontFileLoader,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteFontFileLoader methods */
+     STDMETHOD(CreateStreamFromKey)(
+@@ -1173,10 +1191,12 @@ DECLARE_INTERFACE_(IDWriteFontFileStream,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteFontFileStream methods */
+     STDMETHOD(ReadFileFragment)(THIS_
+@@ -1212,10 +1232,12 @@ DECLARE_INTERFACE_(IDWriteFontCollectionLoader,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteFontCollectionLoader methods */
+     STDMETHOD_(HRESULT,CreateEnumeratorFromKey)(THIS_ IDWriteFactory * factory,const void * collectionKey,UINT32  collectionKeySize,IDWriteFontFileEnumerator ** fontFileEnumerator) PURE;
+@@ -1235,14 +1257,16 @@ DECLARE_INTERFACE_(IDWriteFontFileEnumerator,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteFontFileEnumerator methods */
+-    STDMETHOD_(HRESULT,GetCurrentFontFile)(THIS_ IDWriteFontFile ** fontFile) PURE;
+     STDMETHOD_(HRESULT,MoveNext)(THIS_ WINBOOL * hasCurrentFile) PURE;
++    STDMETHOD_(HRESULT,GetCurrentFontFile)(THIS_ IDWriteFontFile ** fontFile) PURE;
+ 
+     END_INTERFACE
+ };
+@@ -1260,10 +1284,12 @@ DECLARE_INTERFACE_(IDWriteGdiInterop,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteGdiInterop methods */
+     STDMETHOD(CreateFontFromLOGFONT)(THIS_
+@@ -1308,10 +1334,12 @@ DECLARE_INTERFACE_(IDWriteGlyphRunAnalysis,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteGlyphRunAnalysis methods */
+     STDMETHOD(GetAlphaTextureBounds)(THIS_
+@@ -1347,10 +1375,12 @@ DECLARE_INTERFACE_(IDWriteInlineObject,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteInlineObject methods */
+     STDMETHOD(Draw)(THIS_
+@@ -1387,10 +1417,12 @@ DECLARE_INTERFACE_(IDWriteLocalFontFileLoader,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteLocalFontFileLoader methods */
+     STDMETHOD_(HRESULT,GetFilePathLengthFromKey)(THIS_ const void *fontFileReferenceKey,UINT32 fontFileReferenceKeySize,UINT32 *filePathLength) PURE;
+@@ -1414,10 +1446,12 @@ DECLARE_INTERFACE_(IDWriteLocalizedStrings,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteLocalizedStrings methods */
+     STDMETHOD_(UINT32, GetCount)(THIS) PURE;
+@@ -1465,10 +1499,12 @@ DECLARE_INTERFACE_(IDWriteNumberSubstitution,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteNumberSubstitution methods */
+ 
+@@ -1486,10 +1522,12 @@ DECLARE_INTERFACE_(IDWritePixelSnapping,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWritePixelSnapping methods */
+     STDMETHOD(IsPixelSnappingDisabled)(THIS_
+@@ -1519,10 +1557,12 @@ DECLARE_INTERFACE_(IDWriteRenderingParams,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteRenderingParams methods */
+     STDMETHOD_(FLOAT, GetGamma)(THIS) PURE;
+@@ -1550,10 +1590,12 @@ DECLARE_INTERFACE_(IDWriteTextAnalysisSink,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteTextAnalysisSink methods */
+     STDMETHOD(SetScriptAnalysis)(
+@@ -1595,10 +1637,12 @@ DECLARE_INTERFACE_(IDWriteTextAnalysisSource,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteTextAnalysisSource methods */
+     STDMETHOD(GetTextAtPosition)(THIS_
+@@ -1642,10 +1686,12 @@ DECLARE_INTERFACE_(IDWriteTextAnalyzer,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteTextAnalyzer methods */
+     STDMETHOD(AnalyzeScript)(THIS_
+@@ -1755,10 +1801,12 @@ DECLARE_INTERFACE_(IDWriteTextFormat,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteTextFormat methods */
+     STDMETHOD(SetTextAlignment)(THIS_
+@@ -1847,6 +1895,7 @@ DECLARE_INTERFACE_(IDWriteTextLayout,IDWriteTextFormat)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+@@ -1899,6 +1948,7 @@ DECLARE_INTERFACE_(IDWriteTextLayout,IDWriteTextFormat)
+     STDMETHOD(GetLocaleName)(THIS_
+             WCHAR *localeName,
+             UINT32 nameSize) PURE;
++#endif
+ 
+     /* IDWriteTextLayout methods */
+     STDMETHOD(SetMaxWidth)(THIS_
+@@ -2119,6 +2169,7 @@ DECLARE_INTERFACE_(IDWriteTextRenderer,IDWritePixelSnapping)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+@@ -2134,6 +2185,7 @@ DECLARE_INTERFACE_(IDWriteTextRenderer,IDWritePixelSnapping)
+     STDMETHOD(GetPixelsPerDip)(THIS_
+             void *clientDrawingContext,
+             FLOAT *pixelsPerDip) PURE;
++#endif
+ 
+     /* IDWriteTextRenderer methods */
+     STDMETHOD(DrawGlyphRun)(THIS_
+@@ -2186,10 +2238,12 @@ DECLARE_INTERFACE_(IDWriteTypography,IUnknown)
+ {
+     BEGIN_INTERFACE
+ 
++#ifndef __cplusplus
+     /* IUnknown methods */
+     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
+     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
+     STDMETHOD_(ULONG, Release)(THIS) PURE;
++#endif
+ 
+     /* IDWriteTypography methods */
+     STDMETHOD_(HRESULT,AddFontFeature)(THIS_ DWRITE_FONT_FEATURE  fontFeature) PURE;
+@@ -2243,8 +2297,9 @@ __CRT_UUID_DECL(IDWriteTextRenderer, 0xef8a8135,0x5cc6,0x45fe,0x88,0x25,0xc5,0xa
+ __CRT_UUID_DECL(IDWriteInlineObject, 0x8339fde3,0x106f,0x47ab,0x83,0x73,0x1c,0x62,0x95,0xeb,0x10,0xb3);
+ __CRT_UUID_DECL(IDWriteTextFormat, 0x9c906818,0x31d7,0x4fd3,0xa1,0x51,0x7c,0x5e,0x22,0x5d,0xb5,0x5a);
+ __CRT_UUID_DECL(IDWriteTextLayout, 0x53737037,0x6d14,0x410b,0x9b,0xfe,0x0b,0x18,0x2b,0xb7,0x09,0x61);
++__CRT_UUID_DECL(IDWriteFontFileEnumerator, 0x72755049,0x5ff7,0x435d,0x83,0x48,0x4b,0xe9,0x7c,0xfa,0x6c,0x7c);
++__CRT_UUID_DECL(IDWriteFontCollectionLoader, 0xcca920e4,0x52f0,0x492b,0xbf,0xa8,0x29,0xc7,0x2e,0xe0,0xa4,0x68);
+ 
+-#define IDWriteFontFileEnumerator __MINGW_POISON_NAME(IDWriteFontFileEnumerator)
+ #define IDWriteLocalFontFileLoader __MINGW_POISON_NAME(IDWriteLocalFontFileLoader)
+ #define IDWriteTypography __MINGW_POISON_NAME(IDWriteTypography)
+ 
+-- 
+2.1.0
+
diff --git a/0023-string_s.h-wchar_s.h-Added-wcsnlen_s-implementation.patch b/0023-string_s.h-wchar_s.h-Added-wcsnlen_s-implementation.patch
new file mode 100644
index 0000000..cefc342
--- /dev/null
+++ b/0023-string_s.h-wchar_s.h-Added-wcsnlen_s-implementation.patch
@@ -0,0 +1,41 @@
+From 68206881595bc52d77c6dd462ca1ab0c1c4e92b5 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <jacek at codeweavers.com>
+Date: Fri, 15 Aug 2014 19:04:47 +0200
+Subject: [PATCH 23/25] string_s.h/wchar_s.h: Added wcsnlen_s implementation.
+
+---
+ mingw-w64-headers/crt/sec_api/string_s.h | 3 +++
+ mingw-w64-headers/crt/sec_api/wchar_s.h  | 3 +++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/mingw-w64-headers/crt/sec_api/string_s.h b/mingw-w64-headers/crt/sec_api/string_s.h
+index f1db895..171efe7 100644
+--- a/mingw-w64-headers/crt/sec_api/string_s.h
++++ b/mingw-w64-headers/crt/sec_api/string_s.h
+@@ -56,6 +56,9 @@ extern "C" {
+   _CRTIMP errno_t __cdecl _wcsset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val,_locale_t _Locale);
+   _CRTIMP errno_t __cdecl _wcsnset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val, size_t _Count,_locale_t _Locale);
+ 
++  extern inline size_t __cdecl wcsnlen_s(const wchar_t * _src, size_t _count) {
++    return _src ? wcsnlen(_src, _count) : 0;
++  }
+ #endif
+ 
+ #ifndef _MEMORY_S_DEFINED
+diff --git a/mingw-w64-headers/crt/sec_api/wchar_s.h b/mingw-w64-headers/crt/sec_api/wchar_s.h
+index 203ac59..6354d17 100644
+--- a/mingw-w64-headers/crt/sec_api/wchar_s.h
++++ b/mingw-w64-headers/crt/sec_api/wchar_s.h
+@@ -128,6 +128,9 @@ extern "C" {
+   _CRTIMP errno_t __cdecl _wcsset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val,_locale_t _Locale);
+   _CRTIMP errno_t __cdecl _wcsnset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val, size_t _Count,_locale_t _Locale);
+ 
++  extern inline size_t __cdecl wcsnlen_s(const wchar_t * _src, size_t _count) {
++    return _src ? wcsnlen(_src, _count) : 0;
++  }
+ #endif
+ 
+ #ifndef _WTIME_S_DEFINED
+-- 
+2.1.0
+
diff --git a/0024-Use-__forceinline-for-wcsnlen_s-implementation.patch b/0024-Use-__forceinline-for-wcsnlen_s-implementation.patch
new file mode 100644
index 0000000..52e5e72
--- /dev/null
+++ b/0024-Use-__forceinline-for-wcsnlen_s-implementation.patch
@@ -0,0 +1,39 @@
+From f09cf32b881e9501f81825960961b3ae8ee97ee7 Mon Sep 17 00:00:00 2001
+From: Jacek Caban <jacek at codeweavers.com>
+Date: Thu, 21 Aug 2014 14:23:50 +0200
+Subject: [PATCH 24/25] Use __forceinline for wcsnlen_s implementation.
+
+---
+ mingw-w64-headers/crt/sec_api/string_s.h | 2 +-
+ mingw-w64-headers/crt/sec_api/wchar_s.h  | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/mingw-w64-headers/crt/sec_api/string_s.h b/mingw-w64-headers/crt/sec_api/string_s.h
+index 171efe7..11d493a 100644
+--- a/mingw-w64-headers/crt/sec_api/string_s.h
++++ b/mingw-w64-headers/crt/sec_api/string_s.h
+@@ -56,7 +56,7 @@ extern "C" {
+   _CRTIMP errno_t __cdecl _wcsset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val,_locale_t _Locale);
+   _CRTIMP errno_t __cdecl _wcsnset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val, size_t _Count,_locale_t _Locale);
+ 
+-  extern inline size_t __cdecl wcsnlen_s(const wchar_t * _src, size_t _count) {
++  __forceinline size_t __cdecl wcsnlen_s(const wchar_t * _src, size_t _count) {
+     return _src ? wcsnlen(_src, _count) : 0;
+   }
+ #endif
+diff --git a/mingw-w64-headers/crt/sec_api/wchar_s.h b/mingw-w64-headers/crt/sec_api/wchar_s.h
+index 6354d17..0d39626 100644
+--- a/mingw-w64-headers/crt/sec_api/wchar_s.h
++++ b/mingw-w64-headers/crt/sec_api/wchar_s.h
+@@ -128,7 +128,7 @@ extern "C" {
+   _CRTIMP errno_t __cdecl _wcsset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val,_locale_t _Locale);
+   _CRTIMP errno_t __cdecl _wcsnset_s_l(wchar_t *_Str,size_t _SizeInChars,unsigned int _Val, size_t _Count,_locale_t _Locale);
+ 
+-  extern inline size_t __cdecl wcsnlen_s(const wchar_t * _src, size_t _count) {
++  __forceinline size_t __cdecl wcsnlen_s(const wchar_t * _src, size_t _count) {
+     return _src ? wcsnlen(_src, _count) : 0;
+   }
+ #endif
+-- 
+2.1.0
+
diff --git a/0025-Implement-IDXGIDevice1.patch b/0025-Implement-IDXGIDevice1.patch
new file mode 100644
index 0000000..9789c13
--- /dev/null
+++ b/0025-Implement-IDXGIDevice1.patch
@@ -0,0 +1,253 @@
+From 2275894ebf68caa582825f119a5f5d24ef204532 Mon Sep 17 00:00:00 2001
+From: Erik van Pienbroek <epienbro at fedoraproject.org>
+Date: Wed, 31 Dec 2014 22:05:55 +0100
+Subject: [PATCH 25/25] Implement IDXGIDevice1
+
+This is a partial cherry-pick of 2d16d4790c9fa8d0320fdaa4bfe2206249bc8126
+---
+ mingw-w64-headers/direct-x/include/dxgi.h   | 198 ++++++++++++++++++++++++++++
+ mingw-w64-headers/direct-x/include/dxgi.idl |  12 ++
+ 2 files changed, 210 insertions(+)
+
+diff --git a/mingw-w64-headers/direct-x/include/dxgi.h b/mingw-w64-headers/direct-x/include/dxgi.h
+index 733bf39..a8a99ed 100644
+--- a/mingw-w64-headers/direct-x/include/dxgi.h
++++ b/mingw-w64-headers/direct-x/include/dxgi.h
+@@ -72,6 +72,11 @@ typedef interface IDXGIDevice IDXGIDevice;
+ typedef interface IDXGIAdapter1 IDXGIAdapter1;
+ #endif
+ 
++#ifndef __IDXGIDevice1_FWD_DEFINED__
++#define __IDXGIDevice1_FWD_DEFINED__
++typedef interface IDXGIDevice1 IDXGIDevice1;
++#endif
++
+ #ifndef __IDXGIFactory1_FWD_DEFINED__
+ #define __IDXGIFactory1_FWD_DEFINED__
+ typedef interface IDXGIFactory1 IDXGIFactory1;
+@@ -2487,6 +2492,199 @@ void __RPC_STUB IDXGIAdapter1_GetDesc1_Stub(
+ #endif  /* __IDXGIAdapter1_INTERFACE_DEFINED__ */
+ 
+ /*****************************************************************************
++ * IDXGIDevice1 interface
++ */
++#ifndef __IDXGIDevice1_INTERFACE_DEFINED__
++#define __IDXGIDevice1_INTERFACE_DEFINED__
++
++DEFINE_GUID(IID_IDXGIDevice1, 0x77db970f, 0x6276, 0x48ba, 0xba,0x28, 0x07,0x01,0x43,0xb4,0x39,0x2c);
++#if defined(__cplusplus) && !defined(CINTERFACE)
++MIDL_INTERFACE("77db970f-6276-48ba-ba28-070143b4392c")
++IDXGIDevice1 : public IDXGIDevice
++{
++    virtual HRESULT STDMETHODCALLTYPE SetMaximumFrameLatency(
++        UINT MaxLatency) = 0;
++
++    virtual HRESULT STDMETHODCALLTYPE GetMaximumFrameLatency(
++        UINT *pMaxLatency) = 0;
++
++};
++#ifdef __CRT_UUID_DECL
++__CRT_UUID_DECL(IDXGIDevice1, 0x77db970f, 0x6276, 0x48ba, 0xba,0x28, 0x07,0x01,0x43,0xb4,0x39,0x2c)
++#endif
++#else
++typedef struct IDXGIDevice1Vtbl {
++    BEGIN_INTERFACE
++
++    /*** IUnknown methods ***/
++    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
++        IDXGIDevice1* This,
++        REFIID riid,
++        void **ppvObject);
++
++    ULONG (STDMETHODCALLTYPE *AddRef)(
++        IDXGIDevice1* This);
++
++    ULONG (STDMETHODCALLTYPE *Release)(
++        IDXGIDevice1* This);
++
++    /*** IDXGIObject methods ***/
++    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
++        IDXGIDevice1* This,
++        REFGUID guid,
++        UINT data_size,
++        const void *data);
++
++    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
++        IDXGIDevice1* This,
++        REFGUID guid,
++        const IUnknown *object);
++
++    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
++        IDXGIDevice1* This,
++        REFGUID guid,
++        UINT *data_size,
++        void *data);
++
++    HRESULT (STDMETHODCALLTYPE *GetParent)(
++        IDXGIDevice1* This,
++        REFIID riid,
++        void **parent);
++
++    /*** IDXGIDevice methods ***/
++    HRESULT (STDMETHODCALLTYPE *GetAdapter)(
++        IDXGIDevice1* This,
++        IDXGIAdapter **adapter);
++
++    HRESULT (STDMETHODCALLTYPE *CreateSurface)(
++        IDXGIDevice1* This,
++        const DXGI_SURFACE_DESC *desc,
++        UINT surface_count,
++        DXGI_USAGE usage,
++        const DXGI_SHARED_RESOURCE *shared_resource,
++        IDXGISurface **surface);
++
++    HRESULT (STDMETHODCALLTYPE *QueryResourceResidency)(
++        IDXGIDevice1* This,
++        IUnknown *const *resources,
++        DXGI_RESIDENCY *residency,
++        UINT resource_count);
++
++    HRESULT (STDMETHODCALLTYPE *SetGPUThreadPriority)(
++        IDXGIDevice1* This,
++        INT priority);
++
++    HRESULT (STDMETHODCALLTYPE *GetGPUThreadPriority)(
++        IDXGIDevice1* This,
++        INT *priority);
++
++    /*** IDXGIDevice1 methods ***/
++    HRESULT (STDMETHODCALLTYPE *SetMaximumFrameLatency)(
++        IDXGIDevice1* This,
++        UINT MaxLatency);
++
++    HRESULT (STDMETHODCALLTYPE *GetMaximumFrameLatency)(
++        IDXGIDevice1* This,
++        UINT *pMaxLatency);
++
++    END_INTERFACE
++} IDXGIDevice1Vtbl;
++interface IDXGIDevice1 {
++    CONST_VTBL IDXGIDevice1Vtbl* lpVtbl;
++};
++
++#ifdef COBJMACROS
++#ifndef WIDL_C_INLINE_WRAPPERS
++/*** IUnknown methods ***/
++#define IDXGIDevice1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
++#define IDXGIDevice1_AddRef(This) (This)->lpVtbl->AddRef(This)
++#define IDXGIDevice1_Release(This) (This)->lpVtbl->Release(This)
++/*** IDXGIObject methods ***/
++#define IDXGIDevice1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
++#define IDXGIDevice1_SetPrivateDataInterface(This,guid,object) (This)->lpVtbl->SetPrivateDataInterface(This,guid,object)
++#define IDXGIDevice1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
++#define IDXGIDevice1_GetParent(This,riid,parent) (This)->lpVtbl->GetParent(This,riid,parent)
++/*** IDXGIDevice methods ***/
++#define IDXGIDevice1_GetAdapter(This,adapter) (This)->lpVtbl->GetAdapter(This,adapter)
++#define IDXGIDevice1_CreateSurface(This,desc,surface_count,usage,shared_resource,surface) (This)->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface)
++#define IDXGIDevice1_QueryResourceResidency(This,resources,residency,resource_count) (This)->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count)
++#define IDXGIDevice1_SetGPUThreadPriority(This,priority) (This)->lpVtbl->SetGPUThreadPriority(This,priority)
++#define IDXGIDevice1_GetGPUThreadPriority(This,priority) (This)->lpVtbl->GetGPUThreadPriority(This,priority)
++/*** IDXGIDevice1 methods ***/
++#define IDXGIDevice1_SetMaximumFrameLatency(This,MaxLatency) (This)->lpVtbl->SetMaximumFrameLatency(This,MaxLatency)
++#define IDXGIDevice1_GetMaximumFrameLatency(This,pMaxLatency) (This)->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency)
++#else
++/*** IUnknown methods ***/
++static FORCEINLINE HRESULT IDXGIDevice1_QueryInterface(IDXGIDevice1* This,REFIID riid,void **ppvObject) {
++    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
++}
++static FORCEINLINE ULONG IDXGIDevice1_AddRef(IDXGIDevice1* This) {
++    return This->lpVtbl->AddRef(This);
++}
++static FORCEINLINE ULONG IDXGIDevice1_Release(IDXGIDevice1* This) {
++    return This->lpVtbl->Release(This);
++}
++/*** IDXGIObject methods ***/
++static FORCEINLINE HRESULT IDXGIDevice1_SetPrivateData(IDXGIDevice1* This,REFGUID guid,UINT data_size,const void *data) {
++    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
++}
++static FORCEINLINE HRESULT IDXGIDevice1_SetPrivateDataInterface(IDXGIDevice1* This,REFGUID guid,const IUnknown *object) {
++    return This->lpVtbl->SetPrivateDataInterface(This,guid,object);
++}
++static FORCEINLINE HRESULT IDXGIDevice1_GetPrivateData(IDXGIDevice1* This,REFGUID guid,UINT *data_size,void *data) {
++    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
++}
++static FORCEINLINE HRESULT IDXGIDevice1_GetParent(IDXGIDevice1* This,REFIID riid,void **parent) {
++    return This->lpVtbl->GetParent(This,riid,parent);
++}
++/*** IDXGIDevice methods ***/
++static FORCEINLINE HRESULT IDXGIDevice1_GetAdapter(IDXGIDevice1* This,IDXGIAdapter **adapter) {
++    return This->lpVtbl->GetAdapter(This,adapter);
++}
++static FORCEINLINE HRESULT IDXGIDevice1_CreateSurface(IDXGIDevice1* This,const DXGI_SURFACE_DESC *desc,UINT surface_count,DXGI_USAGE usage,const DXGI_SHARED_RESOURCE *shared_resource,IDXGISurface **surface) {
++    return This->lpVtbl->CreateSurface(This,desc,surface_count,usage,shared_resource,surface);
++}
++static FORCEINLINE HRESULT IDXGIDevice1_QueryResourceResidency(IDXGIDevice1* This,IUnknown *const *resources,DXGI_RESIDENCY *residency,UINT resource_count) {
++    return This->lpVtbl->QueryResourceResidency(This,resources,residency,resource_count);
++}
++static FORCEINLINE HRESULT IDXGIDevice1_SetGPUThreadPriority(IDXGIDevice1* This,INT priority) {
++    return This->lpVtbl->SetGPUThreadPriority(This,priority);
++}
++static FORCEINLINE HRESULT IDXGIDevice1_GetGPUThreadPriority(IDXGIDevice1* This,INT *priority) {
++    return This->lpVtbl->GetGPUThreadPriority(This,priority);
++}
++/*** IDXGIDevice1 methods ***/
++static FORCEINLINE HRESULT IDXGIDevice1_SetMaximumFrameLatency(IDXGIDevice1* This,UINT MaxLatency) {
++    return This->lpVtbl->SetMaximumFrameLatency(This,MaxLatency);
++}
++static FORCEINLINE HRESULT IDXGIDevice1_GetMaximumFrameLatency(IDXGIDevice1* This,UINT *pMaxLatency) {
++    return This->lpVtbl->GetMaximumFrameLatency(This,pMaxLatency);
++}
++#endif
++#endif
++
++#endif
++
++HRESULT STDMETHODCALLTYPE IDXGIDevice1_SetMaximumFrameLatency_Proxy(
++    IDXGIDevice1* This,
++    UINT MaxLatency);
++void __RPC_STUB IDXGIDevice1_SetMaximumFrameLatency_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++HRESULT STDMETHODCALLTYPE IDXGIDevice1_GetMaximumFrameLatency_Proxy(
++    IDXGIDevice1* This,
++    UINT *pMaxLatency);
++void __RPC_STUB IDXGIDevice1_GetMaximumFrameLatency_Stub(
++    IRpcStubBuffer* This,
++    IRpcChannelBuffer* pRpcChannelBuffer,
++    PRPC_MESSAGE pRpcMessage,
++    DWORD* pdwStubPhase);
++
++#endif  /* __IDXGIDevice1_INTERFACE_DEFINED__ */
++
++/*****************************************************************************
+  * IDXGIFactory1 interface
+  */
+ #ifndef __IDXGIFactory1_INTERFACE_DEFINED__
+diff --git a/mingw-w64-headers/direct-x/include/dxgi.idl b/mingw-w64-headers/direct-x/include/dxgi.idl
+index bb12283..bc9538e 100644
+--- a/mingw-w64-headers/direct-x/include/dxgi.idl
++++ b/mingw-w64-headers/direct-x/include/dxgi.idl
+@@ -446,6 +446,18 @@ interface IDXGIAdapter1 : IDXGIAdapter
+ 
+ [
+     object,
++    uuid(77db970f-6276-48ba-ba28-070143b4392c),
++    local,
++    pointer_default(unique)
++]
++interface IDXGIDevice1 : IDXGIDevice
++{
++    HRESULT SetMaximumFrameLatency([in] UINT MaxLatency);
++    HRESULT GetMaximumFrameLatency([out] UINT *pMaxLatency);
++}
++
++[
++    object,
+     uuid(770aae78-f26f-4dba-a829-253c83d1b387),
+     local,
+     pointer_default(unique)
+-- 
+2.1.0
+
diff --git a/mingw-headers.spec b/mingw-headers.spec
index bb8de50..b321a13 100644
--- a/mingw-headers.spec
+++ b/mingw-headers.spec
@@ -19,7 +19,7 @@
 
 Name:           mingw-headers
 Version:        3.3.0
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        Win32/Win64 header files
 
 License:        Public Domain and LGPLv2+ and ZPLv2.1
@@ -42,9 +42,33 @@ BuildArch:      noarch
 BuildRequires:  mingw32-filesystem >= 95
 BuildRequires:  mingw64-filesystem >= 95
 
-# Backported upstream commit ea45fb357054ae502f46728b6a951a96d262dcb6
-# (add tsattrs.h header) as this is required by the most recent mingw-wine-gecko
-Patch0:         commit-ea45fb3
+# Backported various upstream commits which are required to build
+# the most recent mingw-wine-gecko and mingw-angleproject
+Patch1:         0001-mfapi.h-Moved-MFCreateAttributes-to-mfapi.h-where-it.patch
+Patch2:         0002-Update-mfobjects-interface-for-winapi-family-and-W8.patch
+Patch3:         0003-Updated-imported-headers-to-current-Wine-version.patch
+Patch4:         0004-Updated-headers-imported-from-Wine.patch
+Patch5:         0005-winerror.h-Added-some-missing-error-codes.patch
+Patch6:         0006-d2d1_1helper.h-Added-some-missing-helpers.patch
+Patch7:         0007-d2d1effects.h-Added-some-missing-declarations.patch
+Patch8:         0008-winsdkver.h-Added-new-header.patch
+Patch9:         0009-dwrite_1.h-Added-new-header-file.patch
+Patch10:        0010-Added-some-missing-WMF-declarations.patch
+Patch11:        0011-mstcpip.h-Declare-RtlIpv6-functions-only-if-ws2ipdef.patch
+Patch12:        0012-Added-dxgi1_2.h-missing-in-previous-commit.patch
+Patch13:        0013-Updated-imported-headers-to-current-Wine-version.patch
+Patch14:        0014-tsattrs.h-Added-new-header-file.patch
+Patch15:        0015-Add-winapifamily-check-correct-enumerator-values-add.patch
+Patch16:        0016-Add-comadmin.idl-to-Makefile.am-and-regenerate-files.patch
+Patch17:        0017-Updated-imported-headers-to-current-Wine-version.patch
+Patch18:        0018-Updated-imported-headers-to-current-Wine-version.patch
+Patch19:        0019-Updated-imported-headers-to-current-Wine-version.patch
+Patch20:        0020-Fixed-some-version-guards.patch
+Patch21:        0021-Lower-_WIN32_WINNT-requirements-for-Un-RegisterPower.patch
+Patch22:        0022-dwrite.h-Don-t-duplicate-parent-interface-methods-fo.patch
+Patch23:        0023-string_s.h-wchar_s.h-Added-wcsnlen_s-implementation.patch
+Patch24:        0024-Use-__forceinline-for-wcsnlen_s-implementation.patch
+Patch25:        0025-Implement-IDXGIDevice1.patch
 
 
 %description
@@ -86,7 +110,31 @@ unzip %{S:0}
 %setup -q -n mingw-w64-v%{version}
 %endif
 
-%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+%patch16 -p1
+%patch17 -p1
+%patch18 -p1
+%patch19 -p1
+%patch20 -p1
+%patch21 -p1
+%patch22 -p1
+%patch23 -p1
+%patch24 -p1
+%patch25 -p1
 
 
 %build
@@ -121,6 +169,10 @@ rm -f $RPM_BUILD_ROOT%{mingw64_includedir}/pthread_unistd.h
 
 
 %changelog
+* Wed Dec 31 2014 Erik van Pienbroek <epienbro at fedoraproject.org> - 3.3.0-2
+- Backport various upstream commits which are required to build
+  the most recent mingw-wine-gecko and mingw-angleproject
+
 * Fri Dec  5 2014 Erik van Pienbroek <epienbro at fedoraproject.org> - 3.3.0-1
 - Update to 3.3.0
 - Backported upstream commit ea45fb3 (add tsattrs.h header)


More information about the scm-commits mailing list