Commit d7f00c4389

Andrew Kelley <andrew@ziglang.org>
2021-06-04 18:29:56
update mingw-w64 headers to v9.0.0
1 parent 5d94e75
Changed files (318)
lib
libc
include
any-windows-any
KHR
psdk_inc
sdks
sec_api
lib/libc/include/any-windows-any/KHR/khrplatform.h
lib/libc/include/any-windows-any/psdk_inc/_dbg_common.h
@@ -818,7 +818,7 @@ typedef struct _SYMSRV_INDEX_INFOW {
   WINBOOL IMAGEAPI SymGetSearchPathW(HANDLE hProcess,PWSTR SearchPath,DWORD SearchPathLength);
   WINBOOL IMAGEAPI SymSetSearchPath(HANDLE hProcess,PCSTR SearchPath);
   WINBOOL IMAGEAPI SymSetSearchPathW(HANDLE hProcess,PCWSTR SearchPath);
-  DWORD64 IMAGEAPI SymLoadModule64(HANDLE hProcess,HANDLE hFile,PSTR ImageName,PSTR ModuleName,DWORD64 BaseOfDll,DWORD SizeOfDll);
+  DWORD64 IMAGEAPI SymLoadModule64(HANDLE hProcess,HANDLE hFile,PCSTR ImageName,PCSTR ModuleName,DWORD64 BaseOfDll,DWORD SizeOfDll);
 
 #define SLMFLAG_VIRTUAL 0x1
 
lib/libc/include/any-windows-any/psdk_inc/_ip_mreq1.h
@@ -9,10 +9,4 @@
 
 #include <inaddr.h>
 
-struct ip_mreq {
-	struct in_addr	imr_multiaddr;
-	struct in_addr	imr_interface;
-};
-
 #endif	/* _MINGW_IP_MREQ1_H */
-
lib/libc/include/any-windows-any/psdk_inc/intrin-impl.h
@@ -607,6 +607,54 @@ unsigned long _lrotr(unsigned long __X, int __C)
 #define __INTRINSIC_DEFINED__lrotr
 #endif /* __INTRINSIC_PROLOG */
 
+#if __INTRINSIC_PROLOG(_rotl8)
+unsigned char _rotl8(unsigned char __X, unsigned char __C);
+#if !__has_builtin(_rotl8)
+__INTRINSICS_USEINLINE
+unsigned char _rotl8(unsigned char __X, unsigned char __C)
+{
+  return (__X << __C) | (__X >> (8 - __C));
+}
+#endif
+#define __INTRINSIC_DEFINED__rotl8
+#endif /* __INTRINSIC_PROLOG */
+
+#if __INTRINSIC_PROLOG(_rotr8)
+unsigned char _rotr8(unsigned char __X, unsigned char __C);
+#if !__has_builtin(_rotr8)
+__INTRINSICS_USEINLINE
+unsigned char _rotr8(unsigned char __X, unsigned char __C)
+{
+  return (__X >> __C) | (__X << (8 - __C));
+}
+#endif
+#define __INTRINSIC_DEFINED__rotr8
+#endif /* __INTRINSIC_PROLOG */
+
+#if __INTRINSIC_PROLOG(_rotl16)
+unsigned short _rotl16(unsigned short __X, unsigned char __C);
+#if !__has_builtin(_rotl16)
+__INTRINSICS_USEINLINE
+unsigned short _rotl16(unsigned short __X, unsigned char __C)
+{
+  return (__X << __C) | (__X >> (16 - __C));
+}
+#endif
+#define __INTRINSIC_DEFINED__rotl16
+#endif /* __INTRINSIC_PROLOG */
+
+#if __INTRINSIC_PROLOG(_rotr16)
+unsigned short _rotr16(unsigned short __X, unsigned char __C);
+#if !__has_builtin(_rotr16)
+__INTRINSICS_USEINLINE
+unsigned short _rotr16(unsigned short __X, unsigned char __C)
+{
+  return (__X >> __C) | (__X << (16 - __C));
+}
+#endif
+#define __INTRINSIC_DEFINED__rotr16
+#endif /* __INTRINSIC_PROLOG */
+
 #if defined(__x86_64__) || defined(_AMD64_)
 
 #if __INTRINSIC_PROLOG(__faststorefence)
lib/libc/include/any-windows-any/sdks/_mingw_ddk.h
@@ -1,6 +1,6 @@
 #ifndef MINGW_DDK_H
 #define MINGW_DDK_H
-#if 0
+#if 1
 #define MINGW_HAS_DDK_H 1
 #endif
 #endif
lib/libc/include/any-windows-any/sec_api/stdio_s.h
@@ -864,7 +864,9 @@ extern "C" {
 #endif /* _WSTDIO_S_DEFINED */
 #endif /* _STDIO_S_DEFINED */
 
+#if __MSVCRT_VERSION__ >= 0x800
   _CRTIMP size_t __cdecl _fread_nolock_s(void *_DstBuf,size_t _DstSize,size_t _ElementSize,size_t _Count,FILE *_File);
+#endif
 
 #ifdef __cplusplus
 }
lib/libc/include/any-windows-any/sec_api/stdlib_s.h
@@ -12,18 +12,28 @@
 extern "C" {
 #endif
 
+  _CRTIMP void * __cdecl bsearch_s(const void *_Key,const void *_Base,rsize_t _NumOfElements,rsize_t _SizeOfElements,int (__cdecl * _PtFuncCompare)(void *, const void *, const void *), void *_Context);
   _CRTIMP errno_t __cdecl _dupenv_s(char **_PBuffer,size_t *_PBufferSizeInBytes,const char *_VarName);
+  _CRTIMP errno_t __cdecl getenv_s(size_t *_ReturnSize,char *_DstBuf,rsize_t _DstSize,const char *_VarName);
+  __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, getenv_s, size_t *, _ReturnSize, char, _Dest, const char *, _VarName)
   _CRTIMP errno_t __cdecl _itoa_s(int _Value,char *_DstBuf,size_t _Size,int _Radix);
   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _itoa_s, int, _Value, char, _Dest, int, _Radix)
   _CRTIMP errno_t __cdecl _i64toa_s(__int64 _Val,char *_DstBuf,size_t _Size,int _Radix);
   _CRTIMP errno_t __cdecl _ui64toa_s(unsigned __int64 _Val,char *_DstBuf,size_t _Size,int _Radix);
   _CRTIMP errno_t __cdecl _ltoa_s(long _Val,char *_DstBuf,size_t _Size,int _Radix);
+  __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _ltoa_s, long, _Value, char, _Dest, int, _Radix)
   _CRTIMP errno_t __cdecl mbstowcs_s(size_t *_PtNumOfCharConverted,wchar_t *_DstBuf,size_t _SizeInWords,const char *_SrcBuf,size_t _MaxCount);
+  __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(errno_t, mbstowcs_s, size_t *, _PtNumOfCharConverted, wchar_t, _Dest, const char *, _Source, size_t, _MaxCount)
   _CRTIMP errno_t __cdecl _mbstowcs_s_l(size_t *_PtNumOfCharConverted,wchar_t *_DstBuf,size_t _SizeInWords,const char *_SrcBuf,size_t _MaxCount,_locale_t _Locale);
+  __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(errno_t, _mbstowcs_s_l, size_t *, _PtNumOfCharConverted, wchar_t, _Dest, const char *, _Source, size_t, _MaxCount, _locale_t, _Locale)
   _CRTIMP errno_t __cdecl _ultoa_s(unsigned long _Val,char *_DstBuf,size_t _Size,int _Radix);
+  __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t, _ultoa_s, unsigned long, _Value, char, _Dest, int, _Radix)
+  _CRTIMP errno_t __cdecl wctomb_s(int *_SizeConverted,char *_MbCh,rsize_t _SizeInBytes,wchar_t _WCh);
   _CRTIMP errno_t __cdecl _wctomb_s_l(int *_SizeConverted,char *_MbCh,size_t _SizeInBytes,wchar_t _WCh,_locale_t _Locale);
   _CRTIMP errno_t __cdecl wcstombs_s(size_t *_PtNumOfCharConverted,char *_Dst,size_t _DstSizeInBytes,const wchar_t *_Src,size_t _MaxCountInBytes);
+  __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_2(errno_t, wcstombs_s, size_t*, _PtNumOfCharConverted, char, _Dst, const wchar_t*, _Src, size_t, _MaxCountInBytes)
   _CRTIMP errno_t __cdecl _wcstombs_s_l(size_t *_PtNumOfCharConverted,char *_Dst,size_t _DstSizeInBytes,const wchar_t *_Src,size_t _MaxCountInBytes,_locale_t _Locale);
+  __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_3(errno_t, _wcstombs_s_l, size_t*, _PtNumOfCharConverted, char, _Dst, const wchar_t*, _Src, size_t, _MaxCountInBytes, _locale_t, _Locale)
 
 #ifndef _POSIX_
   _CRTIMP errno_t __cdecl _ecvt_s(char *_DstBuf,size_t _Size,double _Val,int _NumOfDights,int *_PtDec,int *_PtSign);
lib/libc/include/any-windows-any/sec_api/string_s.h
@@ -43,6 +43,10 @@ extern "C" {
   _CRTIMP errno_t __cdecl strcat_s(char *_Dst, rsize_t _SizeInBytes, const char * _Src);
   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_0_1(errno_t, strcat_s, char, _Dest, const char *, _Source)
 
+  __forceinline size_t __cdecl strnlen_s(const char * _src, size_t _count) {
+    return _src ? strnlen(_src, _count) : 0;
+  }
+
   _SECIMP errno_t __cdecl memmove_s(void *_dest,size_t _numberOfElements,const void *_src,size_t _count);
 #ifndef _WSTRING_S_DEFINED
 #define _WSTRING_S_DEFINED
lib/libc/include/any-windows-any/_mingw.h
@@ -367,7 +367,7 @@ typedef int __int128 __attribute__ ((__mode__ (TI)));
 
 #ifndef __WIDL__
 
-#if defined (_WIN32) && !defined (_WIN64) && !defined (__MINGW_USE_VC2005_COMPAT)
+#if defined (_WIN32) && !defined (_WIN64) && !defined (__MINGW_USE_VC2005_COMPAT) && !defined (_UCRT)
 #ifndef _USE_32BIT_TIME_T
 #define _USE_32BIT_TIME_T
 #endif
@@ -378,7 +378,7 @@ typedef int __int128 __attribute__ ((__mode__ (TI)));
 #endif
 
 #ifndef UNALIGNED
-#if defined(_M_IA64) || defined(_M_AMD64)
+#if defined(__ia64__) || defined(__x86_64__)
 #define UNALIGNED __unaligned
 #else
 #define UNALIGNED
@@ -580,7 +580,15 @@ extern "C" {
 void __cdecl __debugbreak(void);
 __MINGW_INTRIN_INLINE void __cdecl __debugbreak(void)
 {
+#if defined(__i386__) || defined(__x86_64__)
   __asm__ __volatile__("int {$}3":);
+#elif defined(__arm__)
+  __asm__ __volatile__("udf #1");
+#elif defined(__aarch64__)
+  __asm__ __volatile__("brk #0xf000");
+#else
+  __asm__ __volatile__("unimplemented");
+#endif
 }
 #endif
 #endif
lib/libc/include/any-windows-any/_mingw_mac.h
@@ -11,7 +11,7 @@
 #define __MINGW64_STRINGIFY(x) \
   __STRINGIFY(x)
 
-#define __MINGW64_VERSION_MAJOR 8
+#define __MINGW64_VERSION_MAJOR 9
 #define __MINGW64_VERSION_MINOR 0
 #define __MINGW64_VERSION_BUGFIX 0
 
lib/libc/include/any-windows-any/activation.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/activation.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/activation.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/activaut.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/activaut.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/activaut.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/activdbg.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/activdbg.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/activdbg.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -9223,6 +9223,8 @@ static FORCEINLINE HRESULT IProvideExpressionContexts_EnumExpressionContexts(IPr
 
 #endif  /* __IProvideExpressionContexts_INTERFACE_DEFINED__ */
 
+#ifndef __ProcessDebugManagerLib_LIBRARY_DEFINED__
+#define __ProcessDebugManagerLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_ProcessDebugManagerLib, 0x78a51821, 0x51f4, 0x11d0, 0x8f,0x20, 0x00,0x80,0x5f,0x2c,0xd0,0x64);
 
@@ -9776,6 +9778,7 @@ __CRT_UUID_DECL(DefaultDebugSessionProvider, 0x834128a2, 0x51f4, 0x11d0, 0x8f,0x
 #endif
 #endif
 
+#endif /* __ProcessDebugManagerLib_LIBRARY_DEFINED__ */
 #endif
 #endif
 /* Begin additional prototypes for all interfaces */
lib/libc/include/any-windows-any/activdbg100.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/activdbg100.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/activdbg100.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/activprof.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/activprof.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/activprof.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -105,14 +105,14 @@ DEFINE_GUID(IID_IActiveScriptProfilerHeapEnum, 0x32e4694e, 0xd37, 0x419b, 0xb9,
 DEFINE_GUID(IID_IActiveScriptProfilerControl3, 0xb403015, 0xf381, 0x4023, 0xa5, 0xd0, 0x6f, 0xed, 0x7, 0x6d, 0xe7, 0x16);
 #endif
 
-typedef enum __WIDL_activprof_generated_name_00000002 {
+typedef enum __WIDL_activprof_generated_name_0000000C {
     PROFILER_SCRIPT_TYPE_USER = 0,
     PROFILER_SCRIPT_TYPE_DYNAMIC = 1,
     PROFILER_SCRIPT_TYPE_NATIVE = 2,
     PROFILER_SCRIPT_TYPE_DOM = 3
 } PROFILER_SCRIPT_TYPE;
 
-typedef enum __WIDL_activprof_generated_name_00000003 {
+typedef enum __WIDL_activprof_generated_name_0000000D {
     PROFILER_EVENT_MASK_TRACE_SCRIPT_FUNCTION_CALL = 0x1,
     PROFILER_EVENT_MASK_TRACE_NATIVE_FUNCTION_CALL = 0x2,
     PROFILER_EVENT_MASK_TRACE_DOM_FUNCTION_CALL = 0x4,
@@ -346,7 +346,7 @@ typedef DWORD_PTR PROFILER_HEAP_OBJECT_ID;
 typedef UINT PROFILER_HEAP_OBJECT_NAME_ID;
 typedef void *PROFILER_EXTERNAL_OBJECT_ADDRESS;
 
-typedef enum __WIDL_activprof_generated_name_00000004 {
+typedef enum __WIDL_activprof_generated_name_0000000E {
     PROFILER_HEAP_OBJECT_FLAGS_NEW_OBJECT = 0x1,
     PROFILER_HEAP_OBJECT_FLAGS_IS_ROOT = 0x2,
     PROFILER_HEAP_OBJECT_FLAGS_SITE_CLOSED = 0x4,
@@ -362,7 +362,7 @@ typedef enum __WIDL_activprof_generated_name_00000004 {
     PROFILER_HEAP_OBJECT_FLAGS_WINRT_NAMESPACE = 0x1000
 } PROFILER_HEAP_OBJECT_FLAGS;
 
-typedef enum __WIDL_activprof_generated_name_00000005 {
+typedef enum __WIDL_activprof_generated_name_0000000F {
     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_PROTOTYPE = 0x1,
     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_FUNCTION_NAME = 0x2,
     PROFILER_HEAP_OBJECT_OPTIONAL_INFO_SCOPE_LIST = 0x3,
@@ -381,7 +381,7 @@ typedef struct _PROFILER_HEAP_OBJECT_SCOPE_LIST {
     PROFILER_HEAP_OBJECT_ID scopes[1];
 } PROFILER_HEAP_OBJECT_SCOPE_LIST;
 
-typedef enum __WIDL_activprof_generated_name_00000006 {
+typedef enum __WIDL_activprof_generated_name_00000010 {
     PROFILER_PROPERTY_TYPE_NUMBER = 0x1,
     PROFILER_PROPERTY_TYPE_STRING = 0x2,
     PROFILER_PROPERTY_TYPE_HEAP_OBJECT = 0x3,
lib/libc/include/any-windows-any/activscp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/activscp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/activscp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/adhoc.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/adhoc.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/adhoc.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1438,6 +1438,8 @@ static FORCEINLINE HRESULT IDot11AdHocInterfaceNotificationSink_OnConnectionStat
 
 #endif  /* __IDot11AdHocInterfaceNotificationSink_INTERFACE_DEFINED__ */
 
+#ifndef __ADHOCLib_LIBRARY_DEFINED__
+#define __ADHOCLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_ADHOCLib, 0x45357166, 0xff38, 0x4302, 0x8f,0x5c, 0xdf,0x5b,0x70,0x3a,0x6e,0x3d);
 
@@ -1454,6 +1456,7 @@ __CRT_UUID_DECL(Dot11AdHocManager, 0xdd06a84f, 0x83bd, 0x4d01, 0x8a,0xb9, 0x23,0
 #endif
 #endif
 
+#endif /* __ADHOCLib_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/alg.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/alg.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/alg.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1477,6 +1477,8 @@ static FORCEINLINE HRESULT IApplicationGateway_Stop(IApplicationGateway* This) {
 
 #endif  /* __IApplicationGateway_INTERFACE_DEFINED__ */
 
+#ifndef __ALGLib_LIBRARY_DEFINED__
+#define __ALGLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_ALGLib, 0xb6d1d098, 0xe235, 0x4b99, 0xba,0x98, 0x7c,0x62,0x4f,0xd8,0x75,0xdb);
 
@@ -1584,6 +1586,7 @@ __CRT_UUID_DECL(PersistentDataChannel, 0xbc9b54ab, 0x7883, 0x4c13, 0x90,0x9f, 0x
 #endif
 #endif
 
+#endif /* __ALGLib_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/amstream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/amstream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/amstream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/amstream.idl
@@ -1,318 +0,0 @@
-/*
- * Copyright 2004 Christian Costa
- *
- * 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 "unknwn.idl";
-import "mmstream.idl";
-import "strmif.idl";
-
-cpp_quote("#include <ddraw.h>")
-cpp_quote("#include <mmsystem.h>")
-cpp_quote("#include <mmstream.h>")
-cpp_quote("#include <ddstream.h>")
-cpp_quote("#include <austream.h>")
-
-cpp_quote("#if 0")
-interface IDirectDraw;
-interface IDirectDrawSurface;
-cpp_quote("#endif")
-
-interface IAMMultiMediaStream;
-interface IAMMediaStream;
-interface IMediaStreamFilter;
-interface IAMMediaTypeStream;
-interface IAMMediaTypeSample;
-
-enum {
-	AMMSF_NOGRAPHTHREAD      = 0x00000001
-};
-
-enum {
-	AMMSF_ADDDEFAULTRENDERER = 0x00000001,
-	AMMSF_CREATEPEER         = 0x00000002,
-	AMMSF_STOPIFNOSAMPLES	 = 0x00000004,
-	AMMSF_NOSTALL		 = 0x00000008
-};
-
-enum {
-	AMMSF_RENDERTYPEMASK     = 0x00000003,
-	AMMSF_RENDERTOEXISTING   = 0x00000000,
-	AMMSF_RENDERALLSTREAMS   = 0x00000001,
-	AMMSF_NORENDER           = 0x00000002,
-	AMMSF_NOCLOCK            = 0x00000004,
-	AMMSF_RUN                = 0x00000008
-};
-
-
-typedef [v1_enum] enum {
-	Disabled = 0,
-	ReadData = 1,
-	RenderData = 2
-} OUTPUT_STATE;
-
-[
-object,
-uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D),
-dual,
-helpstring("IDirectShowStream Interface"),
-pointer_default(unique)
-]
-interface IDirectShowStream : IDispatch
-{
-	[propget, id(1), helpstring("property FileName")] HRESULT FileName([out, retval] BSTR *pVal);
-	[propput, id(1), helpstring("property FileName")] HRESULT FileName([in] BSTR newVal);
-	[propget, id(2), helpstring("property Video")] HRESULT Video([out, retval] OUTPUT_STATE *pVal);
-	[propput, id(2), helpstring("property Video")] HRESULT Video([in] OUTPUT_STATE newVal);
-	[propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal);
-	[propput, id(3), helpstring("property Audio")] HRESULT Audio([in] OUTPUT_STATE newVal);
-}
-
-[
-object,
-uuid(BEBE595C-9A6F-11d0-8FDE-00C04FD9189D),
-pointer_default(unique)
-]
-interface IAMMultiMediaStream : IMultiMediaStream
-{
-	HRESULT Initialize(
-		[in] STREAM_TYPE StreamType,
-		[in] DWORD dwFlags,
-		[in] IGraphBuilder *pFilterGraph);
-
-	HRESULT GetFilterGraph(
-		[out] IGraphBuilder **ppGraphBuilder);
-
-	HRESULT GetFilter(
-		[out] IMediaStreamFilter **ppFilter);
-
-	HRESULT AddMediaStream(
-		[in] IUnknown *pStreamObject,
-		[in] const MSPID *PurposeId,
-		[in] DWORD dwFlags,
-		[out] IMediaStream **ppNewStream);
-
-	HRESULT OpenFile(
-		[in] LPCWSTR pszFileName,
-		[in] DWORD dwFlags);
-
-	HRESULT OpenMoniker(
-		[in] IBindCtx *pCtx,
-		[in] IMoniker *pMoniker,
-		[in] DWORD dwFlags);
-
-	HRESULT Render(
-		[in] DWORD dwFlags);
-}
-
-
-[
-object,
-uuid(BEBE595D-9A6F-11d0-8FDE-00C04FD9189D),
-pointer_default(unique)
-]
-interface IAMMediaStream : IMediaStream
-{
-	HRESULT Initialize(
-		[in] IUnknown *pSourceObject,
-		[in] DWORD dwFlags,
-		[in] REFMSPID PurposeId,
-		[in] const STREAM_TYPE StreamType);
-
-	HRESULT SetState(
-		[in] FILTER_STATE State);
-
-	HRESULT JoinAMMultiMediaStream(
-		[in] IAMMultiMediaStream *pAMMultiMediaStream);
-
-	HRESULT JoinFilter(
-		[in] IMediaStreamFilter *pMediaStreamFilter);
-
-	HRESULT JoinFilterGraph(
-		[in] IFilterGraph *pFilterGraph);
-}
-
-
-[
-object,
-local,
-uuid(BEBE595E-9A6F-11d0-8FDE-00C04FD9189D),
-pointer_default(unique)
-]
-interface IMediaStreamFilter : IBaseFilter
-{
-	HRESULT AddMediaStream(
-		[in] IAMMediaStream *pAMMediaStream);
-
-	HRESULT GetMediaStream(
-		[in] REFMSPID idPurpose,
-		[out] IMediaStream **ppMediaStream);
-
-	HRESULT EnumMediaStreams(
-		[in] long Index,
-		[out] IMediaStream **ppMediaStream);
-
-	HRESULT SupportSeeking(
-		[in] BOOL bRenderer);
-
-	HRESULT ReferenceTimeToStreamTime(
-		[in] [out] REFERENCE_TIME *pTime);
-
-	HRESULT GetCurrentStreamTime(
-		[out] REFERENCE_TIME *pCurrentStreamTime);
-
-	HRESULT WaitUntil(
-		[in]  REFERENCE_TIME WaitStreamTime);
-
-	HRESULT Flush(
-		[in] BOOL bCancelEOS);
-
-	HRESULT EndOfStream();
-}
-
-
-[
-object,
-local,
-uuid(AB6B4AFC-F6E4-11d0-900D-00C04FD9189D),
-pointer_default(unique)
-]
-interface IDirectDrawMediaSampleAllocator : IUnknown
-{
-	HRESULT GetDirectDraw(IDirectDraw **ppDirectDraw);
-}
-
-
-[
-object,
-local,
-uuid(AB6B4AFE-F6E4-11d0-900D-00C04FD9189D),
-pointer_default(unique)
-]
-interface IDirectDrawMediaSample : IUnknown
-{
-	HRESULT GetSurfaceAndReleaseLock(
-		[out] IDirectDrawSurface **ppDirectDrawSurface,
-		[out] RECT * pRect);
-
-	HRESULT LockMediaSamplePointer(void);
-}
-
-
-[
-object,
-local,
-uuid(AB6B4AFA-F6E4-11d0-900D-00C04FD9189D),
-pointer_default(unique)
-]
-
-interface IAMMediaTypeStream : IMediaStream
-{
-	HRESULT GetFormat(
-		[out] AM_MEDIA_TYPE * pMediaType,
-		[in] DWORD dwFlags);
-
-	HRESULT SetFormat(
-		[in] AM_MEDIA_TYPE * pMediaType,
-		[in] DWORD dwFlags);
-
-	HRESULT CreateSample(
-		[in] long lSampleSize,
-		[in] BYTE * pbBuffer,
-		[in] DWORD dwFlags,
-		[in] IUnknown *pUnkOuter,
-		[out] IAMMediaTypeSample ** ppAMMediaTypeSample);
-
-	HRESULT GetStreamAllocatorRequirements(
-		[out] ALLOCATOR_PROPERTIES *pProps);
-
-	HRESULT SetStreamAllocatorRequirements(
-		[in] ALLOCATOR_PROPERTIES *pProps);
-}
-
-
-[
-object,
-local,
-uuid(AB6B4AFB-F6E4-11d0-900D-00C04FD9189D),
-pointer_default(unique)
-]
-interface IAMMediaTypeSample : IStreamSample
-{
-	HRESULT SetPointer(
-		[in] BYTE *pBuffer,
-		[in] long lSize);
-
-	HRESULT GetPointer(
-		[out] BYTE ** ppBuffer);
-
-	long GetSize(void);
-
-	HRESULT GetTime(
-		[out] REFERENCE_TIME * pTimeStart,
-		[out] REFERENCE_TIME * pTimeEnd);
-
-	HRESULT SetTime(
-		[in] REFERENCE_TIME * pTimeStart,
-		[in] REFERENCE_TIME * pTimeEnd);
-
-	HRESULT IsSyncPoint(void);
-
-	HRESULT SetSyncPoint(
-		BOOL bIsSyncPoint);
-
-	HRESULT IsPreroll(void);
-
-	HRESULT SetPreroll(
-		BOOL bIsPreroll);
-
-	long GetActualDataLength(void);
-
-	HRESULT SetActualDataLength(long Len);
-
-	HRESULT GetMediaType(
-		AM_MEDIA_TYPE **ppMediaType);
-
-	HRESULT SetMediaType(
-		AM_MEDIA_TYPE *pMediaType);
-
-	HRESULT IsDiscontinuity(void);
-
-	HRESULT SetDiscontinuity(
-		BOOL bDiscontinuity);
-
-	HRESULT GetMediaTime(
-		[out] LONGLONG * pTimeStart,
-		[out] LONGLONG * pTimeEnd);
-
-	HRESULT SetMediaTime(
-		[in] LONGLONG * pTimeStart,
-		[in] LONGLONG * pTimeEnd);
-}
-
-[
-    uuid(49C47CE5-9BA4-11d0-8212-00C04FC32C45)
-]
-coclass AMMultiMediaStream
-{
-    [default] dispinterface IDirectShowStream;
-}
-
-cpp_quote("DEFINE_GUID(CLSID_AMDirectDrawStream,  0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
-cpp_quote("DEFINE_GUID(CLSID_AMAudioStream,       0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
-cpp_quote("DEFINE_GUID(CLSID_AMAudioData,         0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
-cpp_quote("DEFINE_GUID(CLSID_AMMediaTypeStream,   0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
-cpp_quote("DEFINE_GUID(CLSID_MediaStreamFilter,   0x49c47ce0, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);")
lib/libc/include/any-windows-any/amvideo.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/amvideo.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/amvideo.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/amvideo.idl
@@ -1,241 +0,0 @@
-/*
- * Copyright (C) 2003 Robert Shearman
- *
- * 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 "objidl.idl";
-
-/* trick widl into thinking that it knows the DirectDraw types 
- * as there is no IDL file for them (yet) */
-cpp_quote("#if 0")
-interface IDirectDraw;
-typedef void DDSURFACEDESC,DDCAPS;
-typedef DWORD RGBQUAD;
-typedef LONGLONG REFERENCE_TIME;
-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, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
-cpp_quote("#endif")
-
-cpp_quote("#include <ddraw.h>")
-
-cpp_quote("#define AMDDS_NONE 0x00")
-cpp_quote("#define AMDDS_DCIPS 0x01")
-cpp_quote("#define AMDDS_PS 0x02")
-cpp_quote("#define AMDDS_RGBOVR 0x04")
-cpp_quote("#define AMDDS_YUVOVR 0x08")
-cpp_quote("#define AMDDS_RGBOFF 0x10")
-cpp_quote("#define AMDDS_YUVOFF 0x20")
-cpp_quote("#define AMDDS_RGBFLP 0x40")
-cpp_quote("#define AMDDS_YUVFLP 0x80")
-cpp_quote("#define AMDDS_ALL 0xFF")
-cpp_quote("#define AMDDS_DEFAULT AMDDS_ALL")
-
-cpp_quote("#define AMDDS_YUV (AMDDS_YUVOFF | AMDDS_YUVOVR | AMDDS_YUVFLP)")
-cpp_quote("#define AMDDS_RGB (AMDDS_RGBOFF | AMDDS_RGBOVR | AMDDS_RGBFLP)")
-cpp_quote("#define AMDSS_PRIMARY (AMDDS_DCIPS | AMDDS_PS)")
-
-[
-    object,
-    /* uuid(36d39eb0-dd75-11ce-bf0e-00aa0055595a)  conflicts with uuids.h */
-    pointer_default(unique),
-    local
-]
-interface IDirectDrawVideo : IUnknown
-{
-    HRESULT GetSwitches([out] DWORD * pSwitches);
-    HRESULT SetSwitches([in] DWORD Switches);
-    HRESULT GetCaps([out] DDCAPS * pCaps);
-    HRESULT GetEmulatedCaps([out] DDCAPS *pCaps);
-    HRESULT GetSurfaceDesc([out] DDSURFACEDESC * pSurfaceDesc);
-    HRESULT GetFourCCCodes([out] DWORD * pCount, [out] DWORD * pCodes);
-    HRESULT SetDirectDraw([in] IDirectDraw *ddraw);
-    HRESULT GetDirectDraw([out] IDirectDraw **ddraw);
-    HRESULT GetSurfaceType([out] DWORD * pSurfaceType);
-    HRESULT SetDefault();
-    HRESULT UseScanLine([in] long UseScanLine);
-    HRESULT CanUseScanLine([out] long * UseScanLine);
-    HRESULT UseOverlayStretch([in] long UseOverlayStretch);
-    HRESULT CanUseOverlayStretch([out] long * UseOverlayStretch);
-    HRESULT UseWhenFullScreen([in] long UseWhenFullScreen);
-    HRESULT WillUseFullScreen([out] long * UseWhenFullScreen);
-}
-
-[
-    object,
-    /* uuid(1bd0ecb0-f8e2-11ce-aac6-0020af0b99a3)  conflicts with uuids.h */
-    pointer_default(unique),
-    local
-]
-interface IQualProp : IUnknown
-{
-    [propget] HRESULT FramesDroppedInRenderer([out] int * pcFrames);
-    [propget] HRESULT FramesDrawn([out] int * pcFramesDrawn);
-    [propget] HRESULT AvgFrameRate([out] int * piAvgFrameRate);
-    [propget] HRESULT Jitter([out] int * iJitter);
-    [propget] HRESULT AvgSyncOffset([out] int * piAvg);
-    [propget] HRESULT DevSyncOffset([out] int * piDev);
-}
-
-[
-    object,
-    /* uuid(dd1d7110-7836-11cf-bf47-00aa0055595a)  conflicts with uuids.h */
-    pointer_default(unique)
-]
-interface IFullScreenVideo : IUnknown
-{
-    HRESULT CountModes([out] long * pModes);
-    HRESULT GetModeInfo([in] long Mode, [out] long * pWidth, [out] long * pHeight, [out] long * pDepth);
-    HRESULT GetCurrentMode([out] long * pMode);
-    HRESULT IsModeAvailable([in] long Mode);
-    HRESULT IsModeEnabled([in] long Mode);
-    HRESULT SetEnabled([in] long Mode, [in] long bEnabled);
-    HRESULT GetClipFactor([out] long * pClipFactor);
-    HRESULT SetClipFactor([in] long ClipFactor);
-    HRESULT SetMessageDrain([in] HWND hwnd);
-    HRESULT GetMessageDrain([out] HWND * hwnd);
-    HRESULT SetMonitor([in] long Monitor);
-    HRESULT GetMonitor([out] long * Monitor);
-    HRESULT HideOnDeactivate([in] long Hide);
-    HRESULT IsHideOnDeactivate();
-    HRESULT SetCaption([in] BSTR strCaption);
-    HRESULT GetCaption([out] BSTR * pstrCaption);
-    HRESULT SetDefault();
-}
-
-[
-    object,
-    /* uuid(53479470-f1dd-11cf-bc42-00aa00ac74f6)  conflicts with uuids.h */
-    pointer_default(unique),
-    local
-]
-interface IFullScreenVideoEx : IFullScreenVideo
-{
-    HRESULT SetAcceleratorTable([in] HWND hwnd, [in] HACCEL hAccel);
-    HRESULT GetAcceleratorTable([out] HWND * phwnd, [out] HACCEL * phAccel);
-    HRESULT KeepPixelAspectRatio([in] long KeepAspect);
-    /* FIXME: not sure is this next method is an [out] */
-    HRESULT IsKeepPixelAspectRatio([out] long * pKeepAspect);
-}
-
-[
-    object,
-    /* uuid(61ded640-e912-11ce-a099-00aa00479a58)  conflicts with uuids.h */
-    pointer_default(unique),
-    local
-]
-interface IBaseVideoMixer : IUnknown
-{
-    HRESULT SetLeadPin([in] int iPin);
-    HRESULT GetLeadPin([out] int * piPin);
-    HRESULT GetInputPinCount([out] int * piPinCount);
-    HRESULT IsUsingClock([out] int * pbValue);
-    HRESULT SetUsingClock([in] int bValue);
-    HRESULT GetClockPeriod([out] int * pbValue);
-    HRESULT SetClockPeriod([in] int bValue);
-}
-
-#define iPALETTE_COLORS 256
-#define iMASK_COLORS 3
-
-cpp_quote("#define iPALETTE_COLORS 256")
-cpp_quote("#define iEGA_COLORS 16")
-cpp_quote("#define iMASK_COLORS 3")
-cpp_quote("#define iTRUECOLOR 16")
-cpp_quote("#define iRED 0")
-cpp_quote("#define iGREEN 1")
-cpp_quote("#define iBLUE 2")
-cpp_quote("#define iPALETTE 8")
-cpp_quote("#define iMAXBITS 8")
-
-typedef struct tag_TRUECOLORINFO
-{
-    DWORD dwBitMasks[iMASK_COLORS];
-    RGBQUAD bmiColors[iPALETTE_COLORS];
-} TRUECOLORINFO;
-
-typedef struct tagVIDEOINFOHEADER
-{
-    RECT rcSource;
-    RECT rcTarget;
-    DWORD dwBitRate;
-    DWORD dwBitErrorRate;
-    REFERENCE_TIME AvgTimePerFrame;
-
-    BITMAPINFOHEADER bmiHeader;
-} VIDEOINFOHEADER;
-
-typedef struct tagVIDEOINFO
-{
-    RECT rcSource;
-    RECT rcTarget;
-    DWORD dwBitRate;
-    DWORD dwBitErrorRate;
-    REFERENCE_TIME AvgTimePerFrame;
-
-    BITMAPINFOHEADER bmiHeader;
-
-    union
-    {
-        RGBQUAD bmiColors[iPALETTE_COLORS];
-        DWORD dwBitMasks[iMASK_COLORS];
-        TRUECOLORINFO TrueColorInfo;
-    };
-} VIDEOINFO;
-
-typedef struct tagMPEG1VIDEOINFO
-{
-    VIDEOINFOHEADER hdr;
-    DWORD dwStartTimeCode;
-    DWORD cbSequenceHeader;
-    BYTE bSequenceHeader[1];
-} MPEG1VIDEOINFO;
-
-cpp_quote("#define MAX_SIZE_MPEG1_SEQUENCE_INFO 140")
-cpp_quote("#define MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)")
-
-typedef struct tagAnalogVideoInfo
-{
-    RECT rcSource;
-    RECT rcTarget;
-    DWORD dwActiveWidth;
-    DWORD dwActiveHeight;
-    REFERENCE_TIME AvgTimePerFrame;
-} ANALOGVIDEOINFO;
-
-typedef enum
-{
-    AM_PROPERTY_FRAMESTEP_STEP = 0x01,
-    AM_PROPERTY_FRAMESTEP_CANCEL = 0x02,
-    AM_PROPERTY_FRAMESTEP_CANSTEP = 0x03,
-    AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 0x04
-} AM_PROPERTY_FRAMESTEP;
-
-typedef struct _AM_FRAMESTEP_STEP
-{
-    DWORD dwFramesToStep;
-} AM_FRAMESTEP_STEP;
lib/libc/include/any-windows-any/assert.h
@@ -21,27 +21,6 @@
 extern "C" {
 #endif
 
-#ifndef _CRT_TERMINATE_DEFINED
-#define _CRT_TERMINATE_DEFINED
-  void __cdecl __MINGW_NOTHROW exit(int _Code) __MINGW_ATTRIB_NORETURN;
-  void __cdecl __MINGW_NOTHROW _exit(int _Code) __MINGW_ATTRIB_NORETURN;
-
-#if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
-  /* C99 function name */
-  void __cdecl _Exit(int) __MINGW_ATTRIB_NORETURN;
-#ifndef __CRT__NO_INLINE
-  __CRT_INLINE __MINGW_ATTRIB_NORETURN void  __cdecl _Exit(int status)
-  {  _exit(status); }
-#endif /* !__CRT__NO_INLINE */
-#endif /* Not  __NO_ISOCEXT */
-
-#pragma push_macro("abort")
-#undef abort
-  void __cdecl __MINGW_ATTRIB_NORETURN abort(void);
-#pragma pop_macro("abort")
-
-#endif /* _CRT_TERMINATE_DEFINED */
-
 _CRTIMP void __cdecl _wassert(const wchar_t *_Message,const wchar_t *_File,unsigned _Line);
 _CRTIMP void __cdecl _assert (const char *_Message, const char *_File, unsigned _Line);
 
lib/libc/include/any-windows-any/asyncinfo.h
@@ -0,0 +1,200 @@
+/*** Autogenerated by WIDL 6.4 from include/asyncinfo.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __asyncinfo_h__
+#define __asyncinfo_h__
+
+/* Forward declarations */
+
+#ifndef __IAsyncInfo_FWD_DEFINED__
+#define __IAsyncInfo_FWD_DEFINED__
+typedef interface IAsyncInfo IAsyncInfo;
+#ifdef __cplusplus
+namespace ABI {
+    interface IAsyncInfo;
+}
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum AsyncStatus {
+    Started = 0,
+    Completed = 1,
+    Canceled = 2,
+    Error = 3
+} AsyncStatus;
+/*****************************************************************************
+ * IAsyncInfo interface
+ */
+#ifndef __IAsyncInfo_INTERFACE_DEFINED__
+#define __IAsyncInfo_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("00000036-0000-0000-c000-000000000046")
+IAsyncInfo : public IInspectable
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Id(
+        UINT32 *id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Status(
+        AsyncStatus *status) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ErrorCode(
+        HRESULT *error_code) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Cancel(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Close(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
+#endif
+#else
+typedef struct IAsyncInfoVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAsyncInfo *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAsyncInfo *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAsyncInfo *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        IAsyncInfo *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        IAsyncInfo *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        IAsyncInfo *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IAsyncInfo *This,
+        UINT32 *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        IAsyncInfo *This,
+        AsyncStatus *status);
+
+    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
+        IAsyncInfo *This,
+        HRESULT *error_code);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        IAsyncInfo *This);
+
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IAsyncInfo *This);
+
+    END_INTERFACE
+} IAsyncInfoVtbl;
+
+interface IAsyncInfo {
+    CONST_VTBL IAsyncInfoVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAsyncInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAsyncInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAsyncInfo_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define IAsyncInfo_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define IAsyncInfo_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define IAsyncInfo_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncInfo methods ***/
+#define IAsyncInfo_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
+#define IAsyncInfo_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
+#define IAsyncInfo_get_ErrorCode(This,error_code) (This)->lpVtbl->get_ErrorCode(This,error_code)
+#define IAsyncInfo_Cancel(This) (This)->lpVtbl->Cancel(This)
+#define IAsyncInfo_Close(This) (This)->lpVtbl->Close(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAsyncInfo_QueryInterface(IAsyncInfo* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAsyncInfo_AddRef(IAsyncInfo* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAsyncInfo_Release(IAsyncInfo* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT IAsyncInfo_GetIids(IAsyncInfo* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT IAsyncInfo_GetRuntimeClassName(IAsyncInfo* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT IAsyncInfo_GetTrustLevel(IAsyncInfo* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncInfo methods ***/
+static FORCEINLINE HRESULT IAsyncInfo_get_Id(IAsyncInfo* This,UINT32 *id) {
+    return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT IAsyncInfo_get_Status(IAsyncInfo* This,AsyncStatus *status) {
+    return This->lpVtbl->get_Status(This,status);
+}
+static FORCEINLINE HRESULT IAsyncInfo_get_ErrorCode(IAsyncInfo* This,HRESULT *error_code) {
+    return This->lpVtbl->get_ErrorCode(This,error_code);
+}
+static FORCEINLINE HRESULT IAsyncInfo_Cancel(IAsyncInfo* This) {
+    return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IAsyncInfo_Close(IAsyncInfo* This) {
+    return This->lpVtbl->Close(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* __IAsyncInfo_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __asyncinfo_h__ */
lib/libc/include/any-windows-any/audioclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/audioclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/audioclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -34,6 +34,14 @@ interface IAudioClient2;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IAudioClient3_FWD_DEFINED__
+#define __IAudioClient3_FWD_DEFINED__
+typedef interface IAudioClient3 IAudioClient3;
+#ifdef __cplusplus
+interface IAudioClient3;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IAudioRenderClient_FWD_DEFINED__
 #define __IAudioRenderClient_FWD_DEFINED__
 typedef interface IAudioRenderClient IAudioRenderClient;
@@ -90,6 +98,14 @@ interface IAudioStreamVolume;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IAudioAmbisonicsControl_FWD_DEFINED__
+#define __IAudioAmbisonicsControl_FWD_DEFINED__
+typedef interface IAudioAmbisonicsControl IAudioAmbisonicsControl;
+#ifdef __cplusplus
+interface IAudioAmbisonicsControl;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IChannelAudioVolume_FWD_DEFINED__
 #define __IChannelAudioVolume_FWD_DEFINED__
 typedef interface IChannelAudioVolume IChannelAudioVolume;
@@ -144,6 +160,17 @@ typedef enum AUDCLNT_STREAMOPTIONS {
     AUDCLNT_STREAMOPTIONS_MATCH_FORMAT = 0x2,
     AUDCLNT_STREAMOPTIONS_AMBISONICS = 0x4
 } AUDCLNT_STREAMOPTIONS;
+DEFINE_ENUM_FLAG_OPERATORS(AUDCLNT_STREAMOPTIONS);
+typedef enum AMBISONICS_TYPE {
+    AMBISONICS_TYPE_FULL3D = 0x0
+} AMBISONICS_TYPE;
+typedef enum AMBISONICS_CHANNEL_ORDERING {
+    AMBISONICS_CHANNEL_ORDERING_ACN = 0x0
+} AMBISONICS_CHANNEL_ORDERING;
+typedef enum AMBISONICS_NORMALIZATION {
+    AMBISONICS_NORMALIZATION_SN3D = 0x0,
+    AMBISONICS_NORMALIZATION_N3D = 0x1
+} AMBISONICS_NORMALIZATION;
 
 typedef struct AudioClientProperties {
     UINT32 cbSize;
@@ -151,6 +178,19 @@ typedef struct AudioClientProperties {
     AUDIO_STREAM_CATEGORY eCategory;
     AUDCLNT_STREAMOPTIONS Options;
 } AudioClientProperties;
+typedef struct AudioClient3ActivationParams {
+    GUID tracingContextId;
+} AudioClient3ActivationParams;
+typedef struct AMBISONICS_PARAMS {
+    UINT32 u32Size;
+    UINT32 u32Version;
+    AMBISONICS_TYPE u32Type;
+    AMBISONICS_CHANNEL_ORDERING u32ChannelOrdering;
+    AMBISONICS_NORMALIZATION u32Normalization;
+    UINT32 u32Order;
+    UINT32 u32NumChannels;
+    UINT32 *pu32ChannelMap;
+} AMBISONICS_PARAMS;
 
 /*****************************************************************************
  * IAudioClient interface
@@ -578,6 +618,257 @@ static FORCEINLINE HRESULT IAudioClient2_GetBufferSizeLimits(IAudioClient2* This
 
 #endif  /* __IAudioClient2_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IAudioClient3 interface
+ */
+#ifndef __IAudioClient3_INTERFACE_DEFINED__
+#define __IAudioClient3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAudioClient3, 0x7ed4ee07, 0x8e67, 0x4cd4, 0x8c,0x1a, 0x2b,0x7a,0x59,0x87,0xad,0x42);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7ed4ee07-8e67-4cd4-8c1a-2b7a5987ad42")
+IAudioClient3 : public IAudioClient2
+{
+    virtual HRESULT STDMETHODCALLTYPE GetSharedModeEnginePeriod(
+        const WAVEFORMATEX *pFormat,
+        UINT32 *pDefaultPeriodInFrames,
+        UINT32 *pFundamentalPeriodInFrames,
+        UINT32 *pMinPeriodInFrames,
+        UINT32 *pMaxPeriodInFrames) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentSharedModeEnginePeriod(
+        WAVEFORMATEX **ppFormat,
+        UINT32 *pCurrentPeriodInFrames) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE InitializeSharedAudioStream(
+        DWORD StreamFlags,
+        UINT32 PeriodInFrames,
+        const WAVEFORMATEX *pFormat,
+        LPCGUID AudioSessionGuid) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAudioClient3, 0x7ed4ee07, 0x8e67, 0x4cd4, 0x8c,0x1a, 0x2b,0x7a,0x59,0x87,0xad,0x42)
+#endif
+#else
+typedef struct IAudioClient3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAudioClient3 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAudioClient3 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAudioClient3 *This);
+
+    /*** IAudioClient methods ***/
+    HRESULT (STDMETHODCALLTYPE *Initialize)(
+        IAudioClient3 *This,
+        AUDCLNT_SHAREMODE ShareMode,
+        DWORD StreamFlags,
+        REFERENCE_TIME hnsBufferDuration,
+        REFERENCE_TIME hnsPeriodicity,
+        const WAVEFORMATEX *pFormat,
+        LPCGUID AudioSessionGuid);
+
+    HRESULT (STDMETHODCALLTYPE *GetBufferSize)(
+        IAudioClient3 *This,
+        UINT32 *pNumBufferFrames);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamLatency)(
+        IAudioClient3 *This,
+        REFERENCE_TIME *phnsLatency);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentPadding)(
+        IAudioClient3 *This,
+        UINT32 *pNumPaddingFrames);
+
+    HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
+        IAudioClient3 *This,
+        AUDCLNT_SHAREMODE ShareMode,
+        const WAVEFORMATEX *pFormat,
+        WAVEFORMATEX **ppClosestMatch);
+
+    HRESULT (STDMETHODCALLTYPE *GetMixFormat)(
+        IAudioClient3 *This,
+        WAVEFORMATEX **ppDeviceFormat);
+
+    HRESULT (STDMETHODCALLTYPE *GetDevicePeriod)(
+        IAudioClient3 *This,
+        REFERENCE_TIME *phnsDefaultDevicePeriod,
+        REFERENCE_TIME *phnsMinimumDevicePeriod);
+
+    HRESULT (STDMETHODCALLTYPE *Start)(
+        IAudioClient3 *This);
+
+    HRESULT (STDMETHODCALLTYPE *Stop)(
+        IAudioClient3 *This);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IAudioClient3 *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
+        IAudioClient3 *This,
+        HANDLE eventHandle);
+
+    HRESULT (STDMETHODCALLTYPE *GetService)(
+        IAudioClient3 *This,
+        REFIID riid,
+        void **ppv);
+
+    /*** IAudioClient2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IsOffloadCapable)(
+        IAudioClient3 *This,
+        AUDIO_STREAM_CATEGORY Category,
+        WINBOOL *pbOffloadCapable);
+
+    HRESULT (STDMETHODCALLTYPE *SetClientProperties)(
+        IAudioClient3 *This,
+        const AudioClientProperties *pProperties);
+
+    HRESULT (STDMETHODCALLTYPE *GetBufferSizeLimits)(
+        IAudioClient3 *This,
+        const WAVEFORMATEX *pFormat,
+        WINBOOL bEventDriven,
+        REFERENCE_TIME *phnsMinBufferDuration,
+        REFERENCE_TIME *phnsMaxBufferDuration);
+
+    /*** IAudioClient3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSharedModeEnginePeriod)(
+        IAudioClient3 *This,
+        const WAVEFORMATEX *pFormat,
+        UINT32 *pDefaultPeriodInFrames,
+        UINT32 *pFundamentalPeriodInFrames,
+        UINT32 *pMinPeriodInFrames,
+        UINT32 *pMaxPeriodInFrames);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentSharedModeEnginePeriod)(
+        IAudioClient3 *This,
+        WAVEFORMATEX **ppFormat,
+        UINT32 *pCurrentPeriodInFrames);
+
+    HRESULT (STDMETHODCALLTYPE *InitializeSharedAudioStream)(
+        IAudioClient3 *This,
+        DWORD StreamFlags,
+        UINT32 PeriodInFrames,
+        const WAVEFORMATEX *pFormat,
+        LPCGUID AudioSessionGuid);
+
+    END_INTERFACE
+} IAudioClient3Vtbl;
+
+interface IAudioClient3 {
+    CONST_VTBL IAudioClient3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAudioClient3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAudioClient3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAudioClient3_Release(This) (This)->lpVtbl->Release(This)
+/*** IAudioClient methods ***/
+#define IAudioClient3_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) (This)->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid)
+#define IAudioClient3_GetBufferSize(This,pNumBufferFrames) (This)->lpVtbl->GetBufferSize(This,pNumBufferFrames)
+#define IAudioClient3_GetStreamLatency(This,phnsLatency) (This)->lpVtbl->GetStreamLatency(This,phnsLatency)
+#define IAudioClient3_GetCurrentPadding(This,pNumPaddingFrames) (This)->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames)
+#define IAudioClient3_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) (This)->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch)
+#define IAudioClient3_GetMixFormat(This,ppDeviceFormat) (This)->lpVtbl->GetMixFormat(This,ppDeviceFormat)
+#define IAudioClient3_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) (This)->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod)
+#define IAudioClient3_Start(This) (This)->lpVtbl->Start(This)
+#define IAudioClient3_Stop(This) (This)->lpVtbl->Stop(This)
+#define IAudioClient3_Reset(This) (This)->lpVtbl->Reset(This)
+#define IAudioClient3_SetEventHandle(This,eventHandle) (This)->lpVtbl->SetEventHandle(This,eventHandle)
+#define IAudioClient3_GetService(This,riid,ppv) (This)->lpVtbl->GetService(This,riid,ppv)
+/*** IAudioClient2 methods ***/
+#define IAudioClient3_IsOffloadCapable(This,Category,pbOffloadCapable) (This)->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable)
+#define IAudioClient3_SetClientProperties(This,pProperties) (This)->lpVtbl->SetClientProperties(This,pProperties)
+#define IAudioClient3_GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration) (This)->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration)
+/*** IAudioClient3 methods ***/
+#define IAudioClient3_GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames) (This)->lpVtbl->GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames)
+#define IAudioClient3_GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames) (This)->lpVtbl->GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames)
+#define IAudioClient3_InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid) (This)->lpVtbl->InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAudioClient3_QueryInterface(IAudioClient3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAudioClient3_AddRef(IAudioClient3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAudioClient3_Release(IAudioClient3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAudioClient methods ***/
+static FORCEINLINE HRESULT IAudioClient3_Initialize(IAudioClient3* This,AUDCLNT_SHAREMODE ShareMode,DWORD StreamFlags,REFERENCE_TIME hnsBufferDuration,REFERENCE_TIME hnsPeriodicity,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) {
+    return This->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetBufferSize(IAudioClient3* This,UINT32 *pNumBufferFrames) {
+    return This->lpVtbl->GetBufferSize(This,pNumBufferFrames);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetStreamLatency(IAudioClient3* This,REFERENCE_TIME *phnsLatency) {
+    return This->lpVtbl->GetStreamLatency(This,phnsLatency);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetCurrentPadding(IAudioClient3* This,UINT32 *pNumPaddingFrames) {
+    return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames);
+}
+static FORCEINLINE HRESULT IAudioClient3_IsFormatSupported(IAudioClient3* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) {
+    return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetMixFormat(IAudioClient3* This,WAVEFORMATEX **ppDeviceFormat) {
+    return This->lpVtbl->GetMixFormat(This,ppDeviceFormat);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetDevicePeriod(IAudioClient3* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) {
+    return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod);
+}
+static FORCEINLINE HRESULT IAudioClient3_Start(IAudioClient3* This) {
+    return This->lpVtbl->Start(This);
+}
+static FORCEINLINE HRESULT IAudioClient3_Stop(IAudioClient3* This) {
+    return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT IAudioClient3_Reset(IAudioClient3* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IAudioClient3_SetEventHandle(IAudioClient3* This,HANDLE eventHandle) {
+    return This->lpVtbl->SetEventHandle(This,eventHandle);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetService(IAudioClient3* This,REFIID riid,void **ppv) {
+    return This->lpVtbl->GetService(This,riid,ppv);
+}
+/*** IAudioClient2 methods ***/
+static FORCEINLINE HRESULT IAudioClient3_IsOffloadCapable(IAudioClient3* This,AUDIO_STREAM_CATEGORY Category,WINBOOL *pbOffloadCapable) {
+    return This->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable);
+}
+static FORCEINLINE HRESULT IAudioClient3_SetClientProperties(IAudioClient3* This,const AudioClientProperties *pProperties) {
+    return This->lpVtbl->SetClientProperties(This,pProperties);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetBufferSizeLimits(IAudioClient3* This,const WAVEFORMATEX *pFormat,WINBOOL bEventDriven,REFERENCE_TIME *phnsMinBufferDuration,REFERENCE_TIME *phnsMaxBufferDuration) {
+    return This->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration);
+}
+/*** IAudioClient3 methods ***/
+static FORCEINLINE HRESULT IAudioClient3_GetSharedModeEnginePeriod(IAudioClient3* This,const WAVEFORMATEX *pFormat,UINT32 *pDefaultPeriodInFrames,UINT32 *pFundamentalPeriodInFrames,UINT32 *pMinPeriodInFrames,UINT32 *pMaxPeriodInFrames) {
+    return This->lpVtbl->GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetCurrentSharedModeEnginePeriod(IAudioClient3* This,WAVEFORMATEX **ppFormat,UINT32 *pCurrentPeriodInFrames) {
+    return This->lpVtbl->GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames);
+}
+static FORCEINLINE HRESULT IAudioClient3_InitializeSharedAudioStream(IAudioClient3* This,DWORD StreamFlags,UINT32 PeriodInFrames,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) {
+    return This->lpVtbl->InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAudioClient3_INTERFACE_DEFINED__ */
+
 
 /*****************************************************************************
  * IAudioRenderClient interface
@@ -1292,6 +1583,124 @@ static FORCEINLINE HRESULT IAudioStreamVolume_GetAllVolumes(IAudioStreamVolume*
 
 #endif  /* __IAudioStreamVolume_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IAudioAmbisonicsControl interface
+ */
+#ifndef __IAudioAmbisonicsControl_INTERFACE_DEFINED__
+#define __IAudioAmbisonicsControl_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAudioAmbisonicsControl, 0x28724c91, 0xdf35, 0x4856, 0x9f,0x76, 0xd6,0xa2,0x64,0x13,0xf3,0xdf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("28724c91-df35-4856-9f76-d6a26413f3df")
+IAudioAmbisonicsControl : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetData(
+        const AMBISONICS_PARAMS *pAmbisonicsParams,
+        UINT32 cbAmbisonicsParams) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetHeadTracking(
+        WINBOOL bEnableHeadTracking) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetHeadTracking(
+        WINBOOL *pbEnableHeadTracking) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetRotation(
+        float X,
+        float Y,
+        float Z,
+        float W) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAudioAmbisonicsControl, 0x28724c91, 0xdf35, 0x4856, 0x9f,0x76, 0xd6,0xa2,0x64,0x13,0xf3,0xdf)
+#endif
+#else
+typedef struct IAudioAmbisonicsControlVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAudioAmbisonicsControl *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAudioAmbisonicsControl *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAudioAmbisonicsControl *This);
+
+    /*** IAudioAmbisonicsControl methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetData)(
+        IAudioAmbisonicsControl *This,
+        const AMBISONICS_PARAMS *pAmbisonicsParams,
+        UINT32 cbAmbisonicsParams);
+
+    HRESULT (STDMETHODCALLTYPE *SetHeadTracking)(
+        IAudioAmbisonicsControl *This,
+        WINBOOL bEnableHeadTracking);
+
+    HRESULT (STDMETHODCALLTYPE *GetHeadTracking)(
+        IAudioAmbisonicsControl *This,
+        WINBOOL *pbEnableHeadTracking);
+
+    HRESULT (STDMETHODCALLTYPE *SetRotation)(
+        IAudioAmbisonicsControl *This,
+        float X,
+        float Y,
+        float Z,
+        float W);
+
+    END_INTERFACE
+} IAudioAmbisonicsControlVtbl;
+
+interface IAudioAmbisonicsControl {
+    CONST_VTBL IAudioAmbisonicsControlVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAudioAmbisonicsControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAudioAmbisonicsControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAudioAmbisonicsControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IAudioAmbisonicsControl methods ***/
+#define IAudioAmbisonicsControl_SetData(This,pAmbisonicsParams,cbAmbisonicsParams) (This)->lpVtbl->SetData(This,pAmbisonicsParams,cbAmbisonicsParams)
+#define IAudioAmbisonicsControl_SetHeadTracking(This,bEnableHeadTracking) (This)->lpVtbl->SetHeadTracking(This,bEnableHeadTracking)
+#define IAudioAmbisonicsControl_GetHeadTracking(This,pbEnableHeadTracking) (This)->lpVtbl->GetHeadTracking(This,pbEnableHeadTracking)
+#define IAudioAmbisonicsControl_SetRotation(This,X,Y,Z,W) (This)->lpVtbl->SetRotation(This,X,Y,Z,W)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAudioAmbisonicsControl_QueryInterface(IAudioAmbisonicsControl* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAudioAmbisonicsControl_AddRef(IAudioAmbisonicsControl* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAudioAmbisonicsControl_Release(IAudioAmbisonicsControl* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAudioAmbisonicsControl methods ***/
+static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetData(IAudioAmbisonicsControl* This,const AMBISONICS_PARAMS *pAmbisonicsParams,UINT32 cbAmbisonicsParams) {
+    return This->lpVtbl->SetData(This,pAmbisonicsParams,cbAmbisonicsParams);
+}
+static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetHeadTracking(IAudioAmbisonicsControl* This,WINBOOL bEnableHeadTracking) {
+    return This->lpVtbl->SetHeadTracking(This,bEnableHeadTracking);
+}
+static FORCEINLINE HRESULT IAudioAmbisonicsControl_GetHeadTracking(IAudioAmbisonicsControl* This,WINBOOL *pbEnableHeadTracking) {
+    return This->lpVtbl->GetHeadTracking(This,pbEnableHeadTracking);
+}
+static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetRotation(IAudioAmbisonicsControl* This,float X,float Y,float Z,float W) {
+    return This->lpVtbl->SetRotation(This,X,Y,Z,W);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAudioAmbisonicsControl_INTERFACE_DEFINED__ */
+
 
 /*****************************************************************************
  * IChannelAudioVolume interface
@@ -1463,6 +1872,11 @@ static FORCEINLINE HRESULT IChannelAudioVolume_GetAllVolumes(IChannelAudioVolume
 #define AUDCLNT_E_OFFLOAD_MODE_ONLY AUDCLNT_ERR(0x24)
 #define AUDCLNT_E_NONOFFLOAD_MODE_ONLY AUDCLNT_ERR(0x25)
 #define AUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x26)
+#define AUDCLNT_E_RAW_MODE_UNSUPPORTED AUDCLNT_ERR(0x027)
+#define AUDCLNT_E_ENGINE_PERIODICITY_LOCKED AUDCLNT_ERR(0x028)
+#define AUDCLNT_E_ENGINE_FORMAT_LOCKED AUDCLNT_ERR(0x029)
+#define AUDCLNT_E_HEADTRACKING_ENABLED AUDCLNT_ERR(0x030)
+#define AUDCLNT_E_HEADTRACKING_UNSUPPORTED AUDCLNT_ERR(0x040)
 #define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x1)
 #define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x2)
 #define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x3)
lib/libc/include/any-windows-any/audioendpoints.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/audioendpoints.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/audioendpoints.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/audiopolicy.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/audiopolicy.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/audiopolicy.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/audiosessiontypes.h
@@ -50,6 +50,8 @@ typedef enum _AUDIO_STREAM_CATEGORY {
 #define AUDCLNT_STREAMFLAGS_EVENTCALLBACK 0x00040000
 #define AUDCLNT_STREAMFLAGS_NOPERSIST 0x00080000
 #define AUDCLNT_STREAMFLAGS_RATEADJUST 0x00100000
+#define AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY 0x08000000
+#define AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM 0x80000000
 #define AUDCLNT_SESSIONFLAGS_EXPIREWHENUNOWNED 0x10000000
 #define AUDCLNT_SESSIONFLAGS_DISPLAY_HIDE 0x20000000
 #define AUDCLNT_SESSIONFLAGS_DISPLAY_HIDEWHENEXPIRED 0x40000000
lib/libc/include/any-windows-any/austream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/austream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/austream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/austream.idl
@@ -1,108 +0,0 @@
-/*
- * Copyright 2004 Christian Costa
- *
- * 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 "unknwn.idl";
-import "mmstream.idl";
-
-cpp_quote("#if 0")
-typedef struct tWAVEFORMATEX WAVEFORMATEX;
-cpp_quote ("#endif")
-
-interface IAudioMediaStream;
-interface IAudioStreamSample;
-interface IMemoryData;
-interface IAudioData;
-
-[
-object,
-local,
-uuid(f7537560-a3be-11d0-8212-00c04fc32c45),
-pointer_default(unique)
-]
-interface IAudioMediaStream : IMediaStream
-{
-	HRESULT GetFormat(
-		[out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent
-	);
-
-	HRESULT SetFormat(
-		[in] const WAVEFORMATEX *lpWaveFormat);
-
-	HRESULT CreateSample(
-		[in] IAudioData *pAudioData,
-		[in] DWORD dwFlags,
-		[out] IAudioStreamSample **ppSample
-	);
-}
-
-
-[
-object,
-local,
-uuid(345fee00-aba5-11d0-8212-00c04fc32c45),
-pointer_default(unique)
-]
-interface IAudioStreamSample : IStreamSample
-{
-	HRESULT GetAudioData(
-		[out] IAudioData **ppAudio
-	);
-}
-
-
-[
-object,
-local,
-uuid(327fc560-af60-11d0-8212-00c04fc32c45),
-pointer_default(unique)
-]
-interface IMemoryData : IUnknown
-{
-	HRESULT SetBuffer(
-		[in] DWORD cbSize,
-		[in] BYTE *pbData,
-		[in] DWORD dwFlags
-	);
-
-	HRESULT GetInfo(
-		[out] DWORD *pdwLength,
-		[out] BYTE **ppbData,
-		[out] DWORD *pcbActualData
-	);
-	HRESULT SetActual(
-		[in] DWORD cbDataValid
-	);
-}
-
-
-[
-object,
-local,
-uuid(54c719c0-af60-11d0-8212-00c04fc32c45),
-pointer_default(unique)
-]
-interface IAudioData : IMemoryData
-{
-	HRESULT GetFormat(
-		[out] /*[optional]*/ WAVEFORMATEX *pWaveFormatCurrent
-	);
-
-	HRESULT SetFormat(
-		[in] const WAVEFORMATEX *lpWaveFormat
-	);
-}
lib/libc/include/any-windows-any/bcrypt.h
@@ -55,6 +55,14 @@ extern "C" {
 #define BCRYPT_KDF_TLS_PRF L"TLS_PRF"
 #define BCRYPT_KDF_SP80056A_CONCAT L"SP800_56A_CONCAT"
 
+#if NTDDI_VERSION >= NTDDI_WINBLUE
+#define BCRYPT_KDF_RAW_SECRET L"TRUNCATE"
+#endif
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS4
+#define BCRYPT_KDF_HKDF L"HKDF"
+#endif
+
 #define KDF_HASH_ALGORITHM 0x0
 #define KDF_SECRET_PREPEND 0x1
 #define KDF_SECRET_APPEND 0x2
@@ -62,18 +70,26 @@ extern "C" {
 #define KDF_TLS_PRF_LABEL 0x4
 #define KDF_TLS_PRF_SEED 0x5
 #define KDF_SECRET_HANDLE 0x6
+#if NTDDI_VERSION >= NTDDI_WIN7
 #define KDF_TLS_PRF_PROTOCOL 0x7
 #define KDF_ALGORITHMID 0x8
 #define KDF_PARTYUINFO 0x9
 #define KDF_PARTYVINFO 0xa
 #define KDF_SUPPPUBINFO 0xb
 #define KDF_SUPPPRIVINFO 0xc
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN8
 #define KDF_LABEL 0xd
 #define KDF_CONTEXT 0xe
 #define KDF_SALT 0xf
 #define KDF_ITERATION_COUNT 0x10
 #define KDF_GENERIC_PARAMETER 0x11
 #define KDF_KEYBITLENGTH 0x12
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_RS4
+#define KDF_HKDF_SALT 0x13
+#define KDF_HKDF_INFO 0x14
+#endif
 
 #define KDF_USE_SECRET_AS_HMAC_KEY_FLAG 1
 
@@ -89,7 +105,9 @@ extern "C" {
 
 #define BCRYPT_OPAQUE_KEY_BLOB L"OpaqueKeyBlob"
 #define BCRYPT_KEY_DATA_BLOB L"KeyDataBlob"
+#if NTDDI_VERSION >= NTDDI_WIN7
 #define BCRYPT_AES_WRAP_KEY_BLOB L"Rfc3565KeyWrapBlob"
+#endif
 
 #define BCRYPT_ALGORITHM_NAME L"AlgorithmName"
 #define BCRYPT_AUTH_TAG_LENGTH L"AuthTagLength"
@@ -120,7 +138,17 @@ extern "C" {
 #define BCRYPT_PCP_PROVIDER_VERSION_PROPERTY L"PCP_PROVIDER_VERSION"
 #define BCRYPT_PRIMITIVE_TYPE L"PrimitiveType"
 #define BCRYPT_PROVIDER_HANDLE L"ProviderHandle"
+#define BCRYPT_PUBLIC_KEY_LENGTH L"PublicKeyLength"
 #define BCRYPT_SIGNATURE_LENGTH L"SignatureLength"
+#if (NTDDI_VERSION > NTDDI_WINBLUE || (NTDDI_VERSION == NTDDI_WINBLUE && defined(WINBLUE_KBSPRING14)))
+#define BCRYPT_MULTI_OBJECT_LENGTH L"MultiObjectLength"
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_RS4
+#define BCRYPT_IS_IFX_TPM_WEAK_KEY L"IsIfxTpmWeakKey"
+#define BCRYPT_HKDF_HASH_ALGORITHM L"HkdfHashAlgorithm"
+#define BCRYPT_HKDF_SALT_AND_FINALIZE L"HkdfSaltAndFinalize"
+#define BCRYPT_HKDF_PRK_AND_FINALIZE L"HkdfPrkAndFinalize"
+#endif
 
 #define BCRYPT_SUPPORTED_PAD_ROUTER 0x00000001
 #define BCRYPT_SUPPORTED_PAD_PKCS1_ENC 0x00000002
@@ -136,6 +164,9 @@ extern "C" {
 #define BCRYPT_PAD_PKCS1 0x00000002
 #define BCRYPT_PAD_OAEP 0x00000004
 #define BCRYPT_PAD_PSS 0x00000008
+#if NTDDI_VERSION >= NTDDI_WINBLUE
+#define BCRYPT_PAD_PKCS1_OPTIONAL_HASH_OID 0x00000010
+#endif
 
 #define BCRYPTBUFFER_VERSION 0
 
@@ -220,18 +251,30 @@ extern "C" {
 
 #define BCRYPT_RSAFULLPRIVATE_MAGIC 0x33415352
 
+#if NTDDI_VERSION >= NTDDI_WIN8
 #define BCRYPT_GLOBAL_PARAMETERS L"SecretAgreementParam"
 #define BCRYPT_PRIVATE_KEY L"PrivKeyVal"
+#endif
 
 #define BCRYPT_ECCPUBLIC_BLOB L"ECCPUBLICBLOB"
 #define BCRYPT_ECCPRIVATE_BLOB L"ECCPRIVATEBLOB"
 
+#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
+#define BCRYPT_ECCFULLPUBLIC_BLOB L"ECCFULLPUBLICBLOB"
+#define BCRYPT_ECCFULLPRIVATE_BLOB L"ECCFULLPRIVATEBLOB"
+#define SSL_ECCPUBLIC_BLOB L"SSLECCPUBLICBLOB"
+#endif
+
 #define BCRYPT_ECDH_PUBLIC_P256_MAGIC 0x314b4345
 #define BCRYPT_ECDH_PRIVATE_P256_MAGIC 0x324b4345
 #define BCRYPT_ECDH_PUBLIC_P384_MAGIC 0x334b4345
 #define BCRYPT_ECDH_PRIVATE_P384_MAGIC 0x344b4345
 #define BCRYPT_ECDH_PUBLIC_P521_MAGIC 0x354b4345
 #define BCRYPT_ECDH_PRIVATE_P521_MAGIC 0x364b4345
+#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
+#define BCRYPT_ECDH_PUBLIC_GENERIC_MAGIC 0x504B4345
+#define BCRYPT_ECDH_PRIVATE_GENERIC_MAGIC 0x564B4345
+#endif
 
 #define BCRYPT_ECDSA_PUBLIC_P256_MAGIC 0x31534345
 #define BCRYPT_ECDSA_PRIVATE_P256_MAGIC 0x32534345
@@ -239,6 +282,10 @@ extern "C" {
 #define BCRYPT_ECDSA_PRIVATE_P384_MAGIC 0x34534345
 #define BCRYPT_ECDSA_PUBLIC_P521_MAGIC 0x35534345
 #define BCRYPT_ECDSA_PRIVATE_P521_MAGIC 0x36534345
+#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
+#define BCRYPT_ECDSA_PUBLIC_GENERIC_MAGIC 0x50444345
+#define BCRYPT_ECDSA_PRIVATE_GENERIC_MAGIC 0x56444345
+#endif
 
 #define BCRYPT_DH_PUBLIC_BLOB L"DHPUBLICBLOB"
 #define BCRYPT_DH_PRIVATE_BLOB L"DHPRIVATEBLOB"
@@ -460,6 +507,32 @@ typedef PVOID BCRYPT_HANDLE;
     UCHAR Count[4];
   } BCRYPT_DSA_PARAMETER_HEADER_V2;
 
+  typedef struct _BCRYPT_ECC_CURVE_NAMES {
+    ULONG dwEccCurveNames;
+    LPWSTR *pEccCurveNames;
+  } BCRYPT_ECC_CURVE_NAMES;
+
+  typedef enum {
+    BCRYPT_HASH_OPERATION_HASH_DATA = 1,
+    BCRYPT_HASH_OPERATION_FINISH_HASH = 2
+  } BCRYPT_HASH_OPERATION_TYPE;
+
+  typedef struct _BCRYPT_MULTI_HASH_OPERATION {
+    ULONG iHash;
+    BCRYPT_HASH_OPERATION_TYPE hashOperation;
+    PUCHAR pbBuffer;
+    ULONG cbBuffer;
+  } BCRYPT_MULTI_HASH_OPERATION;
+
+  typedef enum {
+    BCRYPT_OPERATION_TYPE_HASH = 1
+  } BCRYPT_MULTI_OPERATION_TYPE;
+
+  typedef struct _BCRYPT_MULTI_OBJECT_LENGTH_STRUCT {
+    ULONG cbPerObject;
+    ULONG cbPerElement;
+  } BCRYPT_MULTI_OBJECT_LENGTH_STRUCT;
+
   typedef struct _BCRYPT_ALGORITHM_IDENTIFIER {
     LPWSTR pszName;
     ULONG dwClass;
@@ -577,8 +650,15 @@ typedef PVOID BCRYPT_HANDLE;
   NTSTATUS WINAPI BCryptCreateHash (BCRYPT_ALG_HANDLE hAlgorithm, BCRYPT_HASH_HANDLE *phHash, PUCHAR pbHashObject, ULONG cbHashObject, PUCHAR pbSecret, ULONG cbSecret, ULONG dwFlags);
   NTSTATUS WINAPI BCryptHashData (BCRYPT_HASH_HANDLE hHash, PUCHAR pbInput, ULONG cbInput, ULONG dwFlags);
   NTSTATUS WINAPI BCryptFinishHash (BCRYPT_HASH_HANDLE hHash, PUCHAR pbOutput, ULONG cbOutput, ULONG dwFlags);
+#if (NTDDI_VERSION > NTDDI_WINBLUE || (NTDDI_VERSION == NTDDI_WINBLUE && defined(WINBLUE_KBSPRING14)))
+  NTSTATUS WINAPI BCryptCreateMultiHash (BCRYPT_ALG_HANDLE hAlgorithm, BCRYPT_HASH_HANDLE *phHash, ULONG nHashes, PUCHAR pbHashObject, ULONG cbHashObject, PUCHAR pbSecret, ULONG cbSecret, ULONG dwFlags);
+  NTSTATUS WINAPI BCryptProcessMultiOperations (BCRYPT_HANDLE hObject, BCRYPT_MULTI_OPERATION_TYPE operationType, PVOID pOperations, ULONG cbOperations, ULONG dwFlags);
+#endif
   NTSTATUS WINAPI BCryptDuplicateHash (BCRYPT_HASH_HANDLE hHash, BCRYPT_HASH_HANDLE *phNewHash, PUCHAR pbHashObject, ULONG cbHashObject, ULONG dwFlags);
   NTSTATUS WINAPI BCryptDestroyHash (BCRYPT_HASH_HANDLE hHash);
+#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
+  NTSTATUS WINAPI BCryptHash (BCRYPT_ALG_HANDLE hAlgorithm, PUCHAR pbSecret, ULONG cbSecret, PUCHAR pbInput, ULONG cbInput, PUCHAR pbOutput, ULONG cbOutput);
+#endif
   NTSTATUS WINAPI BCryptGenRandom (BCRYPT_ALG_HANDLE hAlgorithm, PUCHAR pbBuffer, ULONG cbBuffer, ULONG dwFlags);
   NTSTATUS WINAPI BCryptDeriveKeyCapi (BCRYPT_HASH_HANDLE hHash, BCRYPT_ALG_HANDLE hTargetAlg, PUCHAR pbDerivedKey, ULONG cbDerivedKey, ULONG dwFlags);
   NTSTATUS WINAPI BCryptDeriveKeyPBKDF2 (BCRYPT_ALG_HANDLE hPrf, PUCHAR pbPassword, ULONG cbPassword, PUCHAR pbSalt, ULONG cbSalt, ULONGLONG cIterations, PUCHAR pbDerivedKey, ULONG cbDerivedKey, ULONG dwFlags);
@@ -603,10 +683,10 @@ typedef PVOID BCRYPT_HANDLE;
   NTSTATUS WINAPI BCryptSetContextFunctionProperty (ULONG dwTable, LPCWSTR pszContext, ULONG dwInterface, LPCWSTR pszFunction, LPCWSTR pszProperty, ULONG cbValue, PUCHAR pbValue);
   NTSTATUS WINAPI BCryptQueryContextFunctionProperty (ULONG dwTable, LPCWSTR pszContext, ULONG dwInterface, LPCWSTR pszFunction, LPCWSTR pszProperty, ULONG *pcbValue, PUCHAR *ppbValue);
   NTSTATUS WINAPI BCryptRegisterConfigChangeNotify (HANDLE *phEvent);
+  NTSTATUS WINAPI BCryptUnregisterConfigChangeNotify (HANDLE hEvent);
 #else
   NTSTATUS WINAPI BCryptRegisterConfigChangeNotify (PRKEVENT pEvent);
   NTSTATUS WINAPI BCryptUnregisterConfigChangeNotify (PRKEVENT pEvent);
-  NTSTATUS WINAPI BCryptUnregisterConfigChangeNotify (HANDLE hEvent);
 #endif
 #endif
 
lib/libc/include/any-windows-any/bdaiface.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.6 from include/bdaiface.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/bdaiface.idl - Do not edit ***/
 
+#ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
-
 #include <rpc.h>
 #include <rpcndr.h>
+#endif
 
 #ifndef COM_NO_WINDOWS_H
 #include <windows.h>
@@ -20,231 +21,369 @@
 #ifndef __IBDA_NetworkProvider_FWD_DEFINED__
 #define __IBDA_NetworkProvider_FWD_DEFINED__
 typedef interface IBDA_NetworkProvider IBDA_NetworkProvider;
+#ifdef __cplusplus
+interface IBDA_NetworkProvider;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_EthernetFilter_FWD_DEFINED__
 #define __IBDA_EthernetFilter_FWD_DEFINED__
 typedef interface IBDA_EthernetFilter IBDA_EthernetFilter;
+#ifdef __cplusplus
+interface IBDA_EthernetFilter;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_IPV4Filter_FWD_DEFINED__
 #define __IBDA_IPV4Filter_FWD_DEFINED__
 typedef interface IBDA_IPV4Filter IBDA_IPV4Filter;
+#ifdef __cplusplus
+interface IBDA_IPV4Filter;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_IPV6Filter_FWD_DEFINED__
 #define __IBDA_IPV6Filter_FWD_DEFINED__
 typedef interface IBDA_IPV6Filter IBDA_IPV6Filter;
+#ifdef __cplusplus
+interface IBDA_IPV6Filter;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DeviceControl_FWD_DEFINED__
 #define __IBDA_DeviceControl_FWD_DEFINED__
 typedef interface IBDA_DeviceControl IBDA_DeviceControl;
+#ifdef __cplusplus
+interface IBDA_DeviceControl;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_PinControl_FWD_DEFINED__
 #define __IBDA_PinControl_FWD_DEFINED__
 typedef interface IBDA_PinControl IBDA_PinControl;
+#ifdef __cplusplus
+interface IBDA_PinControl;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_SignalProperties_FWD_DEFINED__
 #define __IBDA_SignalProperties_FWD_DEFINED__
 typedef interface IBDA_SignalProperties IBDA_SignalProperties;
+#ifdef __cplusplus
+interface IBDA_SignalProperties;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_SignalStatistics_FWD_DEFINED__
 #define __IBDA_SignalStatistics_FWD_DEFINED__
 typedef interface IBDA_SignalStatistics IBDA_SignalStatistics;
+#ifdef __cplusplus
+interface IBDA_SignalStatistics;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_Topology_FWD_DEFINED__
 #define __IBDA_Topology_FWD_DEFINED__
 typedef interface IBDA_Topology IBDA_Topology;
+#ifdef __cplusplus
+interface IBDA_Topology;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_VoidTransform_FWD_DEFINED__
 #define __IBDA_VoidTransform_FWD_DEFINED__
 typedef interface IBDA_VoidTransform IBDA_VoidTransform;
+#ifdef __cplusplus
+interface IBDA_VoidTransform;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_NullTransform_FWD_DEFINED__
 #define __IBDA_NullTransform_FWD_DEFINED__
 typedef interface IBDA_NullTransform IBDA_NullTransform;
+#ifdef __cplusplus
+interface IBDA_NullTransform;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_FrequencyFilter_FWD_DEFINED__
 #define __IBDA_FrequencyFilter_FWD_DEFINED__
 typedef interface IBDA_FrequencyFilter IBDA_FrequencyFilter;
+#ifdef __cplusplus
+interface IBDA_FrequencyFilter;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_LNBInfo_FWD_DEFINED__
 #define __IBDA_LNBInfo_FWD_DEFINED__
 typedef interface IBDA_LNBInfo IBDA_LNBInfo;
+#ifdef __cplusplus
+interface IBDA_LNBInfo;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DiseqCommand_FWD_DEFINED__
 #define __IBDA_DiseqCommand_FWD_DEFINED__
 typedef interface IBDA_DiseqCommand IBDA_DiseqCommand;
+#ifdef __cplusplus
+interface IBDA_DiseqCommand;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_AutoDemodulate_FWD_DEFINED__
 #define __IBDA_AutoDemodulate_FWD_DEFINED__
 typedef interface IBDA_AutoDemodulate IBDA_AutoDemodulate;
+#ifdef __cplusplus
+interface IBDA_AutoDemodulate;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_AutoDemodulateEx_FWD_DEFINED__
 #define __IBDA_AutoDemodulateEx_FWD_DEFINED__
 typedef interface IBDA_AutoDemodulateEx IBDA_AutoDemodulateEx;
+#ifdef __cplusplus
+interface IBDA_AutoDemodulateEx;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DigitalDemodulator_FWD_DEFINED__
 #define __IBDA_DigitalDemodulator_FWD_DEFINED__
 typedef interface IBDA_DigitalDemodulator IBDA_DigitalDemodulator;
+#ifdef __cplusplus
+interface IBDA_DigitalDemodulator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DigitalDemodulator2_FWD_DEFINED__
 #define __IBDA_DigitalDemodulator2_FWD_DEFINED__
 typedef interface IBDA_DigitalDemodulator2 IBDA_DigitalDemodulator2;
+#ifdef __cplusplus
+interface IBDA_DigitalDemodulator2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DigitalDemodulator3_FWD_DEFINED__
 #define __IBDA_DigitalDemodulator3_FWD_DEFINED__
 typedef interface IBDA_DigitalDemodulator3 IBDA_DigitalDemodulator3;
+#ifdef __cplusplus
+interface IBDA_DigitalDemodulator3;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ICCSubStreamFiltering_FWD_DEFINED__
 #define __ICCSubStreamFiltering_FWD_DEFINED__
 typedef interface ICCSubStreamFiltering ICCSubStreamFiltering;
+#ifdef __cplusplus
+interface ICCSubStreamFiltering;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_IPSinkControl_FWD_DEFINED__
 #define __IBDA_IPSinkControl_FWD_DEFINED__
 typedef interface IBDA_IPSinkControl IBDA_IPSinkControl;
+#ifdef __cplusplus
+interface IBDA_IPSinkControl;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_IPSinkInfo_FWD_DEFINED__
 #define __IBDA_IPSinkInfo_FWD_DEFINED__
 typedef interface IBDA_IPSinkInfo IBDA_IPSinkInfo;
+#ifdef __cplusplus
+interface IBDA_IPSinkInfo;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumPIDMap_FWD_DEFINED__
 #define __IEnumPIDMap_FWD_DEFINED__
 typedef interface IEnumPIDMap IEnumPIDMap;
+#ifdef __cplusplus
+interface IEnumPIDMap;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMPEG2PIDMap_FWD_DEFINED__
 #define __IMPEG2PIDMap_FWD_DEFINED__
 typedef interface IMPEG2PIDMap IMPEG2PIDMap;
+#ifdef __cplusplus
+interface IMPEG2PIDMap;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IFrequencyMap_FWD_DEFINED__
 #define __IFrequencyMap_FWD_DEFINED__
 typedef interface IFrequencyMap IFrequencyMap;
+#ifdef __cplusplus
+interface IFrequencyMap;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_EasMessage_FWD_DEFINED__
 #define __IBDA_EasMessage_FWD_DEFINED__
 typedef interface IBDA_EasMessage IBDA_EasMessage;
+#ifdef __cplusplus
+interface IBDA_EasMessage;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_TransportStreamInfo_FWD_DEFINED__
 #define __IBDA_TransportStreamInfo_FWD_DEFINED__
 typedef interface IBDA_TransportStreamInfo IBDA_TransportStreamInfo;
+#ifdef __cplusplus
+interface IBDA_TransportStreamInfo;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_ConditionalAccess_FWD_DEFINED__
 #define __IBDA_ConditionalAccess_FWD_DEFINED__
 typedef interface IBDA_ConditionalAccess IBDA_ConditionalAccess;
+#ifdef __cplusplus
+interface IBDA_ConditionalAccess;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DiagnosticProperties_FWD_DEFINED__
 #define __IBDA_DiagnosticProperties_FWD_DEFINED__
 typedef interface IBDA_DiagnosticProperties IBDA_DiagnosticProperties;
+#ifdef __cplusplus
+interface IBDA_DiagnosticProperties;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DRM_FWD_DEFINED__
 #define __IBDA_DRM_FWD_DEFINED__
 typedef interface IBDA_DRM IBDA_DRM;
+#ifdef __cplusplus
+interface IBDA_DRM;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_NameValueService_FWD_DEFINED__
 #define __IBDA_NameValueService_FWD_DEFINED__
 typedef interface IBDA_NameValueService IBDA_NameValueService;
+#ifdef __cplusplus
+interface IBDA_NameValueService;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_ConditionalAccessEx_FWD_DEFINED__
 #define __IBDA_ConditionalAccessEx_FWD_DEFINED__
 typedef interface IBDA_ConditionalAccessEx IBDA_ConditionalAccessEx;
+#ifdef __cplusplus
+interface IBDA_ConditionalAccessEx;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_ISDBConditionalAccess_FWD_DEFINED__
 #define __IBDA_ISDBConditionalAccess_FWD_DEFINED__
 typedef interface IBDA_ISDBConditionalAccess IBDA_ISDBConditionalAccess;
+#ifdef __cplusplus
+interface IBDA_ISDBConditionalAccess;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_EventingService_FWD_DEFINED__
 #define __IBDA_EventingService_FWD_DEFINED__
 typedef interface IBDA_EventingService IBDA_EventingService;
+#ifdef __cplusplus
+interface IBDA_EventingService;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_AUX_FWD_DEFINED__
 #define __IBDA_AUX_FWD_DEFINED__
 typedef interface IBDA_AUX IBDA_AUX;
+#ifdef __cplusplus
+interface IBDA_AUX;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_Encoder_FWD_DEFINED__
 #define __IBDA_Encoder_FWD_DEFINED__
 typedef interface IBDA_Encoder IBDA_Encoder;
+#ifdef __cplusplus
+interface IBDA_Encoder;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_FDC_FWD_DEFINED__
 #define __IBDA_FDC_FWD_DEFINED__
 typedef interface IBDA_FDC IBDA_FDC;
+#ifdef __cplusplus
+interface IBDA_FDC;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_GuideDataDeliveryService_FWD_DEFINED__
 #define __IBDA_GuideDataDeliveryService_FWD_DEFINED__
 typedef interface IBDA_GuideDataDeliveryService IBDA_GuideDataDeliveryService;
+#ifdef __cplusplus
+interface IBDA_GuideDataDeliveryService;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DRMService_FWD_DEFINED__
 #define __IBDA_DRMService_FWD_DEFINED__
 typedef interface IBDA_DRMService IBDA_DRMService;
+#ifdef __cplusplus
+interface IBDA_DRMService;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_WMDRMSession_FWD_DEFINED__
 #define __IBDA_WMDRMSession_FWD_DEFINED__
 typedef interface IBDA_WMDRMSession IBDA_WMDRMSession;
+#ifdef __cplusplus
+interface IBDA_WMDRMSession;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_WMDRMTuner_FWD_DEFINED__
 #define __IBDA_WMDRMTuner_FWD_DEFINED__
 typedef interface IBDA_WMDRMTuner IBDA_WMDRMTuner;
+#ifdef __cplusplus
+interface IBDA_WMDRMTuner;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DRIDRMService_FWD_DEFINED__
 #define __IBDA_DRIDRMService_FWD_DEFINED__
 typedef interface IBDA_DRIDRMService IBDA_DRIDRMService;
+#ifdef __cplusplus
+interface IBDA_DRIDRMService;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_DRIWMDRMSession_FWD_DEFINED__
 #define __IBDA_DRIWMDRMSession_FWD_DEFINED__
 typedef interface IBDA_DRIWMDRMSession IBDA_DRIWMDRMSession;
+#ifdef __cplusplus
+interface IBDA_DRIWMDRMSession;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_MUX_FWD_DEFINED__
 #define __IBDA_MUX_FWD_DEFINED__
 typedef interface IBDA_MUX IBDA_MUX;
+#ifdef __cplusplus
+interface IBDA_MUX;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_TransportStreamSelector_FWD_DEFINED__
 #define __IBDA_TransportStreamSelector_FWD_DEFINED__
 typedef interface IBDA_TransportStreamSelector IBDA_TransportStreamSelector;
+#ifdef __cplusplus
+interface IBDA_TransportStreamSelector;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDA_UserActivityService_FWD_DEFINED__
 #define __IBDA_UserActivityService_FWD_DEFINED__
 typedef interface IBDA_UserActivityService IBDA_UserActivityService;
+#ifdef __cplusplus
+interface IBDA_UserActivityService;
+#endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
@@ -324,7 +463,7 @@ typedef struct SmartCardApplication {
 #define PBDA_Encoder_BitrateMode_Constant 1
 #define PBDA_Encoder_BitrateMode_Variable 2
 #define PBDA_Encoder_BitrateMode_Average 3
-typedef enum __WIDL_bdaiface_generated_name_0000000F {
+typedef enum __WIDL_bdaiface_generated_name_00000017 {
     KSPROPERTY_IPSINK_MULTICASTLIST = 0,
     KSPROPERTY_IPSINK_ADAPTER_DESCRIPTION = 1,
     KSPROPERTY_IPSINK_ADAPTER_ADDRESS = 2
@@ -372,48 +511,49 @@ typedef struct IBDA_NetworkProviderVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_NetworkProvider* This,
+        IBDA_NetworkProvider *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_NetworkProvider* This);
+        IBDA_NetworkProvider *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_NetworkProvider* This);
+        IBDA_NetworkProvider *This);
 
     /*** IBDA_NetworkProvider methods ***/
     HRESULT (STDMETHODCALLTYPE *PutSignalSource)(
-        IBDA_NetworkProvider* This,
+        IBDA_NetworkProvider *This,
         ULONG ulSignalSource);
 
     HRESULT (STDMETHODCALLTYPE *GetSignalSource)(
-        IBDA_NetworkProvider* This,
+        IBDA_NetworkProvider *This,
         ULONG *pulSignalSource);
 
     HRESULT (STDMETHODCALLTYPE *GetNetworkType)(
-        IBDA_NetworkProvider* This,
+        IBDA_NetworkProvider *This,
         GUID *pguidNetworkType);
 
     HRESULT (STDMETHODCALLTYPE *PutTuningSpace)(
-        IBDA_NetworkProvider* This,
+        IBDA_NetworkProvider *This,
         REFGUID guidTuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *GetTuningSpace)(
-        IBDA_NetworkProvider* This,
+        IBDA_NetworkProvider *This,
         GUID *pguidTuingSpace);
 
     HRESULT (STDMETHODCALLTYPE *RegisterDeviceFilter)(
-        IBDA_NetworkProvider* This,
+        IBDA_NetworkProvider *This,
         IUnknown *pUnkFilterControl,
         ULONG *ppvRegisitrationContext);
 
     HRESULT (STDMETHODCALLTYPE *UnRegisterDeviceFilter)(
-        IBDA_NetworkProvider* This,
+        IBDA_NetworkProvider *This,
         ULONG pvRegistrationContext);
 
     END_INTERFACE
 } IBDA_NetworkProviderVtbl;
+
 interface IBDA_NetworkProvider {
     CONST_VTBL IBDA_NetworkProviderVtbl* lpVtbl;
 };
@@ -470,63 +610,6 @@ static FORCEINLINE HRESULT IBDA_NetworkProvider_UnRegisterDeviceFilter(IBDA_Netw
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_NetworkProvider_PutSignalSource_Proxy(
-    IBDA_NetworkProvider* This,
-    ULONG ulSignalSource);
-void __RPC_STUB IBDA_NetworkProvider_PutSignalSource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_NetworkProvider_GetSignalSource_Proxy(
-    IBDA_NetworkProvider* This,
-    ULONG *pulSignalSource);
-void __RPC_STUB IBDA_NetworkProvider_GetSignalSource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_NetworkProvider_GetNetworkType_Proxy(
-    IBDA_NetworkProvider* This,
-    GUID *pguidNetworkType);
-void __RPC_STUB IBDA_NetworkProvider_GetNetworkType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_NetworkProvider_PutTuningSpace_Proxy(
-    IBDA_NetworkProvider* This,
-    REFGUID guidTuningSpace);
-void __RPC_STUB IBDA_NetworkProvider_PutTuningSpace_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_NetworkProvider_GetTuningSpace_Proxy(
-    IBDA_NetworkProvider* This,
-    GUID *pguidTuingSpace);
-void __RPC_STUB IBDA_NetworkProvider_GetTuningSpace_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_NetworkProvider_RegisterDeviceFilter_Proxy(
-    IBDA_NetworkProvider* This,
-    IUnknown *pUnkFilterControl,
-    ULONG *ppvRegisitrationContext);
-void __RPC_STUB IBDA_NetworkProvider_RegisterDeviceFilter_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_NetworkProvider_UnRegisterDeviceFilter_Proxy(
-    IBDA_NetworkProvider* This,
-    ULONG pvRegistrationContext);
-void __RPC_STUB IBDA_NetworkProvider_UnRegisterDeviceFilter_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_NetworkProvider_INTERFACE_DEFINED__ */
 
@@ -568,41 +651,42 @@ typedef struct IBDA_EthernetFilterVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_EthernetFilter* This,
+        IBDA_EthernetFilter *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_EthernetFilter* This);
+        IBDA_EthernetFilter *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_EthernetFilter* This);
+        IBDA_EthernetFilter *This);
 
     /*** IBDA_EthernetFilter methods ***/
     HRESULT (STDMETHODCALLTYPE *GetMulticastListSize)(
-        IBDA_EthernetFilter* This,
+        IBDA_EthernetFilter *This,
         ULONG *pulcbAddresses);
 
     HRESULT (STDMETHODCALLTYPE *PutMulticastList)(
-        IBDA_EthernetFilter* This,
+        IBDA_EthernetFilter *This,
         ULONG ulcbAddresses,
         BYTE pAddressList[]);
 
     HRESULT (STDMETHODCALLTYPE *GetMulticastList)(
-        IBDA_EthernetFilter* This,
+        IBDA_EthernetFilter *This,
         ULONG *pulcbAddresses,
         BYTE pAddressList[]);
 
     HRESULT (STDMETHODCALLTYPE *PutMulticastMode)(
-        IBDA_EthernetFilter* This,
+        IBDA_EthernetFilter *This,
         ULONG ulModeMask);
 
     HRESULT (STDMETHODCALLTYPE *GetMulticastMode)(
-        IBDA_EthernetFilter* This,
+        IBDA_EthernetFilter *This,
         ULONG *pulModeMask);
 
     END_INTERFACE
 } IBDA_EthernetFilterVtbl;
+
 interface IBDA_EthernetFilter {
     CONST_VTBL IBDA_EthernetFilterVtbl* lpVtbl;
 };
@@ -651,48 +735,6 @@ static FORCEINLINE HRESULT IBDA_EthernetFilter_GetMulticastMode(IBDA_EthernetFil
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_EthernetFilter_GetMulticastListSize_Proxy(
-    IBDA_EthernetFilter* This,
-    ULONG *pulcbAddresses);
-void __RPC_STUB IBDA_EthernetFilter_GetMulticastListSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_EthernetFilter_PutMulticastList_Proxy(
-    IBDA_EthernetFilter* This,
-    ULONG ulcbAddresses,
-    BYTE pAddressList[]);
-void __RPC_STUB IBDA_EthernetFilter_PutMulticastList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_EthernetFilter_GetMulticastList_Proxy(
-    IBDA_EthernetFilter* This,
-    ULONG *pulcbAddresses,
-    BYTE pAddressList[]);
-void __RPC_STUB IBDA_EthernetFilter_GetMulticastList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_EthernetFilter_PutMulticastMode_Proxy(
-    IBDA_EthernetFilter* This,
-    ULONG ulModeMask);
-void __RPC_STUB IBDA_EthernetFilter_PutMulticastMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_EthernetFilter_GetMulticastMode_Proxy(
-    IBDA_EthernetFilter* This,
-    ULONG *pulModeMask);
-void __RPC_STUB IBDA_EthernetFilter_GetMulticastMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_EthernetFilter_INTERFACE_DEFINED__ */
 
@@ -734,41 +776,42 @@ typedef struct IBDA_IPV4FilterVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_IPV4Filter* This,
+        IBDA_IPV4Filter *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_IPV4Filter* This);
+        IBDA_IPV4Filter *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_IPV4Filter* This);
+        IBDA_IPV4Filter *This);
 
     /*** IBDA_IPV4Filter methods ***/
     HRESULT (STDMETHODCALLTYPE *GetMulticastListSize)(
-        IBDA_IPV4Filter* This,
+        IBDA_IPV4Filter *This,
         ULONG *pulcbAddresses);
 
     HRESULT (STDMETHODCALLTYPE *PutMulticastList)(
-        IBDA_IPV4Filter* This,
+        IBDA_IPV4Filter *This,
         ULONG ulcbAddresses,
         BYTE pAddressList[]);
 
     HRESULT (STDMETHODCALLTYPE *GetMulticastList)(
-        IBDA_IPV4Filter* This,
+        IBDA_IPV4Filter *This,
         ULONG *pulcbAddresses,
         BYTE pAddressList[]);
 
     HRESULT (STDMETHODCALLTYPE *PutMulticastMode)(
-        IBDA_IPV4Filter* This,
+        IBDA_IPV4Filter *This,
         ULONG ulModeMask);
 
     HRESULT (STDMETHODCALLTYPE *GetMulticastMode)(
-        IBDA_IPV4Filter* This,
+        IBDA_IPV4Filter *This,
         ULONG *pulModeMask);
 
     END_INTERFACE
 } IBDA_IPV4FilterVtbl;
+
 interface IBDA_IPV4Filter {
     CONST_VTBL IBDA_IPV4FilterVtbl* lpVtbl;
 };
@@ -817,48 +860,6 @@ static FORCEINLINE HRESULT IBDA_IPV4Filter_GetMulticastMode(IBDA_IPV4Filter* Thi
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_IPV4Filter_GetMulticastListSize_Proxy(
-    IBDA_IPV4Filter* This,
-    ULONG *pulcbAddresses);
-void __RPC_STUB IBDA_IPV4Filter_GetMulticastListSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPV4Filter_PutMulticastList_Proxy(
-    IBDA_IPV4Filter* This,
-    ULONG ulcbAddresses,
-    BYTE pAddressList[]);
-void __RPC_STUB IBDA_IPV4Filter_PutMulticastList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPV4Filter_GetMulticastList_Proxy(
-    IBDA_IPV4Filter* This,
-    ULONG *pulcbAddresses,
-    BYTE pAddressList[]);
-void __RPC_STUB IBDA_IPV4Filter_GetMulticastList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPV4Filter_PutMulticastMode_Proxy(
-    IBDA_IPV4Filter* This,
-    ULONG ulModeMask);
-void __RPC_STUB IBDA_IPV4Filter_PutMulticastMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPV4Filter_GetMulticastMode_Proxy(
-    IBDA_IPV4Filter* This,
-    ULONG *pulModeMask);
-void __RPC_STUB IBDA_IPV4Filter_GetMulticastMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_IPV4Filter_INTERFACE_DEFINED__ */
 
@@ -900,41 +901,42 @@ typedef struct IBDA_IPV6FilterVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_IPV6Filter* This,
+        IBDA_IPV6Filter *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_IPV6Filter* This);
+        IBDA_IPV6Filter *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_IPV6Filter* This);
+        IBDA_IPV6Filter *This);
 
     /*** IBDA_IPV6Filter methods ***/
     HRESULT (STDMETHODCALLTYPE *GetMulticastListSize)(
-        IBDA_IPV6Filter* This,
+        IBDA_IPV6Filter *This,
         ULONG *pulcbAddresses);
 
     HRESULT (STDMETHODCALLTYPE *PutMulticastList)(
-        IBDA_IPV6Filter* This,
+        IBDA_IPV6Filter *This,
         ULONG ulcbAddresses,
         BYTE pAddressList[]);
 
     HRESULT (STDMETHODCALLTYPE *GetMulticastList)(
-        IBDA_IPV6Filter* This,
+        IBDA_IPV6Filter *This,
         ULONG *pulcbAddresses,
         BYTE pAddressList[]);
 
     HRESULT (STDMETHODCALLTYPE *PutMulticastMode)(
-        IBDA_IPV6Filter* This,
+        IBDA_IPV6Filter *This,
         ULONG ulModeMask);
 
     HRESULT (STDMETHODCALLTYPE *GetMulticastMode)(
-        IBDA_IPV6Filter* This,
+        IBDA_IPV6Filter *This,
         ULONG *pulModeMask);
 
     END_INTERFACE
 } IBDA_IPV6FilterVtbl;
+
 interface IBDA_IPV6Filter {
     CONST_VTBL IBDA_IPV6FilterVtbl* lpVtbl;
 };
@@ -983,48 +985,6 @@ static FORCEINLINE HRESULT IBDA_IPV6Filter_GetMulticastMode(IBDA_IPV6Filter* Thi
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_IPV6Filter_GetMulticastListSize_Proxy(
-    IBDA_IPV6Filter* This,
-    ULONG *pulcbAddresses);
-void __RPC_STUB IBDA_IPV6Filter_GetMulticastListSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPV6Filter_PutMulticastList_Proxy(
-    IBDA_IPV6Filter* This,
-    ULONG ulcbAddresses,
-    BYTE pAddressList[]);
-void __RPC_STUB IBDA_IPV6Filter_PutMulticastList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPV6Filter_GetMulticastList_Proxy(
-    IBDA_IPV6Filter* This,
-    ULONG *pulcbAddresses,
-    BYTE pAddressList[]);
-void __RPC_STUB IBDA_IPV6Filter_GetMulticastList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPV6Filter_PutMulticastMode_Proxy(
-    IBDA_IPV6Filter* This,
-    ULONG ulModeMask);
-void __RPC_STUB IBDA_IPV6Filter_PutMulticastMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPV6Filter_GetMulticastMode_Proxy(
-    IBDA_IPV6Filter* This,
-    ULONG *pulModeMask);
-void __RPC_STUB IBDA_IPV6Filter_GetMulticastMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_IPV6Filter_INTERFACE_DEFINED__ */
 
@@ -1061,32 +1021,33 @@ typedef struct IBDA_DeviceControlVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_DeviceControl* This,
+        IBDA_DeviceControl *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_DeviceControl* This);
+        IBDA_DeviceControl *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_DeviceControl* This);
+        IBDA_DeviceControl *This);
 
     /*** IBDA_DeviceControl methods ***/
     HRESULT (STDMETHODCALLTYPE *StartChanges)(
-        IBDA_DeviceControl* This);
+        IBDA_DeviceControl *This);
 
     HRESULT (STDMETHODCALLTYPE *CheckChanges)(
-        IBDA_DeviceControl* This);
+        IBDA_DeviceControl *This);
 
     HRESULT (STDMETHODCALLTYPE *CommitChanges)(
-        IBDA_DeviceControl* This);
+        IBDA_DeviceControl *This);
 
     HRESULT (STDMETHODCALLTYPE *GetChangeState)(
-        IBDA_DeviceControl* This,
+        IBDA_DeviceControl *This,
         ULONG *pState);
 
     END_INTERFACE
 } IBDA_DeviceControlVtbl;
+
 interface IBDA_DeviceControl {
     CONST_VTBL IBDA_DeviceControlVtbl* lpVtbl;
 };
@@ -1131,35 +1092,6 @@ static FORCEINLINE HRESULT IBDA_DeviceControl_GetChangeState(IBDA_DeviceControl*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_DeviceControl_StartChanges_Proxy(
-    IBDA_DeviceControl* This);
-void __RPC_STUB IBDA_DeviceControl_StartChanges_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DeviceControl_CheckChanges_Proxy(
-    IBDA_DeviceControl* This);
-void __RPC_STUB IBDA_DeviceControl_CheckChanges_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DeviceControl_CommitChanges_Proxy(
-    IBDA_DeviceControl* This);
-void __RPC_STUB IBDA_DeviceControl_CommitChanges_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DeviceControl_GetChangeState_Proxy(
-    IBDA_DeviceControl* This,
-    ULONG *pState);
-void __RPC_STUB IBDA_DeviceControl_GetChangeState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_DeviceControl_INTERFACE_DEFINED__ */
 
@@ -1193,31 +1125,32 @@ typedef struct IBDA_PinControlVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_PinControl* This,
+        IBDA_PinControl *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_PinControl* This);
+        IBDA_PinControl *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_PinControl* This);
+        IBDA_PinControl *This);
 
     /*** IBDA_PinControl methods ***/
     HRESULT (STDMETHODCALLTYPE *GetPinID)(
-        IBDA_PinControl* This,
+        IBDA_PinControl *This,
         ULONG *pulPinID);
 
     HRESULT (STDMETHODCALLTYPE *GetPinType)(
-        IBDA_PinControl* This,
+        IBDA_PinControl *This,
         ULONG *pulPinType);
 
     HRESULT (STDMETHODCALLTYPE *RegistrationContext)(
-        IBDA_PinControl* This,
+        IBDA_PinControl *This,
         ULONG *pulRegistrationCtx);
 
     END_INTERFACE
 } IBDA_PinControlVtbl;
+
 interface IBDA_PinControl {
     CONST_VTBL IBDA_PinControlVtbl* lpVtbl;
 };
@@ -1258,30 +1191,6 @@ static FORCEINLINE HRESULT IBDA_PinControl_RegistrationContext(IBDA_PinControl*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_PinControl_GetPinID_Proxy(
-    IBDA_PinControl* This,
-    ULONG *pulPinID);
-void __RPC_STUB IBDA_PinControl_GetPinID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_PinControl_GetPinType_Proxy(
-    IBDA_PinControl* This,
-    ULONG *pulPinType);
-void __RPC_STUB IBDA_PinControl_GetPinType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_PinControl_RegistrationContext_Proxy(
-    IBDA_PinControl* This,
-    ULONG *pulRegistrationCtx);
-void __RPC_STUB IBDA_PinControl_RegistrationContext_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_PinControl_INTERFACE_DEFINED__ */
 
@@ -1324,43 +1233,44 @@ typedef struct IBDA_SignalPropertiesVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_SignalProperties* This,
+        IBDA_SignalProperties *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_SignalProperties* This);
+        IBDA_SignalProperties *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_SignalProperties* This);
+        IBDA_SignalProperties *This);
 
     /*** IBDA_SignalProperties methods ***/
     HRESULT (STDMETHODCALLTYPE *PutNetworkType)(
-        IBDA_SignalProperties* This,
+        IBDA_SignalProperties *This,
         REFGUID guidNetworkType);
 
     HRESULT (STDMETHODCALLTYPE *GetNetworkType)(
-        IBDA_SignalProperties* This,
+        IBDA_SignalProperties *This,
         GUID *pguidNetworkType);
 
     HRESULT (STDMETHODCALLTYPE *PutSignalSource)(
-        IBDA_SignalProperties* This,
+        IBDA_SignalProperties *This,
         ULONG ulSignalSource);
 
     HRESULT (STDMETHODCALLTYPE *GetSignalSource)(
-        IBDA_SignalProperties* This,
+        IBDA_SignalProperties *This,
         ULONG *pulSignalSource);
 
     HRESULT (STDMETHODCALLTYPE *PutTuningSpace)(
-        IBDA_SignalProperties* This,
+        IBDA_SignalProperties *This,
         REFGUID guidTuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *GetTuningSpace)(
-        IBDA_SignalProperties* This,
+        IBDA_SignalProperties *This,
         GUID *pguidTuingSpace);
 
     END_INTERFACE
 } IBDA_SignalPropertiesVtbl;
+
 interface IBDA_SignalProperties {
     CONST_VTBL IBDA_SignalPropertiesVtbl* lpVtbl;
 };
@@ -1413,54 +1323,6 @@ static FORCEINLINE HRESULT IBDA_SignalProperties_GetTuningSpace(IBDA_SignalPrope
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_SignalProperties_PutNetworkType_Proxy(
-    IBDA_SignalProperties* This,
-    REFGUID guidNetworkType);
-void __RPC_STUB IBDA_SignalProperties_PutNetworkType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalProperties_GetNetworkType_Proxy(
-    IBDA_SignalProperties* This,
-    GUID *pguidNetworkType);
-void __RPC_STUB IBDA_SignalProperties_GetNetworkType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalProperties_PutSignalSource_Proxy(
-    IBDA_SignalProperties* This,
-    ULONG ulSignalSource);
-void __RPC_STUB IBDA_SignalProperties_PutSignalSource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalProperties_GetSignalSource_Proxy(
-    IBDA_SignalProperties* This,
-    ULONG *pulSignalSource);
-void __RPC_STUB IBDA_SignalProperties_GetSignalSource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalProperties_PutTuningSpace_Proxy(
-    IBDA_SignalProperties* This,
-    REFGUID guidTuningSpace);
-void __RPC_STUB IBDA_SignalProperties_PutTuningSpace_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalProperties_GetTuningSpace_Proxy(
-    IBDA_SignalProperties* This,
-    GUID *pguidTuingSpace);
-void __RPC_STUB IBDA_SignalProperties_GetTuningSpace_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_SignalProperties_INTERFACE_DEFINED__ */
 
@@ -1515,59 +1377,60 @@ typedef struct IBDA_SignalStatisticsVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_SignalStatistics* This);
+        IBDA_SignalStatistics *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_SignalStatistics* This);
+        IBDA_SignalStatistics *This);
 
     /*** IBDA_SignalStatistics methods ***/
     HRESULT (STDMETHODCALLTYPE *put_SignalStrength)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         LONG lDbStrength);
 
     HRESULT (STDMETHODCALLTYPE *get_SignalStrength)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         LONG *plDbStrength);
 
     HRESULT (STDMETHODCALLTYPE *put_SignalQuality)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         LONG lPercentQuality);
 
     HRESULT (STDMETHODCALLTYPE *get_SignalQuality)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         LONG *plPercentQuality);
 
     HRESULT (STDMETHODCALLTYPE *put_SignalPresent)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         BOOLEAN fPresent);
 
     HRESULT (STDMETHODCALLTYPE *get_SignalPresent)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         BOOLEAN *pfPresent);
 
     HRESULT (STDMETHODCALLTYPE *put_SignalLocked)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         BOOLEAN fLocked);
 
     HRESULT (STDMETHODCALLTYPE *get_SignalLocked)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         BOOLEAN *pfLocked);
 
     HRESULT (STDMETHODCALLTYPE *put_SampleTime)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         LONG lmsSampleTime);
 
     HRESULT (STDMETHODCALLTYPE *get_SampleTime)(
-        IBDA_SignalStatistics* This,
+        IBDA_SignalStatistics *This,
         LONG *plmsSampleTime);
 
     END_INTERFACE
 } IBDA_SignalStatisticsVtbl;
+
 interface IBDA_SignalStatistics {
     CONST_VTBL IBDA_SignalStatisticsVtbl* lpVtbl;
 };
@@ -1636,86 +1499,6 @@ static FORCEINLINE HRESULT IBDA_SignalStatistics_get_SampleTime(IBDA_SignalStati
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_SignalStatistics_put_SignalStrength_Proxy(
-    IBDA_SignalStatistics* This,
-    LONG lDbStrength);
-void __RPC_STUB IBDA_SignalStatistics_put_SignalStrength_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalStatistics_get_SignalStrength_Proxy(
-    IBDA_SignalStatistics* This,
-    LONG *plDbStrength);
-void __RPC_STUB IBDA_SignalStatistics_get_SignalStrength_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalStatistics_put_SignalQuality_Proxy(
-    IBDA_SignalStatistics* This,
-    LONG lPercentQuality);
-void __RPC_STUB IBDA_SignalStatistics_put_SignalQuality_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalStatistics_get_SignalQuality_Proxy(
-    IBDA_SignalStatistics* This,
-    LONG *plPercentQuality);
-void __RPC_STUB IBDA_SignalStatistics_get_SignalQuality_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalStatistics_put_SignalPresent_Proxy(
-    IBDA_SignalStatistics* This,
-    BOOLEAN fPresent);
-void __RPC_STUB IBDA_SignalStatistics_put_SignalPresent_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalStatistics_get_SignalPresent_Proxy(
-    IBDA_SignalStatistics* This,
-    BOOLEAN *pfPresent);
-void __RPC_STUB IBDA_SignalStatistics_get_SignalPresent_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalStatistics_put_SignalLocked_Proxy(
-    IBDA_SignalStatistics* This,
-    BOOLEAN fLocked);
-void __RPC_STUB IBDA_SignalStatistics_put_SignalLocked_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalStatistics_get_SignalLocked_Proxy(
-    IBDA_SignalStatistics* This,
-    BOOLEAN *pfLocked);
-void __RPC_STUB IBDA_SignalStatistics_get_SignalLocked_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalStatistics_put_SampleTime_Proxy(
-    IBDA_SignalStatistics* This,
-    LONG lmsSampleTime);
-void __RPC_STUB IBDA_SignalStatistics_put_SampleTime_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_SignalStatistics_get_SampleTime_Proxy(
-    IBDA_SignalStatistics* This,
-    LONG *plmsSampleTime);
-void __RPC_STUB IBDA_SignalStatistics_get_SampleTime_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_SignalStatistics_INTERFACE_DEFINED__ */
 
@@ -1791,74 +1574,74 @@ typedef struct IBDA_TopologyVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_Topology* This);
+        IBDA_Topology *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_Topology* This);
+        IBDA_Topology *This);
 
     /*** IBDA_Topology methods ***/
     HRESULT (STDMETHODCALLTYPE *GetNodeTypes)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG *pulcNodeTypes,
         ULONG ulcNodeTypesMax,
         ULONG rgulNodeTypes[]);
 
     HRESULT (STDMETHODCALLTYPE *GetNodeDescriptors)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG *ulcNodeDescriptors,
         ULONG ulcNodeDescriptorsMax,
         BDANODE_DESCRIPTOR rgNodeDescriptors[]);
 
     HRESULT (STDMETHODCALLTYPE *GetNodeInterfaces)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG ulNodeType,
         ULONG *pulcInterfaces,
         ULONG ulcInterfacesMax,
         GUID rgguidInterfaces[]);
 
     HRESULT (STDMETHODCALLTYPE *GetPinTypes)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG *pulcPinTypes,
         ULONG ulcPinTypesMax,
         ULONG rgulPinTypes[]);
 
     HRESULT (STDMETHODCALLTYPE *GetTemplateConnections)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG *pulcConnections,
         ULONG ulcConnectionsMax,
         BDA_TEMPLATE_CONNECTION rgConnections[]);
 
     HRESULT (STDMETHODCALLTYPE *CreatePin)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG ulPinType,
         ULONG *pulPinId);
 
     HRESULT (STDMETHODCALLTYPE *DeletePin)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG ulPinId);
 
     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG ulPinId,
         AM_MEDIA_TYPE *pMediaType);
 
     HRESULT (STDMETHODCALLTYPE *SetMedium)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG ulPinId,
         REGPINMEDIUM *pMedium);
 
     HRESULT (STDMETHODCALLTYPE *CreateTopology)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG ulInputPinId,
         ULONG ulOutputPinId);
 
     HRESULT (STDMETHODCALLTYPE *GetControlNode)(
-        IBDA_Topology* This,
+        IBDA_Topology *This,
         ULONG ulInputPinId,
         ULONG ulOutputPinId,
         ULONG ulNodeType,
@@ -1866,6 +1649,7 @@ typedef struct IBDA_TopologyVtbl {
 
     END_INTERFACE
 } IBDA_TopologyVtbl;
+
 interface IBDA_Topology {
     CONST_VTBL IBDA_TopologyVtbl* lpVtbl;
 };
@@ -1938,112 +1722,6 @@ static FORCEINLINE HRESULT IBDA_Topology_GetControlNode(IBDA_Topology* This,ULON
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_Topology_GetNodeTypes_Proxy(
-    IBDA_Topology* This,
-    ULONG *pulcNodeTypes,
-    ULONG ulcNodeTypesMax,
-    ULONG rgulNodeTypes[]);
-void __RPC_STUB IBDA_Topology_GetNodeTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Topology_GetNodeDescriptors_Proxy(
-    IBDA_Topology* This,
-    ULONG *ulcNodeDescriptors,
-    ULONG ulcNodeDescriptorsMax,
-    BDANODE_DESCRIPTOR rgNodeDescriptors[]);
-void __RPC_STUB IBDA_Topology_GetNodeDescriptors_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Topology_GetNodeInterfaces_Proxy(
-    IBDA_Topology* This,
-    ULONG ulNodeType,
-    ULONG *pulcInterfaces,
-    ULONG ulcInterfacesMax,
-    GUID rgguidInterfaces[]);
-void __RPC_STUB IBDA_Topology_GetNodeInterfaces_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Topology_GetPinTypes_Proxy(
-    IBDA_Topology* This,
-    ULONG *pulcPinTypes,
-    ULONG ulcPinTypesMax,
-    ULONG rgulPinTypes[]);
-void __RPC_STUB IBDA_Topology_GetPinTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Topology_GetTemplateConnections_Proxy(
-    IBDA_Topology* This,
-    ULONG *pulcConnections,
-    ULONG ulcConnectionsMax,
-    BDA_TEMPLATE_CONNECTION rgConnections[]);
-void __RPC_STUB IBDA_Topology_GetTemplateConnections_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Topology_CreatePin_Proxy(
-    IBDA_Topology* This,
-    ULONG ulPinType,
-    ULONG *pulPinId);
-void __RPC_STUB IBDA_Topology_CreatePin_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Topology_DeletePin_Proxy(
-    IBDA_Topology* This,
-    ULONG ulPinId);
-void __RPC_STUB IBDA_Topology_DeletePin_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Topology_SetMediaType_Proxy(
-    IBDA_Topology* This,
-    ULONG ulPinId,
-    AM_MEDIA_TYPE *pMediaType);
-void __RPC_STUB IBDA_Topology_SetMediaType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Topology_SetMedium_Proxy(
-    IBDA_Topology* This,
-    ULONG ulPinId,
-    REGPINMEDIUM *pMedium);
-void __RPC_STUB IBDA_Topology_SetMedium_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Topology_CreateTopology_Proxy(
-    IBDA_Topology* This,
-    ULONG ulInputPinId,
-    ULONG ulOutputPinId);
-void __RPC_STUB IBDA_Topology_CreateTopology_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Topology_GetControlNode_Proxy(
-    IBDA_Topology* This,
-    ULONG ulInputPinId,
-    ULONG ulOutputPinId,
-    ULONG ulNodeType,
-    IUnknown **ppControlNode);
-void __RPC_STUB IBDA_Topology_GetControlNode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_Topology_INTERFACE_DEFINED__ */
 
@@ -2074,25 +1752,26 @@ typedef struct IBDA_VoidTransformVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_VoidTransform* This,
+        IBDA_VoidTransform *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_VoidTransform* This);
+        IBDA_VoidTransform *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_VoidTransform* This);
+        IBDA_VoidTransform *This);
 
     /*** IBDA_VoidTransform methods ***/
     HRESULT (STDMETHODCALLTYPE *Start)(
-        IBDA_VoidTransform* This);
+        IBDA_VoidTransform *This);
 
     HRESULT (STDMETHODCALLTYPE *Stop)(
-        IBDA_VoidTransform* This);
+        IBDA_VoidTransform *This);
 
     END_INTERFACE
 } IBDA_VoidTransformVtbl;
+
 interface IBDA_VoidTransform {
     CONST_VTBL IBDA_VoidTransformVtbl* lpVtbl;
 };
@@ -2129,20 +1808,6 @@ static FORCEINLINE HRESULT IBDA_VoidTransform_Stop(IBDA_VoidTransform* This) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_VoidTransform_Start_Proxy(
-    IBDA_VoidTransform* This);
-void __RPC_STUB IBDA_VoidTransform_Start_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_VoidTransform_Stop_Proxy(
-    IBDA_VoidTransform* This);
-void __RPC_STUB IBDA_VoidTransform_Stop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_VoidTransform_INTERFACE_DEFINED__ */
 
@@ -2173,25 +1838,26 @@ typedef struct IBDA_NullTransformVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_NullTransform* This,
+        IBDA_NullTransform *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_NullTransform* This);
+        IBDA_NullTransform *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_NullTransform* This);
+        IBDA_NullTransform *This);
 
     /*** IBDA_NullTransform methods ***/
     HRESULT (STDMETHODCALLTYPE *Start)(
-        IBDA_NullTransform* This);
+        IBDA_NullTransform *This);
 
     HRESULT (STDMETHODCALLTYPE *Stop)(
-        IBDA_NullTransform* This);
+        IBDA_NullTransform *This);
 
     END_INTERFACE
 } IBDA_NullTransformVtbl;
+
 interface IBDA_NullTransform {
     CONST_VTBL IBDA_NullTransformVtbl* lpVtbl;
 };
@@ -2228,20 +1894,6 @@ static FORCEINLINE HRESULT IBDA_NullTransform_Stop(IBDA_NullTransform* This) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_NullTransform_Start_Proxy(
-    IBDA_NullTransform* This);
-void __RPC_STUB IBDA_NullTransform_Start_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_NullTransform_Stop_Proxy(
-    IBDA_NullTransform* This);
-void __RPC_STUB IBDA_NullTransform_Stop_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_NullTransform_INTERFACE_DEFINED__ */
 
@@ -2302,67 +1954,68 @@ typedef struct IBDA_FrequencyFilterVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_FrequencyFilter* This);
+        IBDA_FrequencyFilter *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_FrequencyFilter* This);
+        IBDA_FrequencyFilter *This);
 
     /*** IBDA_FrequencyFilter methods ***/
     HRESULT (STDMETHODCALLTYPE *put_Autotune)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         ULONG ulTransponder);
 
     HRESULT (STDMETHODCALLTYPE *get_Autotune)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         ULONG *pulTransponder);
 
     HRESULT (STDMETHODCALLTYPE *put_Frequency)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         ULONG ulFrequency);
 
     HRESULT (STDMETHODCALLTYPE *get_Frequency)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         ULONG *pulFrequency);
 
     HRESULT (STDMETHODCALLTYPE *put_Polarity)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         Polarisation Polarity);
 
     HRESULT (STDMETHODCALLTYPE *get_Polarity)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         Polarisation *pPolarity);
 
     HRESULT (STDMETHODCALLTYPE *put_Range)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         ULONG ulRange);
 
     HRESULT (STDMETHODCALLTYPE *get_Range)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         ULONG *pulRange);
 
     HRESULT (STDMETHODCALLTYPE *put_Bandwidth)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         ULONG ulBandwidth);
 
     HRESULT (STDMETHODCALLTYPE *get_Bandwidth)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         ULONG *pulBandwidth);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMultiplier)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         ULONG ulMultiplier);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMultiplier)(
-        IBDA_FrequencyFilter* This,
+        IBDA_FrequencyFilter *This,
         ULONG *pulMultiplier);
 
     END_INTERFACE
 } IBDA_FrequencyFilterVtbl;
+
 interface IBDA_FrequencyFilter {
     CONST_VTBL IBDA_FrequencyFilterVtbl* lpVtbl;
 };
@@ -2439,102 +2092,6 @@ static FORCEINLINE HRESULT IBDA_FrequencyFilter_get_FrequencyMultiplier(IBDA_Fre
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_put_Autotune_Proxy(
-    IBDA_FrequencyFilter* This,
-    ULONG ulTransponder);
-void __RPC_STUB IBDA_FrequencyFilter_put_Autotune_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_get_Autotune_Proxy(
-    IBDA_FrequencyFilter* This,
-    ULONG *pulTransponder);
-void __RPC_STUB IBDA_FrequencyFilter_get_Autotune_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_put_Frequency_Proxy(
-    IBDA_FrequencyFilter* This,
-    ULONG ulFrequency);
-void __RPC_STUB IBDA_FrequencyFilter_put_Frequency_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_get_Frequency_Proxy(
-    IBDA_FrequencyFilter* This,
-    ULONG *pulFrequency);
-void __RPC_STUB IBDA_FrequencyFilter_get_Frequency_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_put_Polarity_Proxy(
-    IBDA_FrequencyFilter* This,
-    Polarisation Polarity);
-void __RPC_STUB IBDA_FrequencyFilter_put_Polarity_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_get_Polarity_Proxy(
-    IBDA_FrequencyFilter* This,
-    Polarisation *pPolarity);
-void __RPC_STUB IBDA_FrequencyFilter_get_Polarity_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_put_Range_Proxy(
-    IBDA_FrequencyFilter* This,
-    ULONG ulRange);
-void __RPC_STUB IBDA_FrequencyFilter_put_Range_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_get_Range_Proxy(
-    IBDA_FrequencyFilter* This,
-    ULONG *pulRange);
-void __RPC_STUB IBDA_FrequencyFilter_get_Range_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_put_Bandwidth_Proxy(
-    IBDA_FrequencyFilter* This,
-    ULONG ulBandwidth);
-void __RPC_STUB IBDA_FrequencyFilter_put_Bandwidth_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_get_Bandwidth_Proxy(
-    IBDA_FrequencyFilter* This,
-    ULONG *pulBandwidth);
-void __RPC_STUB IBDA_FrequencyFilter_get_Bandwidth_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_put_FrequencyMultiplier_Proxy(
-    IBDA_FrequencyFilter* This,
-    ULONG ulMultiplier);
-void __RPC_STUB IBDA_FrequencyFilter_put_FrequencyMultiplier_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FrequencyFilter_get_FrequencyMultiplier_Proxy(
-    IBDA_FrequencyFilter* This,
-    ULONG *pulMultiplier);
-void __RPC_STUB IBDA_FrequencyFilter_get_FrequencyMultiplier_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_FrequencyFilter_INTERFACE_DEFINED__ */
 
@@ -2577,43 +2134,44 @@ typedef struct IBDA_LNBInfoVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_LNBInfo* This,
+        IBDA_LNBInfo *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_LNBInfo* This);
+        IBDA_LNBInfo *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_LNBInfo* This);
+        IBDA_LNBInfo *This);
 
     /*** IBDA_LNBInfo methods ***/
     HRESULT (STDMETHODCALLTYPE *put_LocalOscilatorFrequencyLowBand)(
-        IBDA_LNBInfo* This,
+        IBDA_LNBInfo *This,
         ULONG ulLOFLow);
 
     HRESULT (STDMETHODCALLTYPE *get_LocalOscilatorFrequencyLowBand)(
-        IBDA_LNBInfo* This,
+        IBDA_LNBInfo *This,
         ULONG *pulLOFLow);
 
     HRESULT (STDMETHODCALLTYPE *put_LocalOscilatorFrequencyHighBand)(
-        IBDA_LNBInfo* This,
+        IBDA_LNBInfo *This,
         ULONG ulLOFHigh);
 
     HRESULT (STDMETHODCALLTYPE *get_LocalOscilatorFrequencyHighBand)(
-        IBDA_LNBInfo* This,
+        IBDA_LNBInfo *This,
         ULONG *pulLOFHigh);
 
     HRESULT (STDMETHODCALLTYPE *put_HighLowSwitchFrequency)(
-        IBDA_LNBInfo* This,
+        IBDA_LNBInfo *This,
         ULONG ulSwitchFrequency);
 
     HRESULT (STDMETHODCALLTYPE *get_HighLowSwitchFrequency)(
-        IBDA_LNBInfo* This,
+        IBDA_LNBInfo *This,
         ULONG *pulSwitchFrequency);
 
     END_INTERFACE
 } IBDA_LNBInfoVtbl;
+
 interface IBDA_LNBInfo {
     CONST_VTBL IBDA_LNBInfoVtbl* lpVtbl;
 };
@@ -2666,54 +2224,6 @@ static FORCEINLINE HRESULT IBDA_LNBInfo_get_HighLowSwitchFrequency(IBDA_LNBInfo*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_LNBInfo_put_LocalOscilatorFrequencyLowBand_Proxy(
-    IBDA_LNBInfo* This,
-    ULONG ulLOFLow);
-void __RPC_STUB IBDA_LNBInfo_put_LocalOscilatorFrequencyLowBand_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_LNBInfo_get_LocalOscilatorFrequencyLowBand_Proxy(
-    IBDA_LNBInfo* This,
-    ULONG *pulLOFLow);
-void __RPC_STUB IBDA_LNBInfo_get_LocalOscilatorFrequencyLowBand_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_LNBInfo_put_LocalOscilatorFrequencyHighBand_Proxy(
-    IBDA_LNBInfo* This,
-    ULONG ulLOFHigh);
-void __RPC_STUB IBDA_LNBInfo_put_LocalOscilatorFrequencyHighBand_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_LNBInfo_get_LocalOscilatorFrequencyHighBand_Proxy(
-    IBDA_LNBInfo* This,
-    ULONG *pulLOFHigh);
-void __RPC_STUB IBDA_LNBInfo_get_LocalOscilatorFrequencyHighBand_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_LNBInfo_put_HighLowSwitchFrequency_Proxy(
-    IBDA_LNBInfo* This,
-    ULONG ulSwitchFrequency);
-void __RPC_STUB IBDA_LNBInfo_put_HighLowSwitchFrequency_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_LNBInfo_get_HighLowSwitchFrequency_Proxy(
-    IBDA_LNBInfo* This,
-    ULONG *pulSwitchFrequency);
-void __RPC_STUB IBDA_LNBInfo_get_HighLowSwitchFrequency_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_LNBInfo_INTERFACE_DEFINED__ */
 
@@ -2760,47 +2270,48 @@ typedef struct IBDA_DiseqCommandVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_DiseqCommand* This,
+        IBDA_DiseqCommand *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_DiseqCommand* This);
+        IBDA_DiseqCommand *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_DiseqCommand* This);
+        IBDA_DiseqCommand *This);
 
     /*** IBDA_DiseqCommand methods ***/
     HRESULT (STDMETHODCALLTYPE *put_EnableDiseqCommands)(
-        IBDA_DiseqCommand* This,
+        IBDA_DiseqCommand *This,
         BOOLEAN bEnable);
 
     HRESULT (STDMETHODCALLTYPE *put_DiseqLNBSource)(
-        IBDA_DiseqCommand* This,
+        IBDA_DiseqCommand *This,
         ULONG ulLNBSource);
 
     HRESULT (STDMETHODCALLTYPE *put_DiseqUseToneBurst)(
-        IBDA_DiseqCommand* This,
+        IBDA_DiseqCommand *This,
         BOOLEAN bUseToneBurst);
 
     HRESULT (STDMETHODCALLTYPE *put_DiseqRepeats)(
-        IBDA_DiseqCommand* This,
+        IBDA_DiseqCommand *This,
         ULONG ulRepeats);
 
     HRESULT (STDMETHODCALLTYPE *put_DiseqSendCommand)(
-        IBDA_DiseqCommand* This,
+        IBDA_DiseqCommand *This,
         ULONG ulRequestId,
         ULONG ulcbCommandLen,
         BYTE *pbCommand);
 
     HRESULT (STDMETHODCALLTYPE *get_DiseqResponse)(
-        IBDA_DiseqCommand* This,
+        IBDA_DiseqCommand *This,
         ULONG ulRequestId,
         ULONG *pulcbResponseLen,
         BYTE pbResponse[]);
 
     END_INTERFACE
 } IBDA_DiseqCommandVtbl;
+
 interface IBDA_DiseqCommand {
     CONST_VTBL IBDA_DiseqCommandVtbl* lpVtbl;
 };
@@ -2853,58 +2364,6 @@ static FORCEINLINE HRESULT IBDA_DiseqCommand_get_DiseqResponse(IBDA_DiseqCommand
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_DiseqCommand_put_EnableDiseqCommands_Proxy(
-    IBDA_DiseqCommand* This,
-    BOOLEAN bEnable);
-void __RPC_STUB IBDA_DiseqCommand_put_EnableDiseqCommands_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DiseqCommand_put_DiseqLNBSource_Proxy(
-    IBDA_DiseqCommand* This,
-    ULONG ulLNBSource);
-void __RPC_STUB IBDA_DiseqCommand_put_DiseqLNBSource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DiseqCommand_put_DiseqUseToneBurst_Proxy(
-    IBDA_DiseqCommand* This,
-    BOOLEAN bUseToneBurst);
-void __RPC_STUB IBDA_DiseqCommand_put_DiseqUseToneBurst_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DiseqCommand_put_DiseqRepeats_Proxy(
-    IBDA_DiseqCommand* This,
-    ULONG ulRepeats);
-void __RPC_STUB IBDA_DiseqCommand_put_DiseqRepeats_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DiseqCommand_put_DiseqSendCommand_Proxy(
-    IBDA_DiseqCommand* This,
-    ULONG ulRequestId,
-    ULONG ulcbCommandLen,
-    BYTE *pbCommand);
-void __RPC_STUB IBDA_DiseqCommand_put_DiseqSendCommand_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DiseqCommand_get_DiseqResponse_Proxy(
-    IBDA_DiseqCommand* This,
-    ULONG ulRequestId,
-    ULONG *pulcbResponseLen,
-    BYTE pbResponse[]);
-void __RPC_STUB IBDA_DiseqCommand_get_DiseqResponse_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_DiseqCommand_INTERFACE_DEFINED__ */
 
@@ -2932,22 +2391,23 @@ typedef struct IBDA_AutoDemodulateVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_AutoDemodulate* This,
+        IBDA_AutoDemodulate *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_AutoDemodulate* This);
+        IBDA_AutoDemodulate *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_AutoDemodulate* This);
+        IBDA_AutoDemodulate *This);
 
     /*** IBDA_AutoDemodulate methods ***/
     HRESULT (STDMETHODCALLTYPE *put_AutoDemodulate)(
-        IBDA_AutoDemodulate* This);
+        IBDA_AutoDemodulate *This);
 
     END_INTERFACE
 } IBDA_AutoDemodulateVtbl;
+
 interface IBDA_AutoDemodulate {
     CONST_VTBL IBDA_AutoDemodulateVtbl* lpVtbl;
 };
@@ -2980,13 +2440,6 @@ static FORCEINLINE HRESULT IBDA_AutoDemodulate_put_AutoDemodulate(IBDA_AutoDemod
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_AutoDemodulate_put_AutoDemodulate_Proxy(
-    IBDA_AutoDemodulate* This);
-void __RPC_STUB IBDA_AutoDemodulate_put_AutoDemodulate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_AutoDemodulate_INTERFACE_DEFINED__ */
 
@@ -3024,39 +2477,40 @@ typedef struct IBDA_AutoDemodulateExVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_AutoDemodulateEx* This,
+        IBDA_AutoDemodulateEx *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_AutoDemodulateEx* This);
+        IBDA_AutoDemodulateEx *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_AutoDemodulateEx* This);
+        IBDA_AutoDemodulateEx *This);
 
     /*** IBDA_AutoDemodulate methods ***/
     HRESULT (STDMETHODCALLTYPE *put_AutoDemodulate)(
-        IBDA_AutoDemodulateEx* This);
+        IBDA_AutoDemodulateEx *This);
 
     /*** IBDA_AutoDemodulateEx methods ***/
     HRESULT (STDMETHODCALLTYPE *get_SupportedDeviceNodeTypes)(
-        IBDA_AutoDemodulateEx* This,
+        IBDA_AutoDemodulateEx *This,
         ULONG ulcDeviceNodeTypesMax,
         ULONG *pulcDeviceNodeTypes,
         GUID *pguidDeviceNodeTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_SupportedVideoFormats)(
-        IBDA_AutoDemodulateEx* This,
+        IBDA_AutoDemodulateEx *This,
         ULONG *pulAMTunerModeType,
         ULONG *pulAnalogVideoStandard);
 
     HRESULT (STDMETHODCALLTYPE *get_AuxInputCount)(
-        IBDA_AutoDemodulateEx* This,
+        IBDA_AutoDemodulateEx *This,
         ULONG *pulCompositeCount,
         ULONG *pulSvideoCount);
 
     END_INTERFACE
 } IBDA_AutoDemodulateExVtbl;
+
 interface IBDA_AutoDemodulateEx {
     CONST_VTBL IBDA_AutoDemodulateExVtbl* lpVtbl;
 };
@@ -3103,34 +2557,6 @@ static FORCEINLINE HRESULT IBDA_AutoDemodulateEx_get_AuxInputCount(IBDA_AutoDemo
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_AutoDemodulateEx_get_SupportedDeviceNodeTypes_Proxy(
-    IBDA_AutoDemodulateEx* This,
-    ULONG ulcDeviceNodeTypesMax,
-    ULONG *pulcDeviceNodeTypes,
-    GUID *pguidDeviceNodeTypes);
-void __RPC_STUB IBDA_AutoDemodulateEx_get_SupportedDeviceNodeTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_AutoDemodulateEx_get_SupportedVideoFormats_Proxy(
-    IBDA_AutoDemodulateEx* This,
-    ULONG *pulAMTunerModeType,
-    ULONG *pulAnalogVideoStandard);
-void __RPC_STUB IBDA_AutoDemodulateEx_get_SupportedVideoFormats_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_AutoDemodulateEx_get_AuxInputCount_Proxy(
-    IBDA_AutoDemodulateEx* This,
-    ULONG *pulCompositeCount,
-    ULONG *pulSvideoCount);
-void __RPC_STUB IBDA_AutoDemodulateEx_get_AuxInputCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_AutoDemodulateEx_INTERFACE_DEFINED__ */
 
@@ -3197,75 +2623,76 @@ typedef struct IBDA_DigitalDemodulatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_DigitalDemodulator* This);
+        IBDA_DigitalDemodulator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_DigitalDemodulator* This);
+        IBDA_DigitalDemodulator *This);
 
     /*** IBDA_DigitalDemodulator methods ***/
     HRESULT (STDMETHODCALLTYPE *put_ModulationType)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         ModulationType *pModulationType);
 
     HRESULT (STDMETHODCALLTYPE *get_ModulationType)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         ModulationType *pModulationType);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECMethod)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECMethod)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECMethod)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECMethod)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         ULONG *pSymbolRate);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         ULONG *pSymbolRate);
 
     HRESULT (STDMETHODCALLTYPE *put_SpectralInversion)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         SpectralInversion *pSpectralInversion);
 
     HRESULT (STDMETHODCALLTYPE *get_SpectralInversion)(
-        IBDA_DigitalDemodulator* This,
+        IBDA_DigitalDemodulator *This,
         SpectralInversion *pSpectralInversion);
 
     END_INTERFACE
 } IBDA_DigitalDemodulatorVtbl;
+
 interface IBDA_DigitalDemodulator {
     CONST_VTBL IBDA_DigitalDemodulatorVtbl* lpVtbl;
 };
@@ -3350,118 +2777,6 @@ static FORCEINLINE HRESULT IBDA_DigitalDemodulator_get_SpectralInversion(IBDA_Di
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_put_ModulationType_Proxy(
-    IBDA_DigitalDemodulator* This,
-    ModulationType *pModulationType);
-void __RPC_STUB IBDA_DigitalDemodulator_put_ModulationType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_get_ModulationType_Proxy(
-    IBDA_DigitalDemodulator* This,
-    ModulationType *pModulationType);
-void __RPC_STUB IBDA_DigitalDemodulator_get_ModulationType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_put_InnerFECMethod_Proxy(
-    IBDA_DigitalDemodulator* This,
-    FECMethod *pFECMethod);
-void __RPC_STUB IBDA_DigitalDemodulator_put_InnerFECMethod_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_get_InnerFECMethod_Proxy(
-    IBDA_DigitalDemodulator* This,
-    FECMethod *pFECMethod);
-void __RPC_STUB IBDA_DigitalDemodulator_get_InnerFECMethod_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_put_InnerFECRate_Proxy(
-    IBDA_DigitalDemodulator* This,
-    BinaryConvolutionCodeRate *pFECRate);
-void __RPC_STUB IBDA_DigitalDemodulator_put_InnerFECRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_get_InnerFECRate_Proxy(
-    IBDA_DigitalDemodulator* This,
-    BinaryConvolutionCodeRate *pFECRate);
-void __RPC_STUB IBDA_DigitalDemodulator_get_InnerFECRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_put_OuterFECMethod_Proxy(
-    IBDA_DigitalDemodulator* This,
-    FECMethod *pFECMethod);
-void __RPC_STUB IBDA_DigitalDemodulator_put_OuterFECMethod_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_get_OuterFECMethod_Proxy(
-    IBDA_DigitalDemodulator* This,
-    FECMethod *pFECMethod);
-void __RPC_STUB IBDA_DigitalDemodulator_get_OuterFECMethod_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_put_OuterFECRate_Proxy(
-    IBDA_DigitalDemodulator* This,
-    BinaryConvolutionCodeRate *pFECRate);
-void __RPC_STUB IBDA_DigitalDemodulator_put_OuterFECRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_get_OuterFECRate_Proxy(
-    IBDA_DigitalDemodulator* This,
-    BinaryConvolutionCodeRate *pFECRate);
-void __RPC_STUB IBDA_DigitalDemodulator_get_OuterFECRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_put_SymbolRate_Proxy(
-    IBDA_DigitalDemodulator* This,
-    ULONG *pSymbolRate);
-void __RPC_STUB IBDA_DigitalDemodulator_put_SymbolRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_get_SymbolRate_Proxy(
-    IBDA_DigitalDemodulator* This,
-    ULONG *pSymbolRate);
-void __RPC_STUB IBDA_DigitalDemodulator_get_SymbolRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_put_SpectralInversion_Proxy(
-    IBDA_DigitalDemodulator* This,
-    SpectralInversion *pSpectralInversion);
-void __RPC_STUB IBDA_DigitalDemodulator_put_SpectralInversion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator_get_SpectralInversion_Proxy(
-    IBDA_DigitalDemodulator* This,
-    SpectralInversion *pSpectralInversion);
-void __RPC_STUB IBDA_DigitalDemodulator_get_SpectralInversion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_DigitalDemodulator_INTERFACE_DEFINED__ */
 
@@ -3510,108 +2825,109 @@ typedef struct IBDA_DigitalDemodulator2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_DigitalDemodulator2* This);
+        IBDA_DigitalDemodulator2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_DigitalDemodulator2* This);
+        IBDA_DigitalDemodulator2 *This);
 
     /*** IBDA_DigitalDemodulator methods ***/
     HRESULT (STDMETHODCALLTYPE *put_ModulationType)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         ModulationType *pModulationType);
 
     HRESULT (STDMETHODCALLTYPE *get_ModulationType)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         ModulationType *pModulationType);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECMethod)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECMethod)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECMethod)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECMethod)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         ULONG *pSymbolRate);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         ULONG *pSymbolRate);
 
     HRESULT (STDMETHODCALLTYPE *put_SpectralInversion)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         SpectralInversion *pSpectralInversion);
 
     HRESULT (STDMETHODCALLTYPE *get_SpectralInversion)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         SpectralInversion *pSpectralInversion);
 
     /*** IBDA_DigitalDemodulator2 methods ***/
     HRESULT (STDMETHODCALLTYPE *put_GuardInterval)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         GuardInterval *pGuardInterval);
 
     HRESULT (STDMETHODCALLTYPE *get_GuardInterval)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         GuardInterval *pGuardInterval);
 
     HRESULT (STDMETHODCALLTYPE *put_TransmissionMode)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         TransmissionMode *pTransmissionMode);
 
     HRESULT (STDMETHODCALLTYPE *get_TransmissionMode)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         TransmissionMode *pTransmissionMode);
 
     HRESULT (STDMETHODCALLTYPE *put_RollOff)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         RollOff *pRollOff);
 
     HRESULT (STDMETHODCALLTYPE *get_RollOff)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         RollOff *pRollOff);
 
     HRESULT (STDMETHODCALLTYPE *put_Pilot)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         Pilot *pPilot);
 
     HRESULT (STDMETHODCALLTYPE *get_Pilot)(
-        IBDA_DigitalDemodulator2* This,
+        IBDA_DigitalDemodulator2 *This,
         Pilot *pPilot);
 
     END_INTERFACE
 } IBDA_DigitalDemodulator2Vtbl;
+
 interface IBDA_DigitalDemodulator2 {
     CONST_VTBL IBDA_DigitalDemodulator2Vtbl* lpVtbl;
 };
@@ -3730,70 +3046,6 @@ static FORCEINLINE HRESULT IBDA_DigitalDemodulator2_get_Pilot(IBDA_DigitalDemodu
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator2_put_GuardInterval_Proxy(
-    IBDA_DigitalDemodulator2* This,
-    GuardInterval *pGuardInterval);
-void __RPC_STUB IBDA_DigitalDemodulator2_put_GuardInterval_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator2_get_GuardInterval_Proxy(
-    IBDA_DigitalDemodulator2* This,
-    GuardInterval *pGuardInterval);
-void __RPC_STUB IBDA_DigitalDemodulator2_get_GuardInterval_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator2_put_TransmissionMode_Proxy(
-    IBDA_DigitalDemodulator2* This,
-    TransmissionMode *pTransmissionMode);
-void __RPC_STUB IBDA_DigitalDemodulator2_put_TransmissionMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator2_get_TransmissionMode_Proxy(
-    IBDA_DigitalDemodulator2* This,
-    TransmissionMode *pTransmissionMode);
-void __RPC_STUB IBDA_DigitalDemodulator2_get_TransmissionMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator2_put_RollOff_Proxy(
-    IBDA_DigitalDemodulator2* This,
-    RollOff *pRollOff);
-void __RPC_STUB IBDA_DigitalDemodulator2_put_RollOff_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator2_get_RollOff_Proxy(
-    IBDA_DigitalDemodulator2* This,
-    RollOff *pRollOff);
-void __RPC_STUB IBDA_DigitalDemodulator2_get_RollOff_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator2_put_Pilot_Proxy(
-    IBDA_DigitalDemodulator2* This,
-    Pilot *pPilot);
-void __RPC_STUB IBDA_DigitalDemodulator2_put_Pilot_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator2_get_Pilot_Proxy(
-    IBDA_DigitalDemodulator2* This,
-    Pilot *pPilot);
-void __RPC_STUB IBDA_DigitalDemodulator2_get_Pilot_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_DigitalDemodulator2_INTERFACE_DEFINED__ */
 
@@ -3830,125 +3082,126 @@ typedef struct IBDA_DigitalDemodulator3Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_DigitalDemodulator3* This);
+        IBDA_DigitalDemodulator3 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_DigitalDemodulator3* This);
+        IBDA_DigitalDemodulator3 *This);
 
     /*** IBDA_DigitalDemodulator methods ***/
     HRESULT (STDMETHODCALLTYPE *put_ModulationType)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         ModulationType *pModulationType);
 
     HRESULT (STDMETHODCALLTYPE *get_ModulationType)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         ModulationType *pModulationType);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECMethod)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECMethod)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECMethod)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECMethod)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         FECMethod *pFECMethod);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         BinaryConvolutionCodeRate *pFECRate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         ULONG *pSymbolRate);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         ULONG *pSymbolRate);
 
     HRESULT (STDMETHODCALLTYPE *put_SpectralInversion)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         SpectralInversion *pSpectralInversion);
 
     HRESULT (STDMETHODCALLTYPE *get_SpectralInversion)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         SpectralInversion *pSpectralInversion);
 
     /*** IBDA_DigitalDemodulator2 methods ***/
     HRESULT (STDMETHODCALLTYPE *put_GuardInterval)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         GuardInterval *pGuardInterval);
 
     HRESULT (STDMETHODCALLTYPE *get_GuardInterval)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         GuardInterval *pGuardInterval);
 
     HRESULT (STDMETHODCALLTYPE *put_TransmissionMode)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         TransmissionMode *pTransmissionMode);
 
     HRESULT (STDMETHODCALLTYPE *get_TransmissionMode)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         TransmissionMode *pTransmissionMode);
 
     HRESULT (STDMETHODCALLTYPE *put_RollOff)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         RollOff *pRollOff);
 
     HRESULT (STDMETHODCALLTYPE *get_RollOff)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         RollOff *pRollOff);
 
     HRESULT (STDMETHODCALLTYPE *put_Pilot)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         Pilot *pPilot);
 
     HRESULT (STDMETHODCALLTYPE *get_Pilot)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         Pilot *pPilot);
 
     /*** IBDA_DigitalDemodulator3 methods ***/
     HRESULT (STDMETHODCALLTYPE *put_SignalTimeouts)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         BDA_SIGNAL_TIMEOUTS *pSignalTimeouts);
 
     HRESULT (STDMETHODCALLTYPE *get_SignalTimeouts)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         BDA_SIGNAL_TIMEOUTS *pSignalTimeouts);
 
     HRESULT (STDMETHODCALLTYPE *put_PLPNumber)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         ULONG *pPLPNumber);
 
     HRESULT (STDMETHODCALLTYPE *get_PLPNumber)(
-        IBDA_DigitalDemodulator3* This,
+        IBDA_DigitalDemodulator3 *This,
         ULONG *pPLPNumber);
 
     END_INTERFACE
 } IBDA_DigitalDemodulator3Vtbl;
+
 interface IBDA_DigitalDemodulator3 {
     CONST_VTBL IBDA_DigitalDemodulator3Vtbl* lpVtbl;
 };
@@ -4085,38 +3338,6 @@ static FORCEINLINE HRESULT IBDA_DigitalDemodulator3_get_PLPNumber(IBDA_DigitalDe
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator3_put_SignalTimeouts_Proxy(
-    IBDA_DigitalDemodulator3* This,
-    BDA_SIGNAL_TIMEOUTS *pSignalTimeouts);
-void __RPC_STUB IBDA_DigitalDemodulator3_put_SignalTimeouts_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator3_get_SignalTimeouts_Proxy(
-    IBDA_DigitalDemodulator3* This,
-    BDA_SIGNAL_TIMEOUTS *pSignalTimeouts);
-void __RPC_STUB IBDA_DigitalDemodulator3_get_SignalTimeouts_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator3_put_PLPNumber_Proxy(
-    IBDA_DigitalDemodulator3* This,
-    ULONG *pPLPNumber);
-void __RPC_STUB IBDA_DigitalDemodulator3_put_PLPNumber_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DigitalDemodulator3_get_PLPNumber_Proxy(
-    IBDA_DigitalDemodulator3* This,
-    ULONG *pPLPNumber);
-void __RPC_STUB IBDA_DigitalDemodulator3_get_PLPNumber_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_DigitalDemodulator3_INTERFACE_DEFINED__ */
 
@@ -4147,27 +3368,28 @@ typedef struct ICCSubStreamFilteringVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ICCSubStreamFiltering* This,
+        ICCSubStreamFiltering *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ICCSubStreamFiltering* This);
+        ICCSubStreamFiltering *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ICCSubStreamFiltering* This);
+        ICCSubStreamFiltering *This);
 
     /*** ICCSubStreamFiltering methods ***/
     HRESULT (STDMETHODCALLTYPE *get_SubstreamTypes)(
-        ICCSubStreamFiltering* This,
+        ICCSubStreamFiltering *This,
         LONG *pTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_SubstreamTypes)(
-        ICCSubStreamFiltering* This,
+        ICCSubStreamFiltering *This,
         LONG Types);
 
     END_INTERFACE
 } ICCSubStreamFilteringVtbl;
+
 interface ICCSubStreamFiltering {
     CONST_VTBL ICCSubStreamFilteringVtbl* lpVtbl;
 };
@@ -4204,22 +3426,6 @@ static FORCEINLINE HRESULT ICCSubStreamFiltering_put_SubstreamTypes(ICCSubStream
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ICCSubStreamFiltering_get_SubstreamTypes_Proxy(
-    ICCSubStreamFiltering* This,
-    LONG *pTypes);
-void __RPC_STUB ICCSubStreamFiltering_get_SubstreamTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICCSubStreamFiltering_put_SubstreamTypes_Proxy(
-    ICCSubStreamFiltering* This,
-    LONG Types);
-void __RPC_STUB ICCSubStreamFiltering_put_SubstreamTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ICCSubStreamFiltering_INTERFACE_DEFINED__ */
 
@@ -4252,29 +3458,30 @@ typedef struct IBDA_IPSinkControlVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_IPSinkControl* This,
+        IBDA_IPSinkControl *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_IPSinkControl* This);
+        IBDA_IPSinkControl *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_IPSinkControl* This);
+        IBDA_IPSinkControl *This);
 
     /*** IBDA_IPSinkControl methods ***/
     HRESULT (STDMETHODCALLTYPE *GetMulticastList)(
-        IBDA_IPSinkControl* This,
+        IBDA_IPSinkControl *This,
         ULONG *pulcbSize,
         BYTE **pbBuffer);
 
     HRESULT (STDMETHODCALLTYPE *GetAdapterIPAddress)(
-        IBDA_IPSinkControl* This,
+        IBDA_IPSinkControl *This,
         ULONG *pulcbSize,
         BYTE **pbBuffer);
 
     END_INTERFACE
 } IBDA_IPSinkControlVtbl;
+
 interface IBDA_IPSinkControl {
     CONST_VTBL IBDA_IPSinkControlVtbl* lpVtbl;
 };
@@ -4311,24 +3518,6 @@ static FORCEINLINE HRESULT IBDA_IPSinkControl_GetAdapterIPAddress(IBDA_IPSinkCon
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_IPSinkControl_GetMulticastList_Proxy(
-    IBDA_IPSinkControl* This,
-    ULONG *pulcbSize,
-    BYTE **pbBuffer);
-void __RPC_STUB IBDA_IPSinkControl_GetMulticastList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPSinkControl_GetAdapterIPAddress_Proxy(
-    IBDA_IPSinkControl* This,
-    ULONG *pulcbSize,
-    BYTE **pbBuffer);
-void __RPC_STUB IBDA_IPSinkControl_GetAdapterIPAddress_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_IPSinkControl_INTERFACE_DEFINED__ */
 
@@ -4363,32 +3552,33 @@ typedef struct IBDA_IPSinkInfoVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_IPSinkInfo* This,
+        IBDA_IPSinkInfo *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_IPSinkInfo* This);
+        IBDA_IPSinkInfo *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_IPSinkInfo* This);
+        IBDA_IPSinkInfo *This);
 
     /*** IBDA_IPSinkInfo methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MulticastList)(
-        IBDA_IPSinkInfo* This,
+        IBDA_IPSinkInfo *This,
         ULONG *pulcbAddresses,
         BYTE **ppbAddressList);
 
     HRESULT (STDMETHODCALLTYPE *get_AdapterIPAddress)(
-        IBDA_IPSinkInfo* This,
+        IBDA_IPSinkInfo *This,
         BSTR *pbstrBuffer);
 
     HRESULT (STDMETHODCALLTYPE *get_AdapterDescription)(
-        IBDA_IPSinkInfo* This,
+        IBDA_IPSinkInfo *This,
         BSTR *pbstrBuffer);
 
     END_INTERFACE
 } IBDA_IPSinkInfoVtbl;
+
 interface IBDA_IPSinkInfo {
     CONST_VTBL IBDA_IPSinkInfoVtbl* lpVtbl;
 };
@@ -4429,31 +3619,6 @@ static FORCEINLINE HRESULT IBDA_IPSinkInfo_get_AdapterDescription(IBDA_IPSinkInf
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_IPSinkInfo_get_MulticastList_Proxy(
-    IBDA_IPSinkInfo* This,
-    ULONG *pulcbAddresses,
-    BYTE **ppbAddressList);
-void __RPC_STUB IBDA_IPSinkInfo_get_MulticastList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPSinkInfo_get_AdapterIPAddress_Proxy(
-    IBDA_IPSinkInfo* This,
-    BSTR *pbstrBuffer);
-void __RPC_STUB IBDA_IPSinkInfo_get_AdapterIPAddress_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_IPSinkInfo_get_AdapterDescription_Proxy(
-    IBDA_IPSinkInfo* This,
-    BSTR *pbstrBuffer);
-void __RPC_STUB IBDA_IPSinkInfo_get_AdapterDescription_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_IPSinkInfo_INTERFACE_DEFINED__ */
 
@@ -4492,36 +3657,37 @@ typedef struct IEnumPIDMapVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumPIDMap* This,
+        IEnumPIDMap *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumPIDMap* This);
+        IEnumPIDMap *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumPIDMap* This);
+        IEnumPIDMap *This);
 
     /*** IEnumPIDMap methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumPIDMap* This,
+        IEnumPIDMap *This,
         ULONG cRequest,
         PID_MAP *pPIDMap,
         ULONG *pcReceived);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumPIDMap* This,
+        IEnumPIDMap *This,
         ULONG cRecords);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumPIDMap* This);
+        IEnumPIDMap *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumPIDMap* This,
+        IEnumPIDMap *This,
         IEnumPIDMap **ppIEnumPIDMap);
 
     END_INTERFACE
 } IEnumPIDMapVtbl;
+
 interface IEnumPIDMap {
     CONST_VTBL IEnumPIDMapVtbl* lpVtbl;
 };
@@ -4566,39 +3732,6 @@ static FORCEINLINE HRESULT IEnumPIDMap_Clone(IEnumPIDMap* This,IEnumPIDMap **ppI
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IEnumPIDMap_Next_Proxy(
-    IEnumPIDMap* This,
-    ULONG cRequest,
-    PID_MAP *pPIDMap,
-    ULONG *pcReceived);
-void __RPC_STUB IEnumPIDMap_Next_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumPIDMap_Skip_Proxy(
-    IEnumPIDMap* This,
-    ULONG cRecords);
-void __RPC_STUB IEnumPIDMap_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumPIDMap_Reset_Proxy(
-    IEnumPIDMap* This);
-void __RPC_STUB IEnumPIDMap_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumPIDMap_Clone_Proxy(
-    IEnumPIDMap* This,
-    IEnumPIDMap **ppIEnumPIDMap);
-void __RPC_STUB IEnumPIDMap_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IEnumPIDMap_INTERFACE_DEFINED__ */
 
@@ -4635,34 +3768,35 @@ typedef struct IMPEG2PIDMapVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMPEG2PIDMap* This,
+        IMPEG2PIDMap *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMPEG2PIDMap* This);
+        IMPEG2PIDMap *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMPEG2PIDMap* This);
+        IMPEG2PIDMap *This);
 
     /*** IMPEG2PIDMap methods ***/
     HRESULT (STDMETHODCALLTYPE *MapPID)(
-        IMPEG2PIDMap* This,
+        IMPEG2PIDMap *This,
         ULONG culPID,
         ULONG *pulPID,
         MEDIA_SAMPLE_CONTENT MediaSampleContent);
 
     HRESULT (STDMETHODCALLTYPE *UnmapPID)(
-        IMPEG2PIDMap* This,
+        IMPEG2PIDMap *This,
         ULONG culPID,
         ULONG *pulPID);
 
     HRESULT (STDMETHODCALLTYPE *EnumPIDMap)(
-        IMPEG2PIDMap* This,
+        IMPEG2PIDMap *This,
         IEnumPIDMap **pIEnumPIDMap);
 
     END_INTERFACE
 } IMPEG2PIDMapVtbl;
+
 interface IMPEG2PIDMap {
     CONST_VTBL IMPEG2PIDMapVtbl* lpVtbl;
 };
@@ -4703,33 +3837,6 @@ static FORCEINLINE HRESULT IMPEG2PIDMap_EnumPIDMap(IMPEG2PIDMap* This,IEnumPIDMa
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IMPEG2PIDMap_MapPID_Proxy(
-    IMPEG2PIDMap* This,
-    ULONG culPID,
-    ULONG *pulPID,
-    MEDIA_SAMPLE_CONTENT MediaSampleContent);
-void __RPC_STUB IMPEG2PIDMap_MapPID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2PIDMap_UnmapPID_Proxy(
-    IMPEG2PIDMap* This,
-    ULONG culPID,
-    ULONG *pulPID);
-void __RPC_STUB IMPEG2PIDMap_UnmapPID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2PIDMap_EnumPIDMap_Proxy(
-    IMPEG2PIDMap* This,
-    IEnumPIDMap **pIEnumPIDMap);
-void __RPC_STUB IMPEG2PIDMap_EnumPIDMap_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMPEG2PIDMap_INTERFACE_DEFINED__ */
 
@@ -4777,48 +3884,49 @@ typedef struct IFrequencyMapVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IFrequencyMap* This,
+        IFrequencyMap *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IFrequencyMap* This);
+        IFrequencyMap *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IFrequencyMap* This);
+        IFrequencyMap *This);
 
     /*** IFrequencyMap methods ***/
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IFrequencyMap* This,
+        IFrequencyMap *This,
         ULONG *ulCount,
         ULONG **ppulList);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IFrequencyMap* This,
+        IFrequencyMap *This,
         ULONG ulCount,
         ULONG pList[]);
 
     HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
-        IFrequencyMap* This,
+        IFrequencyMap *This,
         ULONG *pulCountryCode);
 
     HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
-        IFrequencyMap* This,
+        IFrequencyMap *This,
         ULONG ulCountryCode);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultFrequencyMapping)(
-        IFrequencyMap* This,
+        IFrequencyMap *This,
         ULONG ulCountryCode,
         ULONG *pulCount,
         ULONG **ppulList);
 
     HRESULT (STDMETHODCALLTYPE *get_CountryCodeList)(
-        IFrequencyMap* This,
+        IFrequencyMap *This,
         ULONG *pulCount,
         ULONG **ppulList);
 
     END_INTERFACE
 } IFrequencyMapVtbl;
+
 interface IFrequencyMap {
     CONST_VTBL IFrequencyMapVtbl* lpVtbl;
 };
@@ -4871,59 +3979,6 @@ static FORCEINLINE HRESULT IFrequencyMap_get_CountryCodeList(IFrequencyMap* This
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IFrequencyMap_get_FrequencyMapping_Proxy(
-    IFrequencyMap* This,
-    ULONG *ulCount,
-    ULONG **ppulList);
-void __RPC_STUB IFrequencyMap_get_FrequencyMapping_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFrequencyMap_put_FrequencyMapping_Proxy(
-    IFrequencyMap* This,
-    ULONG ulCount,
-    ULONG pList[]);
-void __RPC_STUB IFrequencyMap_put_FrequencyMapping_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFrequencyMap_get_CountryCode_Proxy(
-    IFrequencyMap* This,
-    ULONG *pulCountryCode);
-void __RPC_STUB IFrequencyMap_get_CountryCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFrequencyMap_put_CountryCode_Proxy(
-    IFrequencyMap* This,
-    ULONG ulCountryCode);
-void __RPC_STUB IFrequencyMap_put_CountryCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFrequencyMap_get_DefaultFrequencyMapping_Proxy(
-    IFrequencyMap* This,
-    ULONG ulCountryCode,
-    ULONG *pulCount,
-    ULONG **ppulList);
-void __RPC_STUB IFrequencyMap_get_DefaultFrequencyMapping_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFrequencyMap_get_CountryCodeList_Proxy(
-    IFrequencyMap* This,
-    ULONG *pulCount,
-    ULONG **ppulList);
-void __RPC_STUB IFrequencyMap_get_CountryCodeList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IFrequencyMap_INTERFACE_DEFINED__ */
 
@@ -4952,24 +4007,25 @@ typedef struct IBDA_EasMessageVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_EasMessage* This,
+        IBDA_EasMessage *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_EasMessage* This);
+        IBDA_EasMessage *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_EasMessage* This);
+        IBDA_EasMessage *This);
 
     /*** IBDA_EasMessage methods ***/
     HRESULT (STDMETHODCALLTYPE *get_EasMessage)(
-        IBDA_EasMessage* This,
+        IBDA_EasMessage *This,
         ULONG ulEventID,
         IUnknown **ppEASObject);
 
     END_INTERFACE
 } IBDA_EasMessageVtbl;
+
 interface IBDA_EasMessage {
     CONST_VTBL IBDA_EasMessageVtbl* lpVtbl;
 };
@@ -5002,15 +4058,6 @@ static FORCEINLINE HRESULT IBDA_EasMessage_get_EasMessage(IBDA_EasMessage* This,
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_EasMessage_get_EasMessage_Proxy(
-    IBDA_EasMessage* This,
-    ULONG ulEventID,
-    IUnknown **ppEASObject);
-void __RPC_STUB IBDA_EasMessage_get_EasMessage_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_EasMessage_INTERFACE_DEFINED__ */
 
@@ -5038,23 +4085,24 @@ typedef struct IBDA_TransportStreamInfoVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_TransportStreamInfo* This,
+        IBDA_TransportStreamInfo *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_TransportStreamInfo* This);
+        IBDA_TransportStreamInfo *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_TransportStreamInfo* This);
+        IBDA_TransportStreamInfo *This);
 
     /*** IBDA_TransportStreamInfo methods ***/
     HRESULT (STDMETHODCALLTYPE *get_PatTableTickCount)(
-        IBDA_TransportStreamInfo* This,
+        IBDA_TransportStreamInfo *This,
         ULONG *pPatTickCount);
 
     END_INTERFACE
 } IBDA_TransportStreamInfoVtbl;
+
 interface IBDA_TransportStreamInfo {
     CONST_VTBL IBDA_TransportStreamInfoVtbl* lpVtbl;
 };
@@ -5087,14 +4135,6 @@ static FORCEINLINE HRESULT IBDA_TransportStreamInfo_get_PatTableTickCount(IBDA_T
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_TransportStreamInfo_get_PatTableTickCount_Proxy(
-    IBDA_TransportStreamInfo* This,
-    ULONG *pPatTickCount);
-void __RPC_STUB IBDA_TransportStreamInfo_get_PatTableTickCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_TransportStreamInfo_INTERFACE_DEFINED__ */
 
@@ -5163,26 +4203,26 @@ typedef struct IBDA_ConditionalAccessVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_ConditionalAccess* This);
+        IBDA_ConditionalAccess *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_ConditionalAccess* This);
+        IBDA_ConditionalAccess *This);
 
     /*** IBDA_ConditionalAccess methods ***/
     HRESULT (STDMETHODCALLTYPE *get_SmartCardStatus)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         SmartCardStatusType *pCardStatus,
         SmartCardAssociationType *pCardAssociation,
         BSTR *pbstrCardError,
         VARIANT_BOOL *pfOOBLocked);
 
     HRESULT (STDMETHODCALLTYPE *get_SmartCardInfo)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         BSTR *pbstrCardName,
         BSTR *pbstrCardManufacturer,
         VARIANT_BOOL *pfDaylightSavings,
@@ -5192,44 +4232,45 @@ typedef struct IBDA_ConditionalAccessVtbl {
         EALocationCodeType *pEALocationCode);
 
     HRESULT (STDMETHODCALLTYPE *get_SmartCardApplications)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         ULONG *pulcApplications,
         ULONG ulcApplicationsMax,
         SmartCardApplication rgApplications[]);
 
     HRESULT (STDMETHODCALLTYPE *get_Entitlement)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         USHORT usVirtualChannel,
         EntitlementType *pEntitlement);
 
     HRESULT (STDMETHODCALLTYPE *TuneByChannel)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         USHORT usVirtualChannel);
 
     HRESULT (STDMETHODCALLTYPE *SetProgram)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         USHORT usProgramNumber);
 
     HRESULT (STDMETHODCALLTYPE *AddProgram)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         USHORT usProgramNumber);
 
     HRESULT (STDMETHODCALLTYPE *RemoveProgram)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         USHORT usProgramNumber);
 
     HRESULT (STDMETHODCALLTYPE *GetModuleUI)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         BYTE byDialogNumber,
         BSTR *pbstrURL);
 
     HRESULT (STDMETHODCALLTYPE *InformUIClosed)(
-        IBDA_ConditionalAccess* This,
+        IBDA_ConditionalAccess *This,
         BYTE byDialogNumber,
         UICloseReasonType CloseReason);
 
     END_INTERFACE
 } IBDA_ConditionalAccessVtbl;
+
 interface IBDA_ConditionalAccess {
     CONST_VTBL IBDA_ConditionalAccessVtbl* lpVtbl;
 };
@@ -5298,100 +4339,6 @@ static FORCEINLINE HRESULT IBDA_ConditionalAccess_InformUIClosed(IBDA_Conditiona
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccess_get_SmartCardStatus_Proxy(
-    IBDA_ConditionalAccess* This,
-    SmartCardStatusType *pCardStatus,
-    SmartCardAssociationType *pCardAssociation,
-    BSTR *pbstrCardError,
-    VARIANT_BOOL *pfOOBLocked);
-void __RPC_STUB IBDA_ConditionalAccess_get_SmartCardStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccess_get_SmartCardInfo_Proxy(
-    IBDA_ConditionalAccess* This,
-    BSTR *pbstrCardName,
-    BSTR *pbstrCardManufacturer,
-    VARIANT_BOOL *pfDaylightSavings,
-    BYTE *pbyRatingRegion,
-    LONG *plTimeZoneOffsetMinutes,
-    BSTR *pbstrLanguage,
-    EALocationCodeType *pEALocationCode);
-void __RPC_STUB IBDA_ConditionalAccess_get_SmartCardInfo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccess_get_SmartCardApplications_Proxy(
-    IBDA_ConditionalAccess* This,
-    ULONG *pulcApplications,
-    ULONG ulcApplicationsMax,
-    SmartCardApplication rgApplications[]);
-void __RPC_STUB IBDA_ConditionalAccess_get_SmartCardApplications_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccess_get_Entitlement_Proxy(
-    IBDA_ConditionalAccess* This,
-    USHORT usVirtualChannel,
-    EntitlementType *pEntitlement);
-void __RPC_STUB IBDA_ConditionalAccess_get_Entitlement_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccess_TuneByChannel_Proxy(
-    IBDA_ConditionalAccess* This,
-    USHORT usVirtualChannel);
-void __RPC_STUB IBDA_ConditionalAccess_TuneByChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccess_SetProgram_Proxy(
-    IBDA_ConditionalAccess* This,
-    USHORT usProgramNumber);
-void __RPC_STUB IBDA_ConditionalAccess_SetProgram_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccess_AddProgram_Proxy(
-    IBDA_ConditionalAccess* This,
-    USHORT usProgramNumber);
-void __RPC_STUB IBDA_ConditionalAccess_AddProgram_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccess_RemoveProgram_Proxy(
-    IBDA_ConditionalAccess* This,
-    USHORT usProgramNumber);
-void __RPC_STUB IBDA_ConditionalAccess_RemoveProgram_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccess_GetModuleUI_Proxy(
-    IBDA_ConditionalAccess* This,
-    BYTE byDialogNumber,
-    BSTR *pbstrURL);
-void __RPC_STUB IBDA_ConditionalAccess_GetModuleUI_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccess_InformUIClosed_Proxy(
-    IBDA_ConditionalAccess* This,
-    BYTE byDialogNumber,
-    UICloseReasonType CloseReason);
-void __RPC_STUB IBDA_ConditionalAccess_InformUIClosed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_ConditionalAccess_INTERFACE_DEFINED__ */
 
@@ -5416,30 +4363,31 @@ typedef struct IBDA_DiagnosticPropertiesVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_DiagnosticProperties* This,
+        IBDA_DiagnosticProperties *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_DiagnosticProperties* This);
+        IBDA_DiagnosticProperties *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_DiagnosticProperties* This);
+        IBDA_DiagnosticProperties *This);
 
     /*** IPropertyBag methods ***/
     HRESULT (STDMETHODCALLTYPE *Read)(
-        IBDA_DiagnosticProperties* This,
+        IBDA_DiagnosticProperties *This,
         LPCOLESTR pszPropName,
         VARIANT *pVar,
         IErrorLog *pErrorLog);
 
     HRESULT (STDMETHODCALLTYPE *Write)(
-        IBDA_DiagnosticProperties* This,
+        IBDA_DiagnosticProperties *This,
         LPCOLESTR pszPropName,
         VARIANT *pVar);
 
     END_INTERFACE
 } IBDA_DiagnosticPropertiesVtbl;
+
 interface IBDA_DiagnosticProperties {
     CONST_VTBL IBDA_DiagnosticPropertiesVtbl* lpVtbl;
 };
@@ -5507,28 +4455,29 @@ typedef struct IBDA_DRMVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_DRM* This,
+        IBDA_DRM *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_DRM* This);
+        IBDA_DRM *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_DRM* This);
+        IBDA_DRM *This);
 
     /*** IBDA_DRM methods ***/
     HRESULT (STDMETHODCALLTYPE *GetDRMPairingStatus)(
-        IBDA_DRM* This,
+        IBDA_DRM *This,
         DWORD *pdwStatus,
         HRESULT *phError);
 
     HRESULT (STDMETHODCALLTYPE *PerformDRMPairing)(
-        IBDA_DRM* This,
+        IBDA_DRM *This,
         WINBOOL fSync);
 
     END_INTERFACE
 } IBDA_DRMVtbl;
+
 interface IBDA_DRM {
     CONST_VTBL IBDA_DRMVtbl* lpVtbl;
 };
@@ -5565,23 +4514,6 @@ static FORCEINLINE HRESULT IBDA_DRM_PerformDRMPairing(IBDA_DRM* This,WINBOOL fSy
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_DRM_GetDRMPairingStatus_Proxy(
-    IBDA_DRM* This,
-    DWORD *pdwStatus,
-    HRESULT *phError);
-void __RPC_STUB IBDA_DRM_GetDRMPairingStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DRM_PerformDRMPairing_Proxy(
-    IBDA_DRM* This,
-    WINBOOL fSync);
-void __RPC_STUB IBDA_DRM_PerformDRMPairing_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_DRM_INTERFACE_DEFINED__ */
 
@@ -5622,30 +4554,30 @@ typedef struct IBDA_NameValueServiceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_NameValueService* This,
+        IBDA_NameValueService *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_NameValueService* This);
+        IBDA_NameValueService *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_NameValueService* This);
+        IBDA_NameValueService *This);
 
     /*** IBDA_NameValueService methods ***/
     HRESULT (STDMETHODCALLTYPE *GetValueNameByIndex)(
-        IBDA_NameValueService* This,
+        IBDA_NameValueService *This,
         ULONG ulIndex,
         BSTR *pbstrName);
 
     HRESULT (STDMETHODCALLTYPE *GetValue)(
-        IBDA_NameValueService* This,
+        IBDA_NameValueService *This,
         BSTR bstrName,
         BSTR bstrLanguage,
         BSTR *pbstrValue);
 
     HRESULT (STDMETHODCALLTYPE *SetValue)(
-        IBDA_NameValueService* This,
+        IBDA_NameValueService *This,
         ULONG ulDialogRequest,
         BSTR bstrLanguage,
         BSTR bstrName,
@@ -5654,6 +4586,7 @@ typedef struct IBDA_NameValueServiceVtbl {
 
     END_INTERFACE
 } IBDA_NameValueServiceVtbl;
+
 interface IBDA_NameValueService {
     CONST_VTBL IBDA_NameValueServiceVtbl* lpVtbl;
 };
@@ -5694,37 +4627,6 @@ static FORCEINLINE HRESULT IBDA_NameValueService_SetValue(IBDA_NameValueService*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_NameValueService_GetValueNameByIndex_Proxy(
-    IBDA_NameValueService* This,
-    ULONG ulIndex,
-    BSTR *pbstrName);
-void __RPC_STUB IBDA_NameValueService_GetValueNameByIndex_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_NameValueService_GetValue_Proxy(
-    IBDA_NameValueService* This,
-    BSTR bstrName,
-    BSTR bstrLanguage,
-    BSTR *pbstrValue);
-void __RPC_STUB IBDA_NameValueService_GetValue_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_NameValueService_SetValue_Proxy(
-    IBDA_NameValueService* This,
-    ULONG ulDialogRequest,
-    BSTR bstrLanguage,
-    BSTR bstrName,
-    BSTR bstrValue,
-    ULONG ulReserved);
-void __RPC_STUB IBDA_NameValueService_SetValue_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_NameValueService_INTERFACE_DEFINED__ */
 
@@ -5776,19 +4678,19 @@ typedef struct IBDA_ConditionalAccessExVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_ConditionalAccessEx* This,
+        IBDA_ConditionalAccessEx *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_ConditionalAccessEx* This);
+        IBDA_ConditionalAccessEx *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_ConditionalAccessEx* This);
+        IBDA_ConditionalAccessEx *This);
 
     /*** IBDA_ConditionalAccessEx methods ***/
     HRESULT (STDMETHODCALLTYPE *CheckEntitlementToken)(
-        IBDA_ConditionalAccessEx* This,
+        IBDA_ConditionalAccessEx *This,
         ULONG ulDialogRequest,
         BSTR bstrLanguage,
         BDA_CONDITIONALACCESS_REQUESTTYPE RequestType,
@@ -5797,18 +4699,18 @@ typedef struct IBDA_ConditionalAccessExVtbl {
         ULONG *pulDescrambleStatus);
 
     HRESULT (STDMETHODCALLTYPE *SetCaptureToken)(
-        IBDA_ConditionalAccessEx* This,
+        IBDA_ConditionalAccessEx *This,
         ULONG ulcbCaptureTokenLen,
         BYTE *pbCaptureToken);
 
     HRESULT (STDMETHODCALLTYPE *OpenBroadcastMmi)(
-        IBDA_ConditionalAccessEx* This,
+        IBDA_ConditionalAccessEx *This,
         ULONG ulDialogRequest,
         BSTR bstrLanguage,
         ULONG EventId);
 
     HRESULT (STDMETHODCALLTYPE *CloseMmiDialog)(
-        IBDA_ConditionalAccessEx* This,
+        IBDA_ConditionalAccessEx *This,
         ULONG ulDialogRequest,
         BSTR bstrLanguage,
         ULONG ulDialogNumber,
@@ -5816,11 +4718,12 @@ typedef struct IBDA_ConditionalAccessExVtbl {
         ULONG *pulSessionResult);
 
     HRESULT (STDMETHODCALLTYPE *CreateDialogRequestNumber)(
-        IBDA_ConditionalAccessEx* This,
+        IBDA_ConditionalAccessEx *This,
         ULONG *pulDialogRequestNumber);
 
     END_INTERFACE
 } IBDA_ConditionalAccessExVtbl;
+
 interface IBDA_ConditionalAccessEx {
     CONST_VTBL IBDA_ConditionalAccessExVtbl* lpVtbl;
 };
@@ -5869,58 +4772,6 @@ static FORCEINLINE HRESULT IBDA_ConditionalAccessEx_CreateDialogRequestNumber(IB
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccessEx_CheckEntitlementToken_Proxy(
-    IBDA_ConditionalAccessEx* This,
-    ULONG ulDialogRequest,
-    BSTR bstrLanguage,
-    BDA_CONDITIONALACCESS_REQUESTTYPE RequestType,
-    ULONG ulcbEntitlementTokenLen,
-    BYTE *pbEntitlementToken,
-    ULONG *pulDescrambleStatus);
-void __RPC_STUB IBDA_ConditionalAccessEx_CheckEntitlementToken_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccessEx_SetCaptureToken_Proxy(
-    IBDA_ConditionalAccessEx* This,
-    ULONG ulcbCaptureTokenLen,
-    BYTE *pbCaptureToken);
-void __RPC_STUB IBDA_ConditionalAccessEx_SetCaptureToken_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccessEx_OpenBroadcastMmi_Proxy(
-    IBDA_ConditionalAccessEx* This,
-    ULONG ulDialogRequest,
-    BSTR bstrLanguage,
-    ULONG EventId);
-void __RPC_STUB IBDA_ConditionalAccessEx_OpenBroadcastMmi_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccessEx_CloseMmiDialog_Proxy(
-    IBDA_ConditionalAccessEx* This,
-    ULONG ulDialogRequest,
-    BSTR bstrLanguage,
-    ULONG ulDialogNumber,
-    BDA_CONDITIONALACCESS_MMICLOSEREASON ReasonCode,
-    ULONG *pulSessionResult);
-void __RPC_STUB IBDA_ConditionalAccessEx_CloseMmiDialog_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_ConditionalAccessEx_CreateDialogRequestNumber_Proxy(
-    IBDA_ConditionalAccessEx* This,
-    ULONG *pulDialogRequestNumber);
-void __RPC_STUB IBDA_ConditionalAccessEx_CreateDialogRequestNumber_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_ConditionalAccessEx_INTERFACE_DEFINED__ */
 
@@ -5950,25 +4801,26 @@ typedef struct IBDA_ISDBConditionalAccessVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_ISDBConditionalAccess* This,
+        IBDA_ISDBConditionalAccess *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_ISDBConditionalAccess* This);
+        IBDA_ISDBConditionalAccess *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_ISDBConditionalAccess* This);
+        IBDA_ISDBConditionalAccess *This);
 
     /*** IBDA_ISDBConditionalAccess methods ***/
     HRESULT (STDMETHODCALLTYPE *SetIsdbCasRequest)(
-        IBDA_ISDBConditionalAccess* This,
+        IBDA_ISDBConditionalAccess *This,
         ULONG ulRequestId,
         ULONG ulcbRequestBufferLen,
         BYTE *pbRequestBuffer);
 
     END_INTERFACE
 } IBDA_ISDBConditionalAccessVtbl;
+
 interface IBDA_ISDBConditionalAccess {
     CONST_VTBL IBDA_ISDBConditionalAccessVtbl* lpVtbl;
 };
@@ -6001,16 +4853,6 @@ static FORCEINLINE HRESULT IBDA_ISDBConditionalAccess_SetIsdbCasRequest(IBDA_ISD
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_ISDBConditionalAccess_SetIsdbCasRequest_Proxy(
-    IBDA_ISDBConditionalAccess* This,
-    ULONG ulRequestId,
-    ULONG ulcbRequestBufferLen,
-    BYTE *pbRequestBuffer);
-void __RPC_STUB IBDA_ISDBConditionalAccess_SetIsdbCasRequest_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_ISDBConditionalAccess_INTERFACE_DEFINED__ */
 
@@ -6039,24 +4881,25 @@ typedef struct IBDA_EventingServiceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_EventingService* This,
+        IBDA_EventingService *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_EventingService* This);
+        IBDA_EventingService *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_EventingService* This);
+        IBDA_EventingService *This);
 
     /*** IBDA_EventingService methods ***/
     HRESULT (STDMETHODCALLTYPE *CompleteEvent)(
-        IBDA_EventingService* This,
+        IBDA_EventingService *This,
         ULONG ulEventID,
         ULONG ulEventResult);
 
     END_INTERFACE
 } IBDA_EventingServiceVtbl;
+
 interface IBDA_EventingService {
     CONST_VTBL IBDA_EventingServiceVtbl* lpVtbl;
 };
@@ -6089,15 +4932,6 @@ static FORCEINLINE HRESULT IBDA_EventingService_CompleteEvent(IBDA_EventingServi
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_EventingService_CompleteEvent_Proxy(
-    IBDA_EventingService* This,
-    ULONG ulEventID,
-    ULONG ulEventResult);
-void __RPC_STUB IBDA_EventingService_CompleteEvent_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_EventingService_INTERFACE_DEFINED__ */
 
@@ -6133,23 +4967,23 @@ typedef struct IBDA_AUXVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_AUX* This,
+        IBDA_AUX *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_AUX* This);
+        IBDA_AUX *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_AUX* This);
+        IBDA_AUX *This);
 
     /*** IBDA_AUX methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryCapabilities)(
-        IBDA_AUX* This,
+        IBDA_AUX *This,
         DWORD *pdwNumAuxInputsBSTR);
 
     HRESULT (STDMETHODCALLTYPE *EnumCapability)(
-        IBDA_AUX* This,
+        IBDA_AUX *This,
         DWORD dwIndex,
         DWORD *dwInputID,
         GUID *pConnectorType,
@@ -6159,6 +4993,7 @@ typedef struct IBDA_AUXVtbl {
 
     END_INTERFACE
 } IBDA_AUXVtbl;
+
 interface IBDA_AUX {
     CONST_VTBL IBDA_AUXVtbl* lpVtbl;
 };
@@ -6195,27 +5030,6 @@ static FORCEINLINE HRESULT IBDA_AUX_EnumCapability(IBDA_AUX* This,DWORD dwIndex,
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_AUX_QueryCapabilities_Proxy(
-    IBDA_AUX* This,
-    DWORD *pdwNumAuxInputsBSTR);
-void __RPC_STUB IBDA_AUX_QueryCapabilities_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_AUX_EnumCapability_Proxy(
-    IBDA_AUX* This,
-    DWORD dwIndex,
-    DWORD *dwInputID,
-    GUID *pConnectorType,
-    DWORD *ConnTypeNum,
-    DWORD *NumVideoStds,
-    ULONGLONG *AnalogStds);
-void __RPC_STUB IBDA_AUX_EnumCapability_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_AUX_INTERFACE_DEFINED__ */
 
@@ -6292,24 +5106,24 @@ typedef struct IBDA_EncoderVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_Encoder* This,
+        IBDA_Encoder *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_Encoder* This);
+        IBDA_Encoder *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_Encoder* This);
+        IBDA_Encoder *This);
 
     /*** IBDA_Encoder methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryCapabilities)(
-        IBDA_Encoder* This,
+        IBDA_Encoder *This,
         DWORD *NumAudioFmts,
         DWORD *NumVideoFmts);
 
     HRESULT (STDMETHODCALLTYPE *EnumAudioCapability)(
-        IBDA_Encoder* This,
+        IBDA_Encoder *This,
         DWORD FmtIndex,
         DWORD *MethodID,
         DWORD *AlgorithmType,
@@ -6318,7 +5132,7 @@ typedef struct IBDA_EncoderVtbl {
         DWORD *NumChannels);
 
     HRESULT (STDMETHODCALLTYPE *EnumVideoCapability)(
-        IBDA_Encoder* This,
+        IBDA_Encoder *This,
         DWORD FmtIndex,
         DWORD *MethodID,
         DWORD *AlgorithmType,
@@ -6329,7 +5143,7 @@ typedef struct IBDA_EncoderVtbl {
         DWORD *ProgressiveSequence);
 
     HRESULT (STDMETHODCALLTYPE *SetParameters)(
-        IBDA_Encoder* This,
+        IBDA_Encoder *This,
         DWORD AudioBitrateMode,
         DWORD AudioBitrate,
         DWORD AudioMethodID,
@@ -6339,7 +5153,7 @@ typedef struct IBDA_EncoderVtbl {
         DWORD VideoMethodID);
 
     HRESULT (STDMETHODCALLTYPE *GetState)(
-        IBDA_Encoder* This,
+        IBDA_Encoder *This,
         DWORD *AudioBitrateMax,
         DWORD *AudioBitrateMin,
         DWORD *AudioBitrateMode,
@@ -6362,6 +5176,7 @@ typedef struct IBDA_EncoderVtbl {
 
     END_INTERFACE
 } IBDA_EncoderVtbl;
+
 interface IBDA_Encoder {
     CONST_VTBL IBDA_EncoderVtbl* lpVtbl;
 };
@@ -6410,83 +5225,6 @@ static FORCEINLINE HRESULT IBDA_Encoder_GetState(IBDA_Encoder* This,DWORD *Audio
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_Encoder_QueryCapabilities_Proxy(
-    IBDA_Encoder* This,
-    DWORD *NumAudioFmts,
-    DWORD *NumVideoFmts);
-void __RPC_STUB IBDA_Encoder_QueryCapabilities_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Encoder_EnumAudioCapability_Proxy(
-    IBDA_Encoder* This,
-    DWORD FmtIndex,
-    DWORD *MethodID,
-    DWORD *AlgorithmType,
-    DWORD *SamplingRate,
-    DWORD *BitDepth,
-    DWORD *NumChannels);
-void __RPC_STUB IBDA_Encoder_EnumAudioCapability_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Encoder_EnumVideoCapability_Proxy(
-    IBDA_Encoder* This,
-    DWORD FmtIndex,
-    DWORD *MethodID,
-    DWORD *AlgorithmType,
-    DWORD *VerticalSize,
-    DWORD *HorizontalSize,
-    DWORD *AspectRatio,
-    DWORD *FrameRateCode,
-    DWORD *ProgressiveSequence);
-void __RPC_STUB IBDA_Encoder_EnumVideoCapability_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Encoder_SetParameters_Proxy(
-    IBDA_Encoder* This,
-    DWORD AudioBitrateMode,
-    DWORD AudioBitrate,
-    DWORD AudioMethodID,
-    DWORD AudioProgram,
-    DWORD VideoBitrateMode,
-    DWORD VideoBitrate,
-    DWORD VideoMethodID);
-void __RPC_STUB IBDA_Encoder_SetParameters_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_Encoder_GetState_Proxy(
-    IBDA_Encoder* This,
-    DWORD *AudioBitrateMax,
-    DWORD *AudioBitrateMin,
-    DWORD *AudioBitrateMode,
-    DWORD *AudioBitrateStepping,
-    DWORD *AudioBitrate,
-    DWORD *AudioMethodID,
-    DWORD *AvailableAudioPrograms,
-    DWORD *AudioProgram,
-    DWORD *VideoBitrateMax,
-    DWORD *VideoBitrateMin,
-    DWORD *VideoBitrateMode,
-    DWORD *VideoBitrate,
-    DWORD *VideoBitrateStepping,
-    DWORD *VideoMethodID,
-    DWORD *SignalSourceID,
-    ULONGLONG *SignalFormat,
-    WINBOOL *SignalLock,
-    LONG *SignalLevel,
-    DWORD *SignalToNoiseRatio);
-void __RPC_STUB IBDA_Encoder_GetState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_Encoder_INTERFACE_DEFINED__ */
 
@@ -6543,19 +5281,19 @@ typedef struct IBDA_FDCVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_FDC* This,
+        IBDA_FDC *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_FDC* This);
+        IBDA_FDC *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_FDC* This);
+        IBDA_FDC *This);
 
     /*** IBDA_FDC methods ***/
     HRESULT (STDMETHODCALLTYPE *GetStatus)(
-        IBDA_FDC* This,
+        IBDA_FDC *This,
         DWORD *CurrentBitrate,
         WINBOOL *CarrierLock,
         DWORD *CurrentFrequency,
@@ -6565,29 +5303,29 @@ typedef struct IBDA_FDCVtbl {
         WINBOOL *Overflow);
 
     HRESULT (STDMETHODCALLTYPE *RequestTables)(
-        IBDA_FDC* This,
+        IBDA_FDC *This,
         BSTR TableIDs);
 
     HRESULT (STDMETHODCALLTYPE *AddPid)(
-        IBDA_FDC* This,
+        IBDA_FDC *This,
         BSTR PidsToAdd,
         DWORD *RemainingFilterEntries);
 
     HRESULT (STDMETHODCALLTYPE *RemovePid)(
-        IBDA_FDC* This,
+        IBDA_FDC *This,
         BSTR PidsToRemove);
 
     HRESULT (STDMETHODCALLTYPE *AddTid)(
-        IBDA_FDC* This,
+        IBDA_FDC *This,
         BSTR TidsToAdd,
         BSTR *CurrentTidList);
 
     HRESULT (STDMETHODCALLTYPE *RemoveTid)(
-        IBDA_FDC* This,
+        IBDA_FDC *This,
         BSTR TidsToRemove);
 
     HRESULT (STDMETHODCALLTYPE *GetTableSection)(
-        IBDA_FDC* This,
+        IBDA_FDC *This,
         DWORD *Pid,
         DWORD MaxBufferSize,
         DWORD *ActualSize,
@@ -6595,6 +5333,7 @@ typedef struct IBDA_FDCVtbl {
 
     END_INTERFACE
 } IBDA_FDCVtbl;
+
 interface IBDA_FDC {
     CONST_VTBL IBDA_FDCVtbl* lpVtbl;
 };
@@ -6651,73 +5390,6 @@ static FORCEINLINE HRESULT IBDA_FDC_GetTableSection(IBDA_FDC* This,DWORD *Pid,DW
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_FDC_GetStatus_Proxy(
-    IBDA_FDC* This,
-    DWORD *CurrentBitrate,
-    WINBOOL *CarrierLock,
-    DWORD *CurrentFrequency,
-    WINBOOL *CurrentSpectrumInversion,
-    BSTR *CurrentPIDList,
-    BSTR *CurrentTIDList,
-    WINBOOL *Overflow);
-void __RPC_STUB IBDA_FDC_GetStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FDC_RequestTables_Proxy(
-    IBDA_FDC* This,
-    BSTR TableIDs);
-void __RPC_STUB IBDA_FDC_RequestTables_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FDC_AddPid_Proxy(
-    IBDA_FDC* This,
-    BSTR PidsToAdd,
-    DWORD *RemainingFilterEntries);
-void __RPC_STUB IBDA_FDC_AddPid_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FDC_RemovePid_Proxy(
-    IBDA_FDC* This,
-    BSTR PidsToRemove);
-void __RPC_STUB IBDA_FDC_RemovePid_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FDC_AddTid_Proxy(
-    IBDA_FDC* This,
-    BSTR TidsToAdd,
-    BSTR *CurrentTidList);
-void __RPC_STUB IBDA_FDC_AddTid_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FDC_RemoveTid_Proxy(
-    IBDA_FDC* This,
-    BSTR TidsToRemove);
-void __RPC_STUB IBDA_FDC_RemoveTid_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_FDC_GetTableSection_Proxy(
-    IBDA_FDC* This,
-    DWORD *Pid,
-    DWORD MaxBufferSize,
-    DWORD *ActualSize,
-    BYTE *SecBuffer);
-void __RPC_STUB IBDA_FDC_GetTableSection_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_FDC_INTERFACE_DEFINED__ */
 
@@ -6765,47 +5437,48 @@ typedef struct IBDA_GuideDataDeliveryServiceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_GuideDataDeliveryService* This,
+        IBDA_GuideDataDeliveryService *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_GuideDataDeliveryService* This);
+        IBDA_GuideDataDeliveryService *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_GuideDataDeliveryService* This);
+        IBDA_GuideDataDeliveryService *This);
 
     /*** IBDA_GuideDataDeliveryService methods ***/
     HRESULT (STDMETHODCALLTYPE *GetGuideDataType)(
-        IBDA_GuideDataDeliveryService* This,
+        IBDA_GuideDataDeliveryService *This,
         GUID *pguidDataType);
 
     HRESULT (STDMETHODCALLTYPE *GetGuideData)(
-        IBDA_GuideDataDeliveryService* This,
+        IBDA_GuideDataDeliveryService *This,
         ULONG *pulcbBufferLen,
         BYTE *pbBuffer,
         ULONG *pulGuideDataPercentageProgress);
 
     HRESULT (STDMETHODCALLTYPE *RequestGuideDataUpdate)(
-        IBDA_GuideDataDeliveryService* This);
+        IBDA_GuideDataDeliveryService *This);
 
     HRESULT (STDMETHODCALLTYPE *GetTuneXmlFromServiceIdx)(
-        IBDA_GuideDataDeliveryService* This,
+        IBDA_GuideDataDeliveryService *This,
         ULONG64 ul64ServiceIdx,
         BSTR *pbstrTuneXml);
 
     HRESULT (STDMETHODCALLTYPE *GetServices)(
-        IBDA_GuideDataDeliveryService* This,
+        IBDA_GuideDataDeliveryService *This,
         ULONG *pulcbBufferLen,
         BYTE *pbBuffer);
 
     HRESULT (STDMETHODCALLTYPE *GetServiceInfoFromTuneXml)(
-        IBDA_GuideDataDeliveryService* This,
+        IBDA_GuideDataDeliveryService *This,
         BSTR bstrTuneXml,
         BSTR *pbstrServiceDescription);
 
     END_INTERFACE
 } IBDA_GuideDataDeliveryServiceVtbl;
+
 interface IBDA_GuideDataDeliveryService {
     CONST_VTBL IBDA_GuideDataDeliveryServiceVtbl* lpVtbl;
 };
@@ -6858,58 +5531,6 @@ static FORCEINLINE HRESULT IBDA_GuideDataDeliveryService_GetServiceInfoFromTuneX
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_GuideDataDeliveryService_GetGuideDataType_Proxy(
-    IBDA_GuideDataDeliveryService* This,
-    GUID *pguidDataType);
-void __RPC_STUB IBDA_GuideDataDeliveryService_GetGuideDataType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_GuideDataDeliveryService_GetGuideData_Proxy(
-    IBDA_GuideDataDeliveryService* This,
-    ULONG *pulcbBufferLen,
-    BYTE *pbBuffer,
-    ULONG *pulGuideDataPercentageProgress);
-void __RPC_STUB IBDA_GuideDataDeliveryService_GetGuideData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_GuideDataDeliveryService_RequestGuideDataUpdate_Proxy(
-    IBDA_GuideDataDeliveryService* This);
-void __RPC_STUB IBDA_GuideDataDeliveryService_RequestGuideDataUpdate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_GuideDataDeliveryService_GetTuneXmlFromServiceIdx_Proxy(
-    IBDA_GuideDataDeliveryService* This,
-    ULONG64 ul64ServiceIdx,
-    BSTR *pbstrTuneXml);
-void __RPC_STUB IBDA_GuideDataDeliveryService_GetTuneXmlFromServiceIdx_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_GuideDataDeliveryService_GetServices_Proxy(
-    IBDA_GuideDataDeliveryService* This,
-    ULONG *pulcbBufferLen,
-    BYTE *pbBuffer);
-void __RPC_STUB IBDA_GuideDataDeliveryService_GetServices_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_GuideDataDeliveryService_GetServiceInfoFromTuneXml_Proxy(
-    IBDA_GuideDataDeliveryService* This,
-    BSTR bstrTuneXml,
-    BSTR *pbstrServiceDescription);
-void __RPC_STUB IBDA_GuideDataDeliveryService_GetServiceInfoFromTuneXml_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_GuideDataDeliveryService_INTERFACE_DEFINED__ */
 
@@ -6941,28 +5562,29 @@ typedef struct IBDA_DRMServiceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_DRMService* This,
+        IBDA_DRMService *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_DRMService* This);
+        IBDA_DRMService *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_DRMService* This);
+        IBDA_DRMService *This);
 
     /*** IBDA_DRMService methods ***/
     HRESULT (STDMETHODCALLTYPE *SetDRM)(
-        IBDA_DRMService* This,
+        IBDA_DRMService *This,
         GUID *puuidNewDrm);
 
     HRESULT (STDMETHODCALLTYPE *GetDRMStatus)(
-        IBDA_DRMService* This,
+        IBDA_DRMService *This,
         BSTR *pbstrDrmUuidList,
         GUID *DrmUuid);
 
     END_INTERFACE
 } IBDA_DRMServiceVtbl;
+
 interface IBDA_DRMService {
     CONST_VTBL IBDA_DRMServiceVtbl* lpVtbl;
 };
@@ -6999,23 +5621,6 @@ static FORCEINLINE HRESULT IBDA_DRMService_GetDRMStatus(IBDA_DRMService* This,BS
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_DRMService_SetDRM_Proxy(
-    IBDA_DRMService* This,
-    GUID *puuidNewDrm);
-void __RPC_STUB IBDA_DRMService_SetDRM_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DRMService_GetDRMStatus_Proxy(
-    IBDA_DRMService* This,
-    BSTR *pbstrDrmUuidList,
-    GUID *DrmUuid);
-void __RPC_STUB IBDA_DRMService_GetDRMStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_DRMService_INTERFACE_DEFINED__ */
 
@@ -7086,19 +5691,19 @@ typedef struct IBDA_WMDRMSessionVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_WMDRMSession* This,
+        IBDA_WMDRMSession *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_WMDRMSession* This);
+        IBDA_WMDRMSession *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_WMDRMSession* This);
+        IBDA_WMDRMSession *This);
 
     /*** IBDA_WMDRMSession methods ***/
     HRESULT (STDMETHODCALLTYPE *GetStatus)(
-        IBDA_WMDRMSession* This,
+        IBDA_WMDRMSession *This,
         ULONG *MaxCaptureToken,
         ULONG *MaxStreamingPid,
         ULONG *MaxLicense,
@@ -7110,34 +5715,34 @@ typedef struct IBDA_WMDRMSessionVtbl {
         ULONG *ulState);
 
     HRESULT (STDMETHODCALLTYPE *SetRevInfo)(
-        IBDA_WMDRMSession* This,
+        IBDA_WMDRMSession *This,
         ULONG ulRevInfoLen,
         BYTE *pbRevInfo);
 
     HRESULT (STDMETHODCALLTYPE *SetCrl)(
-        IBDA_WMDRMSession* This,
+        IBDA_WMDRMSession *This,
         ULONG ulCrlLen,
         BYTE *pbCrlLen);
 
     HRESULT (STDMETHODCALLTYPE *TransactMessage)(
-        IBDA_WMDRMSession* This,
+        IBDA_WMDRMSession *This,
         ULONG ulcbRequest,
         BYTE *pbRequest,
         ULONG *pulcbResponse,
         BYTE *pbResponse);
 
     HRESULT (STDMETHODCALLTYPE *GetLicense)(
-        IBDA_WMDRMSession* This,
+        IBDA_WMDRMSession *This,
         GUID *uuidKey,
         ULONG *pulPackageLen,
         BYTE *pbPackage);
 
     HRESULT (STDMETHODCALLTYPE *ReissueLicense)(
-        IBDA_WMDRMSession* This,
+        IBDA_WMDRMSession *This,
         GUID *uuidKey);
 
     HRESULT (STDMETHODCALLTYPE *RenewLicense)(
-        IBDA_WMDRMSession* This,
+        IBDA_WMDRMSession *This,
         ULONG ulInXmrLicenseLen,
         BYTE *pbInXmrLicense,
         ULONG ulEntitlementTokenLen,
@@ -7147,12 +5752,13 @@ typedef struct IBDA_WMDRMSessionVtbl {
         BYTE *pbOutXmrLicense);
 
     HRESULT (STDMETHODCALLTYPE *GetKeyInfo)(
-        IBDA_WMDRMSession* This,
+        IBDA_WMDRMSession *This,
         ULONG *pulKeyInfoLen,
         BYTE *pbKeyInfo);
 
     END_INTERFACE
 } IBDA_WMDRMSessionVtbl;
+
 interface IBDA_WMDRMSession {
     CONST_VTBL IBDA_WMDRMSessionVtbl* lpVtbl;
 };
@@ -7213,92 +5819,6 @@ static FORCEINLINE HRESULT IBDA_WMDRMSession_GetKeyInfo(IBDA_WMDRMSession* This,
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMSession_GetStatus_Proxy(
-    IBDA_WMDRMSession* This,
-    ULONG *MaxCaptureToken,
-    ULONG *MaxStreamingPid,
-    ULONG *MaxLicense,
-    ULONG *MinSecurityLevel,
-    ULONG *RevInfoSequenceNumber,
-    ULONGLONG *RevInfoIssuedTime,
-    ULONG *RevInfoTTL,
-    ULONG *RevListVersion,
-    ULONG *ulState);
-void __RPC_STUB IBDA_WMDRMSession_GetStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMSession_SetRevInfo_Proxy(
-    IBDA_WMDRMSession* This,
-    ULONG ulRevInfoLen,
-    BYTE *pbRevInfo);
-void __RPC_STUB IBDA_WMDRMSession_SetRevInfo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMSession_SetCrl_Proxy(
-    IBDA_WMDRMSession* This,
-    ULONG ulCrlLen,
-    BYTE *pbCrlLen);
-void __RPC_STUB IBDA_WMDRMSession_SetCrl_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMSession_TransactMessage_Proxy(
-    IBDA_WMDRMSession* This,
-    ULONG ulcbRequest,
-    BYTE *pbRequest,
-    ULONG *pulcbResponse,
-    BYTE *pbResponse);
-void __RPC_STUB IBDA_WMDRMSession_TransactMessage_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMSession_GetLicense_Proxy(
-    IBDA_WMDRMSession* This,
-    GUID *uuidKey,
-    ULONG *pulPackageLen,
-    BYTE *pbPackage);
-void __RPC_STUB IBDA_WMDRMSession_GetLicense_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMSession_ReissueLicense_Proxy(
-    IBDA_WMDRMSession* This,
-    GUID *uuidKey);
-void __RPC_STUB IBDA_WMDRMSession_ReissueLicense_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMSession_RenewLicense_Proxy(
-    IBDA_WMDRMSession* This,
-    ULONG ulInXmrLicenseLen,
-    BYTE *pbInXmrLicense,
-    ULONG ulEntitlementTokenLen,
-    BYTE *pbEntitlementToken,
-    ULONG *pulDescrambleStatus,
-    ULONG *pulOutXmrLicenseLen,
-    BYTE *pbOutXmrLicense);
-void __RPC_STUB IBDA_WMDRMSession_RenewLicense_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMSession_GetKeyInfo_Proxy(
-    IBDA_WMDRMSession* This,
-    ULONG *pulKeyInfoLen,
-    BYTE *pbKeyInfo);
-void __RPC_STUB IBDA_WMDRMSession_GetKeyInfo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_WMDRMSession_INTERFACE_DEFINED__ */
 
@@ -7351,19 +5871,19 @@ typedef struct IBDA_WMDRMTunerVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_WMDRMTuner* This,
+        IBDA_WMDRMTuner *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_WMDRMTuner* This);
+        IBDA_WMDRMTuner *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_WMDRMTuner* This);
+        IBDA_WMDRMTuner *This);
 
     /*** IBDA_WMDRMTuner methods ***/
     HRESULT (STDMETHODCALLTYPE *PurchaseEntitlement)(
-        IBDA_WMDRMTuner* This,
+        IBDA_WMDRMTuner *This,
         ULONG ulDialogRequest,
         BSTR bstrLanguage,
         ULONG ulPurchaseTokenLen,
@@ -7373,31 +5893,32 @@ typedef struct IBDA_WMDRMTunerVtbl {
         BYTE *pbCaptureToken);
 
     HRESULT (STDMETHODCALLTYPE *CancelCaptureToken)(
-        IBDA_WMDRMTuner* This,
+        IBDA_WMDRMTuner *This,
         ULONG ulCaptureTokenLen,
         BYTE *pbCaptureToken);
 
     HRESULT (STDMETHODCALLTYPE *SetPidProtection)(
-        IBDA_WMDRMTuner* This,
+        IBDA_WMDRMTuner *This,
         ULONG ulPid,
         GUID *uuidKey);
 
     HRESULT (STDMETHODCALLTYPE *GetPidProtection)(
-        IBDA_WMDRMTuner* This,
+        IBDA_WMDRMTuner *This,
         ULONG pulPid,
         GUID *uuidKey);
 
     HRESULT (STDMETHODCALLTYPE *SetSyncValue)(
-        IBDA_WMDRMTuner* This,
+        IBDA_WMDRMTuner *This,
         ULONG ulSyncValue);
 
     HRESULT (STDMETHODCALLTYPE *GetStartCodeProfile)(
-        IBDA_WMDRMTuner* This,
+        IBDA_WMDRMTuner *This,
         ULONG *pulStartCodeProfileLen,
         BYTE *pbStartCodeProfile);
 
     END_INTERFACE
 } IBDA_WMDRMTunerVtbl;
+
 interface IBDA_WMDRMTuner {
     CONST_VTBL IBDA_WMDRMTunerVtbl* lpVtbl;
 };
@@ -7450,64 +5971,6 @@ static FORCEINLINE HRESULT IBDA_WMDRMTuner_GetStartCodeProfile(IBDA_WMDRMTuner*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMTuner_PurchaseEntitlement_Proxy(
-    IBDA_WMDRMTuner* This,
-    ULONG ulDialogRequest,
-    BSTR bstrLanguage,
-    ULONG ulPurchaseTokenLen,
-    BYTE *pbPurchaseToken,
-    ULONG *pulDescrambleStatus,
-    ULONG *pulCaptureTokenLen,
-    BYTE *pbCaptureToken);
-void __RPC_STUB IBDA_WMDRMTuner_PurchaseEntitlement_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMTuner_CancelCaptureToken_Proxy(
-    IBDA_WMDRMTuner* This,
-    ULONG ulCaptureTokenLen,
-    BYTE *pbCaptureToken);
-void __RPC_STUB IBDA_WMDRMTuner_CancelCaptureToken_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMTuner_SetPidProtection_Proxy(
-    IBDA_WMDRMTuner* This,
-    ULONG ulPid,
-    GUID *uuidKey);
-void __RPC_STUB IBDA_WMDRMTuner_SetPidProtection_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMTuner_GetPidProtection_Proxy(
-    IBDA_WMDRMTuner* This,
-    ULONG pulPid,
-    GUID *uuidKey);
-void __RPC_STUB IBDA_WMDRMTuner_GetPidProtection_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMTuner_SetSyncValue_Proxy(
-    IBDA_WMDRMTuner* This,
-    ULONG ulSyncValue);
-void __RPC_STUB IBDA_WMDRMTuner_SetSyncValue_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_WMDRMTuner_GetStartCodeProfile_Proxy(
-    IBDA_WMDRMTuner* This,
-    ULONG *pulStartCodeProfileLen,
-    BYTE *pbStartCodeProfile);
-void __RPC_STUB IBDA_WMDRMTuner_GetStartCodeProfile_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_WMDRMTuner_INTERFACE_DEFINED__ */
 
@@ -7542,32 +6005,33 @@ typedef struct IBDA_DRIDRMServiceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_DRIDRMService* This,
+        IBDA_DRIDRMService *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_DRIDRMService* This);
+        IBDA_DRIDRMService *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_DRIDRMService* This);
+        IBDA_DRIDRMService *This);
 
     /*** IBDA_DRIDRMService methods ***/
     HRESULT (STDMETHODCALLTYPE *SetDRM)(
-        IBDA_DRIDRMService* This,
+        IBDA_DRIDRMService *This,
         BSTR bstrNewDrm);
 
     HRESULT (STDMETHODCALLTYPE *GetDRMStatus)(
-        IBDA_DRIDRMService* This,
+        IBDA_DRIDRMService *This,
         BSTR *pbstrDrmUuidList,
         GUID *DrmUuid);
 
     HRESULT (STDMETHODCALLTYPE *GetPairingStatus)(
-        IBDA_DRIDRMService* This,
+        IBDA_DRIDRMService *This,
         BDA_DrmPairingError *penumPairingStatus);
 
     END_INTERFACE
 } IBDA_DRIDRMServiceVtbl;
+
 interface IBDA_DRIDRMService {
     CONST_VTBL IBDA_DRIDRMServiceVtbl* lpVtbl;
 };
@@ -7608,31 +6072,6 @@ static FORCEINLINE HRESULT IBDA_DRIDRMService_GetPairingStatus(IBDA_DRIDRMServic
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_DRIDRMService_SetDRM_Proxy(
-    IBDA_DRIDRMService* This,
-    BSTR bstrNewDrm);
-void __RPC_STUB IBDA_DRIDRMService_SetDRM_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DRIDRMService_GetDRMStatus_Proxy(
-    IBDA_DRIDRMService* This,
-    BSTR *pbstrDrmUuidList,
-    GUID *DrmUuid);
-void __RPC_STUB IBDA_DRIDRMService_GetDRMStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DRIDRMService_GetPairingStatus_Proxy(
-    IBDA_DRIDRMService* This,
-    BDA_DrmPairingError *penumPairingStatus);
-void __RPC_STUB IBDA_DRIDRMService_GetPairingStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_DRIDRMService_INTERFACE_DEFINED__ */
 
@@ -7688,56 +6127,57 @@ typedef struct IBDA_DRIWMDRMSessionVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_DRIWMDRMSession* This,
+        IBDA_DRIWMDRMSession *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_DRIWMDRMSession* This);
+        IBDA_DRIWMDRMSession *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_DRIWMDRMSession* This);
+        IBDA_DRIWMDRMSession *This);
 
     /*** IBDA_DRIWMDRMSession methods ***/
     HRESULT (STDMETHODCALLTYPE *AcknowledgeLicense)(
-        IBDA_DRIWMDRMSession* This,
+        IBDA_DRIWMDRMSession *This,
         HRESULT hrLicenseAck);
 
     HRESULT (STDMETHODCALLTYPE *ProcessLicenseChallenge)(
-        IBDA_DRIWMDRMSession* This,
+        IBDA_DRIWMDRMSession *This,
         DWORD dwcbLicenseMessage,
         BYTE *pbLicenseMessage,
         DWORD *pdwcbLicenseResponse,
         BYTE **ppbLicenseResponse);
 
     HRESULT (STDMETHODCALLTYPE *ProcessRegistrationChallenge)(
-        IBDA_DRIWMDRMSession* This,
+        IBDA_DRIWMDRMSession *This,
         DWORD dwcbRegistrationMessage,
         BYTE *pbRegistrationMessage,
         DWORD *pdwcbRegistrationResponse,
         BYTE **ppbRegistrationResponse);
 
     HRESULT (STDMETHODCALLTYPE *SetRevInfo)(
-        IBDA_DRIWMDRMSession* This,
+        IBDA_DRIWMDRMSession *This,
         DWORD dwRevInfoLen,
         BYTE *pbRevInfo,
         DWORD *pdwResponse);
 
     HRESULT (STDMETHODCALLTYPE *SetCrl)(
-        IBDA_DRIWMDRMSession* This,
+        IBDA_DRIWMDRMSession *This,
         DWORD dwCrlLen,
         BYTE *pbCrlLen,
         DWORD *pdwResponse);
 
     HRESULT (STDMETHODCALLTYPE *GetHMSAssociationData)(
-        IBDA_DRIWMDRMSession* This);
+        IBDA_DRIWMDRMSession *This);
 
     HRESULT (STDMETHODCALLTYPE *GetLastCardeaError)(
-        IBDA_DRIWMDRMSession* This,
+        IBDA_DRIWMDRMSession *This,
         DWORD *pdwError);
 
     END_INTERFACE
 } IBDA_DRIWMDRMSessionVtbl;
+
 interface IBDA_DRIWMDRMSession {
     CONST_VTBL IBDA_DRIWMDRMSessionVtbl* lpVtbl;
 };
@@ -7794,71 +6234,6 @@ static FORCEINLINE HRESULT IBDA_DRIWMDRMSession_GetLastCardeaError(IBDA_DRIWMDRM
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_DRIWMDRMSession_AcknowledgeLicense_Proxy(
-    IBDA_DRIWMDRMSession* This,
-    HRESULT hrLicenseAck);
-void __RPC_STUB IBDA_DRIWMDRMSession_AcknowledgeLicense_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DRIWMDRMSession_ProcessLicenseChallenge_Proxy(
-    IBDA_DRIWMDRMSession* This,
-    DWORD dwcbLicenseMessage,
-    BYTE *pbLicenseMessage,
-    DWORD *pdwcbLicenseResponse,
-    BYTE **ppbLicenseResponse);
-void __RPC_STUB IBDA_DRIWMDRMSession_ProcessLicenseChallenge_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DRIWMDRMSession_ProcessRegistrationChallenge_Proxy(
-    IBDA_DRIWMDRMSession* This,
-    DWORD dwcbRegistrationMessage,
-    BYTE *pbRegistrationMessage,
-    DWORD *pdwcbRegistrationResponse,
-    BYTE **ppbRegistrationResponse);
-void __RPC_STUB IBDA_DRIWMDRMSession_ProcessRegistrationChallenge_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DRIWMDRMSession_SetRevInfo_Proxy(
-    IBDA_DRIWMDRMSession* This,
-    DWORD dwRevInfoLen,
-    BYTE *pbRevInfo,
-    DWORD *pdwResponse);
-void __RPC_STUB IBDA_DRIWMDRMSession_SetRevInfo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DRIWMDRMSession_SetCrl_Proxy(
-    IBDA_DRIWMDRMSession* This,
-    DWORD dwCrlLen,
-    BYTE *pbCrlLen,
-    DWORD *pdwResponse);
-void __RPC_STUB IBDA_DRIWMDRMSession_SetCrl_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DRIWMDRMSession_GetHMSAssociationData_Proxy(
-    IBDA_DRIWMDRMSession* This);
-void __RPC_STUB IBDA_DRIWMDRMSession_GetHMSAssociationData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_DRIWMDRMSession_GetLastCardeaError_Proxy(
-    IBDA_DRIWMDRMSession* This,
-    DWORD *pdwError);
-void __RPC_STUB IBDA_DRIWMDRMSession_GetLastCardeaError_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_DRIWMDRMSession_INTERFACE_DEFINED__ */
 
@@ -7891,29 +6266,30 @@ typedef struct IBDA_MUXVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_MUX* This,
+        IBDA_MUX *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_MUX* This);
+        IBDA_MUX *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_MUX* This);
+        IBDA_MUX *This);
 
     /*** IBDA_MUX methods ***/
     HRESULT (STDMETHODCALLTYPE *SetPidList)(
-        IBDA_MUX* This,
+        IBDA_MUX *This,
         ULONG ulPidListCount,
         BDA_MUX_PIDLISTITEM *pbPidListBuffer);
 
     HRESULT (STDMETHODCALLTYPE *GetPidList)(
-        IBDA_MUX* This,
+        IBDA_MUX *This,
         ULONG *pulPidListCount,
         BDA_MUX_PIDLISTITEM *pbPidListBuffer);
 
     END_INTERFACE
 } IBDA_MUXVtbl;
+
 interface IBDA_MUX {
     CONST_VTBL IBDA_MUXVtbl* lpVtbl;
 };
@@ -7950,24 +6326,6 @@ static FORCEINLINE HRESULT IBDA_MUX_GetPidList(IBDA_MUX* This,ULONG *pulPidListC
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_MUX_SetPidList_Proxy(
-    IBDA_MUX* This,
-    ULONG ulPidListCount,
-    BDA_MUX_PIDLISTITEM *pbPidListBuffer);
-void __RPC_STUB IBDA_MUX_SetPidList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_MUX_GetPidList_Proxy(
-    IBDA_MUX* This,
-    ULONG *pulPidListCount,
-    BDA_MUX_PIDLISTITEM *pbPidListBuffer);
-void __RPC_STUB IBDA_MUX_GetPidList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_MUX_INTERFACE_DEFINED__ */
 
@@ -7999,28 +6357,29 @@ typedef struct IBDA_TransportStreamSelectorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_TransportStreamSelector* This,
+        IBDA_TransportStreamSelector *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_TransportStreamSelector* This);
+        IBDA_TransportStreamSelector *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_TransportStreamSelector* This);
+        IBDA_TransportStreamSelector *This);
 
     /*** IBDA_TransportStreamSelector methods ***/
     HRESULT (STDMETHODCALLTYPE *SetTSID)(
-        IBDA_TransportStreamSelector* This,
+        IBDA_TransportStreamSelector *This,
         USHORT usTSID);
 
     HRESULT (STDMETHODCALLTYPE *GetTSInformation)(
-        IBDA_TransportStreamSelector* This,
+        IBDA_TransportStreamSelector *This,
         ULONG *pulTSInformationBufferLen,
         BYTE *pbTSInformationBuffer);
 
     END_INTERFACE
 } IBDA_TransportStreamSelectorVtbl;
+
 interface IBDA_TransportStreamSelector {
     CONST_VTBL IBDA_TransportStreamSelectorVtbl* lpVtbl;
 };
@@ -8057,23 +6416,6 @@ static FORCEINLINE HRESULT IBDA_TransportStreamSelector_GetTSInformation(IBDA_Tr
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_TransportStreamSelector_SetTSID_Proxy(
-    IBDA_TransportStreamSelector* This,
-    USHORT usTSID);
-void __RPC_STUB IBDA_TransportStreamSelector_SetTSID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_TransportStreamSelector_GetTSInformation_Proxy(
-    IBDA_TransportStreamSelector* This,
-    ULONG *pulTSInformationBufferLen,
-    BYTE *pbTSInformationBuffer);
-void __RPC_STUB IBDA_TransportStreamSelector_GetTSInformation_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_TransportStreamSelector_INTERFACE_DEFINED__ */
 
@@ -8107,30 +6449,31 @@ typedef struct IBDA_UserActivityServiceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDA_UserActivityService* This,
+        IBDA_UserActivityService *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDA_UserActivityService* This);
+        IBDA_UserActivityService *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDA_UserActivityService* This);
+        IBDA_UserActivityService *This);
 
     /*** IBDA_UserActivityService methods ***/
     HRESULT (STDMETHODCALLTYPE *SetCurrentTunerUseReason)(
-        IBDA_UserActivityService* This,
+        IBDA_UserActivityService *This,
         DWORD dwUseReason);
 
     HRESULT (STDMETHODCALLTYPE *GetUserActivityInterval)(
-        IBDA_UserActivityService* This,
+        IBDA_UserActivityService *This,
         DWORD *pdwActivityInterval);
 
     HRESULT (STDMETHODCALLTYPE *UserActivityDetected)(
-        IBDA_UserActivityService* This);
+        IBDA_UserActivityService *This);
 
     END_INTERFACE
 } IBDA_UserActivityServiceVtbl;
+
 interface IBDA_UserActivityService {
     CONST_VTBL IBDA_UserActivityServiceVtbl* lpVtbl;
 };
@@ -8171,29 +6514,6 @@ static FORCEINLINE HRESULT IBDA_UserActivityService_UserActivityDetected(IBDA_Us
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDA_UserActivityService_SetCurrentTunerUseReason_Proxy(
-    IBDA_UserActivityService* This,
-    DWORD dwUseReason);
-void __RPC_STUB IBDA_UserActivityService_SetCurrentTunerUseReason_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_UserActivityService_GetUserActivityInterval_Proxy(
-    IBDA_UserActivityService* This,
-    DWORD *pdwActivityInterval);
-void __RPC_STUB IBDA_UserActivityService_GetUserActivityInterval_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDA_UserActivityService_UserActivityDetected_Proxy(
-    IBDA_UserActivityService* This);
-void __RPC_STUB IBDA_UserActivityService_UserActivityDetected_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDA_UserActivityService_INTERFACE_DEFINED__ */
 
lib/libc/include/any-windows-any/bdatypes.h
@@ -15,11 +15,7 @@
 
 typedef LONG PBDARESULT;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_EVENT_ID {
+typedef enum BDA_EVENT_ID {
   BDA_EVENT_SIGNAL_LOSS = 0,
   BDA_EVENT_SIGNAL_LOCK,
   BDA_EVENT_DATA_START,
@@ -42,70 +38,52 @@ typedef
   BDA_EVENT_SMART_CARD_REMOVED
 } BDA_EVENT_ID, *PBDA_EVENT_ID;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_MULTICAST_MODE {
+typedef enum BDA_MULTICAST_MODE {
   BDA_PROMISCUOUS_MULTICAST = 0,
   BDA_FILTERED_MULTICAST,
   BDA_NO_MULTICAST
 } BDA_MULTICAST_MODE, *PBDA_MULTICAST_MODE;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_SIGNAL_STATE {
+typedef enum BDA_SIGNAL_STATE {
   BDA_SIGNAL_UNAVAILABLE = 0,
   BDA_SIGNAL_INACTIVE,
   BDA_SIGNAL_ACTIVE
 } BDA_SIGNAL_STATE, *PBDA_SIGNAL_STATE;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_CHANGE_STATE {
+typedef enum BDA_CHANGE_STATE {
   BDA_CHANGES_COMPLETE = 0,
   BDA_CHANGES_PENDING
 } BDA_CHANGE_STATE, *PBDA_CHANGE_STATE;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum MEDIA_SAMPLE_CONTENT
+#else
+typedef enum MEDIA_SAMPLE_CONTENT
 #endif
-  enum MEDIA_SAMPLE_CONTENT {
+{
   MEDIA_TRANSPORT_PACKET,
   MEDIA_ELEMENTARY_STREAM,
   MEDIA_MPEG2_PSI,
   MEDIA_TRANSPORT_PAYLOAD
 } MEDIA_SAMPLE_CONTENT;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum ISDBCAS_REQUEST_ID {
+typedef enum ISDBCAS_REQUEST_ID {
   ISDBCAS_REQUEST_ID_EMG = 0x38,
   ISDBCAS_REQUEST_ID_EMD = 0x3a,
 } ISDBCAS_REQUEST_ID;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum MUX_PID_TYPE {
+typedef enum MUX_PID_TYPE {
   PID_OTHER = -1,
   PID_ELEMENTARY_STREAM,
   PID_MPEG2_SECTION_PSI_SI
 } MUX_PID_TYPE;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum DVBSystemType
+#else
+typedef enum DVBSystemType
 #endif
-  enum DVBSystemType {
+{
   DVB_Cable,
   DVB_Terrestrial,
   DVB_Satellite,
@@ -113,19 +91,16 @@ typedef
   ISDB_Satellite
 } DVBSystemType;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_Channel {
+typedef enum BDA_Channel {
   BDA_UNDEFINED_CHANNEL = -1
 } BDA_Channel;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum ComponentCategory
+#else
+typedef enum ComponentCategory
 #endif
-  enum ComponentCategory {
+{
   CategoryNotSet = -1,
   CategoryOther = 0,
   CategoryVideo,
@@ -138,21 +113,23 @@ typedef
   CATEGORY_COUNT
 } ComponentCategory;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum ComponentStatus
+#else
+typedef enum ComponentStatus
 #endif
-  enum ComponentStatus {
+{
   StatusActive,
   StatusInactive,
   StatusUnavailable
 } ComponentStatus;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum MPEG2StreamType
+#else
+typedef enum MPEG2StreamType
 #endif
-  enum MPEG2StreamType {
+{
   BDA_UNITIALIZED_MPEG2STREAMTYPE = -1,
   Reserved1 = 0x00,
   ISO_IEC_11172_2_VIDEO = 0x01,
@@ -189,19 +166,16 @@ typedef
   DOLBY_DIGITAL_PLUS_AUDIO_ATSC = 0x87
 } MPEG2StreamType;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum ATSCComponentTypeFlags {
+typedef enum ATSCComponentTypeFlags {
   ATSCCT_AC3 = 0x1
 } ATSCComponentTypeFlags;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum BinaryConvolutionCodeRate
+#else
+typedef enum BinaryConvolutionCodeRate
 #endif
-  enum BinaryConvolutionCodeRate {
+{
   BDA_BCC_RATE_NOT_SET = -1,
   BDA_BCC_RATE_NOT_DEFINED = 0,
   BDA_BCC_RATE_1_2 = 1,
@@ -221,11 +195,12 @@ typedef
   BDA_BCC_RATE_MAX
 } BinaryConvolutionCodeRate;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum FECMethod
+#else
+typedef enum FECMethod
 #endif
-  enum FECMethod {
+{
   BDA_FEC_METHOD_NOT_SET = -1,
   BDA_FEC_METHOD_NOT_DEFINED = 0,
   BDA_FEC_VITERBI = 1,
@@ -236,11 +211,12 @@ typedef
   BDA_FEC_MAX
 } FECMethod;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum ModulationType
+#else
+typedef enum ModulationType
 #endif
-  enum ModulationType {
+{
   BDA_MOD_NOT_SET = -1,
   BDA_MOD_NOT_DEFINED = 0,
   BDA_MOD_16QAM = 1,
@@ -281,11 +257,12 @@ typedef
   BDA_MOD_MAX
 } ModulationType;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum tagScanModulationTypes
+#else
+typedef enum tagScanModulationTypes
 #endif
-  enum tagScanModulationTypes {
+{
   BDA_SCAN_MOD_16QAM = 0x00000001,
   BDA_SCAN_MOD_32QAM = 0x00000002,
   BDA_SCAN_MOD_64QAM = 0x00000004,
@@ -325,11 +302,12 @@ typedef
   BDA_SCAN_MOD_32APSK = 0x20000000,
 } ScanModulationTypes;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum SpectralInversion
+#else
+typedef enum SpectralInversion
 #endif
-  enum SpectralInversion {
+{
   BDA_SPECTRAL_INVERSION_NOT_SET = -1,
   BDA_SPECTRAL_INVERSION_NOT_DEFINED = 0,
   BDA_SPECTRAL_INVERSION_AUTOMATIC = 1,
@@ -338,11 +316,12 @@ typedef
   BDA_SPECTRAL_INVERSION_MAX
 } SpectralInversion;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum Polarisation
+#else
+typedef enum Polarisation
 #endif
-  enum Polarisation {
+{
   BDA_POLARISATION_NOT_SET = -1,
   BDA_POLARISATION_NOT_DEFINED = 0,
   BDA_POLARISATION_LINEAR_H = 1,
@@ -352,11 +331,12 @@ typedef
   BDA_POLARISATION_MAX
 } Polarisation;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum LNB_Source
+#else
+typedef enum LNB_Source
 #endif
-  enum LNB_Source {
+{
   BDA_LNB_SOURCE_NOT_SET = -1,
   BDA_LNB_SOURCE_NOT_DEFINED = 0,
   BDA_LNB_SOURCE_A = 1,
@@ -366,11 +346,12 @@ typedef
   BDA_LNB_SOURCE_MAX
 } LNB_Source;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum GuardInterval
+#else
+typedef enum GuardInterval
 #endif
-  enum GuardInterval {
+{
   BDA_GUARD_NOT_SET = -1,
   BDA_GUARD_NOT_DEFINED = 0,
   BDA_GUARD_1_32 = 1,
@@ -383,11 +364,12 @@ typedef
   BDA_GUARD_MAX
 } GuardInterval;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum HierarchyAlpha
+#else
+typedef enum HierarchyAlpha
 #endif
-  enum HierarchyAlpha {
+{
   BDA_HALPHA_NOT_SET = -1,
   BDA_HALPHA_NOT_DEFINED = 0,
   BDA_HALPHA_1 = 1,
@@ -396,11 +378,12 @@ typedef
   BDA_HALPHA_MAX
 } HierarchyAlpha;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum TransmissionMode
+#else
+typedef enum TransmissionMode
 #endif
-  enum TransmissionMode {
+{
   BDA_XMIT_MODE_NOT_SET = -1,
   BDA_XMIT_MODE_NOT_DEFINED = 0,
   BDA_XMIT_MODE_2K = 1,
@@ -414,11 +397,12 @@ typedef
   BDA_XMIT_MODE_MAX
 } TransmissionMode;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum RollOff
+#else
+typedef enum RollOff
 #endif
-  enum RollOff {
+{
   BDA_ROLL_OFF_NOT_SET = -1,
   BDA_ROLL_OFF_NOT_DEFINED = 0,
   BDA_ROLL_OFF_20 = 1,
@@ -427,11 +411,12 @@ typedef
   BDA_ROLL_OFF_MAX
 } RollOff;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum Pilot
+#else
+typedef enum Pilot
 #endif
-  enum Pilot {
+{
   BDA_PILOT_NOT_SET = -1,
   BDA_PILOT_NOT_DEFINED = 0,
   BDA_PILOT_OFF = 1,
@@ -439,58 +424,34 @@ typedef
   BDA_PILOT_MAX
 } Pilot;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_Frequency {
+typedef enum BDA_Frequency {
   BDA_FREQUENCY_NOT_SET = -1,
   BDA_FREQUENCY_NOT_DEFINED = 0
 } BDA_Frequency;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_Range {
+typedef enum BDA_Range {
   BDA_RANGE_NOT_SET = -1,
   BDA_RANGE_NOT_DEFINED = 0
 } BDA_Range;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_Channel_Bandwidth {
+typedef enum BDA_Channel_Bandwidth {
   BDA_CHAN_BANDWITH_NOT_SET = -1,
   BDA_CHAN_BANDWITH_NOT_DEFINED = 0
 } BDA_Channel_Bandwidth;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_Frequency_Multiplier {
+typedef enum BDA_Frequency_Multiplier {
   BDA_FREQUENCY_MULTIPLIER_NOT_SET = -1,
   BDA_FREQUENCY_MULTIPLIER_NOT_DEFINED = 0
 } BDA_Frequency_Multiplier;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_Comp_Flags {
+typedef enum BDA_Comp_Flags {
   BDACOMP_NOT_DEFINED = 0x00000000,
   BDACOMP_EXCLUDE_TS_FROM_TR = 0x00000001,
   BDACOMP_INCLUDE_LOCATOR_IN_TR = 0x00000002,
   BDACOMP_INCLUDE_COMPONENTS_IN_TR = 0x00000004
 } BDA_Comp_Flags;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum ApplicationTypeType {
+typedef enum ApplicationTypeType {
   SCTE28_ConditionalAccess = 0,
   SCTE28_POD_Host_Binding_Information,
   SCTE28_IPService,
@@ -502,22 +463,24 @@ typedef
   SCTE28_Reserved,
 } ApplicationTypeType;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum BDA_CONDITIONALACCESS_REQUESTTYPE
+#else
+typedef enum BDA_CONDITIONALACCESS_REQUESTTYPE
 #endif
-  enum BDA_CONDITIONALACCESS_REQUESTTYPE {
+{
   CONDITIONALACCESS_ACCESS_UNSPECIFIED = 0,
   CONDITIONALACCESS_ACCESS_NOT_POSSIBLE,
   CONDITIONALACCESS_ACCESS_POSSIBLE,
   CONDITIONALACCESS_ACCESS_POSSIBLE_NO_STREAMING_DISRUPTION
 } BDA_CONDITIONALACCESS_REQUESTTYPE;
 
-typedef
 #ifdef __WIDL__
-  [v1_enum]
+typedef [v1_enum] enum BDA_CONDITIONALACCESS_MMICLOSEREASON
+#else
+typedef enum BDA_CONDITIONALACCESS_MMICLOSEREASON
 #endif
-  enum BDA_CONDITIONALACCESS_MMICLOSEREASON {
+{
   CONDITIONALACCESS_UNSPECIFIED = 0,
   CONDITIONALACCESS_CLOSED_ITSELF,
   CONDITIONALACCESS_TUNER_REQUESTED_CLOSE,
@@ -527,21 +490,13 @@ typedef
   CONDITIONALACCESS_DIALOG_USER_NOT_AVAILABLE
 } BDA_CONDITIONALACCESS_MMICLOSEREASON;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_CONDITIONALACCESS_SESSION_RESULT {
+typedef enum BDA_CONDITIONALACCESS_SESSION_RESULT {
   CONDITIONALACCESS_SUCCESSFULL = 0,
   CONDITIONALACCESS_ENDED_NOCHANGE,
   CONDITIONALACCESS_ABORTED
 } BDA_CONDITIONALACCESS_SESSION_RESULT;
 
-typedef
-#ifdef __WIDL__
-  [v1_enum]
-#endif
-  enum BDA_DISCOVERY_STATE {
+typedef enum BDA_DISCOVERY_STATE {
   BDA_DISCOVERY_UNSPECIFIED = 0,
   BDA_DISCOVERY_REQUIRED,
   BDA_DISCOVERY_COMPLETE
lib/libc/include/any-windows-any/codecapi.h
@@ -6,6 +6,10 @@
 #ifndef _INC_CODECAPI
 #define _INC_CODECAPI
 
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
 #ifdef UUID_GEN
 #  define DEFINE_CODECAPI_GUID(name, guidstr, g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11) \
     OUR_GUID_ENTRY(CODECAPI_##name, g1,g2,g3,g4,g5,g6,g7,g8,g9,g10,g11)
@@ -280,6 +284,8 @@
    eAVEncH264VProfile_UCScalableConstrainedHigh = 259
   };
 
+#define eAVEncH264VProfile_ConstrainedHigh eAVEncH264VProfile_UCConstrainedHigh
+
   enum eAVEncH265VProfile {
    eAVEncH265VProfile_unknown = 0,
    eAVEncH265VProfile_Main_420_8 = 1,
@@ -325,6 +331,8 @@
     eAVEncH264PictureType_B
   };
 
+#define AVENC_H263V_LEVELCOUNT 8
+
   enum eAVEncH263VLevel {
     eAVEncH263VLevel1 = 10,
     eAVEncH263VLevel2 = 20,
@@ -336,6 +344,9 @@
     eAVEncH263VLevel7 = 70
   };
 
+#define AVENC_H264V_LEVELCOUNT 16
+#define AVENC_H264V_MAX_MBBITS 3200
+
   enum eAVEncH264VLevel {
     eAVEncH264VLevel1 = 10,
     eAVEncH264VLevel1_b = 11,
@@ -575,120 +586,943 @@
     eAVEncChromaEncodeMode_444_v2
   };
 
-#define STATIC_CODECAPI_AVDecVideoThumbnailGenerationMode  0x2efd8eee,0x1150,0x4328,0x9c,0xf5,0x66,0xdc,0xe9,0x33,0xfc,0xf4
-DEFINE_CODECAPI_GUID(AVDecVideoThumbnailGenerationMode, "2efd8eee-1150-4328-9cf5-66dce933fcf4", 0x2efd8eee,
-                     0x1150,0x4328,0x9c,0xf5,0x66,0xdc,0xe9,0x33,0xfc,0xf4)
-
-#define STATIC_CODECAPI_AVDecVideoDropPicWithMissingRef  0xf8226383,0x14c2,0x4567,0x97,0x34,0x50,0x04,0xe9,0x6f,0xf8,0x87
-DEFINE_CODECAPI_GUID(AVDecVideoDropPicWithMissingRef, "f8226383-14c2-4567-9734-5004e96ff887",
-                     0xf8226383,0x14c2,0x4567,0x97,0x34,0x50,0x04,0xe9,0x6f,0xf8,0x87)
-
-#define STATIC_CODECAPI_AVDecVideoSoftwareDeinterlaceMode  0x0c08d1ce,0x9ced,0x4540,0xba,0xe3,0xce,0xb3,0x80,0x14,0x11,0x09
-DEFINE_CODECAPI_GUID(AVDecVideoSoftwareDeinterlaceMode, "0c08d1ce-9ced-4540-bae3-ceb380141109",
-                     0x0c08d1ce,0x9ced,0x4540,0xba,0xe3,0xce,0xb3,0x80,0x14,0x11,0x09);
-
-#define STATIC_CODECAPI_AVDecVideoFastDecodeMode  0x6b529f7d,0xd3b1,0x49c6,0xa9,0x99,0x9e,0xc6,0x91,0x1b,0xed,0xbf
-DEFINE_CODECAPI_GUID(AVDecVideoFastDecodeMode, "6b529f7d-d3b1-49c6-a999-9ec6911bedbf",
-                     0x6b529f7d,0xd3b1,0x49c6,0xa9,0x99,0x9e,0xc6,0x91,0x1b,0xed,0xbf);
-
-#define STATIC_CODECAPI_AVLowLatencyMode  0x9c27891a,0xed7a,0x40e1,0x88,0xe8,0xb2,0x27,0x27,0xa0,0x24,0xee
-DEFINE_CODECAPI_GUID(AVLowLatencyMode, "9c27891a-ed7a-40e1-88e8-b22727a024ee",
-                     0x9c27891a,0xed7a,0x40e1,0x88,0xe8,0xb2,0x27,0x27,0xa0,0x24,0xee)
-
-#define STATIC_CODECAPI_AVDecVideoH264ErrorConcealment  0xececace8,0x3436,0x462c,0x92,0x94,0xcd,0x7b,0xac,0xd7,0x58,0xa9
-DEFINE_CODECAPI_GUID(AVDecVideoH264ErrorConcealment, "ececace8-3436-462c-9294-cd7bacd758a9",
-                     0xececace8,0x3436,0x462c,0x92,0x94,0xcd,0x7b,0xac,0xd7,0x58,0xa9)
-
-#define STATIC_CODECAPI_AVDecVideoMPEG2ErrorConcealment  0x9d2bfe18,0x728d,0x48d2,0xb3,0x58,0xbc,0x7e,0x43,0x6c,0x66,0x74
-DEFINE_CODECAPI_GUID(AVDecVideoMPEG2ErrorConcealment, "9d2bfe18-728d-48d2-b358-bc7e436c6674",
-                     0x9d2bfe18,0x728d,0x48d2,0xb3,0x58,0xbc,0x7e,0x43,0x6c,0x66,0x74)
-
-#define STATIC_CODECAPI_AVDecVideoCodecType  0x434528e5,0x21f0,0x46b6,0xb6,0x2c,0x9b,0x1b,0x6b,0x65,0x8c,0xd1
-DEFINE_CODECAPI_GUID(AVDecVideoCodecType, "434528e5-21f0-46b6-b62c-9b1b6b658cd1",
-                     0x434528e5,0x21f0,0x46b6,0xb6,0x2c,0x9b,0x1b,0x6b,0x65,0x8c,0xd1);
-
-#define STATIC_CODECAPI_AVDecVideoDXVAMode  0xf758f09e,0x7337,0x4ae7,0x83,0x87,0x73,0xdc,0x2d,0x54,0xe6,0x7d
-DEFINE_CODECAPI_GUID(AVDecVideoDXVAMode, "f758f09e-7337-4ae7-8387-73dc2d54e67d",
-                     0xf758f09e,0x7337,0x4ae7,0x83,0x87,0x73,0xdc,0x2d,0x54,0xe6,0x7d);
-
-#define STATIC_CODECAPI_AVDecVideoDXVABusEncryption  0x42153c8b,0xfd0b,0x4765,0xa4,0x62,0xdd,0xd9,0xe8,0xbc,0xc3,0x88
-DEFINE_CODECAPI_GUID(AVDecVideoDXVABusEncryption, "42153c8b-fd0b-4765-a462-ddd9e8bcc388",
-                     0x42153c8b,0xfd0b,0x4765,0xa4,0x62,0xdd,0xd9,0xe8,0xbc,0xc3,0x88);
-
-#define STATIC_CODECAPI_AVDecVideoSWPowerLevel  0xfb5d2347,0x4dd8,0x4509,0xae,0xd0,0xdb,0x5f,0xa9,0xaa,0x93,0xf4
-DEFINE_CODECAPI_GUID(AVDecVideoSWPowerLevel,  "fb5d2347-4dd8-4509-aed0-db5fa9aa93f4",
-                     0xfb5d2347,0x4dd8,0x4509,0xae,0xd0,0xdb,0x5f,0xa9,0xaa,0x93,0xf4)
-
-#define STATIC_CODECAPI_AVDecVideoMaxCodedWidth  0x5ae557b8,0x77af,0x41f5,0x9f,0xa6,0x4d,0xb2,0xfe,0x1d,0x4b,0xca
-DEFINE_CODECAPI_GUID(AVDecVideoMaxCodedWidth, "5ae557b8-77af-41f5-9fa6-4db2fe1d4bca",
-                     0x5ae557b8,0x77af,0x41f5,0x9f,0xa6,0x4d,0xb2,0xfe,0x1d,0x4b,0xca)
-
-#define STATIC_CODECAPI_AVDecVideoMaxCodedHeight  0x7262a16a,0xd2dc,0x4e75,0x9b,0xa8,0x65,0xc0,0xc6,0xd3,0x2b,0x13
-DEFINE_CODECAPI_GUID(AVDecVideoMaxCodedHeight, "7262a16a-d2dc-4e75-9ba8-65c0c6d32b13",
-                     0x7262a16a,0xd2dc,0x4e75,0x9b,0xa8,0x65,0xc0,0xc6,0xd3,0x2b,0x13)
-
-#define STATIC_CODECAPI_AVDecNumWorkerThreads  0x9561c3e8,0xea9e,0x4435,0x9b,0x1e,0xa9,0x3e,0x69,0x18,0x94,0xd8
-DEFINE_CODECAPI_GUID(AVDecNumWorkerThreads, "9561c3e8-ea9e-4435-9b1e-a93e691894d8",
-                     0x9561c3e8,0xea9e,0x4435,0x9b,0x1e,0xa9,0x3e,0x69,0x18,0x94,0xd8)
-
-#define STATIC_CODECAPI_AVDecSoftwareDynamicFormatChange  0x862e2f0a,0x507b,0x47ff,0xaf,0x47,0x01,0xe2,0x62,0x42,0x98,0xb7
-DEFINE_CODECAPI_GUID(AVDecSoftwareDynamicFormatChange, "862e2f0a-507b-47ff-af47-01e2624298b7",
-                     0x862e2f0a,0x507b,0x47ff,0xaf,0x47,0x01,0xe2,0x62,0x42,0x98,0xb7)
-
-#define STATIC_CODECAPI_AVDecDisableVideoPostProcessing  0xf8749193,0x667a,0x4f2c,0xa9,0xe8,0x5d,0x4a,0xf9,0x24,0xf0,0x8f
-DEFINE_CODECAPI_GUID(AVDecDisableVideoPostProcessing, "f8749193-667a-4f2c-a9e8-5d4af924f08f",
-                     0xf8749193,0x667a,0x4f2c,0xa9,0xe8,0x5d,0x4a,0xf9,0x24,0xf0,0x8f);
-
-#define STATIC_CODECAPI_AVEncCommonMeanBitRate  0xf7222374,0x2144,0x4815,0xb5,0x50,0xa3,0x7f,0x8e,0x12,0xee,0x52
-DEFINE_CODECAPI_GUID(AVEncCommonMeanBitRate, "f7222374-2144-4815-b550-a37f8e12ee52",
-                     0xf7222374,0x2144,0x4815,0xb5,0x50,0xa3,0x7f,0x8e,0x12,0xee,0x52)
-
-#define STATIC_CODECAPI_AVEncCommonQuality  0xfcbf57a3,0x7ea5,0x4b0c,0x96,0x44,0x69,0xb4,0x0c,0x39,0xc3,0x91
-DEFINE_CODECAPI_GUID(AVEncCommonQuality, "fcbf57a3-7ea5-4b0c-9644-69b40c39c391",
-                     0xfcbf57a3,0x7ea5,0x4b0c,0x96,0x44,0x69,0xb4,0x0c,0x39,0xc3,0x91)
-
-#define STATIC_CODECAPI_AVEncCommonRateControlMode  0x1c0608e9,0x370c,0x4710,0x8a,0x58,0xcb,0x61,0x81,0xc4,0x24,0x23
-DEFINE_CODECAPI_GUID(AVEncCommonRateControlMode, "1c0608e9-370c-4710-8a58-cb6181c42423",
-                     0x1c0608e9,0x370c,0x4710,0x8a,0x58,0xcb,0x61,0x81,0xc4,0x24,0x23)
-
-#define STATIC_CODECAPI_AVEncVideoForceKeyFrame  0x398c1b98,0x8353,0x475a,0x9e,0xf2,0x8f,0x26,0x5d,0x26,0x3,0x45
-DEFINE_CODECAPI_GUID(AVEncVideoForceKeyFrame, "398c1b98-8353-475a-9ef2-8f265d260345",
-                     0x398c1b98,0x8353,0x475a,0x9e,0xf2,0x8f,0x26,0x5d,0x26,0x3,0x45)
-
-#define STATIC_CODECAPI_AVEncMPVDefaultBPictureCount  0x8d390aac,0xdc5c,0x4200,0xb5,0x7f,0x81,0x4d,0x04,0xba,0xba,0xb2
-DEFINE_CODECAPI_GUID(AVEncMPVDefaultBPictureCount, "8d390aac-dc5c-4200-b57f-814d04babab2",
-                     0x8d390aac,0xdc5c,0x4200,0xb5,0x7f,0x81,0x4d,0x04,0xba,0xba,0xb2)
-
-#define STATIC_CODECAPI_AVEncH264CABACEnable  0xee6cad62,0xd305,0x4248,0xa5,0xe,0xe1,0xb2,0x55,0xf7,0xca,0xf8
-DEFINE_CODECAPI_GUID(AVEncH264CABACEnable, "ee6cad62-d305-4248-a50e-e1b255f7caf8",
-                     0xee6cad62,0xd305,0x4248,0xa5,0xe,0xe1,0xb2,0x55,0xf7,0xca,0xf8)
+#define STATIC_CODECAPI_AVEncCommonFormatConstraint 0x57cbb9b8, 0x116f, 0x4951, 0xb4, 0x0c, 0xc2, 0xa0, 0x35, 0xed, 0x8f, 0x17
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatUnSpecified 0xaf46a35a, 0x6024, 0x4525, 0xa4, 0x8a, 0x09, 0x4b, 0x97, 0xf5, 0xb3, 0xc2
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatDVD_V 0xcc9598c4, 0xe7fe, 0x451d, 0xb1, 0xca, 0x76, 0x1b, 0xc8, 0x40, 0xb7, 0xf3
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatDVD_DashVR 0xe55199d6, 0x044c, 0x4dae, 0xa4, 0x88, 0x53, 0x1e, 0xd3, 0x06, 0x23, 0x5b
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatDVD_PlusVR 0xe74c6f2e, 0xec37, 0x478d, 0x9a, 0xf4, 0xa5, 0xe1, 0x35, 0xb6, 0x27, 0x1c
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatVCD 0x95035bf7, 0x9d90, 0x40ff, 0xad, 0x5c, 0x5c, 0xf8, 0xcf, 0x71, 0xca, 0x1d
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatSVCD 0x51d85818, 0x8220, 0x448c, 0x80, 0x66, 0xd6, 0x9b, 0xed, 0x16, 0xc9, 0xad
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatATSC 0x8d7b897c, 0xa019, 0x4670, 0xaa, 0x76, 0x2e, 0xdc, 0xac, 0x7a, 0xc2, 0x96
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatDVB 0x71830d8f, 0x6c33, 0x430d, 0x84, 0x4b, 0xc2, 0x70, 0x5b, 0xaa, 0xe6, 0xdb
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatMP3 0x349733cd, 0xeb08, 0x4dc2, 0x81, 0x97, 0xe4, 0x98, 0x35, 0xef, 0x82, 0x8b
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatHighMAT 0x1eabe760, 0xfb2b, 0x4928, 0x90, 0xd1, 0x78, 0xdb, 0x88, 0xee, 0xe8, 0x89
+#define STATIC_CODECAPI_GUID_AVEncCommonFormatHighMPV 0xa2d25db8, 0xb8f9, 0x42c2, 0x8b, 0xc7, 0x0b, 0x93, 0xcf, 0x60, 0x47, 0x88
+#define STATIC_CODECAPI_AVEncCodecType 0x08af4ac1, 0xf3f2, 0x4c74, 0x9d, 0xcf, 0x37, 0xf2, 0xec, 0x79, 0xf8, 0x26
+#define STATIC_CODECAPI_GUID_AVEncMPEG1Video 0xc8dafefe, 0xda1e, 0x4774, 0xb2, 0x7d, 0x11, 0x83, 0x0c, 0x16, 0xb1, 0xfe
+#define STATIC_CODECAPI_GUID_AVEncMPEG2Video 0x046dc19a, 0x6677, 0x4aaa, 0xa3, 0x1d, 0xc1, 0xab, 0x71, 0x6f, 0x45, 0x60
+#define STATIC_CODECAPI_GUID_AVEncMPEG1Audio 0xd4dd1362, 0xcd4a, 0x4cd6, 0x81, 0x38, 0xb9, 0x4d, 0xb4, 0x54, 0x2b, 0x04
+#define STATIC_CODECAPI_GUID_AVEncMPEG2Audio 0xee4cbb1f, 0x9c3f, 0x4770, 0x92, 0xb5, 0xfc, 0xb7, 0xc2, 0xa8, 0xd3, 0x81
+#define STATIC_CODECAPI_GUID_AVEncWMV 0x4e0fef9b, 0x1d43, 0x41bd, 0xb8, 0xbd, 0x4d, 0x7b, 0xf7, 0x45, 0x7a, 0x2a
+#define STATIC_CODECAPI_GUID_AVEndMPEG4Video 0xdd37b12a, 0x9503, 0x4f8b, 0xb8, 0xd0, 0x32, 0x4a, 0x00, 0xc0, 0xa1, 0xcf
+#define STATIC_CODECAPI_GUID_AVEncH264Video 0x95044eab, 0x31b3, 0x47de, 0x8e, 0x75, 0x38, 0xa4, 0x2b, 0xb0, 0x3e, 0x28
+#define STATIC_CODECAPI_GUID_AVEncDV 0x09b769c7, 0x3329, 0x44fb, 0x89, 0x54, 0xfa, 0x30, 0x93, 0x7d, 0x3d, 0x5a
+#define STATIC_CODECAPI_GUID_AVEncWMAPro 0x1955f90c, 0x33f7, 0x4a68, 0xab, 0x81, 0x53, 0xf5, 0x65, 0x71, 0x25, 0xc4
+#define STATIC_CODECAPI_GUID_AVEncWMALossless 0x55ca7265, 0x23d8, 0x4761, 0x90, 0x31, 0xb7, 0x4f, 0xbe, 0x12, 0xf4, 0xc1
+#define STATIC_CODECAPI_GUID_AVEncWMAVoice 0x13ed18cb, 0x50e8, 0x4276, 0xa2, 0x88, 0xa6, 0xaa, 0x22, 0x83, 0x82, 0xd9
+#define STATIC_CODECAPI_GUID_AVEncDolbyDigitalPro 0xf5be76cc, 0x0ff8, 0x40eb, 0x9c, 0xb1, 0xbb, 0xa9, 0x40, 0x04, 0xd4, 0x4f
+#define STATIC_CODECAPI_GUID_AVEncDolbyDigitalConsumer 0xc1a7bf6c, 0x0059, 0x4bfa, 0x94, 0xef, 0xef, 0x74, 0x7a, 0x76, 0x8d, 0x52
+#define STATIC_CODECAPI_GUID_AVEncDolbyDigitalPlus 0x698d1b80, 0xf7dd, 0x415c, 0x97, 0x1c, 0x42, 0x49, 0x2a, 0x20, 0x56, 0xc6
+#define STATIC_CODECAPI_GUID_AVEncDTSHD 0x2052e630, 0x469d, 0x4bfb, 0x80, 0xca, 0x1d, 0x65, 0x6e, 0x7e, 0x91, 0x8f
+#define STATIC_CODECAPI_GUID_AVEncDTS 0x45fbcaa2, 0x5e6e, 0x4ab0, 0x88, 0x93, 0x59, 0x03, 0xbe, 0xe9, 0x3a, 0xcf
+#define STATIC_CODECAPI_GUID_AVEncMLP 0x05f73e29, 0xf0d1, 0x431e, 0xa4, 0x1c, 0xa4, 0x74, 0x32, 0xec, 0x5a, 0x66
+#define STATIC_CODECAPI_GUID_AVEncPCM 0x844be7f4, 0x26cf, 0x4779, 0xb3, 0x86, 0xcc, 0x05, 0xd1, 0x87, 0x99, 0x0c
+#define STATIC_CODECAPI_GUID_AVEncSDDS 0x1dc1b82f, 0x11c8, 0x4c71, 0xb7, 0xb6, 0xee, 0x3e, 0xb9, 0xbc, 0x2b, 0x94
+#define STATIC_CODECAPI_AVEncCommonRateControlMode 0x1c0608e9, 0x370c, 0x4710, 0x8a, 0x58, 0xcb, 0x61, 0x81, 0xc4, 0x24, 0x23
+#define STATIC_CODECAPI_AVEncCommonLowLatency 0x9d3ecd55, 0x89e8, 0x490a, 0x97, 0x0a, 0x0c, 0x95, 0x48, 0xd5, 0xa5, 0x6e
+#define STATIC_CODECAPI_AVEncCommonMultipassMode 0x22533d4c, 0x47e1, 0x41b5, 0x93, 0x52, 0xa2, 0xb7, 0x78, 0x0e, 0x7a, 0xc4
+#define STATIC_CODECAPI_AVEncCommonPassStart 0x6a67739f, 0x4eb5, 0x4385, 0x99, 0x28, 0xf2, 0x76, 0xa9, 0x39, 0xef, 0x95
+#define STATIC_CODECAPI_AVEncCommonPassEnd 0x0e3d01bc, 0xc85c, 0x467d, 0x8b, 0x60, 0xc4, 0x10, 0x12, 0xee, 0x3b, 0xf6
+#define STATIC_CODECAPI_AVEncCommonRealTime 0x143a0ff6, 0xa131, 0x43da, 0xb8, 0x1e, 0x98, 0xfb, 0xb8, 0xec, 0x37, 0x8e
+#define STATIC_CODECAPI_AVEncCommonQuality 0xfcbf57a3, 0x7ea5, 0x4b0c, 0x96, 0x44, 0x69, 0xb4, 0x0c, 0x39, 0xc3, 0x91
+#define STATIC_CODECAPI_AVEncCommonQualityVsSpeed 0x98332df8, 0x03cd, 0x476b, 0x89, 0xfa, 0x3f, 0x9e, 0x44, 0x2d, 0xec, 0x9f
+#define STATIC_CODECAPI_AVEncCommonTranscodeEncodingProfile 0x6947787C, 0xF508, 0x4EA9, 0xB1, 0xE9, 0xA1, 0xFE, 0x3A, 0x49, 0xFB, 0xC9
+#define STATIC_CODECAPI_AVEncCommonMeanBitRate 0xf7222374, 0x2144, 0x4815, 0xb5, 0x50, 0xa3, 0x7f, 0x8e, 0x12, 0xee, 0x52
+#define STATIC_CODECAPI_AVEncCommonMeanBitRateInterval 0xbfaa2f0c, 0xcb82, 0x4bc0, 0x84, 0x74, 0xf0, 0x6a, 0x8a, 0x0d, 0x02, 0x58
+#define STATIC_CODECAPI_AVEncCommonMaxBitRate 0x9651eae4, 0x39b9, 0x4ebf, 0x85, 0xef, 0xd7, 0xf4, 0x44, 0xec, 0x74, 0x65
+#define STATIC_CODECAPI_AVEncCommonMinBitRate 0x101405b2, 0x2083, 0x4034, 0xa8, 0x06, 0xef, 0xbe, 0xdd, 0xd7, 0xc9, 0xff
+#define STATIC_CODECAPI_AVEncCommonBufferSize 0x0db96574, 0xb6a4, 0x4c8b, 0x81, 0x06, 0x37, 0x73, 0xde, 0x03, 0x10, 0xcd
+#define STATIC_CODECAPI_AVEncCommonBufferInLevel 0xd9c5c8db, 0xfc74, 0x4064, 0x94, 0xe9, 0xcd, 0x19, 0xf9, 0x47, 0xed, 0x45
+#define STATIC_CODECAPI_AVEncCommonBufferOutLevel 0xccae7f49, 0xd0bc, 0x4e3d, 0xa5, 0x7e, 0xfb, 0x57, 0x40, 0x14, 0x00, 0x69
+#define STATIC_CODECAPI_AVEncCommonStreamEndHandling 0x6aad30af, 0x6ba8, 0x4ccc, 0x8f, 0xca, 0x18, 0xd1, 0x9b, 0xea, 0xeb, 0x1c
+#define STATIC_CODECAPI_AVEncStatCommonCompletedPasses 0x3e5de533, 0x9df7, 0x438c, 0x85, 0x4f, 0x9f, 0x7d, 0xd3, 0x68, 0x3d, 0x34
+#define STATIC_CODECAPI_AVEncVideoOutputFrameRate 0xea85e7c3, 0x9567, 0x4d99, 0x87, 0xc4, 0x02, 0xc1, 0xc2, 0x78, 0xca, 0x7c
+#define STATIC_CODECAPI_AVEncVideoOutputFrameRateConversion 0x8c068bf4, 0x369a, 0x4ba3, 0x82, 0xfd, 0xb2, 0x51, 0x8f, 0xb3, 0x39, 0x6e
+#define STATIC_CODECAPI_AVEncVideoPixelAspectRatio 0x3cdc718f, 0xb3e9, 0x4eb6, 0xa5, 0x7f, 0xcf, 0x1f, 0x1b, 0x32, 0x1b, 0x87
+#define STATIC_CODECAPI_AVEncVideoForceSourceScanType 0x1ef2065f, 0x058a, 0x4765, 0xa4, 0xfc, 0x8a, 0x86, 0x4c, 0x10, 0x30, 0x12
+#define STATIC_CODECAPI_AVEncVideoNoOfFieldsToEncode 0x61e4bbe2, 0x4ee0, 0x40e7, 0x80, 0xab, 0x51, 0xdd, 0xee, 0xbe, 0x62, 0x91
+#define STATIC_CODECAPI_AVEncVideoNoOfFieldsToSkip 0xa97e1240, 0x1427, 0x4c16, 0xa7, 0xf7, 0x3d, 0xcf, 0xd8, 0xba, 0x4c, 0xc5
+#define STATIC_CODECAPI_AVEncVideoEncodeDimension 0x1074df28, 0x7e0f, 0x47a4, 0xa4, 0x53, 0xcd, 0xd7, 0x38, 0x70, 0xf5, 0xce
+#define STATIC_CODECAPI_AVEncVideoEncodeOffsetOrigin 0x6bc098fe, 0xa71a, 0x4454, 0x85, 0x2e, 0x4d, 0x2d, 0xde, 0xb2, 0xcd, 0x24
+#define STATIC_CODECAPI_AVEncVideoDisplayDimension 0xde053668, 0xf4ec, 0x47a9, 0x86, 0xd0, 0x83, 0x67, 0x70, 0xf0, 0xc1, 0xd5
+#define STATIC_CODECAPI_AVEncVideoOutputScanType 0x460b5576, 0x842e, 0x49ab, 0xa6, 0x2d, 0xb3, 0x6f, 0x73, 0x12, 0xc9, 0xdb
+#define STATIC_CODECAPI_AVEncVideoInverseTelecineEnable 0x2ea9098b, 0xe76d, 0x4ccd, 0xa0, 0x30, 0xd3, 0xb8, 0x89, 0xc1, 0xb6, 0x4c
+#define STATIC_CODECAPI_AVEncVideoInverseTelecineThreshold 0x40247d84, 0xe895, 0x497f, 0xb4, 0x4c, 0xb7, 0x45, 0x60, 0xac, 0xfe, 0x27
+#define STATIC_CODECAPI_AVEncVideoSourceFilmContent 0x1791c64b, 0xccfc, 0x4827, 0xa0, 0xed, 0x25, 0x57, 0x79, 0x3b, 0x2b, 0x1c
+#define STATIC_CODECAPI_AVEncVideoSourceIsBW 0x42ffc49b, 0x1812, 0x4fdc, 0x8d, 0x24, 0x70, 0x54, 0xc5, 0x21, 0xe6, 0xeb
+#define STATIC_CODECAPI_AVEncVideoFieldSwap 0xfefd7569, 0x4e0a, 0x49f2, 0x9f, 0x2b, 0x36, 0x0e, 0xa4, 0x8c, 0x19, 0xa2
+#define STATIC_CODECAPI_AVEncVideoInputChromaResolution 0xbb0cec33, 0x16f1, 0x47b0, 0x8a, 0x88, 0x37, 0x81, 0x5b, 0xee, 0x17, 0x39
+#define STATIC_CODECAPI_AVEncVideoOutputChromaResolution 0x6097b4c9, 0x7c1d, 0x4e64, 0xbf, 0xcc, 0x9e, 0x97, 0x65, 0x31, 0x8a, 0xe7
+#define STATIC_CODECAPI_AVEncVideoInputChromaSubsampling 0xa8e73a39, 0x4435, 0x4ec3, 0xa6, 0xea, 0x98, 0x30, 0x0f, 0x4b, 0x36, 0xf7
+#define STATIC_CODECAPI_AVEncVideoOutputChromaSubsampling 0xfa561c6c, 0x7d17, 0x44f0, 0x83, 0xc9, 0x32, 0xed, 0x12, 0xe9, 0x63, 0x43
+#define STATIC_CODECAPI_AVEncVideoInputColorPrimaries 0xc24d783f, 0x7ce6, 0x4278, 0x90, 0xab, 0x28, 0xa4, 0xf1, 0xe5, 0xf8, 0x6c
+#define STATIC_CODECAPI_AVEncVideoOutputColorPrimaries 0xbe95907c, 0x9d04, 0x4921, 0x89, 0x85, 0xa6, 0xd6, 0xd8, 0x7d, 0x1a, 0x6c
+#define STATIC_CODECAPI_AVEncVideoInputColorTransferFunction 0x8c056111, 0xa9c3, 0x4b08, 0xa0, 0xa0, 0xce, 0x13, 0xf8, 0xa2, 0x7c, 0x75
+#define STATIC_CODECAPI_AVEncVideoOutputColorTransferFunction 0x4a7f884a, 0xea11, 0x460d, 0xbf, 0x57, 0xb8, 0x8b, 0xc7, 0x59, 0x00, 0xde
+#define STATIC_CODECAPI_AVEncVideoInputColorTransferMatrix 0x52ed68b9, 0x72d5, 0x4089, 0x95, 0x8d, 0xf5, 0x40, 0x5d, 0x55, 0x08, 0x1c
+#define STATIC_CODECAPI_AVEncVideoOutputColorTransferMatrix 0xa9b90444, 0xaf40, 0x4310, 0x8f, 0xbe, 0xed, 0x6d, 0x93, 0x3f, 0x89, 0x2b
+#define STATIC_CODECAPI_AVEncVideoInputColorLighting 0x46a99549, 0x0015, 0x4a45, 0x9c, 0x30, 0x1d, 0x5c, 0xfa, 0x25, 0x83, 0x16
+#define STATIC_CODECAPI_AVEncVideoOutputColorLighting 0x0e5aaac6, 0xace6, 0x4c5c, 0x99, 0x8e, 0x1a, 0x8c, 0x9c, 0x6c, 0x0f, 0x89
+#define STATIC_CODECAPI_AVEncVideoInputColorNominalRange 0x16cf25c6, 0xa2a6, 0x48e9, 0xae, 0x80, 0x21, 0xae, 0xc4, 0x1d, 0x42, 0x7e
+#define STATIC_CODECAPI_AVEncVideoOutputColorNominalRange 0x972835ed, 0x87b5, 0x4e95, 0x95, 0x00, 0xc7, 0x39, 0x58, 0x56, 0x6e, 0x54
+#define STATIC_CODECAPI_AVEncInputVideoSystem 0xbede146d, 0xb616, 0x4dc7, 0x92, 0xb2, 0xf5, 0xd9, 0xfa, 0x92, 0x98, 0xf7
+#define STATIC_CODECAPI_AVEncVideoHeaderDropFrame 0x6ed9e124, 0x7925, 0x43fe, 0x97, 0x1b, 0xe0, 0x19, 0xf6, 0x22, 0x22, 0xb4
+#define STATIC_CODECAPI_AVEncVideoHeaderHours 0x2acc7702, 0xe2da, 0x4158, 0xbf, 0x9b, 0x88, 0x88, 0x01, 0x29, 0xd7, 0x40
+#define STATIC_CODECAPI_AVEncVideoHeaderMinutes 0xdc1a99ce, 0x0307, 0x408b, 0x88, 0x0b, 0xb8, 0x34, 0x8e, 0xe8, 0xca, 0x7f
+#define STATIC_CODECAPI_AVEncVideoHeaderSeconds 0x4a2e1a05, 0xa780, 0x4f58, 0x81, 0x20, 0x9a, 0x44, 0x9d, 0x69, 0x65, 0x6b
+#define STATIC_CODECAPI_AVEncVideoHeaderFrames 0xafd5f567, 0x5c1b, 0x4adc, 0xbd, 0xaf, 0x73, 0x56, 0x10, 0x38, 0x14, 0x36
+#define STATIC_CODECAPI_AVEncVideoDefaultUpperFieldDominant 0x810167c4, 0x0bc1, 0x47ca, 0x8f, 0xc2, 0x57, 0x05, 0x5a, 0x14, 0x74, 0xa5
+#define STATIC_CODECAPI_AVEncVideoCBRMotionTradeoff 0x0d49451e, 0x18d5, 0x4367, 0xa4, 0xef, 0x32, 0x40, 0xdf, 0x16, 0x93, 0xc4
+#define STATIC_CODECAPI_AVEncVideoCodedVideoAccessUnitSize 0xb4b10c15, 0x14a7, 0x4ce8, 0xb1, 0x73, 0xdc, 0x90, 0xa0, 0xb4, 0xfc, 0xdb
+#define STATIC_CODECAPI_AVEncVideoMaxKeyframeDistance 0x2987123a, 0xba93, 0x4704, 0xb4, 0x89, 0xec, 0x1e, 0x5f, 0x25, 0x29, 0x2c
+#define STATIC_CODECAPI_AVEncH264CABACEnable 0xee6cad62, 0xd305, 0x4248, 0xa5, 0xe, 0xe1, 0xb2, 0x55, 0xf7, 0xca, 0xf8
+#define STATIC_CODECAPI_AVEncVideoContentType 0x66117aca, 0xeb77, 0x459d, 0x93, 0xc, 0xa4, 0x8d, 0x9d, 0x6, 0x83, 0xfc
+#define STATIC_CODECAPI_AVEncNumWorkerThreads 0xb0c8bf60, 0x16f7, 0x4951, 0xa3, 0xb, 0x1d, 0xb1, 0x60, 0x92, 0x93, 0xd6
+#define STATIC_CODECAPI_AVEncVideoEncodeQP 0x2cb5696b, 0x23fb, 0x4ce1, 0xa0, 0xf9, 0xef, 0x5b, 0x90, 0xfd, 0x55, 0xca
+#define STATIC_CODECAPI_AVEncVideoMinQP 0x0ee22c6a, 0xa37c, 0x4568, 0xb5, 0xf1, 0x9d, 0x4c, 0x2b, 0x3a, 0xb8, 0x86
+#define STATIC_CODECAPI_AVEncVideoForceKeyFrame 0x398c1b98, 0x8353, 0x475a, 0x9e, 0xf2, 0x8f, 0x26, 0x5d, 0x26, 0x3, 0x45
+#define STATIC_CODECAPI_AVEncH264SPSID 0x50f38f51, 0x2b79, 0x40e3, 0xb3, 0x9c, 0x7e, 0x9f, 0xa0, 0x77, 0x5, 0x1
+#define STATIC_CODECAPI_AVEncH264PPSID 0xbfe29ec2, 0x56c, 0x4d68, 0xa3, 0x8d, 0xae, 0x59, 0x44, 0xc8, 0x58, 0x2e
+#define STATIC_CODECAPI_AVEncAdaptiveMode 0x4419b185, 0xda1f, 0x4f53, 0xbc, 0x76, 0x9, 0x7d, 0xc, 0x1e, 0xfb, 0x1e
+#define STATIC_CODECAPI_AVEncVideoTemporalLayerCount 0x19caebff, 0xb74d, 0x4cfd, 0x8c, 0x27, 0xc2, 0xf9, 0xd9, 0x7d, 0x5f, 0x52
+#define STATIC_CODECAPI_AVEncVideoUsage 0x1f636849, 0x5dc1, 0x49f1, 0xb1, 0xd8, 0xce, 0x3c, 0xf6, 0x2e, 0xa3, 0x85
+#define STATIC_CODECAPI_AVEncVideoSelectLayer 0xeb1084f5, 0x6aaa, 0x4914, 0xbb, 0x2f, 0x61, 0x47, 0x22, 0x7f, 0x12, 0xe7
+#define STATIC_CODECAPI_AVEncVideoRateControlParams 0x87d43767, 0x7645, 0x44ec, 0xb4, 0x38, 0xd3, 0x32, 0x2f, 0xbc, 0xa2, 0x9f
+#define STATIC_CODECAPI_AVEncVideoSupportedControls 0xd3f40fdd, 0x77b9, 0x473d, 0x81, 0x96, 0x6, 0x12, 0x59, 0xe6, 0x9c, 0xff
+#define STATIC_CODECAPI_AVEncVideoEncodeFrameTypeQP 0xaa70b610, 0xe03f, 0x450c, 0xad, 0x07, 0x07, 0x31, 0x4e, 0x63, 0x9c, 0xe7
+#define STATIC_CODECAPI_AVEncSliceControlMode 0xe9e782ef, 0x5f18, 0x44c9, 0xa9, 0x0b, 0xe9, 0xc3, 0xc2, 0xc1, 0x7b, 0x0b
+#define STATIC_CODECAPI_AVEncSliceControlSize 0x92f51df3, 0x07a5, 0x4172, 0xae, 0xfe, 0xc6, 0x9c, 0xa3, 0xb6, 0x0e, 0x35
+#define STATIC_CODECAPI_AVEncSliceGenerationMode 0x8a6bc67f, 0x9497, 0x4286, 0xb4, 0x6b, 0x02, 0xdb, 0x8d, 0x60, 0xed, 0xbc
+#define STATIC_CODECAPI_AVEncVideoMaxNumRefFrame 0x964829ed, 0x94f9, 0x43b4, 0xb7, 0x4d, 0xef, 0x40, 0x94, 0x4b, 0x69, 0xa0
+#define STATIC_CODECAPI_AVEncVideoMeanAbsoluteDifference 0xe5c0c10f, 0x81a4, 0x422d, 0x8c, 0x3f, 0xb4, 0x74, 0xa4, 0x58, 0x13, 0x36
+#define STATIC_CODECAPI_AVEncVideoMaxQP 0x3daf6f66, 0xa6a7, 0x45e0, 0xa8, 0xe5, 0xf2, 0x74, 0x3f, 0x46, 0xa3, 0xa2
+#define STATIC_CODECAPI_AVEncVideoLTRBufferControl 0xa4a0e93d, 0x4cbc, 0x444c, 0x89, 0xf4, 0x82, 0x6d, 0x31, 0x0e, 0x92, 0xa7
+#define STATIC_CODECAPI_AVEncVideoMarkLTRFrame 0xe42f4748, 0xa06d, 0x4ef9, 0x8c, 0xea, 0x3d, 0x05, 0xfd, 0xe3, 0xbd, 0x3b
+#define STATIC_CODECAPI_AVEncVideoUseLTRFrame 0x00752db8, 0x55f7, 0x4f80, 0x89, 0x5b, 0x27, 0x63, 0x91, 0x95, 0xf2, 0xad
+#define STATIC_CODECAPI_AVEncVideoROIEnabled 0xd74f7f18, 0x44dd, 0x4b85, 0xab, 0xa3, 0x5, 0xd9, 0xf4, 0x2a, 0x82, 0x80
+#define STATIC_CODECAPI_AVEncVideoDirtyRectEnabled 0x8acb8fdd, 0x5e0c, 0x4c66, 0x87, 0x29, 0xb8, 0xf6, 0x29, 0xab, 0x04, 0xfb
+#define STATIC_CODECAPI_AVScenarioInfo 0xb28a6e64, 0x3ff9, 0x446a, 0x8a, 0x4b, 0x0d, 0x7a, 0x53, 0x41, 0x32, 0x36
+#define STATIC_CODECAPI_AVEncMPVGOPSizeMin 0x7155cf20, 0xd440, 0x4852, 0xad, 0x0f, 0x9c, 0x4a, 0xbf, 0xe3, 0x7a, 0x6a
+#define STATIC_CODECAPI_AVEncMPVGOPSizeMax 0xfe7de4c4, 0x1936, 0x4fe2, 0xbd, 0xf7, 0x1f, 0x18, 0xca, 0x1d, 0x00, 0x1f
+#define STATIC_CODECAPI_AVEncVideoMaxCTBSize 0x822363ff, 0xcec8, 0x43e5, 0x92, 0xfd, 0xe0, 0x97, 0x48, 0x84, 0x85, 0xe9
+#define STATIC_CODECAPI_AVEncVideoCTBSize 0xd47db8b2, 0xe73b, 0x4cb9, 0x8c, 0x3e, 0xbd, 0x87, 0x7d, 0x06, 0xd7, 0x7b
+#define STATIC_CODECAPI_VideoEncoderDisplayContentType 0x79b90b27, 0xf4b1, 0x42dc, 0x9d, 0xd7, 0xcd, 0xaf, 0x81, 0x35, 0xc4, 0x00
+#define STATIC_CODECAPI_AVEncEnableVideoProcessing 0x006f4bf6, 0x0ea3, 0x4d42, 0x87, 0x02, 0xb5, 0xd8, 0xbe, 0x0f, 0x7a, 0x92
+#define STATIC_CODECAPI_AVEncVideoGradualIntraRefresh 0x8f347dee, 0xcb0d, 0x49ba, 0xb4, 0x62, 0xdb, 0x69, 0x27, 0xee, 0x21, 0x01
+#define STATIC_CODECAPI_GetOPMContext 0x2f036c05, 0x4c14, 0x4689, 0x88, 0x39, 0x29, 0x4c, 0x6d, 0x73, 0xe0, 0x53
+#define STATIC_CODECAPI_SetHDCPManagerContext 0x6d2d1fc8, 0x3dc9, 0x47eb, 0xa1, 0xa2, 0x47, 0x1c, 0x80, 0xcd, 0x60, 0xd0
+#define STATIC_CODECAPI_AVEncVideoMaxTemporalLayers 0x9c668cfe, 0x08e1, 0x424a, 0x93, 0x4e, 0xb7, 0x64, 0xb0, 0x64, 0x80, 0x2a
+#define STATIC_CODECAPI_AVEncVideoNumGOPsPerIDR 0x83bc5bdb, 0x5b89, 0x4521, 0x8f, 0x66, 0x33, 0x15, 0x1c, 0x37, 0x31, 0x76
+#define STATIC_CODECAPI_AVEncCommonAllowFrameDrops 0xd8477dcb, 0x9598, 0x48e3, 0x8d, 0x0c, 0x75, 0x2b, 0xf2, 0x06, 0x09, 0x3e
+#define STATIC_CODECAPI_AVEncVideoIntraLayerPrediction 0xd3af46b8, 0xbf47, 0x44bb, 0xa2, 0x83, 0x69, 0xf0, 0xb0, 0x22, 0x8f, 0xf9
+#define STATIC_CODECAPI_AVEncVideoInstantTemporalUpSwitching 0xa3308307, 0x0d96, 0x4ba4, 0xb1, 0xf0, 0xb9, 0x1a, 0x5e, 0x49, 0xdf, 0x10
+#define STATIC_CODECAPI_AVEncLowPowerEncoder 0xb668d582, 0x8bad, 0x4f6a, 0x91, 0x41, 0x37, 0x5a, 0x95, 0x35, 0x8b, 0x6d
+#define STATIC_CODECAPI_AVEnableInLoopDeblockFilter 0xd2e8e399, 0x0623, 0x4bf3, 0x92, 0xa8, 0x4d, 0x18, 0x18, 0x52, 0x9d, 0xed
+#define STATIC_CODECAPI_AVEncMuxOutputStreamType 0xcedd9e8f, 0x34d3, 0x44db, 0xa1, 0xd8, 0xf8, 0x15, 0x20, 0x25, 0x4f, 0x3e
+#define STATIC_CODECAPI_AVEncStatVideoOutputFrameRate 0xbe747849, 0x9ab4, 0x4a63, 0x98, 0xfe, 0xf1, 0x43, 0xf0, 0x4f, 0x8e, 0xe9
+#define STATIC_CODECAPI_AVEncStatVideoCodedFrames 0xd47f8d61, 0x6f5a, 0x4a26, 0xbb, 0x9f, 0xcd, 0x95, 0x18, 0x46, 0x2b, 0xcd
+#define STATIC_CODECAPI_AVEncStatVideoTotalFrames 0xfdaa9916, 0x119a, 0x4222, 0x9a, 0xd6, 0x3f, 0x7c, 0xab, 0x99, 0xcc, 0x8b
+#define STATIC_CODECAPI_AVEncAudioIntervalToEncode 0x866e4b4d, 0x725a, 0x467c, 0xbb, 0x01, 0xb4, 0x96, 0xb2, 0x3b, 0x25, 0xf9
+#define STATIC_CODECAPI_AVEncAudioIntervalToSkip 0x88c15f94, 0xc38c, 0x4796, 0xa9, 0xe8, 0x96, 0xe9, 0x67, 0x98, 0x3f, 0x26
+#define STATIC_CODECAPI_AVEncAudioDualMono 0x3648126b, 0xa3e8, 0x4329, 0x9b, 0x3a, 0x5c, 0xe5, 0x66, 0xa4, 0x3b, 0xd3
+#define STATIC_CODECAPI_AVEncAudioMeanBitRate 0x921295bb, 0x4fca, 0x4679, 0xaa, 0xb8, 0x9e, 0x2a, 0x1d, 0x75, 0x33, 0x84
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel0 0xbc5d0b60, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel1 0xbc5d0b61, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel2 0xbc5d0b62, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel3 0xbc5d0b63, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel4 0xbc5d0b64, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel5 0xbc5d0b65, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel6 0xbc5d0b66, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel7 0xbc5d0b67, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel8 0xbc5d0b68, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel9 0xbc5d0b69, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel10 0xbc5d0b6a, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel11 0xbc5d0b6b, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel12 0xbc5d0b6c, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel13 0xbc5d0b6d, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel14 0xbc5d0b6e, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioMapDestChannel15 0xbc5d0b6f, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d
+#define STATIC_CODECAPI_AVEncAudioInputContent 0x3e226c2b, 0x60b9, 0x4a39, 0xb0, 0x0b, 0xa7, 0xb4, 0x0f, 0x70, 0xd5, 0x66
+#define STATIC_CODECAPI_AVEncStatAudioPeakPCMValue 0xdce7fd34, 0xdc00, 0x4c16, 0x82, 0x1b, 0x35, 0xd9, 0xeb, 0x00, 0xfb, 0x1a
+#define STATIC_CODECAPI_AVEncStatAudioAveragePCMValue 0x979272f8, 0xd17f, 0x4e32, 0xbb, 0x73, 0x4e, 0x73, 0x1c, 0x68, 0xba, 0x2d
+#define STATIC_CODECAPI_AVEncStatAudioAverageBPS 0xca6724db, 0x7059, 0x4351, 0x8b, 0x43, 0xf8, 0x21, 0x98, 0x82, 0x6a, 0x14
+#define STATIC_CODECAPI_AVEncStatAverageBPS 0xca6724db, 0x7059, 0x4351, 0x8b, 0x43, 0xf8, 0x21, 0x98, 0x82, 0x6a, 0x14
+#define STATIC_CODECAPI_AVEncStatHardwareProcessorUtilitization 0x995dc027, 0xcb95, 0x49e6, 0xb9, 0x1b, 0x59, 0x67, 0x75, 0x3c, 0xdc, 0xb8
+#define STATIC_CODECAPI_AVEncStatHardwareBandwidthUtilitization 0x0124ba9b, 0xdc41, 0x4826, 0xb4, 0x5f, 0x18, 0xac, 0x01, 0xb3, 0xd5, 0xa8
+#define STATIC_CODECAPI_AVEncMPVGOPSize 0x95f31b26, 0x95a4, 0x41aa, 0x93, 0x03, 0x24, 0x6a, 0x7f, 0xc6, 0xee, 0xf1
+#define STATIC_CODECAPI_AVEncMPVGOPOpen 0xb1d5d4a6, 0x3300, 0x49b1, 0xae, 0x61, 0xa0, 0x99, 0x37, 0xab, 0x0e, 0x49
+#define STATIC_CODECAPI_AVEncMPVDefaultBPictureCount 0x8d390aac, 0xdc5c, 0x4200, 0xb5, 0x7f, 0x81, 0x4d, 0x04, 0xba, 0xba, 0xb2
+#define STATIC_CODECAPI_AVEncMPVProfile 0xdabb534a, 0x1d99, 0x4284, 0x97, 0x5a, 0xd9, 0x0e, 0x22, 0x39, 0xba, 0xa1
+#define STATIC_CODECAPI_AVEncMPVLevel 0x6ee40c40, 0xa60c, 0x41ef, 0x8f, 0x50, 0x37, 0xc2, 0x24, 0x9e, 0x2c, 0xb3
+#define STATIC_CODECAPI_AVEncMPVFrameFieldMode 0xacb5de96, 0x7b93, 0x4c2f, 0x88, 0x25, 0xb0, 0x29, 0x5f, 0xa9, 0x3b, 0xf4
+#define STATIC_CODECAPI_AVEncMPVAddSeqEndCode 0xa823178f, 0x57df, 0x4c7a, 0xb8, 0xfd, 0xe5, 0xec, 0x88, 0x87, 0x70, 0x8d
+#define STATIC_CODECAPI_AVEncMPVGOPSInSeq 0x993410d4, 0x2691, 0x4192, 0x99, 0x78, 0x98, 0xdc, 0x26, 0x03, 0x66, 0x9f
+#define STATIC_CODECAPI_AVEncMPVUseConcealmentMotionVectors 0xec770cf3, 0x6908, 0x4b4b, 0xaa, 0x30, 0x7f, 0xb9, 0x86, 0x21, 0x4f, 0xea
+#define STATIC_CODECAPI_AVEncMPVSceneDetection 0x552799f1, 0xdb4c, 0x405b, 0x8a, 0x3a, 0xc9, 0x3f, 0x2d, 0x06, 0x74, 0xdc
+#define STATIC_CODECAPI_AVEncMPVGenerateHeaderSeqExt 0xd5e78611, 0x082d, 0x4e6b, 0x98, 0xaf, 0x0f, 0x51, 0xab, 0x13, 0x92, 0x22
+#define STATIC_CODECAPI_AVEncMPVGenerateHeaderSeqDispExt 0x6437aa6f, 0x5a3c, 0x4de9, 0x8a, 0x16, 0x53, 0xd9, 0xc4, 0xad, 0x32, 0x6f
+#define STATIC_CODECAPI_AVEncMPVGenerateHeaderPicExt 0x1b8464ab, 0x944f, 0x45f0, 0xb7, 0x4e, 0x3a, 0x58, 0xda, 0xd1, 0x1f, 0x37
+#define STATIC_CODECAPI_AVEncMPVGenerateHeaderPicDispExt 0xc6412f84, 0xc03f, 0x4f40, 0xa0, 0x0c, 0x42, 0x93, 0xdf, 0x83, 0x95, 0xbb
+#define STATIC_CODECAPI_AVEncMPVGenerateHeaderSeqScaleExt 0x0722d62f, 0xdd59, 0x4a86, 0x9c, 0xd5, 0x64, 0x4f, 0x8e, 0x26, 0x53, 0xd8
+#define STATIC_CODECAPI_AVEncMPVScanPattern 0x7f8a478e, 0x7bbb, 0x4ae2, 0xb2, 0xfc, 0x96, 0xd1, 0x7f, 0xc4, 0xa2, 0xd6
+#define STATIC_CODECAPI_AVEncMPVIntraDCPrecision 0xa0116151, 0xcbc8, 0x4af3, 0x97, 0xdc, 0xd0, 0x0c, 0xce, 0xb8, 0x2d, 0x79
+#define STATIC_CODECAPI_AVEncMPVQScaleType 0x2b79ebb7, 0xf484, 0x4af7, 0xbb, 0x58, 0xa2, 0xa1, 0x88, 0xc5, 0xcb, 0xbe
+#define STATIC_CODECAPI_AVEncMPVIntraVLCTable 0xa2b83ff5, 0x1a99, 0x405a, 0xaf, 0x95, 0xc5, 0x99, 0x7d, 0x55, 0x8d, 0x3a
+#define STATIC_CODECAPI_AVEncMPVQuantMatrixIntra 0x9bea04f3, 0x6621, 0x442c, 0x8b, 0xa1, 0x3a, 0xc3, 0x78, 0x97, 0x96, 0x98
+#define STATIC_CODECAPI_AVEncMPVQuantMatrixNonIntra 0x87f441d8, 0x0997, 0x4beb, 0xa0, 0x8e, 0x85, 0x73, 0xd4, 0x09, 0xcf, 0x75
+#define STATIC_CODECAPI_AVEncMPVQuantMatrixChromaIntra 0x9eb9ecd4, 0x018d, 0x4ffd, 0x8f, 0x2d, 0x39, 0xe4, 0x9f, 0x07, 0xb1, 0x7a
+#define STATIC_CODECAPI_AVEncMPVQuantMatrixChromaNonIntra 0x1415b6b1, 0x362a, 0x4338, 0xba, 0x9a, 0x1e, 0xf5, 0x87, 0x03, 0xc0, 0x5b
+#define STATIC_CODECAPI_AVEncMPALayer 0x9d377230, 0xf91b, 0x453d, 0x9c, 0xe0, 0x78, 0x44, 0x54, 0x14, 0xc2, 0x2d
+#define STATIC_CODECAPI_AVEncMPACodingMode 0xb16ade03, 0x4b93, 0x43d7, 0xa5, 0x50, 0x90, 0xb4, 0xfe, 0x22, 0x45, 0x37
+#define STATIC_CODECAPI_AVEncDDService 0xd2e1bec7, 0x5172, 0x4d2a, 0xa5, 0x0e, 0x2f, 0x3b, 0x82, 0xb1, 0xdd, 0xf8
+#define STATIC_CODECAPI_AVEncDDDialogNormalization 0xd7055acf, 0xf125, 0x437d, 0xa7, 0x04, 0x79, 0xc7, 0x9f, 0x04, 0x04, 0xa8
+#define STATIC_CODECAPI_AVEncDDCentreDownMixLevel 0xe285072c, 0xc958, 0x4a81, 0xaf, 0xd2, 0xe5, 0xe0, 0xda, 0xf1, 0xb1, 0x48
+#define STATIC_CODECAPI_AVEncDDSurroundDownMixLevel 0x7b20d6e5, 0x0bcf, 0x4273, 0xa4, 0x87, 0x50, 0x6b, 0x04, 0x79, 0x97, 0xe9
+#define STATIC_CODECAPI_AVEncDDProductionInfoExists 0xb0b7fe5f, 0xb6ab, 0x4f40, 0x96, 0x4d, 0x8d, 0x91, 0xf1, 0x7c, 0x19, 0xe8
+#define STATIC_CODECAPI_AVEncDDProductionRoomType 0xdad7ad60, 0x23d8, 0x4ab7, 0xa2, 0x84, 0x55, 0x69, 0x86, 0xd8, 0xa6, 0xfe
+#define STATIC_CODECAPI_AVEncDDProductionMixLevel 0x301d103a, 0xcbf9, 0x4776, 0x88, 0x99, 0x7c, 0x15, 0xb4, 0x61, 0xab, 0x26
+#define STATIC_CODECAPI_AVEncDDCopyright 0x8694f076, 0xcd75, 0x481d, 0xa5, 0xc6, 0xa9, 0x04, 0xdc, 0xc8, 0x28, 0xf0
+#define STATIC_CODECAPI_AVEncDDOriginalBitstream 0x966ae800, 0x5bd3, 0x4ff9, 0x95, 0xb9, 0xd3, 0x05, 0x66, 0x27, 0x38, 0x56
+#define STATIC_CODECAPI_AVEncDDDigitalDeemphasis 0xe024a2c2, 0x947c, 0x45ac, 0x87, 0xd8, 0xf1, 0x03, 0x0c, 0x5c, 0x00, 0x82
+#define STATIC_CODECAPI_AVEncDDDCHighPassFilter  0x9565239f, 0x861c, 0x4ac8, 0xbf, 0xda, 0xe0, 0x0c, 0xb4, 0xdb, 0x85, 0x48
+#define STATIC_CODECAPI_AVEncDDChannelBWLowPassFilter 0xe197821d, 0xd2e7, 0x43e2, 0xad, 0x2c, 0x00, 0x58, 0x2f, 0x51, 0x85, 0x45
+#define STATIC_CODECAPI_AVEncDDLFELowPassFilter  0xd3b80f6f, 0x9d15, 0x45e5, 0x91, 0xbe, 0x01, 0x9c, 0x3f, 0xab, 0x1f, 0x01
+#define STATIC_CODECAPI_AVEncDDSurround90DegreeePhaseShift 0x25ecec9d, 0x3553, 0x42c0, 0xbb, 0x56, 0xd2, 0x57, 0x92, 0x10, 0x4f, 0x80
+#define STATIC_CODECAPI_AVEncDDSurround3dBAttenuation 0x4d43b99d, 0x31e2, 0x48b9, 0xbf, 0x2e, 0x5c, 0xbf, 0x1a, 0x57, 0x27, 0x84
+#define STATIC_CODECAPI_AVEncDDDynamicRangeCompressionControl 0xcfc2ff6d, 0x79b8, 0x4b8d, 0xa8, 0xaa, 0xa0, 0xc9, 0xbd, 0x1c, 0x29, 0x40
+#define STATIC_CODECAPI_AVEncDDRFPreEmphasisFilter 0x21af44c0, 0x244e, 0x4f3d, 0xa2, 0xcc, 0x3d, 0x30, 0x68, 0xb2, 0xe7, 0x3f
+#define STATIC_CODECAPI_AVEncDDSurroundExMode 0x91607cee, 0xdbdd, 0x4eb6, 0xbc, 0xa2, 0xaa, 0xdf, 0xaf, 0xa3, 0xdd, 0x68
+#define STATIC_CODECAPI_AVEncDDPreferredStereoDownMixMode 0x7f4e6b31, 0x9185, 0x403d, 0xb0, 0xa2, 0x76, 0x37, 0x43, 0xe6, 0xf0, 0x63
+#define STATIC_CODECAPI_AVEncDDLtRtCenterMixLvl_x10 0xdca128a2, 0x491f, 0x4600, 0xb2, 0xda, 0x76, 0xe3, 0x34, 0x4b, 0x41, 0x97
+#define STATIC_CODECAPI_AVEncDDLtRtSurroundMixLvl_x10 0x212246c7, 0x3d2c, 0x4dfa, 0xbc, 0x21, 0x65, 0x2a, 0x90, 0x98, 0x69, 0x0d
+#define STATIC_CODECAPI_AVEncDDLoRoCenterMixLvl_x10 0x1cfba222, 0x25b3, 0x4bf4, 0x9b, 0xfd, 0xe7, 0x11, 0x12, 0x67, 0x85, 0x8c
+#define STATIC_CODECAPI_AVEncDDLoRoSurroundMixLvl_x10 0xe725cff6, 0xeb56, 0x40c7, 0x84, 0x50, 0x2b, 0x93, 0x67, 0xe9, 0x15, 0x55
+#define STATIC_CODECAPI_AVEncDDAtoDConverterType 0x719f9612, 0x81a1, 0x47e0, 0x9a, 0x05, 0xd9, 0x4a, 0xd5, 0xfc, 0xa9, 0x48
+#define STATIC_CODECAPI_AVEncDDHeadphoneMode 0x4052dbec, 0x52f5, 0x42f5, 0x9b, 0x00, 0xd1, 0x34, 0xb1, 0x34, 0x1b, 0x9d
+#define STATIC_CODECAPI_AVEncWMVKeyFrameDistance 0x5569055e, 0xe268, 0x4771, 0xb8, 0x3e, 0x95, 0x55, 0xea, 0x28, 0xae, 0xd3
+#define STATIC_CODECAPI_AVEncWMVInterlacedEncoding 0xe3d00f8a, 0xc6f5, 0x4e14, 0xa5, 0x88, 0x0e, 0xc8, 0x7a, 0x72, 0x6f, 0x9b
+#define STATIC_CODECAPI_AVEncWMVDecoderComplexity 0xf32c0dab, 0xf3cb, 0x4217, 0xb7, 0x9f, 0x87, 0x62, 0x76, 0x8b, 0x5f, 0x67
+#define STATIC_CODECAPI_AVEncWMVKeyFrameBufferLevelMarker 0x51ff1115, 0x33ac, 0x426c, 0xa1, 0xb1, 0x09, 0x32, 0x1b, 0xdf, 0x96, 0xb4
+#define STATIC_CODECAPI_AVEncWMVProduceDummyFrames 0xd669d001, 0x183c, 0x42e3, 0xa3, 0xca, 0x2f, 0x45, 0x86, 0xd2, 0x39, 0x6c
+#define STATIC_CODECAPI_AVEncStatWMVCBAvg 0x6aa6229f, 0xd602, 0x4b9d, 0xb6, 0x8c, 0xc1, 0xad, 0x78, 0x88, 0x4b, 0xef
+#define STATIC_CODECAPI_AVEncStatWMVCBMax 0xe976bef8, 0x00fe, 0x44b4, 0xb6, 0x25, 0x8f, 0x23, 0x8b, 0xc0, 0x34, 0x99
+#define STATIC_CODECAPI_AVEncStatWMVDecoderComplexityProfile 0x89e69fc3, 0x0f9b, 0x436c, 0x97, 0x4a, 0xdf, 0x82, 0x12, 0x27, 0xc9, 0x0d
+#define STATIC_CODECAPI_AVEncStatMPVSkippedEmptyFrames 0x32195fd3, 0x590d, 0x4812, 0xa7, 0xed, 0x6d, 0x63, 0x9a, 0x1f, 0x97, 0x11
+#define STATIC_CODECAPI_AVEncMP12PktzSTDBuffer 0x0b751bd0, 0x819e, 0x478c, 0x94, 0x35, 0x75, 0x20, 0x89, 0x26, 0xb3, 0x77
+#define STATIC_CODECAPI_AVEncMP12PktzStreamID 0xc834d038, 0xf5e8, 0x4408, 0x9b, 0x60, 0x88, 0xf3, 0x64, 0x93, 0xfe, 0xdf
+#define STATIC_CODECAPI_AVEncMP12PktzInitialPTS 0x2a4f2065, 0x9a63, 0x4d20, 0xae, 0x22, 0x0a, 0x1b, 0xc8, 0x96, 0xa3, 0x15
+#define STATIC_CODECAPI_AVEncMP12PktzPacketSize 0xab71347a, 0x1332, 0x4dde, 0xa0, 0xe5, 0xcc, 0xf7, 0xda, 0x8a, 0x0f, 0x22
+#define STATIC_CODECAPI_AVEncMP12PktzCopyright 0xc8f4b0c1, 0x094c, 0x43c7, 0x8e, 0x68, 0xa5, 0x95, 0x40, 0x5a, 0x6e, 0xf8
+#define STATIC_CODECAPI_AVEncMP12PktzOriginal 0x6b178416, 0x31b9, 0x4964, 0x94, 0xcb, 0x6b, 0xff, 0x86, 0x6c, 0xdf, 0x83
+#define STATIC_CODECAPI_AVEncMP12MuxPacketOverhead 0xe40bd720, 0x3955, 0x4453, 0xac, 0xf9, 0xb7, 0x91, 0x32, 0xa3, 0x8f, 0xa0
+#define STATIC_CODECAPI_AVEncMP12MuxNumStreams 0xf7164a41, 0xdced, 0x4659, 0xa8, 0xf2, 0xfb, 0x69, 0x3f, 0x2a, 0x4c, 0xd0
+#define STATIC_CODECAPI_AVEncMP12MuxEarliestPTS 0x157232b6, 0xf809, 0x474e, 0x94, 0x64, 0xa7, 0xf9, 0x30, 0x14, 0xa8, 0x17
+#define STATIC_CODECAPI_AVEncMP12MuxLargestPacketSize 0x35ceb711, 0xf461, 0x4b92, 0xa4, 0xef, 0x17, 0xb6, 0x84, 0x1e, 0xd2, 0x54
+#define STATIC_CODECAPI_AVEncMP12MuxInitialSCR 0x3433ad21, 0x1b91, 0x4a0b, 0xb1, 0x90, 0x2b, 0x77, 0x06, 0x3b, 0x63, 0xa4
+#define STATIC_CODECAPI_AVEncMP12MuxMuxRate 0xee047c72, 0x4bdb, 0x4a9d, 0x8e, 0x21, 0x41, 0x92, 0x6c, 0x82, 0x3d, 0xa7
+#define STATIC_CODECAPI_AVEncMP12MuxPackSize 0xf916053a, 0x1ce8, 0x4faf, 0xaa, 0x0b, 0xba, 0x31, 0xc8, 0x00, 0x34, 0xb8
+#define STATIC_CODECAPI_AVEncMP12MuxSysSTDBufferBound 0x35746903, 0xb545, 0x43e7, 0xbb, 0x35, 0xc5, 0xe0, 0xa7, 0xd5, 0x09, 0x3c
+#define STATIC_CODECAPI_AVEncMP12MuxSysRateBound 0x05f0428a, 0xee30, 0x489d, 0xae, 0x28, 0x20, 0x5c, 0x72, 0x44, 0x67, 0x10
+#define STATIC_CODECAPI_AVEncMP12MuxTargetPacketizer 0xd862212a, 0x2015, 0x45dd, 0x9a, 0x32, 0x1b, 0x3a, 0xa8, 0x82, 0x05, 0xa0
+#define STATIC_CODECAPI_AVEncMP12MuxSysFixed 0xcefb987e, 0x894f, 0x452e, 0x8f, 0x89, 0xa4, 0xef, 0x8c, 0xec, 0x06, 0x3a
+#define STATIC_CODECAPI_AVEncMP12MuxSysCSPS 0x7952ff45, 0x9c0d, 0x4822, 0xbc, 0x82, 0x8a, 0xd7, 0x72, 0xe0, 0x29, 0x93
+#define STATIC_CODECAPI_AVEncMP12MuxSysVideoLock 0xb8296408, 0x2430, 0x4d37, 0xa2, 0xa1, 0x95, 0xb3, 0xe4, 0x35, 0xa9, 0x1d
+#define STATIC_CODECAPI_AVEncMP12MuxSysAudioLock 0x0fbb5752, 0x1d43, 0x47bf, 0xbd, 0x79, 0xf2, 0x29, 0x3d, 0x8c, 0xe3, 0x37
+#define STATIC_CODECAPI_AVEncMP12MuxDVDNavPacks 0xc7607ced, 0x8cf1, 0x4a99, 0x83, 0xa1, 0xee, 0x54, 0x61, 0xbe, 0x35, 0x74
+#define STATIC_CODECAPI_AVEncMPACopyright 0xa6ae762a, 0xd0a9, 0x4454, 0xb8, 0xef, 0xf2, 0xdb, 0xee, 0xfd, 0xd3, 0xbd
+#define STATIC_CODECAPI_AVEncMPAOriginalBitstream 0x3cfb7855, 0x9cc9, 0x47ff, 0xb8, 0x29, 0xb3, 0x67, 0x86, 0xc9, 0x23, 0x46
+#define STATIC_CODECAPI_AVEncMPAEnableRedundancyProtection 0x5e54b09e, 0xb2e7, 0x4973, 0xa8, 0x9b, 0x0b, 0x36, 0x50, 0xa3, 0xbe, 0xda
+#define STATIC_CODECAPI_AVEncMPAPrivateUserBit 0xafa505ce, 0xc1e3, 0x4e3d, 0x85, 0x1b, 0x61, 0xb7, 0x00, 0xe5, 0xe6, 0xcc
+#define STATIC_CODECAPI_AVEncMPAEmphasisType 0x2d59fcda, 0xbf4e, 0x4ed6, 0xb5, 0xdf, 0x5b, 0x03, 0xb3, 0x6b, 0x0a, 0x1f
+#define STATIC_CODECAPI_AVDecCommonMeanBitRate 0x59488217, 0x007a, 0x4f7a, 0x8e, 0x41, 0x5c, 0x48, 0xb1, 0xea, 0xc5, 0xc6
+#define STATIC_CODECAPI_AVDecCommonMeanBitRateInterval  0x0ee437c6, 0x38a7, 0x4c5c, 0x94, 0x4c, 0x68, 0xab, 0x42, 0x11, 0x6b, 0x85
+#define STATIC_CODECAPI_AVDecCommonInputFormat 0xe5005239, 0xbd89, 0x4be3, 0x9c, 0x0f, 0x5d, 0xde, 0x31, 0x79, 0x88, 0xcc
+#define STATIC_CODECAPI_AVDecCommonOutputFormat 0x3c790028, 0xc0ce, 0x4256, 0xb1, 0xa2, 0x1b, 0x0f, 0xc8, 0xb1, 0xdc, 0xdc
+#define STATIC_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Stereo_MatrixEncoded 0x696e1d30, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd
+#define STATIC_CODECAPI_GUID_AVDecAudioOutputFormat_PCM 0x696e1d31, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd
+#define STATIC_CODECAPI_GUID_AVDecAudioOutputFormat_SPDIF_PCM 0x696e1d32, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd
+#define STATIC_CODECAPI_GUID_AVDecAudioOutputFormat_SPDIF_Bitstream 0x696e1d33, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd
+#define STATIC_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Headphones 0x696e1d34, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd
+#define STATIC_CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Stereo_Auto 0x696e1d35, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd
+#define STATIC_CODECAPI_AVDecVideoImageSize 0x5ee5747c, 0x6801, 0x4cab, 0xaa, 0xf1, 0x62, 0x48, 0xfa, 0x84, 0x1b, 0xa4
+#define STATIC_CODECAPI_AVDecVideoInputScanType 0x38477e1f, 0x0ea7, 0x42cd, 0x8c, 0xd1, 0x13, 0x0c, 0xed, 0x57, 0xc5, 0x80
+#define STATIC_CODECAPI_AVDecVideoPixelAspectRatio 0xb0cf8245, 0xf32d, 0x41df, 0xb0, 0x2c, 0x87, 0xbd, 0x30, 0x4d, 0x12, 0xab
+#define STATIC_CODECAPI_AVDecVideoAcceleration_MPEG2 0xf7db8a2e, 0x4f48, 0x4ee8, 0xae, 0x31, 0x8b, 0x6e, 0xbe, 0x55, 0x8a, 0xe2
+#define STATIC_CODECAPI_AVDecVideoAcceleration_H264 0xf7db8a2f, 0x4f48, 0x4ee8, 0xae, 0x31, 0x8b, 0x6e, 0xbe, 0x55, 0x8a, 0xe2
+#define STATIC_CODECAPI_AVDecVideoAcceleration_VC1 0xf7db8a30, 0x4f48, 0x4ee8, 0xae, 0x31, 0x8b, 0x6e, 0xbe, 0x55, 0x8a, 0xe2
+#define STATIC_CODECAPI_AVDecVideoProcDeinterlaceCSC 0xf7db8a31, 0x4f48, 0x4ee8, 0xae, 0x31, 0x8b, 0x6e, 0xbe, 0x55, 0x8a, 0xe2
+#define STATIC_CODECAPI_AVDecVideoThumbnailGenerationMode 0x2efd8eee, 0x1150, 0x4328, 0x9c, 0xf5, 0x66, 0xdc, 0xe9, 0x33, 0xfc, 0xf4
+#define STATIC_CODECAPI_AVDecVideoDropPicWithMissingRef 0xf8226383, 0x14c2, 0x4567, 0x97, 0x34, 0x50,  0x4, 0xe9, 0x6f, 0xf8, 0x87
+#define STATIC_CODECAPI_AVDecVideoSoftwareDeinterlaceMode 0x0c08d1ce, 0x9ced, 0x4540, 0xba, 0xe3, 0xce, 0xb3, 0x80, 0x14, 0x11, 0x09
+#define STATIC_CODECAPI_AVDecVideoFastDecodeMode 0x6b529f7d, 0xd3b1, 0x49c6, 0xa9, 0x99, 0x9e, 0xc6, 0x91, 0x1b, 0xed, 0xbf
+#define STATIC_CODECAPI_AVLowLatencyMode 0x9c27891a, 0xed7a, 0x40e1, 0x88, 0xe8, 0xb2, 0x27, 0x27, 0xa0, 0x24, 0xee
+#define STATIC_CODECAPI_AVDecVideoH264ErrorConcealment 0xececace8, 0x3436, 0x462c, 0x92, 0x94, 0xcd, 0x7b, 0xac, 0xd7, 0x58, 0xa9
+#define STATIC_CODECAPI_AVDecVideoMPEG2ErrorConcealment 0x9d2bfe18, 0x728d, 0x48d2, 0xb3, 0x58, 0xbc, 0x7e, 0x43, 0x6c, 0x66, 0x74
+#define STATIC_CODECAPI_AVDecVideoCodecType 0x434528e5, 0x21f0, 0x46b6, 0xb6, 0x2c, 0x9b, 0x1b, 0x6b, 0x65, 0x8c, 0xd1
+#define STATIC_CODECAPI_AVDecVideoDXVAMode 0xf758f09e, 0x7337, 0x4ae7, 0x83, 0x87, 0x73, 0xdc, 0x2d, 0x54, 0xe6, 0x7d
+#define STATIC_CODECAPI_AVDecVideoDXVABusEncryption 0x42153c8b, 0xfd0b, 0x4765, 0xa4, 0x62, 0xdd, 0xd9, 0xe8, 0xbc, 0xc3, 0x88
+#define STATIC_CODECAPI_AVDecVideoSWPowerLevel 0xfb5d2347, 0x4dd8, 0x4509, 0xae, 0xd0, 0xdb, 0x5f, 0xa9, 0xaa, 0x93, 0xf4
+#define STATIC_CODECAPI_AVDecVideoMaxCodedWidth 0x5ae557b8, 0x77af, 0x41f5, 0x9f, 0xa6, 0x4d, 0xb2, 0xfe, 0x1d, 0x4b, 0xca
+#define STATIC_CODECAPI_AVDecVideoMaxCodedHeight 0x7262a16a, 0xd2dc, 0x4e75, 0x9b, 0xa8, 0x65, 0xc0, 0xc6, 0xd3, 0x2b, 0x13
+#define STATIC_CODECAPI_AVDecNumWorkerThreads 0x9561c3e8, 0xea9e, 0x4435, 0x9b, 0x1e, 0xa9, 0x3e, 0x69, 0x18, 0x94, 0xd8
+#define STATIC_CODECAPI_AVDecSoftwareDynamicFormatChange 0x862e2f0a, 0x507b, 0x47ff, 0xaf, 0x47,  0x1, 0xe2, 0x62, 0x42, 0x98, 0xb7
+#define STATIC_CODECAPI_AVDecDisableVideoPostProcessing 0xf8749193, 0x667a, 0x4f2c, 0xa9, 0xe8, 0x5d, 0x4a, 0xf9, 0x24, 0xf0, 0x8f
+#define STATIC_CODECAPI_GUID_AVDecAudioInputWMA 0xc95e8dcf, 0x4058, 0x4204, 0x8c, 0x42, 0xcb, 0x24, 0xd9, 0x1e, 0x4b, 0x9b
+#define STATIC_CODECAPI_GUID_AVDecAudioInputWMAPro 0x0128b7c7, 0xda72, 0x4fe3, 0xbe, 0xf8, 0x5c, 0x52, 0xe3, 0x55, 0x77, 0x04
+#define STATIC_CODECAPI_GUID_AVDecAudioInputDolby 0x8e4228a0, 0xf000, 0x4e0b, 0x8f, 0x54, 0xab, 0x8d, 0x24, 0xad, 0x61, 0xa2
+#define STATIC_CODECAPI_GUID_AVDecAudioInputDTS 0x600bc0ca, 0x6a1f, 0x4e91, 0xb2, 0x41, 0x1b, 0xbe, 0xb1, 0xcb, 0x19, 0xe0
+#define STATIC_CODECAPI_GUID_AVDecAudioInputPCM 0xf2421da5, 0xbbb4, 0x4cd5, 0xa9, 0x96, 0x93, 0x3c, 0x6b, 0x5d, 0x13, 0x47
+#define STATIC_CODECAPI_GUID_AVDecAudioInputMPEG 0x91106f36, 0x02c5, 0x4f75, 0x97, 0x19, 0x3b, 0x7a, 0xbf, 0x75, 0xe1, 0xf6
+#define STATIC_CODECAPI_GUID_AVDecAudioInputAAC 0x97df7828, 0xb94a, 0x47e2, 0xa4, 0xbc, 0x51, 0x19, 0x4d, 0xb2, 0x2a, 0x4d
+#define STATIC_CODECAPI_GUID_AVDecAudioInputHEAAC 0x16efb4aa, 0x330e, 0x4f5c, 0x98, 0xa8, 0xcf, 0x6a, 0xc5, 0x5c, 0xbe, 0x60
+#define STATIC_CODECAPI_GUID_AVDecAudioInputDolbyDigitalPlus  0x0803e185, 0x8f5d, 0x47f5, 0x99, 0x08, 0x19, 0xa5, 0xbb, 0xc9, 0xfe, 0x34
+#define STATIC_CODECAPI_AVDecAACDownmixMode 0x01274475, 0xf6bb, 0x4017, 0xb0, 0x84, 0x81, 0xa7, 0x63, 0xc9, 0x42, 0xd4
+#define STATIC_CODECAPI_AVDecHEAACDynamicRangeControl 0x287c8abe, 0x69a4, 0x4d39, 0x80, 0x80, 0xd3, 0xd9, 0x71, 0x21, 0x78, 0xa0
+#define STATIC_CODECAPI_AVDecAudioDualMono 0x4a52cda8, 0x30f8, 0x4216, 0xbe, 0x0f, 0xba, 0x0b, 0x20, 0x25, 0x92, 0x1d
+#define STATIC_CODECAPI_AVDecAudioDualMonoReproMode 0xa5106186, 0xcc94, 0x4bc9, 0x8c, 0xd9, 0xaa, 0x2f, 0x61, 0xf6, 0x80, 0x7e
+#define STATIC_CODECAPI_AVAudioChannelCount 0x1d3583c4, 0x1583, 0x474e, 0xb7, 0x1a, 0x5e, 0xe4, 0x63, 0xc1, 0x98, 0xe4
+#define STATIC_CODECAPI_AVAudioChannelConfig 0x17f89cb3, 0xc38d, 0x4368, 0x9e, 0xde, 0x63, 0xb9, 0x4d, 0x17, 0x7f, 0x9f
+#define STATIC_CODECAPI_AVAudioSampleRate 0x971d2723, 0x1acb, 0x42e7, 0x85, 0x5c, 0x52, 0x0a, 0x4b, 0x70, 0xa5, 0xf2
+#define STATIC_CODECAPI_AVDDSurroundMode 0x99f2f386, 0x98d1, 0x4452, 0xa1, 0x63, 0xab, 0xc7, 0x8a, 0x6e, 0xb7, 0x70
+#define STATIC_CODECAPI_AVDecDDOperationalMode 0xd6d6c6d1, 0x064e, 0x4fdd, 0xa4, 0x0e, 0x3e, 0xcb, 0xfc, 0xb7, 0xeb, 0xd0
+#define STATIC_CODECAPI_AVDecDDMatrixDecodingMode 0xddc811a5, 0x04ed, 0x4bf3, 0xa0, 0xca, 0xd0, 0x04, 0x49, 0xf9, 0x35, 0x5f
+#define STATIC_CODECAPI_AVDecDDDynamicRangeScaleHigh 0x50196c21, 0x1f33, 0x4af5, 0xb2, 0x96, 0x11, 0x42, 0x6d, 0x6c, 0x87, 0x89
+#define STATIC_CODECAPI_AVDecDDDynamicRangeScaleLow 0x044e62e4, 0x11a5, 0x42d5, 0xa3, 0xb2, 0x3b, 0xb2, 0xc7, 0xc2, 0xd7, 0xcf
+#define STATIC_CODECAPI_AVDecDDStereoDownMixMode 0x6ce4122c, 0x3ee9, 0x4182, 0xb4, 0xae, 0xc1, 0x0f, 0xc0, 0x88, 0x64, 0x9d
+#define STATIC_CODECAPI_AVDSPLoudnessEqualization 0x8afd1a15, 0x1812, 0x4cbf, 0x93, 0x19, 0x43, 0x3a, 0x5b, 0x2a, 0x3b, 0x27
+#define STATIC_CODECAPI_AVDSPSpeakerFill 0x5612bca1, 0x56da, 0x4582, 0x8d, 0xa1, 0xca, 0x80, 0x90, 0xf9, 0x27, 0x68
+#define STATIC_CODECAPI_AVPriorityControl 0x54ba3dc8, 0xbdde, 0x4329, 0xb1, 0x87, 0x20, 0x18, 0xbc, 0x5c, 0x2b, 0xa1
+#define STATIC_CODECAPI_AVRealtimeControl 0x6f440632, 0xc4ad, 0x4bf7, 0x9e, 0x52, 0x45, 0x69, 0x42, 0xb4, 0x54, 0xb0
+#define STATIC_CODECAPI_AVEncMaxFrameRate 0xb98e1b31, 0x19fa, 0x4d4f, 0x99, 0x31, 0xd6, 0xa5, 0xb8, 0xaa, 0xb9, 0x3c
+#define STATIC_CODECAPI_AVEncNoInputCopy 0xd2b46a2a, 0xe8ee, 0x4ec5, 0x86, 0x9e, 0x44, 0x9b, 0x6c, 0x62, 0xc8, 0x1a
+#define STATIC_CODECAPI_AVEncChromaEncodeMode 0x8a47ab5a, 0x4798, 0x4c93, 0xb5, 0xa5, 0x55, 0x4f, 0x9a, 0x3b, 0x9f, 0x50
+
+DEFINE_CODECAPI_GUID(AVEncCommonFormatConstraint, "57cbb9b8-116f-4951-b40c-c2a035ed8f17", 0x57cbb9b8, 0x116f, 0x4951, 0xb4, 0x0c, 0xc2, 0xa0, 0x35, 0xed, 0x8f, 0x17)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatUnSpecified, "af46a35a-6024-4525-a48a-094b97f5b3c2", 0xaf46a35a, 0x6024, 0x4525, 0xa4, 0x8a, 0x09, 0x4b, 0x97, 0xf5, 0xb3, 0xc2)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatDVD_V, "cc9598c4-e7fe-451d-b1ca-761bc840b7f3", 0xcc9598c4, 0xe7fe, 0x451d, 0xb1, 0xca, 0x76, 0x1b, 0xc8, 0x40, 0xb7, 0xf3)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatDVD_DashVR, "e55199d6-044c-4dae-a488-531ed306235b", 0xe55199d6, 0x044c, 0x4dae, 0xa4, 0x88, 0x53, 0x1e, 0xd3, 0x06, 0x23, 0x5b)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatDVD_PlusVR, "e74c6f2e-ec37-478d-9af4-a5e135b6271c", 0xe74c6f2e, 0xec37, 0x478d, 0x9a, 0xf4, 0xa5, 0xe1, 0x35, 0xb6, 0x27, 0x1c)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatVCD, "95035bf7-9d90-40ff-ad5c-5cf8cf71ca1d", 0x95035bf7, 0x9d90, 0x40ff, 0xad, 0x5c, 0x5c, 0xf8, 0xcf, 0x71, 0xca, 0x1d)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatSVCD, "51d85818-8220-448c-8066-d69bed16c9ad", 0x51d85818, 0x8220, 0x448c, 0x80, 0x66, 0xd6, 0x9b, 0xed, 0x16, 0xc9, 0xad)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatATSC, "8d7b897c-a019-4670-aa76-2edcac7ac296", 0x8d7b897c, 0xa019, 0x4670, 0xaa, 0x76, 0x2e, 0xdc, 0xac, 0x7a, 0xc2, 0x96)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatDVB, "71830d8f-6c33-430d-844b-c2705baae6db", 0x71830d8f, 0x6c33, 0x430d, 0x84, 0x4b, 0xc2, 0x70, 0x5b, 0xaa, 0xe6, 0xdb)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatMP3, "349733cd-eb08-4dc2-8197-e49835ef828b", 0x349733cd, 0xeb08, 0x4dc2, 0x81, 0x97, 0xe4, 0x98, 0x35, 0xef, 0x82, 0x8b)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatHighMAT, "1eabe760-fb2b-4928-90d1-78db88eee889", 0x1eabe760, 0xfb2b, 0x4928, 0x90, 0xd1, 0x78, 0xdb, 0x88, 0xee, 0xe8, 0x89)
+DEFINE_CODECAPI_GUID(GUID_AVEncCommonFormatHighMPV, "a2d25db8-b8f9-42c2-8bc7-0b93cf604788", 0xa2d25db8, 0xb8f9, 0x42c2, 0x8b, 0xc7, 0x0b, 0x93, 0xcf, 0x60, 0x47, 0x88)
+DEFINE_CODECAPI_GUID(AVEncCodecType, "08af4ac1-f3f2-4c74-9dcf-37f2ec79f826", 0x08af4ac1, 0xf3f2, 0x4c74, 0x9d, 0xcf, 0x37, 0xf2, 0xec, 0x79, 0xf8, 0x26)
+DEFINE_CODECAPI_GUID(GUID_AVEncMPEG1Video, "c8dafefe-da1e-4774-b27d-11830c16b1fe", 0xc8dafefe, 0xda1e, 0x4774, 0xb2, 0x7d, 0x11, 0x83, 0x0c, 0x16, 0xb1, 0xfe)
+DEFINE_CODECAPI_GUID(GUID_AVEncMPEG2Video, "046dc19a-6677-4aaa-a31d-c1ab716f4560", 0x046dc19a, 0x6677, 0x4aaa, 0xa3, 0x1d, 0xc1, 0xab, 0x71, 0x6f, 0x45, 0x60)
+DEFINE_CODECAPI_GUID(GUID_AVEncMPEG1Audio, "d4dd1362-cd4a-4cd6-8138-b94db4542b04", 0xd4dd1362, 0xcd4a, 0x4cd6, 0x81, 0x38, 0xb9, 0x4d, 0xb4, 0x54, 0x2b, 0x04)
+DEFINE_CODECAPI_GUID(GUID_AVEncMPEG2Audio, "ee4cbb1f-9c3f-4770-92b5-fcb7c2a8d381", 0xee4cbb1f, 0x9c3f, 0x4770, 0x92, 0xb5, 0xfc, 0xb7, 0xc2, 0xa8, 0xd3, 0x81)
+DEFINE_CODECAPI_GUID(GUID_AVEncWMV, "4e0fef9b-1d43-41bd-b8bd-4d7bf7457a2a", 0x4e0fef9b, 0x1d43, 0x41bd, 0xb8, 0xbd, 0x4d, 0x7b, 0xf7, 0x45, 0x7a, 0x2a)
+DEFINE_CODECAPI_GUID(GUID_AVEndMPEG4Video, "dd37b12a-9503-4f8b-b8d0-324a00c0a1cf", 0xdd37b12a, 0x9503, 0x4f8b, 0xb8, 0xd0, 0x32, 0x4a, 0x00, 0xc0, 0xa1, 0xcf)
+DEFINE_CODECAPI_GUID(GUID_AVEncH264Video, "95044eab-31b3-47de-8e75-38a42bb03e28", 0x95044eab, 0x31b3, 0x47de, 0x8e, 0x75, 0x38, 0xa4, 0x2b, 0xb0, 0x3e, 0x28)
+DEFINE_CODECAPI_GUID(GUID_AVEncDV, "09b769c7-3329-44fb-8954-fa30937d3d5a", 0x09b769c7, 0x3329, 0x44fb, 0x89, 0x54, 0xfa, 0x30, 0x93, 0x7d, 0x3d, 0x5a)
+DEFINE_CODECAPI_GUID(GUID_AVEncWMAPro, "1955f90c-33f7-4a68-ab81-53f5657125c4", 0x1955f90c, 0x33f7, 0x4a68, 0xab, 0x81, 0x53, 0xf5, 0x65, 0x71, 0x25, 0xc4)
+DEFINE_CODECAPI_GUID(GUID_AVEncWMALossless, "55ca7265-23d8-4761-9031-b74fbe12f4c1", 0x55ca7265, 0x23d8, 0x4761, 0x90, 0x31, 0xb7, 0x4f, 0xbe, 0x12, 0xf4, 0xc1)
+DEFINE_CODECAPI_GUID(GUID_AVEncWMAVoice, "13ed18cb-50e8-4276-a288-a6aa228382d9", 0x13ed18cb, 0x50e8, 0x4276, 0xa2, 0x88, 0xa6, 0xaa, 0x22, 0x83, 0x82, 0xd9)
+DEFINE_CODECAPI_GUID(GUID_AVEncDolbyDigitalPro, "f5be76cc-0ff8-40eb-9cb1-bba94004d44f", 0xf5be76cc, 0x0ff8, 0x40eb, 0x9c, 0xb1, 0xbb, 0xa9, 0x40, 0x04, 0xd4, 0x4f)
+DEFINE_CODECAPI_GUID(GUID_AVEncDolbyDigitalConsumer, "c1a7bf6c-0059-4bfa-94ef-ef747a768d52", 0xc1a7bf6c, 0x0059, 0x4bfa, 0x94, 0xef, 0xef, 0x74, 0x7a, 0x76, 0x8d, 0x52)
+DEFINE_CODECAPI_GUID(GUID_AVEncDolbyDigitalPlus, "698d1b80-f7dd-415c-971c-42492a2056c6", 0x698d1b80, 0xf7dd, 0x415c, 0x97, 0x1c, 0x42, 0x49, 0x2a, 0x20, 0x56, 0xc6)
+DEFINE_CODECAPI_GUID(GUID_AVEncDTSHD, "2052e630-469d-4bfb-80ca-1d656e7e918f", 0x2052e630, 0x469d, 0x4bfb, 0x80, 0xca, 0x1d, 0x65, 0x6e, 0x7e, 0x91, 0x8f)
+DEFINE_CODECAPI_GUID(GUID_AVEncDTS, "45fbcaa2-5e6e-4ab0-8893-5903bee93acf", 0x45fbcaa2, 0x5e6e, 0x4ab0, 0x88, 0x93, 0x59, 0x03, 0xbe, 0xe9, 0x3a, 0xcf)
+DEFINE_CODECAPI_GUID(GUID_AVEncMLP, "05f73e29-f0d1-431e-a41c-a47432ec5a66", 0x05f73e29, 0xf0d1, 0x431e, 0xa4, 0x1c, 0xa4, 0x74, 0x32, 0xec, 0x5a, 0x66)
+DEFINE_CODECAPI_GUID(GUID_AVEncPCM, "844be7f4-26cf-4779-b386-cc05d187990c", 0x844be7f4, 0x26cf, 0x4779, 0xb3, 0x86, 0xcc, 0x05, 0xd1, 0x87, 0x99, 0x0c)
+DEFINE_CODECAPI_GUID(GUID_AVEncSDDS, "1dc1b82f-11c8-4c71-b7b6-ee3eb9bc2b94", 0x1dc1b82f, 0x11c8, 0x4c71, 0xb7, 0xb6, 0xee, 0x3e, 0xb9, 0xbc, 0x2b, 0x94)
+DEFINE_CODECAPI_GUID(AVEncCommonRateControlMode, "1c0608e9-370c-4710-8a58-cb6181c42423", 0x1c0608e9, 0x370c, 0x4710, 0x8a, 0x58, 0xcb, 0x61, 0x81, 0xc4, 0x24, 0x23)
+DEFINE_CODECAPI_GUID(AVEncCommonLowLatency, "9d3ecd55-89e8-490a-970a-0c9548d5a56e", 0x9d3ecd55, 0x89e8, 0x490a, 0x97, 0x0a, 0x0c, 0x95, 0x48, 0xd5, 0xa5, 0x6e)
+DEFINE_CODECAPI_GUID(AVEncCommonMultipassMode, "22533d4c-47e1-41b5-9352-a2b7780e7ac4", 0x22533d4c, 0x47e1, 0x41b5, 0x93, 0x52, 0xa2, 0xb7, 0x78, 0x0e, 0x7a, 0xc4)
+DEFINE_CODECAPI_GUID(AVEncCommonPassStart, "6a67739f-4eb5-4385-9928-f276a939ef95", 0x6a67739f, 0x4eb5, 0x4385, 0x99, 0x28, 0xf2, 0x76, 0xa9, 0x39, 0xef, 0x95)
+DEFINE_CODECAPI_GUID(AVEncCommonPassEnd, "0e3d01bc-c85c-467d-8b60-c41012ee3bf6", 0x0e3d01bc, 0xc85c, 0x467d, 0x8b, 0x60, 0xc4, 0x10, 0x12, 0xee, 0x3b, 0xf6)
+DEFINE_CODECAPI_GUID(AVEncCommonRealTime, "143a0ff6-a131-43da-b81e-98fbb8ec378e", 0x143a0ff6, 0xa131, 0x43da, 0xb8, 0x1e, 0x98, 0xfb, 0xb8, 0xec, 0x37, 0x8e)
+DEFINE_CODECAPI_GUID(AVEncCommonQuality, "fcbf57a3-7ea5-4b0c-9644-69b40c39c391", 0xfcbf57a3, 0x7ea5, 0x4b0c, 0x96, 0x44, 0x69, 0xb4, 0x0c, 0x39, 0xc3, 0x91)
+DEFINE_CODECAPI_GUID(AVEncCommonQualityVsSpeed, "98332df8-03cd-476b-89fa-3f9e442dec9f", 0x98332df8, 0x03cd, 0x476b, 0x89, 0xfa, 0x3f, 0x9e, 0x44, 0x2d, 0xec, 0x9f)
+DEFINE_CODECAPI_GUID(AVEncCommonTranscodeEncodingProfile, "6947787c-f508-4ea9-b1e9-a1fe3a49fbc9", 0x6947787c, 0xf508, 0x4ea9, 0xb1, 0xe9, 0xa1, 0xfe, 0x3a, 0x49, 0xfb, 0xc9)
+DEFINE_CODECAPI_GUID(AVEncCommonMeanBitRate, "f7222374-2144-4815-b550-a37f8e12ee52", 0xf7222374, 0x2144, 0x4815, 0xb5, 0x50, 0xa3, 0x7f, 0x8e, 0x12, 0xee, 0x52)
+DEFINE_CODECAPI_GUID(AVEncCommonMeanBitRateInterval, "bfaa2f0c-cb82-4bc0-8474-f06a8a0d0258", 0xbfaa2f0c, 0xcb82, 0x4bc0, 0x84, 0x74, 0xf0, 0x6a, 0x8a, 0x0d, 0x02, 0x58)
+DEFINE_CODECAPI_GUID(AVEncCommonMaxBitRate, "9651eae4-39b9-4ebf-85ef-d7f444ec7465", 0x9651eae4, 0x39b9, 0x4ebf, 0x85, 0xef, 0xd7, 0xf4, 0x44, 0xec, 0x74, 0x65)
+DEFINE_CODECAPI_GUID(AVEncCommonMinBitRate, "101405b2-2083-4034-a806-efbeddd7c9ff", 0x101405b2, 0x2083, 0x4034, 0xa8, 0x06, 0xef, 0xbe, 0xdd, 0xd7, 0xc9, 0xff)
+DEFINE_CODECAPI_GUID(AVEncCommonBufferSize, "0db96574-b6a4-4c8b-8106-3773de0310cd", 0x0db96574, 0xb6a4, 0x4c8b, 0x81, 0x06, 0x37, 0x73, 0xde, 0x03, 0x10, 0xcd)
+DEFINE_CODECAPI_GUID(AVEncCommonBufferInLevel, "d9c5c8db-fc74-4064-94e9-cd19f947ed45", 0xd9c5c8db, 0xfc74, 0x4064, 0x94, 0xe9, 0xcd, 0x19, 0xf9, 0x47, 0xed, 0x45)
+DEFINE_CODECAPI_GUID(AVEncCommonBufferOutLevel, "ccae7f49-d0bc-4e3d-a57e-fb5740140069", 0xccae7f49, 0xd0bc, 0x4e3d, 0xa5, 0x7e, 0xfb, 0x57, 0x40, 0x14, 0x00, 0x69)
+DEFINE_CODECAPI_GUID(AVEncCommonStreamEndHandling, "6aad30af-6ba8-4ccc-8fca-18d19beaeb1c", 0x6aad30af, 0x6ba8, 0x4ccc, 0x8f, 0xca, 0x18, 0xd1, 0x9b, 0xea, 0xeb, 0x1c)
+DEFINE_CODECAPI_GUID(AVEncStatCommonCompletedPasses, "3e5de533-9df7-438c-854f-9f7dd3683d34", 0x3e5de533, 0x9df7, 0x438c, 0x85, 0x4f, 0x9f, 0x7d, 0xd3, 0x68, 0x3d, 0x34)
+DEFINE_CODECAPI_GUID(AVEncVideoOutputFrameRate, "ea85e7c3-9567-4d99-87c4-02c1c278ca7c", 0xea85e7c3, 0x9567, 0x4d99, 0x87, 0xc4, 0x02, 0xc1, 0xc2, 0x78, 0xca, 0x7c)
+DEFINE_CODECAPI_GUID(AVEncVideoOutputFrameRateConversion, "8c068bf4-369a-4ba3-82fd-b2518fb3396e", 0x8c068bf4, 0x369a, 0x4ba3, 0x82, 0xfd, 0xb2, 0x51, 0x8f, 0xb3, 0x39, 0x6e)
+DEFINE_CODECAPI_GUID(AVEncVideoPixelAspectRatio, "3cdc718f-b3e9-4eb6-a57f-cf1f1b321b87", 0x3cdc718f, 0xb3e9, 0x4eb6, 0xa5, 0x7f, 0xcf, 0x1f, 0x1b, 0x32, 0x1b, 0x87)
+DEFINE_CODECAPI_GUID(AVDecVideoAcceleration_MPEG2, "f7db8a2e-4f48-4ee8-ae31-8b6ebe558ae2", 0xf7db8a2e, 0x4f48, 0x4ee8, 0xae, 0x31, 0x8b, 0x6e, 0xbe, 0x55, 0x8a, 0xe2)
+DEFINE_CODECAPI_GUID(AVDecVideoAcceleration_H264, "f7db8a2f-4f48-4ee8-ae31-8b6ebe558ae2", 0xf7db8a2f, 0x4f48, 0x4ee8, 0xae, 0x31, 0x8b, 0x6e, 0xbe, 0x55, 0x8a, 0xe2)
+DEFINE_CODECAPI_GUID(AVDecVideoAcceleration_VC1, "f7db8a30-4f48-4ee8-ae31-8b6ebe558ae2", 0xf7db8a30, 0x4f48, 0x4ee8, 0xae, 0x31, 0x8b, 0x6e, 0xbe, 0x55, 0x8a, 0xe2)
+DEFINE_CODECAPI_GUID(AVDecVideoProcDeinterlaceCSC, "f7db8a31-4f48-4ee8-ae31-8b6ebe558ae2", 0xf7db8a31, 0x4f48, 0x4ee8, 0xae, 0x31, 0x8b, 0x6e, 0xbe, 0x55, 0x8a, 0xe2)
+DEFINE_CODECAPI_GUID(AVDecVideoThumbnailGenerationMode, "2efd8eee-1150-4328-9cf5-66dce933fcf4", 0x2efd8eee, 0x1150, 0x4328, 0x9c, 0xf5, 0x66, 0xdc, 0xe9, 0x33, 0xfc, 0xf4)
+DEFINE_CODECAPI_GUID(AVDecVideoMaxCodedWidth, "5ae557b8-77af-41f5-9fa6-4db2fe1d4bca", 0x5ae557b8, 0x77af, 0x41f5, 0x9f, 0xa6, 0x4d, 0xb2, 0xfe, 0x1d, 0x4b, 0xca)
+DEFINE_CODECAPI_GUID(AVDecVideoMaxCodedHeight, "7262a16a-d2dc-4e75-9ba8-65c0c6d32b13", 0x7262a16a, 0xd2dc, 0x4e75, 0x9b, 0xa8, 0x65, 0xc0, 0xc6, 0xd3, 0x2b, 0x13)
+DEFINE_CODECAPI_GUID(AVDecNumWorkerThreads, "9561c3e8-ea9e-4435-9b1e-a93e691894d8", 0x9561c3e8, 0xea9e, 0x4435, 0x9b, 0x1e, 0xa9, 0x3e, 0x69, 0x18, 0x94, 0xd8)
+DEFINE_CODECAPI_GUID(AVDecSoftwareDynamicFormatChange, "862e2f0a-507b-47ff-af47-01e2624298b7", 0x862e2f0a, 0x507b, 0x47ff, 0xaf, 0x47, 0x1, 0xe2, 0x62, 0x42, 0x98, 0xb7)
+DEFINE_CODECAPI_GUID(AVDecDisableVideoPostProcessing, "f8749193-667a-4f2c-a9e8-5d4af924f08f", 0xf8749193, 0x667a, 0x4f2c, 0xa9, 0xe8, 0x5d, 0x4a, 0xf9, 0x24, 0xf0, 0x8f);
+DEFINE_CODECAPI_GUID(AVDecVideoDropPicWithMissingRef, "f8226383-14c2-4567-9734-5004e96ff887", 0xf8226383, 0x14c2, 0x4567, 0x97, 0x34, 0x50, 0x4, 0xe9, 0x6f, 0xf8, 0x87)
+DEFINE_CODECAPI_GUID(AVDecVideoSoftwareDeinterlaceMode, "0c08d1ce-9ced-4540-bae3-ceb380141109", 0x0c08d1ce, 0x9ced, 0x4540, 0xba, 0xe3, 0xce, 0xb3, 0x80, 0x14, 0x11, 0x09);
+DEFINE_CODECAPI_GUID(AVDecVideoFastDecodeMode, "6b529f7d-d3b1-49c6-a999-9ec6911bedbf", 0x6b529f7d, 0xd3b1, 0x49c6, 0xa9, 0x99, 0x9e, 0xc6, 0x91, 0x1b, 0xed, 0xbf);
+DEFINE_CODECAPI_GUID(AVLowLatencyMode, "9c27891a-ed7a-40e1-88e8-b22727a024ee", 0x9c27891a, 0xed7a, 0x40e1, 0x88, 0xe8, 0xb2, 0x27, 0x27, 0xa0, 0x24, 0xee)
+DEFINE_CODECAPI_GUID(AVDecVideoH264ErrorConcealment, "ececace8-3436-462c-9294-cd7bacd758a9", 0xececace8, 0x3436, 0x462c, 0x92, 0x94, 0xcd, 0x7b, 0xac, 0xd7, 0x58, 0xa9)
+DEFINE_CODECAPI_GUID(AVDecVideoMPEG2ErrorConcealment, "9d2bfe18-728d-48d2-b358-bc7e436c6674", 0x9d2bfe18, 0x728d, 0x48d2, 0xb3, 0x58, 0xbc, 0x7e, 0x43, 0x6c, 0x66, 0x74)
+DEFINE_CODECAPI_GUID(AVDecVideoCodecType, "434528e5-21f0-46b6-b62c-9b1b6b658cd1", 0x434528e5, 0x21f0, 0x46b6, 0xb6, 0x2c, 0x9b, 0x1b, 0x6b, 0x65, 0x8c, 0xd1);
+DEFINE_CODECAPI_GUID(AVDecVideoDXVAMode, "f758f09e-7337-4ae7-8387-73dc2d54e67d", 0xf758f09e, 0x7337, 0x4ae7, 0x83, 0x87, 0x73, 0xdc, 0x2d, 0x54, 0xe6, 0x7d);
+DEFINE_CODECAPI_GUID(AVDecVideoDXVABusEncryption, "42153c8b-fd0b-4765-a462-ddd9e8bcc388", 0x42153c8b, 0xfd0b, 0x4765, 0xa4, 0x62, 0xdd, 0xd9, 0xe8, 0xbc, 0xc3, 0x88);
+DEFINE_CODECAPI_GUID(AVEncVideoForceSourceScanType, "1ef2065f-058a-4765-a4fc-8a864c103012", 0x1ef2065f, 0x058a, 0x4765, 0xa4, 0xfc, 0x8a, 0x86, 0x4c, 0x10, 0x30, 0x12)
+DEFINE_CODECAPI_GUID(AVEncVideoNoOfFieldsToEncode, "61e4bbe2-4ee0-40e7-80ab-51ddeebe6291", 0x61e4bbe2, 0x4ee0, 0x40e7, 0x80, 0xab, 0x51, 0xdd, 0xee, 0xbe, 0x62, 0x91)
+DEFINE_CODECAPI_GUID(AVEncVideoNoOfFieldsToSkip, "a97e1240-1427-4c16-a7f7-3dcfd8ba4cc5", 0xa97e1240, 0x1427, 0x4c16, 0xa7, 0xf7, 0x3d, 0xcf, 0xd8, 0xba, 0x4c, 0xc5)
+DEFINE_CODECAPI_GUID(AVEncVideoEncodeDimension, "1074df28-7e0f-47a4-a453-cdd73870f5ce", 0x1074df28, 0x7e0f, 0x47a4, 0xa4, 0x53, 0xcd, 0xd7, 0x38, 0x70, 0xf5, 0xce)
+DEFINE_CODECAPI_GUID(AVEncVideoEncodeOffsetOrigin, "6bc098fe-a71a-4454-852e-4d2ddeb2cd24", 0x6bc098fe, 0xa71a, 0x4454, 0x85, 0x2e, 0x4d, 0x2d, 0xde, 0xb2, 0xcd, 0x24)
+DEFINE_CODECAPI_GUID(AVEncVideoDisplayDimension, "de053668-f4ec-47a9-86d0-836770f0c1d5", 0xde053668, 0xf4ec, 0x47a9, 0x86, 0xd0, 0x83, 0x67, 0x70, 0xf0, 0xc1, 0xd5)
+DEFINE_CODECAPI_GUID(AVEncVideoOutputScanType, "460b5576-842e-49ab-a62d-b36f7312c9db", 0x460b5576, 0x842e, 0x49ab, 0xa6, 0x2d, 0xb3, 0x6f, 0x73, 0x12, 0xc9, 0xdb)
+DEFINE_CODECAPI_GUID(AVEncVideoInverseTelecineEnable, "2ea9098b-e76d-4ccd-a030-d3b889c1b64c", 0x2ea9098b, 0xe76d, 0x4ccd, 0xa0, 0x30, 0xd3, 0xb8, 0x89, 0xc1, 0xb6, 0x4c)
+DEFINE_CODECAPI_GUID(AVEncVideoInverseTelecineThreshold, "40247d84-e895-497f-b44c-b74560acfe27", 0x40247d84, 0xe895, 0x497f, 0xb4, 0x4c, 0xb7, 0x45, 0x60, 0xac, 0xfe, 0x27)
+DEFINE_CODECAPI_GUID(AVEncVideoSourceFilmContent, "1791c64b-ccfc-4827-a0ed-2557793b2b1c", 0x1791c64b, 0xccfc, 0x4827, 0xa0, 0xed, 0x25, 0x57, 0x79, 0x3b, 0x2b, 0x1c)
+DEFINE_CODECAPI_GUID(AVEncVideoSourceIsBW, "42ffc49b-1812-4fdc-8d24-7054c521e6eb", 0x42ffc49b, 0x1812, 0x4fdc, 0x8d, 0x24, 0x70, 0x54, 0xc5, 0x21, 0xe6, 0xeb)
+DEFINE_CODECAPI_GUID(AVEncVideoFieldSwap, "fefd7569-4e0a-49f2-9f2b-360ea48c19a2", 0xfefd7569, 0x4e0a, 0x49f2, 0x9f, 0x2b, 0x36, 0x0e, 0xa4, 0x8c, 0x19, 0xa2)
+DEFINE_CODECAPI_GUID(AVEncVideoInputChromaResolution, "bb0cec33-16f1-47b0-8a88-37815bee1739", 0xbb0cec33, 0x16f1, 0x47b0, 0x8a, 0x88, 0x37, 0x81, 0x5b, 0xee, 0x17, 0x39)
+DEFINE_CODECAPI_GUID(AVEncVideoOutputChromaResolution, "6097b4c9-7c1d-4e64-bfcc-9e9765318ae7", 0x6097b4c9, 0x7c1d, 0x4e64, 0xbf, 0xcc, 0x9e, 0x97, 0x65, 0x31, 0x8a, 0xe7)
+DEFINE_CODECAPI_GUID(AVEncVideoInputChromaSubsampling, "a8e73a39-4435-4ec3-a6ea-98300f4b36f7", 0xa8e73a39, 0x4435, 0x4ec3, 0xa6, 0xea, 0x98, 0x30, 0x0f, 0x4b, 0x36, 0xf7)
+DEFINE_CODECAPI_GUID(AVEncVideoOutputChromaSubsampling, "fa561c6c-7d17-44f0-83c9-32ed12e96343", 0xfa561c6c, 0x7d17, 0x44f0, 0x83, 0xc9, 0x32, 0xed, 0x12, 0xe9, 0x63, 0x43)
+DEFINE_CODECAPI_GUID(AVEncVideoInputColorPrimaries, "c24d783f-7ce6-4278-90ab-28a4f1e5f86c", 0xc24d783f, 0x7ce6, 0x4278, 0x90, 0xab, 0x28, 0xa4, 0xf1, 0xe5, 0xf8, 0x6c)
+DEFINE_CODECAPI_GUID(AVEncVideoOutputColorPrimaries, "be95907c-9d04-4921-8985-a6d6d87d1a6c", 0xbe95907c, 0x9d04, 0x4921, 0x89, 0x85, 0xa6, 0xd6, 0xd8, 0x7d, 0x1a, 0x6c)
+DEFINE_CODECAPI_GUID(AVEncVideoInputColorTransferFunction, "8c056111-a9c3-4b08-a0a0-ce13f8a27c75", 0x8c056111, 0xa9c3, 0x4b08, 0xa0, 0xa0, 0xce, 0x13, 0xf8, 0xa2, 0x7c, 0x75)
+DEFINE_CODECAPI_GUID(AVEncVideoOutputColorTransferFunction, "4a7f884a-ea11-460d-bf57-b88bc75900de", 0x4a7f884a, 0xea11, 0x460d, 0xbf, 0x57, 0xb8, 0x8b, 0xc7, 0x59, 0x00, 0xde)
+DEFINE_CODECAPI_GUID(AVEncVideoInputColorTransferMatrix, "52ed68b9-72d5-4089-958d-f5405d55081c", 0x52ed68b9, 0x72d5, 0x4089, 0x95, 0x8d, 0xf5, 0x40, 0x5d, 0x55, 0x08, 0x1c)
+DEFINE_CODECAPI_GUID(AVEncVideoOutputColorTransferMatrix, "a9b90444-af40-4310-8fbe-ed6d933f892b", 0xa9b90444, 0xaf40, 0x4310, 0x8f, 0xbe, 0xed, 0x6d, 0x93, 0x3f, 0x89, 0x2b)
+DEFINE_CODECAPI_GUID(AVEncVideoInputColorLighting, "46a99549-0015-4a45-9c30-1d5cfa258316", 0x46a99549, 0x0015, 0x4a45, 0x9c, 0x30, 0x1d, 0x5c, 0xfa, 0x25, 0x83, 0x16)
+DEFINE_CODECAPI_GUID(AVEncVideoOutputColorLighting, "0e5aaac6-ace6-4c5c-998e-1a8c9c6c0f89", 0x0e5aaac6, 0xace6, 0x4c5c, 0x99, 0x8e, 0x1a, 0x8c, 0x9c, 0x6c, 0x0f, 0x89)
+DEFINE_CODECAPI_GUID(AVEncVideoInputColorNominalRange, "16cf25c6-a2a6-48e9-ae80-21aec41d427e", 0x16cf25c6, 0xa2a6, 0x48e9, 0xae, 0x80, 0x21, 0xae, 0xc4, 0x1d, 0x42, 0x7e)
+DEFINE_CODECAPI_GUID(AVEncVideoOutputColorNominalRange, "972835ed-87b5-4e95-9500-c73958566e54", 0x972835ed, 0x87b5, 0x4e95, 0x95, 0x00, 0xc7, 0x39, 0x58, 0x56, 0x6e, 0x54)
+DEFINE_CODECAPI_GUID(AVEncInputVideoSystem, "bede146d-b616-4dc7-92b2-f5d9fa9298f7", 0xbede146d, 0xb616, 0x4dc7, 0x92, 0xb2, 0xf5, 0xd9, 0xfa, 0x92, 0x98, 0xf7)
+DEFINE_CODECAPI_GUID(AVEncVideoHeaderDropFrame, "6ed9e124-7925-43fe-971b-e019f62222b4", 0x6ed9e124, 0x7925, 0x43fe, 0x97, 0x1b, 0xe0, 0x19, 0xf6, 0x22, 0x22, 0xb4)
+DEFINE_CODECAPI_GUID(AVEncVideoHeaderHours, "2acc7702-e2da-4158-bf9b-88880129d740", 0x2acc7702, 0xe2da, 0x4158, 0xbf, 0x9b, 0x88, 0x88, 0x01, 0x29, 0xd7, 0x40)
+DEFINE_CODECAPI_GUID(AVEncVideoHeaderMinutes, "dc1a99ce-0307-408b-880b-b8348ee8ca7f", 0xdc1a99ce, 0x0307, 0x408b, 0x88, 0x0b, 0xb8, 0x34, 0x8e, 0xe8, 0xca, 0x7f)
+DEFINE_CODECAPI_GUID(AVEncVideoHeaderSeconds, "4a2e1a05-a780-4f58-8120-9a449d69656b", 0x4a2e1a05, 0xa780, 0x4f58, 0x81, 0x20, 0x9a, 0x44, 0x9d, 0x69, 0x65, 0x6b)
+DEFINE_CODECAPI_GUID(AVEncVideoHeaderFrames, "afd5f567-5c1b-4adc-bdaf-735610381436", 0xafd5f567, 0x5c1b, 0x4adc, 0xbd, 0xaf, 0x73, 0x56, 0x10, 0x38, 0x14, 0x36)
+DEFINE_CODECAPI_GUID(AVEncVideoDefaultUpperFieldDominant, "810167c4-0bc1-47ca-8fc2-57055a1474a5", 0x810167c4, 0x0bc1, 0x47ca, 0x8f, 0xc2, 0x57, 0x05, 0x5a, 0x14, 0x74, 0xa5)
+DEFINE_CODECAPI_GUID(AVEncVideoCBRMotionTradeoff, "0d49451e-18d5-4367-a4ef-3240df1693c4", 0x0d49451e, 0x18d5, 0x4367, 0xa4, 0xef, 0x32, 0x40, 0xdf, 0x16, 0x93, 0xc4)
+DEFINE_CODECAPI_GUID(AVEncVideoCodedVideoAccessUnitSize, "b4b10c15-14a7-4ce8-b173-dc90a0b4fcdb", 0xb4b10c15, 0x14a7, 0x4ce8, 0xb1, 0x73, 0xdc, 0x90, 0xa0, 0xb4, 0xfc, 0xdb)
+DEFINE_CODECAPI_GUID(AVEncVideoMaxKeyframeDistance, "2987123a-ba93-4704-b489-ec1e5f25292c", 0x2987123a, 0xba93, 0x4704, 0xb4, 0x89, 0xec, 0x1e, 0x5f, 0x25, 0x29, 0x2c)
+DEFINE_CODECAPI_GUID(AVEncH264CABACEnable, "ee6cad62-d305-4248-a50e-e1b255f7caf8", 0xee6cad62, 0xd305, 0x4248, 0xa5, 0xe, 0xe1, 0xb2, 0x55, 0xf7, 0xca, 0xf8)
+DEFINE_CODECAPI_GUID(AVEncVideoContentType, "66117aca-eb77-459d-930c-a48d9d0683fc", 0x66117aca, 0xeb77, 0x459d, 0x93, 0xc, 0xa4, 0x8d, 0x9d, 0x6, 0x83, 0xfc)
+DEFINE_CODECAPI_GUID(AVEncNumWorkerThreads, "b0c8bf60-16f7-4951-a30b-1db1609293d6", 0xb0c8bf60, 0x16f7, 0x4951, 0xa3, 0xb, 0x1d, 0xb1, 0x60, 0x92, 0x93, 0xd6)
+DEFINE_CODECAPI_GUID(AVEncVideoEncodeQP, "2cb5696b-23fb-4ce1-a0f9-ef5b90fd55ca", 0x2cb5696b, 0x23fb, 0x4ce1, 0xa0, 0xf9, 0xef, 0x5b, 0x90, 0xfd, 0x55, 0xca)
+DEFINE_CODECAPI_GUID(AVEncVideoMinQP, "0ee22c6a-a37c-4568-b5f1-9d4c2b3ab886", 0xee22c6a, 0xa37c, 0x4568,  0xb5, 0xf1, 0x9d, 0x4c, 0x2b, 0x3a, 0xb8, 0x86)
+DEFINE_CODECAPI_GUID(AVEncVideoForceKeyFrame, "398c1b98-8353-475a-9ef2-8f265d260345", 0x398c1b98, 0x8353, 0x475a, 0x9e, 0xf2, 0x8f, 0x26, 0x5d, 0x26, 0x3, 0x45)
+DEFINE_CODECAPI_GUID(AVEncH264SPSID, "50f38f51-2b79-40e3-b39c-7e9fa0770501", 0x50f38f51, 0x2b79, 0x40e3, 0xb3, 0x9c, 0x7e, 0x9f, 0xa0, 0x77, 0x5, 0x1)
+DEFINE_CODECAPI_GUID(AVEncH264PPSID, "bfe29ec2-056c-4d68-a38d-ae5944c8582e", 0xbfe29ec2, 0x56c, 0x4d68, 0xa3, 0x8d, 0xae, 0x59, 0x44, 0xc8, 0x58, 0x2e)
+DEFINE_CODECAPI_GUID(AVEncAdaptiveMode, "4419b185-da1f-4f53-bc76-097d0c1efb1e", 0x4419b185, 0xda1f, 0x4f53, 0xbc, 0x76, 0x9, 0x7d, 0xc, 0x1e, 0xfb, 0x1e)
+DEFINE_CODECAPI_GUID(AVScenarioInfo, "b28a6e64-3ff9-446a-8a4b-0d7a53413236", 0xb28a6e64, 0x3ff9, 0x446a, 0x8a, 0x4b, 0x0d, 0x7a, 0x53, 0x41, 0x32, 0x36)
+DEFINE_CODECAPI_GUID(AVEncMPVGOPSizeMin, "7155cf20-d440-4852-ad0f-9c4abfe37a6a", 0x7155cf20, 0xd440, 0x4852, 0xad, 0x0f, 0x9c, 0x4a, 0xbf, 0xe3, 0x7a, 0x6a)
+DEFINE_CODECAPI_GUID(AVEncMPVGOPSizeMax, "fe7de4c4-1936-4fe2-bdf7-1f18ca1d001f", 0xfe7de4c4, 0x1936, 0x4fe2, 0xbd, 0xf7, 0x1f, 0x18, 0xca, 0x1d, 0x00, 0x1f)
+DEFINE_CODECAPI_GUID(AVEncVideoMaxCTBSize, "822363ff-cec8-43e5-92fd-e097488485e9", 0x822363ff, 0xcec8, 0x43e5, 0x92, 0xfd, 0xe0, 0x97, 0x48, 0x84, 0x85, 0xe9)
+DEFINE_CODECAPI_GUID(AVEncVideoCTBSize, "d47db8b2-e73b-4cb9-8c3e-bd877d06d77b", 0xd47db8b2, 0xe73b, 0x4cb9, 0x8c, 0x3e, 0xbd, 0x87, 0x7d, 0x06, 0xd7, 0x7b)
+DEFINE_CODECAPI_GUID(VideoEncoderDisplayContentType, "79b90b27-f4b1-42dc-9dd7-cdaf8135c400", 0x79b90b27, 0xf4b1, 0x42dc, 0x9d, 0xd7, 0xcd, 0xaf, 0x81, 0x35, 0xc4, 0x00)
+DEFINE_CODECAPI_GUID(AVEncEnableVideoProcessing, "006f4bf6-0ea3-4d42-8702-b5d8be0f7a92", 0x006f4bf6, 0x0ea3, 0x4d42, 0x87, 0x02, 0xb5, 0xd8, 0xbe, 0x0f, 0x7a, 0x92)
+DEFINE_CODECAPI_GUID(AVEncVideoGradualIntraRefresh, "8f347dee-cb0d-49ba-b462-db6927ee2101", 0x8f347dee, 0xcb0d, 0x49ba, 0xb4, 0x62, 0xdb, 0x69, 0x27, 0xee, 0x21, 0x01)
+DEFINE_CODECAPI_GUID(GetOPMContext, "2f036c05-4c14-4689-8839-294c6d73e053", 0x2f036c05, 0x4c14, 0x4689, 0x88, 0x39, 0x29, 0x4c, 0x6d, 0x73, 0xe0, 0x53)
+DEFINE_CODECAPI_GUID(SetHDCPManagerContext, "6d2d1fc8-3dc9-47eb-a1a2-471c80cd60d0", 0x6d2d1fc8, 0x3dc9, 0x47eb, 0xa1, 0xa2, 0x47, 0x1c, 0x80, 0xcd, 0x60, 0xd0)
+DEFINE_CODECAPI_GUID(AVEncVideoMaxTemporalLayers, "9c668cfe-08e1-424a-934e-b764b064802a", 0x9c668cfe, 0x08e1, 0x424a, 0x93, 0x4e, 0xb7, 0x64, 0xb0, 0x64, 0x80, 0x2a)
+DEFINE_CODECAPI_GUID(AVEncVideoNumGOPsPerIDR, "83bc5bdb-5b89-4521-8f66-33151c373176", 0x83bc5bdb, 0x5b89, 0x4521, 0x8f, 0x66, 0x33, 0x15, 0x1c, 0x37, 0x31, 0x76)
+DEFINE_CODECAPI_GUID(AVEncCommonAllowFrameDrops, "d8477dcb-9598-48e3-8d0c-752bf206093e", 0xd8477dcb, 0x9598, 0x48e3, 0x8d, 0x0c, 0x75, 0x2b, 0xf2, 0x06, 0x09, 0x3e)
+DEFINE_CODECAPI_GUID(AVEncVideoIntraLayerPrediction, "d3af46b8-bf47-44bb-a283-69f0b0228ff9", 0xd3af46b8, 0xbf47, 0x44bb, 0xa2, 0x83, 0x69, 0xf0, 0xb0, 0x22, 0x8f, 0xf9)
+DEFINE_CODECAPI_GUID(AVEncVideoInstantTemporalUpSwitching, "a3308307-0d96-4ba4-b1f0-b91a5e49df10", 0xa3308307, 0x0d96, 0x4ba4, 0xb1, 0xf0, 0xb9, 0x1a, 0x5e, 0x49, 0xdf, 0x10)
+DEFINE_CODECAPI_GUID(AVEncLowPowerEncoder, "b668d582-8bad-4f6a-9141-375a95358b6d", 0xb668d582, 0x8bad, 0x4f6a, 0x91, 0x41, 0x37, 0x5a, 0x95, 0x35, 0x8b, 0x6d)
+DEFINE_CODECAPI_GUID(AVEnableInLoopDeblockFilter, "d2e8e399-0623-4bf3-92a8-4d1818529ded", 0xd2e8e399, 0x0623, 0x4bf3, 0x92, 0xa8, 0x4d, 0x18, 0x18, 0x52, 0x9d, 0xed)
+DEFINE_CODECAPI_GUID(AVEncVideoSelectLayer, "eb1084f5-6aaa-4914-bb2f-6147227f12e7", 0xeb1084f5, 0x6aaa, 0x4914, 0xbb, 0x2f, 0x61, 0x47, 0x22, 0x7f, 0x12, 0xe7)
+DEFINE_CODECAPI_GUID(AVEncVideoTemporalLayerCount, "19caebff-b74d-4cfd-8c27-c2f9d97d5f52", 0x19caebff, 0xb74d, 0x4cfd, 0x8c, 0x27, 0xc2, 0xf9, 0xd9, 0x7d, 0x5f, 0x52)
+DEFINE_CODECAPI_GUID(AVEncVideoUsage, "1f636849-5dc1-49f1-b1d8-ce3cf62ea385", 0x1f636849, 0x5dc1, 0x49f1, 0xb1, 0xd8, 0xce, 0x3c, 0xf6, 0x2e, 0xa3, 0x85)
+DEFINE_CODECAPI_GUID(AVEncVideoRateControlParams, "87d43767-7645-44ec-b438-d3322fbca29f", 0x87d43767, 0x7645, 0x44ec, 0xb4, 0x38, 0xd3, 0x32, 0x2f, 0xbc, 0xa2, 0x9f)
+DEFINE_CODECAPI_GUID(AVEncVideoSupportedControls, "d3f40fdd-77b9-473d-8196-061259e69cff", 0xd3f40fdd, 0x77b9, 0x473d, 0x81, 0x96, 0x06, 0x12, 0x59, 0xe6, 0x9c, 0xff)
+DEFINE_CODECAPI_GUID(AVEncVideoEncodeFrameTypeQP, "aa70b610-e03f-450c-ad07-07314e639ce7", 0xaa70b610, 0xe03f, 0x450c, 0xad, 0x07, 0x07, 0x31, 0x4e, 0x63, 0x9c, 0xe7)
+DEFINE_CODECAPI_GUID(AVEncSliceControlMode, "e9e782ef-5f18-44c9-a90b-e9c3c2c17b0b", 0xe9e782ef, 0x5f18, 0x44c9, 0xa9, 0x0b, 0xe9, 0xc3, 0xc2, 0xc1, 0x7b, 0x0b)
+DEFINE_CODECAPI_GUID(AVEncSliceControlSize, "92f51df3-07a5-4172-aefe-c69ca3b60e35", 0x92f51df3, 0x07a5, 0x4172, 0xae, 0xfe, 0xc6, 0x9c, 0xa3, 0xb6, 0x0e, 0x35)
+DEFINE_CODECAPI_GUID(AVEncSliceGenerationMode, "8a6bc67f-9497-4286-b46b-02db8d60edbc", 0x8a6bc67f, 0x9497, 0x4286, 0xb4, 0x6b, 0x02, 0xdb, 0x8d, 0x60, 0xed, 0xbc)
+DEFINE_CODECAPI_GUID(AVEncVideoMaxNumRefFrame, "964829ed-94f9-43b4-b74d-ef40944b69a0", 0x964829ed, 0x94f9, 0x43b4, 0xb7, 0x4d, 0xef, 0x40, 0x94, 0x4b, 0x69, 0xa0)
+DEFINE_CODECAPI_GUID(AVEncVideoMeanAbsoluteDifference, "e5c0c10f-81a4-422d-8c3f-b474a4581336", 0xe5c0c10f, 0x81a4, 0x422d, 0x8c, 0x3f, 0xb4, 0x74, 0xa4, 0x58, 0x13, 0x36)
+DEFINE_CODECAPI_GUID(AVEncVideoMaxQP, "3daf6f66-a6a7-45e0-a8e5-f2743f46a3a2", 0x3daf6f66, 0xa6a7, 0x45e0, 0xa8, 0xe5, 0xf2, 0x74, 0x3f, 0x46, 0xa3, 0xa2)
+DEFINE_CODECAPI_GUID(AVEncVideoLTRBufferControl, "a4a0e93d-4cbc-444c-89f4-826d310e92a7", 0xa4a0e93d, 0x4cbc, 0x444c, 0x89, 0xf4, 0x82, 0x6d, 0x31, 0x0e, 0x92, 0xa7)
+DEFINE_CODECAPI_GUID(AVEncVideoMarkLTRFrame, "e42f4748-a06d-4ef9-8cea-3d05fde3bd3b", 0xe42f4748, 0xa06d, 0x4ef9, 0x8c, 0xea, 0x3d, 0x05, 0xfd, 0xe3, 0xbd, 0x3b)
+DEFINE_CODECAPI_GUID(AVEncVideoUseLTRFrame, "00752db8-55f7-4f80-895b-27639195f2ad", 0x00752db8, 0x55f7, 0x4f80, 0x89, 0x5b, 0x27, 0x63, 0x91, 0x95, 0xf2, 0xad)
+DEFINE_CODECAPI_GUID(AVEncVideoROIEnabled, "d74f7f18-44dd-4b85-aba3-05d9f42a8280", 0xd74f7f18, 0x44dd, 0x4b85, 0xab, 0xa3, 0x5, 0xd9, 0xf4, 0x2a, 0x82, 0x80)
+DEFINE_CODECAPI_GUID(AVEncVideoDirtyRectEnabled, "8acb8fdd-5e0c-4c66-8729-b8f629ab04fb", 0x8acb8fdd, 0x5e0c, 0x4c66, 0x87, 0x29, 0xb8, 0xf6, 0x29, 0xab, 0x04, 0xfb)
+DEFINE_CODECAPI_GUID(AVEncMaxFrameRate, "b98e1b31-19fa-4d4f-9931-d6a5b8aab93c", 0xb98e1b31, 0x19fa, 0x4d4f, 0x99, 0x31, 0xd6, 0xa5, 0xb8, 0xaa, 0xb9, 0x3c)
+DEFINE_CODECAPI_GUID(AVEncMuxOutputStreamType, "cedd9e8f-34d3-44db-a1d8-f81520254f3e", 0xcedd9e8f, 0x34d3, 0x44db, 0xa1, 0xd8, 0xf8, 0x15, 0x20, 0x25, 0x4f, 0x3e)
+DEFINE_CODECAPI_GUID(AVEncStatVideoOutputFrameRate, "be747849-9ab4-4a63-98fe-f143f04f8ee9", 0xbe747849, 0x9ab4, 0x4a63, 0x98, 0xfe, 0xf1, 0x43, 0xf0, 0x4f, 0x8e, 0xe9)
+DEFINE_CODECAPI_GUID(AVEncStatVideoCodedFrames, "d47f8d61-6f5a-4a26-bb9f-cd9518462bcd", 0xd47f8d61, 0x6f5a, 0x4a26, 0xbb, 0x9f, 0xcd, 0x95, 0x18, 0x46, 0x2b, 0xcd)
+DEFINE_CODECAPI_GUID(AVEncStatVideoTotalFrames, "fdaa9916-119a-4222-9ad6-3f7cab99cc8b", 0xfdaa9916, 0x119a, 0x4222, 0x9a, 0xd6, 0x3f, 0x7c, 0xab, 0x99, 0xcc, 0x8b)
+DEFINE_CODECAPI_GUID(AVEncAudioIntervalToEncode, "866e4b4d-725a-467c-bb01-b496b23b25f9", 0x866e4b4d, 0x725a, 0x467c, 0xbb, 0x01, 0xb4, 0x96, 0xb2, 0x3b, 0x25, 0xf9)
+DEFINE_CODECAPI_GUID(AVEncAudioIntervalToSkip, "88c15f94-c38c-4796-a9e8-96e967983f26", 0x88c15f94, 0xc38c, 0x4796, 0xa9, 0xe8, 0x96, 0xe9, 0x67, 0x98, 0x3f, 0x26)
+DEFINE_CODECAPI_GUID(AVEncAudioDualMono, "3648126b-a3e8-4329-9b3a-5ce566a43bd3", 0x3648126b, 0xa3e8, 0x4329, 0x9b, 0x3a, 0x5c, 0xe5, 0x66, 0xa4, 0x3b, 0xd3)
+DEFINE_CODECAPI_GUID(AVEncAudioMeanBitRate, "921295bb-4fca-4679-aab8-9e2a1d753384", 0x921295bb, 0x4fca, 0x4679, 0xaa, 0xb8, 0x9e, 0x2a, 0x1d, 0x75, 0x33, 0x84)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel0, "bc5d0b60-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b60, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel1, "bc5d0b61-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b61, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel2, "bc5d0b62-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b62, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel3, "bc5d0b63-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b63, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel4, "bc5d0b64-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b64, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel5, "bc5d0b65-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b65, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel6, "bc5d0b66-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b66, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel7, "bc5d0b67-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b67, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel8, "bc5d0b68-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b68, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel9, "bc5d0b69-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b69, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel10, "bc5d0b6a-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b6a, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel11, "bc5d0b6b-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b6b, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel12, "bc5d0b6c-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b6c, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel13, "bc5d0b6d-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b6d, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel14, "bc5d0b6e-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b6e, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioMapDestChannel15, "bc5d0b6f-df6a-4e16-9803-b82007a30c8d", 0xbc5d0b6f, 0xdf6a, 0x4e16, 0x98, 0x03, 0xb8, 0x20, 0x07, 0xa3, 0x0c, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncAudioInputContent, "3e226c2b-60b9-4a39-b00b-a7b40f70d566", 0x3e226c2b, 0x60b9, 0x4a39, 0xb0, 0x0b, 0xa7, 0xb4, 0x0f, 0x70, 0xd5, 0x66)
+DEFINE_CODECAPI_GUID(AVEncStatAudioPeakPCMValue, "dce7fd34-dc00-4c16-821b-35d9eb00fb1a", 0xdce7fd34, 0xdc00, 0x4c16, 0x82, 0x1b, 0x35, 0xd9, 0xeb, 0x00, 0xfb, 0x1a)
+DEFINE_CODECAPI_GUID(AVEncStatAudioAveragePCMValue, "979272f8-d17f-4e32-bb73-4e731c68ba2d", 0x979272f8, 0xd17f, 0x4e32, 0xbb, 0x73, 0x4e, 0x73, 0x1c, 0x68, 0xba, 0x2d)
+DEFINE_CODECAPI_GUID(AVEncStatAudioAverageBPS, "ca6724db-7059-4351-8b43-f82198826a14", 0xca6724db, 0x7059, 0x4351, 0x8b, 0x43, 0xf8, 0x21, 0x98, 0x82, 0x6a, 0x14)
+DEFINE_CODECAPI_GUID(AVEncStatAverageBPS, "ca6724db-7059-4351-8b43-f82198826a14", 0xca6724db, 0x7059, 0x4351, 0x8b, 0x43, 0xf8, 0x21, 0x98, 0x82, 0x6a, 0x14)
+DEFINE_CODECAPI_GUID(AVEncStatHardwareProcessorUtilitization, "995dc027-cb95-49e6-b91b-5967753cdcb8", 0x995dc027, 0xcb95, 0x49e6, 0xb9, 0x1b, 0x59, 0x67, 0x75, 0x3c, 0xdc, 0xb8)
+DEFINE_CODECAPI_GUID(AVEncStatHardwareBandwidthUtilitization, "0124ba9b-dc41-4826-b45f-18ac01b3d5a8", 0x0124ba9b, 0xdc41, 0x4826, 0xb4, 0x5f, 0x18, 0xac, 0x01, 0xb3, 0xd5, 0xa8)
+DEFINE_CODECAPI_GUID(AVEncMPVGOPSize, "95f31b26-95a4-41aa-9303-246a7fc6eef1", 0x95f31b26, 0x95a4, 0x41aa, 0x93, 0x03, 0x24, 0x6a, 0x7f, 0xc6, 0xee, 0xf1)
+DEFINE_CODECAPI_GUID(AVEncMPVGOPOpen, "b1d5d4a6-3300-49b1-ae61-a09937ab0e49", 0xb1d5d4a6, 0x3300, 0x49b1, 0xae, 0x61, 0xa0, 0x99, 0x37, 0xab, 0x0e, 0x49)
+DEFINE_CODECAPI_GUID(AVEncMPVDefaultBPictureCount, "8d390aac-dc5c-4200-b57f-814d04babab2", 0x8d390aac, 0xdc5c, 0x4200, 0xb5, 0x7f, 0x81, 0x4d, 0x04, 0xba, 0xba, 0xb2)
+DEFINE_CODECAPI_GUID(AVEncMPVProfile, "dabb534a-1d99-4284-975a-d90e2239baa1", 0xdabb534a, 0x1d99, 0x4284, 0x97, 0x5a, 0xd9, 0x0e, 0x22, 0x39, 0xba, 0xa1)
+DEFINE_CODECAPI_GUID(AVEncMPVLevel, "6ee40c40-a60c-41ef-8f50-37c2249e2cb3", 0x6ee40c40, 0xa60c, 0x41ef, 0x8f, 0x50, 0x37, 0xc2, 0x24, 0x9e, 0x2c, 0xb3)
+DEFINE_CODECAPI_GUID(AVEncMPVFrameFieldMode, "acb5de96-7b93-4c2f-8825-b0295fa93bf4", 0xacb5de96, 0x7b93, 0x4c2f, 0x88, 0x25, 0xb0, 0x29, 0x5f, 0xa9, 0x3b, 0xf4)
+DEFINE_CODECAPI_GUID(AVEncMPVAddSeqEndCode, "a823178f-57df-4c7a-b8fd-e5ec8887708d", 0xa823178f, 0x57df, 0x4c7a, 0xb8, 0xfd, 0xe5, 0xec, 0x88, 0x87, 0x70, 0x8d)
+DEFINE_CODECAPI_GUID(AVEncMPVGOPSInSeq, "993410d4-2691-4192-9978-98dc2603669f", 0x993410d4, 0x2691, 0x4192, 0x99, 0x78, 0x98, 0xdc, 0x26, 0x03, 0x66, 0x9f)
+DEFINE_CODECAPI_GUID(AVEncMPVUseConcealmentMotionVectors,  "ec770cf3-6908-4b4b-aa30-7fb986214fea", 0xec770cf3, 0x6908, 0x4b4b, 0xaa, 0x30, 0x7f, 0xb9, 0x86, 0x21, 0x4f, 0xea)
+DEFINE_CODECAPI_GUID(AVEncMPVSceneDetection, "552799f1-db4c-405b-8a3a-c93f2d0674dc", 0x552799f1, 0xdb4c, 0x405b, 0x8a, 0x3a, 0xc9, 0x3f, 0x2d, 0x06, 0x74, 0xdc)
+DEFINE_CODECAPI_GUID(AVEncMPVGenerateHeaderSeqExt, "d5e78611-082d-4e6b-98af-0f51ab139222", 0xd5e78611, 0x082d, 0x4e6b, 0x98, 0xaf, 0x0f, 0x51, 0xab, 0x13, 0x92, 0x22)
+DEFINE_CODECAPI_GUID(AVEncMPVGenerateHeaderSeqDispExt, "6437aa6f-5a3c-4de9-8a16-53d9c4ad326f", 0x6437aa6f, 0x5a3c, 0x4de9, 0x8a, 0x16, 0x53, 0xd9, 0xc4, 0xad, 0x32, 0x6f)
+DEFINE_CODECAPI_GUID(AVEncMPVGenerateHeaderPicExt, "1b8464ab-944f-45f0-b74e-3a58dad11f37", 0x1b8464ab, 0x944f, 0x45f0, 0xb7, 0x4e, 0x3a, 0x58, 0xda, 0xd1, 0x1f, 0x37)
+DEFINE_CODECAPI_GUID(AVEncMPVGenerateHeaderPicDispExt, "c6412f84-c03f-4f40-a00c-4293df8395bb", 0xc6412f84, 0xc03f, 0x4f40, 0xa0, 0x0c, 0x42, 0x93, 0xdf, 0x83, 0x95, 0xbb)
+DEFINE_CODECAPI_GUID(AVEncMPVGenerateHeaderSeqScaleExt, "0722d62f-dd59-4a86-9cd5-644f8e2653d8", 0x0722d62f, 0xdd59, 0x4a86, 0x9c, 0xd5, 0x64, 0x4f, 0x8e, 0x26, 0x53, 0xd8)
+DEFINE_CODECAPI_GUID(AVEncMPVScanPattern, "7f8a478e-7bbb-4ae2-b2fc-96d17fc4a2d6", 0x7f8a478e, 0x7bbb, 0x4ae2, 0xb2, 0xfc, 0x96, 0xd1, 0x7f, 0xc4, 0xa2, 0xd6)
+DEFINE_CODECAPI_GUID(AVEncMPVIntraDCPrecision, "a0116151-cbc8-4af3-97dc-d00cceb82d79", 0xa0116151, 0xcbc8, 0x4af3, 0x97, 0xdc, 0xd0, 0x0c, 0xce, 0xb8, 0x2d, 0x79)
+DEFINE_CODECAPI_GUID(AVEncMPVQScaleType, "2b79ebb7-f484-4af7-bb58-a2a188c5cbbe", 0x2b79ebb7, 0xf484, 0x4af7, 0xbb, 0x58, 0xa2, 0xa1, 0x88, 0xc5, 0xcb, 0xbe)
+DEFINE_CODECAPI_GUID(AVEncMPVIntraVLCTable, "a2b83ff5-1a99-405a-af95-c5997d558d3a", 0xa2b83ff5, 0x1a99, 0x405a, 0xaf, 0x95, 0xc5, 0x99, 0x7d, 0x55, 0x8d, 0x3a)
+DEFINE_CODECAPI_GUID(AVEncMPVQuantMatrixIntra, "9bea04f3-6621-442c-8ba1-3ac378979698", 0x9bea04f3, 0x6621, 0x442c, 0x8b, 0xa1, 0x3a, 0xc3, 0x78, 0x97, 0x96, 0x98)
+DEFINE_CODECAPI_GUID(AVEncMPVQuantMatrixNonIntra, "87f441d8-0997-4beb-a08e-8573d409cf75", 0x87f441d8, 0x0997, 0x4beb, 0xa0, 0x8e, 0x85, 0x73, 0xd4, 0x09, 0xcf, 0x75)
+DEFINE_CODECAPI_GUID(AVEncMPVQuantMatrixChromaIntra, "9eb9ecd4-018d-4ffd-8f2d-39e49f07b17a", 0x9eb9ecd4, 0x018d, 0x4ffd, 0x8f, 0x2d, 0x39, 0xe4, 0x9f, 0x07, 0xb1, 0x7a)
+DEFINE_CODECAPI_GUID(AVEncMPVQuantMatrixChromaNonIntra, "1415b6b1-362a-4338-ba9a-1ef58703c05b", 0x1415b6b1, 0x362a, 0x4338, 0xba, 0x9a, 0x1e, 0xf5, 0x87, 0x03, 0xc0, 0x5b)
+DEFINE_CODECAPI_GUID(AVEncMPALayer, "9d377230-f91b-453d-9ce0-78445414c22d", 0x9d377230, 0xf91b, 0x453d, 0x9c, 0xe0, 0x78, 0x44, 0x54, 0x14, 0xc2, 0x2d)
+DEFINE_CODECAPI_GUID(AVEncMPACodingMode, "b16ade03-4b93-43d7-a550-90b4fe224537", 0xb16ade03, 0x4b93, 0x43d7, 0xa5, 0x50, 0x90, 0xb4, 0xfe, 0x22, 0x45, 0x37)
+DEFINE_CODECAPI_GUID(AVEncMPACopyright, "a6ae762a-d0a9-4454-b8ef-f2dbeefdd3bd", 0xa6ae762a, 0xd0a9, 0x4454, 0xb8, 0xef, 0xf2, 0xdb, 0xee, 0xfd, 0xd3, 0xbd)
+DEFINE_CODECAPI_GUID(AVEncMPAOriginalBitstream, "3cfb7855-9cc9-47ff-b829-b36786c92346", 0x3cfb7855, 0x9cc9, 0x47ff, 0xb8, 0x29, 0xb3, 0x67, 0x86, 0xc9, 0x23, 0x46)
+DEFINE_CODECAPI_GUID(AVEncMPAEnableRedundancyProtection, "5e54b09e-b2e7-4973-a89b-0b3650a3beda", 0x5e54b09e, 0xb2e7, 0x4973, 0xa8, 0x9b, 0x0b, 0x36, 0x50, 0xa3, 0xbe, 0xda)
+DEFINE_CODECAPI_GUID(AVEncMPAPrivateUserBit, "afa505ce-c1e3-4e3d-851b-61b700e5e6cc", 0xafa505ce, 0xc1e3, 0x4e3d, 0x85, 0x1b, 0x61, 0xb7, 0x00, 0xe5, 0xe6, 0xcc)
+DEFINE_CODECAPI_GUID(AVEncMPAEmphasisType, "2d59fcda-bf4e-4ed6-b5df-5b03b36b0a1f", 0x2d59fcda, 0xbf4e, 0x4ed6, 0xb5, 0xdf, 0x5b, 0x03, 0xb3, 0x6b, 0x0a, 0x1f)
+DEFINE_CODECAPI_GUID(AVEncDDService, "d2e1bec7-5172-4d2a-a50e-2f3b82b1ddf8", 0xd2e1bec7, 0x5172, 0x4d2a, 0xa5, 0x0e, 0x2f, 0x3b, 0x82, 0xb1, 0xdd, 0xf8)
+DEFINE_CODECAPI_GUID(AVEncDDDialogNormalization, "d7055acf-f125-437d-a704-79c79f0404a8", 0xd7055acf, 0xf125, 0x437d, 0xa7, 0x04, 0x79, 0xc7, 0x9f, 0x04, 0x04, 0xa8)
+DEFINE_CODECAPI_GUID(AVEncDDCentreDownMixLevel, "e285072c-c958-4a81-afd2-e5e0daf1b148", 0xe285072c, 0xc958, 0x4a81, 0xaf, 0xd2, 0xe5, 0xe0, 0xda, 0xf1, 0xb1, 0x48)
+DEFINE_CODECAPI_GUID(AVEncDDSurroundDownMixLevel, "7b20d6e5-0bcf-4273-a487-506b047997e9", 0x7b20d6e5, 0x0bcf, 0x4273, 0xa4, 0x87, 0x50, 0x6b, 0x04, 0x79, 0x97, 0xe9)
+DEFINE_CODECAPI_GUID(AVEncDDProductionInfoExists, "b0b7fe5f-b6ab-4f40-964d-8d91f17c19e8", 0xb0b7fe5f, 0xb6ab, 0x4f40, 0x96, 0x4d, 0x8d, 0x91, 0xf1, 0x7c, 0x19, 0xe8)
+DEFINE_CODECAPI_GUID(AVEncDDProductionRoomType, "dad7ad60-23d8-4ab7-a284-556986d8a6fe", 0xdad7ad60, 0x23d8, 0x4ab7, 0xa2, 0x84, 0x55, 0x69, 0x86, 0xd8, 0xa6, 0xfe)
+DEFINE_CODECAPI_GUID(AVEncDDProductionMixLevel, "301d103a-cbf9-4776-8899-7c15b461ab26", 0x301d103a, 0xcbf9, 0x4776, 0x88, 0x99, 0x7c, 0x15, 0xb4, 0x61, 0xab, 0x26)
+DEFINE_CODECAPI_GUID(AVEncDDCopyright, "8694f076-cd75-481d-a5c6-a904dcc828f0", 0x8694f076, 0xcd75, 0x481d, 0xa5, 0xc6, 0xa9, 0x04, 0xdc, 0xc8, 0x28, 0xf0)
+DEFINE_CODECAPI_GUID(AVEncDDOriginalBitstream, "966ae800-5bd3-4ff9-95b9-d30566273856", 0x966ae800, 0x5bd3, 0x4ff9, 0x95, 0xb9, 0xd3, 0x05, 0x66, 0x27, 0x38, 0x56)
+DEFINE_CODECAPI_GUID(AVEncDDDigitalDeemphasis, "e024a2c2-947c-45ac-87d8-f1030c5c0082", 0xe024a2c2, 0x947c, 0x45ac, 0x87, 0xd8, 0xf1, 0x03, 0x0c, 0x5c, 0x00, 0x82)
+DEFINE_CODECAPI_GUID(AVEncDDDCHighPassFilter, "9565239f-861c-4ac8-bfda-e00cb4db8548", 0x9565239f, 0x861c, 0x4ac8, 0xbf, 0xda, 0xe0, 0x0c, 0xb4, 0xdb, 0x85, 0x48)
+DEFINE_CODECAPI_GUID(AVEncDDChannelBWLowPassFilter, "e197821d-d2e7-43e2-ad2c-00582f518545", 0xe197821d, 0xd2e7, 0x43e2, 0xad, 0x2c, 0x00, 0x58, 0x2f, 0x51, 0x85, 0x45)
+DEFINE_CODECAPI_GUID(AVEncDDLFELowPassFilter, "d3b80f6f-9d15-45e5-91be-019c3fab1f01", 0xd3b80f6f, 0x9d15, 0x45e5, 0x91, 0xbe, 0x01, 0x9c, 0x3f, 0xab, 0x1f, 0x01)
+DEFINE_CODECAPI_GUID(AVEncDDSurround90DegreeePhaseShift, "25ecec9d-3553-42c0-bb56-d25792104f80", 0x25ecec9d, 0x3553, 0x42c0, 0xbb, 0x56, 0xd2, 0x57, 0x92, 0x10, 0x4f, 0x80)
+DEFINE_CODECAPI_GUID(AVEncDDSurround3dBAttenuation, "4d43b99d-31e2-48b9-bf2e-5cbf1a572784", 0x4d43b99d, 0x31e2, 0x48b9, 0xbf, 0x2e, 0x5c, 0xbf, 0x1a, 0x57, 0x27, 0x84)
+DEFINE_CODECAPI_GUID(AVEncDDDynamicRangeCompressionControl, "cfc2ff6d-79b8-4b8d-a8aa-a0c9bd1c2940", 0xcfc2ff6d, 0x79b8, 0x4b8d, 0xa8, 0xaa, 0xa0, 0xc9, 0xbd, 0x1c, 0x29, 0x40)
+DEFINE_CODECAPI_GUID(AVEncDDRFPreEmphasisFilter, "21af44c0-244e-4f3d-a2cc-3d3068b2e73f", 0x21af44c0, 0x244e, 0x4f3d, 0xa2, 0xcc, 0x3d, 0x30, 0x68, 0xb2, 0xe7, 0x3f)
+DEFINE_CODECAPI_GUID(AVEncDDSurroundExMode, "91607cee-dbdd-4eb6-bca2-aadfafa3dd68", 0x91607cee, 0xdbdd, 0x4eb6, 0xbc, 0xa2, 0xaa, 0xdf, 0xaf, 0xa3, 0xdd, 0x68)
+DEFINE_CODECAPI_GUID(AVEncDDPreferredStereoDownMixMode, "7f4e6b31-9185-403d-b0a2-763743e6f063", 0x7f4e6b31, 0x9185, 0x403d, 0xb0, 0xa2, 0x76, 0x37, 0x43, 0xe6, 0xf0, 0x63)
+DEFINE_CODECAPI_GUID(AVEncDDLtRtCenterMixLvl_x10, "dca128a2-491f-4600-b2da-76e3344b4197", 0xdca128a2, 0x491f, 0x4600, 0xb2, 0xda, 0x76, 0xe3, 0x34, 0x4b, 0x41, 0x97)
+DEFINE_CODECAPI_GUID(AVEncDDLtRtSurroundMixLvl_x10, "212246c7-3d2c-4dfa-bc21-652a9098690d", 0x212246c7, 0x3d2c, 0x4dfa, 0xbc, 0x21, 0x65, 0x2a, 0x90, 0x98, 0x69, 0x0d)
+DEFINE_CODECAPI_GUID(AVEncDDLoRoCenterMixLvl_x10, "1cfba222-25b3-4bf4-9bfd-e7111267858c", 0x1cfba222, 0x25b3, 0x4bf4, 0x9b, 0xfd, 0xe7, 0x11, 0x12, 0x67, 0x85, 0x8c)
+DEFINE_CODECAPI_GUID(AVEncDDLoRoSurroundMixLvl_x10, "e725cff6-eb56-40c7-8450-2b9367e91555", 0xe725cff6, 0xeb56, 0x40c7, 0x84, 0x50, 0x2b, 0x93, 0x67, 0xe9, 0x15, 0x55)
+DEFINE_CODECAPI_GUID(AVEncDDAtoDConverterType, "719f9612-81a1-47e0-9a05-d94ad5fca948", 0x719f9612, 0x81a1, 0x47e0, 0x9a, 0x05, 0xd9, 0x4a, 0xd5, 0xfc, 0xa9, 0x48)
+DEFINE_CODECAPI_GUID(AVEncDDHeadphoneMode, "4052dbec-52f5-42f5-9b00-d134b1341b9d", 0x4052dbec, 0x52f5, 0x42f5, 0x9b, 0x00, 0xd1, 0x34, 0xb1, 0x34, 0x1b, 0x9d)
+DEFINE_CODECAPI_GUID(AVEncWMVKeyFrameDistance, "5569055e-e268-4771-b83e-9555ea28aed3", 0x5569055e, 0xe268, 0x4771, 0xb8, 0x3e, 0x95, 0x55, 0xea, 0x28, 0xae, 0xd3)
+DEFINE_CODECAPI_GUID(AVEncWMVInterlacedEncoding, "e3d00f8a-c6f5-4e14-a588-0ec87a726f9b", 0xe3d00f8a, 0xc6f5, 0x4e14, 0xa5, 0x88, 0x0e, 0xc8, 0x7a, 0x72, 0x6f, 0x9b)
+DEFINE_CODECAPI_GUID(AVEncWMVDecoderComplexity, "f32c0dab-f3cb-4217-b79f-8762768b5f67", 0xf32c0dab, 0xf3cb, 0x4217, 0xb7, 0x9f, 0x87, 0x62, 0x76, 0x8b, 0x5f, 0x67)
+DEFINE_CODECAPI_GUID(AVEncWMVKeyFrameBufferLevelMarker, "51ff1115-33ac-426c-a1b1-09321bdf96b4", 0x51ff1115, 0x33ac, 0x426c, 0xa1, 0xb1, 0x09, 0x32, 0x1b, 0xdf, 0x96, 0xb4)
+DEFINE_CODECAPI_GUID(AVEncWMVProduceDummyFrames, "d669d001-183c-42e3-a3ca-2f4586d2396c", 0xd669d001, 0x183c, 0x42e3, 0xa3, 0xca, 0x2f, 0x45, 0x86, 0xd2, 0x39, 0x6c)
+DEFINE_CODECAPI_GUID(AVEncStatWMVCBAvg, "6aa6229f-d602-4b9d-b68c-c1ad78884bef", 0x6aa6229f, 0xd602, 0x4b9d, 0xb6, 0x8c, 0xc1, 0xad, 0x78, 0x88, 0x4b, 0xef)
+DEFINE_CODECAPI_GUID(AVEncStatWMVCBMax, "e976bef8-00fe-44b4-b625-8f238bc03499", 0xe976bef8, 0x00fe, 0x44b4, 0xb6, 0x25, 0x8f, 0x23, 0x8b, 0xc0, 0x34, 0x99)
+DEFINE_CODECAPI_GUID(AVEncStatWMVDecoderComplexityProfile, "89e69fc3-0f9b-436c-974a-df821227c90d", 0x89e69fc3, 0x0f9b, 0x436c, 0x97, 0x4a, 0xdf, 0x82, 0x12, 0x27, 0xc9, 0x0d)
+DEFINE_CODECAPI_GUID(AVEncStatMPVSkippedEmptyFrames, "32195fd3-590d-4812-a7ed-6d639a1f9711", 0x32195fd3, 0x590d, 0x4812, 0xa7, 0xed, 0x6d, 0x63, 0x9a, 0x1f, 0x97, 0x11)
+DEFINE_CODECAPI_GUID(AVEncMP12PktzSTDBuffer, "0b751bd0-819e-478c-9435-75208926b377", 0x0b751bd0, 0x819e, 0x478c, 0x94, 0x35, 0x75, 0x20, 0x89, 0x26, 0xb3, 0x77)
+DEFINE_CODECAPI_GUID(AVEncMP12PktzStreamID, "c834d038-f5e8-4408-9b60-88f36493fedf", 0xc834d038, 0xf5e8, 0x4408, 0x9b, 0x60, 0x88, 0xf3, 0x64, 0x93, 0xfe, 0xdf)
+DEFINE_CODECAPI_GUID(AVEncMP12PktzInitialPTS, "2a4f2065-9a63-4d20-ae22-0a1bc896a315", 0x2a4f2065, 0x9a63, 0x4d20, 0xae, 0x22, 0x0a, 0x1b, 0xc8, 0x96, 0xa3, 0x15)
+DEFINE_CODECAPI_GUID(AVEncMP12PktzPacketSize, "ab71347a-1332-4dde-a0e5-ccf7da8a0f22", 0xab71347a, 0x1332, 0x4dde, 0xa0, 0xe5, 0xcc, 0xf7, 0xda, 0x8a, 0x0f, 0x22)
+DEFINE_CODECAPI_GUID(AVEncMP12PktzCopyright, "c8f4b0c1-094c-43c7-8e68-a595405a6ef8", 0xc8f4b0c1, 0x094c, 0x43c7, 0x8e, 0x68, 0xa5, 0x95, 0x40, 0x5a, 0x6e, 0xf8)
+DEFINE_CODECAPI_GUID(AVEncMP12PktzOriginal, "6b178416-31b9-4964-94cb-6bff866cdf83", 0x6b178416, 0x31b9, 0x4964, 0x94, 0xcb, 0x6b, 0xff, 0x86, 0x6c, 0xdf, 0x83)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxPacketOverhead, "e40bd720-3955-4453-acf9-b79132a38fa0", 0xe40bd720, 0x3955, 0x4453, 0xac, 0xf9, 0xb7, 0x91, 0x32, 0xa3, 0x8f, 0xa0)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxNumStreams, "f7164a41-dced-4659-a8f2-fb693f2a4cd0", 0xf7164a41, 0xdced, 0x4659, 0xa8, 0xf2, 0xfb, 0x69, 0x3f, 0x2a, 0x4c, 0xd0)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxEarliestPTS, "157232b6-f809-474e-9464-a7f93014a817", 0x157232b6, 0xf809, 0x474e, 0x94, 0x64, 0xa7, 0xf9, 0x30, 0x14, 0xa8, 0x17)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxLargestPacketSize, "35ceb711-f461-4b92-a4ef-17b6841ed254", 0x35ceb711, 0xf461, 0x4b92, 0xa4, 0xef, 0x17, 0xb6, 0x84, 0x1e, 0xd2, 0x54)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxInitialSCR, "3433ad21-1b91-4a0b-b190-2b77063b63a4", 0x3433ad21, 0x1b91, 0x4a0b, 0xb1, 0x90, 0x2b, 0x77, 0x06, 0x3b, 0x63, 0xa4)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxMuxRate, "ee047c72-4bdb-4a9d-8e21-41926c823da7", 0xee047c72, 0x4bdb, 0x4a9d, 0x8e, 0x21, 0x41, 0x92, 0x6c, 0x82, 0x3d, 0xa7)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxPackSize, "f916053a-1ce8-4faf-aa0b-ba31c80034b8", 0xf916053a, 0x1ce8, 0x4faf, 0xaa, 0x0b, 0xba, 0x31, 0xc8, 0x00, 0x34, 0xb8)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxSysSTDBufferBound, "35746903-b545-43e7-bb35-c5e0a7d5093c", 0x35746903, 0xb545, 0x43e7, 0xbb, 0x35, 0xc5, 0xe0, 0xa7, 0xd5, 0x09, 0x3c)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxSysRateBound, "05f0428a-ee30-489d-ae28-205c72446710", 0x05f0428a, 0xee30, 0x489d, 0xae, 0x28, 0x20, 0x5c, 0x72, 0x44, 0x67, 0x10)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxTargetPacketizer, "d862212a-2015-45dd-9a32-1b3aa88205a0", 0xd862212a, 0x2015, 0x45dd, 0x9a, 0x32, 0x1b, 0x3a, 0xa8, 0x82, 0x05, 0xa0)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxSysFixed, "cefb987e-894f-452e-8f89-a4ef8cec063a", 0xcefb987e, 0x894f, 0x452e, 0x8f, 0x89, 0xa4, 0xef, 0x8c, 0xec, 0x06, 0x3a)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxSysCSPS, "7952ff45-9c0d-4822-bc82-8ad772e02993", 0x7952ff45, 0x9c0d, 0x4822, 0xbc, 0x82, 0x8a, 0xd7, 0x72, 0xe0, 0x29, 0x93)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxSysVideoLock, "b8296408-2430-4d37-a2a1-95b3e435a91d", 0xb8296408, 0x2430, 0x4d37, 0xa2, 0xa1, 0x95, 0xb3, 0xe4, 0x35, 0xa9, 0x1d)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxSysAudioLock, "0fbb5752-1d43-47bf-bd79-f2293d8ce337", 0x0fbb5752, 0x1d43, 0x47bf, 0xbd, 0x79, 0xf2, 0x29, 0x3d, 0x8c, 0xe3, 0x37)
+DEFINE_CODECAPI_GUID(AVEncMP12MuxDVDNavPacks, "c7607ced-8cf1-4a99-83a1-ee5461be3574", 0xc7607ced, 0x8cf1, 0x4a99, 0x83, 0xa1, 0xee, 0x54, 0x61, 0xbe, 0x35, 0x74)
+DEFINE_CODECAPI_GUID(AVDecCommonInputFormat, "e5005239-bd89-4be3-9c0f-5dde317988cc", 0xe5005239, 0xbd89, 0x4be3, 0x9c, 0x0f, 0x5d, 0xde, 0x31, 0x79, 0x88, 0xcc)
+DEFINE_CODECAPI_GUID(AVDecCommonOutputFormat, "3c790028-c0ce-4256-b1a2-1b0fc8b1dcdc", 0x3c790028, 0xc0ce, 0x4256, 0xb1, 0xa2, 0x1b, 0x0f, 0xc8, 0xb1, 0xdc, 0xdc)
+DEFINE_CODECAPI_GUID(AVDecCommonMeanBitRate, "59488217-007a-4f7a-8e41-5c48b1eac5c6", 0x59488217, 0x007a, 0x4f7a, 0x8e, 0x41, 0x5c, 0x48, 0xb1, 0xea, 0xc5, 0xc6)
+DEFINE_CODECAPI_GUID(AVDecCommonMeanBitRateInterval, "0ee437c6-38a7-4c5c-944c-68ab42116b85", 0x0ee437c6, 0x38a7, 0x4c5c, 0x94, 0x4c, 0x68, 0xab, 0x42, 0x11, 0x6b, 0x85)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioOutputFormat_PCM_Stereo_MatrixEncoded, "696e1d30-548f-4036-825f-7026c60011bd", 0x696e1d30, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioOutputFormat_PCM, "696e1d31-548f-4036-825f-7026c60011bd", 0x696e1d31, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioOutputFormat_SPDIF_PCM, "696E1D32-548F-4036-825F-7026C60011BD", 0x696e1d32, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioOutputFormat_SPDIF_Bitstream, "696e1d33-548f-4036-825f-7026c60011bd", 0x696e1d33, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioOutputFormat_PCM_Headphones, "696e1d34-548f-4036-825f-7026c60011bd", 0x696e1d34, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioOutputFormat_PCM_Stereo_Auto, "696e1d35-548f-4036-825f-7026c60011bd", 0x696e1d35, 0x548f, 0x4036, 0x82, 0x5f, 0x70, 0x26, 0xc6, 0x00, 0x11, 0xbd)
+DEFINE_CODECAPI_GUID(AVDecVideoImageSize, "5ee5747c-6801-4cab-aaf1-6248fa841ba4", 0x5ee5747c, 0x6801, 0x4cab, 0xaa, 0xf1, 0x62, 0x48, 0xfa, 0x84, 0x1b, 0xa4)
+DEFINE_CODECAPI_GUID(AVDecVideoPixelAspectRatio, "b0cf8245-f32d-41df-b02c-87bd304d12ab", 0xb0cf8245, 0xf32d, 0x41df, 0xb0, 0x2c, 0x87, 0xbd, 0x30, 0x4d, 0x12, 0xab)
+DEFINE_CODECAPI_GUID(AVDecVideoInputScanType, "38477e1f-0ea7-42cd-8cd1-130ced57c580", 0x38477e1f, 0x0ea7, 0x42cd, 0x8c, 0xd1, 0x13, 0x0c, 0xed, 0x57, 0xc5, 0x80)
+DEFINE_CODECAPI_GUID(AVDecVideoSWPowerLevel, "fb5d2347-4dd8-4509-aed0-db5fa9aa93f4", 0xfb5d2347, 0x4dd8, 0x4509, 0xae, 0xd0, 0xdb, 0x5f, 0xa9, 0xaa, 0x93, 0xf4)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioInputWMA, "c95e8dcf-4058-4204-8c42-cb24d91e4b9b", 0xc95e8dcf, 0x4058, 0x4204, 0x8c, 0x42, 0xcb, 0x24, 0xd9, 0x1e, 0x4b, 0x9b)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioInputWMAPro, "0128b7c7-da72-4fe3-bef8-5c52e3557704", 0x0128b7c7, 0xda72, 0x4fe3, 0xbe, 0xf8, 0x5c, 0x52, 0xe3, 0x55, 0x77, 0x04)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioInputDolby, "8e4228a0-f000-4e0b-8f54-ab8d24ad61a2", 0x8e4228a0, 0xf000, 0x4e0b, 0x8f, 0x54, 0xab, 0x8d, 0x24, 0xad, 0x61, 0xa2)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioInputDTS, "600bc0ca-6a1f-4e91-b241-1bbeb1cb19e0", 0x600bc0ca, 0x6a1f, 0x4e91, 0xb2, 0x41, 0x1b, 0xbe, 0xb1, 0xcb, 0x19, 0xe0)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioInputPCM, "f2421da5-bbb4-4cd5-a996-933c6b5d1347", 0xf2421da5, 0xbbb4, 0x4cd5, 0xa9, 0x96, 0x93, 0x3c, 0x6b, 0x5d, 0x13, 0x47)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioInputMPEG, "91106f36-02c5-4f75-9719-3b7abf75e1f6", 0x91106f36, 0x02c5, 0x4f75, 0x97, 0x19, 0x3b, 0x7a, 0xbf, 0x75, 0xe1, 0xf6)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioInputAAC, "97df7828-b94a-47e2-a4bc-51194db22a4d", 0x97df7828, 0xb94a, 0x47e2, 0xa4, 0xbc, 0x51, 0x19, 0x4d, 0xb2, 0x2a, 0x4d)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioInputHEAAC, "16efb4aa-330e-4f5c-98a8-cf6ac55cbe60", 0x16efb4aa, 0x330e, 0x4f5c, 0x98, 0xa8, 0xcf, 0x6a, 0xc5, 0x5c, 0xbe, 0x60)
+DEFINE_CODECAPI_GUID(GUID_AVDecAudioInputDolbyDigitalPlus, "0803e185-8f5d-47f5-9908-19a5bbc9fe34", 0x0803e185, 0x8f5d, 0x47f5, 0x99, 0x08, 0x19, 0xa5, 0xbb, 0xc9, 0xfe, 0x34)
+DEFINE_CODECAPI_GUID(AVDecAACDownmixMode, "01274475-f6bb-4017-b084-81a763c942d4", 0x1274475, 0xf6bb, 0x4017,  0xb0, 0x84, 0x81, 0xa7, 0x63, 0xc9, 0x42, 0xd4)
+DEFINE_CODECAPI_GUID(AVDecHEAACDynamicRangeControl, "287c8abe-69a4-4d39-8080-d3d9712178a0", 0x287c8abe, 0x69a4, 0x4d39, 0x80, 0x80, 0xd3, 0xd9, 0x71, 0x21, 0x78, 0xa0);
+DEFINE_CODECAPI_GUID(AVDecAudioDualMono,"4a52cda8-30f8-4216-be0f-ba0b2025921d", 0x4a52cda8, 0x30f8, 0x4216, 0xbe, 0x0f, 0xba, 0x0b, 0x20, 0x25, 0x92, 0x1d)
+DEFINE_CODECAPI_GUID(AVDecAudioDualMonoReproMode,"a5106186-cc94-4bc9-8cd9-aa2f61f6807e", 0xa5106186, 0xcc94, 0x4bc9, 0x8c, 0xd9, 0xaa, 0x2f, 0x61, 0xf6, 0x80, 0x7e)
+DEFINE_CODECAPI_GUID(AVAudioChannelCount, "1d3583c4-1583-474e-b71a-5ee463c198e4", 0x1d3583c4, 0x1583, 0x474e, 0xb7, 0x1a, 0x5e, 0xe4, 0x63, 0xc1, 0x98, 0xe4)
+DEFINE_CODECAPI_GUID(AVAudioChannelConfig, "17f89cb3-c38d-4368-9ede-63b94d177f9f", 0x17f89cb3, 0xc38d, 0x4368, 0x9e, 0xde, 0x63, 0xb9, 0x4d, 0x17, 0x7f, 0x9f)
+DEFINE_CODECAPI_GUID(AVAudioSampleRate, "971d2723-1acb-42e7-855c-520a4b70a5f2", 0x971d2723, 0x1acb, 0x42e7, 0x85, 0x5c, 0x52, 0x0a, 0x4b, 0x70, 0xa5, 0xf2)
+DEFINE_CODECAPI_GUID(AVDDSurroundMode, "99f2f386-98d1-4452-a163-abc78a6eb770", 0x99f2f386, 0x98d1, 0x4452, 0xa1, 0x63, 0xab, 0xc7, 0x8a, 0x6e, 0xb7, 0x70)
+DEFINE_CODECAPI_GUID(AVDecDDOperationalMode, "d6d6c6d1-064e-4fdd-a40e-3ecbfcb7ebd0", 0xd6d6c6d1, 0x064e, 0x4fdd, 0xa4, 0x0e, 0x3e, 0xcb, 0xfc, 0xb7, 0xeb, 0xd0)
+DEFINE_CODECAPI_GUID(AVDecDDMatrixDecodingMode, "ddc811a5-04ed-4bf3-a0ca-d00449f9355f", 0xddc811a5, 0x04ed, 0x4bf3, 0xa0, 0xca, 0xd0, 0x04, 0x49, 0xf9, 0x35, 0x5f)
+DEFINE_CODECAPI_GUID(AVDecDDDynamicRangeScaleHigh, "50196c21-1f33-4af5-b296-11426d6c8789", 0x50196c21, 0x1f33, 0x4af5, 0xb2, 0x96, 0x11, 0x42, 0x6d, 0x6c, 0x87, 0x89)
+DEFINE_CODECAPI_GUID(AVDecDDDynamicRangeScaleLow, "044e62e4-11a5-42d5-a3b2-3bb2c7c2d7cf", 0x044e62e4, 0x11a5, 0x42d5, 0xa3, 0xb2, 0x3b, 0xb2, 0xc7, 0xc2, 0xd7, 0xcf)
+DEFINE_CODECAPI_GUID(AVDecDDStereoDownMixMode, "6ce4122c-3ee9-4182-b4ae-c10fc088649d", 0x6ce4122c, 0x3ee9, 0x4182, 0xb4, 0xae, 0xc1, 0x0f, 0xc0, 0x88, 0x64, 0x9d)
+DEFINE_CODECAPI_GUID(AVDSPLoudnessEqualization, "8afd1a15-1812-4cbf-9319-433a5b2a3b27", 0x8afd1a15, 0x1812, 0x4cbf, 0x93, 0x19, 0x43, 0x3a, 0x5b, 0x2a, 0x3b, 0x27)
+DEFINE_CODECAPI_GUID(AVDSPSpeakerFill, "5612bca1-56da-4582-8da1-ca8090f92768", 0x5612bca1, 0x56da, 0x4582, 0x8d, 0xa1, 0xca, 0x80, 0x90, 0xf9, 0x27, 0x68)
+DEFINE_CODECAPI_GUID(AVPriorityControl, "54ba3dc8-bdde-4329-b187-2018bc5c2ba1", 0x54ba3dc8, 0xbdde, 0x4329, 0xb1, 0x87, 0x20, 0x18, 0xbc, 0x5c, 0x2b, 0xa1)
+DEFINE_CODECAPI_GUID(AVRealtimeControl, "6f440632-c4ad-4bf7-9e52-456942b454b0", 0x6f440632, 0xc4ad, 0x4bf7, 0x9e, 0x52, 0x45, 0x69, 0x42, 0xb4, 0x54, 0xb0)
+DEFINE_CODECAPI_GUID(AVEncNoInputCopy, "d2b46a2a-e8ee-4ec5-869e-449b6c62c81a", 0xd2b46a2a, 0xe8ee, 0x4ec5, 0x86, 0x9e, 0x44, 0x9b, 0x6c, 0x62, 0xc8, 0x1a)
+DEFINE_CODECAPI_GUID(AVEncChromaEncodeMode, "8a47ab5a-4798-4c93-b5a5-554f9a3b9f50", 0x8a47ab5a, 0x4798, 0x4c93, 0xb5, 0xa5, 0x55, 0x4f, 0x9a, 0x3b, 0x9f, 0x50)
 
 #ifndef UUID_GEN
 
-#define CODECAPI_AVDecVideoThumbnailGenerationMode  DEFINE_CODECAPI_GUIDNAMED(AVDecVideoThumbnailGenerationMode)
-#define CODECAPI_AVDecVideoDropPicWithMissingRef    DEFINE_CODECAPI_GUIDNAMED(AVDecVideoDropPicWithMissingRef)
-#define CODECAPI_AVDecVideoSoftwareDeinterlaceMode  DEFINE_CODECAPI_GUIDNAMED(AVDecVideoSoftwareDeinterlaceMode)
-#define CODECAPI_AVDecVideoFastDecodeMode           DEFINE_CODECAPI_GUIDNAMED(AVDecVideoFastDecodeMode)
-#define CODECAPI_AVLowLatencyMode                   DEFINE_CODECAPI_GUIDNAMED(AVLowLatencyMode)
-#define CODECAPI_AVDecVideoH264ErrorConcealment     DEFINE_CODECAPI_GUIDNAMED(AVDecVideoH264ErrorConcealment)
-#define CODECAPI_AVDecVideoMPEG2ErrorConcealment    DEFINE_CODECAPI_GUIDNAMED(AVDecVideoMPEG2ErrorConcealment)
-#define CODECAPI_AVDecVideoCodecType                DEFINE_CODECAPI_GUIDNAMED(AVDecVideoCodecType)
-#define CODECAPI_AVDecVideoDXVAMode                 DEFINE_CODECAPI_GUIDNAMED(AVDecVideoDXVAMode)
-#define CODECAPI_AVDecVideoDXVABusEncryption        DEFINE_CODECAPI_GUIDNAMED(AVDecVideoDXVABusEncryption)
-#define CODECAPI_AVDecVideoSWPowerLevel             DEFINE_CODECAPI_GUIDNAMED(AVDecVideoSWPowerLevel)
-#define CODECAPI_AVDecVideoMaxCodedWidth            DEFINE_CODECAPI_GUIDNAMED(AVDecVideoMaxCodedWidth)
-#define CODECAPI_AVDecVideoMaxCodedHeight           DEFINE_CODECAPI_GUIDNAMED(AVDecVideoMaxCodedHeight)
-#define CODECAPI_AVDecNumWorkerThreads              DEFINE_CODECAPI_GUIDNAMED(AVDecNumWorkerThreads)
-#define CODECAPI_AVDecSoftwareDynamicFormatChange   DEFINE_CODECAPI_GUIDNAMED(AVDecSoftwareDynamicFormatChange)
-#define CODECAPI_AVDecDisableVideoPostProcessing    DEFINE_CODECAPI_GUIDNAMED(AVDecDisableVideoPostProcessing)
-#define CODECAPI_AVEncCommonMeanBitRate             DEFINE_CODECAPI_GUIDNAMED(AVEncCommonMeanBitRate)
-#define CODECAPI_AVEncCommonQuality                 DEFINE_CODECAPI_GUIDNAMED(AVEncCommonQuality)
-#define CODECAPI_AVEncCommonRateControlMode         DEFINE_CODECAPI_GUIDNAMED(AVEncCommonRateControlMode)
-#define CODECAPI_AVEncVideoForceKeyFrame            DEFINE_CODECAPI_GUIDNAMED(AVEncVideoForceKeyFrame)
-#define CODECAPI_AVEncMPVDefaultBPictureCount       DEFINE_CODECAPI_GUIDNAMED(AVEncMPVDefaultBPictureCount)
-#define CODECAPI_AVEncMPVDefaultBPictureCount       DEFINE_CODECAPI_GUIDNAMED(AVEncMPVDefaultBPictureCount)
-#define CODECAPI_AVEncH264CABACEnable               DEFINE_CODECAPI_GUIDNAMED(AVEncH264CABACEnable)
-
-#endif
+#define CODECAPI_AVEncCommonFormatConstraint DEFINE_CODECAPI_GUIDNAMED(AVEncCommonFormatConstraint)
+#define CODECAPI_GUID_AVEncCommonFormatUnSpecified DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatUnSpecified)
+#define CODECAPI_GUID_AVEncCommonFormatDVD_V DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatDVD_V)
+#define CODECAPI_GUID_AVEncCommonFormatDVD_DashVR DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatDVD_DashVR)
+#define CODECAPI_GUID_AVEncCommonFormatDVD_PlusVR DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatDVD_PlusVR)
+#define CODECAPI_GUID_AVEncCommonFormatVCD DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatVCD)
+#define CODECAPI_GUID_AVEncCommonFormatSVCD DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatSVCD)
+#define CODECAPI_GUID_AVEncCommonFormatATSC DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatATSC)
+#define CODECAPI_GUID_AVEncCommonFormatDVB DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatDVB)
+#define CODECAPI_GUID_AVEncCommonFormatMP3 DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatMP3)
+#define CODECAPI_GUID_AVEncCommonFormatHighMAT DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatHighMAT)
+#define CODECAPI_GUID_AVEncCommonFormatHighMPV DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncCommonFormatHighMPV)
+#define CODECAPI_AVEncCodecType DEFINE_CODECAPI_GUIDNAMED(AVEncCodecType)
+#define CODECAPI_GUID_AVEncMPEG1Video DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncMPEG1Video)
+#define CODECAPI_GUID_AVEncMPEG2Video DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncMPEG2Video)
+#define CODECAPI_GUID_AVEncMPEG1Audio DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncMPEG1Audio)
+#define CODECAPI_GUID_AVEncMPEG2Audio DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncMPEG2Audio)
+#define CODECAPI_GUID_AVEncWMV DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncWMV)
+#define CODECAPI_GUID_AVEndMPEG4Video DEFINE_CODECAPI_GUIDNAMED(GUID_AVEndMPEG4Video)
+#define CODECAPI_GUID_AVEncH264Video DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncH264Video)
+#define CODECAPI_GUID_AVEncDV DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncDV)
+#define CODECAPI_GUID_AVEncWMAPro DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncWMAPro)
+#define CODECAPI_GUID_AVEncWMALossless DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncWMALossless)
+#define CODECAPI_GUID_AVEncWMAVoice DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncWMAVoice)
+#define CODECAPI_GUID_AVEncDolbyDigitalPro DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncDolbyDigitalPro)
+#define CODECAPI_GUID_AVEncDolbyDigitalConsumer DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncDolbyDigitalConsumer)
+#define CODECAPI_GUID_AVEncDolbyDigitalPlus DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncDolbyDigitalPlus)
+#define CODECAPI_GUID_AVEncDTSHD DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncDTSHD)
+#define CODECAPI_GUID_AVEncDTS DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncDTS)
+#define CODECAPI_GUID_AVEncMLP DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncMLP)
+#define CODECAPI_GUID_AVEncPCM DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncPCM)
+#define CODECAPI_GUID_AVEncSDDS DEFINE_CODECAPI_GUIDNAMED(GUID_AVEncSDDS)
+#define CODECAPI_AVEncCommonRateControlMode DEFINE_CODECAPI_GUIDNAMED(AVEncCommonRateControlMode)
+#define CODECAPI_AVEncCommonLowLatency DEFINE_CODECAPI_GUIDNAMED(AVEncCommonLowLatency)
+#define CODECAPI_AVEncCommonMultipassMode DEFINE_CODECAPI_GUIDNAMED(AVEncCommonMultipassMode)
+#define CODECAPI_AVEncCommonPassStart DEFINE_CODECAPI_GUIDNAMED(AVEncCommonPassStart)
+#define CODECAPI_AVEncCommonPassEnd DEFINE_CODECAPI_GUIDNAMED(AVEncCommonPassEnd)
+#define CODECAPI_AVEncCommonRealTime DEFINE_CODECAPI_GUIDNAMED(AVEncCommonRealTime)
+#define CODECAPI_AVEncCommonQuality DEFINE_CODECAPI_GUIDNAMED(AVEncCommonQuality)
+#define CODECAPI_AVEncCommonQualityVsSpeed DEFINE_CODECAPI_GUIDNAMED(AVEncCommonQualityVsSpeed)
+#define CODECAPI_AVEncCommonTranscodeEncodingProfile DEFINE_CODECAPI_GUIDNAMED(AVEncCommonTranscodeEncodingProfile)
+#define CODECAPI_AVEncCommonMeanBitRate DEFINE_CODECAPI_GUIDNAMED(AVEncCommonMeanBitRate)
+#define CODECAPI_AVEncCommonMeanBitRateInterval DEFINE_CODECAPI_GUIDNAMED(AVEncCommonMeanBitRateInterval)
+#define CODECAPI_AVEncCommonMaxBitRate DEFINE_CODECAPI_GUIDNAMED(AVEncCommonMaxBitRate)
+#define CODECAPI_AVEncCommonMinBitRate DEFINE_CODECAPI_GUIDNAMED(AVEncCommonMinBitRate)
+#define CODECAPI_AVEncCommonBufferSize DEFINE_CODECAPI_GUIDNAMED(AVEncCommonBufferSize)
+#define CODECAPI_AVEncCommonBufferInLevel DEFINE_CODECAPI_GUIDNAMED(AVEncCommonBufferInLevel)
+#define CODECAPI_AVEncCommonBufferOutLevel DEFINE_CODECAPI_GUIDNAMED(AVEncCommonBufferOutLevel)
+#define CODECAPI_AVEncCommonStreamEndHandling DEFINE_CODECAPI_GUIDNAMED(AVEncCommonStreamEndHandling)
+#define CODECAPI_AVEncStatCommonCompletedPasses DEFINE_CODECAPI_GUIDNAMED(AVEncStatCommonCompletedPasses)
+#define CODECAPI_AVEncVideoOutputFrameRate DEFINE_CODECAPI_GUIDNAMED(AVEncVideoOutputFrameRate)
+#define CODECAPI_AVEncVideoOutputFrameRateConversion DEFINE_CODECAPI_GUIDNAMED(AVEncVideoOutputFrameRateConversion)
+#define CODECAPI_AVEncVideoPixelAspectRatio DEFINE_CODECAPI_GUIDNAMED(AVEncVideoPixelAspectRatio)
+#define CODECAPI_AVDecVideoAcceleration_MPEG2 DEFINE_CODECAPI_GUIDNAMED(AVDecVideoAcceleration_MPEG2)
+#define CODECAPI_AVDecVideoAcceleration_H264 DEFINE_CODECAPI_GUIDNAMED(AVDecVideoAcceleration_H264)
+#define CODECAPI_AVDecVideoAcceleration_VC1 DEFINE_CODECAPI_GUIDNAMED(AVDecVideoAcceleration_VC1)
+#define CODECAPI_AVDecVideoProcDeinterlaceCSC DEFINE_CODECAPI_GUIDNAMED(AVDecVideoProcDeinterlaceCSC)
+#define CODECAPI_AVEncVideoForceSourceScanType DEFINE_CODECAPI_GUIDNAMED(AVEncVideoForceSourceScanType)
+#define CODECAPI_AVEncVideoNoOfFieldsToEncode DEFINE_CODECAPI_GUIDNAMED(AVEncVideoNoOfFieldsToEncode)
+#define CODECAPI_AVEncVideoNoOfFieldsToSkip DEFINE_CODECAPI_GUIDNAMED(AVEncVideoNoOfFieldsToSkip)
+#define CODECAPI_AVEncVideoEncodeDimension DEFINE_CODECAPI_GUIDNAMED(AVEncVideoEncodeDimension)
+#define CODECAPI_AVEncVideoEncodeOffsetOrigin DEFINE_CODECAPI_GUIDNAMED(AVEncVideoEncodeOffsetOrigin)
+#define CODECAPI_AVEncVideoDisplayDimension DEFINE_CODECAPI_GUIDNAMED(AVEncVideoDisplayDimension)
+#define CODECAPI_AVEncVideoOutputScanType DEFINE_CODECAPI_GUIDNAMED(AVEncVideoOutputScanType)
+#define CODECAPI_AVEncVideoInverseTelecineEnable DEFINE_CODECAPI_GUIDNAMED(AVEncVideoInverseTelecineEnable)
+#define CODECAPI_AVEncVideoInverseTelecineThreshold DEFINE_CODECAPI_GUIDNAMED(AVEncVideoInverseTelecineThreshold)
+#define CODECAPI_AVEncVideoSourceFilmContent DEFINE_CODECAPI_GUIDNAMED(AVEncVideoSourceFilmContent)
+#define CODECAPI_AVEncVideoSourceIsBW DEFINE_CODECAPI_GUIDNAMED(AVEncVideoSourceIsBW)
+#define CODECAPI_AVEncVideoFieldSwap DEFINE_CODECAPI_GUIDNAMED(AVEncVideoFieldSwap)
+#define CODECAPI_AVEncVideoInputChromaResolution DEFINE_CODECAPI_GUIDNAMED(AVEncVideoInputChromaResolution)
+#define CODECAPI_AVEncVideoOutputChromaResolution DEFINE_CODECAPI_GUIDNAMED(AVEncVideoOutputChromaResolution)
+#define CODECAPI_AVEncVideoInputChromaSubsampling DEFINE_CODECAPI_GUIDNAMED(AVEncVideoInputChromaSubsampling)
+#define CODECAPI_AVEncVideoOutputChromaSubsampling DEFINE_CODECAPI_GUIDNAMED(AVEncVideoOutputChromaSubsampling)
+#define CODECAPI_AVEncVideoInputColorPrimaries DEFINE_CODECAPI_GUIDNAMED(AVEncVideoInputColorPrimaries)
+#define CODECAPI_AVEncVideoOutputColorPrimaries DEFINE_CODECAPI_GUIDNAMED(AVEncVideoOutputColorPrimaries)
+#define CODECAPI_AVEncVideoInputColorTransferFunction DEFINE_CODECAPI_GUIDNAMED(AVEncVideoInputColorTransferFunction)
+#define CODECAPI_AVEncVideoOutputColorTransferFunction DEFINE_CODECAPI_GUIDNAMED(AVEncVideoOutputColorTransferFunction)
+#define CODECAPI_AVEncVideoInputColorTransferMatrix DEFINE_CODECAPI_GUIDNAMED(AVEncVideoInputColorTransferMatrix)
+#define CODECAPI_AVEncVideoOutputColorTransferMatrix DEFINE_CODECAPI_GUIDNAMED(AVEncVideoOutputColorTransferMatrix)
+#define CODECAPI_AVEncVideoInputColorLighting DEFINE_CODECAPI_GUIDNAMED(AVEncVideoInputColorLighting)
+#define CODECAPI_AVEncVideoOutputColorLighting DEFINE_CODECAPI_GUIDNAMED(AVEncVideoOutputColorLighting)
+#define CODECAPI_AVEncVideoInputColorNominalRange DEFINE_CODECAPI_GUIDNAMED(AVEncVideoInputColorNominalRange)
+#define CODECAPI_AVEncVideoOutputColorNominalRange DEFINE_CODECAPI_GUIDNAMED(AVEncVideoOutputColorNominalRange)
+#define CODECAPI_AVEncInputVideoSystem DEFINE_CODECAPI_GUIDNAMED(AVEncInputVideoSystem)
+#define CODECAPI_AVEncVideoHeaderDropFrame DEFINE_CODECAPI_GUIDNAMED(AVEncVideoHeaderDropFrame)
+#define CODECAPI_AVEncVideoHeaderHours DEFINE_CODECAPI_GUIDNAMED(AVEncVideoHeaderHours)
+#define CODECAPI_AVEncVideoHeaderMinutes DEFINE_CODECAPI_GUIDNAMED(AVEncVideoHeaderMinutes)
+#define CODECAPI_AVEncVideoHeaderSeconds DEFINE_CODECAPI_GUIDNAMED(AVEncVideoHeaderSeconds)
+#define CODECAPI_AVEncVideoHeaderFrames DEFINE_CODECAPI_GUIDNAMED(AVEncVideoHeaderFrames)
+#define CODECAPI_AVEncVideoDefaultUpperFieldDominant DEFINE_CODECAPI_GUIDNAMED(AVEncVideoDefaultUpperFieldDominant)
+#define CODECAPI_AVEncVideoCBRMotionTradeoff DEFINE_CODECAPI_GUIDNAMED(AVEncVideoCBRMotionTradeoff)
+#define CODECAPI_AVEncVideoCodedVideoAccessUnitSize DEFINE_CODECAPI_GUIDNAMED(AVEncVideoCodedVideoAccessUnitSize)
+#define CODECAPI_AVEncVideoMaxKeyframeDistance DEFINE_CODECAPI_GUIDNAMED(AVEncVideoMaxKeyframeDistance)
+#define CODECAPI_AVEncH264CABACEnable DEFINE_CODECAPI_GUIDNAMED(AVEncH264CABACEnable)
+#define CODECAPI_AVEncVideoContentType DEFINE_CODECAPI_GUIDNAMED(AVEncVideoContentType)
+#define CODECAPI_AVEncNumWorkerThreads DEFINE_CODECAPI_GUIDNAMED(AVEncNumWorkerThreads)
+#define CODECAPI_AVEncVideoEncodeQP DEFINE_CODECAPI_GUIDNAMED(AVEncVideoEncodeQP)
+#define CODECAPI_AVEncVideoMinQP DEFINE_CODECAPI_GUIDNAMED(AVEncVideoMinQP)
+#define CODECAPI_AVEncVideoForceKeyFrame DEFINE_CODECAPI_GUIDNAMED(AVEncVideoForceKeyFrame)
+#define CODECAPI_AVEncH264SPSID DEFINE_CODECAPI_GUIDNAMED(AVEncH264SPSID)
+#define CODECAPI_AVEncH264PPSID DEFINE_CODECAPI_GUIDNAMED(AVEncH264PPSID)
+#define CODECAPI_AVEncAdaptiveMode DEFINE_CODECAPI_GUIDNAMED(AVEncAdaptiveMode)
+#define CODECAPI_AVEncVideoSelectLayer DEFINE_CODECAPI_GUIDNAMED(AVEncVideoSelectLayer)
+#define CODECAPI_AVEncVideoTemporalLayerCount DEFINE_CODECAPI_GUIDNAMED(AVEncVideoTemporalLayerCount)
+#define CODECAPI_AVEncVideoUsage DEFINE_CODECAPI_GUIDNAMED(AVEncVideoUsage)
+#define CODECAPI_AVEncVideoRateControlParams DEFINE_CODECAPI_GUIDNAMED(AVEncVideoRateControlParams)
+#define CODECAPI_AVEncVideoSupportedControls DEFINE_CODECAPI_GUIDNAMED(AVEncVideoSupportedControls)
+#define CODECAPI_AVEncVideoEncodeFrameTypeQP DEFINE_CODECAPI_GUIDNAMED(AVEncVideoEncodeFrameTypeQP)
+#define CODECAPI_AVEncSliceControlMode DEFINE_CODECAPI_GUIDNAMED(AVEncSliceControlMode)
+#define CODECAPI_AVEncSliceControlSize DEFINE_CODECAPI_GUIDNAMED(AVEncSliceControlSize)
+#define CODECAPI_AVEncSliceGenerationMode DEFINE_CODECAPI_GUIDNAMED(AVEncSliceGenerationMode)
+#define CODECAPI_AVEncVideoMaxNumRefFrame DEFINE_CODECAPI_GUIDNAMED(AVEncVideoMaxNumRefFrame)
+#define CODECAPI_AVEncVideoMeanAbsoluteDifference DEFINE_CODECAPI_GUIDNAMED(AVEncVideoMeanAbsoluteDifference)
+#define CODECAPI_AVEncVideoMaxQP DEFINE_CODECAPI_GUIDNAMED(AVEncVideoMaxQP)
+#define CODECAPI_AVEncVideoLTRBufferControl DEFINE_CODECAPI_GUIDNAMED(AVEncVideoLTRBufferControl)
+#define CODECAPI_AVEncVideoMarkLTRFrame DEFINE_CODECAPI_GUIDNAMED(AVEncVideoMarkLTRFrame)
+#define CODECAPI_AVEncVideoUseLTRFrame DEFINE_CODECAPI_GUIDNAMED(AVEncVideoUseLTRFrame)
+#define CODECAPI_AVEncVideoROIEnabled DEFINE_CODECAPI_GUIDNAMED(AVEncVideoROIEnabled)
+#define CODECAPI_AVEncVideoDirtyRectEnabled DEFINE_CODECAPI_GUIDNAMED(AVEncVideoDirtyRectEnabled)
+#define CODECAPI_AVScenarioInfo DEFINE_CODECAPI_GUIDNAMED(AVScenarioInfo)
+#define CODECAPI_AVEncMPVGOPSizeMin DEFINE_CODECAPI_GUIDNAMED(AVEncMPVGOPSizeMin)
+#define CODECAPI_AVEncMPVGOPSizeMax DEFINE_CODECAPI_GUIDNAMED(AVEncMPVGOPSizeMax)
+#define CODECAPI_AVEncVideoMaxCTBSize DEFINE_CODECAPI_GUIDNAMED(AVEncVideoMaxCTBSize)
+#define CODECAPI_AVEncVideoCTBSize DEFINE_CODECAPI_GUIDNAMED(AVEncVideoCTBSize)
+#define CODECAPI_VideoEncoderDisplayContentType DEFINE_CODECAPI_GUIDNAMED(VideoEncoderDisplayContentType)
+#define CODECAPI_AVEncEnableVideoProcessing DEFINE_CODECAPI_GUIDNAMED(AVEncEnableVideoProcessing)
+#define CODECAPI_AVEncVideoGradualIntraRefresh DEFINE_CODECAPI_GUIDNAMED(AVEncVideoGradualIntraRefresh)
+#define CODECAPI_GetOPMContext DEFINE_CODECAPI_GUIDNAMED(GetOPMContext)
+#define CODECAPI_SetHDCPManagerContext DEFINE_CODECAPI_GUIDNAMED(SetHDCPManagerContext)
+#define CODECAPI_AVEncVideoMaxTemporalLayers DEFINE_CODECAPI_GUIDNAMED(AVEncVideoMaxTemporalLayers)
+#define CODECAPI_AVEncVideoNumGOPsPerIDR DEFINE_CODECAPI_GUIDNAMED(AVEncVideoNumGOPsPerIDR)
+#define CODECAPI_AVEncCommonAllowFrameDrops DEFINE_CODECAPI_GUIDNAMED(AVEncCommonAllowFrameDrops)
+#define CODECAPI_AVEncVideoIntraLayerPrediction DEFINE_CODECAPI_GUIDNAMED(AVEncVideoIntraLayerPrediction)
+#define CODECAPI_AVEncVideoInstantTemporalUpSwitching DEFINE_CODECAPI_GUIDNAMED(AVEncVideoInstantTemporalUpSwitching)
+#define CODECAPI_AVEncLowPowerEncoder DEFINE_CODECAPI_GUIDNAMED(AVEncLowPowerEncoder)
+#define CODECAPI_AVEnableInLoopDeblockFilter DEFINE_CODECAPI_GUIDNAMED(AVEnableInLoopDeblockFilter)
+#define CODECAPI_AVEncMuxOutputStreamType DEFINE_CODECAPI_GUIDNAMED(AVEncMuxOutputStreamType)
+#define CODECAPI_AVEncStatVideoOutputFrameRate DEFINE_CODECAPI_GUIDNAMED(AVEncStatVideoOutputFrameRate)
+#define CODECAPI_AVEncStatVideoCodedFrames DEFINE_CODECAPI_GUIDNAMED(AVEncStatVideoCodedFrames)
+#define CODECAPI_AVEncStatVideoTotalFrames DEFINE_CODECAPI_GUIDNAMED(AVEncStatVideoTotalFrames)
+#define CODECAPI_AVEncAudioIntervalToEncode DEFINE_CODECAPI_GUIDNAMED(AVEncAudioIntervalToEncode)
+#define CODECAPI_AVEncAudioIntervalToSkip DEFINE_CODECAPI_GUIDNAMED(AVEncAudioIntervalToSkip)
+#define CODECAPI_AVEncAudioDualMono DEFINE_CODECAPI_GUIDNAMED(AVEncAudioDualMono)
+#define CODECAPI_AVEncAudioMeanBitRate DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMeanBitRate)
+#define CODECAPI_AVEncAudioMapDestChannel0 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel0)
+#define CODECAPI_AVEncAudioMapDestChannel1 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel1)
+#define CODECAPI_AVEncAudioMapDestChannel2 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel2)
+#define CODECAPI_AVEncAudioMapDestChannel3 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel3)
+#define CODECAPI_AVEncAudioMapDestChannel4 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel4)
+#define CODECAPI_AVEncAudioMapDestChannel5 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel5)
+#define CODECAPI_AVEncAudioMapDestChannel6 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel6)
+#define CODECAPI_AVEncAudioMapDestChannel7 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel7)
+#define CODECAPI_AVEncAudioMapDestChannel8 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel8)
+#define CODECAPI_AVEncAudioMapDestChannel9 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel9)
+#define CODECAPI_AVEncAudioMapDestChannel10 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel10)
+#define CODECAPI_AVEncAudioMapDestChannel11 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel11)
+#define CODECAPI_AVEncAudioMapDestChannel12 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel12)
+#define CODECAPI_AVEncAudioMapDestChannel13 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel13)
+#define CODECAPI_AVEncAudioMapDestChannel14 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel14)
+#define CODECAPI_AVEncAudioMapDestChannel15 DEFINE_CODECAPI_GUIDNAMED(AVEncAudioMapDestChannel15)
+#define CODECAPI_AVEncAudioInputContent DEFINE_CODECAPI_GUIDNAMED(AVEncAudioInputContent)
+#define CODECAPI_AVEncStatAudioPeakPCMValue DEFINE_CODECAPI_GUIDNAMED(AVEncStatAudioPeakPCMValue)
+#define CODECAPI_AVEncStatAudioAveragePCMValue DEFINE_CODECAPI_GUIDNAMED(AVEncStatAudioAveragePCMValue)
+#define CODECAPI_AVEncStatAudioAverageBPS DEFINE_CODECAPI_GUIDNAMED(AVEncStatAudioAverageBPS)
+#define CODECAPI_AVEncStatAverageBPS DEFINE_CODECAPI_GUIDNAMED(AVEncStatAverageBPS)
+#define CODECAPI_AVEncStatHardwareProcessorUtilitization DEFINE_CODECAPI_GUIDNAMED(AVEncStatHardwareProcessorUtilitization)
+#define CODECAPI_AVEncStatBandwidthProcessorUtilitization DEFINE_CODECAPI_GUIDNAMED(AVEncStatHardwareBandwidthUtilitization)
+#define CODECAPI_AVEncMPVGOPSize DEFINE_CODECAPI_GUIDNAMED(AVEncMPVGOPSize)
+#define CODECAPI_AVEncMPVGOPOpen DEFINE_CODECAPI_GUIDNAMED(AVEncMPVGOPOpen)
+#define CODECAPI_AVEncMPVDefaultBPictureCount DEFINE_CODECAPI_GUIDNAMED(AVEncMPVDefaultBPictureCount)
+#define CODECAPI_AVEncMPVProfile DEFINE_CODECAPI_GUIDNAMED(AVEncMPVProfile)
+#define CODECAPI_AVEncMPVLevel DEFINE_CODECAPI_GUIDNAMED(AVEncMPVLevel)
+#define CODECAPI_AVEncMPVFrameFieldMode DEFINE_CODECAPI_GUIDNAMED(AVEncMPVFrameFieldMode)
+#define CODECAPI_AVEncMPVAddSeqEndCode DEFINE_CODECAPI_GUIDNAMED(AVEncMPVAddSeqEndCode)
+#define CODECAPI_AVEncMPVGOPSInSeq DEFINE_CODECAPI_GUIDNAMED(AVEncMPVGOPSInSeq)
+#define CODECAPI_AVEncMPVUseConcealmentMotionVectors DEFINE_CODECAPI_GUIDNAMED(AVEncMPVUseConcealmentMotionVectors)
+#define CODECAPI_AVEncMPVSceneDetection DEFINE_CODECAPI_GUIDNAMED(AVEncMPVSceneDetection)
+#define CODECAPI_AVEncMPVGenerateHeaderSeqExt DEFINE_CODECAPI_GUIDNAMED(AVEncMPVGenerateHeaderSeqExt)
+#define CODECAPI_AVEncMPVGenerateHeaderSeqDispExt DEFINE_CODECAPI_GUIDNAMED(AVEncMPVGenerateHeaderSeqDispExt)
+#define CODECAPI_AVEncMPVGenerateHeaderPicExt DEFINE_CODECAPI_GUIDNAMED(AVEncMPVGenerateHeaderPicExt)
+#define CODECAPI_AVEncMPVGenerateHeaderPicDispExt DEFINE_CODECAPI_GUIDNAMED(AVEncMPVGenerateHeaderPicDispExt)
+#define CODECAPI_AVEncMPVGenerateHeaderSeqScaleExt DEFINE_CODECAPI_GUIDNAMED(AVEncMPVGenerateHeaderSeqScaleExt)
+#define CODECAPI_AVEncMPVScanPattern DEFINE_CODECAPI_GUIDNAMED(AVEncMPVScanPattern)
+#define CODECAPI_AVEncMPVIntraDCPrecision DEFINE_CODECAPI_GUIDNAMED(AVEncMPVIntraDCPrecision)
+#define CODECAPI_AVEncMPVQScaleType DEFINE_CODECAPI_GUIDNAMED(AVEncMPVQScaleType)
+#define CODECAPI_AVEncMPVIntraVLCTable DEFINE_CODECAPI_GUIDNAMED(AVEncMPVIntraVLCTable)
+#define CODECAPI_AVEncMPVQuantMatrixIntra DEFINE_CODECAPI_GUIDNAMED(AVEncMPVQuantMatrixIntra)
+#define CODECAPI_AVEncMPVQuantMatrixNonIntra DEFINE_CODECAPI_GUIDNAMED(AVEncMPVQuantMatrixNonIntra)
+#define CODECAPI_AVEncMPVQuantMatrixChromaIntra DEFINE_CODECAPI_GUIDNAMED(AVEncMPVQuantMatrixChromaIntra)
+#define CODECAPI_AVEncMPVQuantMatrixChromaNonIntra DEFINE_CODECAPI_GUIDNAMED(AVEncMPVQuantMatrixChromaNonIntra)
+#define CODECAPI_AVEncMPALayer DEFINE_CODECAPI_GUIDNAMED(AVEncMPALayer)
+#define CODECAPI_AVEncMPACodingMode DEFINE_CODECAPI_GUIDNAMED(AVEncMPACodingMode)
+#define CODECAPI_AVEncDDService DEFINE_CODECAPI_GUIDNAMED(AVEncDDService)
+#define CODECAPI_AVEncDDDialogNormalization DEFINE_CODECAPI_GUIDNAMED(AVEncDDDialogNormalization)
+#define CODECAPI_AVEncDDCentreDownMixLevel DEFINE_CODECAPI_GUIDNAMED(AVEncDDCentreDownMixLevel)
+#define CODECAPI_AVEncDDSurroundDownMixLevel DEFINE_CODECAPI_GUIDNAMED(AVEncDDSurroundDownMixLevel)
+#define CODECAPI_AVEncDDProductionInfoExists DEFINE_CODECAPI_GUIDNAMED(AVEncDDProductionInfoExists)
+#define CODECAPI_AVEncDDProductionRoomType DEFINE_CODECAPI_GUIDNAMED(AVEncDDProductionRoomType)
+#define CODECAPI_AVEncDDProductionMixLevel DEFINE_CODECAPI_GUIDNAMED(AVEncDDProductionMixLevel)
+#define CODECAPI_AVEncDDCopyright DEFINE_CODECAPI_GUIDNAMED(AVEncDDCopyright)
+#define CODECAPI_AVEncDDOriginalBitstream DEFINE_CODECAPI_GUIDNAMED(AVEncDDOriginalBitstream)
+#define CODECAPI_AVEncDDDigitalDeemphasis DEFINE_CODECAPI_GUIDNAMED(AVEncDDDigitalDeemphasis)
+#define CODECAPI_AVEncDDDCHighPassFilter DEFINE_CODECAPI_GUIDNAMED(AVEncDDDCHighPassFilter)
+#define CODECAPI_AVEncDDChannelBWLowPassFilter DEFINE_CODECAPI_GUIDNAMED(AVEncDDChannelBWLowPassFilter)
+#define CODECAPI_AVEncDDLFELowPassFilter DEFINE_CODECAPI_GUIDNAMED(AVEncDDLFELowPassFilter)
+#define CODECAPI_AVEncDDSurround90DegreeePhaseShift DEFINE_CODECAPI_GUIDNAMED(AVEncDDSurround90DegreeePhaseShift)
+#define CODECAPI_AVEncDDSurround3dBAttenuation DEFINE_CODECAPI_GUIDNAMED(AVEncDDSurround3dBAttenuation)
+#define CODECAPI_AVEncDDDynamicRangeCompressionControl DEFINE_CODECAPI_GUIDNAMED(AVEncDDDynamicRangeCompressionControl)
+#define CODECAPI_AVEncDDRFPreEmphasisFilter DEFINE_CODECAPI_GUIDNAMED(AVEncDDRFPreEmphasisFilter)
+#define CODECAPI_AVEncDDSurroundExMode DEFINE_CODECAPI_GUIDNAMED(AVEncDDSurroundExMode)
+#define CODECAPI_AVEncDDPreferredStereoDownMixMode DEFINE_CODECAPI_GUIDNAMED(AVEncDDPreferredStereoDownMixMode)
+#define CODECAPI_AVEncDDLtRtCenterMixLvl_x10 DEFINE_CODECAPI_GUIDNAMED(AVEncDDLtRtCenterMixLvl_x10)
+#define CODECAPI_AVEncDDLtRtSurroundMixLvl_x10 DEFINE_CODECAPI_GUIDNAMED(AVEncDDLtRtSurroundMixLvl_x10)
+#define CODECAPI_AVEncDDLoRoCenterMixLvl_x10 DEFINE_CODECAPI_GUIDNAMED(AVEncDDLoRoCenterMixLvl_x10)
+#define CODECAPI_AVEncDDLoRoSurroundMixLvl_x10 DEFINE_CODECAPI_GUIDNAMED(AVEncDDLoRoSurroundMixLvl_x10)
+#define CODECAPI_AVEncDDAtoDConverterType DEFINE_CODECAPI_GUIDNAMED(AVEncDDAtoDConverterType)
+#define CODECAPI_AVEncDDHeadphoneMode DEFINE_CODECAPI_GUIDNAMED(AVEncDDHeadphoneMode)
+#define CODECAPI_AVEncWMVKeyFrameDistance DEFINE_CODECAPI_GUIDNAMED(AVEncWMVKeyFrameDistance)
+#define CODECAPI_AVEncWMVInterlacedEncoding DEFINE_CODECAPI_GUIDNAMED(AVEncWMVInterlacedEncoding)
+#define CODECAPI_AVEncWMVDecoderComplexity DEFINE_CODECAPI_GUIDNAMED(AVEncWMVDecoderComplexity)
+#define CODECAPI_AVEncWMVKeyFrameBufferLevelMarker DEFINE_CODECAPI_GUIDNAMED(AVEncWMVKeyFrameBufferLevelMarker)
+#define CODECAPI_AVEncWMVProduceDummyFrames DEFINE_CODECAPI_GUIDNAMED(AVEncWMVProduceDummyFrames)
+#define CODECAPI_AVEncStatWMVCBAvg DEFINE_CODECAPI_GUIDNAMED(AVEncStatWMVCBAvg)
+#define CODECAPI_AVEncStatWMVCBMax DEFINE_CODECAPI_GUIDNAMED(AVEncStatWMVCBMax)
+#define CODECAPI_AVEncStatWMVDecoderComplexityProfile DEFINE_CODECAPI_GUIDNAMED(AVEncStatWMVDecoderComplexityProfile)
+#define CODECAPI_AVEncStatMPVSkippedEmptyFrames DEFINE_CODECAPI_GUIDNAMED(AVEncStatMPVSkippedEmptyFrames)
+#define CODECAPI_AVEncMP12PktzSTDBuffer DEFINE_CODECAPI_GUIDNAMED(AVEncMP12PktzSTDBuffer)
+#define CODECAPI_AVEncMP12PktzStreamID DEFINE_CODECAPI_GUIDNAMED(AVEncMP12PktzStreamID)
+#define CODECAPI_AVEncMP12PktzInitialPTS DEFINE_CODECAPI_GUIDNAMED(AVEncMP12PktzInitialPTS)
+#define CODECAPI_AVEncMP12PktzPacketSize DEFINE_CODECAPI_GUIDNAMED(AVEncMP12PktzPacketSize)
+#define CODECAPI_AVEncMP12PktzCopyright DEFINE_CODECAPI_GUIDNAMED(AVEncMP12PktzCopyright)
+#define CODECAPI_AVEncMP12PktzOriginal DEFINE_CODECAPI_GUIDNAMED(AVEncMP12PktzOriginal)
+#define CODECAPI_AVEncMP12MuxPacketOverhead DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxPacketOverhead)
+#define CODECAPI_AVEncMP12MuxNumStreams DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxNumStreams)
+#define CODECAPI_AVEncMP12MuxEarliestPTS DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxEarliestPTS)
+#define CODECAPI_AVEncMP12MuxLargestPacketSize DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxLargestPacketSize)
+#define CODECAPI_AVEncMP12MuxInitialSCR DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxInitialSCR)
+#define CODECAPI_AVEncMP12MuxMuxRate DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxMuxRate)
+#define CODECAPI_AVEncMP12MuxPackSize DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxPackSize)
+#define CODECAPI_AVEncMP12MuxSysSTDBufferBound DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxSysSTDBufferBound)
+#define CODECAPI_AVEncMP12MuxSysRateBound DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxSysRateBound)
+#define CODECAPI_AVEncMP12MuxTargetPacketizer DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxTargetPacketizer)
+#define CODECAPI_AVEncMP12MuxSysFixed DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxSysFixed)
+#define CODECAPI_AVEncMP12MuxSysCSPS DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxSysCSPS)
+#define CODECAPI_AVEncMP12MuxSysVideoLock DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxSysVideoLock)
+#define CODECAPI_AVEncMP12MuxSysAudioLock DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxSysAudioLock)
+#define CODECAPI_AVEncMP12MuxDVDNavPacks DEFINE_CODECAPI_GUIDNAMED(AVEncMP12MuxDVDNavPacks)
+#define CODECAPI_AVEncMPACopyright DEFINE_CODECAPI_GUIDNAMED(AVEncMPACopyright)
+#define CODECAPI_AVEncMPAOriginalBitstream DEFINE_CODECAPI_GUIDNAMED(AVEncMPAOriginalBitstream)
+#define CODECAPI_AVEncMPAEnableRedundancyProtection DEFINE_CODECAPI_GUIDNAMED(AVEncMPAEnableRedundancyProtection)
+#define CODECAPI_AVEncMPAPrivateUserBit DEFINE_CODECAPI_GUIDNAMED(AVEncMPAPrivateUserBit)
+#define CODECAPI_AVEncMPAEmphasisType DEFINE_CODECAPI_GUIDNAMED(AVEncMPAEmphasisType)
+#define CODECAPI_AVDecCommonOutputFormat DEFINE_CODECAPI_GUIDNAMED(AVDecCommonOutputFormat)
+#define CODECAPI_AVDecCommonInputFormat DEFINE_CODECAPI_GUIDNAMED(AVDecCommonInputFormat)
+#define CODECAPI_AVDecCommonMeanBitRate DEFINE_CODECAPI_GUIDNAMED(AVDecCommonMeanBitRate)
+#define CODECAPI_AVDecCommonMeanBitRateInterval DEFINE_CODECAPI_GUIDNAMED(AVDecCommonMeanBitRateInterval)
+#define CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Stereo_MatrixEncoded DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioOutputFormat_PCM_Stereo_MatrixEncoded)
+#define CODECAPI_GUID_AVDecAudioOutputFormat_PCM DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioOutputFormat_PCM)
+#define CODECAPI_GUID_AVDecAudioOutputFormat_SPDIF_PCM DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioOutputFormat_SPDIF_PCM)
+#define CODECAPI_GUID_AVDecAudioOutputFormat_SPDIF_Bitstream DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioOutputFormat_SPDIF_Bitstream)
+#define CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Headphones DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioOutputFormat_PCM_Headphones)
+#define CODECAPI_GUID_AVDecAudioOutputFormat_PCM_Stereo_Auto DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioOutputFormat_PCM_Stereo_Auto)
+#define CODECAPI_AVDecVideoImageSize DEFINE_CODECAPI_GUIDNAMED(AVDecVideoImageSize)
+#define CODECAPI_AVDecVideoInputScanType DEFINE_CODECAPI_GUIDNAMED(AVDecVideoInputScanType)
+#define CODECAPI_AVDecVideoPixelAspectRatio DEFINE_CODECAPI_GUIDNAMED(AVDecVideoPixelAspectRatio)
+#define CODECAPI_AVDecVideoThumbnailGenerationMode DEFINE_CODECAPI_GUIDNAMED(AVDecVideoThumbnailGenerationMode)
+#define CODECAPI_AVDecVideoDropPicWithMissingRef DEFINE_CODECAPI_GUIDNAMED(AVDecVideoDropPicWithMissingRef)
+#define CODECAPI_AVDecVideoSoftwareDeinterlaceMode DEFINE_CODECAPI_GUIDNAMED(AVDecVideoSoftwareDeinterlaceMode)
+#define CODECAPI_AVDecVideoFastDecodeMode DEFINE_CODECAPI_GUIDNAMED(AVDecVideoFastDecodeMode)
+#define CODECAPI_AVLowLatencyMode DEFINE_CODECAPI_GUIDNAMED(AVLowLatencyMode)
+#define CODECAPI_AVDecVideoH264ErrorConcealment DEFINE_CODECAPI_GUIDNAMED(AVDecVideoH264ErrorConcealment)
+#define CODECAPI_AVDecVideoMPEG2ErrorConcealment DEFINE_CODECAPI_GUIDNAMED(AVDecVideoMPEG2ErrorConcealment)
+#define CODECAPI_AVDecVideoCodecType DEFINE_CODECAPI_GUIDNAMED(AVDecVideoCodecType)
+#define CODECAPI_AVDecVideoDXVAMode DEFINE_CODECAPI_GUIDNAMED(AVDecVideoDXVAMode)
+#define CODECAPI_AVDecVideoDXVABusEncryption DEFINE_CODECAPI_GUIDNAMED(AVDecVideoDXVABusEncryption)
+#define CODECAPI_AVDecVideoSWPowerLevel DEFINE_CODECAPI_GUIDNAMED(AVDecVideoSWPowerLevel)
+#define CODECAPI_AVDecVideoMaxCodedWidth DEFINE_CODECAPI_GUIDNAMED(AVDecVideoMaxCodedWidth)
+#define CODECAPI_AVDecVideoMaxCodedHeight DEFINE_CODECAPI_GUIDNAMED(AVDecVideoMaxCodedHeight)
+#define CODECAPI_AVDecNumWorkerThreads DEFINE_CODECAPI_GUIDNAMED(AVDecNumWorkerThreads)
+#define CODECAPI_AVDecSoftwareDynamicFormatChange DEFINE_CODECAPI_GUIDNAMED(AVDecSoftwareDynamicFormatChange)
+#define CODECAPI_AVDecDisableVideoPostProcessing DEFINE_CODECAPI_GUIDNAMED(AVDecDisableVideoPostProcessing)
+#define CODECAPI_GUID_AVDecAudioInputWMA DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioInputWMA)
+#define CODECAPI_GUID_AVDecAudioInputWMAPro DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioInputWMAPro)
+#define CODECAPI_GUID_AVDecAudioInputDolby DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioInputDolby)
+#define CODECAPI_GUID_AVDecAudioInputDTS DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioInputDTS)
+#define CODECAPI_GUID_AVDecAudioInputPCM DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioInputPCM)
+#define CODECAPI_GUID_AVDecAudioInputMPEG DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioInputMPEG)
+#define CODECAPI_GUID_AVDecAudioInputAAC DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioInputAAC)
+#define CODECAPI_GUID_AVDecAudioInputHEAAC DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioInputHEAAC)
+#define CODECAPI_GUID_AVDecAudioInputDolbyDigitalPlus DEFINE_CODECAPI_GUIDNAMED(GUID_AVDecAudioInputDolbyDigitalPlus)
+#define CODECAPI_AVDecAACDownmixMode DEFINE_CODECAPI_GUIDNAMED(AVDecAACDownmixMode)
+#define CODECAPI_AVDecHEAACDynamicRangeControl  DEFINE_CODECAPI_GUIDNAMED(AVDecHEAACDynamicRangeControl)
+#define CODECAPI_AVDecAudioDualMono DEFINE_CODECAPI_GUIDNAMED(AVDecAudioDualMono)
+#define CODECAPI_AVDecAudioDualMonoReproMode DEFINE_CODECAPI_GUIDNAMED(AVDecAudioDualMonoReproMode)
+#define CODECAPI_AVAudioChannelCount DEFINE_CODECAPI_GUIDNAMED(AVAudioChannelCount)
+#define CODECAPI_AVAudioChannelConfig DEFINE_CODECAPI_GUIDNAMED(AVAudioChannelConfig)
+#define CODECAPI_AVAudioSampleRate DEFINE_CODECAPI_GUIDNAMED(AVAudioSampleRate)
+#define CODECAPI_AVDDSurroundMode DEFINE_CODECAPI_GUIDNAMED(AVDDSurroundMode)
+#define CODECAPI_AVDecDDOperationalMode DEFINE_CODECAPI_GUIDNAMED(AVDecDDOperationalMode)
+#define CODECAPI_AVDecDDMatrixDecodingMode DEFINE_CODECAPI_GUIDNAMED(AVDecDDMatrixDecodingMode)
+#define CODECAPI_AVDecDDDynamicRangeScaleHigh DEFINE_CODECAPI_GUIDNAMED(AVDecDDDynamicRangeScaleHigh)
+#define CODECAPI_AVDecDDDynamicRangeScaleLow DEFINE_CODECAPI_GUIDNAMED(AVDecDDDynamicRangeScaleLow)
+#define CODECAPI_AVDecDDStereoDownMixMode DEFINE_CODECAPI_GUIDNAMED(AVDecDDStereoDownMixMode)
+#define CODECAPI_AVDSPLoudnessEqualization DEFINE_CODECAPI_GUIDNAMED(AVDSPLoudnessEqualization)
+#define CODECAPI_AVDSPSpeakerFill DEFINE_CODECAPI_GUIDNAMED(AVDSPSpeakerFill)
+#define CODECAPI_AVPriorityControl DEFINE_CODECAPI_GUIDNAMED(AVPriorityControl)
+#define CODECAPI_AVRealtimeControl DEFINE_CODECAPI_GUIDNAMED(AVRealtimeControl)
+#define CODECAPI_AVEncMaxFrameRate DEFINE_CODECAPI_GUIDNAMED(AVEncMaxFrameRate)
+#define CODECAPI_AVEncNoInputCopy DEFINE_CODECAPI_GUIDNAMED(AVEncNoInputCopy)
+#define CODECAPI_AVEncChromaEncodeMode DEFINE_CODECAPI_GUIDNAMED(AVEncChromaEncodeMode)
+
+#endif /* UUID_GEN */
+
+#endif /* WINAPI_PARTITION_APP */
 
 #endif /*_INC_CODECAPI*/
lib/libc/include/any-windows-any/comadmin.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/comadmin.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/comadmin.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -2092,6 +2092,8 @@ static FORCEINLINE HRESULT ICatalogCollection_PopulateByQuery(ICatalogCollection
 
 #endif  /* __ICatalogCollection_INTERFACE_DEFINED__ */
 
+#ifndef __COMAdmin_LIBRARY_DEFINED__
+#define __COMAdmin_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_COMAdmin, 0xf618c513, 0xdfb8, 0x11d1, 0xa2,0xcf, 0x00,0x80,0x5f,0xc7,0x92,0x35);
 
@@ -2172,6 +2174,7 @@ __CRT_UUID_DECL(COMAdminCatalogCollection, 0xf618c516, 0xdfb8, 0x11d1, 0xa2,0xcf
 
 #define COMAdminCollectionPartitions ("Partitions")
 
+#endif /* __COMAdmin_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/comcat.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/comcat.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/comcat.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/commoncontrols.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/commoncontrols.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/commoncontrols.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1114,6 +1114,8 @@ static FORCEINLINE HRESULT IImageList2_ReplaceFromImageList(IImageList2* This,in
 
 #endif  /* __IImageList2_INTERFACE_DEFINED__ */
 
+#ifndef __CommonControlObjects_LIBRARY_DEFINED__
+#define __CommonControlObjects_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_CommonControlObjects, 0xbcada15b, 0xb428, 0x420c, 0x8d,0x28, 0x02,0x35,0x90,0x92,0x4c,0x9f);
 
@@ -1130,6 +1132,7 @@ __CRT_UUID_DECL(ImageList, 0x7c476ba2, 0x02b1, 0x48f4, 0x80,0x48, 0xb2,0x46,0x19
 #endif
 #endif
 
+#endif /* __CommonControlObjects_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/comutil.h
@@ -7,6 +7,7 @@
 #define _INC_COMUTIL
 
 #include <ole2.h>
+#include <stdio.h>
 
 #ifndef _COM_ASSERT
 #define _COM_ASSERT(x) ((void)0)
lib/libc/include/any-windows-any/conio.h
@@ -39,7 +39,8 @@ extern "C" {
     __builtin_va_end(_ArgList);
     return _Ret;
   }
-  __mingw_ovr int __cdecl _cscanf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl _cscanf(const char * __restrict__ _Format,...)
   {
     __builtin_va_list _ArgList;
     int _Ret;
@@ -48,7 +49,8 @@ extern "C" {
     __builtin_va_end(_ArgList);
     return _Ret;
   }
-  __mingw_ovr int __cdecl _cscanf_l(const char * __restrict__ _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl _cscanf_l(const char * __restrict__ _Format,_locale_t _Locale,...)
   {
     __builtin_va_list _ArgList;
     int _Ret;
@@ -122,10 +124,12 @@ extern "C" {
 
   _CRTIMP int __cdecl _putch(int _Ch);
   _CRTIMP int __cdecl _ungetch(int _Ch);
+#if __MSVCRT_VERSION__ >= 0x800
   _CRTIMP int __cdecl _getch_nolock(void);
   _CRTIMP int __cdecl _getche_nolock(void);
   _CRTIMP int __cdecl _putch_nolock(int _Ch);
   _CRTIMP int __cdecl _ungetch_nolock(int _Ch);
+#endif
 
 #ifndef _WCONIO_DEFINED
 #define _WCONIO_DEFINED
@@ -159,7 +163,8 @@ extern "C" {
     __builtin_va_end(_ArgList);
     return _Ret;
   }
-  __mingw_ovr int __cdecl _cwscanf(const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl _cwscanf(const wchar_t * __restrict__ _Format,...)
   {
     __builtin_va_list _ArgList;
     int _Ret;
@@ -168,7 +173,8 @@ extern "C" {
     __builtin_va_end(_ArgList);
     return _Ret;
   }
-  __mingw_ovr int __cdecl _cwscanf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl _cwscanf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...)
   {
     __builtin_va_list _ArgList;
     int _Ret;
@@ -228,11 +234,13 @@ extern "C" {
   _CRTIMP int __cdecl _cwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
   _CRTIMP int __cdecl _vcwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
 #endif
+#if __MSVCRT_VERSION__ >= 0x800
   _CRTIMP wint_t __cdecl _putwch_nolock(wchar_t _WCh);
   _CRTIMP wint_t __cdecl _getwch_nolock(void);
   _CRTIMP wint_t __cdecl _getwche_nolock(void);
   _CRTIMP wint_t __cdecl _ungetwch_nolock(wint_t _WCh);
 #endif
+#endif
 
 #ifndef	NO_OLDNAMES
   char *__cdecl cgets(char *_Buffer) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
lib/libc/include/any-windows-any/control.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/control.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/control.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -123,6 +123,8 @@ typedef struct IPinInfo IPinInfo;
 #define __IAMStats_FWD_DEFINED__
 typedef struct IAMStats IAMStats;
 #endif
+#ifndef __QuartzTypeLib_LIBRARY_DEFINED__
+#define __QuartzTypeLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_QuartzTypeLib, 0x56a868b0, 0x0ad4, 0x11ce, 0xb0,0x3a, 0x00,0x20,0xaf,0x0b,0xa7,0x70);
 
@@ -1600,6 +1602,7 @@ static FORCEINLINE HRESULT IMediaControl_StopWhenReady(IMediaControl* This) {
   HRESULT WINAPI IAMStats_AddValue_Proxy(IAMStats *This,__LONG32 lIndex,double dValue);
   void __RPC_STUB IAMStats_AddValue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 #endif
+#endif /* __QuartzTypeLib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
lib/libc/include/any-windows-any/corecrt_startup.h
@@ -32,6 +32,8 @@ typedef int (__cdecl *_onexit_t)(void);
 _CRTIMP int __cdecl _initialize_onexit_table(_onexit_table_t*);
 _CRTIMP int __cdecl _register_onexit_function(_onexit_table_t*,_onexit_t);
 _CRTIMP int __cdecl _execute_onexit_table(_onexit_table_t*);
+_CRTIMP int __cdecl _crt_atexit(_PVFV func);
+_CRTIMP int __cdecl _crt_at_quick_exit(_PVFV func);
 
 #ifdef __cplusplus
 }
lib/libc/include/any-windows-any/crtdbg.h
@@ -169,8 +169,10 @@ extern "C" {
 #define _wgetcwd_dbg(s,le,t,f,l) _wgetcwd(s,le)
 #define _getdcwd_dbg(d,s,le,t,f,l) _getdcwd(d,s,le)
 #define _wgetdcwd_dbg(d,s,le,t,f,l) _wgetdcwd(d,s,le)
+#if __MSVCRT_VERSION__ >= 0x800
 #define _getdcwd_lk_dbg(d,s,le,t,f,l) _getdcwd_nolock(d,s,le)
 #define _wgetdcwd_lk_dbg(d,s,le,t,f,l) _wgetdcwd_nolock(d,s,le)
+#endif
 
 #define _CrtSetReportHook(f) ((_CRT_REPORT_HOOK)0)
 #define _CrtGetReportHook() ((_CRT_REPORT_HOOK)0)
lib/libc/include/any-windows-any/ctfutb.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/ctfutb.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/ctfutb.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ctype.h
@@ -180,11 +180,13 @@ int __cdecl isblank(int _C);
   wint_t __cdecl towlower(wint_t _C);
   _CRTIMP wint_t __cdecl _towlower_l(wint_t _C,_locale_t _Locale);
   int __cdecl iswctype(wint_t _C,wctype_t _Type);
+#if __MSVCRT_VERSION__ >= 0x800
   _CRTIMP int __cdecl _iswctype_l(wint_t _C,wctype_t _Type,_locale_t _Locale);
   _CRTIMP int __cdecl __iswcsymf(wint_t _C);
   _CRTIMP int __cdecl _iswcsymf_l(wint_t _C,_locale_t _Locale);
   _CRTIMP int __cdecl __iswcsym(wint_t _C);
   _CRTIMP int __cdecl _iswcsym_l(wint_t _C,_locale_t _Locale);
+#endif
 #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
   int __cdecl is_wctype(wint_t _C,wctype_t _Type);
 #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
lib/libc/include/any-windows-any/d2d1_1.h
@@ -60,6 +60,31 @@ typedef enum D2D1_PROPERTY_TYPE {
     D2D1_PROPERTY_TYPE_FORCE_DWORD   = 0xffffffff
 } D2D1_PROPERTY_TYPE;
 
+typedef enum D2D1_PROPERTY {
+    D2D1_PROPERTY_CLSID       = 0x80000000,
+    D2D1_PROPERTY_DISPLAYNAME = 0x80000001,
+    D2D1_PROPERTY_AUTHOR      = 0x80000002,
+    D2D1_PROPERTY_CATEGORY    = 0x80000003,
+    D2D1_PROPERTY_DESCRIPTION = 0x80000004,
+    D2D1_PROPERTY_INPUTS      = 0x80000005,
+    D2D1_PROPERTY_CACHED      = 0x80000006,
+    D2D1_PROPERTY_PRECISION   = 0x80000007,
+    D2D1_PROPERTY_MIN_INPUTS  = 0x80000008,
+    D2D1_PROPERTY_MAX_INPUTS  = 0x80000009,
+    D2D1_PROPERTY_FORCE_DWORD = 0xffffffff
+} D2D1_PROPERTY;
+
+typedef enum D2D1_SUBPROPERTY {
+    D2D1_SUBPROPERTY_DISPLAYNAME = 0x80000000,
+    D2D1_SUBPROPERTY_ISREADONLY  = 0x80000001,
+    D2D1_SUBPROPERTY_MIN         = 0x80000002,
+    D2D1_SUBPROPERTY_MAX         = 0x80000003,
+    D2D1_SUBPROPERTY_DEFAULT     = 0x80000004,
+    D2D1_SUBPROPERTY_FIELDS      = 0x80000005,
+    D2D1_SUBPROPERTY_INDEX       = 0x80000006,
+    D2D1_SUBPROPERTY_FORCE_DWORD = 0xffffffff
+} D2D1_SUBPROPERTY;
+
 typedef enum D2D1_CHANNEL_DEPTH {
     D2D1_CHANNEL_DEPTH_DEFAULT = 0,
     D2D1_CHANNEL_DEPTH_1       = 1,
@@ -154,6 +179,12 @@ typedef enum D2D1_PRIMITIVE_BLEND {
     D2D1_PRIMITIVE_BLEND_FORCE_DWORD = 0xffffffff
 } D2D1_PRIMITIVE_BLEND;
 
+typedef enum D2D1_THREADING_MODE {
+    D2D1_THREADING_MODE_SINGLE_THREADED = D2D1_FACTORY_TYPE_SINGLE_THREADED,
+    D2D1_THREADING_MODE_MULTI_THREADED  = D2D1_FACTORY_TYPE_MULTI_THREADED,
+    D2D1_THREADING_MODE_FORCE_DWORD     = 0xffffffff
+} D2D1_THREADING_MODE;
+
 typedef enum D2D1_UNIT_MODE {
     D2D1_UNIT_MODE_DIPS   = 0,
     D2D1_UNIT_MODE_PIXELS = 1,
@@ -243,6 +274,12 @@ typedef struct D2D1_PRINT_CONTROL_PROPERTIES {
     D2D1_COLOR_SPACE colorSpace;
 } D2D1_PRINT_CONTROL_PROPERTIES;
 
+typedef struct D2D1_CREATION_PROPERTIES {
+    D2D1_THREADING_MODE threadingMode;
+    D2D1_DEBUG_LEVEL debugLevel;
+    D2D1_DEVICE_CONTEXT_OPTIONS options;
+} D2D1_CREATION_PROPERTIES;
+
 typedef struct D2D1_STROKE_STYLE_PROPERTIES1 {
     D2D1_CAP_STYLE startCap;
     D2D1_CAP_STYLE endCap;
@@ -579,6 +616,28 @@ ID2D1Bitmap1Vtbl;
 interface ID2D1Bitmap1 {
     const ID2D1Bitmap1Vtbl *lpVtbl;
 };
+
+/*** IUnknown methods ***/
+#define ID2D1Bitmap1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID2D1Bitmap1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID2D1Bitmap1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID2D1Resource methods ***/
+#define ID2D1Bitmap1_GetFactory(This,factory) (This)->lpVtbl->GetFactory(This,factory)
+/*** ID2D1Bitmap methods ***/
+#define ID2D1Bitmap1_GetSize(This) ID2D1Bitmap1_GetSize_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID2D1Bitmap1_GetPixelSize(This) ID2D1Bitmap1_GetPixelSize_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID2D1Bitmap1_GetPixelFormat(This) ID2D1Bitmap1_GetPixelFormat_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID2D1Bitmap1_GetDpi(This,dpi_x,dpi_y) (This)->lpVtbl->GetDpi(This,dpi_x,dpi_y)
+#define ID2D1Bitmap1_CopyFromBitmap(This,dst_point,bitmap,src_rect) (This)->lpVtbl->CopyFromBitmap(This,dst_point,bitmap,src_rect)
+#define ID2D1Bitmap1_CopyFromRenderTarget(This,dst_point,render_target,src_rect) (This)->lpVtbl->CopyFromRenderTarget(This,dst_point,render_target,src_rect)
+#define ID2D1Bitmap1_CopyFromMemory(This,dst_rect,src_data,pitch) (This)->lpVtbl->CopyFromMemory(This,dst_rect,src_data,pitch)
+/*** ID2D1Bitmap1 methods ***/
+#define ID2D1Bitmap1_GetColorContext(This,context) (This)->lpVtbl->GetColorContext(This,context)
+#define ID2D1Bitmap1_GetOptions(This) (This)->lpVtbl->GetOptions(This)
+#define ID2D1Bitmap1_GetSurface(This,surface) (This)->lpVtbl->GetSurface(This,surface)
+#define ID2D1Bitmap1_Map(This,options,mapped_rect) (This)->lpVtbl->Map(This,options,mapped_rect)
+#define ID2D1Bitmap1_Unmap(This) (This)->lpVtbl->Unmap(This)
+
 #endif
 
 DEFINE_GUID(IID_ID2D1Bitmap1, 0xa898a84c,0x3873,0x4588,0xb0,0x8b,0xeb,0xbf,0x97,0x8d,0xf0,0x41);
@@ -1002,6 +1061,95 @@ interface ID2D1DeviceContext {
     const ID2D1DeviceContextVtbl *lpVtbl;
 };
 
+/*** IUnknown methods ***/
+#define ID2D1DeviceContext_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID2D1DeviceContext_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID2D1DeviceContext_Release(This) (This)->lpVtbl->Release(This)
+/*** ID2D1Resource methods ***/
+#define ID2D1DeviceContext_GetFactory(This,factory) (This)->lpVtbl->GetFactory(This,factory)
+/*** ID2D1RenderTarget methods ***/
+#define ID2D1DeviceContext_CreateSharedBitmap(This,iid,data,desc,bitmap) (This)->lpVtbl->CreateSharedBitmap(This,iid,data,desc,bitmap)
+#define ID2D1DeviceContext_CreateSolidColorBrush(This,color,desc,brush) (This)->lpVtbl->CreateSolidColorBrush(This,color,desc,brush)
+#define ID2D1DeviceContext_CreateLinearGradientBrush(This,gradient_brush_desc,brush_desc,gradient,brush) (This)->lpVtbl->CreateLinearGradientBrush(This,gradient_brush_desc,brush_desc,gradient,brush)
+#define ID2D1DeviceContext_CreateRadialGradientBrush(This,gradient_brush_desc,brush_desc,gradient,brush) (This)->lpVtbl->CreateRadialGradientBrush(This,gradient_brush_desc,brush_desc,gradient,brush)
+#define ID2D1DeviceContext_CreateCompatibleRenderTarget(This,size,pixel_size,format,options,render_target) (This)->lpVtbl->CreateCompatibleRenderTarget(This,size,pixel_size,format,options,render_target)
+#define ID2D1DeviceContext_CreateLayer(This,size,layer) (This)->lpVtbl->CreateLayer(This,size,layer)
+#define ID2D1DeviceContext_CreateMesh(This,mesh) (This)->lpVtbl->CreateMesh(This,mesh)
+#define ID2D1DeviceContext_DrawLine(This,p0,p1,brush,stroke_width,stroke_style) (This)->lpVtbl->DrawLine(This,p0,p1,brush,stroke_width,stroke_style)
+#define ID2D1DeviceContext_DrawRectangle(This,rect,brush,stroke_width,stroke_style) (This)->lpVtbl->DrawRectangle(This,rect,brush,stroke_width,stroke_style)
+#define ID2D1DeviceContext_FillRectangle(This,rect,brush) (This)->lpVtbl->FillRectangle(This,rect,brush)
+#define ID2D1DeviceContext_DrawRoundedRectangle(This,rect,brush,stroke_width,stroke_style) (This)->lpVtbl->DrawRoundedRectangle(This,rect,brush,stroke_width,stroke_style)
+#define ID2D1DeviceContext_FillRoundedRectangle(This,rect,brush) (This)->lpVtbl->FillRoundedRectangle(This,rect,brush)
+#define ID2D1DeviceContext_DrawEllipse(This,ellipse,brush,stroke_width,stroke_style) (This)->lpVtbl->DrawEllipse(This,ellipse,brush,stroke_width,stroke_style)
+#define ID2D1DeviceContext_FillEllipse(This,ellipse,brush) (This)->lpVtbl->FillEllipse(This,ellipse,brush)
+#define ID2D1DeviceContext_DrawGeometry(This,geometry,brush,stroke_width,stroke_style) (This)->lpVtbl->DrawGeometry(This,geometry,brush,stroke_width,stroke_style)
+#define ID2D1DeviceContext_FillGeometry(This,geometry,brush,opacity_brush) (This)->lpVtbl->FillGeometry(This,geometry,brush,opacity_brush)
+#define ID2D1DeviceContext_FillMesh(This,mesh,brush) (This)->lpVtbl->FillMesh(This,mesh,brush)
+#define ID2D1DeviceContext_DrawText(This,string,string_len,text_format,layout_rect,brush,options,measuring_mode) (This)->lpVtbl->DrawText(This,string,string_len,text_format,layout_rect,brush,options,measuring_mode)
+#define ID2D1DeviceContext_DrawTextLayout(This,origin,layout,brush,options) (This)->lpVtbl->DrawTextLayout(This,origin,layout,brush,options)
+#define ID2D1DeviceContext_SetTransform(This,transform) (This)->lpVtbl->SetTransform(This,transform)
+#define ID2D1DeviceContext_GetTransform(This,transform) (This)->lpVtbl->GetTransform(This,transform)
+#define ID2D1DeviceContext_SetAntialiasMode(This,antialias_mode) (This)->lpVtbl->SetAntialiasMode(This,antialias_mode)
+#define ID2D1DeviceContext_GetAntialiasMode(This) (This)->lpVtbl->GetAntialiasMode(This)
+#define ID2D1DeviceContext_SetTextAntialiasMode(This,antialias_mode) (This)->lpVtbl->SetTextAntialiasMode(This,antialias_mode)
+#define ID2D1DeviceContext_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
+#define ID2D1DeviceContext_SetTextRenderingParams(This,text_rendering_params) (This)->lpVtbl->SetTextRenderingParams(This,text_rendering_params)
+#define ID2D1DeviceContext_GetTextRenderingParams(This,text_rendering_params) (This)->lpVtbl->GetTextRenderingParams(This,text_rendering_params)
+#define ID2D1DeviceContext_SetTags(This,tag1,tag2) (This)->lpVtbl->SetTags(This,tag1,tag2)
+#define ID2D1DeviceContext_GetTags(This,tag1,tag2) (This)->lpVtbl->GetTags(This,tag1,tag2)
+#define ID2D1DeviceContext_PopLayer(This) (This)->lpVtbl->PopLayer(This)
+#define ID2D1DeviceContext_Flush(This,tag1,tag2) (This)->lpVtbl->Flush(This,tag1,tag2)
+#define ID2D1DeviceContext_SaveDrawingState(This,state_block) (This)->lpVtbl->SaveDrawingState(This,state_block)
+#define ID2D1DeviceContext_RestoreDrawingState(This,state_block) (This)->lpVtbl->RestoreDrawingState(This,state_block)
+#define ID2D1DeviceContext_PushAxisAlignedClip(This,clip_rect,antialias_mode) (This)->lpVtbl->PushAxisAlignedClip(This,clip_rect,antialias_mode)
+#define ID2D1DeviceContext_PopAxisAlignedClip(This) (This)->lpVtbl->PopAxisAlignedClip(This)
+#define ID2D1DeviceContext_Clear(This,color) (This)->lpVtbl->Clear(This,color)
+#define ID2D1DeviceContext_BeginDraw(This) (This)->lpVtbl->BeginDraw(This)
+#define ID2D1DeviceContext_EndDraw(This,tag1,tag2) (This)->lpVtbl->EndDraw(This,tag1,tag2)
+#define ID2D1DeviceContext_GetPixelFormat(This) ID2D1DeviceContext_GetPixelFormat_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID2D1DeviceContext_SetDpi(This,dpi_x,dpi_y) (This)->lpVtbl->SetDpi(This,dpi_x,dpi_y)
+#define ID2D1DeviceContext_GetDpi(This,dpi_x,dpi_y) (This)->lpVtbl->GetDpi(This,dpi_x,dpi_y)
+#define ID2D1DeviceContext_GetSize(This) ID2D1DeviceContext_GetSize_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID2D1DeviceContext_GetPixelSize(This) ID2D1DeviceContext_GetPixelSize_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID2D1DeviceContext_GetMaximumBitmapSize(This) (This)->lpVtbl->GetMaximumBitmapSize(This)
+#define ID2D1DeviceContext_IsSupported(This,desc) (This)->lpVtbl->IsSupported(This,desc)
+/*** ID2D1DeviceContext methods ***/
+#define ID2D1DeviceContext_CreateBitmap(This,size,src_data,pitch,desc,bitmap) (This)->lpVtbl->ID2D1DeviceContext_CreateBitmap(This,size,src_data,pitch,desc,bitmap)
+#define ID2D1DeviceContext_CreateBitmapFromWicBitmap(This,bitmap_source,desc,bitmap) (This)->lpVtbl->ID2D1DeviceContext_CreateBitmapFromWicBitmap(This,bitmap_source,desc,bitmap)
+#define ID2D1DeviceContext_CreateColorContext(This,space,profile,profile_size,color_context) (This)->lpVtbl->CreateColorContext(This,space,profile,profile_size,color_context)
+#define ID2D1DeviceContext_CreateColorContextFromFilename(This,filename,color_context) (This)->lpVtbl->CreateColorContextFromFilename(This,filename,color_context)
+#define ID2D1DeviceContext_CreateColorContextFromWicColorContext(This,wic_color_context,color_context) (This)->lpVtbl->CreateColorContextFromWicColorContext(This,wic_color_context,color_context)
+#define ID2D1DeviceContext_CreateBitmapFromDxgiSurface(This,surface,desc,bitmap) (This)->lpVtbl->CreateBitmapFromDxgiSurface(This,surface,desc,bitmap)
+#define ID2D1DeviceContext_CreateEffect(This,effect_id,effect) (This)->lpVtbl->CreateEffect(This,effect_id,effect)
+#define ID2D1DeviceContext_CreateGradientStopCollection(This,stops,stop_count,preinterpolation_space,postinterpolation_space,buffer_precision,extend_mode,color_interpolation_mode,gradient) (This)->lpVtbl->ID2D1DeviceContext_CreateGradientStopCollection(This,stops,stop_count,preinterpolation_space,postinterpolation_space,buffer_precision,extend_mode,color_interpolation_mode,gradient)
+#define ID2D1DeviceContext_CreateImageBrush(This,image,image_brush_desc,brush_desc,brush) (This)->lpVtbl->CreateImageBrush(This,image,image_brush_desc,brush_desc,brush)
+#define ID2D1DeviceContext_CreateBitmapBrush(This,bitmap,bitmap_brush_desc,brush_desc,bitmap_brush) (This)->lpVtbl->ID2D1DeviceContext_CreateBitmapBrush(This,bitmap,bitmap_brush_desc,brush_desc,bitmap_brush)
+#define ID2D1DeviceContext_CreateCommandList(This,command_list) (This)->lpVtbl->CreateCommandList(This,command_list)
+#define ID2D1DeviceContext_IsDxgiFormatSupported(This,format) (This)->lpVtbl->IsDxgiFormatSupported(This,format)
+#define ID2D1DeviceContext_IsBufferPrecisionSupported(This,buffer_precision) (This)->lpVtbl->IsBufferPrecisionSupported(This,buffer_precision)
+#define ID2D1DeviceContext_GetImageLocalBounds(This,image,local_bounds) (This)->lpVtbl->GetImageLocalBounds(This,image,local_bounds)
+#define ID2D1DeviceContext_GetImageWorldBounds(This,image,world_bounds) (This)->lpVtbl->GetImageWorldBounds(This,image,world_bounds)
+#define ID2D1DeviceContext_GetGlyphRunWorldBounds(This,baseline_origin,glyph_run,measuring_mode,bounds) (This)->lpVtbl->GetGlyphRunWorldBounds(This,baseline_origin,glyph_run,measuring_mode,bounds)
+#define ID2D1DeviceContext_GetDevice(This,device) (This)->lpVtbl->GetDevice(This,device)
+#define ID2D1DeviceContext_SetTarget(This,target) (This)->lpVtbl->SetTarget(This,target)
+#define ID2D1DeviceContext_GetTarget(This,target) (This)->lpVtbl->GetTarget(This,target)
+#define ID2D1DeviceContext_SetRenderingControls(This,rendering_controls) (This)->lpVtbl->SetRenderingControls(This,rendering_controls)
+#define ID2D1DeviceContext_GetRenderingControls(This,rendering_controls) (This)->lpVtbl->GetRenderingControls(This,rendering_controls)
+#define ID2D1DeviceContext_SetPrimitiveBlend(This,primitive_blend) (This)->lpVtbl->SetPrimitiveBlend(This,primitive_blend)
+#define ID2D1DeviceContext_GetPrimitiveBlend(This) (This)->lpVtbl->GetPrimitiveBlend(This)
+#define ID2D1DeviceContext_SetUnitMode(This,unit_mode) (This)->lpVtbl->SetUnitMode(This,unit_mode)
+#define ID2D1DeviceContext_GetUnitMode(This) (This)->lpVtbl->GetUnitMode(This)
+#define ID2D1DeviceContext_DrawGlyphRun(This,baseline_origin,glyph_run,glyph_run_desc,brush,measuring_mode) (This)->lpVtbl->ID2D1DeviceContext_DrawGlyphRun(This,baseline_origin,glyph_run,glyph_run_desc,brush,measuring_mode)
+#define ID2D1DeviceContext_DrawImage(This,image,target_offset,image_rect,interpolation_mode,composite_mode) (This)->lpVtbl->DrawImage(This,image,target_offset,image_rect,interpolation_mode,composite_mode)
+#define ID2D1DeviceContext_DrawGdiMetafile(This,metafile,target_offset) (This)->lpVtbl->DrawGdiMetafile(This,metafile,target_offset)
+#define ID2D1DeviceContext_DrawBitmap(This,bitmap,dst_rect,opacity,interpolation_mode,src_rect,perspective_transform) (This)->lpVtbl->ID2D1DeviceContext_DrawBitmap(This,bitmap,dst_rect,opacity,interpolation_mode,src_rect,perspective_transform)
+#define ID2D1DeviceContext_PushLayer(This,layer_parameters,layer) (This)->lpVtbl->ID2D1DeviceContext_PushLayer(This,layer_parameters,layer)
+#define ID2D1DeviceContext_InvalidateEffectInputRectangle(This,effect,input,input_rect) (This)->lpVtbl->InvalidateEffectInputRectangle(This,effect,input,input_rect)
+#define ID2D1DeviceContext_GetEffectInvalidRectangleCount(This,effect,rect_count) (This)->lpVtbl->GetEffectInvalidRectangleCount(This,effect,rect_count)
+#define ID2D1DeviceContext_GetEffectInvalidRectangles(This,effect,rectangles,rect_count) (This)->lpVtbl->GetEffectInvalidRectangles(This,effect,rectangles,rect_count)
+#define ID2D1DeviceContext_GetEffectRequiredInputRectangles(This,effect,image_rect,desc,input_rect,input_count) (This)->lpVtbl->GetEffectRequiredInputRectangles(This,effect,image_rect,desc,input_rect,input_count)
+#define ID2D1DeviceContext_FillOpacityMask(This,mask,brush,dst_rect,src_rect) (This)->lpVtbl->ID2D1DeviceContext_FillOpacityMask(This,mask,brush,dst_rect,src_rect)
+
 #endif
 
 DEFINE_GUID(IID_ID2D1DeviceContext, 0xe8f7fe7a,0x191c,0x466d,0xad,0x95,0x97,0x56,0x78,0xbd,0xa9,0x98);
@@ -1051,6 +1199,19 @@ interface ID2D1Device {
     const ID2D1DeviceVtbl *lpVtbl;
 };
 
+/*** IUnknown methods ***/
+#define ID2D1Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID2D1Device_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID2D1Device_Release(This) (This)->lpVtbl->Release(This)
+/*** ID2D1Resource methods ***/
+#define ID2D1Device_GetFactory(This,factory) (This)->lpVtbl->GetFactory(This,factory)
+/*** ID2D1Device methods ***/
+#define ID2D1Device_CreateDeviceContext(This,options,context) (This)->lpVtbl->CreateDeviceContext(This,options,context)
+#define ID2D1Device_CreatePrintControl(This,wic_factory,document_target,desc,print_control) (This)->lpVtbl->CreatePrintControl(This,wic_factory,document_target,desc,print_control)
+#define ID2D1Device_SetMaximumTextureMemory(This,max_texture_memory) (This)->lpVtbl->SetMaximumTextureMemory(This,max_texture_memory)
+#define ID2D1Device_GetMaximumTextureMemory(This) (This)->lpVtbl->GetMaximumTextureMemory(This)
+#define ID2D1Device_ClearResources(This,msec_since_use) (This)->lpVtbl->ClearResources(This,msec_since_use)
+
 #endif
 
 DEFINE_GUID(IID_ID2D1Device, 0x47dd575d,0xac05,0x4cdd,0x80,0x49,0x9b,0x02,0xcd,0x16,0xf4,0x4c);
lib/libc/include/any-windows-any/d3d10.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d10.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d10.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1232,6 +1232,9 @@ typedef enum D3D10_RESOURCE_MISC_FLAG {
 typedef enum D3D10_MAP_FLAG {
     D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000
 } D3D10_MAP_FLAG;
+typedef enum D3D10_RAISE_FLAG {
+    D3D10_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1
+} D3D10_RAISE_FLAG;
 typedef enum D3D10_CLEAR_FLAG {
     D3D10_CLEAR_DEPTH = 0x1,
     D3D10_CLEAR_STENCIL = 0x2
lib/libc/include/any-windows-any/d3d10.idl
@@ -1,1645 +0,0 @@
-/*
- * Copyright 2007 Andras Kovacs
- *
- * 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 "dxgi.idl";
-import "d3dcommon.idl";
-
-cpp_quote("#ifndef _D3D10_CONSTANTS")
-cpp_quote("#define _D3D10_CONSTANTS")
-const float D3D10_DEFAULT_BLEND_FACTOR_ALPHA                                            = 1.0;
-const float D3D10_DEFAULT_BLEND_FACTOR_BLUE                                             = 1.0;
-const float D3D10_DEFAULT_BLEND_FACTOR_GREEN                                            = 1.0;
-const float D3D10_DEFAULT_BLEND_FACTOR_RED                                              = 1.0;
-const float D3D10_DEFAULT_BORDER_COLOR_COMPONENT                                        = 0.0;
-const float D3D10_DEFAULT_SLOPE_SCALED_DEPTH_BIAS                                       = 0.0;
-const float D3D10_DEFAULT_DEPTH_BIAS_CLAMP                                              = 0.0;
-const float D3D10_DEFAULT_MAX_ANISOTROPY                                                = 16.0;
-const float D3D10_DEFAULT_MIP_LOD_BIAS                                                  = 0.0;
-const float D3D10_DEFAULT_VIEWPORT_MAX_DEPTH                                            = 0.0;
-const float D3D10_DEFAULT_VIEWPORT_MIN_DEPTH                                            = 0.0;
-const float D3D10_FLOAT16_FUSED_TOLERANCE_IN_ULP                                        = 0.6;
-const float D3D10_FLOAT32_MAX                                                           = 3.402823466e+38;
-const float D3D10_FLOAT32_TO_INTEGER_TOLERANCE_IN_ULP                                   = 0.6;
-const float D3D10_FLOAT_TO_SRGB_EXPONENT_DENOMINATOR                                    = 2.4;
-const float D3D10_FLOAT_TO_SRGB_EXPONENT_NUMERATOR                                      = 1.0;
-const float D3D10_FLOAT_TO_SRGB_OFFSET                                                  = 0.055;
-const float D3D10_FLOAT_TO_SRGB_SCALE_1                                                 = 12.92;
-const float D3D10_FLOAT_TO_SRGB_SCALE_2                                                 = 1.055;
-const float D3D10_FLOAT_TO_SRGB_THRESHOLD                                               = 0.0031308;
-const float D3D10_FTOI_INSTRUCTION_MAX_INPUT                                            = 2147483647.999;
-const float D3D10_FTOI_INSTRUCTION_MIN_INPUT                                            = -2147483648.999;
-const float D3D10_FTOU_INSTRUCTION_MAX_INPUT                                            = 4294967295.999;
-const float D3D10_FTOU_INSTRUCTION_MIN_INPUT                                            = 0.0;
-const float D3D10_LINEAR_GAMMA                                                          = 1.0;
-const float D3D10_MAX_BORDER_COLOR_COMPONENT                                            = 1.0;
-const float D3D10_MAX_DEPTH                                                             = 1.0;
-const float D3D10_MAX_POSITION_VALUE                                                    = 3.402823466e+34;
-const float D3D10_MIN_BORDER_COLOR_COMPONENT                                            = 0.0;
-const float D3D10_MIN_DEPTH                                                             = 0.0;
-const float D3D10_MIP_LOD_BIAS_MAX                                                      = 15.99;
-const float D3D10_MIP_LOD_BIAS_MIN                                                      = -16.0;
-const float D3D10_PS_PIXEL_CENTER_FRACTIONAL_COMPONENT                                  = 0.5;
-const float D3D10_MULTISAMPLE_ANTIALIAS_LINE_WIDTH                                      = 1.4;
-const float D3D10_SRGB_GAMMA                                                            = 2.2;
-const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_1                                           = 12.92;
-const float D3D10_SRGB_TO_FLOAT_DENOMINATOR_2                                           = 1.055;
-const float D3D10_SRGB_TO_FLOAT_EXPONENT                                                = 2.4;
-const float D3D10_SRGB_TO_FLOAT_OFFSET                                                  = 0.055;
-const float D3D10_SRGB_TO_FLOAT_THRESHOLD                                               = 0.04045;
-const float D3D10_SRGB_TO_FLOAT_TOLERANCE_IN_ULP                                        = 0.5;
-const float D3D10_PS_LEGACY_PIXEL_CENTER_FRACTIONAL_COMPONENT                           = 0.0;
-const float D3D_SPEC_VERSION                                                            = 1.050005;
-const unsigned int D3D10_16BIT_INDEX_STRIP_CUT_VALUE                                    = 0xffff;
-const unsigned int D3D10_32BIT_INDEX_STRIP_CUT_VALUE                                    = 0xffffffff;
-const unsigned int D3D10_8BIT_INDEX_STRIP_CUT_VALUE                                     = 0xff;
-const unsigned int D3D10_ARRAY_AXIS_ADDRESS_RANGE_BIT_COUNT                             = 9;
-const unsigned int D3D10_CLIP_OR_CULL_DISTANCE_COUNT                                    = 8;
-const unsigned int D3D10_CLIP_OR_CULL_DISTANCE_ELEMENT_COUNT                            = 2;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT                    = 14;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENTS                        = 4;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_COMPONENT_BIT_COUNT               = 32;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_HW_SLOT_COUNT                     = 15;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COMPONENTS               = 4;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT                    = 15;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READS_PER_INST           = 1;
-const unsigned int D3D10_COMMONSHADER_CONSTANT_BUFFER_REGISTER_READ_PORTS               = 1;
-const unsigned int D3D10_COMMONSHADER_FLOWCONTROL_NESTING_LIMIT                         = 64;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COMPONENTS     = 4;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_COUNT          = 1;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READS_PER_INST = 1;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_CONSTANT_BUFFER_REGISTER_READ_PORTS     = 1;
-const unsigned int D3D10_COMMONSHADER_IMMEDIATE_VALUE_COMPONENT_BIT_COUNT               = 32;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COMPONENTS                = 1;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_COUNT                     = 128;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READS_PER_INST            = 1;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_REGISTER_READ_PORTS                = 1;
-const unsigned int D3D10_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT                         = 128;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_COMPONENTS                       = 1;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_COUNT                            = 16;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_READS_PER_INST                   = 1;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_REGISTER_READ_PORTS                       = 1;
-const unsigned int D3D10_COMMONSHADER_SAMPLER_SLOT_COUNT                                = 16;
-const unsigned int D3D10_COMMONSHADER_SUBROUTINE_NESTING_LIMIT                          = 32;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENTS                          = 4;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COMPONENT_BIT_COUNT                 = 32;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_COUNT                               = 4096;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_READS_PER_INST                      = 3;
-const unsigned int D3D10_COMMONSHADER_TEMP_REGISTER_READ_PORTS                          = 3;
-const unsigned int D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MAX                      = 10;
-const int D3D10_COMMONSHADER_TEXCOORD_RANGE_REDUCTION_MIN                               = -10;
-const int D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_NEGATIVE                                  = -8;
-const unsigned int D3D10_COMMONSHADER_TEXEL_OFFSET_MAX_POSITIVE                         = 7;
-const unsigned int D3D10_DEFAULT_DEPTH_BIAS                                             = 0;
-const unsigned int D3D10_DEFAULT_RENDER_TARGET_ARRAY_INDEX                              = 0;
-const unsigned int D3D10_DEFAULT_SAMPLE_MASK                                            = 0xffffffff;
-const unsigned int D3D10_DEFAULT_SCISSOR_ENDX                                           = 0;
-const unsigned int D3D10_DEFAULT_SCISSOR_ENDY                                           = 0;
-const unsigned int D3D10_DEFAULT_SCISSOR_STARTX                                         = 0;
-const unsigned int D3D10_DEFAULT_SCISSOR_STARTY                                         = 0;
-const unsigned int D3D10_DEFAULT_STENCIL_READ_MASK                                      = 0xff;
-const unsigned int D3D10_DEFAULT_STENCIL_REFERENCE                                      = 0;
-const unsigned int D3D10_DEFAULT_STENCIL_WRITE_MASK                                     = 0xff;
-const unsigned int D3D10_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX                         = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_HEIGHT                                        = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_TOPLEFTX                                      = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_TOPLEFTY                                      = 0;
-const unsigned int D3D10_DEFAULT_VIEWPORT_WIDTH                                         = 0;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENTS                        = 1;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COMPONENT_BIT_COUNT               = 32;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_COUNT                             = 1;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_READS_PER_INST                    = 2;
-const unsigned int D3D10_GS_INPUT_PRIM_CONST_REGISTER_READ_PORTS                        = 1;
-const unsigned int D3D10_GS_INPUT_REGISTER_COMPONENTS                                   = 4;
-const unsigned int D3D10_GS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          =32;
-const unsigned int D3D10_GS_INPUT_REGISTER_COUNT                                        = 16;
-const unsigned int D3D10_GS_INPUT_REGISTER_READS_PER_INST                               = 2;
-const unsigned int D3D10_GS_INPUT_REGISTER_READ_PORTS                                   = 1;
-const unsigned int D3D10_GS_INPUT_REGISTER_VERTICES                                     = 6;
-const unsigned int D3D10_GS_OUTPUT_ELEMENTS                                             = 32;
-const unsigned int D3D10_GS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
-const unsigned int D3D10_GS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
-const unsigned int D3D10_GS_OUTPUT_REGISTER_COUNT                                       = 32;
-const unsigned int D3D10_IA_DEFAULT_INDEX_BUFFER_OFFSET_IN_BYTES                        = 0;
-const unsigned int D3D10_IA_DEFAULT_PRIMITIVE_TOPOLOGY                                  = 0;
-const unsigned int D3D10_IA_DEFAULT_VERTEX_BUFFER_OFFSET_IN_BYTES                       = 0;
-const unsigned int D3D10_IA_INDEX_INPUT_RESOURCE_SLOT_COUNT                             = 1;
-const unsigned int D3D10_IA_INSTANCE_ID_BIT_COUNT                                       = 32;
-const unsigned int D3D10_IA_INTEGER_ARITHMETIC_BIT_COUNT                                = 32;
-const unsigned int D3D10_IA_PRIMITIVE_ID_BIT_COUNT                                      = 32;
-const unsigned int D3D10_IA_VERTEX_ID_BIT_COUNT                                         = 32;
-const unsigned int D3D10_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT                            = 16;
-const unsigned int D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENTS_COMPONENTS                  = 64;
-const unsigned int D3D10_IA_VERTEX_INPUT_STRUCTURE_ELEMENT_COUNT                        = 16;
-const unsigned int D3D10_INTEGER_DIVIDE_BY_ZERO_QUOTIENT                                = 0xffffffff;
-const unsigned int D3D10_INTEGER_DIVIDE_BY_ZERO_REMAINDER                               = 0xffffffff;
-const unsigned int D3D10_MAX_MAXANISOTROPY                                              = 16;
-const unsigned int D3D10_MAX_MULTISAMPLE_SAMPLE_COUNT                                   = 32;
-const unsigned int D3D10_MAX_TEXTURE_DIMENSION_2_TO_EXP                                 = 17;
-const unsigned int D3D10_MIN_MAXANISOTROPY                                              = 0;
-const unsigned int D3D10_MIP_LOD_FRACTIONAL_BIT_COUNT                                   = 6;
-const unsigned int D3D10_MIP_LOD_RANGE_BIT_COUNT                                        = 8;
-const unsigned int D3D10_NONSAMPLE_FETCH_OUT_OF_RANGE_ACCESS_RESULT                     = 0;
-const unsigned int D3D10_PIXEL_ADDRESS_RANGE_BIT_COUNT                                  = 13;
-const unsigned int D3D10_PRE_SCISSOR_PIXEL_ADDRESS_RANGE_BIT_COUNT                      = 15;
-const unsigned int D3D10_PS_FRONTFACING_DEFAULT_VALUE                                   = 0xffffffff;
-const unsigned int D3D10_PS_FRONTFACING_FALSE_VALUE                                     = 0;
-const unsigned int D3D10_PS_FRONTFACING_TRUE_VALUE                                      = 0xffffffff;
-const unsigned int D3D10_PS_INPUT_REGISTER_COMPONENTS                                   = 4;
-const unsigned int D3D10_PS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          = 32;
-const unsigned int D3D10_PS_INPUT_REGISTER_COUNT                                        = 32;
-const unsigned int D3D10_PS_INPUT_REGISTER_READS_PER_INST                               = 2;
-const unsigned int D3D10_PS_INPUT_REGISTER_READ_PORTS                                   = 1;
-const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENTS                            = 1;
-const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COMPONENT_BIT_COUNT                   = 32;
-const unsigned int D3D10_PS_OUTPUT_DEPTH_REGISTER_COUNT                                 = 1;
-const unsigned int D3D10_PS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
-const unsigned int D3D10_PS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
-const unsigned int D3D10_PS_OUTPUT_REGISTER_COUNT                                       = 8;
-const unsigned int D3D10_REQ_BLEND_OBJECT_COUNT_PER_CONTEXT                             = 4096;
-const unsigned int D3D10_REQ_BUFFER_RESOURCE_TEXEL_COUNT_2_TO_EXP                       = 27;
-const unsigned int D3D10_REQ_CONSTANT_BUFFER_ELEMENT_COUNT                              = 4096;
-const unsigned int D3D10_REQ_DEPTH_STENCIL_OBJECT_COUNT_PER_CONTEXT                     = 4096;
-const unsigned int D3D10_REQ_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                           = 32;
-const unsigned int D3D10_REQ_DRAW_VERTEX_COUNT_2_TO_EXP                                 = 32;
-const unsigned int D3D10_REQ_FILTERING_HW_ADDRESSABLE_RESOURCE_DIMENSION                = 8192;
-const unsigned int D3D10_REQ_GS_INVOCATION_32BIT_OUTPUT_COMPONENT_LIMIT                 = 1024;
-const unsigned int D3D10_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT                    = 4096;
-const unsigned int D3D10_REQ_MAXANISOTROPY                                              = 16;
-const unsigned int D3D10_REQ_MIP_LEVELS                                                 = 14;
-const unsigned int D3D10_REQ_MULTI_ELEMENT_STRUCTURE_SIZE_IN_BYTES                      = 2048;
-const unsigned int D3D10_REQ_RASTERIZER_OBJECT_COUNT_PER_CONTEXT                        = 4096;
-const unsigned int D3D10_REQ_RENDER_TO_BUFFER_WINDOW_WIDTH                              = 8192;
-const unsigned int D3D10_REQ_RESOURCE_SIZE_IN_MEGABYTES                                 = 128;
-const unsigned int D3D10_REQ_RESOURCE_VIEW_COUNT_PER_CONTEXT_2_TO_EXP                   = 20;
-const unsigned int D3D10_REQ_SAMPLER_OBJECT_COUNT_PER_CONTEXT                           = 4096;
-const unsigned int D3D10_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION                             = 512;
-const unsigned int D3D10_REQ_TEXTURE1D_U_DIMENSION                                      = 8192;
-const unsigned int D3D10_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION                             = 512;
-const unsigned int D3D10_REQ_TEXTURE2D_U_OR_V_DIMENSION                                 = 8192;
-const unsigned int D3D10_REQ_TEXTURE3D_U_V_OR_W_DIMENSION                               = 2048;
-const unsigned int D3D10_REQ_TEXTURECUBE_DIMENSION                                      = 8192;
-const unsigned int D3D10_RESINFO_INSTRUCTION_MISSING_COMPONENT_RETVAL                   = 0;
-const unsigned int D3D10_SHADER_MAJOR_VERSION                                           = 4;
-const unsigned int D3D10_SHADER_MINOR_VERSION                                           = 0;
-const unsigned int D3D10_SHIFT_INSTRUCTION_PAD_VALUE                                    = 0;
-const unsigned int D3D10_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT                        = 5;
-const unsigned int D3D10_SIMULTANEOUS_RENDER_TARGET_COUNT                               = 8;
-const unsigned int D3D10_SO_BUFFER_MAX_STRIDE_IN_BYTES                                  = 2048;
-const unsigned int D3D10_SO_BUFFER_MAX_WRITE_WINDOW_IN_BYTES                            = 256;
-const unsigned int D3D10_SO_BUFFER_SLOT_COUNT                                           = 4;
-const unsigned int D3D10_SO_DDI_REGISTER_INDEX_DENOTING_GAP                             = 0xffffffff;
-const unsigned int D3D10_SO_MULTIPLE_BUFFER_ELEMENTS_PER_BUFFER                         = 1;
-const unsigned int D3D10_SO_SINGLE_BUFFER_COMPONENT_LIMIT                               = 64;
-const unsigned int D3D10_STANDARD_COMPONENT_BIT_COUNT                                   = 32;
-const unsigned int D3D10_STANDARD_COMPONENT_BIT_COUNT_DOUBLED                           = 64;
-const unsigned int D3D10_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE               = 4;
-const unsigned int D3D10_STANDARD_PIXEL_COMPONENT_COUNT                                 = 128;
-const unsigned int D3D10_STANDARD_PIXEL_ELEMENT_COUNT                                   = 32;
-const unsigned int D3D10_STANDARD_VECTOR_SIZE                                           = 4;
-const unsigned int D3D10_STANDARD_VERTEX_ELEMENT_COUNT                                  = 16;
-const unsigned int D3D10_STANDARD_VERTEX_TOTAL_COMPONENT_COUNT                          = 64;
-const unsigned int D3D10_SUBPIXEL_FRACTIONAL_BIT_COUNT                                  = 8;
-const unsigned int D3D10_SUBTEXEL_FRACTIONAL_BIT_COUNT                                  = 6;
-const unsigned int D3D10_TEXEL_ADDRESS_RANGE_BIT_COUNT                                  = 18;
-const unsigned int D3D10_UNBOUND_MEMORY_ACCESS_RESULT                                   = 0;
-const unsigned int D3D10_VIEWPORT_AND_SCISSORRECT_MAX_INDEX                             = 15;
-const unsigned int D3D10_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE             = 16;
-const unsigned int D3D10_VIEWPORT_BOUNDS_MAX                                            = 16383;
-const int D3D10_VIEWPORT_BOUNDS_MIN                                                     = -16384;
-const unsigned int D3D10_VS_INPUT_REGISTER_COMPONENTS                                   = 4;
-const unsigned int D3D10_VS_INPUT_REGISTER_COMPONENT_BIT_COUNT                          = 32;
-const unsigned int D3D10_VS_INPUT_REGISTER_COUNT                                        = 16;
-const unsigned int D3D10_VS_INPUT_REGISTER_READS_PER_INST                               = 2;
-const unsigned int D3D10_VS_INPUT_REGISTER_READ_PORTS                                   = 1;
-const unsigned int D3D10_VS_OUTPUT_REGISTER_COMPONENTS                                  = 4;
-const unsigned int D3D10_VS_OUTPUT_REGISTER_COMPONENT_BIT_COUNT                         = 32;
-const unsigned int D3D10_VS_OUTPUT_REGISTER_COUNT                                       = 16;
-const unsigned int D3D10_WHQL_CONTEXT_COUNT_FOR_RESOURCE_LIMIT                          = 10;
-const unsigned int D3D10_WHQL_DRAWINDEXED_INDEX_COUNT_2_TO_EXP                          = 25;
-const unsigned int D3D10_WHQL_DRAW_VERTEX_COUNT_2_TO_EXP                                = 25;
-const unsigned int D3D_MAJOR_VERSION                                                    = 10;
-const unsigned int D3D_MINOR_VERSION                                                    = 0;
-const unsigned int D3D_SPEC_DATE_DAY                                                    = 8;
-const unsigned int D3D_SPEC_DATE_MONTH                                                  = 8;
-const unsigned int D3D_SPEC_DATE_YEAR                                                   = 2006;
-cpp_quote("#endif")
-
-const unsigned int D3D10_APPEND_ALIGNED_ELEMENT                                         = 0xffffffff;
-const unsigned int _FACD3D10                                                            = 0x879;
-const unsigned int _FACD3D10DEBUG                                                       = _FACD3D10 + 1;
-const unsigned int D3D10_FILTER_TYPE_MASK                                               = 0x3;
-const unsigned int D3D10_SDK_VERSION                                                    = 29;
-
-cpp_quote("#define MAKE_D3D10_HRESULT(code)                   MAKE_HRESULT( 1, _FACD3D10, code)")
-cpp_quote("#define MAKE_D3D10_STATUS(code)                    MAKE_HRESULT( 0, _FACD3D10, code)")
-cpp_quote("#define D3D10_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS  MAKE_D3D10_HRESULT(1)")
-cpp_quote("#define D3D10_ERROR_FILE_NOT_FOUND                 MAKE_D3D10_HRESULT(2)")
-
-typedef enum D3D10_BLEND {
-    D3D10_BLEND_ZERO             = 1,
-    D3D10_BLEND_ONE              = 2,
-    D3D10_BLEND_SRC_COLOR        = 3,
-    D3D10_BLEND_INV_SRC_COLOR    = 4,
-    D3D10_BLEND_SRC_ALPHA        = 5,
-    D3D10_BLEND_INV_SRC_ALPHA    = 6,
-    D3D10_BLEND_DEST_ALPHA       = 7,
-    D3D10_BLEND_INV_DEST_ALPHA   = 8,
-    D3D10_BLEND_DEST_COLOR       = 9,
-    D3D10_BLEND_INV_DEST_COLOR   = 10,
-    D3D10_BLEND_SRC_ALPHA_SAT    = 11,
-    D3D10_BLEND_BLEND_FACTOR     = 14,
-    D3D10_BLEND_INV_BLEND_FACTOR = 15,
-    D3D10_BLEND_SRC1_COLOR       = 16,
-    D3D10_BLEND_INV_SRC1_COLOR   = 17,
-    D3D10_BLEND_SRC1_ALPHA       = 18,
-    D3D10_BLEND_INV_SRC1_ALPHA   = 19
-} D3D10_BLEND;
-
-typedef enum D3D10_BLEND_OP {
-    D3D10_BLEND_OP_ADD = 1,
-    D3D10_BLEND_OP_SUBTRACT,
-    D3D10_BLEND_OP_REV_SUBTRACT,
-    D3D10_BLEND_OP_MIN,
-    D3D10_BLEND_OP_MAX,
-} D3D10_BLEND_OP;
-
-typedef struct D3D10_BLEND_DESC {
-    BOOL AlphaToCoverageEnable;
-    BOOL BlendEnable[8];
-    D3D10_BLEND SrcBlend;
-    D3D10_BLEND DestBlend;
-    D3D10_BLEND_OP BlendOp;
-    D3D10_BLEND SrcBlendAlpha;
-    D3D10_BLEND DestBlendAlpha;
-    D3D10_BLEND_OP BlendOpAlpha;
-    UINT8 RenderTargetWriteMask[8];
-} D3D10_BLEND_DESC;
-
-typedef enum D3D10_DEPTH_WRITE_MASK {
-    D3D10_DEPTH_WRITE_MASK_ZERO,
-    D3D10_DEPTH_WRITE_MASK_ALL,
-} D3D10_DEPTH_WRITE_MASK;
-
-typedef enum D3D10_COMPARISON_FUNC {
-    D3D10_COMPARISON_NEVER = 1,
-    D3D10_COMPARISON_LESS,
-    D3D10_COMPARISON_EQUAL,
-    D3D10_COMPARISON_LESS_EQUAL,
-    D3D10_COMPARISON_GREATER,
-    D3D10_COMPARISON_NOT_EQUAL,
-    D3D10_COMPARISON_GREATER_EQUAL,
-    D3D10_COMPARISON_ALWAYS,
-} D3D10_COMPARISON_FUNC;
-
-typedef enum D3D10_STENCIL_OP {
-    D3D10_STENCIL_OP_KEEP = 1,
-    D3D10_STENCIL_OP_ZERO,
-    D3D10_STENCIL_OP_REPLACE,
-    D3D10_STENCIL_OP_INCR_SAT,
-    D3D10_STENCIL_OP_DECR_SAT,
-    D3D10_STENCIL_OP_INVERT,
-    D3D10_STENCIL_OP_INCR,
-    D3D10_STENCIL_OP_DECR,
-} D3D10_STENCIL_OP;
-
-typedef struct D3D10_DEPTH_STENCILOP_DESC {
-    D3D10_STENCIL_OP StencilFailOp;
-    D3D10_STENCIL_OP StencilDepthFailOp;
-    D3D10_STENCIL_OP StencilPassOp;
-    D3D10_COMPARISON_FUNC StencilFunc;
-} D3D10_DEPTH_STENCILOP_DESC;
-
-typedef struct D3D10_DEPTH_STENCIL_DESC {
-    BOOL DepthEnable;
-    D3D10_DEPTH_WRITE_MASK DepthWriteMask;
-    D3D10_COMPARISON_FUNC DepthFunc;
-    BOOL StencilEnable;
-    UINT8 StencilReadMask;
-    UINT8 StencilWriteMask;
-    D3D10_DEPTH_STENCILOP_DESC FrontFace;
-    D3D10_DEPTH_STENCILOP_DESC BackFace;
-} D3D10_DEPTH_STENCIL_DESC;
-
-typedef enum D3D10_FILL_MODE {
-    D3D10_FILL_WIREFRAME = 2,
-    D3D10_FILL_SOLID,
-} D3D10_FILL_MODE;
-
-typedef enum D3D10_CULL_MODE {
-    D3D10_CULL_NONE = 1,
-    D3D10_CULL_FRONT,
-    D3D10_CULL_BACK,
-} D3D10_CULL_MODE;
-
-typedef struct D3D10_RASTERIZER_DESC {
-    D3D10_FILL_MODE FillMode;
-    D3D10_CULL_MODE CullMode;
-    BOOL FrontCounterClockwise;
-    INT DepthBias;
-    FLOAT DepthBiasClamp;
-    FLOAT SlopeScaledDepthBias;
-    BOOL DepthClipEnable;
-    BOOL ScissorEnable;
-    BOOL MultisampleEnable;
-    BOOL AntialiasedLineEnable;
-} D3D10_RASTERIZER_DESC;
-
-typedef enum D3D10_FILTER {
-    D3D10_FILTER_MIN_MAG_MIP_POINT                          = 0,
-    D3D10_FILTER_MIN_MAG_POINT_MIP_LINEAR                   = 0x1,
-    D3D10_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT             = 0x4,
-    D3D10_FILTER_MIN_POINT_MAG_MIP_LINEAR                   = 0x5,
-    D3D10_FILTER_MIN_LINEAR_MAG_MIP_POINT                   = 0x10,
-    D3D10_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR            = 0x11,
-    D3D10_FILTER_MIN_MAG_LINEAR_MIP_POINT                   = 0x14,
-    D3D10_FILTER_MIN_MAG_MIP_LINEAR                         = 0x15,
-    D3D10_FILTER_ANISOTROPIC                                = 0x55,
-    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_POINT               = 0x80,
-    D3D10_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR        = 0x81,
-    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT  = 0x84,
-    D3D10_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR        = 0x85,
-    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT        = 0x90,
-    D3D10_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
-    D3D10_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT        = 0x94,
-    D3D10_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR              = 0x95,
-    D3D10_FILTER_COMPARISON_ANISOTROPIC                     = 0xd5,
-    D3D10_FILTER_TEXT_1BIT                                  = 0x80000000
-} D3D10_FILTER;
-
-typedef enum D3D10_TEXTURE_ADDRESS_MODE {
-    D3D10_TEXTURE_ADDRESS_WRAP = 1,
-    D3D10_TEXTURE_ADDRESS_MIRROR,
-    D3D10_TEXTURE_ADDRESS_CLAMP,
-    D3D10_TEXTURE_ADDRESS_BORDER,
-    D3D10_TEXTURE_ADDRESS_MIRROR_ONCE,
-} D3D10_TEXTURE_ADDRESS_MODE;
-
-typedef struct D3D10_SAMPLER_DESC {
-    D3D10_FILTER Filter;
-    D3D10_TEXTURE_ADDRESS_MODE AddressU;
-    D3D10_TEXTURE_ADDRESS_MODE AddressV;
-    D3D10_TEXTURE_ADDRESS_MODE AddressW;
-    FLOAT MipLODBias;
-    UINT MaxAnisotropy;
-    D3D10_COMPARISON_FUNC ComparisonFunc;
-    FLOAT BorderColor[4];
-    FLOAT MinLOD;
-    FLOAT MaxLOD;
-} D3D10_SAMPLER_DESC;
-
-typedef enum D3D10_COUNTER {
-    D3D10_COUNTER_GPU_IDLE,
-    D3D10_COUNTER_VERTEX_PROCESSING,
-    D3D10_COUNTER_GEOMETRY_PROCESSING,
-    D3D10_COUNTER_PIXEL_PROCESSING,
-    D3D10_COUNTER_OTHER_GPU_PROCESSING,
-    D3D10_COUNTER_HOST_ADAPTER_BANDWIDTH_UTILIZATION,
-    D3D10_COUNTER_LOCAL_VIDMEM_BANDWIDTH_UTILIZATION,
-    D3D10_COUNTER_VERTEX_THROUGHPUT_UTILIZATION,
-    D3D10_COUNTER_TRIANGLE_SETUP_THROUGHPUT_UTILIZATION,
-    D3D10_COUNTER_FILLRATE_THROUGHPUT_UTILIZATION,
-    D3D10_COUNTER_VS_MEMORY_LIMITED,
-    D3D10_COUNTER_VS_COMPUTATION_LIMITED,
-    D3D10_COUNTER_GS_MEMORY_LIMITED,
-    D3D10_COUNTER_GS_COMPUTATION_LIMITED,
-    D3D10_COUNTER_PS_MEMORY_LIMITED,
-    D3D10_COUNTER_PS_COMPUTATION_LIMITED,
-    D3D10_COUNTER_POST_TRANSFORM_CACHE_HIT_RATE,
-    D3D10_COUNTER_TEXTURE_CACHE_HIT_RATE,
-    D3D10_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000
-} D3D10_COUNTER;
-
-typedef struct D3D10_COUNTER_DESC {
-    D3D10_COUNTER Counter;
-    UINT MiscFlags;
-} D3D10_COUNTER_DESC;
-
-typedef enum D3D10_COUNTER_TYPE {
-    D3D10_COUNTER_TYPE_FLOAT32,
-    D3D10_COUNTER_TYPE_UINT16,
-    D3D10_COUNTER_TYPE_UINT32,
-    D3D10_COUNTER_TYPE_UINT64,
-} D3D10_COUNTER_TYPE;
-
-typedef struct D3D10_COUNTER_INFO {
-    D3D10_COUNTER LastDeviceDependentCounter;
-    UINT NumSimultaneousCounters;
-    UINT8 NumDetectableParallelUnits;
-} D3D10_COUNTER_INFO;
-
-typedef enum D3D10_RESOURCE_DIMENSION {
-    D3D10_RESOURCE_DIMENSION_UNKNOWN,
-    D3D10_RESOURCE_DIMENSION_BUFFER,
-    D3D10_RESOURCE_DIMENSION_TEXTURE1D,
-    D3D10_RESOURCE_DIMENSION_TEXTURE2D,
-    D3D10_RESOURCE_DIMENSION_TEXTURE3D,
-} D3D10_RESOURCE_DIMENSION;
-
-typedef enum D3D10_USAGE {
-    D3D10_USAGE_DEFAULT,
-    D3D10_USAGE_IMMUTABLE,
-    D3D10_USAGE_DYNAMIC,
-    D3D10_USAGE_STAGING,
-} D3D10_USAGE;
-
-typedef enum D3D10_BIND_FLAG {
-    D3D10_BIND_VERTEX_BUFFER   = 0x1,
-    D3D10_BIND_INDEX_BUFFER    = 0x2,
-    D3D10_BIND_CONSTANT_BUFFER = 0x4,
-    D3D10_BIND_SHADER_RESOURCE = 0x8,
-    D3D10_BIND_STREAM_OUTPUT   = 0x10,
-    D3D10_BIND_RENDER_TARGET   = 0x20,
-    D3D10_BIND_DEPTH_STENCIL   = 0x40
-} D3D10_BIND_FLAG;
-
-typedef struct D3D10_BUFFER_DESC {
-    UINT ByteWidth;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_BUFFER_DESC;
-
-cpp_quote("#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D10_BUFFER_DESC : public D3D10_BUFFER_DESC {")
-cpp_quote("    CD3D10_BUFFER_DESC() {}" )
-cpp_quote("    explicit CD3D10_BUFFER_DESC(const D3D10_BUFFER_DESC &o) : D3D10_BUFFER_DESC(o) {}")
-cpp_quote("    explicit CD3D10_BUFFER_DESC(UINT byteWidth, UINT bindFlags, D3D10_USAGE usage = D3D10_USAGE_DEFAULT, UINT cpuaccessFlags = 0, UINT miscFlags = 0 ) {")
-cpp_quote("        ByteWidth = byteWidth;")
-cpp_quote("        Usage = usage;")
-cpp_quote("        BindFlags = bindFlags;")
-cpp_quote("        CPUAccessFlags = cpuaccessFlags;")
-cpp_quote("        MiscFlags = miscFlags;")
-cpp_quote("    }")
-cpp_quote("    ~CD3D10_BUFFER_DESC() {}")
-cpp_quote("    operator const D3D10_BUFFER_DESC&() const {")
-cpp_quote("        return *this;")
-cpp_quote("    }")
-cpp_quote("};")
-cpp_quote("#endif")
-
-typedef enum D3D10_MAP {
-    D3D10_MAP_READ = 1,
-    D3D10_MAP_WRITE,
-    D3D10_MAP_READ_WRITE,
-    D3D10_MAP_WRITE_DISCARD,
-    D3D10_MAP_WRITE_NO_OVERWRITE,
-} D3D10_MAP;
-
-typedef struct D3D10_TEXTURE1D_DESC {
-    UINT Width;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE1D_DESC;
-
-cpp_quote("#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D10_TEXTURE1D_DESC : public D3D10_TEXTURE1D_DESC {")
-cpp_quote("    CD3D10_TEXTURE1D_DESC() {}")
-cpp_quote("    explicit CD3D10_TEXTURE1D_DESC(const D3D10_TEXTURE1D_DESC &o) : D3D10_TEXTURE1D_DESC(o) {}")
-cpp_quote("    explicit CD3D10_TEXTURE1D_DESC(DXGI_FORMAT format, UINT width, UINT arraySize = 1, UINT mipLevels = 0,")
-cpp_quote("        UINT bindFlags = D3D10_BIND_SHADER_RESOURCE, D3D10_USAGE usage = D3D10_USAGE_DEFAULT, UINT cpuaccessFlags = 0,")
-cpp_quote("        UINT miscFlags = 0) {")
-cpp_quote("        Width = width;")
-cpp_quote("        MipLevels = mipLevels;")
-cpp_quote("        ArraySize = arraySize;")
-cpp_quote("        Format = format;")
-cpp_quote("        Usage = usage;")
-cpp_quote("        BindFlags = bindFlags;")
-cpp_quote("        CPUAccessFlags = cpuaccessFlags;")
-cpp_quote("        MiscFlags = miscFlags;")
-cpp_quote("    }")
-cpp_quote("    ~CD3D10_TEXTURE1D_DESC() {}")
-cpp_quote("    operator const D3D10_TEXTURE1D_DESC&() const {")
-cpp_quote("        return *this;")
-cpp_quote("    }")
-cpp_quote("};")
-cpp_quote("#endif")
-
-typedef struct D3D10_TEXTURE2D_DESC {
-    UINT Width;
-    UINT Height;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    DXGI_SAMPLE_DESC SampleDesc;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE2D_DESC;
-
-cpp_quote("#if !defined(D3D10_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D10_TEXTURE2D_DESC : public D3D10_TEXTURE2D_DESC {")
-cpp_quote("    CD3D10_TEXTURE2D_DESC() {}" )
-cpp_quote("    explicit CD3D10_TEXTURE2D_DESC(const D3D10_TEXTURE2D_DESC &o) : D3D10_TEXTURE2D_DESC(o) {}")
-cpp_quote("    explicit CD3D10_TEXTURE2D_DESC(DXGI_FORMAT format, UINT width, UINT height,")
-cpp_quote("            UINT arraySize = 1,")
-cpp_quote("            UINT mipLevels = 0,")
-cpp_quote("            UINT bindFlags = D3D10_BIND_SHADER_RESOURCE,")
-cpp_quote("            D3D10_USAGE usage = D3D10_USAGE_DEFAULT,")
-cpp_quote("            UINT cpuaccessFlags = 0,")
-cpp_quote("            UINT sampleCount = 1,")
-cpp_quote("            UINT sampleQuality = 0,")
-cpp_quote("            UINT miscFlags = 0) {")
-cpp_quote("        Width = width;" )
-cpp_quote("        Height = height;" )
-cpp_quote("        MipLevels = mipLevels;" )
-cpp_quote("        ArraySize = arraySize;" )
-cpp_quote("        Format = format;" )
-cpp_quote("        SampleDesc.Count = sampleCount;" )
-cpp_quote("        SampleDesc.Quality = sampleQuality;" )
-cpp_quote("        Usage = usage;" )
-cpp_quote("        BindFlags = bindFlags;" )
-cpp_quote("        CPUAccessFlags = cpuaccessFlags;" )
-cpp_quote("        MiscFlags = miscFlags;" )
-cpp_quote("    }")
-cpp_quote("    ~CD3D10_TEXTURE2D_DESC() {}")
-cpp_quote("    operator const D3D10_TEXTURE2D_DESC&() const {")
-cpp_quote("        return *this;")
-cpp_quote("    }")
-cpp_quote("};")
-cpp_quote("#endif")
-
-typedef struct D3D10_TEXTURE3D_DESC {
-    UINT Width;
-    UINT Height;
-    UINT Depth;
-    UINT MipLevels;
-    DXGI_FORMAT Format;
-    D3D10_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D10_TEXTURE3D_DESC;
-
-typedef enum D3D10_DSV_DIMENSION
-{
-    D3D10_DSV_DIMENSION_UNKNOWN,
-    D3D10_DSV_DIMENSION_TEXTURE1D,
-    D3D10_DSV_DIMENSION_TEXTURE1DARRAY,
-    D3D10_DSV_DIMENSION_TEXTURE2D,
-    D3D10_DSV_DIMENSION_TEXTURE2DARRAY,
-    D3D10_DSV_DIMENSION_TEXTURE2DMS,
-    D3D10_DSV_DIMENSION_TEXTURE2DMSARRAY,
-} D3D10_DSV_DIMENSION;
-
-typedef struct D3D10_TEX1D_DSV {
-    UINT MipSlice;
-} D3D10_TEX1D_DSV;
-
-typedef struct D3D10_TEX1D_ARRAY_DSV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_DSV;
-
-typedef struct D3D10_TEX2D_DSV {
-    UINT MipSlice;
-} D3D10_TEX2D_DSV;
-
-typedef struct D3D10_TEX2D_ARRAY_DSV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_DSV;
-
-typedef struct D3D10_TEX2DMS_DSV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_DSV;
-
-typedef struct D3D10_TEX2DMS_ARRAY_DSV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_DSV;
-
-typedef struct D3D10_DEPTH_STENCIL_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_DSV_DIMENSION ViewDimension;
-    union {
-        D3D10_TEX1D_DSV Texture1D;
-        D3D10_TEX1D_ARRAY_DSV Texture1DArray;
-        D3D10_TEX2D_DSV Texture2D;
-        D3D10_TEX2D_ARRAY_DSV Texture2DArray;
-        D3D10_TEX2DMS_DSV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_DSV Texture2DMSArray;
-    };
-} D3D10_DEPTH_STENCIL_VIEW_DESC;
-
-typedef enum D3D10_RTV_DIMENSION {
-    D3D10_RTV_DIMENSION_UNKNOWN,
-    D3D10_RTV_DIMENSION_BUFFER,
-    D3D10_RTV_DIMENSION_TEXTURE1D,
-    D3D10_RTV_DIMENSION_TEXTURE1DARRAY,
-    D3D10_RTV_DIMENSION_TEXTURE2D,
-    D3D10_RTV_DIMENSION_TEXTURE2DARRAY,
-    D3D10_RTV_DIMENSION_TEXTURE2DMS,
-    D3D10_RTV_DIMENSION_TEXTURE2DMSARRAY,
-    D3D10_RTV_DIMENSION_TEXTURE3D,
-} D3D10_RTV_DIMENSION;
-
-typedef struct D3D10_BUFFER_RTV {
-    union {
-        UINT FirstElement;
-        UINT ElementOffset;
-    };
-    union {
-        UINT NumElements;
-        UINT ElementWidth;
-    };
-} D3D10_BUFFER_RTV;
-
-typedef struct D3D10_TEX1D_RTV {
-    UINT MipSlice;
-} D3D10_TEX1D_RTV;
-
-typedef struct D3D10_TEX1D_ARRAY_RTV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_RTV;
-
-typedef struct D3D10_TEX2D_RTV {
-    UINT MipSlice;
-} D3D10_TEX2D_RTV;
-
-typedef struct D3D10_TEX2D_ARRAY_RTV {
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_RTV;
-
-typedef struct D3D10_TEX2DMS_RTV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_RTV;
-
-typedef struct D3D10_TEX2DMS_ARRAY_RTV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_RTV;
-
-typedef struct D3D10_TEX3D_RTV {
-    UINT MipSlice;
-    UINT FirstWSlice;
-    UINT WSize;
-} D3D10_TEX3D_RTV;
-
-typedef struct D3D10_RENDER_TARGET_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_RTV_DIMENSION ViewDimension;
-    union {
-        D3D10_BUFFER_RTV Buffer;
-        D3D10_TEX1D_RTV Texture1D;
-        D3D10_TEX1D_ARRAY_RTV Texture1DArray;
-        D3D10_TEX2D_RTV Texture2D;
-        D3D10_TEX2D_ARRAY_RTV Texture2DArray;
-        D3D10_TEX2DMS_RTV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_RTV Texture2DMSArray;
-        D3D10_TEX3D_RTV Texture3D;
-    };
-} D3D10_RENDER_TARGET_VIEW_DESC;
-
-typedef D3D_SRV_DIMENSION D3D10_SRV_DIMENSION;
-
-typedef struct D3D10_BUFFER_SRV {
-    union {
-        UINT FirstElement;
-        UINT ElementOffset;
-    };
-    union {
-        UINT NumElements;
-        UINT ElementWidth;
-    };
-} D3D10_BUFFER_SRV;
-
-typedef struct D3D10_TEX1D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX1D_SRV;
-
-typedef struct D3D10_TEX1D_ARRAY_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX1D_ARRAY_SRV;
-
-typedef struct D3D10_TEX2D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX2D_SRV;
-
-typedef struct D3D10_TEX2D_ARRAY_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2D_ARRAY_SRV;
-
-typedef struct D3D10_TEX2DMS_SRV {
-    UINT UnusedField_NothingToDefine;
-} D3D10_TEX2DMS_SRV;
-
-typedef struct D3D10_TEX2DMS_ARRAY_SRV {
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D10_TEX2DMS_ARRAY_SRV;
-
-typedef struct D3D10_TEX3D_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEX3D_SRV;
-
-typedef struct D3D10_TEXCUBE_SRV {
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D10_TEXCUBE_SRV;
-
-typedef struct D3D10_SHADER_RESOURCE_VIEW_DESC {
-    DXGI_FORMAT Format;
-    D3D10_SRV_DIMENSION ViewDimension;
-    union {
-        D3D10_BUFFER_SRV Buffer;
-        D3D10_TEX1D_SRV Texture1D;
-        D3D10_TEX1D_ARRAY_SRV Texture1DArray;
-        D3D10_TEX2D_SRV Texture2D;
-        D3D10_TEX2D_ARRAY_SRV Texture2DArray;
-        D3D10_TEX2DMS_SRV Texture2DMS;
-        D3D10_TEX2DMS_ARRAY_SRV Texture2DMSArray;
-        D3D10_TEX3D_SRV Texture3D;
-        D3D10_TEXCUBE_SRV TextureCube;
-    };
-} D3D10_SHADER_RESOURCE_VIEW_DESC;
-
-typedef struct D3D10_BOX {
-    UINT left;
-    UINT top;
-    UINT front;
-    UINT right;
-    UINT bottom;
-    UINT back;
-} D3D10_BOX;
-
-typedef struct D3D10_SUBRESOURCE_DATA {
-    const void *pSysMem;
-    UINT SysMemPitch;
-    UINT SysMemSlicePitch;
-} D3D10_SUBRESOURCE_DATA;
-
-typedef struct D3D10_SO_DECLARATION_ENTRY
-{
-    const char *SemanticName;
-    UINT SemanticIndex;
-    BYTE StartComponent;
-    BYTE ComponentCount;
-    BYTE OutputSlot;
-} D3D10_SO_DECLARATION_ENTRY;
-
-typedef enum D3D10_INPUT_CLASSIFICATION {
-    D3D10_INPUT_PER_VERTEX_DATA,
-    D3D10_INPUT_PER_INSTANCE_DATA,
-} D3D10_INPUT_CLASSIFICATION;
-
-typedef struct D3D10_INPUT_ELEMENT_DESC
-{
-    const char *SemanticName;
-    UINT SemanticIndex;
-    DXGI_FORMAT Format;
-    UINT InputSlot;
-    UINT AlignedByteOffset;
-    D3D10_INPUT_CLASSIFICATION InputSlotClass;
-    UINT InstanceDataStepRate;
-} D3D10_INPUT_ELEMENT_DESC;
-
-typedef enum D3D10_QUERY {
-    D3D10_QUERY_EVENT,
-    D3D10_QUERY_OCCLUSION,
-    D3D10_QUERY_TIMESTAMP,
-    D3D10_QUERY_TIMESTAMP_DISJOINT,
-    D3D10_QUERY_PIPELINE_STATISTICS,
-    D3D10_QUERY_OCCLUSION_PREDICATE,
-    D3D10_QUERY_SO_STATISTICS,
-    D3D10_QUERY_SO_OVERFLOW_PREDICATE,
-} D3D10_QUERY;
-
-typedef struct D3D10_QUERY_DESC {
-    D3D10_QUERY Query;
-    UINT MiscFlags;
-} D3D10_QUERY_DESC;
-
-typedef D3D_PRIMITIVE_TOPOLOGY D3D10_PRIMITIVE_TOPOLOGY;
-
-typedef D3D_PRIMITIVE D3D10_PRIMITIVE;
-
-typedef RECT D3D10_RECT;
-
-typedef struct D3D10_VIEWPORT {
-    INT TopLeftX;
-    INT TopLeftY;
-    UINT Width;
-    UINT Height;
-    FLOAT MinDepth;
-    FLOAT MaxDepth;
-} D3D10_VIEWPORT;
-
-typedef struct D3D10_MAPPED_TEXTURE2D {
-    void *pData;
-    UINT RowPitch;
-} D3D10_MAPPED_TEXTURE2D;
-
-typedef struct D3D10_MAPPED_TEXTURE3D {
-    void *pData;
-    UINT RowPitch;
-    UINT DepthPitch;
-} D3D10_MAPPED_TEXTURE3D;
-
-typedef enum D3D10_CPU_ACCESS_FLAG {
-    D3D10_CPU_ACCESS_WRITE = 0x10000,
-    D3D10_CPU_ACCESS_READ  = 0x20000
-} D3D10_CPU_ACCESS_FLAG;
-
-typedef enum D3D10_RESOURCE_MISC_FLAG {
-    D3D10_RESOURCE_MISC_GENERATE_MIPS      = 0x0001,
-    D3D10_RESOURCE_MISC_SHARED             = 0x0002,
-    D3D10_RESOURCE_MISC_TEXTURECUBE        = 0x0004,
-    D3D10_RESOURCE_MISC_SHARED_KEYEDMUTEX  = 0x0010,
-    D3D10_RESOURCE_MISC_GDI_COMPATIBLE     = 0x0020
-} D3D10_RESOURCE_MISC_FLAG;
-
-typedef enum D3D10_MAP_FLAG {
-    D3D10_MAP_FLAG_DO_NOT_WAIT = 0x100000,
-} D3D10_MAP_FLAG;
-
-typedef enum D3D10_CLEAR_FLAG {
-    D3D10_CLEAR_DEPTH   = 0x1,
-    D3D10_CLEAR_STENCIL = 0x2
-} D3D10_CLEAR_FLAG;
-
-typedef enum D3D10_COLOR_WRITE_ENABLE {
-    D3D10_COLOR_WRITE_ENABLE_RED   = 0x1,
-    D3D10_COLOR_WRITE_ENABLE_GREEN = 0x2,
-    D3D10_COLOR_WRITE_ENABLE_BLUE  = 0x4,
-    D3D10_COLOR_WRITE_ENABLE_ALPHA = 0x8,
-    D3D10_COLOR_WRITE_ENABLE_ALL   = (D3D10_COLOR_WRITE_ENABLE_RED  | D3D10_COLOR_WRITE_ENABLE_GREEN |
-                                      D3D10_COLOR_WRITE_ENABLE_BLUE | D3D10_COLOR_WRITE_ENABLE_ALPHA)
-} D3D10_COLOR_WRITE_ENABLE;
-
-typedef enum D3D10_FORMAT_SUPPORT
-{
-    D3D10_FORMAT_SUPPORT_BUFFER                   = 0x00000001,
-    D3D10_FORMAT_SUPPORT_IA_VERTEX_BUFFER         = 0x00000002,
-    D3D10_FORMAT_SUPPORT_IA_INDEX_BUFFER          = 0x00000004,
-    D3D10_FORMAT_SUPPORT_SO_BUFFER                = 0x00000008,
-    D3D10_FORMAT_SUPPORT_TEXTURE1D                = 0x00000010,
-    D3D10_FORMAT_SUPPORT_TEXTURE2D                = 0x00000020,
-    D3D10_FORMAT_SUPPORT_TEXTURE3D                = 0x00000040,
-    D3D10_FORMAT_SUPPORT_TEXTURECUBE              = 0x00000080,
-    D3D10_FORMAT_SUPPORT_SHADER_LOAD              = 0x00000100,
-    D3D10_FORMAT_SUPPORT_SHADER_SAMPLE            = 0x00000200,
-    D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON = 0x00000400,
-    D3D10_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT  = 0x00000800,
-    D3D10_FORMAT_SUPPORT_MIP                      = 0x00001000,
-    D3D10_FORMAT_SUPPORT_MIP_AUTOGEN              = 0x00002000,
-    D3D10_FORMAT_SUPPORT_RENDER_TARGET            = 0x00004000,
-    D3D10_FORMAT_SUPPORT_BLENDABLE                = 0x00008000,
-    D3D10_FORMAT_SUPPORT_DEPTH_STENCIL            = 0x00010000,
-    D3D10_FORMAT_SUPPORT_CPU_LOCKABLE             = 0x00020000,
-    D3D10_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE      = 0x00040000,
-    D3D10_FORMAT_SUPPORT_DISPLAY                  = 0x00080000,
-    D3D10_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT   = 0x00100000,
-    D3D10_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET = 0x00200000,
-    D3D10_FORMAT_SUPPORT_MULTISAMPLE_LOAD         = 0x00400000,
-    D3D10_FORMAT_SUPPORT_SHADER_GATHER            = 0x00800000,
-    D3D10_FORMAT_SUPPORT_BACK_BUFFER_CAST         = 0x01000000,
-} D3D10_FORMAT_SUPPORT;
-
-typedef enum D3D10_TEXTURECUBE_FACE {
-    D3D10_TEXTURECUBE_FACE_POSITIVE_X,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_X,
-    D3D10_TEXTURECUBE_FACE_POSITIVE_Y,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_Y,
-    D3D10_TEXTURECUBE_FACE_POSITIVE_Z,
-    D3D10_TEXTURECUBE_FACE_NEGATIVE_Z,
-} D3D10_TEXTURECUBE_FACE;
-
-typedef enum D3D10_ASYNC_GETDATA_FLAG {
-    D3D10_ASYNC_GETDATA_DONOTFLUSH = 0x1,
-} D3D10_ASYNC_GETDATA_FLAG;
-
-typedef enum D3D10_FILTER_TYPE {
-    D3D10_FILTER_TYPE_POINT,
-    D3D10_FILTER_TYPE_LINEAR
-} D3D10_FILTER_TYPE;
-
-typedef enum D3D10_QUERY_MISC_FLAG {
-    D3D10_QUERY_MISC_PREDICATEHINT = 0x1
-} D3D10_QUERY_MISC_FLAG;
-
-typedef struct D3D10_QUERY_DATA_TIMESTAMP_DISJOINT {
-    UINT64 Frequency;
-    BOOL Disjoint;
-} D3D10_QUERY_DATA_TIMESTAMP_DISJOINT;
-
-typedef struct D3D10_QUERY_DATA_PIPELINE_STATISTICS {
-    UINT64 IAVertices;
-    UINT64 IAPrimitives;
-    UINT64 VSInvocations;
-    UINT64 GSInvocations;
-    UINT64 GSPrimitives;
-    UINT64 CInvocations;
-    UINT64 CPrimitives;
-    UINT64 PSInvocations;
-} D3D10_QUERY_DATA_PIPELINE_STATISTICS;
-
-typedef struct D3D10_QUERY_DATA_SO_STATISTICS {
-    UINT64 NumPrimitivesWritten;
-    UINT64 PrimitivesStorageNeeded;
-} D3D10_QUERY_DATA_SO_STATISTICS;
-
-typedef enum D3D10_CREATE_DEVICE_FLAG {
-    D3D10_CREATE_DEVICE_SINGLETHREADED                           = 0x1,
-    D3D10_CREATE_DEVICE_DEBUG                                    = 0x2,
-    D3D10_CREATE_DEVICE_SWITCH_TO_REF                            = 0x4,
-    D3D10_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x8,
-    D3D10_CREATE_DEVICE_ALLOW_NULL_FROM_MAP                      = 0x10,
-    D3D10_CREATE_DEVICE_BGRA_SUPPORT                             = 0x20,
-    D3D10_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x80,
-    D3D10_CREATE_DEVICE_STRICT_VALIDATION                             = 0x200,
-    D3D10_CREATE_DEVICE_DEBUGGABLE                                    = 0x400,
-} D3D10_CREATE_DEVICE_FLAG;
-
-/* Core */
-
-interface ID3D10Device;
-
-[
-    object,
-    local,
-    uuid(9b7e4c00-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10DeviceChild : IUnknown
-{
-        void GetDevice(
-            [out] ID3D10Device **ppDevice);
-        HRESULT GetPrivateData(
-            [in] REFGUID guid,
-            [in, out] UINT *pDataSize,
-            [out] void *pData);
-        HRESULT SetPrivateData(
-            [in] REFGUID guid,
-            [in] UINT DataSize,
-            [in] const void *pData);
-        HRESULT SetPrivateDataInterface(
-            [in] REFGUID guid,
-            [in] const IUnknown *pData);
-}
-
-/* Resource */
-
-[
-    object,
-    local,
-    uuid(9b7e4c01-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Resource : ID3D10DeviceChild
-{
-        void GetType(
-            [out] D3D10_RESOURCE_DIMENSION *rType);
-        void SetEvictionPriority(
-            [in] UINT EvictionPriority);
-        UINT GetEvictionPriority();
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c02-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Buffer : ID3D10Resource
-{
-        HRESULT Map(
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] void **ppData);
-        void Unmap();
-        void GetDesc(
-            [out] D3D10_BUFFER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c03-342c-4106-a19f-4f2704f689F0)
-]
-interface ID3D10Texture1D : ID3D10Resource
-{
-        HRESULT Map(
-            [in] UINT Subresource,
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] void **ppData);
-        void Unmap(
-            [in] UINT Subresource);
-        void GetDesc(
-            [out] D3D10_TEXTURE1D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c04-342c-4106-a19f-4f2704f689F0)
-]
-interface ID3D10Texture2D : ID3D10Resource
-{
-        HRESULT Map(
-            [in] UINT Subresource,
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] D3D10_MAPPED_TEXTURE2D *pMappedTex2D);
-        void Unmap(
-            [in] UINT Subresource);
-        void GetDesc(
-            [out] D3D10_TEXTURE2D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c05-342c-4106-a19f-4f2704f689F0)
-]
-interface ID3D10Texture3D : ID3D10Resource
-{
-        HRESULT Map(
-            [in] UINT Subresource,
-            [in] D3D10_MAP MapType,
-            [in] UINT MapFlags,
-            [out] D3D10_MAPPED_TEXTURE3D *pMappedTex3D);
-        void Unmap(
-            [in] UINT Subresource);
-        void GetDesc(
-            [out] D3D10_TEXTURE3D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(c902b03f-60a7-49ba-9936-2a3ab37a7e33)
-]
-interface ID3D10View : ID3D10DeviceChild
-{
-        void GetResource(
-            [out] ID3D10Resource **ppResource);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c09-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10DepthStencilView : ID3D10View
-{
-        void GetDesc(
-            [out] D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc);
-}
-
-
-[
-    object,
-    local,
-    uuid(9b7e4c08-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10RenderTargetView : ID3D10View
-{
-        void GetDesc(
-            [out] D3D10_RENDER_TARGET_VIEW_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c07-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10ShaderResourceView  : ID3D10View
-{
-        void GetDesc(
-            [out] D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc);
-}
-
-/* Resource End */
-
-[
-    object,
-    local,
-    uuid(edad8d19-8a35-4d6d-8566-2ea276cde161)
-]
-interface ID3D10BlendState : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_BLEND_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(2b4b1cc8-a4ad-41f8-8322-ca86fc3ec675)
-]
-interface ID3D10DepthStencilState : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_DEPTH_STENCIL_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(6316be88-54cd-4040-ab44-20461bc81f68)
-]
-interface ID3D10GeometryShader  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0b-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10InputLayout  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(4968b601-9d00-4cde-8346-8e7f675819b6)
-]
-interface ID3D10PixelShader  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(a2a07292-89af-4345-be2e-c53d9fbb6e9f)
-]
-interface ID3D10RasterizerState  : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_RASTERIZER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0c-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10SamplerState  : ID3D10DeviceChild
-{
-    void GetDesc(
-            [out] D3D10_SAMPLER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0a-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10VertexShader  : ID3D10DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0d-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Asynchronous  : ID3D10DeviceChild
-{
-    void Begin();
-    void End();
-    HRESULT GetData(
-            [out] void *pData,
-            [in] UINT DataSize,
-            [in] UINT GetDataFlags);
-    UINT GetDataSize();
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c11-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Counter  : ID3D10Asynchronous
-{
-    void GetDesc(
-            [out] D3D10_COUNTER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4C0e-342C-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Query : ID3D10Asynchronous
-{
-    void GetDesc(
-            [out] D3D10_QUERY_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c10-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Predicate : ID3D10Query
-{
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4c0f-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Device : IUnknown
-{
-        void VSSetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppConstantBuffers);
-        void PSSetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
-        void PSSetShader(
-            [in] ID3D10PixelShader *pPixelShader);
-        void PSSetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [in]ID3D10SamplerState *const *ppSamplers);
-        void VSSetShader(
-            [in] ID3D10VertexShader *pVertexShader);
-        void DrawIndexed(
-            [in] UINT IndexCount,
-            [in] UINT StartIndexLocation,
-            [in] INT BaseVertexLocation);
-        void Draw(
-            [in] UINT VertexCount,
-            [in] UINT StartVertexLocation);
-        void PSSetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppConstantBuffers);
-        void IASetInputLayout(
-            [in] ID3D10InputLayout *pInputLayout);
-        void IASetVertexBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppVertexBuffers,
-            [in] const UINT *pStrides,
-            [in] const UINT *pOffsets);
-        void IASetIndexBuffer(
-            [in] ID3D10Buffer *pIndexBuffer,
-            [in] DXGI_FORMAT Format,
-            [in] UINT Offset);
-        void DrawIndexedInstanced(
-            [in] UINT IndexCountPerInstance,
-            [in] UINT InstanceCount,
-            [in] UINT StartIndexLocation,
-            [in] INT BaseVertexLocation,
-            [in] UINT StartInstanceLocation);
-        void DrawInstanced(
-            [in] UINT VertexCountPerInstance,
-            [in] UINT InstanceCount,
-            [in] UINT StartVertexLocation,
-            [in] UINT StartInstanceLocation);
-        void GSSetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppConstantBuffers);
-        void GSSetShader(
-            [in] ID3D10GeometryShader *pShader);
-        void IASetPrimitiveTopology(
-            [in] D3D10_PRIMITIVE_TOPOLOGY Topology);
-        void VSSetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [in] ID3D10ShaderResourceView *const *ppShaderResourceViews);
-        void VSSetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [in] ID3D10SamplerState *const *ppSamplers);
-        void SetPredication(
-            [in] ID3D10Predicate *pPredicate,
-            [in] BOOL PredicateValue);
-        void GSSetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [in] ID3D10ShaderResourceView * const *ppShaderResourceViews);
-        void GSSetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [in] ID3D10SamplerState *const *ppSamplers);
-        void OMSetRenderTargets(
-            [in] UINT NumViews,
-            [in] ID3D10RenderTargetView *const *ppRenderTargetViews,
-            [in] ID3D10DepthStencilView *pDepthStencilView);
-        void OMSetBlendState(
-            [in] ID3D10BlendState *pBlendState,
-            [in] const FLOAT BlendFactor[4],
-            [in] UINT SampleMask);
-        void OMSetDepthStencilState(
-            [in] ID3D10DepthStencilState *pDepthStencilState,
-            [in] UINT StencilRef);
-        void SOSetTargets(
-            [in] UINT NumBuffers,
-            [in] ID3D10Buffer *const *ppSOTargets,
-            [in] const UINT *pOffsets);
-        void DrawAuto();
-        void RSSetState(
-            [in] ID3D10RasterizerState *pRasterizerState);
-        void RSSetViewports(
-            [in] UINT NumViewports,
-            [in] const D3D10_VIEWPORT *pViewports);
-        void RSSetScissorRects(
-            [in] UINT NumRects,
-            [in] const D3D10_RECT *pRects);
-        void CopySubresourceRegion(
-            [in] ID3D10Resource *pDstResource,
-            [in] UINT DstSubresource,
-            [in] UINT DstX,
-            [in] UINT DstY,
-            [in] UINT DstZ,
-            [in] ID3D10Resource *pSrcResource,
-            [in] UINT SrcSubresource,
-            [in] const D3D10_BOX *pSrcBox);
-        void CopyResource(
-            [in] ID3D10Resource *pDstResource,
-            [in] ID3D10Resource *pSrcResource);
-        void UpdateSubresource(
-            [in] ID3D10Resource *pDstResource,
-            [in] UINT DstSubresource,
-            [in] const D3D10_BOX *pDstBox,
-            [in] const void *pSrcData,
-            [in] UINT SrcRowPitch,
-            [in] UINT SrcDepthPitch);
-        void ClearRenderTargetView(
-            [in] ID3D10RenderTargetView *pRenderTargetView,
-            [in] const FLOAT ColorRGBA[4]);
-        void ClearDepthStencilView(
-            [in] ID3D10DepthStencilView *pDepthStencilView,
-            [in] UINT ClearFlags,
-            [in] FLOAT Depth,
-            [in] UINT8 Stencil);
-        void GenerateMips(
-            [in] ID3D10ShaderResourceView *pShaderResourceView);
-        void ResolveSubresource(
-            [in] ID3D10Resource *pDstResource,
-            [in] UINT DstSubresource,
-            [in] ID3D10Resource *pSrcResource,
-            [in] UINT SrcSubresource,
-            [in] DXGI_FORMAT Format);
-        void VSGetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppConstantBuffers);
-        void PSGetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [out] ID3D10ShaderResourceView **ppShaderResourceViews);
-        void PSGetShader(
-            [out] ID3D10PixelShader **ppPixelShader);
-        void PSGetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [out] ID3D10SamplerState **ppSamplers);
-        void VSGetShader(
-            [out] ID3D10VertexShader **ppVertexShader);
-        void PSGetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppConstantBuffers);
-        void IAGetInputLayout(
-            [out] ID3D10InputLayout **ppInputLayout);
-        void IAGetVertexBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppVertexBuffers,
-            [out] UINT *pStrides,
-            [out] UINT *pOffsets);
-        void IAGetIndexBuffer(
-            [out] ID3D10Buffer **pIndexBuffer,
-            [out] DXGI_FORMAT *Format,
-            [out] UINT *Offset);
-        void GSGetConstantBuffers(
-            [in] UINT StartSlot,
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppConstantBuffers);
-        void GSGetShader(
-            [out] ID3D10GeometryShader **ppGeometryShader);
-        void IAGetPrimitiveTopology(
-            [out] D3D10_PRIMITIVE_TOPOLOGY *pTopology);
-        void VSGetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [out] ID3D10ShaderResourceView **ppShaderResourceViews);
-        void VSGetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [out] ID3D10SamplerState **ppSamplers);
-        void GetPredication(
-            [out] ID3D10Predicate **ppPredicate,
-            [out] BOOL *pPredicateValue);
-        void GSGetShaderResources(
-            [in] UINT StartSlot,
-            [in] UINT NumViews,
-            [out] ID3D10ShaderResourceView **ppShaderResourceViews);
-        void GSGetSamplers(
-            [in] UINT StartSlot,
-            [in] UINT NumSamplers,
-            [out] ID3D10SamplerState **ppSamplers);
-        void OMGetRenderTargets(
-            [in] UINT NumViews,
-            [out] ID3D10RenderTargetView **ppRenderTargetViews,
-            [out] ID3D10DepthStencilView **ppDepthStencilView);
-        void OMGetBlendState(
-            [out] ID3D10BlendState **ppBlendState,
-            [out] FLOAT BlendFactor[4],
-            [out] UINT *pSampleMask);
-        void OMGetDepthStencilState(
-            [out] ID3D10DepthStencilState **ppDepthStencilState,
-            [out] UINT *pStencilRef);
-        void SOGetTargets(
-            [in] UINT NumBuffers,
-            [out] ID3D10Buffer **ppSOTargets,
-            [out] UINT *pOffsets);
-        void RSGetState(
-            [out] ID3D10RasterizerState **ppRasterizerState);
-        void RSGetViewports(
-            [in, out] UINT *NumViewports,
-            [out] D3D10_VIEWPORT *pViewports);
-        void RSGetScissorRects(
-            [in, out] UINT *NumRects,
-            [out] D3D10_RECT *pRects);
-        HRESULT GetDeviceRemovedReason();
-        HRESULT SetExceptionMode(
-            [in] UINT RaiseFlags);
-        UINT GetExceptionMode();
-        HRESULT GetPrivateData(
-            [in] REFGUID guid,
-            [in, out] UINT *pDataSize,
-            [out] void *pData);
-        HRESULT SetPrivateData(
-            [in] REFGUID guid,
-            [in] UINT DataSize,
-            [in] const void *pData);
-        HRESULT SetPrivateDataInterface(
-            [in] REFGUID guid,
-            [in] const IUnknown *pData);
-        void ClearState();
-        void Flush();
-        HRESULT CreateBuffer(
-            [in] const D3D10_BUFFER_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Buffer **ppBuffer);
-        HRESULT CreateTexture1D(
-            [in] const D3D10_TEXTURE1D_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Texture1D **ppTexture1D);
-        HRESULT CreateTexture2D(
-            [in] const D3D10_TEXTURE2D_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Texture2D **ppTexture2D);
-        HRESULT CreateTexture3D(
-            [in] const D3D10_TEXTURE3D_DESC *pDesc,
-            [in] const D3D10_SUBRESOURCE_DATA *pInitialData,
-            [out] ID3D10Texture3D **ppTexture3D);
-        HRESULT CreateShaderResourceView(
-            [in] ID3D10Resource *pResource,
-            [in] const D3D10_SHADER_RESOURCE_VIEW_DESC *pDesc,
-            [out] ID3D10ShaderResourceView **ppSRView);
-        HRESULT CreateRenderTargetView(
-            [in] ID3D10Resource *pResource,
-            [in] const D3D10_RENDER_TARGET_VIEW_DESC *pDesc,
-            [out] ID3D10RenderTargetView **ppRTView);
-        HRESULT CreateDepthStencilView(
-            [in] ID3D10Resource *pResource,
-            [in] const D3D10_DEPTH_STENCIL_VIEW_DESC *pDesc,
-            [out] ID3D10DepthStencilView **ppDepthStencilView);
-        HRESULT CreateInputLayout(
-            [in] const D3D10_INPUT_ELEMENT_DESC *pInputElementDescs,
-            [in] UINT NumElements,
-            [in] const void *pShaderBytecodeWithInputSignature,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10InputLayout **ppInputLayout);
-        HRESULT CreateVertexShader(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10VertexShader **ppVertexShader);
-        HRESULT CreateGeometryShader(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10GeometryShader **ppGeometryShader);
-        HRESULT CreateGeometryShaderWithStreamOutput(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [in] const D3D10_SO_DECLARATION_ENTRY *pSODeclaration,
-            [in] UINT NumEntries,
-            [in] UINT OutputStreamStride,
-            [out] ID3D10GeometryShader **ppGeometryShader);
-        HRESULT CreatePixelShader(
-            [in] const void *pShaderBytecode,
-            [in] SIZE_T BytecodeLength,
-            [out] ID3D10PixelShader **ppPixelShader);
-        HRESULT CreateBlendState(
-            [in] const D3D10_BLEND_DESC *pBlendStateDesc,
-            [out] ID3D10BlendState **ppBlendState);
-        HRESULT CreateDepthStencilState(
-            [in] const D3D10_DEPTH_STENCIL_DESC *pDepthStencilDesc,
-            [out] ID3D10DepthStencilState **ppDepthStencilState);
-        HRESULT CreateRasterizerState(
-            [in] const D3D10_RASTERIZER_DESC *pRasterizerDesc,
-            [out] ID3D10RasterizerState **ppRasterizerState);
-        HRESULT CreateSamplerState(
-            [in] const D3D10_SAMPLER_DESC *pSamplerDesc,
-            [out] ID3D10SamplerState **ppSamplerState);
-        HRESULT CreateQuery(
-            [in] const D3D10_QUERY_DESC *pQueryDesc,
-            [out] ID3D10Query **ppQuery);
-        HRESULT CreatePredicate(
-            [in] const D3D10_QUERY_DESC *pPredicateDesc,
-            [out] ID3D10Predicate **ppPredicate);
-        HRESULT CreateCounter(
-            [in] const D3D10_COUNTER_DESC *pCounterDesc,
-            [out] ID3D10Counter **ppCounter);
-        HRESULT CheckFormatSupport(
-            [in] DXGI_FORMAT Format,
-            [out] UINT *pFormatSupport);
-        HRESULT CheckMultisampleQualityLevels(
-            [in] DXGI_FORMAT Format,
-            [in] UINT SampleCount,
-            [out] UINT *pNumQualityLevels);
-        void CheckCounterInfo(
-            [out] D3D10_COUNTER_INFO *pCounterInfo);
-        HRESULT CheckCounter(
-            [in] const D3D10_COUNTER_DESC *pDesc,
-            [out] D3D10_COUNTER_TYPE *pType,
-            [out] UINT *pActiveCounters,
-            [out] char *name,
-            [in, out] UINT *pNameLength,
-            [out] char *units,
-            [in, out] UINT *pUnitsLength,
-            [out] char *description,
-            [in, out] UINT *pDescriptionLength);
-        UINT GetCreationFlags();
-        HRESULT OpenSharedResource(
-            [in] HANDLE hResource,
-            [in] REFIID ReturnedInterface,
-            [out] void **ppResource);
-        void SetTextFilterSize(
-            [in] UINT Width,
-            [in] UINT Height);
-        void GetTextFilterSize(
-            [out] UINT *pWidth,
-            [out] UINT *pHeight);
-}
-
-[
-    object,
-    local,
-    uuid(9b7e4e00-342c-4106-a19f-4f2704f689f0)
-]
-interface ID3D10Multithread : IUnknown
-{
-        void Enter();
-        void Leave();
-        BOOL SetMultithreadProtected(
-            [in] BOOL bMTProtect);
-        BOOL GetMultithreadProtected();
-}
-
-cpp_quote("#ifndef D3D10_IGNORE_SDK_LAYERS")
-cpp_quote("#include \"d3d10sdklayers.h\"")
-cpp_quote("#endif")
-cpp_quote("#include \"d3d10misc.h\"")
-cpp_quote("#include \"d3d10shader.h\"")
-cpp_quote("#include \"d3d10effect.h\"")
lib/libc/include/any-windows-any/d3d10_1.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d10_1.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d10_1.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d10sdklayers.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d10sdklayers.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d10sdklayers.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d11.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d11.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1105,7 +1105,8 @@ typedef enum D3D11_FEATURE {
     D3D11_FEATURE_D3D11_OPTIONS3 = 15,
     D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 16,
     D3D11_FEATURE_D3D11_OPTIONS4 = 17,
-    D3D11_FEATURE_SHADER_CACHE = 18
+    D3D11_FEATURE_SHADER_CACHE = 18,
+    D3D11_FEATURE_D3D11_OPTIONS5 = 19
 } D3D11_FEATURE;
 typedef struct D3D11_FEATURE_DATA_THREADING {
     WINBOOL DriverConcurrentCreates;
@@ -1213,6 +1214,15 @@ typedef enum D3D11_SHADER_CACHE_SUPPORT_FLAGS {
 typedef struct D3D11_FEATURE_DATA_SHADER_CACHE {
     UINT SupportFlags;
 } D3D11_FEATURE_DATA_SHADER_CACHE;
+typedef enum D3D11_SHARED_RESOURCE_TIER {
+    D3D11_SHARED_RESOURCE_TIER_0 = 0,
+    D3D11_SHARED_RESOURCE_TIER_1 = 1,
+    D3D11_SHARED_RESOURCE_TIER_2 = 2,
+    D3D11_SHARED_RESOURCE_TIER_3 = 3
+} D3D11_SHARED_RESOURCE_TIER;
+typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS5 {
+    D3D11_SHARED_RESOURCE_TIER SharedResourceTier;
+} D3D11_FEATURE_DATA_D3D11_OPTIONS5;
 typedef enum D3D11_FILL_MODE {
     D3D11_FILL_WIREFRAME = 2,
     D3D11_FILL_SOLID = 3
@@ -1329,6 +1339,9 @@ typedef enum D3D11_MAP {
 typedef enum D3D11_MAP_FLAG {
     D3D11_MAP_FLAG_DO_NOT_WAIT = 0x100000
 } D3D11_MAP_FLAG;
+typedef enum D3D11_RAISE_FLAG {
+    D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR = 0x1
+} D3D11_RAISE_FLAG;
 typedef struct D3D11_QUERY_DATA_SO_STATISTICS {
     UINT64 NumPrimitivesWritten;
     UINT64 PrimitivesStorageNeeded;
@@ -1704,6 +1717,20 @@ typedef enum D3D11_FORMAT_SUPPORT {
     D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT = 0x20000000,
     D3D11_FORMAT_SUPPORT_VIDEO_ENCODER = 0x40000000
 } D3D11_FORMAT_SUPPORT;
+typedef enum D3D11_FORMAT_SUPPORT2 {
+    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
+    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x2,
+    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x4,
+    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x8,
+    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x10,
+    D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x20,
+    D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x40,
+    D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x80,
+    D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x100,
+    D3D11_FORMAT_SUPPORT2_TILED = 0x200,
+    D3D11_FORMAT_SUPPORT2_SHAREABLE = 0x400,
+    D3D11_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000
+} D3D11_FORMAT_SUPPORT2;
 typedef enum D3D11_CLEAR_FLAG {
     D3D11_CLEAR_DEPTH = 0x1,
     D3D11_CLEAR_STENCIL = 0x2
lib/libc/include/any-windows-any/d3d11.idl
@@ -1,3916 +0,0 @@
-/*
- * Copyright 2010 Rico Schรผller
- * Copyright 2013 Austin English
- *
- * 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 "dxgi.idl";
-import "d3dcommon.idl";
-
-typedef D3D_PRIMITIVE D3D11_PRIMITIVE;
-typedef D3D_PRIMITIVE_TOPOLOGY D3D11_PRIMITIVE_TOPOLOGY;
-typedef D3D_SRV_DIMENSION D3D11_SRV_DIMENSION;
-typedef RECT D3D11_RECT;
-
-interface ID3D11Device;
-interface ID3D11ClassLinkage;
-interface ID3D11Resource;
-interface ID3D11VideoProcessorInputView;
-
-cpp_quote("#ifndef _D3D11_CONSTANTS")
-cpp_quote("#define _D3D11_CONSTANTS")
-
-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_CS_4_X_BUCKET00_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 256;
-const UINT D3D11_CS_4_X_BUCKET00_MAX_NUM_THREADS_PER_GROUP          = 64;
-const UINT D3D11_CS_4_X_BUCKET01_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 240;
-const UINT D3D11_CS_4_X_BUCKET01_MAX_NUM_THREADS_PER_GROUP          = 68;
-const UINT D3D11_CS_4_X_BUCKET02_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 224;
-const UINT D3D11_CS_4_X_BUCKET02_MAX_NUM_THREADS_PER_GROUP          = 72;
-const UINT D3D11_CS_4_X_BUCKET03_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 208;
-const UINT D3D11_CS_4_X_BUCKET03_MAX_NUM_THREADS_PER_GROUP          = 76;
-const UINT D3D11_CS_4_X_BUCKET04_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 192;
-const UINT D3D11_CS_4_X_BUCKET04_MAX_NUM_THREADS_PER_GROUP          = 84;
-const UINT D3D11_CS_4_X_BUCKET05_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 176;
-const UINT D3D11_CS_4_X_BUCKET05_MAX_NUM_THREADS_PER_GROUP          = 92;
-const UINT D3D11_CS_4_X_BUCKET06_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 160;
-const UINT D3D11_CS_4_X_BUCKET06_MAX_NUM_THREADS_PER_GROUP          = 100;
-const UINT D3D11_CS_4_X_BUCKET07_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 144;
-const UINT D3D11_CS_4_X_BUCKET07_MAX_NUM_THREADS_PER_GROUP          = 112;
-const UINT D3D11_CS_4_X_BUCKET08_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 128;
-const UINT D3D11_CS_4_X_BUCKET08_MAX_NUM_THREADS_PER_GROUP          = 128;
-const UINT D3D11_CS_4_X_BUCKET09_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 112;
-const UINT D3D11_CS_4_X_BUCKET09_MAX_NUM_THREADS_PER_GROUP          = 144;
-const UINT D3D11_CS_4_X_BUCKET10_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 96;
-const UINT D3D11_CS_4_X_BUCKET10_MAX_NUM_THREADS_PER_GROUP          = 168;
-const UINT D3D11_CS_4_X_BUCKET11_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 80;
-const UINT D3D11_CS_4_X_BUCKET11_MAX_NUM_THREADS_PER_GROUP          = 204;
-const UINT D3D11_CS_4_X_BUCKET12_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 64;
-const UINT D3D11_CS_4_X_BUCKET12_MAX_NUM_THREADS_PER_GROUP          = 256;
-const UINT D3D11_CS_4_X_BUCKET13_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 48;
-const UINT D3D11_CS_4_X_BUCKET13_MAX_NUM_THREADS_PER_GROUP          = 340;
-const UINT D3D11_CS_4_X_BUCKET14_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 32;
-const UINT D3D11_CS_4_X_BUCKET14_MAX_NUM_THREADS_PER_GROUP          = 512;
-const UINT D3D11_CS_4_X_BUCKET15_MAX_BYTES_TGSM_WRITABLE_PER_THREAD = 16;
-const UINT D3D11_CS_4_X_BUCKET15_MAX_NUM_THREADS_PER_GROUP          = 768;
-const UINT D3D11_CS_4_X_DISPATCH_MAX_THREAD_GROUPS_IN_Z_DIMENSION   = 1;
-const UINT D3D11_CS_4_X_RAW_UAV_BYTE_ALIGNMENT                      = 256;
-const UINT D3D11_CS_4_X_THREAD_GROUP_MAX_THREADS_PER_GROUP          = 768;
-const UINT D3D11_CS_4_X_THREAD_GROUP_MAX_X                          = 768;
-const UINT D3D11_CS_4_X_THREAD_GROUP_MAX_Y                          = 768;
-const UINT D3D11_CS_4_X_UAV_REGISTER_COUNT                          = 1;
-const UINT D3D11_CS_DISPATCH_MAX_THREAD_GROUPS_PER_DIMENSION        = 65535;
-const UINT D3D11_CS_TGSM_REGISTER_COUNT                             = 8192;
-const UINT D3D11_CS_TGSM_REGISTER_READS_PER_INST                    = 1;
-const UINT D3D11_CS_TGSM_RESOURCE_REGISTER_COMPONENTS               = 1;
-const UINT D3D11_CS_TGSM_RESOURCE_REGISTER_READ_PORTS               = 1;
-const UINT D3D11_CS_THREAD_GROUP_MAX_THREADS_PER_GROUP              = 1024;
-const UINT D3D11_CS_THREAD_GROUP_MAX_X                              = 1024;
-const UINT D3D11_CS_THREAD_GROUP_MAX_Y                              = 1024;
-const UINT D3D11_CS_THREAD_GROUP_MAX_Z                              = 64;
-const UINT D3D11_CS_THREAD_GROUP_MIN_X                              = 1;
-const UINT D3D11_CS_THREAD_GROUP_MIN_Y                              = 1;
-const UINT D3D11_CS_THREAD_GROUP_MIN_Z                              = 1;
-const UINT D3D11_CS_THREAD_LOCAL_TEMP_REGISTER_POOL                 = 16384;
-
-const UINT D3D11_DEFAULT_DEPTH_BIAS          = 0;
-cpp_quote("#define D3D11_DEFAULT_DEPTH_BIAS_CLAMP 0.0f")
-const UINT D3D11_DEFAULT_MAX_ANISOTROPY      = 16;
-cpp_quote("#define D3D11_DEFAULT_MIP_LOD_BIAS 0.0f")
-const UINT D3D11_DEFAULT_RENDER_TARGET_ARRAY_INDEX = 0;
-const UINT D3D11_DEFAULT_SAMPLE_MASK         = 0xffffffff;
-const UINT D3D11_DEFAULT_SCISSOR_ENDX        = 0;
-const UINT D3D11_DEFAULT_SCISSOR_ENDY        = 0;
-const UINT D3D11_DEFAULT_SCISSOR_STARTX      = 0;
-const UINT D3D11_DEFAULT_SCISSOR_STARTY      = 0;
-cpp_quote("#define D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS 0.0f")
-const UINT D3D11_DEFAULT_STENCIL_READ_MASK   = 0xff;
-const UINT D3D11_DEFAULT_STENCIL_REFERENCE   = 0;
-const UINT D3D11_DEFAULT_STENCIL_WRITE_MASK  = 0xff;
-const UINT D3D11_DEFAULT_VIEWPORT_AND_SCISSORRECT_INDEX = 0;
-const UINT D3D11_DEFAULT_VIEWPORT_HEIGHT     = 0;
-cpp_quote("#define D3D11_DEFAULT_VIEWPORT_MAX_DEPTH 0.0f")
-cpp_quote("#define D3D11_DEFAULT_VIEWPORT_MIN_DEPTH 0.0f")
-const UINT D3D11_DEFAULT_VIEWPORT_TOPLEFTX   = 0;
-const UINT D3D11_DEFAULT_VIEWPORT_TOPLEFTY   = 0;
-const UINT D3D11_DEFAULT_VIEWPORT_WIDTH      = 0;
-
-cpp_quote("#define D3D11_FLOAT32_MAX         (3.402823466e+38f)")
-
-const UINT D3D11_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32;
-
-const unsigned int D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT = 8;
-
-const UINT D3D11_MAX_MAXANISOTROPY           = 16;
-const UINT D3D11_MAX_MULTISAMPLE_SAMPLE_COUNT = 32;
-const UINT D3D11_VIEWPORT_BOUNDS_MAX         = 32767;
-const INT D3D11_VIEWPORT_BOUNDS_MIN          = -32768;
-const UINT D3D11_VIEWPORT_AND_SCISSORRECT_MAX_INDEX = 15;
-const UINT D3D11_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16;
-
-const UINT D3D11_KEEP_RENDER_TARGETS_AND_DEPTH_STENCIL = 0xffffffff;
-const UINT D3D11_KEEP_UNORDERED_ACCESS_VIEWS           = 0xffffffff;
-
-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_VS_OUTPUT_REGISTER_COUNT    = 32;
-
-const UINT D3D11_OMAC_SIZE = 16;
-
-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_SHIFT_INSTRUCTION_PAD_VALUE           = 0;
-const UINT D3D11_SHIFT_INSTRUCTION_SHIFT_VALUE_BIT_COUNT = 5;
-
-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;
-
-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("#endif")
-
-cpp_quote("#ifndef _D3D11_1_CONSTANTS")
-cpp_quote("#define _D3D11_1_CONSTANTS")
-const UINT D3D11_1_UAV_SLOT_COUNT = 64;
-cpp_quote("#endif")
-
-cpp_quote("#ifndef _D3D11_2_CONSTANTS")
-cpp_quote("#define _D3D11_2_CONSTANTS")
-const UINT D3D11_2_TILED_RESOURCE_TILE_SIZE_IN_BYTES = 0x10000;
-cpp_quote("#endif")
-
-cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D11_DEFAULT {};")
-cpp_quote("extern const DECLSPEC_SELECTANY CD3D11_DEFAULT D3D11_DEFAULT;")
-cpp_quote("#endif")
-
-typedef enum D3D11_BLEND
-{
-    D3D11_BLEND_ZERO = 1,
-    D3D11_BLEND_ONE = 2,
-    D3D11_BLEND_SRC_COLOR = 3,
-    D3D11_BLEND_INV_SRC_COLOR = 4,
-    D3D11_BLEND_SRC_ALPHA = 5,
-    D3D11_BLEND_INV_SRC_ALPHA = 6,
-    D3D11_BLEND_DEST_ALPHA = 7,
-    D3D11_BLEND_INV_DEST_ALPHA = 8,
-    D3D11_BLEND_DEST_COLOR = 9,
-    D3D11_BLEND_INV_DEST_COLOR = 10,
-    D3D11_BLEND_SRC_ALPHA_SAT = 11,
-    D3D11_BLEND_BLEND_FACTOR = 14,
-    D3D11_BLEND_INV_BLEND_FACTOR = 15,
-    D3D11_BLEND_SRC1_COLOR = 16,
-    D3D11_BLEND_INV_SRC1_COLOR = 17,
-    D3D11_BLEND_SRC1_ALPHA = 18,
-    D3D11_BLEND_INV_SRC1_ALPHA = 19,
-} D3D11_BLEND;
-
-typedef enum D3D11_BLEND_OP
-{
-    D3D11_BLEND_OP_ADD = 1,
-    D3D11_BLEND_OP_SUBTRACT,
-    D3D11_BLEND_OP_REV_SUBTRACT,
-    D3D11_BLEND_OP_MIN,
-    D3D11_BLEND_OP_MAX
-} D3D11_BLEND_OP;
-
-typedef enum D3D11_VIDEO_DECODER_BUFFER_TYPE
-{
-    D3D11_VIDEO_DECODER_BUFFER_PICTURE_PARAMETERS = 0,
-    D3D11_VIDEO_DECODER_BUFFER_MACROBLOCK_CONTROL = 1,
-    D3D11_VIDEO_DECODER_BUFFER_RESIDUAL_DIFFERENCE = 2,
-    D3D11_VIDEO_DECODER_BUFFER_DEBLOCKING_CONTROL = 3,
-    D3D11_VIDEO_DECODER_BUFFER_INVERSE_QUANTIZATION_MATRIX = 4,
-    D3D11_VIDEO_DECODER_BUFFER_SLICE_CONTROL = 5,
-    D3D11_VIDEO_DECODER_BUFFER_BITSTREAM = 6,
-    D3D11_VIDEO_DECODER_BUFFER_MOTION_VECTOR = 7,
-    D3D11_VIDEO_DECODER_BUFFER_FILM_GRAIN = 8,
-} D3D11_VIDEO_DECODER_BUFFER_TYPE;
-
-typedef enum D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE
-{
-    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_OPAQUE = 0,
-    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_BACKGROUND = 1,
-    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_DESTINATION = 2,
-    D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE_SOURCE_STREAM = 3,
-} D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE;
-
-typedef enum D3D11_VIDEO_PROCESSOR_OUTPUT_RATE
-{
-    D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_NORMAL = 0,
-    D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_HALF = 1,
-    D3D11_VIDEO_PROCESSOR_OUTPUT_RATE_CUSTOM = 2,
-} D3D11_VIDEO_PROCESSOR_OUTPUT_RATE;
-
-typedef enum D3D11_VIDEO_PROCESSOR_STEREO_FORMAT
-{
-    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO = 0,
-    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_HORIZONTAL = 1,
-    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_VERTICAL = 2,
-    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_SEPARATE = 3,
-    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_MONO_OFFSET = 4,
-    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_ROW_INTERLEAVED = 5,
-    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_COLUMN_INTERLEAVED = 6,
-    D3D11_VIDEO_PROCESSOR_STEREO_FORMAT_CHECKERBOARD = 7,
-} D3D11_VIDEO_PROCESSOR_STEREO_FORMAT;
-
-typedef enum D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE
-{
-    D3D11_VIDEO_PROCESSOR_STEREO_FLIP_NONE = 0,
-    D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME0 = 1,
-    D3D11_VIDEO_PROCESSOR_STEREO_FLIP_FRAME1 = 2,
-} D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE;
-
-typedef enum D3D11_VIDEO_PROCESSOR_ROTATION
-{
-    D3D11_VIDEO_PROCESSOR_ROTATION_IDENTITY = 0,
-    D3D11_VIDEO_PROCESSOR_ROTATION_90 = 1,
-    D3D11_VIDEO_PROCESSOR_ROTATION_180 = 2,
-    D3D11_VIDEO_PROCESSOR_ROTATION_270 = 3,
-} D3D11_VIDEO_PROCESSOR_ROTATION;
-
-typedef enum D3D11_VIDEO_PROCESSOR_DEVICE_CAPS
-{
-    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_LINEAR_SPACE                          = 0x00000001,
-    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_xvYCC                                 = 0x00000002,
-    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_RGB_RANGE_CONVERSION                  = 0x00000004,
-    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION               = 0x00000008,
-    D3D11_VIDEO_PROCESSOR_DEVICE_CAPS_NOMINAL_RANGE                         = 0x00000010,
-} D3D11_VIDEO_PROCESSOR_DEVICE_CAPS;
-
-typedef enum D3D11_VIDEO_PROCESSOR_FEATURE_CAPS
-{
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_FILL                           = 0x00000001,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION                         = 0x00000002,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LUMA_KEY                             = 0x00000004,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_PALETTE                        = 0x00000008,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_LEGACY                               = 0x00000010,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_STEREO                               = 0x00000020,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION                             = 0x00000040,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_ALPHA_STREAM                         = 0x00000080,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_PIXEL_ASPECT_RATIO                   = 0x00000100,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_MIRROR                               = 0x00000200,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_SHADER_USAGE                         = 0x00000400,
-    D3D11_VIDEO_PROCESSOR_FEATURE_CAPS_METADATA_HDR10                       = 0x00000800,
-} D3D11_VIDEO_PROCESSOR_FEATURE_CAPS;
-
-typedef enum D3D11_VIDEO_PROCESSOR_FILTER_CAPS
-{
-    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_BRIGHTNESS                            = 0x00000001,
-    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_CONTRAST                              = 0x00000002,
-    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_HUE                                   = 0x00000004,
-    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_SATURATION                            = 0x00000008,
-    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_NOISE_REDUCTION                       = 0x00000010,
-    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_EDGE_ENHANCEMENT                      = 0x00000020,
-    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_ANAMORPHIC_SCALING                    = 0x00000040,
-    D3D11_VIDEO_PROCESSOR_FILTER_CAPS_STEREO_ADJUSTMENT                     = 0x00000080,
-} D3D11_VIDEO_PROCESSOR_FILTER_CAPS;
-
-typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_CAPS
-{
-    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_INTERLACED                        = 0x00000001,
-    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_PROCAMP                           = 0x00000002,
-    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_RGB_LUMA_KEY                          = 0x00000004,
-    D3D11_VIDEO_PROCESSOR_FORMAT_CAPS_PALETTE_INTERLACED                    = 0x00000008,
-} D3D11_VIDEO_PROCESSOR_FORMAT_CAPS;
-
-typedef enum D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS
-{
-    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DENOISE                          = 0x00000001,
-    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_DERINGING                        = 0x00000002,
-    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_EDGE_ENHANCEMENT                 = 0x00000004,
-    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_COLOR_CORRECTION                 = 0x00000008,
-    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_FLESH_TONE_MAPPING               = 0x00000010,
-    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_IMAGE_STABILIZATION              = 0x00000020,
-    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_SUPER_RESOLUTION                 = 0x00000040,
-    D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS_ANAMORPHIC_SCALING               = 0x00000080,
-} D3D11_VIDEO_PROCESSOR_AUTO_STREAM_CAPS;
-
-typedef enum D3D11_VIDEO_PROCESSOR_STEREO_CAPS
-{
-    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_MONO_OFFSET                           = 0x00000001,
-    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_ROW_INTERLEAVED                       = 0x00000002,
-    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_COLUMN_INTERLEAVED                    = 0x00000004,
-    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_CHECKERBOARD                          = 0x00000008,
-    D3D11_VIDEO_PROCESSOR_STEREO_CAPS_FLIP_MODE                             = 0x00000010,
-} D3D11_VIDEO_PROCESSOR_STEREO_CAPS;
-
-typedef enum D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS
-{
-    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BLEND                  = 0x01,
-    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB                    = 0x02,
-    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE               = 0x04,
-    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION    = 0x08,
-    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_INVERSE_TELECINE                   = 0x10,
-    D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS_FRAME_RATE_CONVERSION              = 0x20,
-} D3D11_VIDEO_PROCESSOR_PROCESSOR_CAPS;
-
-typedef enum D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS
-{
-    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32                                 = 0x00000001,
-    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_22                                 = 0x00000002,
-    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2224                               = 0x00000004,
-    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_2332                               = 0x00000008,
-    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_32322                              = 0x00000010,
-    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_55                                 = 0x00000020,
-    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_64                                 = 0x00000040,
-    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_87                                 = 0x00000080,
-    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_222222222223                       = 0x00000100,
-    D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS_OTHER                              = 0x80000000,
-} D3D11_VIDEO_PROCESSOR_ITELECINE_CAPS;
-
-typedef enum D3D11_CONTENT_PROTECTION_CAPS
-{
-    D3D11_CONTENT_PROTECTION_CAPS_SOFTWARE                                  = 0x00000001,
-    D3D11_CONTENT_PROTECTION_CAPS_HARDWARE                                  = 0x00000002,
-    D3D11_CONTENT_PROTECTION_CAPS_PROTECTION_ALWAYS_ON                      = 0x00000004,
-    D3D11_CONTENT_PROTECTION_CAPS_PARTIAL_DECRYPTION                        = 0x00000008,
-    D3D11_CONTENT_PROTECTION_CAPS_CONTENT_KEY                               = 0x00000010,
-    D3D11_CONTENT_PROTECTION_CAPS_FRESHEN_SESSION_KEY                       = 0x00000020,
-    D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK                       = 0x00000040,
-    D3D11_CONTENT_PROTECTION_CAPS_ENCRYPTED_READ_BACK_KEY                   = 0x00000080,
-    D3D11_CONTENT_PROTECTION_CAPS_SEQUENTIAL_CTR_IV                         = 0x00000100,
-    D3D11_CONTENT_PROTECTION_CAPS_ENCRYPT_SLICEDATA_ONLY                    = 0x00000200,
-    D3D11_CONTENT_PROTECTION_CAPS_DECRYPTION_BLT                            = 0x00000400,
-    D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECT_UNCOMPRESSED             = 0x00000800,
-    D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_PROTECTED_MEMORY_PAGEABLE        = 0x00001000,
-    D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_TEARDOWN                         = 0x00002000,
-    D3D11_CONTENT_PROTECTION_CAPS_HARDWARE_DRM_COMMUNICATION                = 0x00004000,
-} D3D11_CONTENT_PROTECTION_CAPS;
-
-typedef enum D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE
-{
-    D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_UNDEFINED                           = 0x00000000,
-    D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_16_235                              = 0x00000001,
-    D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE_0_255                               = 0x00000002,
-} D3D11_VIDEO_PROCESSOR_NOMINAL_RANGE;
-
-typedef enum D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE
-{
-    D3D11_PROCESSIDTYPE_UNKNOWN                                             = 0x00000000,
-    D3D11_PROCESSIDTYPE_DWM                                                 = 0x00000001,
-    D3D11_PROCESSIDTYPE_HANDLE                                              = 0x00000002,
-} D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE;
-
-typedef enum D3D11_BUS_TYPE
-{
-    D3D11_BUS_TYPE_OTHER                                                    = 0x00000000,
-    D3D11_BUS_TYPE_PCI                                                      = 0x00000001,
-    D3D11_BUS_TYPE_PCIX                                                     = 0x00000002,
-    D3D11_BUS_TYPE_PCIEXPRESS                                               = 0x00000003,
-    D3D11_BUS_TYPE_AGP                                                      = 0x00000004,
-    D3D11_BUS_IMPL_MODIFIER_INSIDE_OF_CHIPSET                               = 0x00010000,
-    D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_CHIP                  = 0x00020000,
-    D3D11_BUS_IMPL_MODIFIER_TRACKS_ON_MOTHER_BOARD_TO_SOCKET                = 0x00030000,
-    D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR                        = 0x00040000,
-    D3D11_BUS_IMPL_MODIFIER_DAUGHTER_BOARD_CONNECTOR_INSIDE_OF_NUAE         = 0x00050000,
-    D3D11_BUS_IMPL_MODIFIER_NON_STANDARD                                    = 0x80000000,
-} D3D11_BUS_TYPE;
-
-typedef struct D3D11_BOX
-{
-    UINT left;
-    UINT top;
-    UINT front;
-    UINT right;
-    UINT bottom;
-    UINT back;
-} D3D11_BOX;
-
-typedef struct D3D11_BUFFER_RTV
-{
-    union
-    {
-        UINT FirstElement;
-        UINT ElementOffset;
-    };
-    union
-    {
-        UINT NumElements;
-        UINT ElementWidth;
-    };
-} D3D11_BUFFER_RTV;
-
-typedef struct D3D11_BUFFER_SRV
-{
-    union
-    {
-        UINT FirstElement;
-        UINT ElementOffset;
-    };
-    union
-    {
-        UINT NumElements;
-        UINT ElementWidth;
-    };
-} D3D11_BUFFER_SRV;
-
-typedef struct D3D11_BUFFER_UAV
-{
-    UINT FirstElement;
-    UINT NumElements;
-    UINT Flags;
-} D3D11_BUFFER_UAV;
-
-typedef struct D3D11_BUFFEREX_SRV
-{
-    UINT FirstElement;
-    UINT NumElements;
-    UINT Flags;
-} D3D11_BUFFEREX_SRV;
-
-typedef struct D3D11_CLASS_INSTANCE_DESC
-{
-    UINT InstanceId;
-    UINT InstanceIndex;
-    UINT TypeId;
-    UINT ConstantBuffer;
-    UINT BaseConstantBufferOffset;
-    UINT BaseTexture;
-    UINT BaseSampler;
-    BOOL Created;
-} D3D11_CLASS_INSTANCE_DESC;
-
-typedef enum D3D11_COMPARISON_FUNC
-{
-    D3D11_COMPARISON_NEVER = 1,
-    D3D11_COMPARISON_LESS,
-    D3D11_COMPARISON_EQUAL,
-    D3D11_COMPARISON_LESS_EQUAL,
-    D3D11_COMPARISON_GREATER,
-    D3D11_COMPARISON_NOT_EQUAL,
-    D3D11_COMPARISON_GREATER_EQUAL,
-    D3D11_COMPARISON_ALWAYS
-} D3D11_COMPARISON_FUNC;
-
-typedef enum D3D11_COUNTER
-{
-    D3D11_COUNTER_DEVICE_DEPENDENT_0 = 0x40000000,
-} D3D11_COUNTER;
-
-typedef struct D3D11_COUNTER_DESC
-{
-    D3D11_COUNTER Counter;
-    UINT MiscFlags;
-} D3D11_COUNTER_DESC;
-
-typedef struct D3D11_COUNTER_INFO
-{
-    D3D11_COUNTER LastDeviceDependentCounter;
-    UINT NumSimultaneousCounters;
-    UINT8 NumDetectableParallelUnits;
-} D3D11_COUNTER_INFO;
-
-typedef enum D3D11_COUNTER_TYPE
-{
-    D3D11_COUNTER_TYPE_FLOAT32,
-    D3D11_COUNTER_TYPE_UINT16,
-    D3D11_COUNTER_TYPE_UINT32,
-    D3D11_COUNTER_TYPE_UINT64,
-} D3D11_COUNTER_TYPE;
-
-typedef enum D3D11_CULL_MODE
-{
-    D3D11_CULL_NONE = 1,
-    D3D11_CULL_FRONT,
-    D3D11_CULL_BACK
-} D3D11_CULL_MODE;
-
-typedef enum D3D11_DEPTH_WRITE_MASK
-{
-    D3D11_DEPTH_WRITE_MASK_ZERO,
-    D3D11_DEPTH_WRITE_MASK_ALL,
-} D3D11_DEPTH_WRITE_MASK;
-
-typedef enum D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS
-{
-    D3D11_STANDARD_MULTISAMPLE_PATTERN = 0xffffffff,
-    D3D11_CENTER_MULTISAMPLE_PATTERN = 0xfffffffe,
-} D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS;
-
-typedef enum D3D11_DEVICE_CONTEXT_TYPE
-{
-    D3D11_DEVICE_CONTEXT_IMMEDIATE,
-    D3D11_DEVICE_CONTEXT_DEFERRED,
-} D3D11_DEVICE_CONTEXT_TYPE;
-
-typedef enum D3D11_DSV_DIMENSION
-{
-    D3D11_DSV_DIMENSION_UNKNOWN,
-    D3D11_DSV_DIMENSION_TEXTURE1D,
-    D3D11_DSV_DIMENSION_TEXTURE1DARRAY,
-    D3D11_DSV_DIMENSION_TEXTURE2D,
-    D3D11_DSV_DIMENSION_TEXTURE2DARRAY,
-    D3D11_DSV_DIMENSION_TEXTURE2DMS,
-    D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY,
-} D3D11_DSV_DIMENSION;
-
-typedef enum D3D11_FEATURE
-{
-    D3D11_FEATURE_THREADING,
-    D3D11_FEATURE_DOUBLES,
-    D3D11_FEATURE_FORMAT_SUPPORT,
-    D3D11_FEATURE_FORMAT_SUPPORT2,
-    D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS,
-    D3D11_FEATURE_D3D11_OPTIONS,
-    D3D11_FEATURE_ARCHITECTURE_INFO,
-    D3D11_FEATURE_D3D9_OPTIONS,
-    D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT,
-    D3D11_FEATURE_D3D9_SHADOW_SUPPORT,
-    D3D11_FEATURE_D3D11_OPTIONS1,
-    D3D11_FEATURE_D3D9_SIMPLE_INSTANCING_SUPPORT,
-    D3D11_FEATURE_MARKER_SUPPORT,
-    D3D11_FEATURE_D3D9_OPTIONS1,
-    D3D11_FEATURE_D3D11_OPTIONS2,
-    D3D11_FEATURE_D3D11_OPTIONS3,
-    D3D11_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT,
-    D3D11_FEATURE_D3D11_OPTIONS4,
-    D3D11_FEATURE_SHADER_CACHE,
-} D3D11_FEATURE;
-
-typedef struct D3D11_FEATURE_DATA_THREADING
-{
-    BOOL DriverConcurrentCreates;
-    BOOL DriverCommandLists;
-} D3D11_FEATURE_DATA_THREADING;
-
-typedef struct D3D11_FEATURE_DATA_DOUBLES
-{
-    BOOL DoublePrecisionFloatShaderOps;
-} D3D11_FEATURE_DATA_DOUBLES;
-
-typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT
-{
-    DXGI_FORMAT InFormat;
-    UINT OutFormatSupport;
-} D3D11_FEATURE_DATA_FORMAT_SUPPORT;
-
-typedef struct D3D11_FEATURE_DATA_FORMAT_SUPPORT2
-{
-    DXGI_FORMAT InFormat;
-    UINT OutFormatSupport2;
-} D3D11_FEATURE_DATA_FORMAT_SUPPORT2;
-
-typedef struct D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS
-{
-    BOOL ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x;
-} D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS;
-
-typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS
-{
-    BOOL OutputMergerLogicOp;
-    BOOL UAVOnlyRenderingForcedSampleCount;
-    BOOL DiscardAPIsSeenByDriver;
-    BOOL FlagsForUpdateAndCopySeenByDriver;
-    BOOL ClearView;
-    BOOL CopyWithOverlap;
-    BOOL ConstantBufferPartialUpdate;
-    BOOL ConstantBufferOffsetting;
-    BOOL MapNoOverwriteOnDynamicConstantBuffer;
-    BOOL MapNoOverwriteOnDynamicBufferSRV;
-    BOOL MultisampleRTVWithForcedSampleCountOne;
-    BOOL SAD4ShaderInstructions;
-    BOOL ExtendedDoublesShaderInstructions;
-    BOOL ExtendedResourceSharing;
-} D3D11_FEATURE_DATA_D3D11_OPTIONS;
-
-typedef struct D3D11_FEATURE_DATA_ARCHITECTURE_INFO
-{
-    BOOL TileBasedDeferredRenderer;
-} D3D11_FEATURE_DATA_ARCHITECTURE_INFO;
-
-typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS
-{
-    BOOL FullNonPow2TextureSupport;
-} D3D11_FEATURE_DATA_D3D9_OPTIONS;
-
-typedef struct D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT
-{
-    BOOL SupportsDepthAsTextureWithLessEqualComparisonFilter;
-} D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT;
-
-typedef enum D3D11_SHADER_MIN_PRECISION_SUPPORT
-{
-    D3D11_SHADER_MIN_PRECISION_10_BIT = 0x1,
-    D3D11_SHADER_MIN_PRECISION_16_BIT = 0x2,
-} D3D11_SHADER_MIN_PRECISION_SUPPORT;
-
-typedef struct D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT
-{
-    UINT PixelShaderMinPrecision;
-    UINT AllOtherShaderStagesMinPrecision;
-} D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT;
-
-typedef enum D3D11_TILED_RESOURCES_TIER
-{
-    D3D11_TILED_RESOURCES_NOT_SUPPORTED = 0x0,
-    D3D11_TILED_RESOURCES_TIER_1 = 0x1,
-    D3D11_TILED_RESOURCES_TIER_2 = 0x2,
-    D3D11_TILED_RESOURCES_TIER_3 = 0x3,
-} D3D11_TILED_RESOURCES_TIER;
-
-typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS1
-{
-    D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
-    BOOL MinMaxFiltering;
-    BOOL ClearViewAlsoSupportsDepthOnlyFormats;
-    BOOL MapOnDefaultBuffers;
-} D3D11_FEATURE_DATA_D3D11_OPTIONS1;
-
-typedef struct D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT
-{
-    BOOL SimpleInstancingSupported;
-} D3D11_FEATURE_DATA_D3D9_SIMPLE_INSTANCING_SUPPORT;
-
-typedef struct D3D11_FEATURE_DATA_MARKER_SUPPORT
-{
-    BOOL Profile;
-} D3D11_FEATURE_DATA_MARKER_SUPPORT;
-
-typedef struct D3D11_FEATURE_DATA_D3D9_OPTIONS1
-{
-    BOOL FullNonPow2TextureSupported;
-    BOOL DepthAsTextureWithLessEqualComparisonFilterSupported;
-    BOOL SimpleInstancingSupported;
-    BOOL TextureCubeFaceRenderTargetWithNonCubeDepthStencilSupported;
-} D3D11_FEATURE_DATA_D3D9_OPTIONS1;
-
-typedef enum D3D11_CONSERVATIVE_RASTERIZATION_TIER
-{
-    D3D11_CONSERVATIVE_RASTERIZATION_NOT_SUPPORTED = 0x0,
-    D3D11_CONSERVATIVE_RASTERIZATION_TIER_1 = 0x1,
-    D3D11_CONSERVATIVE_RASTERIZATION_TIER_2 = 0x2,
-    D3D11_CONSERVATIVE_RASTERIZATION_TIER_3 = 0x3,
-} D3D11_CONSERVATIVE_RASTERIZATION_TIER;
-
-typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS2
-{
-    BOOL PSSpecifiedStencilRefSupported;
-    BOOL TypedUAVLoadAdditionalFormats;
-    BOOL ROVsSupported;
-    D3D11_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
-    D3D11_TILED_RESOURCES_TIER TiledResourcesTier;
-    BOOL MapOnDefaultTextures;
-    BOOL StandardSwizzle;
-    BOOL UnifiedMemoryArchitecture;
-} D3D11_FEATURE_DATA_D3D11_OPTIONS2;
-
-typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS3
-{
-    BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizer;
-} D3D11_FEATURE_DATA_D3D11_OPTIONS3;
-
-typedef struct D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT
-{
-    UINT MaxGPUVirtualAddressBitsPerResource;
-    UINT MaxGPUVirtualAddressBitsPerProcess;
-} D3D11_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
-
-typedef enum D3D11_SHADER_CACHE_SUPPORT_FLAGS
-{
-    D3D11_SHADER_CACHE_SUPPORT_NONE = 0x0,
-    D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x1,
-    D3D11_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x2,
-} D3D11_SHADER_CACHE_SUPPORT_FLAGS;
-
-typedef struct D3D11_FEATURE_DATA_SHADER_CACHE
-{
-    UINT SupportFlags;
-} D3D11_FEATURE_DATA_SHADER_CACHE;
-
-typedef enum D3D11_FILL_MODE
-{
-    D3D11_FILL_WIREFRAME = 2,
-    D3D11_FILL_SOLID
-} D3D11_FILL_MODE;
-
-typedef enum D3D11_FILTER_TYPE
-{
-    D3D11_FILTER_TYPE_POINT  = 0,
-    D3D11_FILTER_TYPE_LINEAR = 1
-} D3D11_FILTER_TYPE;
-
-const UINT D3D11_MIN_FILTER_SHIFT = 4;
-const UINT D3D11_MAG_FILTER_SHIFT = 2;
-const UINT D3D11_MIP_FILTER_SHIFT = 0;
-const UINT D3D11_FILTER_TYPE_MASK          = 0x00000003;
-const UINT D3D11_COMPARISON_FILTERING_BIT  = 0x00000080;
-const UINT D3D11_ANISOTROPIC_FILTERING_BIT = 0x00000040;
-
-cpp_quote("#define D3D11_ENCODE_BASIC_FILTER(min, mag, mip, bComparison) \\")
-cpp_quote("    ((D3D11_FILTER)(((bComparison) ? D3D11_COMPARISON_FILTERING_BIT : 0 ) | \\")
-cpp_quote("                    (((min)&D3D11_FILTER_TYPE_MASK) << D3D11_MIN_FILTER_SHIFT) | \\")
-cpp_quote("                    (((mag)&D3D11_FILTER_TYPE_MASK) << D3D11_MAG_FILTER_SHIFT) | \\")
-cpp_quote("                    (((mip)&D3D11_FILTER_TYPE_MASK) << D3D11_MIP_FILTER_SHIFT)))")
-
-cpp_quote("#define D3D11_ENCODE_ANISOTROPIC_FILTER(bComparison) \\")
-cpp_quote("    ((D3D11_FILTER)(D3D11_ANISOTROPIC_FILTERING_BIT | \\" )
-cpp_quote("                    D3D11_ENCODE_BASIC_FILTER(D3D11_FILTER_TYPE_LINEAR,D3D11_FILTER_TYPE_LINEAR, \\" )
-cpp_quote("                                              D3D11_FILTER_TYPE_LINEAR,bComparison)))" )
-
-cpp_quote("#define D3D11_DECODE_MIN_FILTER(d3d11Filter) \\")
-cpp_quote("    ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MIN_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))")
-
-cpp_quote("#define D3D11_DECODE_MAG_FILTER(d3d11Filter) \\")
-cpp_quote("    ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MAG_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))")
-
-cpp_quote("#define D3D11_DECODE_MIP_FILTER(d3d11Filter) \\")
-cpp_quote("    ((D3D11_FILTER_TYPE)(((d3d11Filter) >> D3D11_MIP_FILTER_SHIFT) & D3D11_FILTER_TYPE_MASK))")
-
-cpp_quote("#define D3D11_DECODE_IS_COMPARISON_FILTER(d3d11Filter) ((d3d11Filter) & D3D11_COMPARISON_FILTERING_BIT)")
-
-cpp_quote("#define D3D11_DECODE_IS_ANISOTROPIC_FILTER(d3d11Filter) \\")
-cpp_quote("    (((d3d11Filter) & D3D11_ANISOTROPIC_FILTERING_BIT ) \\" )
-cpp_quote("     && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIN_FILTER(d3d11Filter)) \\" )
-cpp_quote("     && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MAG_FILTER(d3d11Filter)) \\" )
-cpp_quote("     && (D3D11_FILTER_TYPE_LINEAR == D3D11_DECODE_MIP_FILTER(d3d11Filter)))")
-
-typedef enum D3D11_FILTER
-{
-    D3D11_FILTER_MIN_MAG_MIP_POINT = 0x00,
-    D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x01,
-    D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x04,
-    D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x05,
-    D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
-    D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
-    D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
-    D3D11_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
-    D3D11_FILTER_ANISOTROPIC = 0x55,
-    D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
-    D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
-    D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
-    D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
-    D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
-    D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
-    D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
-    D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
-    D3D11_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
-    D3D11_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
-    D3D11_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
-    D3D11_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
-    D3D11_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
-    D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
-    D3D11_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
-    D3D11_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
-    D3D11_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
-    D3D11_FILTER_MINIMUM_ANISOTROPIC = 0x155,
-    D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
-    D3D11_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
-    D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
-    D3D11_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
-    D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
-    D3D11_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
-    D3D11_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
-    D3D11_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
-    D3D11_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5
-} D3D11_FILTER;
-
-typedef enum D3D11_DSV_FLAG
-{
-    D3D11_DSV_READ_ONLY_DEPTH = 0x1,
-    D3D11_DSV_READ_ONLY_STENCIL = 0x2,
-} D3D11_DSV_FLAG;
-
-typedef enum D3D11_BUFFEREX_SRV_FLAG
-{
-    D3D11_BUFFEREX_SRV_FLAG_RAW = 0x1,
-} D3D11_BUFFEREX_SRV_FLAG;
-
-typedef enum D3D11_UAV_FLAG
-{
-    D3D11_BUFFER_UAV_FLAG_RAW     = 0x1,
-    D3D11_BUFFER_UAV_FLAG_APPEND  = 0x2,
-    D3D11_BUFFER_UAV_FLAG_COUNTER = 0x4,
-} D3D11_UAV_FLAG;
-
-typedef enum D3D11_INPUT_CLASSIFICATION
-{
-    D3D11_INPUT_PER_VERTEX_DATA,
-    D3D11_INPUT_PER_INSTANCE_DATA,
-} D3D11_INPUT_CLASSIFICATION;
-
-const UINT D3D11_APPEND_ALIGNED_ELEMENT = 0xffffffff;
-
-typedef struct D3D11_INPUT_ELEMENT_DESC
-{
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    DXGI_FORMAT Format;
-    UINT InputSlot;
-    UINT AlignedByteOffset;
-    D3D11_INPUT_CLASSIFICATION InputSlotClass;
-    UINT InstanceDataStepRate;
-} D3D11_INPUT_ELEMENT_DESC;
-
-typedef enum D3D11_MAP
-{
-    D3D11_MAP_READ = 1,
-    D3D11_MAP_WRITE,
-    D3D11_MAP_READ_WRITE,
-    D3D11_MAP_WRITE_DISCARD,
-    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;
-    UINT RowPitch;
-    UINT DepthPitch;
-} D3D11_MAPPED_SUBRESOURCE;
-
-typedef enum D3D11_QUERY
-{
-    D3D11_QUERY_EVENT,
-    D3D11_QUERY_OCCLUSION,
-    D3D11_QUERY_TIMESTAMP,
-    D3D11_QUERY_TIMESTAMP_DISJOINT,
-    D3D11_QUERY_PIPELINE_STATISTICS,
-    D3D11_QUERY_OCCLUSION_PREDICATE,
-    D3D11_QUERY_SO_STATISTICS,
-    D3D11_QUERY_SO_OVERFLOW_PREDICATE,
-    D3D11_QUERY_SO_STATISTICS_STREAM0,
-    D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0,
-    D3D11_QUERY_SO_STATISTICS_STREAM1,
-    D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1,
-    D3D11_QUERY_SO_STATISTICS_STREAM2,
-    D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2,
-    D3D11_QUERY_SO_STATISTICS_STREAM3,
-    D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3,
-} D3D11_QUERY;
-
-typedef enum D3D11_QUERY_MISC_FLAG
-{
-    D3D11_QUERY_MISC_PREDICATEHINT = 0x1,
-} D3D11_QUERY_MISC_FLAG;
-
-typedef enum D3D11_ASYNC_GETDATA_FLAG
-{
-    D3D11_ASYNC_GETDATA_DONOTFLUSH = 0x0001,
-} D3D11_ASYNC_GETDATA_FLAG;
-
-typedef enum D3D11_RESOURCE_MISC_FLAG
-{
-    D3D11_RESOURCE_MISC_GENERATE_MIPS                    = 0x00000001L,
-    D3D11_RESOURCE_MISC_SHARED                           = 0x00000002L,
-    D3D11_RESOURCE_MISC_TEXTURECUBE                      = 0x00000004L,
-    D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS                = 0x00000010L,
-    D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS           = 0x00000020L,
-    D3D11_RESOURCE_MISC_BUFFER_STRUCTURED                = 0x00000040L,
-    D3D11_RESOURCE_MISC_RESOURCE_CLAMP                   = 0x00000080L,
-    D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX                = 0x00000100L,
-    D3D11_RESOURCE_MISC_GDI_COMPATIBLE                   = 0x00000200L,
-    D3D11_RESOURCE_MISC_SHARED_NTHANDLE                  = 0x00000800L,
-    D3D11_RESOURCE_MISC_RESTRICTED_CONTENT               = 0x00001000L,
-    D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE         = 0x00002000L,
-    D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER  = 0x00004000L,
-    D3D11_RESOURCE_MISC_GUARDED                          = 0x00008000L,
-    D3D11_RESOURCE_MISC_TILE_POOL                        = 0x00020000L,
-    D3D11_RESOURCE_MISC_TILED                            = 0x00040000L,
-    D3D11_RESOURCE_MISC_HW_PROTECTED                     = 0x00080000L
-} D3D11_RESOURCE_MISC_FLAG;
-
-typedef struct D3D11_QUERY_DESC
-{
-    D3D11_QUERY Query;
-    UINT MiscFlags;
-} D3D11_QUERY_DESC;
-
-cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D11_QUERY_DESC : public D3D11_QUERY_DESC {")
-cpp_quote("    CD3D11_QUERY_DESC() {}")
-cpp_quote("    ~CD3D11_QUERY_DESC() {}")
-cpp_quote("    explicit CD3D11_QUERY_DESC(const D3D11_QUERY_DESC &other) : D3D11_QUERY_DESC(other) {}")
-cpp_quote("    explicit CD3D11_QUERY_DESC(D3D11_QUERY query, UINT misc_flags = 0) {")
-cpp_quote("        Query = query;")
-cpp_quote("        MiscFlags = misc_flags;")
-cpp_quote("    }")
-cpp_quote("    operator const D3D11_QUERY_DESC&() const {")
-cpp_quote("        return *this;")
-cpp_quote("    }")
-cpp_quote("};")
-cpp_quote("#endif")
-
-typedef struct D3D11_RASTERIZER_DESC
-{
-    D3D11_FILL_MODE FillMode;
-    D3D11_CULL_MODE CullMode;
-    BOOL FrontCounterClockwise;
-    INT DepthBias;
-    FLOAT DepthBiasClamp;
-    FLOAT SlopeScaledDepthBias;
-    BOOL DepthClipEnable;
-    BOOL ScissorEnable;
-    BOOL MultisampleEnable;
-    BOOL AntialiasedLineEnable;
-} D3D11_RASTERIZER_DESC;
-
-cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D11_RASTERIZER_DESC : public D3D11_RASTERIZER_DESC {")
-cpp_quote("    CD3D11_RASTERIZER_DESC() {}")
-cpp_quote("    explicit CD3D11_RASTERIZER_DESC(const D3D11_RASTERIZER_DESC &o) : D3D11_RASTERIZER_DESC(o) {}")
-cpp_quote("    explicit CD3D11_RASTERIZER_DESC(CD3D11_DEFAULT) {")
-cpp_quote("        FillMode = D3D11_FILL_SOLID;")
-cpp_quote("        CullMode = D3D11_CULL_BACK;")
-cpp_quote("        FrontCounterClockwise = FALSE;")
-cpp_quote("        DepthBias = D3D11_DEFAULT_DEPTH_BIAS;")
-cpp_quote("        DepthBiasClamp = D3D11_DEFAULT_DEPTH_BIAS_CLAMP;")
-cpp_quote("        SlopeScaledDepthBias = D3D11_DEFAULT_SLOPE_SCALED_DEPTH_BIAS;")
-cpp_quote("        DepthClipEnable = TRUE;")
-cpp_quote("        ScissorEnable = FALSE;")
-cpp_quote("        MultisampleEnable = FALSE;")
-cpp_quote("        AntialiasedLineEnable = FALSE;")
-cpp_quote("    }")
-cpp_quote("    explicit CD3D11_RASTERIZER_DESC(D3D11_FILL_MODE fillMode, D3D11_CULL_MODE cullMode," )
-cpp_quote("            WINBOOL frontCounterClockwise, INT depthBias, FLOAT depthBiasClamp, FLOAT slopeScaledDepthBias,")
-cpp_quote("            BOOL depthClipEnable, WINBOOL scissorEnable, WINBOOL multisampleEnable, WINBOOL antialiasedLineEnable) {")
-cpp_quote("        FillMode = fillMode;")
-cpp_quote("        CullMode = cullMode;")
-cpp_quote("        FrontCounterClockwise = frontCounterClockwise;")
-cpp_quote("        DepthBias = depthBias;")
-cpp_quote("        DepthBiasClamp = depthBiasClamp;")
-cpp_quote("        SlopeScaledDepthBias = slopeScaledDepthBias;")
-cpp_quote("        DepthClipEnable = depthClipEnable;")
-cpp_quote("        ScissorEnable = scissorEnable;")
-cpp_quote("        MultisampleEnable = multisampleEnable;")
-cpp_quote("        AntialiasedLineEnable = antialiasedLineEnable;")
-cpp_quote("    }")
-cpp_quote("    ~CD3D11_RASTERIZER_DESC() {}")
-cpp_quote("    operator const D3D11_RASTERIZER_DESC&() const { return *this; }")
-cpp_quote("};")
-cpp_quote("#endif")
-
-typedef enum D3D11_RESOURCE_DIMENSION
-{
-    D3D11_RESOURCE_DIMENSION_UNKNOWN,
-    D3D11_RESOURCE_DIMENSION_BUFFER,
-    D3D11_RESOURCE_DIMENSION_TEXTURE1D,
-    D3D11_RESOURCE_DIMENSION_TEXTURE2D,
-    D3D11_RESOURCE_DIMENSION_TEXTURE3D,
-} D3D11_RESOURCE_DIMENSION;
-
-typedef enum D3D11_RTV_DIMENSION
-{
-    D3D11_RTV_DIMENSION_UNKNOWN,
-    D3D11_RTV_DIMENSION_BUFFER,
-    D3D11_RTV_DIMENSION_TEXTURE1D,
-    D3D11_RTV_DIMENSION_TEXTURE1DARRAY,
-    D3D11_RTV_DIMENSION_TEXTURE2D,
-    D3D11_RTV_DIMENSION_TEXTURE2DARRAY,
-    D3D11_RTV_DIMENSION_TEXTURE2DMS,
-    D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY,
-    D3D11_RTV_DIMENSION_TEXTURE3D,
-} D3D11_RTV_DIMENSION;
-
-typedef struct D3D11_SO_DECLARATION_ENTRY
-{
-    UINT Stream;
-    LPCSTR SemanticName;
-    UINT SemanticIndex;
-    BYTE StartComponent;
-    BYTE ComponentCount;
-    BYTE OutputSlot;
-} D3D11_SO_DECLARATION_ENTRY;
-
-typedef enum D3D11_STENCIL_OP
-{
-    D3D11_STENCIL_OP_KEEP = 1,
-    D3D11_STENCIL_OP_ZERO,
-    D3D11_STENCIL_OP_REPLACE,
-    D3D11_STENCIL_OP_INCR_SAT,
-    D3D11_STENCIL_OP_DECR_SAT,
-    D3D11_STENCIL_OP_INVERT,
-    D3D11_STENCIL_OP_INCR,
-    D3D11_STENCIL_OP_DECR
-} D3D11_STENCIL_OP;
-
-cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("}")
-cpp_quote("inline UINT D3D11CalcSubresource(UINT MipSlice, UINT ArraySlice, UINT MipLevels) {")
-cpp_quote("    return MipSlice + ArraySlice * MipLevels;")
-cpp_quote("}")
-cpp_quote("extern \"C\"{")
-cpp_quote("#endif")
-
-typedef struct D3D11_SUBRESOURCE_DATA
-{
-    const void *pSysMem;
-    UINT SysMemPitch;
-    UINT SysMemSlicePitch;
-} D3D11_SUBRESOURCE_DATA;
-
-typedef struct D3D11_TEX1D_ARRAY_DSV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX1D_ARRAY_DSV;
-
-typedef struct D3D11_TEX1D_ARRAY_RTV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX1D_ARRAY_RTV;
-
-typedef struct D3D11_TEX1D_ARRAY_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX1D_ARRAY_SRV;
-
-typedef struct D3D11_TEX1D_ARRAY_UAV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX1D_ARRAY_UAV;
-
-typedef struct D3D11_TEX1D_DSV
-{
-    UINT MipSlice;
-} D3D11_TEX1D_DSV;
-
-typedef struct D3D11_TEX1D_RTV
-{
-    UINT MipSlice;
-} D3D11_TEX1D_RTV;
-
-typedef struct D3D11_TEX1D_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
- } D3D11_TEX1D_SRV;
-
-typedef struct D3D11_TEX1D_UAV
-{
-    UINT MipSlice;
-} D3D11_TEX1D_UAV;
-
-typedef struct D3D11_TEX2D_ARRAY_DSV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX2D_ARRAY_DSV;
-
-typedef struct D3D11_TEX2D_ARRAY_RTV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX2D_ARRAY_RTV;
-
-typedef struct D3D11_TEX2D_ARRAY_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX2D_ARRAY_SRV;
-
-typedef struct D3D11_TEX2D_ARRAY_UAV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX2D_ARRAY_UAV;
-
-typedef struct D3D11_TEX2D_DSV
-{
-    UINT MipSlice;
-} D3D11_TEX2D_DSV;
-
-typedef struct D3D11_TEX2D_RTV
-{
-    UINT MipSlice;
-} D3D11_TEX2D_RTV;
-
-typedef struct D3D11_TEX2D_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D11_TEX2D_SRV;
-
-typedef struct D3D11_TEX2D_UAV
-{
-    UINT MipSlice;
-} D3D11_TEX2D_UAV;
-
-typedef struct D3D11_TEX2DMS_ARRAY_DSV
-{
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX2DMS_ARRAY_DSV;
-
-typedef struct D3D11_TEX2DMS_ARRAY_RTV
-{
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX2DMS_ARRAY_RTV;
-
-typedef struct D3D11_TEX2DMS_ARRAY_SRV
-{
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX2DMS_ARRAY_SRV;
-
-typedef struct D3D11_TEX2DMS_DSV
-{
-    UINT UnusedField_NothingToDefine;
-} D3D11_TEX2DMS_DSV;
-
-typedef struct D3D11_TEX2DMS_RTV
-{
-    UINT UnusedField_NothingToDefine;
-} D3D11_TEX2DMS_RTV;
-
-typedef struct D3D11_TEX2DMS_SRV
-{
-    UINT UnusedField_NothingToDefine;
-} D3D11_TEX2DMS_SRV;
-
-typedef struct D3D11_TEX3D_RTV
-{
-    UINT MipSlice;
-    UINT FirstWSlice;
-    UINT WSize;
-} D3D11_TEX3D_RTV;
-
-typedef struct D3D11_TEX3D_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D11_TEX3D_SRV;
-
-typedef struct D3D11_TEX3D_UAV
-{
-    UINT MipSlice;
-    UINT FirstWSlice;
-    UINT WSize;
-} D3D11_TEX3D_UAV;
-
-typedef struct D3D11_TEXCUBE_ARRAY_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT First2DArrayFace;
-    UINT NumCubes;
-} D3D11_TEXCUBE_ARRAY_SRV;
-
-typedef struct D3D11_TEXCUBE_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-} D3D11_TEXCUBE_SRV;
-
-typedef enum D3D11_TEXTURE_ADDRESS_MODE
-{
-    D3D11_TEXTURE_ADDRESS_WRAP = 1,
-    D3D11_TEXTURE_ADDRESS_MIRROR,
-    D3D11_TEXTURE_ADDRESS_CLAMP,
-    D3D11_TEXTURE_ADDRESS_BORDER,
-    D3D11_TEXTURE_ADDRESS_MIRROR_ONCE
-} D3D11_TEXTURE_ADDRESS_MODE;
-
-typedef enum D3D11_UAV_DIMENSION
-{
-    D3D11_UAV_DIMENSION_UNKNOWN,
-    D3D11_UAV_DIMENSION_BUFFER,
-    D3D11_UAV_DIMENSION_TEXTURE1D,
-    D3D11_UAV_DIMENSION_TEXTURE1DARRAY,
-    D3D11_UAV_DIMENSION_TEXTURE2D,
-    D3D11_UAV_DIMENSION_TEXTURE2DARRAY,
-    D3D11_UAV_DIMENSION_TEXTURE3D = 8,
-} D3D11_UAV_DIMENSION;
-
-typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC
-{
-    DXGI_FORMAT Format;
-    D3D11_UAV_DIMENSION ViewDimension;
-
-    union
-    {
-        D3D11_BUFFER_UAV Buffer;
-        D3D11_TEX1D_UAV Texture1D;
-        D3D11_TEX1D_ARRAY_UAV Texture1DArray;
-        D3D11_TEX2D_UAV Texture2D;
-        D3D11_TEX2D_ARRAY_UAV Texture2DArray;
-        D3D11_TEX3D_UAV Texture3D;
-    };
-} D3D11_UNORDERED_ACCESS_VIEW_DESC;
-
-typedef enum D3D11_USAGE
-{
-    D3D11_USAGE_DEFAULT,
-    D3D11_USAGE_IMMUTABLE,
-    D3D11_USAGE_DYNAMIC,
-    D3D11_USAGE_STAGING,
-} D3D11_USAGE;
-
-typedef enum D3D11_BIND_FLAG
-{
-    D3D11_BIND_VERTEX_BUFFER    = 0x0001,
-    D3D11_BIND_INDEX_BUFFER     = 0x0002,
-    D3D11_BIND_CONSTANT_BUFFER  = 0x0004,
-    D3D11_BIND_SHADER_RESOURCE  = 0x0008,
-    D3D11_BIND_STREAM_OUTPUT    = 0x0010,
-    D3D11_BIND_RENDER_TARGET    = 0x0020,
-    D3D11_BIND_DEPTH_STENCIL    = 0x0040,
-    D3D11_BIND_UNORDERED_ACCESS = 0x0080,
-    D3D11_BIND_DECODER          = 0x0200,
-    D3D11_BIND_VIDEO_ENCODER    = 0x0400
-} D3D11_BIND_FLAG;
-
-typedef enum D3D11_CPU_ACCESS_FLAG
-{
-    D3D11_CPU_ACCESS_WRITE = 0x00010000,
-    D3D11_CPU_ACCESS_READ  = 0x00020000
-} D3D11_CPU_ACCESS_FLAG;
-
-typedef struct D3D11_VIEWPORT
-{
-    FLOAT TopLeftX;
-    FLOAT TopLeftY;
-    FLOAT Width;
-    FLOAT Height;
-    FLOAT MinDepth;
-    FLOAT MaxDepth;
-} D3D11_VIEWPORT;
-
-typedef enum D3D11_COLOR_WRITE_ENABLE
-{
-    D3D11_COLOR_WRITE_ENABLE_RED   = 1,
-    D3D11_COLOR_WRITE_ENABLE_GREEN = 2,
-    D3D11_COLOR_WRITE_ENABLE_BLUE  = 4,
-    D3D11_COLOR_WRITE_ENABLE_ALPHA = 8,
-    D3D11_COLOR_WRITE_ENABLE_ALL   =
-        (D3D11_COLOR_WRITE_ENABLE_RED|D3D11_COLOR_WRITE_ENABLE_GREEN|D3D11_COLOR_WRITE_ENABLE_BLUE|D3D11_COLOR_WRITE_ENABLE_ALPHA)
-} D3D11_COLOR_WRITE_ENABLE;
-
-typedef enum D3D11_FORMAT_SUPPORT
-{
-    D3D11_FORMAT_SUPPORT_BUFFER                       = 0x00000001,
-    D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER             = 0x00000002,
-    D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER              = 0x00000004,
-    D3D11_FORMAT_SUPPORT_SO_BUFFER                    = 0x00000008,
-    D3D11_FORMAT_SUPPORT_TEXTURE1D                    = 0x00000010,
-    D3D11_FORMAT_SUPPORT_TEXTURE2D                    = 0x00000020,
-    D3D11_FORMAT_SUPPORT_TEXTURE3D                    = 0x00000040,
-    D3D11_FORMAT_SUPPORT_TEXTURECUBE                  = 0x00000080,
-    D3D11_FORMAT_SUPPORT_SHADER_LOAD                  = 0x00000100,
-    D3D11_FORMAT_SUPPORT_SHADER_SAMPLE                = 0x00000200,
-    D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON     = 0x00000400,
-    D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT      = 0x00000800,
-    D3D11_FORMAT_SUPPORT_MIP                          = 0x00001000,
-    D3D11_FORMAT_SUPPORT_MIP_AUTOGEN                  = 0x00002000,
-    D3D11_FORMAT_SUPPORT_RENDER_TARGET                = 0x00004000,
-    D3D11_FORMAT_SUPPORT_BLENDABLE                    = 0x00008000,
-    D3D11_FORMAT_SUPPORT_DEPTH_STENCIL                = 0x00010000,
-    D3D11_FORMAT_SUPPORT_CPU_LOCKABLE                 = 0x00020000,
-    D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE          = 0x00040000,
-    D3D11_FORMAT_SUPPORT_DISPLAY                      = 0x00080000,
-    D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT       = 0x00100000,
-    D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET     = 0x00200000,
-    D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD             = 0x00400000,
-    D3D11_FORMAT_SUPPORT_SHADER_GATHER                = 0x00800000,
-    D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST             = 0x01000000,
-    D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW  = 0x02000000,
-    D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON     = 0x04000000,
-    D3D11_FORMAT_SUPPORT_DECODER_OUTPUT               = 0x08000000,
-    D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT       = 0x10000000,
-    D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT        = 0x20000000,
-    D3D11_FORMAT_SUPPORT_VIDEO_ENCODER                = 0x40000000,
-} D3D11_FORMAT_SUPPORT;
-
-typedef enum D3D11_CLEAR_FLAG
-{
-    D3D11_CLEAR_DEPTH    = 0x0001L,
-    D3D11_CLEAR_STENCIL  = 0x0002L
-} D3D11_CLEAR_FLAG;
-
-typedef struct D3D11_RENDER_TARGET_BLEND_DESC
-{
-    BOOL BlendEnable;
-    D3D11_BLEND SrcBlend;
-    D3D11_BLEND DestBlend;
-    D3D11_BLEND_OP BlendOp;
-    D3D11_BLEND SrcBlendAlpha;
-    D3D11_BLEND DestBlendAlpha;
-    D3D11_BLEND_OP BlendOpAlpha;
-    UINT8 RenderTargetWriteMask;
-} D3D11_RENDER_TARGET_BLEND_DESC;
-
-typedef struct D3D11_BLEND_DESC
-{
-    BOOL AlphaToCoverageEnable;
-    BOOL IndependentBlendEnable;
-    D3D11_RENDER_TARGET_BLEND_DESC RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT];
-} D3D11_BLEND_DESC;
-
-cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D11_BLEND_DESC : public D3D11_BLEND_DESC {")
-cpp_quote("    CD3D11_BLEND_DESC() {}")
-cpp_quote("    explicit CD3D11_BLEND_DESC(const D3D11_BLEND_DESC &o) : D3D11_BLEND_DESC(o) {}")
-cpp_quote("    explicit CD3D11_BLEND_DESC(CD3D11_DEFAULT) {")
-cpp_quote("        AlphaToCoverageEnable = FALSE;")
-cpp_quote("        IndependentBlendEnable = FALSE;")
-cpp_quote("        for(D3D11_RENDER_TARGET_BLEND_DESC *target = RenderTarget;")
-cpp_quote("                target < RenderTarget + D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT;")
-cpp_quote("                target++) {")
-cpp_quote("            target->BlendEnable = FALSE;")
-cpp_quote("            target->SrcBlend = target->SrcBlendAlpha = D3D11_BLEND_ONE;")
-cpp_quote("            target->DestBlend = target->DestBlendAlpha = D3D11_BLEND_ZERO;")
-cpp_quote("            target->BlendOp = target->BlendOpAlpha = D3D11_BLEND_OP_ADD;")
-cpp_quote("            target->RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;")
-cpp_quote("        }")
-cpp_quote("    }")
-cpp_quote("    ~CD3D11_BLEND_DESC() {}")
-cpp_quote("    operator const D3D11_BLEND_DESC&() const { return *this; }")
-cpp_quote("};" )
-cpp_quote("#endif" )
-
-typedef struct D3D11_BUFFER_DESC
-{
-    UINT ByteWidth;
-    D3D11_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-    UINT StructureByteStride;
-} D3D11_BUFFER_DESC;
-
-cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D11_BUFFER_DESC : public D3D11_BUFFER_DESC {")
-cpp_quote("    CD3D11_BUFFER_DESC() {}" )
-cpp_quote("    explicit CD3D11_BUFFER_DESC(const D3D11_BUFFER_DESC &o) : D3D11_BUFFER_DESC(o) {}")
-cpp_quote("    explicit CD3D11_BUFFER_DESC(UINT byteWidth,UINT bindFlags,")
-cpp_quote("            D3D11_USAGE usage = D3D11_USAGE_DEFAULT, UINT cpuaccessFlags = 0,")
-cpp_quote("            UINT miscFlags = 0, UINT structureByteStride = 0 ) {")
-cpp_quote("        ByteWidth = byteWidth;")
-cpp_quote("        Usage = usage;")
-cpp_quote("        BindFlags = bindFlags;")
-cpp_quote("        CPUAccessFlags = cpuaccessFlags;")
-cpp_quote("        MiscFlags = miscFlags;" )
-cpp_quote("        StructureByteStride = structureByteStride;")
-cpp_quote("    }")
-cpp_quote("    ~CD3D11_BUFFER_DESC() {}")
-cpp_quote("    operator const D3D11_BUFFER_DESC&() const { return *this; }")
-cpp_quote("};" )
-cpp_quote("#endif" )
-
-typedef struct D3D11_DEPTH_STENCIL_VIEW_DESC
-{
-    DXGI_FORMAT Format;
-    D3D11_DSV_DIMENSION ViewDimension;
-    UINT Flags;
-
-    union
-    {
-        D3D11_TEX1D_DSV Texture1D;
-        D3D11_TEX1D_ARRAY_DSV Texture1DArray;
-        D3D11_TEX2D_DSV Texture2D;
-        D3D11_TEX2D_ARRAY_DSV Texture2DArray;
-        D3D11_TEX2DMS_DSV Texture2DMS;
-        D3D11_TEX2DMS_ARRAY_DSV Texture2DMSArray;
-    };
-} D3D11_DEPTH_STENCIL_VIEW_DESC;
-
-typedef struct D3D11_DEPTH_STENCILOP_DESC
-{
-    D3D11_STENCIL_OP StencilFailOp;
-    D3D11_STENCIL_OP StencilDepthFailOp;
-    D3D11_STENCIL_OP StencilPassOp;
-    D3D11_COMPARISON_FUNC StencilFunc;
-} D3D11_DEPTH_STENCILOP_DESC;
-
-typedef struct D3D11_DEPTH_STENCIL_DESC
-{
-    BOOL DepthEnable;
-    D3D11_DEPTH_WRITE_MASK DepthWriteMask;
-    D3D11_COMPARISON_FUNC DepthFunc;
-    BOOL StencilEnable;
-    UINT8 StencilReadMask;
-    UINT8 StencilWriteMask;
-    D3D11_DEPTH_STENCILOP_DESC FrontFace;
-    D3D11_DEPTH_STENCILOP_DESC BackFace;
-} D3D11_DEPTH_STENCIL_DESC;
-
-cpp_quote("#if !defined( D3D11_NO_HELPERS ) && defined( __cplusplus )")
-cpp_quote("struct CD3D11_DEPTH_STENCIL_DESC : public D3D11_DEPTH_STENCIL_DESC {")
-cpp_quote("    CD3D11_DEPTH_STENCIL_DESC() {}")
-cpp_quote("    explicit CD3D11_DEPTH_STENCIL_DESC(const D3D11_DEPTH_STENCIL_DESC &other) : D3D11_DEPTH_STENCIL_DESC(other) {}")
-cpp_quote("    explicit CD3D11_DEPTH_STENCIL_DESC(CD3D11_DEFAULT) {")
-cpp_quote("        const D3D11_DEPTH_STENCILOP_DESC default_op =")
-cpp_quote("            {D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_STENCIL_OP_KEEP, D3D11_COMPARISON_ALWAYS};")
-cpp_quote("        DepthEnable = TRUE;")
-cpp_quote("        DepthWriteMask = D3D11_DEPTH_WRITE_MASK_ALL;")
-cpp_quote("        DepthFunc = D3D11_COMPARISON_LESS;")
-cpp_quote("        StencilEnable = FALSE;")
-cpp_quote("        StencilReadMask = D3D11_DEFAULT_STENCIL_READ_MASK;")
-cpp_quote("        StencilWriteMask = D3D11_DEFAULT_STENCIL_WRITE_MASK;")
-cpp_quote("        FrontFace = default_op;")
-cpp_quote("        BackFace = default_op;")
-cpp_quote("    }")
-cpp_quote("    explicit CD3D11_DEPTH_STENCIL_DESC(")
-cpp_quote("            WINBOOL depth_enable,")
-cpp_quote("            D3D11_DEPTH_WRITE_MASK depth_write_mask,")
-cpp_quote("            D3D11_COMPARISON_FUNC depth_func,")
-cpp_quote("            WINBOOL stencil_enable,")
-cpp_quote("            UINT8 stencil_read_mask,")
-cpp_quote("            UINT8 stencil_write_mask,")
-cpp_quote("            D3D11_STENCIL_OP front_stencil_fail_op,")
-cpp_quote("            D3D11_STENCIL_OP front_stencil_depth_fail_op,")
-cpp_quote("            D3D11_STENCIL_OP front_stencil_pass_op,")
-cpp_quote("            D3D11_COMPARISON_FUNC front_stencil_func,")
-cpp_quote("            D3D11_STENCIL_OP back_stencil_fail_op,")
-cpp_quote("            D3D11_STENCIL_OP back_stencil_depth_fail_op,")
-cpp_quote("            D3D11_STENCIL_OP back_stencil_pass_op,")
-cpp_quote("            D3D11_COMPARISON_FUNC back_stencil_func) {")
-cpp_quote("        DepthEnable = depth_enable;")
-cpp_quote("        DepthWriteMask = depth_write_mask;")
-cpp_quote("        DepthFunc = depth_func;")
-cpp_quote("        StencilEnable = stencil_enable;")
-cpp_quote("        StencilReadMask = stencil_read_mask;")
-cpp_quote("        StencilWriteMask = stencil_write_mask;")
-cpp_quote("        FrontFace.StencilFailOp = front_stencil_fail_op;")
-cpp_quote("        FrontFace.StencilDepthFailOp = front_stencil_depth_fail_op;")
-cpp_quote("        FrontFace.StencilPassOp = front_stencil_pass_op;")
-cpp_quote("        FrontFace.StencilFunc = front_stencil_func;")
-cpp_quote("        BackFace.StencilFailOp = back_stencil_fail_op;")
-cpp_quote("        BackFace.StencilDepthFailOp = back_stencil_depth_fail_op;")
-cpp_quote("        BackFace.StencilPassOp = back_stencil_pass_op;")
-cpp_quote("        BackFace.StencilFunc = back_stencil_func;")
-cpp_quote("    }")
-cpp_quote("    ~CD3D11_DEPTH_STENCIL_DESC() {}")
-cpp_quote("    operator const D3D11_DEPTH_STENCIL_DESC&() const { return *this; }")
-cpp_quote("};")
-cpp_quote("#endif")
-
-typedef struct D3D11_RENDER_TARGET_VIEW_DESC
-{
-    DXGI_FORMAT Format;
-    D3D11_RTV_DIMENSION ViewDimension;
-
-    union
-    {
-        D3D11_BUFFER_RTV Buffer;
-        D3D11_TEX1D_RTV Texture1D;
-        D3D11_TEX1D_ARRAY_RTV Texture1DArray;
-        D3D11_TEX2D_RTV Texture2D;
-        D3D11_TEX2D_ARRAY_RTV Texture2DArray;
-        D3D11_TEX2DMS_RTV Texture2DMS;
-        D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
-        D3D11_TEX3D_RTV Texture3D;
-    };
-} D3D11_RENDER_TARGET_VIEW_DESC;
-
-cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D11_RENDER_TARGET_VIEW_DESC : public D3D11_RENDER_TARGET_VIEW_DESC {")
-cpp_quote("    CD3D11_RENDER_TARGET_VIEW_DESC() {}")
-cpp_quote("    explicit CD3D11_RENDER_TARGET_VIEW_DESC(D3D11_RTV_DIMENSION dim, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,")
-cpp_quote("            UINT mip_slice = 0, UINT first_slice = 0, UINT array_size = -1) {")
-cpp_quote("        Format = format;")
-cpp_quote("        ViewDimension = dim;")
-cpp_quote("        switch(dim) {")
-cpp_quote("        case D3D11_RTV_DIMENSION_BUFFER:")
-cpp_quote("            Buffer.FirstElement = mip_slice;")
-cpp_quote("            Buffer.NumElements = first_slice;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_RTV_DIMENSION_TEXTURE1D:")
-cpp_quote("            Texture1D.MipSlice = mip_slice;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_RTV_DIMENSION_TEXTURE1DARRAY:")
-cpp_quote("            Texture1DArray.MipSlice = mip_slice;")
-cpp_quote("            Texture1DArray.FirstArraySlice = first_slice;")
-cpp_quote("            Texture1DArray.ArraySize = array_size;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_RTV_DIMENSION_TEXTURE2D:")
-cpp_quote("            Texture2D.MipSlice = mip_slice;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_RTV_DIMENSION_TEXTURE2DARRAY:")
-cpp_quote("            Texture2DArray.MipSlice = mip_slice;")
-cpp_quote("            Texture2DArray.FirstArraySlice = first_slice;")
-cpp_quote("            Texture2DArray.ArraySize = array_size;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY:")
-cpp_quote("            Texture2DMSArray.FirstArraySlice = first_slice;")
-cpp_quote("            Texture2DMSArray.ArraySize = array_size;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_RTV_DIMENSION_TEXTURE3D:")
-cpp_quote("            Texture3D.MipSlice = mip_slice;")
-cpp_quote("            Texture3D.FirstWSlice = first_slice;")
-cpp_quote("            Texture3D.WSize = array_size;")
-cpp_quote("            break;")
-cpp_quote("        default:")
-cpp_quote("            break;")
-cpp_quote("        }")
-cpp_quote("    }")
-cpp_quote("    explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Buffer*, DXGI_FORMAT format, UINT first_elem,")
-cpp_quote("            UINT elem_cnt) {")
-cpp_quote("        Format = format;")
-cpp_quote("        ViewDimension = D3D11_RTV_DIMENSION_BUFFER;")
-cpp_quote("        Buffer.FirstElement = first_elem;")
-cpp_quote("        Buffer.NumElements = elem_cnt;")
-cpp_quote("    }")
-cpp_quote("    explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture1D *texture, D3D11_RTV_DIMENSION dim,")
-cpp_quote("            DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT mip_slice = 0, UINT first_slice = 0,")
-cpp_quote("            UINT array_size = -1);") /* FIXME: implement */
-cpp_quote("    explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture2D *texture, D3D11_RTV_DIMENSION dim,")
-cpp_quote("            DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT mip_slice = 0, UINT first_slice = 0,")
-cpp_quote("            UINT array_size = -1);") /* FIXME: implement */
-cpp_quote("    explicit CD3D11_RENDER_TARGET_VIEW_DESC(ID3D11Texture3D *texture, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,")
-cpp_quote("            UINT mip_slice = 0, UINT first_w_slice = 0, UINT w_slice = -1 );") /* FIXME: implement */
-cpp_quote("    ~CD3D11_RENDER_TARGET_VIEW_DESC() {}")
-cpp_quote("    explicit CD3D11_RENDER_TARGET_VIEW_DESC(const D3D11_RENDER_TARGET_VIEW_DESC &other)")
-cpp_quote("        : D3D11_RENDER_TARGET_VIEW_DESC(other) {}")
-cpp_quote("    operator const D3D11_RENDER_TARGET_VIEW_DESC&() const {")
-cpp_quote("        return *this;")
-cpp_quote("    }")
-cpp_quote("};")
-cpp_quote("#endif")
-
-
-typedef struct D3D11_SAMPLER_DESC
-{
-    D3D11_FILTER Filter;
-    D3D11_TEXTURE_ADDRESS_MODE AddressU;
-    D3D11_TEXTURE_ADDRESS_MODE AddressV;
-    D3D11_TEXTURE_ADDRESS_MODE AddressW;
-    FLOAT MipLODBias;
-    UINT MaxAnisotropy;
-    D3D11_COMPARISON_FUNC ComparisonFunc;
-    FLOAT BorderColor[4];
-    FLOAT MinLOD;
-    FLOAT MaxLOD;
-} D3D11_SAMPLER_DESC;
-
-cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D11_SAMPLER_DESC : public D3D11_SAMPLER_DESC {")
-cpp_quote("    CD3D11_SAMPLER_DESC() {}")
-cpp_quote("    explicit CD3D11_SAMPLER_DESC(const D3D11_SAMPLER_DESC &o) : D3D11_SAMPLER_DESC(o) {}")
-cpp_quote("    explicit CD3D11_SAMPLER_DESC(CD3D11_DEFAULT) {" )
-cpp_quote("        Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;")
-cpp_quote("        AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;")
-cpp_quote("        AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;")
-cpp_quote("        AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;")
-cpp_quote("        MipLODBias = 0;")
-cpp_quote("        MaxAnisotropy = 1;")
-cpp_quote("        ComparisonFunc = D3D11_COMPARISON_NEVER;")
-cpp_quote("        BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 1.0f;")
-cpp_quote("        MinLOD = -3.402823466e+38f;")
-cpp_quote("        MaxLOD = 3.402823466e+38f;")
-cpp_quote("    }")
-cpp_quote("    explicit CD3D11_SAMPLER_DESC(D3D11_FILTER filter, D3D11_TEXTURE_ADDRESS_MODE addressU,")
-cpp_quote("            D3D11_TEXTURE_ADDRESS_MODE addressV, D3D11_TEXTURE_ADDRESS_MODE addressW,")
-cpp_quote("            FLOAT mipLODBias, UINT maxAnisotropy, D3D11_COMPARISON_FUNC comparisonFunc,")
-cpp_quote("            const FLOAT *borderColor, FLOAT minLOD, FLOAT maxLOD) {" )
-cpp_quote("        Filter = filter;")
-cpp_quote("        AddressU = addressU;")
-cpp_quote("        AddressV = addressV;")
-cpp_quote("        AddressW = addressW;")
-cpp_quote("        MipLODBias = mipLODBias;")
-cpp_quote("        MaxAnisotropy = maxAnisotropy;")
-cpp_quote("        ComparisonFunc = comparisonFunc;")
-cpp_quote("        if(borderColor) {")
-cpp_quote("            BorderColor[0] = borderColor[0];")
-cpp_quote("            BorderColor[1] = borderColor[1];")
-cpp_quote("            BorderColor[2] = borderColor[2];")
-cpp_quote("            BorderColor[3] = borderColor[3];")
-cpp_quote("        }else {")
-cpp_quote("            BorderColor[0] = BorderColor[1] = BorderColor[2] = BorderColor[3] = 1.0f;")
-cpp_quote("        }")
-cpp_quote("        MinLOD = minLOD;")
-cpp_quote("        MaxLOD = maxLOD;")
-cpp_quote("    }")
-cpp_quote("    ~CD3D11_SAMPLER_DESC() {}")
-cpp_quote("    operator const D3D11_SAMPLER_DESC&() const { return *this; }")
-cpp_quote("};")
-cpp_quote("#endif")
-
-typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC
-{
-    DXGI_FORMAT Format;
-    D3D11_SRV_DIMENSION ViewDimension;
-
-    union
-    {
-        D3D11_BUFFER_SRV Buffer;
-        D3D11_TEX1D_SRV Texture1D;
-        D3D11_TEX1D_ARRAY_SRV Texture1DArray;
-        D3D11_TEX2D_SRV Texture2D;
-        D3D11_TEX2D_ARRAY_SRV Texture2DArray;
-        D3D11_TEX2DMS_SRV Texture2DMS;
-        D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
-        D3D11_TEX3D_SRV Texture3D;
-        D3D11_TEXCUBE_SRV TextureCube;
-        D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
-        D3D11_BUFFEREX_SRV BufferEx;
-    };
-} D3D11_SHADER_RESOURCE_VIEW_DESC;
-
-cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined( __cplusplus )")
-cpp_quote("struct CD3D11_SHADER_RESOURCE_VIEW_DESC : public D3D11_SHADER_RESOURCE_VIEW_DESC {")
-cpp_quote("    CD3D11_SHADER_RESOURCE_VIEW_DESC() {}")
-cpp_quote("    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(D3D11_SRV_DIMENSION dim,")
-cpp_quote("            DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0,")
-cpp_quote("            UINT mip_levels = -1, UINT first_slice = 0, UINT array_size = -1, UINT flags = 0) {")
-cpp_quote("        Format = format;")
-cpp_quote("        ViewDimension = dim;")
-cpp_quote("        switch(ViewDimension) {")
-cpp_quote("        case D3D11_SRV_DIMENSION_BUFFER:")
-cpp_quote("            Buffer.FirstElement = most_detailed_mip;")
-cpp_quote("            Buffer.NumElements = mip_levels;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_SRV_DIMENSION_TEXTURE1D:")
-cpp_quote("            Texture1D.MostDetailedMip = most_detailed_mip;")
-cpp_quote("            Texture1D.MipLevels = mip_levels;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_SRV_DIMENSION_TEXTURE1DARRAY:")
-cpp_quote("            Texture1DArray.MostDetailedMip = most_detailed_mip;")
-cpp_quote("            Texture1DArray.MipLevels = mip_levels;")
-cpp_quote("            Texture1DArray.FirstArraySlice = first_slice;")
-cpp_quote("            Texture1DArray.ArraySize = array_size;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_SRV_DIMENSION_TEXTURE2D:")
-cpp_quote("            Texture2D.MostDetailedMip = most_detailed_mip;")
-cpp_quote("            Texture2D.MipLevels = mip_levels;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_SRV_DIMENSION_TEXTURE2DARRAY:")
-cpp_quote("            Texture2DArray.MostDetailedMip = most_detailed_mip;")
-cpp_quote("            Texture2DArray.MipLevels = mip_levels;")
-cpp_quote("            Texture2DArray.FirstArraySlice = first_slice;")
-cpp_quote("            Texture2DArray.ArraySize = array_size;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY:")
-cpp_quote("            Texture2DMSArray.FirstArraySlice = first_slice;")
-cpp_quote("            Texture2DMSArray.ArraySize = array_size;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_SRV_DIMENSION_TEXTURE3D:")
-cpp_quote("            Texture3D.MostDetailedMip = most_detailed_mip;")
-cpp_quote("            Texture3D.MipLevels = mip_levels;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_SRV_DIMENSION_TEXTURECUBE:")
-cpp_quote("            TextureCube.MostDetailedMip = most_detailed_mip;")
-cpp_quote("            TextureCube.MipLevels = mip_levels;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_SRV_DIMENSION_TEXTURECUBEARRAY:")
-cpp_quote("            TextureCubeArray.MostDetailedMip = most_detailed_mip;")
-cpp_quote("            TextureCubeArray.MipLevels = mip_levels;")
-cpp_quote("            TextureCubeArray.First2DArrayFace = first_slice;")
-cpp_quote("            TextureCubeArray.NumCubes = array_size;")
-cpp_quote("            break;")
-cpp_quote("        case D3D11_SRV_DIMENSION_BUFFEREX:")
-cpp_quote("            BufferEx.FirstElement = most_detailed_mip;")
-cpp_quote("            BufferEx.NumElements = mip_levels;")
-cpp_quote("            BufferEx.Flags = flags;")
-cpp_quote("            break;")
-cpp_quote("        default:")
-cpp_quote("            break;")
-cpp_quote("        }")
-cpp_quote("    }")
-cpp_quote("    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Buffer*, DXGI_FORMAT format, UINT first_elem,")
-cpp_quote("            UINT elem_cnt, UINT flags = 0);") /* FIXME: implement */
-cpp_quote("    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture1D *texture, D3D11_SRV_DIMENSION dim,")
-cpp_quote("            DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0, UINT mip_levels = -1,")
-cpp_quote("            UINT first_slice = 0, UINT array_size = -1 );") /* FIXME: implement */
-cpp_quote("    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture2D *texture, D3D11_SRV_DIMENSION dim,")
-cpp_quote("            DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN, UINT most_detailed_mip = 0, UINT mip_levels = -1,")
-cpp_quote("            UINT first_slice = 0, UINT array_size = -1 );") /* FIXME: implement */
-cpp_quote("    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(ID3D11Texture3D *texture, DXGI_FORMAT format = DXGI_FORMAT_UNKNOWN,")
-cpp_quote("            UINT most_detailed_mip = 0, UINT mip_levels = -1 );")
-cpp_quote("    ~CD3D11_SHADER_RESOURCE_VIEW_DESC() {}")
-cpp_quote("    explicit CD3D11_SHADER_RESOURCE_VIEW_DESC(const D3D11_SHADER_RESOURCE_VIEW_DESC &other)")
-cpp_quote("        : D3D11_SHADER_RESOURCE_VIEW_DESC(other) {}")
-cpp_quote("    operator const D3D11_SHADER_RESOURCE_VIEW_DESC&() const {")
-cpp_quote("        return *this;")
-cpp_quote("    }")
-cpp_quote("};")
-cpp_quote("#endif")
-
-typedef struct D3D11_TEXTURE1D_DESC
-{
-    UINT Width;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    D3D11_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D11_TEXTURE1D_DESC;
-
-typedef struct D3D11_TEXTURE2D_DESC
-{
-    UINT Width;
-    UINT Height;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    DXGI_SAMPLE_DESC SampleDesc;
-    D3D11_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D11_TEXTURE2D_DESC;
-
-cpp_quote("#if !defined(D3D11_NO_HELPERS) && defined(__cplusplus)")
-cpp_quote("struct CD3D11_TEXTURE2D_DESC : public D3D11_TEXTURE2D_DESC {")
-cpp_quote("    CD3D11_TEXTURE2D_DESC() {}")
-cpp_quote("    explicit CD3D11_TEXTURE2D_DESC(const D3D11_TEXTURE2D_DESC &o) : D3D11_TEXTURE2D_DESC(o) {}")
-cpp_quote("    explicit CD3D11_TEXTURE2D_DESC(DXGI_FORMAT format, UINT width, UINT height, UINT arraySize = 1,")
-cpp_quote("            UINT mipLevels = 0, UINT bindFlags = D3D11_BIND_SHADER_RESOURCE,")
-cpp_quote("            D3D11_USAGE usage = D3D11_USAGE_DEFAULT, UINT cpuaccessFlags = 0, UINT sampleCount = 1," )
-cpp_quote("            UINT sampleQuality = 0, UINT miscFlags = 0) {")
-cpp_quote("        Width = width;")
-cpp_quote("        Height = height;")
-cpp_quote("        MipLevels = mipLevels;")
-cpp_quote("        ArraySize = arraySize;")
-cpp_quote("        Format = format;")
-cpp_quote("        SampleDesc.Count = sampleCount;")
-cpp_quote("        SampleDesc.Quality = sampleQuality;")
-cpp_quote("        Usage = usage;")
-cpp_quote("        BindFlags = bindFlags;")
-cpp_quote("        CPUAccessFlags = cpuaccessFlags;")
-cpp_quote("        MiscFlags = miscFlags;")
-cpp_quote("    }" )
-cpp_quote("    ~CD3D11_TEXTURE2D_DESC() {}")
-cpp_quote("    operator const D3D11_TEXTURE2D_DESC&() const { return *this; }")
-cpp_quote("};")
-cpp_quote("#endif")
-
-typedef struct D3D11_TEXTURE3D_DESC
-{
-    UINT Width;
-    UINT Height;
-    UINT Depth;
-    UINT MipLevels;
-    DXGI_FORMAT Format;
-    D3D11_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-} D3D11_TEXTURE3D_DESC;
-
-typedef struct D3D11_VIDEO_DECODER_DESC
-{
-    GUID Guid;
-    UINT SampleWidth;
-    UINT SampleHeight;
-    DXGI_FORMAT OutputFormat;
-} D3D11_VIDEO_DECODER_DESC;
-
-typedef struct D3D11_VIDEO_DECODER_CONFIG
-{
-    GUID guidConfigBitstreamEncryption;
-    GUID guidConfigMBcontrolEncryption;
-    GUID guidConfigResidDiffEncryption;
-    UINT ConfigBitstreamRaw;
-    UINT ConfigMBcontrolRasterOrder;
-    UINT ConfigResidDiffHost;
-    UINT ConfigSpatialResid8;
-    UINT ConfigResid8Subtraction;
-    UINT ConfigSpatialHost8or9Clipping;
-    UINT ConfigSpatialResidInterleaved;
-    UINT ConfigIntraResidUnsigned;
-    UINT ConfigResidDiffAccelerator;
-    UINT ConfigHostInverseScan;
-    UINT ConfigSpecificIDCT;
-    UINT Config4GroupedCoefs;
-    USHORT ConfigMinRenderTargetBuffCount;
-    USHORT ConfigDecoderSpecific;
-} D3D11_VIDEO_DECODER_CONFIG;
-
-typedef enum D3D11_VIDEO_FRAME_FORMAT
-{
-    D3D11_VIDEO_FRAME_FORMAT_PROGRESSIVE                   = 0,
-    D3D11_VIDEO_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST    = 1,
-    D3D11_VIDEO_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
-} D3D11_VIDEO_FRAME_FORMAT;
-
-typedef enum D3D11_VIDEO_USAGE
-{
-    D3D11_VIDEO_USAGE_PLAYBACK_NORMAL = 0,
-    D3D11_VIDEO_USAGE_OPTIMAL_SPEED   = 1,
-    D3D11_VIDEO_USAGE_OPTIMAL_QUALITY = 2
-} D3D11_VIDEO_USAGE;
-
-typedef struct D3D11_VIDEO_PROCESSOR_CONTENT_DESC
-{
-    D3D11_VIDEO_FRAME_FORMAT InputFrameFormat;
-    DXGI_RATIONAL InputFrameRate;
-    UINT InputWidth;
-    UINT InputHeight;
-    DXGI_RATIONAL OutputFrameRate;
-    UINT OutputWidth;
-    UINT OutputHeight;
-    D3D11_VIDEO_USAGE Usage;
-} D3D11_VIDEO_PROCESSOR_CONTENT_DESC;
-
-typedef struct D3D11_VIDEO_PROCESSOR_CAPS
-{
-    UINT DeviceCaps;
-    UINT FeatureCaps;
-    UINT FilterCaps;
-    UINT InputFormatCaps;
-    UINT AutoStreamCaps;
-    UINT StereoCaps;
-    UINT RateConversionCapsCount;
-    UINT MaxInputStreams;
-    UINT MaxStreamStates;
-} D3D11_VIDEO_PROCESSOR_CAPS;
-
-typedef struct D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS
-{
-    UINT PastFrames;
-    UINT FutureFrames;
-    UINT ProcessorCaps;
-    UINT ITelecineCaps;
-    UINT CustomRateCount;
-} D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS;
-
-typedef struct D3D11_VIDEO_PROCESSOR_CUSTOM_RATE
-{
-    DXGI_RATIONAL CustomRate;
-    UINT OutputFrames;
-    BOOL InputInterlaced;
-    UINT InputFramesOrFields;
-} D3D11_VIDEO_PROCESSOR_CUSTOM_RATE;
-
-typedef enum D3D11_VIDEO_PROCESSOR_FILTER
-{
-    D3D11_VIDEO_PROCESSOR_FILTER_BRIGHTNESS         = 0,
-    D3D11_VIDEO_PROCESSOR_FILTER_CONTRAST           = 1,
-    D3D11_VIDEO_PROCESSOR_FILTER_HUE                = 2,
-    D3D11_VIDEO_PROCESSOR_FILTER_SATURATION         = 3,
-    D3D11_VIDEO_PROCESSOR_FILTER_NOISE_REDUCTION    = 4,
-    D3D11_VIDEO_PROCESSOR_FILTER_EDGE_ENHANCEMENT   = 5,
-    D3D11_VIDEO_PROCESSOR_FILTER_ANAMORPHIC_SCALING = 6,
-    D3D11_VIDEO_PROCESSOR_FILTER_STEREO_ADJUSTMENT  = 7
-} D3D11_VIDEO_PROCESSOR_FILTER;
-
-typedef struct D3D11_VIDEO_PROCESSOR_FILTER_RANGE
-{
-    int Minimum;
-    int Maximum;
-    int Default;
-    float Multiplier;
-} D3D11_VIDEO_PROCESSOR_FILTER_RANGE;
-
-typedef enum D3D11_AUTHENTICATED_CHANNEL_TYPE
-{
-    D3D11_AUTHENTICATED_CHANNEL_D3D11           = 1,
-    D3D11_AUTHENTICATED_CHANNEL_DRIVER_SOFTWARE = 2,
-    D3D11_AUTHENTICATED_CHANNEL_DRIVER_HARDWARE = 3
-} D3D11_AUTHENTICATED_CHANNEL_TYPE;
-
-typedef enum D3D11_VDOV_DIMENSION
-{
-    D3D11_VDOV_DIMENSION_UNKNOWN   = 0,
-    D3D11_VDOV_DIMENSION_TEXTURE2D = 1
-} D3D11_VDOV_DIMENSION;
-
-typedef struct D3D11_TEX2D_VDOV
-{
-    UINT ArraySlice;
-} D3D11_TEX2D_VDOV;
-
-typedef struct D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC
-{
-    GUID DecodeProfile;
-    D3D11_VDOV_DIMENSION ViewDimension;
-    union {
-        D3D11_TEX2D_VDOV Texture2D;
-    };
-} D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC;
-
-typedef enum D3D11_VPIV_DIMENSION
-{
-    D3D11_VPIV_DIMENSION_UNKNOWN   = 0,
-    D3D11_VPIV_DIMENSION_TEXTURE2D = 1
-} D3D11_VPIV_DIMENSION;
-
-typedef struct D3D11_TEX2D_VPIV
-{
-    UINT MipSlice;
-    UINT ArraySlice;
-} D3D11_TEX2D_VPIV;
-
-typedef struct D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC
-{
-    UINT FourCC;
-    D3D11_VPIV_DIMENSION ViewDimension;
-    union {
-        D3D11_TEX2D_VPIV Texture2D;
-    };
-} D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC;
-
-typedef enum D3D11_VPOV_DIMENSION
-{
-    D3D11_VPOV_DIMENSION_UNKNOWN        = 0,
-    D3D11_VPOV_DIMENSION_TEXTURE2D      = 1,
-    D3D11_VPOV_DIMENSION_TEXTURE2DARRAY = 2
-} D3D11_VPOV_DIMENSION;
-
-typedef struct D3D11_TEX2D_VPOV
-{
-    UINT MipSlice;
-} D3D11_TEX2D_VPOV;
-
-typedef struct D3D11_TEX2D_ARRAY_VPOV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D11_TEX2D_ARRAY_VPOV;
-
-typedef struct D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC
-{
-    D3D11_VPOV_DIMENSION ViewDimension;
-    union {
-        D3D11_TEX2D_VPOV Texture2D;
-        D3D11_TEX2D_ARRAY_VPOV Texture2DArray;
-    };
-} D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC;
-
-typedef struct D3D11_VIDEO_CONTENT_PROTECTION_CAPS
-{
-    UINT Caps;
-    UINT KeyExchangeTypeCount;
-    UINT BlockAlignmentSize;
-    ULONGLONG ProtectedMemorySize;
-} D3D11_VIDEO_CONTENT_PROTECTION_CAPS;
-
-typedef struct D3D11_ENCRYPTED_BLOCK_INFO
-{
-    UINT NumEncryptedBytesAtBeginning;
-    UINT NumBytesInSkipPattern;
-    UINT NumBytesInEncryptPattern;
-} D3D11_ENCRYPTED_BLOCK_INFO;
-
-typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC
-{
-    D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType;
-    UINT BufferIndex;
-    UINT DataOffset;
-    UINT DataSize;
-    UINT FirstMBaddress;
-    UINT NumMBsInBuffer;
-    UINT Width;
-    UINT Height;
-    UINT Stride;
-    UINT ReservedBits;
-    void *pIV;
-    UINT IVSize;
-    BOOL PartialEncryption;
-    D3D11_ENCRYPTED_BLOCK_INFO EncryptedBlockInfo;
-} D3D11_VIDEO_DECODER_BUFFER_DESC;
-
-typedef struct D3D11_VIDEO_DECODER_EXTENSION
-{
-    UINT Function;
-    void *pPrivateInputData;
-    UINT PrivateInputDataSize;
-    void *pPrivateOutputData;
-    UINT PrivateOutputDataSize;
-    UINT ResourceCount;
-    ID3D11Resource **ppResourceList;
-} D3D11_VIDEO_DECODER_EXTENSION;
-
-typedef struct D3D11_VIDEO_COLOR_YCbCrA
-{
-    float Y;
-    float Cb;
-    float Cr;
-    float A;
-} D3D11_VIDEO_COLOR_YCbCrA;
-
-typedef struct D3D11_VIDEO_COLOR_RGBA
-{
-    float R;
-    float G;
-    float B;
-    float A;
-} D3D11_VIDEO_COLOR_RGBA;
-
-typedef struct D3D11_VIDEO_COLOR
-{
-    union
-    {
-        D3D11_VIDEO_COLOR_YCbCrA YCbCr;
-        D3D11_VIDEO_COLOR_RGBA RGBA;
-    };
-} D3D11_VIDEO_COLOR;
-
-typedef struct D3D11_VIDEO_PROCESSOR_COLOR_SPACE
-{
-    UINT Usage : 1;
-    UINT RGB_Range : 1;
-    UINT YCbCr_Matrix : 1;
-    UINT YCbCr_xvYCC : 1;
-    UINT Nominal_Range : 2;
-    UINT Reserved : 26;
-} D3D11_VIDEO_PROCESSOR_COLOR_SPACE;
-
-typedef struct D3D11_VIDEO_PROCESSOR_STREAM
-{
-    BOOL Enable;
-    UINT OutputIndex;
-    UINT InputFrameOrField;
-    UINT PastFrames;
-    UINT FutureFrames;
-    ID3D11VideoProcessorInputView **ppPastSurfaces;
-    ID3D11VideoProcessorInputView *pInputSurface;
-    ID3D11VideoProcessorInputView **ppFutureSurfaces;
-    ID3D11VideoProcessorInputView **ppPastSurfacesRight;
-    ID3D11VideoProcessorInputView *pInputSurfaceRight;
-    ID3D11VideoProcessorInputView **ppFutureSurfacesRight;
-} D3D11_VIDEO_PROCESSOR_STREAM;
-
-typedef struct D3D11_OMAC
-{
-      BYTE Omac[D3D11_OMAC_SIZE];
-} D3D11_OMAC;
-
-typedef struct D3D11_AUTHENTICATED_CONFIGURE_OUTPUT
-{
-    D3D11_OMAC omac;
-    GUID ConfigureType;
-    HANDLE hChannel;
-    UINT SequenceNumber;
-    HRESULT ReturnCode;
-} D3D11_AUTHENTICATED_CONFIGURE_OUTPUT;
-
-typedef struct D3D11_QUERY_DATA_TIMESTAMP_DISJOINT
-{
-    UINT64 Frequency;
-    BOOL Disjoint;
-} D3D11_QUERY_DATA_TIMESTAMP_DISJOINT;
-
-typedef struct D3D11_QUERY_DATA_PIPELINE_STATISTICS
-{
-    UINT64 IAVertices;
-    UINT64 IAPrimitives;
-    UINT64 VSInvocations;
-    UINT64 GSInvocations;
-    UINT64 GSPrimitives;
-    UINT64 CInvocations;
-    UINT64 CPrimitives;
-    UINT64 PSInvocations;
-    UINT64 HSInvocations;
-    UINT64 DSInvocations;
-    UINT64 CSInvocations;
-} D3D11_QUERY_DATA_PIPELINE_STATISTICS;
-
-typedef struct D3D11_DRAW_INSTANCED_INDIRECT_ARGS
-{
-    UINT VertexCountPerInstance;
-    UINT InstanceCount;
-    UINT StartVertexLocation;
-    UINT StartInstanceLocation;
-} D3D11_DRAW_INSTANCED_INDIRECT_ARGS;
-
-typedef struct D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS
-{
-    UINT IndexCountPerInstance;
-    UINT InstanceCount;
-    UINT StartIndexLocation;
-    INT BaseVertexLocation;
-    UINT StartInstanceLocation;
-} D3D11_DRAW_INDEXED_INSTANCED_INDIRECT_ARGS;
-
-typedef struct D3D11_AUTHENTICATED_CONFIGURE_INPUT
-{
-    D3D11_OMAC omac;
-    GUID ConfigureType;
-    HANDLE hChannel;
-    UINT SequenceNumber;
-} D3D11_AUTHENTICATED_CONFIGURE_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_INPUT
-{
-    GUID QueryType;
-    HANDLE hChannel;
-    UINT SequenceNumber;
-} D3D11_AUTHENTICATED_QUERY_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT
-{
-    D3D11_OMAC omac;
-    GUID QueryType;
-    HANDLE hChannel;
-    UINT SequenceNumber;
-    HRESULT ReturnCode;
-} D3D11_AUTHENTICATED_QUERY_OUTPUT;
-
-typedef union D3D11_AUTHENTICATED_PROTECTION_FLAGS
-{
-    struct
-    {
-        UINT ProtectionEnabled              : 1;
-        UINT OverlayOrFullscreenRequired    : 1;
-        UINT Reserved                       : 30;
-    } Flags;
-    UINT Value;
-} D3D11_AUTHENTICATED_PROTECTION_FLAGS;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    D3D11_AUTHENTICATED_PROTECTION_FLAGS ProtectionFlags;
-} D3D11_AUTHENTICATED_QUERY_PROTECTION_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType;
-} D3D11_AUTHENTICATED_QUERY_CHANNEL_TYPE_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    HANDLE DeviceHandle;
-} D3D11_AUTHENTICATED_QUERY_DEVICE_HANDLE_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT
-{
-    D3D11_AUTHENTICATED_QUERY_INPUT Input;
-    HANDLE DecoderHandle;
-} D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    HANDLE DecoderHandle;
-    HANDLE CryptoSessionHandle;
-    HANDLE DeviceHandle;
-} D3D11_AUTHENTICATED_QUERY_CRYPTO_SESSION_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    UINT RestrictedSharedResourceProcessCount;
-} D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_COUNT_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT
-{
-    D3D11_AUTHENTICATED_QUERY_INPUT Input;
-    UINT ProcessIndex;
-} D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    UINT ProcessIndex;
-    D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessIdentifier;
-    HANDLE ProcessHandle;
-} D3D11_AUTHENTICATED_QUERY_RESTRICTED_SHARED_RESOURCE_PROCESS_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    UINT UnrestrictedProtectedSharedResourceCount;
-} D3D11_AUTHENTICATED_QUERY_UNRESTRICTED_PROTECTED_SHARED_RESOURCE_COUNT_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT
-{
-    D3D11_AUTHENTICATED_QUERY_INPUT Input;
-    HANDLE DeviceHandle;
-    HANDLE CryptoSessionHandle;
-} D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    HANDLE DeviceHandle;
-    HANDLE CryptoSessionHandle;
-    UINT OutputIDCount;
-} D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_COUNT_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT
-{
-    D3D11_AUTHENTICATED_QUERY_INPUT Input;
-    HANDLE DeviceHandle;
-    HANDLE CryptoSessionHandle;
-    UINT OutputIDIndex;
-} D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    HANDLE DeviceHandle;
-    HANDLE CryptoSessionHandle;
-    UINT OutputIDIndex;
-    UINT64 OutputID;
-} D3D11_AUTHENTICATED_QUERY_OUTPUT_ID_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_ACESSIBILITY_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    D3D11_BUS_TYPE BusType;
-    BOOL AccessibleInContiguousBlocks;
-    BOOL AccessibleInNonContiguousBlocks;
-} D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    UINT EncryptionGuidCount;
-} D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_COUNT_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT
-{
-    D3D11_AUTHENTICATED_QUERY_INPUT Input;
-    UINT EncryptionGuidIndex;
-} D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    UINT EncryptionGuidIndex;
-    GUID EncryptionGuid;
-} D3D11_AUTHENTICATED_QUERY_ACCESSIBILITY_ENCRYPTION_GUID_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT
-{
-    D3D11_AUTHENTICATED_QUERY_OUTPUT Output;
-    GUID EncryptionGuid;
-} D3D11_AUTHENTICATED_QUERY_CURRENT_ACCESSIBILITY_ENCRYPTION_OUTPUT;
-
-typedef struct D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT
-{
-    D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
-    UINT StartSequenceQuery;
-    UINT StartSequenceConfigure;
-} D3D11_AUTHENTICATED_CONFIGURE_INITIALIZE_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT
-{
-    D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
-    D3D11_AUTHENTICATED_PROTECTION_FLAGS Protections;
-} D3D11_AUTHENTICATED_CONFIGURE_PROTECTION_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT
-{
-    D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
-    HANDLE DecoderHandle;
-    HANDLE CryptoSessionHandle;
-    HANDLE DeviceHandle;
-} D3D11_AUTHENTICATED_CONFIGURE_CRYPTO_SESSION_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT
-{
-    D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
-    D3D11_AUTHENTICATED_PROCESS_IDENTIFIER_TYPE ProcessType;
-    HANDLE ProcessHandle;
-    BOOL AllowAccess;
-} D3D11_AUTHENTICATED_CONFIGURE_SHARED_RESOURCE_INPUT;
-
-typedef struct D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT
-{
-    D3D11_AUTHENTICATED_CONFIGURE_INPUT Parameters;
-    GUID EncryptionGuid;
-} D3D11_AUTHENTICATED_CONFIGURE_ACCESSIBLE_ENCRYPTION_INPUT;
-
-[
-    object,
-    local,
-    uuid(1841e5c8-16b0-489b-bcc8-44cfb0d5deae)
-]
-interface ID3D11DeviceChild : IUnknown
-{
-    void GetDevice(
-        [out] ID3D11Device **ppDevice);
-    HRESULT GetPrivateData(
-        [in] REFGUID guid,
-        [in, out] UINT *pDataSize,
-        [out] void *pData);
-    HRESULT SetPrivateData(
-        [in] REFGUID guid,
-        [in] UINT DataSize,
-        [in] const void *pData);
-    HRESULT SetPrivateDataInterface(
-        [in] REFGUID guid,
-        [in] const IUnknown *pData);
-}
-
-[
-    object,
-    local,
-    uuid(4b35d0cd-1e15-4258-9c98-1b1333f6dd3b)
-]
-interface ID3D11Asynchronous : ID3D11DeviceChild
-{
-    UINT GetDataSize();
-}
-
-[
-    object,
-    local,
-    uuid(d6c00747-87b7-425e-b84d-44d108560afd)
-]
-interface ID3D11Query : ID3D11Asynchronous
-{
-    void GetDesc(
-        [out] D3D11_QUERY_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(dc8e63f3-d12b-4952-b47b-5e45026a862d)
-]
-interface ID3D11Resource : ID3D11DeviceChild
-{
-    void GetType(
-        [out] D3D11_RESOURCE_DIMENSION *pResourceDimension);
-    void SetEvictionPriority(
-        [in] UINT EvictionPriority);
-    UINT GetEvictionPriority();
-}
-
-[
-    object,
-    local,
-    uuid(839d1216-bb2e-412b-b7f4-a9dbebe08ed1)
-]
-interface ID3D11View : ID3D11DeviceChild
-{
-    void GetResource(
-        [out] ID3D11Resource **ppResource);
-}
-
-[
-    object,
-    local,
-    uuid(75b68faa-347d-4159-8f45-a0640f01cd9a)
-]
-interface ID3D11BlendState : ID3D11DeviceChild
-{
-    void GetDesc(
-        [out] D3D11_BLEND_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(48570b85-d1ee-4fcd-a250-eb350722b037)
-]
-interface ID3D11Buffer : ID3D11Resource
-{
-    void GetDesc(
-        [out] D3D11_BUFFER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(a6cd7faa-b0b7-4a2f-9436-8662a65797cb)
-]
-interface ID3D11ClassInstance : ID3D11DeviceChild
-{
-    void GetClassLinkage(
-        [out] ID3D11ClassLinkage **ppLinkage);
-    void GetDesc(
-        [out] D3D11_CLASS_INSTANCE_DESC *pDesc);
-    void GetInstanceName(
-        [out] LPSTR pInstanceName,
-        [in, out] SIZE_T *pBufferLength);
-    void GetTypeName(
-        [out] LPSTR pTypeName,
-        [in, out] SIZE_T *pBufferLength);
-}
-
-[
-    object,
-    local,
-    uuid(ddf57cba-9543-46e4-a12b-f207a0fe7fed)
-]
-interface ID3D11ClassLinkage : ID3D11DeviceChild
-{
-    HRESULT GetClassInstance(
-        [in] LPCSTR pClassInstanceName,
-        [in] UINT InstanceIndex,
-        [out] ID3D11ClassInstance **ppInstance);
-    HRESULT CreateClassInstance(
-        [in] LPCSTR pClassTypeName,
-        [in] UINT ConstantBufferOffset,
-        [in] UINT ConstantVectorOffset,
-        [in] UINT TextureOffset,
-        [in] UINT SamplerOffset,
-        [out] ID3D11ClassInstance **ppInstance);
-}
-
-[
-    object,
-    local,
-    uuid(a24bc4d1-769e-43f7-8013-98ff566c18e2)
-]
-interface ID3D11CommandList : ID3D11DeviceChild
-{
-    UINT GetContextFlags();
-}
-
-[
-    object,
-    local,
-    uuid(4f5b196e-c2bd-495e-bd01-1fded38e4969)
-]
-interface ID3D11ComputeShader : ID3D11DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(6e8c49fb-a371-4770-b440-29086022b741)
-]
-interface ID3D11Counter : ID3D11Asynchronous
-{
-    void GetDesc(
-        [out] D3D11_COUNTER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(03823efb-8d8f-4e1c-9aa2-f64bb2cbfdf1)
-]
-interface ID3D11DepthStencilState : ID3D11DeviceChild
-{
-    void GetDesc(
-        [out] D3D11_DEPTH_STENCIL_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(9fdac92a-1876-48c3-afad-25b94f84a9b6)
-]
-interface ID3D11DepthStencilView : ID3D11View
-{
-    void GetDesc(
-        [out] D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(f582c508-0f36-490c-9977-31eece268cfa)
-]
-interface ID3D11DomainShader : ID3D11DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(38325b96-effb-4022-ba02-2e795b70275c)
-]
-interface ID3D11GeometryShader : ID3D11DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(8e5c6061-628a-4c8e-8264-bbe45cb3d5dd)
-]
-interface ID3D11HullShader : ID3D11DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(e4819ddc-4cf0-4025-bd26-5de82a3e07b7)
-]
-interface ID3D11InputLayout : ID3D11DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(ea82e40d-51dc-4f33-93d4-db7c9125ae8c)
-]
-interface ID3D11PixelShader : ID3D11DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(9eb576dd-9f77-4d86-81aa-8bab5fe490e2)
-]
-interface ID3D11Predicate : ID3D11Query
-{
-}
-
-[
-    object,
-    local,
-    uuid(9bb4ab81-ab1a-4d8f-b506-fc04200b6ee7)
-]
-interface ID3D11RasterizerState : ID3D11DeviceChild
-{
-    void GetDesc(
-        [out] D3D11_RASTERIZER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(dfdba067-0b8d-4865-875b-d7b4516cc164)
-]
-interface ID3D11RenderTargetView : ID3D11View
-{
-    void GetDesc(
-        [out] D3D11_RENDER_TARGET_VIEW_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(da6fea51-564c-4487-9810-f0d0f9b4e3a5)
-]
-interface ID3D11SamplerState : ID3D11DeviceChild
-{
-    void GetDesc(
-        [out] D3D11_SAMPLER_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(b0e06fe0-8192-4e1a-b1ca-36d7414710b2)
-]
-interface ID3D11ShaderResourceView : ID3D11View
-{
-    void GetDesc(
-        [out] D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(f8fb5c27-c6b3-4f75-a4c8-439af2ef564c),
-]
-interface ID3D11Texture1D : ID3D11Resource
-{
-    void GetDesc(
-        [out] D3D11_TEXTURE1D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(6f15aaf2-d208-4e89-9ab4-489535d34f9c)
-]
-interface ID3D11Texture2D : ID3D11Resource
-{
-    void GetDesc(
-        [out] D3D11_TEXTURE2D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(037e866e-f56d-4357-a8af-9dabbe6e250e)
-]
-interface ID3D11Texture3D : ID3D11Resource
-{
-    void GetDesc(
-        [out] D3D11_TEXTURE3D_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(28acf509-7f5c-48f6-8611-f316010a6380)
-]
-interface ID3D11UnorderedAccessView : ID3D11View
-{
-    void GetDesc(
-        [out] D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc);
-}
-
-[
-    object,
-    local,
-    uuid(3b301d64-d678-4289-8897-22f8928b72f3)
-]
-interface ID3D11VertexShader : ID3D11DeviceChild
-{
-}
-
-[
-    object,
-    local,
-    uuid(c0bfa96c-e089-44fb-8eaf-26f8796190da)
-]
-interface ID3D11DeviceContext : ID3D11DeviceChild
-{
-    void VSSetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [in] ID3D11Buffer *const *ppConstantBuffers);
-    void PSSetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
-    void PSSetShader(
-        [in] ID3D11PixelShader *pPixelShader,
-        [in] ID3D11ClassInstance *const *ppClassInstances,
-        UINT NumClassInstances);
-    void PSSetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [in] ID3D11SamplerState *const *ppSamplers);
-    void VSSetShader(
-        [in] ID3D11VertexShader *pVertexShader,
-        [in] ID3D11ClassInstance *const *ppClassInstances,
-        UINT NumClassInstances);
-    void DrawIndexed(
-        [in] UINT IndexCount,
-        [in] UINT StartIndexLocation,
-        [in] INT BaseVertexLocation);
-    void Draw(
-        [in] UINT VertexCount,
-        [in] UINT StartVertexLocation);
-    HRESULT Map(
-        [in] ID3D11Resource *pResource,
-        [in] UINT Subresource,
-        [in] D3D11_MAP MapType,
-        [in] UINT MapFlags,
-        [out] D3D11_MAPPED_SUBRESOURCE *pMappedResource);
-    void Unmap(
-        [in] ID3D11Resource *pResource,
-        [in] UINT Subresource);
-    void PSSetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [in] ID3D11Buffer *const *ppConstantBuffers);
-    void IASetInputLayout(
-        [in] ID3D11InputLayout *pInputLayout);
-    void IASetVertexBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [in] ID3D11Buffer *const *ppVertexBuffers,
-        [in] const UINT *pStrides,
-        [in] const UINT *pOffsets);
-    void IASetIndexBuffer(
-        [in] ID3D11Buffer *pIndexBuffer,
-        [in] DXGI_FORMAT  Format,
-        [in] UINT Offset);
-    void DrawIndexedInstanced(
-        [in] UINT IndexCountPerInstance,
-        [in] UINT InstanceCount,
-        [in] UINT StartIndexLocation,
-        [in] INT BaseVertexLocation,
-        [in] UINT StartInstanceLocation);
-    void DrawInstanced(
-        [in] UINT VertexCountPerInstance,
-        [in] UINT InstanceCount,
-        [in] UINT StartVertexLocation,
-        [in] UINT StartInstanceLocation);
-    void GSSetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [in] ID3D11Buffer *const *ppConstantBuffers);
-    void GSSetShader(
-        [in] ID3D11GeometryShader *pShader,
-        [in] ID3D11ClassInstance *const *ppClassInstances,
-        UINT NumClassInstances);
-    void IASetPrimitiveTopology(
-        [in] D3D11_PRIMITIVE_TOPOLOGY Topology);
-    void VSSetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
-    void VSSetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [in] ID3D11SamplerState *const *ppSamplers);
-    void Begin(
-        [in] ID3D11Asynchronous *pAsync);
-    void End(
-        [in] ID3D11Asynchronous *pAsync);
-    HRESULT GetData(
-        [in] ID3D11Asynchronous *pAsync,
-        [in] void *pData,
-        [in] UINT DataSize,
-        [in] UINT GetDataFlags);
-    void SetPredication(
-        [in] ID3D11Predicate *pPredicate,
-        [in] BOOL PredicateValue);
-    void GSSetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
-    void GSSetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [in] ID3D11SamplerState *const *ppSamplers);
-    void OMSetRenderTargets(
-        [in] UINT NumViews,
-        [in] ID3D11RenderTargetView *const *ppRenderTargetViews,
-        [in] ID3D11DepthStencilView *pDepthStencilView);
-    void OMSetRenderTargetsAndUnorderedAccessViews(
-        [in] UINT NumRTVs,
-        [in] ID3D11RenderTargetView *const *ppRenderTargetViews,
-        [in] ID3D11DepthStencilView *pDepthStencilView,
-        [in] UINT UAVStartSlot,
-        [in] UINT NumUAVs,
-        [in] ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
-        [in] const UINT *pUAVInitialCounts);
-    void OMSetBlendState(
-        [in] ID3D11BlendState *pBlendState,
-        [in] const FLOAT BlendFactor[4],
-        [in] UINT SampleMask);
-    void OMSetDepthStencilState(
-        [in] ID3D11DepthStencilState *pDepthStencilState,
-        [in] UINT StencilRef);
-    void SOSetTargets(
-        [in] UINT NumBuffers,
-        [in] ID3D11Buffer *const *ppSOTargets,
-        [in] const UINT *pOffsets);
-    void DrawAuto();
-    void DrawIndexedInstancedIndirect(
-        [in] ID3D11Buffer *pBufferForArgs,
-        [in] UINT AlignedByteOffsetForArgs);
-    void DrawInstancedIndirect(
-        [in] ID3D11Buffer *pBufferForArgs,
-        [in] UINT AlignedByteOffsetForArgs);
-    void Dispatch(
-        [in] UINT ThreadGroupCountX,
-        [in] UINT ThreadGroupCountY,
-        [in] UINT ThreadGroupCountZ);
-    void DispatchIndirect(
-        [in] ID3D11Buffer *pBufferForArgs,
-        [in] UINT AlignedByteOffsetForArgs);
-    void RSSetState(
-        [in] ID3D11RasterizerState *pRasterizerState);
-    void RSSetViewports(
-        [in] UINT NumViewports,
-        [in] const D3D11_VIEWPORT *pViewports);
-    void RSSetScissorRects(
-        [in] UINT NumRects,
-        [in] const D3D11_RECT *pRects);
-    void CopySubresourceRegion(
-        [in] ID3D11Resource *pDstResource,
-        [in] UINT DstSubresource,
-        [in] UINT DstX,
-        [in] UINT DstY,
-        [in] UINT DstZ,
-        [in] ID3D11Resource *pSrcResource,
-        [in] UINT SrcSubresource,
-        [in] const D3D11_BOX *pSrcBox);
-    void CopyResource(
-        [in] ID3D11Resource *pDstResource,
-        [in] ID3D11Resource *pSrcResource);
-    void UpdateSubresource(
-        [in] ID3D11Resource *pDstResource,
-        [in] UINT DstSubresource,
-        [in] const D3D11_BOX *pDstBox,
-        [in] const void *pSrcData,
-        [in] UINT SrcRowPitch,
-        [in] UINT SrcDepthPitch);
-    void CopyStructureCount(
-        [in] ID3D11Buffer *pDstBuffer,
-        [in] UINT DstAlignedByteOffset,
-        [in] ID3D11UnorderedAccessView *pSrcView);
-    void ClearRenderTargetView(
-        [in] ID3D11RenderTargetView *pRenderTargetView,
-        [in] const FLOAT ColorRGBA[4]);
-    void ClearUnorderedAccessViewUint(
-        [in] ID3D11UnorderedAccessView *pUnorderedAccessView,
-        [in] const UINT Values[4]);
-    void ClearUnorderedAccessViewFloat(
-        [in] ID3D11UnorderedAccessView *pUnorderedAccessView,
-        [in] const FLOAT Values[4]);
-    void ClearDepthStencilView(
-        [in] ID3D11DepthStencilView *pDepthStencilView,
-        [in] UINT ClearFlags,
-        [in] FLOAT Depth,
-        [in] UINT8 Stencil);
-    void GenerateMips(
-        [in] ID3D11ShaderResourceView *pShaderResourceView);
-    void SetResourceMinLOD(
-        [in] ID3D11Resource *pResource, FLOAT MinLOD);
-    FLOAT GetResourceMinLOD(
-        [in] ID3D11Resource *pResource);
-    void ResolveSubresource(
-        [in] ID3D11Resource *pDstResource,
-        [in] UINT DstSubresource,
-        [in] ID3D11Resource *pSrcResource,
-        [in] UINT SrcSubresource,
-        [in] DXGI_FORMAT Format);
-    void ExecuteCommandList(
-        [in] ID3D11CommandList *pCommandList,
-        BOOL RestoreContextState);
-    void HSSetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
-    void HSSetShader(
-        [in] ID3D11HullShader *pHullShader,
-        [in] ID3D11ClassInstance *const *ppClassInstances,
-        UINT NumClassInstances);
-    void HSSetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [in] ID3D11SamplerState *const *ppSamplers);
-    void HSSetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [in] ID3D11Buffer *const *ppConstantBuffers);
-    void DSSetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
-    void DSSetShader(
-        [in] ID3D11DomainShader *pDomainShader,
-        [in] ID3D11ClassInstance *const *ppClassInstances,
-        UINT NumClassInstances);
-    void DSSetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [in] ID3D11SamplerState *const *ppSamplers);
-    void DSSetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [in] ID3D11Buffer *const *ppConstantBuffers);
-    void CSSetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [in] ID3D11ShaderResourceView *const *ppShaderResourceViews);
-    void CSSetUnorderedAccessViews(
-        [in] UINT StartSlot,
-        [in] UINT NumUAVs,
-        [in] ID3D11UnorderedAccessView *const *ppUnorderedAccessViews,
-        [in] const UINT *pUAVInitialCounts);
-    void CSSetShader(
-        [in] ID3D11ComputeShader *pComputeShader,
-        [in] ID3D11ClassInstance *const *ppClassInstances,
-        UINT NumClassInstances);
-    void CSSetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [in] ID3D11SamplerState *const *ppSamplers);
-    void CSSetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [in] ID3D11Buffer *const *ppConstantBuffers);
-    void VSGetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [out] ID3D11Buffer **ppConstantBuffers);
-    void PSGetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [out] ID3D11ShaderResourceView **ppShaderResourceViews);
-    void PSGetShader(
-        [out] ID3D11PixelShader **ppPixelShader,
-        [out] ID3D11ClassInstance **ppClassInstances,
-        [in, out] UINT *pNumClassInstances);
-    void PSGetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [out] ID3D11SamplerState **ppSamplers);
-    void VSGetShader(
-        [out] ID3D11VertexShader **ppVertexShader,
-        [out] ID3D11ClassInstance **ppClassInstances,
-        [in, out] UINT *pNumClassInstances);
-    void PSGetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [out] ID3D11Buffer **ppConstantBuffers);
-    void IAGetInputLayout(
-        [out] ID3D11InputLayout **ppInputLayout);
-    void IAGetVertexBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [out] ID3D11Buffer **ppVertexBuffers,
-        [out] UINT *pStrides,
-        [out] UINT *pOffsets);
-    void IAGetIndexBuffer(
-        [out] ID3D11Buffer **pIndexBuffer,
-        [out] DXGI_FORMAT* Format,
-        [out] UINT* Offset);
-    void GSGetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [out] ID3D11Buffer **ppConstantBuffers);
-    void GSGetShader(
-        [out] ID3D11GeometryShader **ppGeometryShader,
-        [out] ID3D11ClassInstance **ppClassInstances,
-        [in, out] UINT *pNumClassInstances);
-    void IAGetPrimitiveTopology(
-        [out] D3D11_PRIMITIVE_TOPOLOGY *pTopology);
-    void VSGetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [out] ID3D11ShaderResourceView **ppShaderResourceViews);
-    void VSGetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [out] ID3D11SamplerState **ppSamplers);
-    void GetPredication(
-        [out] ID3D11Predicate **ppPredicate,
-        [out] BOOL *pPredicateValue);
-    void GSGetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [out] ID3D11ShaderResourceView **ppShaderResourceViews);
-    void GSGetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [out] ID3D11SamplerState **ppSamplers);
-    void OMGetRenderTargets(
-        [in] UINT NumViews,
-        [out] ID3D11RenderTargetView **ppRenderTargetViews,
-        [out] ID3D11DepthStencilView **ppDepthStencilView);
-    void OMGetRenderTargetsAndUnorderedAccessViews(
-        [in] UINT NumRTVs,
-        [out] ID3D11RenderTargetView **ppRenderTargetViews,
-        [out] ID3D11DepthStencilView **ppDepthStencilView,
-        [in] UINT UAVStartSlot,
-        [in] UINT NumUAVs,
-        [out] ID3D11UnorderedAccessView **ppUnorderedAccessViews);
-    void OMGetBlendState(
-        [out] ID3D11BlendState **ppBlendState,
-        [out] FLOAT BlendFactor[4],
-        [out] UINT *pSampleMask);
-    void OMGetDepthStencilState(
-        [out] ID3D11DepthStencilState **ppDepthStencilState,
-        [out] UINT *pStencilRef);
-    void SOGetTargets(
-        [in] UINT NumBuffers,
-        [out] ID3D11Buffer **ppSOTargets);
-    void RSGetState(
-        [out] ID3D11RasterizerState **ppRasterizerState);
-    void RSGetViewports(
-        [in, out] UINT *pNumViewports,
-        [out] D3D11_VIEWPORT *pViewports);
-    void RSGetScissorRects(
-        [in, out] UINT *pNumRects,
-        [out] D3D11_RECT *pRects);
-    void HSGetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [out] ID3D11ShaderResourceView **ppShaderResourceViews);
-    void HSGetShader(
-        [out] ID3D11HullShader **ppHullShader,
-        [out] ID3D11ClassInstance **ppClassInstances,
-        [in, out] UINT *pNumClassInstances);
-    void HSGetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [out] ID3D11SamplerState **ppSamplers);
-    void HSGetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [out] ID3D11Buffer **ppConstantBuffers);
-    void DSGetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [out] ID3D11ShaderResourceView **ppShaderResourceViews);
-    void DSGetShader(
-        [out] ID3D11DomainShader **ppDomainShader,
-        [out] ID3D11ClassInstance **ppClassInstances,
-        [in, out] UINT *pNumClassInstances);
-    void DSGetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [out] ID3D11SamplerState **ppSamplers);
-    void DSGetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [out] ID3D11Buffer **ppConstantBuffers);
-    void CSGetShaderResources(
-        [in] UINT StartSlot,
-        [in] UINT NumViews,
-        [out] ID3D11ShaderResourceView **ppShaderResourceViews);
-    void CSGetUnorderedAccessViews(
-        [in] UINT StartSlot,
-        [in] UINT NumUAVs,
-        [out] ID3D11UnorderedAccessView **ppUnorderedAccessViews);
-    void CSGetShader(
-        [out] ID3D11ComputeShader **ppComputeShader,
-        [out] ID3D11ClassInstance **ppClassInstances,
-        [in, out] UINT *pNumClassInstances);
-    void CSGetSamplers(
-        [in] UINT StartSlot,
-        [in] UINT NumSamplers,
-        [out] ID3D11SamplerState **ppSamplers);
-    void CSGetConstantBuffers(
-        [in] UINT StartSlot,
-        [in] UINT NumBuffers,
-        [out] ID3D11Buffer **ppConstantBuffers);
-    void ClearState();
-    void Flush();
-    D3D11_DEVICE_CONTEXT_TYPE GetType();
-    UINT GetContextFlags();
-    HRESULT FinishCommandList(
-        BOOL RestoreDeferredContextState,
-        [out] ID3D11CommandList **ppCommandList);
-}
-
-[
-    object,
-    uuid(3015a308-dcbd-47aa-a747-192486d14d4a),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11AuthenticatedChannel : ID3D11DeviceChild
-{
-    HRESULT GetCertificateSize(
-        UINT *pCertificateSize);
-    HRESULT GetCertificate(
-        UINT CertificateSize,
-        BYTE *pCertificate);
-    void GetChannelHandle(
-        HANDLE *pChannelHandle);
-}
-
-[
-    object,
-    uuid(9b32f9ad-bdcc-40a6-a39d-d5c865845720),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11CryptoSession : ID3D11DeviceChild
-{
-    void GetCryptoType(
-        GUID *pCryptoType);
-    void GetDecoderProfile(
-        GUID *pDecoderProfile);
-    HRESULT GetCertificateSize(
-        UINT *pCertificateSize);
-    HRESULT GetCertificate(
-        UINT CertificateSize,
-        BYTE *pCertificate);
-    void GetCryptoSessionHandle(
-        HANDLE *pCryptoSessionHandle);
-}
-
-[
-    object,
-    uuid(3c9c5b51-995d-48d1-9b8d-fa5caeded65c),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoDecoder : ID3D11DeviceChild
-{
-    HRESULT GetCreationParameters(
-        D3D11_VIDEO_DECODER_DESC *pVideoDesc,
-        D3D11_VIDEO_DECODER_CONFIG *pConfig);
-    HRESULT GetDriverHandle(
-        HANDLE *pDriverHandle);
-}
-
-[
-    object,
-    uuid(31627037-53ab-4200-9061-05faa9ab45f9),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoProcessorEnumerator : ID3D11DeviceChild
-{
-    HRESULT GetVideoProcessorContentDesc(
-        D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pContentDesc);
-    HRESULT CheckVideoProcessorFormat(
-        DXGI_FORMAT Format,
-        UINT *pFlags);
-    HRESULT GetVideoProcessorCaps(
-        D3D11_VIDEO_PROCESSOR_CAPS *pCaps);
-    HRESULT GetVideoProcessorRateConversionCaps(
-        UINT TypeIndex,
-        D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
-    HRESULT GetVideoProcessorCustomRate(
-        UINT TypeIndex,
-        UINT CustomRateIndex,
-        D3D11_VIDEO_PROCESSOR_CUSTOM_RATE *pRate);
-    HRESULT GetVideoProcessorFilterRange(
-        D3D11_VIDEO_PROCESSOR_FILTER Filter,
-        D3D11_VIDEO_PROCESSOR_FILTER_RANGE *pRange);
-}
-
-[
-    object,
-    uuid(1d7b0652-185f-41c6-85ce-0c5be3d4ae6c),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoProcessor : ID3D11DeviceChild
-{
-    void GetContentDesc(
-        D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc);
-    void GetRateConversionCaps(
-        D3D11_VIDEO_PROCESSOR_RATE_CONVERSION_CAPS *pCaps);
-}
-
-[
-    object,
-    uuid(c2931aea-2a85-4f20-860f-fba1fd256e18),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoDecoderOutputView : ID3D11View
-{
-    void GetDesc(
-        D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc);
-}
-
-[
-    object,
-    uuid(11ec5a5f-51dc-4945-ab34-6e8c21300ea5),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoProcessorInputView : ID3D11View
-{
-    void GetDesc(
-        D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc);
-}
-
-[
-    object,
-    uuid(a048285e-25a9-4527-bd93-d68b68c44254),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoProcessorOutputView : ID3D11View
-{
-    void GetDesc(
-        D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc);
-}
-
-[
-    object,
-    uuid(10ec4d5b-975a-4689-b9e4-d0aac30fe333),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoDevice : IUnknown
-{
-    HRESULT CreateVideoDecoder(
-        const D3D11_VIDEO_DECODER_DESC *pVideoDesc,
-        const D3D11_VIDEO_DECODER_CONFIG *pConfig,
-        ID3D11VideoDecoder **ppDecoder);
-    HRESULT CreateVideoProcessor(
-        ID3D11VideoProcessorEnumerator *pEnum,
-        UINT RateConversionIndex,
-        ID3D11VideoProcessor **ppVideoProcessor);
-    HRESULT CreateAuthenticatedChannel(
-        D3D11_AUTHENTICATED_CHANNEL_TYPE ChannelType,
-        ID3D11AuthenticatedChannel **ppAuthenticatedChannel);
-    HRESULT CreateCryptoSession(
-        const GUID *pCryptoType,
-        const GUID *pDecoderProfile,
-        const GUID *pKeyExchangeType,
-        ID3D11CryptoSession **ppCryptoSession);
-    HRESULT CreateVideoDecoderOutputView(
-        ID3D11Resource *pResource,
-        const D3D11_VIDEO_DECODER_OUTPUT_VIEW_DESC *pDesc,
-        ID3D11VideoDecoderOutputView **ppVDOVView);
-    HRESULT CreateVideoProcessorInputView(
-        ID3D11Resource *pResource,
-        ID3D11VideoProcessorEnumerator *pEnum,
-        const D3D11_VIDEO_PROCESSOR_INPUT_VIEW_DESC *pDesc,
-        ID3D11VideoProcessorInputView **ppVPIView);
-    HRESULT CreateVideoProcessorOutputView(
-        ID3D11Resource *pResource,
-        ID3D11VideoProcessorEnumerator *pEnum,
-        const D3D11_VIDEO_PROCESSOR_OUTPUT_VIEW_DESC *pDesc,
-        ID3D11VideoProcessorOutputView **ppVPOView);
-    HRESULT CreateVideoProcessorEnumerator(
-        const D3D11_VIDEO_PROCESSOR_CONTENT_DESC *pDesc,
-        ID3D11VideoProcessorEnumerator **ppEnum);
-    UINT GetVideoDecoderProfileCount();
-    HRESULT GetVideoDecoderProfile(
-        UINT Index,
-        GUID *pDecoderProfile);
-    HRESULT CheckVideoDecoderFormat(
-        const GUID *pDecoderProfile,
-        DXGI_FORMAT Format,
-        BOOL *pSupported);
-    HRESULT GetVideoDecoderConfigCount(
-        const D3D11_VIDEO_DECODER_DESC *pDesc,
-        UINT *pCount);
-    HRESULT GetVideoDecoderConfig(
-        const D3D11_VIDEO_DECODER_DESC *pDesc,
-        UINT Index,
-        D3D11_VIDEO_DECODER_CONFIG *pConfig);
-    HRESULT GetContentProtectionCaps(
-        const GUID *pCryptoType,
-        const GUID *pDecoderProfile,
-        D3D11_VIDEO_CONTENT_PROTECTION_CAPS *pCaps);
-    HRESULT CheckCryptoKeyExchange(
-        const GUID *pCryptoType,
-        const GUID *pDecoderProfile,
-        UINT Index,
-        GUID *pKeyExchangeType);
-    HRESULT SetPrivateData(
-        REFGUID guid,
-        UINT DataSize,
-        const void *pData);
-    HRESULT SetPrivateDataInterface(
-        REFGUID guid,
-        const IUnknown *pData);
-}
-
-[
-    object,
-    uuid(61f21c45-3c0e-4a74-9cea-67100d9ad5e4),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoContext : ID3D11DeviceChild
-{
-    HRESULT GetDecoderBuffer(
-        [in] ID3D11VideoDecoder *decoder,
-        [in] D3D11_VIDEO_DECODER_BUFFER_TYPE type,
-        [out] UINT *buffer_size,
-        [out] void **buffer
-    );
-    HRESULT ReleaseDecoderBuffer(
-        [in] ID3D11VideoDecoder *decoder,
-        [in] D3D11_VIDEO_DECODER_BUFFER_TYPE type
-    );
-    HRESULT DecoderBeginFrame(
-        [in] ID3D11VideoDecoder *decoder,
-        [in] ID3D11VideoDecoderOutputView *view,
-        [in] UINT key_size,
-        [in] const void *key
-    );
-    HRESULT DecoderEndFrame(
-        [in] ID3D11VideoDecoder *decoder
-    );
-    HRESULT SubmitDecoderBuffers(
-        [in] ID3D11VideoDecoder *decoder,
-        [in] UINT buffers_count,
-        [in] const D3D11_VIDEO_DECODER_BUFFER_DESC *buffer_desc
-    );
-    HRESULT DecoderExtension(
-        [in] ID3D11VideoDecoder *decoder,
-        [in] const D3D11_VIDEO_DECODER_EXTENSION *extension
-    );
-    void VideoProcessorSetOutputTargetRect(
-        [in] ID3D11VideoProcessor *processor,
-        [in] BOOL enable,
-        [in] const RECT *rect
-    );
-    void VideoProcessorSetOutputBackgroundColor(
-        [in] ID3D11VideoProcessor *processor,
-        [in] BOOL y_cb_cr,
-        [in] const D3D11_VIDEO_COLOR *color
-    );
-    void VideoProcessorSetOutputColorSpace(
-        [in] ID3D11VideoProcessor *processor,
-        [in] const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space
-    );
-    void VideoProcessorSetOutputAlphaFillMode(
-        [in] ID3D11VideoProcessor *processor,
-        [in] D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE alpha_fill_mode,
-        [in] UINT stream_idx
-    );
-    void VideoProcessorSetOutputConstriction(
-        [in] ID3D11VideoProcessor *processor,
-        [in] BOOL enable,
-        [in] SIZE size
-    );
-    void VideoProcessorSetOutputStereoMode(
-        [in] ID3D11VideoProcessor *processor,
-        [in] BOOL enable
-    );
-    HRESULT VideoProcessorSetOutputExtension(
-        [in] ID3D11VideoProcessor *processor,
-        [in] const GUID *guid,
-        [in] UINT data_size,
-        [in] void *data
-    );
-    void VideoProcessorGetOutputTargetRect(
-        [in] ID3D11VideoProcessor *processor,
-        [out] BOOL *enabled,
-        [out] RECT *rect
-    );
-    void VideoProcessorGetOutputBackgroundColor(
-        [in] ID3D11VideoProcessor *processor,
-        [out] BOOL *y_cb_cr,
-        [out] D3D11_VIDEO_COLOR *color
-    );
-    void VideoProcessorGetOutputColorSpace(
-        [in] ID3D11VideoProcessor *processor,
-        [out] D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space
-    );
-    void VideoProcessorGetOutputAlphaFillMode(
-        [in] ID3D11VideoProcessor *processor,
-        [out] D3D11_VIDEO_PROCESSOR_ALPHA_FILL_MODE *alpha_fill_mode,
-        [out] UINT *stream_idx
-    );
-    void VideoProcessorGetOutputConstriction(
-        [in] ID3D11VideoProcessor *processor,
-        [out] BOOL *enabled,
-        [out] SIZE *size
-    );
-    void VideoProcessorGetOutputStereoMode(
-        [in] ID3D11VideoProcessor *processor,
-        [out] BOOL *enabled
-    );
-    HRESULT VideoProcessorGetOutputExtension(
-        [in] ID3D11VideoProcessor *processor,
-        [in] const GUID *guid,
-        [in] UINT data_size,
-        [out] void *data
-    );
-    void VideoProcessorSetStreamFrameFormat(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] D3D11_VIDEO_FRAME_FORMAT format
-    );
-    void VideoProcessorSetStreamColorSpace(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] const D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space
-    );
-    void VideoProcessorSetStreamOutputRate(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] D3D11_VIDEO_PROCESSOR_OUTPUT_RATE rate,
-        [in] BOOL repeat,
-        [in] const DXGI_RATIONAL *custom_rate
-    );
-    void VideoProcessorSetStreamSourceRect(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] BOOL enable,
-        [in] const RECT *rect
-    );
-    void VideoProcessorSetStreamDestRect(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] BOOL enable,
-        [in] const RECT *rect
-    );
-    void VideoProcessorSetStreamAlpha(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] BOOL enable,
-        [in] float alpha
-    );
-    void VideoProcessorSetStreamPalette(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] UINT entry_count,
-        [in] const UINT *entries
-    );
-    void VideoProcessorSetStreamPixelAspectRatio(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] BOOL enable,
-        [in] const DXGI_RATIONAL *src_aspect_ratio,
-        [in] const DXGI_RATIONAL *dst_aspect_ratio
-    );
-    void VideoProcessorSetStreamLumaKey(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] BOOL enable,
-        [in] float lower,
-        [in] float upper
-    );
-    void VideoProcessorSetStreamStereoFormat(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] BOOL enable,
-        [in] D3D11_VIDEO_PROCESSOR_STEREO_FORMAT format,
-        [in] BOOL left_view_frame0,
-        [in] BOOL base_view_frame0,
-        [in] D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE flip_mode,
-        [in] int mono_offset
-    );
-    void VideoProcessorSetStreamAutoProcessingMode(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] BOOL enable
-    );
-    void VideoProcessorSetStreamFilter(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] D3D11_VIDEO_PROCESSOR_FILTER filter,
-        [in] BOOL enable,
-        [in] int level
-    );
-    HRESULT VideoProcessorSetStreamExtension(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] const GUID *guid,
-        [in] UINT data_size,
-        [in] void *data
-    );
-    void VideoProcessorGetStreamFrameFormat(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] D3D11_VIDEO_FRAME_FORMAT *format
-    );
-    void VideoProcessorGetStreamColorSpace(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] D3D11_VIDEO_PROCESSOR_COLOR_SPACE *color_space
-    );
-    void VideoProcessorGetStreamOutputRate(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] D3D11_VIDEO_PROCESSOR_OUTPUT_RATE *rate,
-        [out] BOOL *repeat,
-        [out] DXGI_RATIONAL *custom_rate
-    );
-    void VideoProcessorGetStreamSourceRect(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] BOOL *enabled,
-        [out] RECT *rect
-    );
-    void VideoProcessorGetStreamDestRect(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] BOOL *enabled,
-        [out] RECT *rect
-    );
-    void VideoProcessorGetStreamAlpha(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] BOOL *enabled,
-        [out] float *alpha
-    );
-    void VideoProcessorGetStreamPalette(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] UINT entry_count,
-        [out] UINT *entries
-    );
-    void VideoProcessorGetStreamPixelAspectRatio(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] BOOL *enabled,
-        [out] DXGI_RATIONAL *src_aspect_ratio,
-        [out] DXGI_RATIONAL *dst_aspect_ratio
-    );
-    void VideoProcessorGetStreamLumaKey(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] BOOL *enabled,
-        [out] float *lower,
-        [out] float *upper
-    );
-    void VideoProcessorGetStreamStereoFormat(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] BOOL *enabled,
-        [out] D3D11_VIDEO_PROCESSOR_STEREO_FORMAT *format,
-        [out] BOOL *left_view_frame0,
-        [out] BOOL *base_view_frame0,
-        [out] D3D11_VIDEO_PROCESSOR_STEREO_FLIP_MODE *flip_mode,
-        [out] int *mono_offset
-    );
-    void VideoProcessorGetStreamAutoProcessingMode(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] BOOL *enabled
-    );
-    void VideoProcessorGetStreamFilter(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] D3D11_VIDEO_PROCESSOR_FILTER filter,
-        [out] BOOL *enabled,
-        [out] int *level
-    );
-    HRESULT VideoProcessorGetStreamExtension(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] const GUID *guid,
-        [in] UINT data_size,
-        [out] void *data
-    );
-    HRESULT VideoProcessorBlt(
-        [in] ID3D11VideoProcessor *processor,
-        [in] ID3D11VideoProcessorOutputView *view,
-        [in] UINT frame_idx,
-        [in] UINT stream_count,
-        [in] const D3D11_VIDEO_PROCESSOR_STREAM *streams
-    );
-    HRESULT NegotiateCryptoSessionKeyExchange(
-        [in] ID3D11CryptoSession *session,
-        [in] UINT data_size,
-        [in, out] void *data
-    );
-    void EncryptionBlt(
-        [in] ID3D11CryptoSession *session,
-        [in] ID3D11Texture2D *src_surface,
-        [in] ID3D11Texture2D *dst_surface,
-        [in] UINT iv_size,
-        [in, out] void *iv
-    );
-    void DecryptionBlt(
-        [in] ID3D11CryptoSession *session,
-        [in] ID3D11Texture2D *src_surface,
-        [in] ID3D11Texture2D *dst_surface,
-        [in] D3D11_ENCRYPTED_BLOCK_INFO *block_info,
-        [in] UINT key_size,
-        [in] const void *key,
-        [in] UINT iv_size,
-        [in, out] void *iv
-    );
-    void StartSessionKeyRefresh(
-        [in] ID3D11CryptoSession *session,
-        [in] UINT random_number_size,
-        [out] void *random_number
-    );
-    void FinishSessionKeyRefresh(
-        [in] ID3D11CryptoSession *session
-    );
-    HRESULT GetEncryptionBltKey(
-        [in] ID3D11CryptoSession *session,
-        [in] UINT key_size,
-        [out] void *key
-    );
-    HRESULT NegotiateAuthenticatedChannelKeyExchange(
-        [in] ID3D11AuthenticatedChannel *channel,
-        [in] UINT data_size,
-        [in, out] void *data
-    );
-    HRESULT QueryAuthenticatedChannel(
-        [in] ID3D11AuthenticatedChannel *channel,
-        [in] UINT input_size,
-        [in] const void *input,
-        [in] UINT output_size,
-        [out] void *output
-    );
-    HRESULT ConfigureAuthenticatedChannel(
-        [in] ID3D11AuthenticatedChannel *channel,
-        [in] UINT input_size,
-        [in] const void *input,
-        [out] D3D11_AUTHENTICATED_CONFIGURE_OUTPUT *output
-    );
-    void VideoProcessorSetStreamRotation(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [in] BOOL enable,
-        [in] D3D11_VIDEO_PROCESSOR_ROTATION rotation
-    );
-    void VideoProcessorGetStreamRotation(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_idx,
-        [out] BOOL *enable,
-        [out] D3D11_VIDEO_PROCESSOR_ROTATION *rotation
-    );
-}
-
-[
-    object,
-    local,
-    uuid(db6f6ddb-ac77-4e88-8253-819df9bbf140)
-]
-interface ID3D11Device : IUnknown
-{
-    HRESULT CreateBuffer(
-        [in] const D3D11_BUFFER_DESC *pDesc,
-        [in] const D3D11_SUBRESOURCE_DATA *pInitialData,
-        [out] ID3D11Buffer **ppBuffer);
-    HRESULT CreateTexture1D(
-        [in] const D3D11_TEXTURE1D_DESC *pDesc,
-        [in] const D3D11_SUBRESOURCE_DATA *pInitialData,
-        [out] ID3D11Texture1D **ppTexture1D);
-    HRESULT CreateTexture2D(
-        [in] const D3D11_TEXTURE2D_DESC *pDesc,
-        [in] const D3D11_SUBRESOURCE_DATA *pInitialData,
-        [out] ID3D11Texture2D **ppTexture2D);
-    HRESULT CreateTexture3D(
-        [in] const D3D11_TEXTURE3D_DESC *pDesc,
-        [in] const D3D11_SUBRESOURCE_DATA *pInitialData,
-        [out] ID3D11Texture3D **ppTexture3D);
-    HRESULT CreateShaderResourceView(
-        [in] ID3D11Resource *pResource,
-        [in] const D3D11_SHADER_RESOURCE_VIEW_DESC *pDesc,
-        [out] ID3D11ShaderResourceView **ppSRView);
-    HRESULT CreateUnorderedAccessView(
-        [in] ID3D11Resource *pResource,
-        [in] const D3D11_UNORDERED_ACCESS_VIEW_DESC *pDesc,
-        [out] ID3D11UnorderedAccessView **ppUAView);
-    HRESULT CreateRenderTargetView(
-        [in] ID3D11Resource *pResource,
-        [in] const D3D11_RENDER_TARGET_VIEW_DESC *pDesc,
-        [out] ID3D11RenderTargetView **ppRTView);
-    HRESULT CreateDepthStencilView(
-        [in] ID3D11Resource *pResource,
-        [in] const D3D11_DEPTH_STENCIL_VIEW_DESC *pDesc,
-        [out] ID3D11DepthStencilView **ppDepthStencilView);
-    HRESULT CreateInputLayout(
-        [in] const D3D11_INPUT_ELEMENT_DESC *pInputElementDescs,
-        [in] UINT NumElements,
-        [in] const void *pShaderBytecodeWithInputSignature,
-        [in] SIZE_T BytecodeLength,
-        [out] ID3D11InputLayout **ppInputLayout);
-    HRESULT CreateVertexShader(
-        [in] const void *pShaderBytecode,
-        [in] SIZE_T BytecodeLength,
-        [in] ID3D11ClassLinkage *pClassLinkage,
-        [out] ID3D11VertexShader **ppVertexShader);
-    HRESULT CreateGeometryShader(
-        [in] const void *pShaderBytecode,
-        [in] SIZE_T BytecodeLength,
-        [in] ID3D11ClassLinkage *pClassLinkage,
-        [out] ID3D11GeometryShader **ppGeometryShader);
-    HRESULT CreateGeometryShaderWithStreamOutput(
-        [in] const void *pShaderBytecode,
-        [in] SIZE_T BytecodeLength,
-        [in] const D3D11_SO_DECLARATION_ENTRY *pSODeclaration,
-        [in] UINT NumEntries,
-        [in] const UINT *pBufferStrides,
-        [in] UINT NumStrides,
-        [in] UINT RasterizedStream,
-        [in] ID3D11ClassLinkage *pClassLinkage,
-        [out] ID3D11GeometryShader **ppGeometryShader);
-    HRESULT CreatePixelShader(
-        [in] const void *pShaderBytecode,
-        [in] SIZE_T BytecodeLength,
-        [in] ID3D11ClassLinkage *pClassLinkage,
-        [out] ID3D11PixelShader **ppPixelShader);
-    HRESULT CreateHullShader(
-        [in] const void *pShaderBytecode,
-        [in] SIZE_T BytecodeLength,
-        [in] ID3D11ClassLinkage *pClassLinkage,
-        [out] ID3D11HullShader **ppHullShader);
-    HRESULT CreateDomainShader(
-        [in] const void *pShaderBytecode,
-        [in] SIZE_T BytecodeLength,
-        [in] ID3D11ClassLinkage *pClassLinkage,
-        [out] ID3D11DomainShader **ppDomainShader);
-    HRESULT CreateComputeShader(
-        [in] const void *pShaderBytecode,
-        [in] SIZE_T BytecodeLength,
-        [in] ID3D11ClassLinkage *pClassLinkage,
-        [out] ID3D11ComputeShader **ppComputeShader);
-    HRESULT CreateClassLinkage(
-        [out] ID3D11ClassLinkage **ppLinkage);
-    HRESULT CreateBlendState(
-        [in] const D3D11_BLEND_DESC *pBlendStateDesc,
-        [out] ID3D11BlendState **ppBlendState);
-    HRESULT CreateDepthStencilState(
-        [in] const D3D11_DEPTH_STENCIL_DESC *pDepthStencilDesc,
-        [out] ID3D11DepthStencilState **ppDepthStencilState);
-    HRESULT CreateRasterizerState(
-        [in] const D3D11_RASTERIZER_DESC *pRasterizerDesc,
-        [out] ID3D11RasterizerState **ppRasterizerState);
-    HRESULT CreateSamplerState(
-        [in] const D3D11_SAMPLER_DESC *pSamplerDesc,
-        [out] ID3D11SamplerState **ppSamplerState);
-    HRESULT CreateQuery(
-        [in] const D3D11_QUERY_DESC *pQueryDesc,
-        [out] ID3D11Query **ppQuery);
-    HRESULT CreatePredicate(
-        [in] const D3D11_QUERY_DESC *pPredicateDesc,
-        [out] ID3D11Predicate **ppPredicate);
-    HRESULT CreateCounter(
-        [in] const D3D11_COUNTER_DESC *pCounterDesc,
-        [out] ID3D11Counter **ppCounter);
-    HRESULT CreateDeferredContext(
-        UINT ContextFlags,
-        [out] ID3D11DeviceContext **ppDeferredContext);
-    HRESULT OpenSharedResource(
-        [in] HANDLE hResource,
-        [in] REFIID ReturnedInterface,
-        [out] void  **ppResource);
-    HRESULT CheckFormatSupport(
-        [in] DXGI_FORMAT Format,
-        [out] UINT *pFormatSupport);
-    HRESULT CheckMultisampleQualityLevels(
-        [in] DXGI_FORMAT Format,
-        [in] UINT        SampleCount,
-        [out] UINT *pNumQualityLevels);
-    void CheckCounterInfo(
-        [out] D3D11_COUNTER_INFO *pCounterInfo);
-    HRESULT CheckCounter(
-        [in] const D3D11_COUNTER_DESC *pDesc,
-        [out] D3D11_COUNTER_TYPE *pType,
-        [out] UINT *pActiveCounters,
-        [out] LPSTR szName,
-        [in, out] UINT *pNameLength,
-        [out] LPSTR szUnits,
-        [in, out] UINT *pUnitsLength,
-        [out] LPSTR szDescription,
-        [in, out] UINT *pDescriptionLength);
-    HRESULT CheckFeatureSupport(
-        D3D11_FEATURE Feature,
-        [out] void *pFeatureSupportData,
-        UINT FeatureSupportDataSize);
-    HRESULT GetPrivateData(
-        [in] REFGUID guid,
-        [in, out] UINT *pDataSize,
-        [out] void *pData);
-    HRESULT SetPrivateData(
-        [in] REFGUID guid,
-        [in] UINT DataSize,
-        [in] const void *pData);
-    HRESULT SetPrivateDataInterface(
-        [in] REFGUID guid,
-        [in] const IUnknown *pData);
-    D3D_FEATURE_LEVEL GetFeatureLevel();
-    UINT GetCreationFlags();
-    HRESULT GetDeviceRemovedReason();
-    void GetImmediateContext(
-        [out] ID3D11DeviceContext **ppImmediateContext);
-    HRESULT SetExceptionMode(UINT RaiseFlags);
-    UINT GetExceptionMode();
-}
-
-typedef enum D3D11_CREATE_DEVICE_FLAG {
-    D3D11_CREATE_DEVICE_SINGLETHREADED  = 0x0001,
-    D3D11_CREATE_DEVICE_DEBUG           = 0x0002,
-    D3D11_CREATE_DEVICE_SWITCH_TO_REF   = 0x0004,
-    D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS = 0x0008,
-    D3D11_CREATE_DEVICE_BGRA_SUPPORT    = 0x0020,
-    D3D11_CREATE_DEVICE_DEBUGGABLE      = 0x0040,
-    D3D11_CREATE_DEVICE_PREVENT_ALTERING_LAYER_SETTINGS_FROM_REGISTRY = 0x0080,
-    D3D11_CREATE_DEVICE_DISABLE_GPU_TIMEOUT = 0x0100,
-    D3D11_CREATE_DEVICE_VIDEO_SUPPORT   = 0x0800
-} D3D11_CREATE_DEVICE_FLAG;
-
-typedef enum D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT
-{
-    D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_INPUT  = 0x0001,
-    D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT_OUTPUT = 0x0002,
-} D3D11_VIDEO_PROCESSOR_FORMAT_SUPPORT;
-
-const UINT D3D11_SDK_VERSION = 7;
-
-cpp_quote("#include <d3d10_1.h>")
-cpp_quote("#ifndef D3D11_IGNORE_SDK_LAYERS")
-cpp_quote("# include <d3d11sdklayers.h>")
-cpp_quote("#endif")
-cpp_quote("#include <d3d10misc.h>")
-cpp_quote("#include <d3d10shader.h>")
-cpp_quote("#include <d3d10effect.h>")
-cpp_quote("#include <d3d10_1shader.h>")
-
-const UINT _FACD3D11 = 0x87c;
-cpp_quote("#define MAKE_D3D11_HRESULT(code) MAKE_HRESULT(SEVERITY_ERROR, _FACD3D11, code)")
-
-cpp_quote("typedef HRESULT (WINAPI* PFN_D3D11_CREATE_DEVICE)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,")
-cpp_quote("    const D3D_FEATURE_LEVEL*,UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);")
-
-cpp_quote("HRESULT WINAPI D3D11CreateDevice(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,const D3D_FEATURE_LEVEL*," )
-cpp_quote("    UINT,UINT,ID3D11Device**,D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);")
-
-cpp_quote("typedef HRESULT (WINAPI *PFN_D3D11_CREATE_DEVICE_AND_SWAP_CHAIN)(IDXGIAdapter*,D3D_DRIVER_TYPE,HMODULE,UINT,")
-cpp_quote("    const D3D_FEATURE_LEVEL*,UINT,UINT,const DXGI_SWAP_CHAIN_DESC*,IDXGISwapChain**,ID3D11Device**,")
-cpp_quote("    D3D_FEATURE_LEVEL*,ID3D11DeviceContext**);")
-
-[local] HRESULT __stdcall D3D11CreateDeviceAndSwapChain(IDXGIAdapter *adapter, D3D_DRIVER_TYPE driver_type,
-        HMODULE swrast, UINT flags, const D3D_FEATURE_LEVEL *feature_levels, UINT levels, UINT sdk_version,
-        const DXGI_SWAP_CHAIN_DESC *swapchain_desc, IDXGISwapChain **swapchain, ID3D11Device **device,
-        D3D_FEATURE_LEVEL *obtained_feature_level, ID3D11DeviceContext **immediate_context);
lib/libc/include/any-windows-any/d3d11_1.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d11_1.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d11_1.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_1.idl
@@ -1,547 +0,0 @@
-/*
- * Copyright 2014 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 "dxgi1_2.idl";
-import "d3dcommon.idl";
-import "d3d11.idl";
-
-typedef enum D3D11_LOGIC_OP
-{
-    D3D11_LOGIC_OP_CLEAR = 0,
-    D3D11_LOGIC_OP_SET,
-    D3D11_LOGIC_OP_COPY,
-    D3D11_LOGIC_OP_COPY_INVERTED,
-    D3D11_LOGIC_OP_NOOP,
-    D3D11_LOGIC_OP_INVERT,
-    D3D11_LOGIC_OP_AND,
-    D3D11_LOGIC_OP_NAND,
-    D3D11_LOGIC_OP_OR,
-    D3D11_LOGIC_OP_NOR,
-    D3D11_LOGIC_OP_XOR,
-    D3D11_LOGIC_OP_EQUIV,
-    D3D11_LOGIC_OP_AND_REVERSE,
-    D3D11_LOGIC_OP_AND_INVERTED,
-    D3D11_LOGIC_OP_OR_REVERSE,
-    D3D11_LOGIC_OP_OR_INVERTED
-} D3D11_LOGIC_OP;
-
-typedef enum D3D11_COPY_FLAGS
-{
-    D3D11_COPY_NO_OVERWRITE                                                         = 0x00000001,
-    D3D11_COPY_DISCARD                                                              = 0x00000002,
-} D3D11_COPY_FLAGS;
-
-typedef enum D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG
-{
-    D3D11_1_CREATE_DEVICE_CONTEXT_STATE_SINGLETHREADED                              = 0x1,
-} D3D11_1_CREATE_DEVICE_CONTEXT_STATE_FLAG;
-
-typedef enum D3D11_VIDEO_DECODER_CAPS
-{
-    D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE                                             = 0x01,
-    D3D11_VIDEO_DECODER_CAPS_NON_REAL_TIME                                          = 0x02,
-    D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_DYNAMIC                                     = 0x04,
-    D3D11_VIDEO_DECODER_CAPS_DOWNSAMPLE_REQUIRED                                    = 0x08,
-    D3D11_VIDEO_DECODER_CAPS_UNSUPPORTED                                            = 0x10,
-} D3D11_VIDEO_DECODER_CAPS;
-
-typedef enum D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS
-{
-    D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_ROTATION                 = 0x01,
-    D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_RESIZE                   = 0x02,
-    D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_MULTIPLANE_OVERLAY_COLOR_SPACE_CONVERSION   = 0x04,
-    D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINT_TRIPLE_BUFFER_OUTPUT                        = 0x08,
-} D3D11_VIDEO_PROCESSOR_BEHAVIOR_HINTS;
-
-typedef enum D3D11_CRYPTO_SESSION_STATUS
-{
-    D3D11_CRYPTO_SESSION_STATUS_OK                                                  = 0x0,
-    D3D11_CRYPTO_SESSION_STATUS_KEY_LOST                                            = 0x1,
-    D3D11_CRYPTO_SESSION_STATUS_KEY_AND_CONTENT_LOST                                = 0x2,
-} D3D11_CRYPTO_SESSION_STATUS;
-
-typedef struct D3D11_RENDER_TARGET_BLEND_DESC1
-{
-    BOOL           BlendEnable;
-    BOOL           LogicOpEnable;
-    D3D11_BLEND    SrcBlend;
-    D3D11_BLEND    DestBlend;
-    D3D11_BLEND_OP BlendOp;
-    D3D11_BLEND    SrcBlendAlpha;
-    D3D11_BLEND    DestBlendAlpha;
-    D3D11_BLEND_OP BlendOpAlpha;
-    D3D11_LOGIC_OP LogicOp;
-    UINT8          RenderTargetWriteMask;
-} D3D11_RENDER_TARGET_BLEND_DESC1;
-
-typedef struct D3D11_BLEND_DESC1
-{
-    BOOL                            AlphaToCoverageEnable;
-    BOOL                            IndependentBlendEnable;
-    D3D11_RENDER_TARGET_BLEND_DESC1 RenderTarget[D3D11_SIMULTANEOUS_RENDER_TARGET_COUNT];
-} D3D11_BLEND_DESC1;
-
-typedef struct D3D11_RASTERIZER_DESC1
-{
-    D3D11_FILL_MODE FillMode;
-    D3D11_CULL_MODE CullMode;
-    BOOL            FrontCounterClockwise;
-    INT             DepthBias;
-    FLOAT           DepthBiasClamp;
-    FLOAT           SlopeScaledDepthBias;
-    BOOL            DepthClipEnable;
-    BOOL            ScissorEnable;
-    BOOL            MultisampleEnable;
-    BOOL            AntialiasedLineEnable;
-    UINT            ForcedSampleCount;
-} D3D11_RASTERIZER_DESC1;
-
-typedef struct D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK
-{
-    UINT ClearSize;
-    UINT EncryptedSize;
-} D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK;
-
-typedef struct D3D11_VIDEO_DECODER_BUFFER_DESC1
-{
-    D3D11_VIDEO_DECODER_BUFFER_TYPE BufferType;
-    UINT DataOffset;
-    UINT DataSize;
-    void *pIV;
-    UINT IVSize;
-    D3D11_VIDEO_DECODER_SUB_SAMPLE_MAPPING_BLOCK *pSubSampleMappingBlock;
-    UINT SubSampleMappingCount;
-} D3D11_VIDEO_DECODER_BUFFER_DESC1;
-
-typedef struct D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION
-{
-    ID3D11CryptoSession *pCryptoSession;
-    UINT BlobSize;
-    void *pBlob;
-    GUID *pKeyInfoId;
-    UINT PrivateDataSize;
-    void *pPrivateData;
-} D3D11_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION;
-
-typedef struct D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT
-{
-    BOOL Enable;
-    UINT Width;
-    UINT Height;
-    DXGI_FORMAT Format;
-} D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT;
-
-typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA
-{
-    UINT PrivateDataSize;
-    UINT HWProtectionDataSize;
-    BYTE pbInput[4];
-} D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA;
-
-typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA
-{
-    UINT PrivateDataSize;
-    UINT MaxHWProtectionDataSize;
-    UINT HWProtectionDataSize;
-    UINT64 TransportTime;
-    UINT64 ExecutionTime;
-    BYTE pbOutput[4];
-} D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA;
-
-typedef struct D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA
-{
-    UINT HWProtectionFunctionID;
-    D3D11_KEY_EXCHANGE_HW_PROTECTION_INPUT_DATA *pInputData;
-    D3D11_KEY_EXCHANGE_HW_PROTECTION_OUTPUT_DATA *pOutputData;
-    HRESULT Status;
-} D3D11_KEY_EXCHANGE_HW_PROTECTION_DATA;
-
-typedef struct D3D11_VIDEO_SAMPLE_DESC
-{
-    UINT Width;
-    UINT Height;
-    DXGI_FORMAT Format;
-    DXGI_COLOR_SPACE_TYPE ColorSpace;
-} D3D11_VIDEO_SAMPLE_DESC;
-
-[
-    uuid(cc86fabe-da55-401d-85e7-e3c9de2877e9),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11BlendState1 : ID3D11BlendState
-{
-    void GetDesc1(D3D11_BLEND_DESC1 *pDesc);
-}
-
-[
-    uuid(5c1e0d8a-7c23-48f9-8c59-a92958ceff11),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3DDeviceContextState : ID3D11DeviceChild
-{
-}
-
-[
-    uuid(bb2c6faa-b5fb-4082-8e6b-388b8cfa90e1),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11DeviceContext1 : ID3D11DeviceContext
-{
-    void CopySubresourceRegion1(
-            ID3D11Resource *pDstResource,
-            UINT DstSubresource,
-            UINT DstX,
-            UINT DstY,
-            UINT DstZ,
-            ID3D11Resource *pSrcResource,
-            UINT SrcSubresource,
-            const D3D11_BOX *pSrcBox,
-            UINT CopyFlags);
-
-    void UpdateSubresource1(
-            ID3D11Resource *pDstResource,
-            UINT DstSubresource,
-            const D3D11_BOX *pDstBox,
-            const void *pSrcData,
-            UINT SrcRowPitch,
-            UINT SrcDepthPitch,
-            UINT CopyFlags);
-
-    void DiscardResource(ID3D11Resource *pResource);
-
-    void DiscardView(ID3D11View *pResourceView);
-
-    void VSSetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer *const *ppConstantBuffers,
-            const UINT *pFirstConstant,
-            const UINT *pNumConstants);
-
-    void HSSetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer *const *ppConstantBuffers,
-            const UINT *pFirstConstant,
-            const UINT *pNumConstants);
-
-    void DSSetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer *const *ppConstantBuffers,
-            const UINT *pFirstConstant,
-            const UINT *pNumConstants);
-
-    void GSSetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer *const *ppConstantBuffers,
-            const UINT *pFirstConstant,
-            const UINT *pNumConstants);
-
-    void PSSetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer *const *ppConstantBuffers,
-            const UINT *pFirstConstant,
-            const UINT *pNumConstants);
-
-    void CSSetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer *const *ppConstantBuffers,
-            const UINT *pFirstConstant,
-            const UINT *pNumConstants);
-
-    void VSGetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer **ppConstantBuffers,
-            UINT *pFirstConstant,
-            UINT *pNumConstants);
-
-    void HSGetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer **ppConstantBuffers,
-            UINT *pFirstConstant,
-            UINT *pNumConstants);
-
-    void DSGetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer **ppConstantBuffers,
-            UINT *pFirstConstant,
-            UINT *pNumConstants);
-
-    void GSGetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer **ppConstantBuffers,
-            UINT *pFirstConstant,
-            UINT *pNumConstants);
-
-    void PSGetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer **ppConstantBuffers,
-            UINT *pFirstConstant,
-            UINT *pNumConstants);
-
-    void CSGetConstantBuffers1(
-            UINT StartSlot,
-            UINT NumBuffers,
-            ID3D11Buffer **ppConstantBuffers,
-            UINT *pFirstConstant,
-            UINT *pNumConstants);
-
-    void SwapDeviceContextState(
-            ID3DDeviceContextState *pState,
-            ID3DDeviceContextState **ppPreviousState);
-
-    void ClearView(
-            ID3D11View *pView,
-            const FLOAT Color[4],
-            const D3D11_RECT *pRect,
-            UINT NumRects);
-
-    void DiscardView1(
-            ID3D11View *pResourceView,
-            const D3D11_RECT *pRects,
-            UINT NumRects);
-}
-
-[
-    uuid(a7f026da-a5f8-4487-a564-15e34357651e),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoContext1 : ID3D11VideoContext
-{
-    HRESULT SubmitDecoderBuffers1(
-        ID3D11VideoDecoder *decoder,
-        UINT buffer_count,
-        const D3D11_VIDEO_DECODER_BUFFER_DESC1 *buffer_desc
-    );
-    HRESULT GetDataForNewHardwareKey(
-        ID3D11CryptoSession *session,
-        UINT input_size,
-        const void *input_data,
-        UINT64 *output_data
-    );
-    HRESULT CheckCryptoSessionStatus(
-        ID3D11CryptoSession *session,
-        D3D11_CRYPTO_SESSION_STATUS *status
-    );
-    HRESULT DecoderEnableDownsampling(
-        ID3D11VideoDecoder *decoder,
-        DXGI_COLOR_SPACE_TYPE colour_space,
-        const D3D11_VIDEO_SAMPLE_DESC *output_desc,
-        UINT reference_frame_count
-    );
-    HRESULT DecoderUpdateDownsampling(
-        ID3D11VideoDecoder *decoder,
-        const D3D11_VIDEO_SAMPLE_DESC *output_desc
-    );
-    void VideoProcessorSetOutputColorSpace1(
-        ID3D11VideoProcessor *processor,
-        DXGI_COLOR_SPACE_TYPE colour_space
-    );
-    void VideoProcessorSetOutputShaderUsage(
-        ID3D11VideoProcessor *processor,
-        BOOL shader_usage
-    );
-    void VideoProcessorGetOutputColorSpace1(
-        ID3D11VideoProcessor *processor,
-        DXGI_COLOR_SPACE_TYPE *colour_space
-    );
-    void VideoProcessorGetOutputShaderUsage(
-        ID3D11VideoProcessor *processor,
-        BOOL *shader_usage
-    );
-    void VideoProcessorSetStreamColorSpace1(
-        ID3D11VideoProcessor *processor,
-        UINT stream_index,
-        DXGI_COLOR_SPACE_TYPE colour_space
-    );
-    void VideoProcessorSetStreamMirror(
-        ID3D11VideoProcessor *processor,
-        UINT stream_index,
-        BOOL enable,
-        BOOL flip_horizontal,
-        BOOL flip_vertical
-    );
-    void VideoProcessorGetStreamColorSpace1(
-        ID3D11VideoProcessor *processor,
-        UINT stream_index,
-        DXGI_COLOR_SPACE_TYPE *colour_space
-    );
-    void VideoProcessorGetStreamMirror(
-        ID3D11VideoProcessor *processor,
-        UINT stream_index,
-        BOOL *enable,
-        BOOL *flip_horizontal,
-        BOOL *flip_vertical
-    );
-    HRESULT VideoProcessorGetBehaviorHints(
-        ID3D11VideoProcessor *processor,
-        UINT output_width,
-        UINT output_height,
-        DXGI_FORMAT output_format,
-        UINT stream_count,
-        const D3D11_VIDEO_PROCESSOR_STREAM_BEHAVIOR_HINT *streams,
-        UINT *behaviour_hints
-    );
-}
-
-[
-    uuid(29da1d51-1321-4454-804b-f5fc9f861f0f),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoDevice1 : ID3D11VideoDevice
-{
-    HRESULT GetCryptoSessionPrivateDataSize(
-        const GUID *crypto_type,
-        const GUID *decoder_profile,
-        const GUID *key_exchange_type,
-        UINT *input_size,
-        UINT *output_size
-    );
-    HRESULT GetVideoDecoderCaps(
-        const GUID *decoder_profile,
-        UINT sample_width,
-        UINT sample_height,
-        const DXGI_RATIONAL *framerate,
-        UINT bitrate,
-        const GUID *crypto_type,
-        UINT *decoder_caps
-    );
-    HRESULT CheckVideoDecoderDownsampling(
-        const D3D11_VIDEO_DECODER_DESC *input_desc,
-        DXGI_COLOR_SPACE_TYPE input_colour_space,
-        const D3D11_VIDEO_DECODER_CONFIG *input_config,
-        const DXGI_RATIONAL *framerate,
-        const D3D11_VIDEO_SAMPLE_DESC *output_desc,
-        BOOL *supported,
-        BOOL *real_time_hint
-    );
-    HRESULT RecommendVideoDecoderDownsampleParameters(
-        const D3D11_VIDEO_DECODER_DESC *input_desc,
-        DXGI_COLOR_SPACE_TYPE input_colour_space,
-        const D3D11_VIDEO_DECODER_CONFIG *input_config,
-        const DXGI_RATIONAL *framerate,
-        D3D11_VIDEO_SAMPLE_DESC *recommended_output_desc
-    );
-}
-
-[
-    uuid(465217f2-5568-43cf-b5b9-f61d54531ca1),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoProcessorEnumerator1 : ID3D11VideoProcessorEnumerator
-{
-    HRESULT CheckVideoProcessorFormatConversion(
-        DXGI_FORMAT input_format,
-        DXGI_COLOR_SPACE_TYPE input_colour_space,
-        DXGI_FORMAT output_format,
-        DXGI_COLOR_SPACE_TYPE output_colour_space,
-        BOOL *supported
-    );
-}
-
-[
-    uuid(b2daad8b-03d4-4dbf-95eb-32ab4b63d0ab),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3DUserDefinedAnnotation : IUnknown
-{
-    INT BeginEvent(LPCWSTR Name);
-    INT EndEvent();
-    void SetMarker(LPCWSTR Name);
-    BOOL GetStatus();
-}
-
-[
-    uuid(1217d7a6-5039-418c-b042-9cbe256afd6e),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11RasterizerState1 : ID3D11RasterizerState
-{
-    void GetDesc1(D3D11_RASTERIZER_DESC1 *pDesc);
-}
-
-[
-    uuid(a04bfb29-08ef-43d6-a49c-a9bdbdcbe686),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Device1 : ID3D11Device
-{
-    void GetImmediateContext1(
-            ID3D11DeviceContext1 **ppImmediateContext);
-
-    HRESULT CreateDeferredContext1(
-            UINT ContextFlags,
-            ID3D11DeviceContext1 **ppDeferredContext);
-
-    HRESULT CreateBlendState1(
-            const D3D11_BLEND_DESC1 *pBlendStateDesc,
-            ID3D11BlendState1 **ppBlendState);
-
-    HRESULT CreateRasterizerState1(
-            const D3D11_RASTERIZER_DESC1 *pRasterizerDesc,
-            ID3D11RasterizerState1 **ppRasterizerState);
-
-    HRESULT CreateDeviceContextState(
-            UINT Flags,
-            const D3D_FEATURE_LEVEL *pFeatureLevels,
-            UINT FeatureLevels,
-            UINT SDKVersion,
-            REFIID EmulatedInterface,
-            D3D_FEATURE_LEVEL *pChosenFeatureLevel,
-            ID3DDeviceContextState **ppContextState);
-
-    HRESULT OpenSharedResource1(
-            HANDLE hResource,
-            REFIID returnedInterface,
-            void **ppResource);
-
-     HRESULT OpenSharedResourceByName(
-            LPCWSTR lpName,
-            DWORD dwDesiredAccess,
-            REFIID returnedInterface,
-            void **ppResource);
-}
lib/libc/include/any-windows-any/d3d11_2.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d11_2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d11_2.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_2.idl
@@ -1,173 +0,0 @@
-/*
- * Copyright 2017 Ihsan Akmal
- *
- * 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 "dxgi1_3.idl";
-import "d3dcommon.idl";
-import "d3d11_1.idl";
-
-const UINT D3D11_PACKED_TILE = 0xffffffff;
-
-typedef enum D3D11_TILE_MAPPING_FLAG
-{
-    D3D11_TILE_MAPPING_NO_OVERWRITE = 0x1,
-} D3D11_TILE_MAPPING_FLAG;
-
-typedef enum D3D11_TILE_RANGE_FLAG
-{
-    D3D11_TILE_RANGE_NULL = 0x1,
-    D3D11_TILE_RANGE_SKIP = 0x2,
-    D3D11_TILE_RANGE_REUSE_SINGLE_TILE = 0x4,
-} D3D11_TILE_RANGE_FLAG;
-
-typedef enum D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG
-{
-    D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_TILED_RESOURCE = 0x1,
-} D3D11_CHECK_MULTISAMPLE_QUALITY_LEVELS_FLAG;
-
-typedef enum D3D11_TILE_COPY_FLAG
-{
-    D3D11_TILE_COPY_NO_OVERWRITE = 0x1,
-    D3D11_TILE_COPY_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
-    D3D11_TILE_COPY_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4,
-} D3D11_TILE_COPY_FLAG;
-
-typedef struct D3D11_TILED_RESOURCE_COORDINATE
-{
-    UINT X;
-    UINT Y;
-    UINT Z;
-    UINT Subresource;
-} D3D11_TILED_RESOURCE_COORDINATE;
-
-typedef struct D3D11_TILE_REGION_SIZE
-{
-    UINT NumTiles;
-    BOOL bUseBox;
-    UINT Width;
-    UINT16 Height;
-    UINT16 Depth;
-} D3D11_TILE_REGION_SIZE;
-
-typedef struct D3D11_SUBRESOURCE_TILING
-{
-    UINT WidthInTiles;
-    UINT16 HeightInTiles;
-    UINT16 DepthInTiles;
-    UINT StartTileIndexInOverallResource;
-} D3D11_SUBRESOURCE_TILING;
-
-typedef struct D3D11_TILE_SHAPE
-{
-    UINT WidthInTexels;
-    UINT HeightInTexels;
-    UINT DepthInTexels;
-} D3D11_TILE_SHAPE;
-
-typedef struct D3D11_PACKED_MIP_DESC
-{
-    UINT8 NumStandardMips;
-    UINT8 NumPackedMips;
-    UINT NumTilesForPackedMips;
-    UINT StartTileIndexInOverallResource;
-} D3D11_PACKED_MIP_DESC;
-
-[
-    uuid(420d5b32-b90c-4da4-bef0-359f6a24a83a),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11DeviceContext2 : ID3D11DeviceContext1
-{
-    HRESULT UpdateTileMappings(
-        ID3D11Resource *resource,
-        UINT region_count,
-        const D3D11_TILED_RESOURCE_COORDINATE *region_start_coordinates,
-        const D3D11_TILE_REGION_SIZE *region_sizes,
-        ID3D11Buffer *pool,
-        UINT range_count,
-        const UINT *range_flags,
-        const UINT *pool_start_offsets,
-        const UINT *range_tile_counts,
-        UINT flags
-    );
-    HRESULT CopyTileMappings(
-        ID3D11Resource *dst_resource,
-        const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,
-        ID3D11Resource *src_resource,
-        const D3D11_TILED_RESOURCE_COORDINATE *src_start_coordinate,
-        const D3D11_TILE_REGION_SIZE *region_size,
-        UINT flags
-    );
-    void CopyTiles(
-        ID3D11Resource *resource,
-        const D3D11_TILED_RESOURCE_COORDINATE *start_coordinate,
-        const D3D11_TILE_REGION_SIZE *size,
-        ID3D11Buffer *buffer,
-        UINT64 start_offset,
-        UINT flags
-    );
-    void UpdateTiles(
-        ID3D11Resource *dst_resource,
-        const D3D11_TILED_RESOURCE_COORDINATE *dst_start_coordinate,
-        const D3D11_TILE_REGION_SIZE *dst_region_size,
-        const void *src_data,
-        UINT flags
-    );
-    HRESULT ResizeTilePool(
-        ID3D11Buffer *pool,
-        UINT64 size
-    );
-    void TiledResourceBarrier(
-        ID3D11DeviceChild *before_barrier,
-        ID3D11DeviceChild *after_barrier
-    );
-    BOOL IsAnnotationEnabled();
-    void SetMarkerInt(const WCHAR *label, int data);
-    void BeginEventInt(const WCHAR *label, int data);
-    void EndEvent();
-}
-
-[
-    uuid(9d06dffa-d1e5-4d07-83a8-1bb123f2f841),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Device2 : ID3D11Device1
-{
-    void GetImmediateContext2(ID3D11DeviceContext2 **context);
-    HRESULT CreateDeferredContext2(UINT flags, ID3D11DeviceContext2 **context);
-    void GetResourceTiling(
-        ID3D11Resource *resource,
-        UINT *tile_count,
-        D3D11_PACKED_MIP_DESC *mip_desc,
-        D3D11_TILE_SHAPE *tile_shape,
-        UINT *subresource_tiling_count,
-        UINT first_subresource_tiling,
-        D3D11_SUBRESOURCE_TILING *subresource_tiling
-    );
-    HRESULT CheckMultisampleQualityLevels1(
-        DXGI_FORMAT format,
-        UINT sample_count,
-        UINT flags,
-        UINT *quality_level_count
-    );
-}
lib/libc/include/any-windows-any/d3d11_3.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d11_3.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d11_3.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -137,7 +137,8 @@ typedef enum D3D11_CONSERVATIVE_RASTERIZATION_MODE {
 typedef enum D3D11_FENCE_FLAG {
     D3D11_FENCE_FLAG_NONE = 0x1,
     D3D11_FENCE_FLAG_SHARED = 0x2,
-    D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x4
+    D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x4,
+    D3D11_FENCE_FLAG_NON_MONITORED = 0x8
 } D3D11_FENCE_FLAG;
 typedef struct D3D11_TEXTURE2D_DESC1 {
     UINT Width;
lib/libc/include/any-windows-any/d3d11_3.idl
@@ -1,384 +0,0 @@
-/*
- * Copyright 2017 Ihsan Akmal
- *
- * 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 "dxgi1_3.idl";
-import "d3dcommon.idl";
-import "d3d11_2.idl";
-
-typedef enum D3D11_CONTEXT_TYPE
-{
-    D3D11_CONTEXT_TYPE_ALL = 0x0,
-    D3D11_CONTEXT_TYPE_3D = 0x1,
-    D3D11_CONTEXT_TYPE_COMPUTE = 0x2,
-    D3D11_CONTEXT_TYPE_COPY = 0x3,
-    D3D11_CONTEXT_TYPE_VIDEO = 0x4,
-} D3D11_CONTEXT_TYPE;
-
-typedef enum D3D11_TEXTURE_LAYOUT
-{
-    D3D11_TEXTURE_LAYOUT_UNDEFINED = 0x0,
-    D3D11_TEXTURE_LAYOUT_ROW_MAJOR = 0x1,
-    D3D11_TEXTURE_LAYOUT_64K_STANDARD_SWIZZLE = 0x2,
-} D3D11_TEXTURE_LAYOUT;
-
-typedef enum D3D11_CONSERVATIVE_RASTERIZATION_MODE
-{
-    D3D11_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0x0,
-    D3D11_CONSERVATIVE_RASTERIZATION_MODE_ON = 0x1,
-} D3D11_CONSERVATIVE_RASTERIZATION_MODE;
-
-typedef enum D3D11_FENCE_FLAG
-{
-    D3D11_FENCE_FLAG_NONE = 0x1,
-    D3D11_FENCE_FLAG_SHARED = 0x2,
-    D3D11_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x4,
-} D3D11_FENCE_FLAG;
-
-typedef struct D3D11_TEXTURE2D_DESC1
-{
-    UINT Width;
-    UINT Height;
-    UINT MipLevels;
-    UINT ArraySize;
-    DXGI_FORMAT Format;
-    DXGI_SAMPLE_DESC SampleDesc;
-    D3D11_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-    D3D11_TEXTURE_LAYOUT TextureLayout;
-} D3D11_TEXTURE2D_DESC1;
-
-typedef struct D3D11_TEXTURE3D_DESC1
-{
-    UINT Width;
-    UINT Height;
-    UINT Depth;
-    UINT MipLevels;
-    DXGI_FORMAT Format;
-    D3D11_USAGE Usage;
-    UINT BindFlags;
-    UINT CPUAccessFlags;
-    UINT MiscFlags;
-    D3D11_TEXTURE_LAYOUT TextureLayout;
-} D3D11_TEXTURE3D_DESC1;
-
-typedef struct D3D11_RASTERIZER_DESC2
-{
-    D3D11_FILL_MODE FillMode;
-    D3D11_CULL_MODE CullMode;
-    BOOL FrontCounterClockwise;
-    int DepthBias;
-    float DepthBiasClamp;
-    float SlopeScaledDepthBias;
-    BOOL DepthClipEnable;
-    BOOL ScissorEnable;
-    BOOL MultisampleEnable;
-    BOOL AntialiasedLineEnable;
-    UINT ForcedSampleCount;
-    D3D11_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
-} D3D11_RASTERIZER_DESC2;
-
-typedef struct D3D11_TEX2D_SRV1
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT PlaneSlice;
-} D3D11_TEX2D_SRV1;
-
-typedef struct D3D11_TEX2D_ARRAY_SRV1
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-    UINT PlaneSlice;
-} D3D11_TEX2D_ARRAY_SRV1;
-
-typedef struct D3D11_SHADER_RESOURCE_VIEW_DESC1
-{
-    DXGI_FORMAT Format;
-    D3D11_SRV_DIMENSION ViewDimension;
-
-    union
-    {
-        D3D11_BUFFER_SRV Buffer;
-        D3D11_TEX1D_SRV Texture1D;
-        D3D11_TEX1D_ARRAY_SRV Texture1DArray;
-        D3D11_TEX2D_SRV1 Texture2D;
-        D3D11_TEX2D_ARRAY_SRV1 Texture2DArray;
-        D3D11_TEX2DMS_SRV Texture2DMS;
-        D3D11_TEX2DMS_ARRAY_SRV Texture2DMSArray;
-        D3D11_TEX3D_SRV Texture3D;
-        D3D11_TEXCUBE_SRV TextureCube;
-        D3D11_TEXCUBE_ARRAY_SRV TextureCubeArray;
-        D3D11_BUFFEREX_SRV BufferEx;
-    };
-} D3D11_SHADER_RESOURCE_VIEW_DESC1;
-
-typedef struct D3D11_TEX2D_RTV1
-{
-    UINT MipSlice;
-    UINT PlaneSlice;
-} D3D11_TEX2D_RTV1;
-
-typedef struct D3D11_TEX2D_ARRAY_RTV1
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-    UINT PlaneSlice;
-} D3D11_TEX2D_ARRAY_RTV1;
-
-typedef struct D3D11_RENDER_TARGET_VIEW_DESC1
-{
-    DXGI_FORMAT Format;
-    D3D11_RTV_DIMENSION ViewDimension;
-
-    union
-    {
-        D3D11_BUFFER_RTV Buffer;
-        D3D11_TEX1D_RTV Texture1D;
-        D3D11_TEX1D_ARRAY_RTV Texture1DArray;
-        D3D11_TEX2D_RTV1 Texture2D;
-        D3D11_TEX2D_ARRAY_RTV1 Texture2DArray;
-        D3D11_TEX2DMS_RTV Texture2DMS;
-        D3D11_TEX2DMS_ARRAY_RTV Texture2DMSArray;
-        D3D11_TEX3D_RTV Texture3D;
-    };
-} D3D11_RENDER_TARGET_VIEW_DESC1;
-
-typedef struct D3D11_TEX2D_UAV1
-{
-    UINT MipSlice;
-    UINT PlaneSlice;
-} D3D11_TEX2D_UAV1;
-
-typedef struct D3D11_TEX2D_ARRAY_UAV1
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-    UINT PlaneSlice;
-} D3D11_TEX2D_ARRAY_UAV1;
-
-typedef struct D3D11_UNORDERED_ACCESS_VIEW_DESC1
-{
-    DXGI_FORMAT Format;
-    D3D11_UAV_DIMENSION ViewDimension;
-
-    union
-    {
-        D3D11_BUFFER_UAV Buffer;
-        D3D11_TEX1D_UAV Texture1D;
-        D3D11_TEX1D_ARRAY_UAV Texture1DArray;
-        D3D11_TEX2D_UAV1 Texture2D;
-        D3D11_TEX2D_ARRAY_UAV1 Texture2DArray;
-        D3D11_TEX3D_UAV Texture3D;
-    };
-} D3D11_UNORDERED_ACCESS_VIEW_DESC1;
-
-typedef struct D3D11_QUERY_DESC1
-{
-    D3D11_QUERY Query;
-    UINT MiscFlags;
-    D3D11_CONTEXT_TYPE ContextType;
-} D3D11_QUERY_DESC1;
-
-[
-    uuid(51218251-1e33-4617-9ccb-4d3a4367e7bb),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Texture2D1 : ID3D11Texture2D
-{
-    void GetDesc1(D3D11_TEXTURE2D_DESC1 *desc);
-}
-
-[
-    uuid(0c711683-2853-4846-9bb0-f3e60639e46a),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Texture3D1 : ID3D11Texture3D
-{
-    void GetDesc1(D3D11_TEXTURE3D_DESC1 *desc);
-}
-
-[
-    uuid(6fbd02fb-209f-46c4-b059-2ed15586a6ac),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11RasterizerState2 : ID3D11RasterizerState1
-{
-    void GetDesc2(D3D11_RASTERIZER_DESC2 *desc);
-}
-
-[
-    uuid(91308b87-9040-411d-8c67-c39253ce3802),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11ShaderResourceView1 : ID3D11ShaderResourceView
-{
-    void GetDesc1(D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc);
-}
-
-[
-    uuid(ffbe2e23-f011-418a-ac56-5ceed7c5b94b),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11RenderTargetView1 : ID3D11RenderTargetView
-{
-    void GetDesc1(D3D11_RENDER_TARGET_VIEW_DESC1 *desc);
-}
-
-[
-    uuid(7b3b6153-a886-4544-ab37-6537c8500403),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11UnorderedAccessView1 : ID3D11UnorderedAccessView
-{
-    void GetDesc1(D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc);
-}
-
-[
-    uuid(631b4766-36dc-461d-8db6-c47e13e60916),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Query1 : ID3D11Query
-{
-    void GetDesc1(D3D11_QUERY_DESC1 *desc);
-}
-
-[
-    uuid(b4e3c01d-e79e-4637-91b2-510e9f4c9b8f),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11DeviceContext3 : ID3D11DeviceContext2
-{
-    void Flush1(D3D11_CONTEXT_TYPE type, HANDLE event);
-    void SetHardwareProtectionState(BOOL enable);
-    void GetHardwareProtectionState(BOOL *enable);
-}
-
-[
-    uuid(affde9d1-1df7-4bb7-8a34-0f46251dab80),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Fence : ID3D11DeviceChild
-{
-    HRESULT CreateSharedHandle(
-        const SECURITY_ATTRIBUTES *attributes,
-        DWORD access,
-        const WCHAR *name,
-        HANDLE *handle
-    );
-    UINT64 GetCompletedValue();
-    HRESULT SetEventOnCompletion(
-        UINT64 value,
-        HANDLE event
-    );
-}
-
-[
-    uuid(917600da-f58c-4c33-98d8-3e15b390fa24),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11DeviceContext4 : ID3D11DeviceContext3
-{
-    HRESULT Signal(ID3D11Fence *fence, UINT64 value);
-    HRESULT Wait(ID3D11Fence *fence, UINT64 value);
-}
-
-[
-    uuid(a05c8c37-d2c6-4732-b3a0-9ce0b0dc9ae6),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Device3 : ID3D11Device2
-{
-    HRESULT CreateTexture2D1(
-        const D3D11_TEXTURE2D_DESC1 *desc,
-        const D3D11_SUBRESOURCE_DATA *initial_data,
-        ID3D11Texture2D1 **texture
-    );
-    HRESULT CreateTexture3D1(
-        const D3D11_TEXTURE3D_DESC1 *desc,
-        const D3D11_SUBRESOURCE_DATA *initial_data,
-        ID3D11Texture3D1 **texture
-    );
-    HRESULT CreateRasterizerState2(
-        const D3D11_RASTERIZER_DESC2 *desc,
-        ID3D11RasterizerState2 **state
-    );
-    HRESULT CreateShaderResourceView1(
-        ID3D11Resource *resource,
-        const D3D11_SHADER_RESOURCE_VIEW_DESC1 *desc,
-        ID3D11ShaderResourceView1 **view
-    );
-    HRESULT CreateUnorderedAccessView1(
-        ID3D11Resource *resource,
-        const D3D11_UNORDERED_ACCESS_VIEW_DESC1 *desc,
-        ID3D11UnorderedAccessView1 **view
-    );
-    HRESULT CreateRenderTargetView1(
-        ID3D11Resource *resource,
-        const D3D11_RENDER_TARGET_VIEW_DESC1 *desc,
-        ID3D11RenderTargetView1 **view
-    );
-    HRESULT CreateQuery1(const D3D11_QUERY_DESC1 *desc, ID3D11Query1 **query);
-    void GetImmediateContext3(ID3D11DeviceContext3 **context);
-    HRESULT CreateDeferredContext3(UINT flags, ID3D11DeviceContext3 **context);
-    void WriteToSubresource(
-        ID3D11Resource *dst_resource,
-        UINT dst_subresource,
-        const D3D11_BOX *dst_box,
-        const void *src_data,
-        UINT src_row_pitch,
-        UINT src_depth_pitch
-    );
-    void ReadFromSubresource(
-        void *dst_data,
-        UINT dst_row_pitch,
-        UINT dst_depth_pitch,
-        ID3D11Resource *src_resource,
-        UINT src_subresource,
-        const D3D11_BOX *src_box
-    );
-}
lib/libc/include/any-windows-any/d3d11_4.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d11_4.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d11_4.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_4.idl
@@ -1,120 +0,0 @@
-/*
- * Copyright 2017 Ihsan Akmal
- *
- * 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 "dxgi1_5.idl";
-import "d3dcommon.idl";
-import "d3d11_3.idl";
-
-typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS4
-{
-    BOOL ExtendedNV12SharedTextureSupported;
-} D3D11_FEATURE_DATA_D3D11_OPTIONS4;
-
-[
-    uuid(8992ab71-02e6-4b8d-ba48-b056dcda42c4),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Device4 : ID3D11Device3
-{
-    HRESULT RegisterDeviceRemovedEvent(
-        [in] HANDLE event,
-        [out] DWORD *cookie
-    );
-    void UnregisterDeviceRemoved(
-        [in] DWORD cookie
-    );
-}
-
-[
-    uuid(8ffde202-a0e7-45df-9e01-e837801b5ea0),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Device5 : ID3D11Device4
-{
-    HRESULT OpenSharedFence(
-        [in] HANDLE handle,
-        [in] REFIID iid,
-        [out] void **fence
-    );
-    HRESULT CreateFence(
-        [in] UINT64 initial_value,
-        [in] D3D11_FENCE_FLAG flags,
-        [in] REFIID iid,
-        [out] void **fence
-    );
-}
-
-[
-    uuid(9b7e4e00-342c-4106-a19f-4f2704f689f0),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Multithread : IUnknown
-{
-    void Enter();
-    void Leave();
-    BOOL SetMultithreadProtected(
-        [in] BOOL enable
-    );
-    BOOL GetMultithreadProtected();
-}
-
-[
-    uuid(c4e7374c-6243-4d1b-ae87-52b4f740e261),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D11VideoContext2 : ID3D11VideoContext1
-{
-    void VideoProcessorSetOutputHDRMetaData(
-        [in] ID3D11VideoProcessor *processor,
-        [in] DXGI_HDR_METADATA_TYPE type,
-        [in] UINT size,
-        [in] const void *meta_data
-    );
-    void VideoProcessorGetOutputHDRMetaData(
-        [in] ID3D11VideoProcessor *processor,
-        [out] DXGI_HDR_METADATA_TYPE *type,
-        [in] UINT size,
-        [out] void *meta_data
-    );
-
-    void VideoProcessorSetStreamHDRMetaData(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_index,
-        [in] DXGI_HDR_METADATA_TYPE type,
-        [in] UINT size,
-        [in] const void *meta_data
-    );
-
-    void VideoProcessorGetStreamHDRMetaData(
-        [in] ID3D11VideoProcessor *processor,
-        [in] UINT stream_index,
-        [out] DXGI_HDR_METADATA_TYPE *type,
-        [in] UINT size,
-        [out] void *meta_data
-    );
-}
lib/libc/include/any-windows-any/d3d11on12.h
@@ -0,0 +1,171 @@
+/*** Autogenerated by WIDL 6.4 from include/d3d11on12.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d11on12_h__
+#define __d3d11on12_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D11On12Device_FWD_DEFINED__
+#define __ID3D11On12Device_FWD_DEFINED__
+typedef interface ID3D11On12Device ID3D11On12Device;
+#ifdef __cplusplus
+interface ID3D11On12Device;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+#include <d3d11.h>
+#include <d3d12.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct D3D11_RESOURCE_FLAGS {
+    UINT BindFlags;
+    UINT MiscFlags;
+    UINT CPUAccessFlags;
+    UINT StructureByteStride;
+} D3D11_RESOURCE_FLAGS;
+/*****************************************************************************
+ * ID3D11On12Device interface
+ */
+#ifndef __ID3D11On12Device_INTERFACE_DEFINED__
+#define __ID3D11On12Device_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D11On12Device, 0x85611e73, 0x70a9, 0x490e, 0x96,0x14, 0xa9,0xe3,0x02,0x77,0x79,0x04);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("85611e73-70a9-490e-9614-a9e302777904")
+ID3D11On12Device : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateWrappedResource(
+        IUnknown *d3d12_resource,
+        const D3D11_RESOURCE_FLAGS *flags,
+        D3D12_RESOURCE_STATES input_state,
+        D3D12_RESOURCE_STATES output_state,
+        REFIID iid,
+        void **d3d11_resource) = 0;
+
+    virtual void STDMETHODCALLTYPE ReleaseWrappedResources(
+        ID3D11Resource *const *resources,
+        UINT count) = 0;
+
+    virtual void STDMETHODCALLTYPE AcquireWrappedResources(
+        ID3D11Resource *const *resources,
+        UINT count) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D11On12Device, 0x85611e73, 0x70a9, 0x490e, 0x96,0x14, 0xa9,0xe3,0x02,0x77,0x79,0x04)
+#endif
+#else
+typedef struct ID3D11On12DeviceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D11On12Device *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D11On12Device *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D11On12Device *This);
+
+    /*** ID3D11On12Device methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateWrappedResource)(
+        ID3D11On12Device *This,
+        IUnknown *d3d12_resource,
+        const D3D11_RESOURCE_FLAGS *flags,
+        D3D12_RESOURCE_STATES input_state,
+        D3D12_RESOURCE_STATES output_state,
+        REFIID iid,
+        void **d3d11_resource);
+
+    void (STDMETHODCALLTYPE *ReleaseWrappedResources)(
+        ID3D11On12Device *This,
+        ID3D11Resource *const *resources,
+        UINT count);
+
+    void (STDMETHODCALLTYPE *AcquireWrappedResources)(
+        ID3D11On12Device *This,
+        ID3D11Resource *const *resources,
+        UINT count);
+
+    END_INTERFACE
+} ID3D11On12DeviceVtbl;
+
+interface ID3D11On12Device {
+    CONST_VTBL ID3D11On12DeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D11On12Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D11On12Device_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D11On12Device_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D11On12Device methods ***/
+#define ID3D11On12Device_CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource) (This)->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource)
+#define ID3D11On12Device_ReleaseWrappedResources(This,resources,count) (This)->lpVtbl->ReleaseWrappedResources(This,resources,count)
+#define ID3D11On12Device_AcquireWrappedResources(This,resources,count) (This)->lpVtbl->AcquireWrappedResources(This,resources,count)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D11On12Device_QueryInterface(ID3D11On12Device* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D11On12Device_AddRef(ID3D11On12Device* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D11On12Device_Release(ID3D11On12Device* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D11On12Device methods ***/
+static FORCEINLINE HRESULT ID3D11On12Device_CreateWrappedResource(ID3D11On12Device* This,IUnknown *d3d12_resource,const D3D11_RESOURCE_FLAGS *flags,D3D12_RESOURCE_STATES input_state,D3D12_RESOURCE_STATES output_state,REFIID iid,void **d3d11_resource) {
+    return This->lpVtbl->CreateWrappedResource(This,d3d12_resource,flags,input_state,output_state,iid,d3d11_resource);
+}
+static FORCEINLINE void ID3D11On12Device_ReleaseWrappedResources(ID3D11On12Device* This,ID3D11Resource *const *resources,UINT count) {
+    This->lpVtbl->ReleaseWrappedResources(This,resources,count);
+}
+static FORCEINLINE void ID3D11On12Device_AcquireWrappedResources(ID3D11On12Device* This,ID3D11Resource *const *resources,UINT count) {
+    This->lpVtbl->AcquireWrappedResources(This,resources,count);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D11On12Device_INTERFACE_DEFINED__ */
+
+HRESULT __stdcall  D3D11On12CreateDevice(IUnknown *device,UINT flags,const D3D_FEATURE_LEVEL *feature_levels,UINT feature_level_count,IUnknown *const *queues,UINT queue_count,UINT node_mask,ID3D11Device **d3d11_device,ID3D11DeviceContext **d3d11_immediate_context,D3D_FEATURE_LEVEL *obtained_feature_level);
+
+typedef HRESULT (__stdcall *PFN_D3D11ON12_CREATE_DEVICE)(IUnknown *device,UINT flags,const D3D_FEATURE_LEVEL *feature_levels,UINT feature_level_count,IUnknown *const *queues,UINT queue_count,UINT node_mask,ID3D11Device **d3d11_device,ID3D11DeviceContext **d3d11_immediate_context,D3D_FEATURE_LEVEL *obtained_feature_level);
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d11on12_h__ */
lib/libc/include/any-windows-any/d3d11sdklayers.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d11sdklayers.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d11sdklayers.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11sdklayers.idl
@@ -1,1303 +0,0 @@
-/*
- * 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";
-
-const UINT D3D11_DEBUG_FEATURE_FLUSH_PER_RENDER_OP = 0x1;
-const UINT D3D11_DEBUG_FEATURE_FINISH_PER_RENDER_OP = 0x2;
-const UINT D3D11_DEBUG_FEATURE_PRESENT_PER_RENDER_OP = 0x4;
-const UINT D3D11_DEBUG_FEATURE_ALWAYS_DISCARD_OFFERED_RESOURCE = 0x8;
-const UINT D3D11_DEBUG_FEATURE_NEVER_DISCARD_OFFERED_RESOURCE = 0x10;
-const UINT D3D11_DEBUG_FEATURE_AVOID_BEHAVIOR_CHANGING_DEBUG_AIDS = 0x40;
-const UINT D3D11_DEBUG_FEATURE_DISABLE_TILED_RESOURCE_MAPPING_TRACKING_AND_VALIDATION = 0x80;
-
-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 enum D3D11_RLDO_FLAGS {
-    D3D11_RLDO_SUMMARY = 1,
-    D3D11_RLDO_DETAIL = 2
-} D3D11_RLDO_FLAGS;
-
-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(79cf2233-7536-4948-9d36-1e4692dc5760),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11Debug : IUnknown {
-    HRESULT SetFeatureMask(UINT Mask);
-    UINT GetFeatureMask();
-    HRESULT SetPresentPerRenderOpDelay(UINT Milliseconds);
-    UINT GetPresentPerRenderOpDelay();
-    HRESULT SetSwapChain(IDXGISwapChain *pSwapChain);
-    HRESULT GetSwapChain(IDXGISwapChain **ppSwapChain);
-    HRESULT ValidateContext(ID3D11DeviceContext *pContext);
-    HRESULT ReportLiveDeviceObjects(D3D11_RLDO_FLAGS Flags);
-    HRESULT ValidateContextForDispatch(ID3D11DeviceContext *pContext);
-}
-
-[
-    object,
-    uuid(1ef337e3-58e7-4f83-a692-db221f5ed47e),
-    local,
-    pointer_default(unique)
-]
-interface ID3D11SwitchToRef : IUnknown {
-    BOOL SetUseRef(
-        [in] BOOL useref
-    );
-    BOOL GetUseRef();
-}
-
-[
-    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();
-}
lib/libc/include/any-windows-any/d3d11shader.h
@@ -22,6 +22,11 @@
 
 #include "d3dcommon.h"
 
+/* If not defined set d3dcompiler_47 by default. */
+#ifndef D3D_COMPILER_VERSION
+#define D3D_COMPILER_VERSION 47
+#endif
+
 /* These are defined as version-neutral in d3dcommon.h */
 typedef D3D_CBUFFER_TYPE D3D11_CBUFFER_TYPE;
 
lib/libc/include/any-windows-any/d3d12.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d12.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d12.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -42,6 +42,14 @@ interface ID3D12Pageable;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __ID3D12Heap_FWD_DEFINED__
+#define __ID3D12Heap_FWD_DEFINED__
+typedef interface ID3D12Heap ID3D12Heap;
+#ifdef __cplusplus
+interface ID3D12Heap;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __ID3D12Resource_FWD_DEFINED__
 #define __ID3D12Resource_FWD_DEFINED__
 typedef interface ID3D12Resource ID3D12Resource;
@@ -90,6 +98,22 @@ interface ID3D12GraphicsCommandList;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __ID3D12GraphicsCommandList1_FWD_DEFINED__
+#define __ID3D12GraphicsCommandList1_FWD_DEFINED__
+typedef interface ID3D12GraphicsCommandList1 ID3D12GraphicsCommandList1;
+#ifdef __cplusplus
+interface ID3D12GraphicsCommandList1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12GraphicsCommandList2_FWD_DEFINED__
+#define __ID3D12GraphicsCommandList2_FWD_DEFINED__
+typedef interface ID3D12GraphicsCommandList2 ID3D12GraphicsCommandList2;
+#ifdef __cplusplus
+interface ID3D12GraphicsCommandList2;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __ID3D12CommandQueue_FWD_DEFINED__
 #define __ID3D12CommandQueue_FWD_DEFINED__
 typedef interface ID3D12CommandQueue ID3D12CommandQueue;
@@ -138,11 +162,11 @@ interface ID3D12Device;
 #endif /* __cplusplus */
 #endif
 
-#ifndef __ID3D12Debug_FWD_DEFINED__
-#define __ID3D12Debug_FWD_DEFINED__
-typedef interface ID3D12Debug ID3D12Debug;
+#ifndef __ID3D12Device1_FWD_DEFINED__
+#define __ID3D12Device1_FWD_DEFINED__
+typedef interface ID3D12Device1 ID3D12Device1;
 #ifdef __cplusplus
-interface ID3D12Debug;
+interface ID3D12Device1;
 #endif /* __cplusplus */
 #endif
 
@@ -154,6 +178,14 @@ interface ID3D12RootSignatureDeserializer;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
+#define __ID3D12VersionedRootSignatureDeserializer_FWD_DEFINED__
+typedef interface ID3D12VersionedRootSignatureDeserializer ID3D12VersionedRootSignatureDeserializer;
+#ifdef __cplusplus
+interface ID3D12VersionedRootSignatureDeserializer;
+#endif /* __cplusplus */
+#endif
+
 /* Headers for imported files */
 
 #include <oaidl.h>
@@ -175,6 +207,8 @@ extern "C" {
 
 #define D3D12_VIEWPORT_BOUNDS_MIN (-32768)
 
+#define D3D12_COMMONSHADER_CONSTANT_BUFFER_REGISTER_COUNT (15)
+
 #define D3D12_APPEND_ALIGNED_ELEMENT (0xffffffff)
 
 #define D3D12_DEFAULT_BLEND_FACTOR_ALPHA (1.0f)
@@ -194,6 +228,12 @@ extern "C" {
 #define D3D12_FLOAT32_MAX (3.402823466e+38f)
 #define D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT (32)
 
+#define D3D12_UAV_SLOT_COUNT (64)
+
+#define D3D12_REQ_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
+
+#define D3D12_REQ_IMMEDIATE_CONSTANT_BUFFER_ELEMENT_COUNT (4096)
+
 #define D3D12_REQ_MIP_LEVELS (15)
 
 #define D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION (2048)
@@ -212,14 +252,38 @@ extern "C" {
 
 #define D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT (8)
 
+#define D3D12_SO_BUFFER_MAX_STRIDE_IN_BYTES (2048)
+
+#define D3D12_SO_BUFFER_SLOT_COUNT (4)
+
+#define D3D12_SO_DDI_REGISTER_INDEX_DENOTING_GAP (0xffffffff)
+
+#define D3D12_SO_NO_RASTERIZED_STREAM (0xffffffff)
+
+#define D3D12_SO_OUTPUT_COMPONENT_COUNT (128)
+
+#define D3D12_SO_STREAM_COUNT (4)
+
 #define D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT (256)
 
+#define D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT (4194304)
+
 #define D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT (65536)
 
+#define D3D12_RAW_UAV_SRV_BYTE_ALIGNMENT (16)
+
+#define D3D12_SMALL_MSAA_RESOURCE_PLACEMENT_ALIGNMENT (65536)
+
+#define D3D12_SMALL_RESOURCE_PLACEMENT_ALIGNMENT (4096)
+
+#define D3D12_STANDARD_MAXIMUM_ELEMENT_ALIGNMENT_BYTE_MULTIPLE (4)
+
 #define D3D12_TEXTURE_DATA_PITCH_ALIGNMENT (256)
 
 #define D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT (512)
 
+#define D3D12_UAV_COUNTER_PLACEMENT_ALIGNMENT (4096)
+
 #define D3D12_VS_INPUT_REGISTER_COUNT (32)
 
 #define D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE (16)
@@ -236,6 +300,7 @@ typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT {
     D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
     D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2
 } D3D12_SHADER_MIN_PRECISION_SUPPORT;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_MIN_PRECISION_SUPPORT);
 typedef enum D3D12_TILED_RESOURCES_TIER {
     D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
     D3D12_TILED_RESOURCES_TIER_1 = 1,
@@ -295,6 +360,7 @@ typedef enum D3D12_FORMAT_SUPPORT1 {
     D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
     D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000
 } D3D12_FORMAT_SUPPORT1;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT1);
 typedef enum D3D12_FORMAT_SUPPORT2 {
     D3D12_FORMAT_SUPPORT2_NONE = 0x0,
     D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x1,
@@ -309,6 +375,59 @@ typedef enum D3D12_FORMAT_SUPPORT2 {
     D3D12_FORMAT_SUPPORT2_TILED = 0x200,
     D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x4000
 } D3D12_FORMAT_SUPPORT2;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_FORMAT_SUPPORT2);
+typedef enum D3D12_WRITEBUFFERIMMEDIATE_MODE {
+    D3D12_WRITEBUFFERIMMEDIATE_MODE_DEFAULT = 0x0,
+    D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_IN = 0x1,
+    D3D12_WRITEBUFFERIMMEDIATE_MODE_MARKER_OUT = 0x2
+} D3D12_WRITEBUFFERIMMEDIATE_MODE;
+typedef enum D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER {
+    D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_NOT_SUPPORTED = 0x0,
+    D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_1 = 0x1,
+    D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER_2 = 0x2
+} D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER;
+typedef enum D3D12_SHADER_CACHE_SUPPORT_FLAGS {
+    D3D12_SHADER_CACHE_SUPPORT_NONE = 0x0,
+    D3D12_SHADER_CACHE_SUPPORT_SINGLE_PSO = 0x1,
+    D3D12_SHADER_CACHE_SUPPORT_LIBRARY = 0x2,
+    D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_INPROC_CACHE = 0x4,
+    D3D12_SHADER_CACHE_SUPPORT_AUTOMATIC_DISK_CACHE = 0x8
+} D3D12_SHADER_CACHE_SUPPORT_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_SHADER_CACHE_SUPPORT_FLAGS);
+typedef enum D3D12_COMMAND_LIST_SUPPORT_FLAGS {
+    D3D12_COMMAND_LIST_SUPPORT_FLAG_NONE = 0x0,
+    D3D12_COMMAND_LIST_SUPPORT_FLAG_DIRECT = 0x1,
+    D3D12_COMMAND_LIST_SUPPORT_FLAG_BUNDLE = 0x2,
+    D3D12_COMMAND_LIST_SUPPORT_FLAG_COMPUTE = 0x4,
+    D3D12_COMMAND_LIST_SUPPORT_FLAG_COPY = 0x8,
+    D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_DECODE = 0x10,
+    D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_PROCESS = 0x20,
+    D3D12_COMMAND_LIST_SUPPORT_FLAG_VIDEO_ENCODE = 0x40
+} D3D12_COMMAND_LIST_SUPPORT_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_LIST_SUPPORT_FLAGS);
+typedef enum D3D12_VIEW_INSTANCING_TIER {
+    D3D12_VIEW_INSTANCING_TIER_NOT_SUPPORTED = 0x0,
+    D3D12_VIEW_INSTANCING_TIER_1 = 0x1,
+    D3D12_VIEW_INSTANCING_TIER_2 = 0x2,
+    D3D12_VIEW_INSTANCING_TIER_3 = 0x3
+} D3D12_VIEW_INSTANCING_TIER;
+typedef enum D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER {
+    D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_0 = 0x0,
+    D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER_1 = 0x1
+} D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER;
+typedef enum D3D12_HEAP_SERIALIZATION_TIER {
+    D3D12_HEAP_SERIALIZATION_TIER_0 = 0x0,
+    D3D12_HEAP_SERIALIZATION_TIER_10 = 0xa
+} D3D12_HEAP_SERIALIZATION_TIER;
+typedef enum D3D12_RENDER_PASS_TIER {
+    D3D12_RENDER_PASS_TIER_0 = 0x0,
+    D3D12_RENDER_PASS_TIER_1 = 0x1,
+    D3D12_RENDER_PASS_TIER_2 = 0x2
+} D3D12_RENDER_PASS_TIER;
+typedef enum D3D12_RAYTRACING_TIER {
+    D3D12_RAYTRACING_TIER_NOT_SUPPORTED = 0x0,
+    D3D12_RAYTRACING_TIER_1_0 = 0xa
+} D3D12_RAYTRACING_TIER;
 #ifndef __ID3D12Fence_FWD_DEFINED__
 #define __ID3D12Fence_FWD_DEFINED__
 typedef interface ID3D12Fence ID3D12Fence;
@@ -410,6 +529,14 @@ typedef struct D3D12_RANGE {
     SIZE_T Begin;
     SIZE_T End;
 } D3D12_RANGE;
+typedef struct D3D12_RANGE_UINT64 {
+    UINT64 Begin;
+    UINT64 End;
+} D3D12_RANGE_UINT64;
+typedef struct D3D12_SUBRESOURCE_RANGE_UINT64 {
+    UINT Subresource;
+    D3D12_RANGE_UINT64 Range;
+} D3D12_SUBRESOURCE_RANGE_UINT64;
 typedef struct D3D12_RESOURCE_ALLOCATION_INFO {
     UINT64 SizeInBytes;
     UINT64 Alignment;
@@ -454,6 +581,17 @@ typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT {
     D3D12_FORMAT_SUPPORT1 Support1;
     D3D12_FORMAT_SUPPORT2 Support2;
 } D3D12_FEATURE_DATA_FORMAT_SUPPORT;
+typedef enum D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS {
+    D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_NONE = 0x0,
+    D3D12_MULTISAMPLE_QUALITY_LEVELS_FLAG_TILED_RESOURCE = 0x1
+} D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS);
+typedef struct D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS {
+    DXGI_FORMAT Format;
+    UINT SampleCount;
+    D3D12_MULTISAMPLE_QUALITY_LEVEL_FLAGS Flags;
+    UINT NumQualityLevels;
+} D3D12_FEATURE_DATA_MULTISAMPLE_QUALITY_LEVELS;
 typedef enum D3D12_HEAP_TYPE {
     D3D12_HEAP_TYPE_DEFAULT = 1,
     D3D12_HEAP_TYPE_UPLOAD = 2,
@@ -462,6 +600,7 @@ typedef enum D3D12_HEAP_TYPE {
 } D3D12_HEAP_TYPE;
 typedef enum D3D12_CPU_PAGE_PROPERTY {
     D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
+    D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLE = 1,
     D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
     D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3
 } D3D12_CPU_PAGE_PROPERTY;
@@ -490,6 +629,7 @@ typedef enum D3D12_HEAP_FLAGS {
     D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
     D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84
 } D3D12_HEAP_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_HEAP_FLAGS);
 typedef struct D3D12_HEAP_DESC {
     UINT64 SizeInBytes;
     D3D12_HEAP_PROPERTIES Properties;
@@ -559,7 +699,13 @@ typedef enum D3D12_RESOURCE_STATES {
     D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
     D3D12_RESOURCE_STATE_GENERIC_READ = ((((0x1 | 0x2) | 0x40) | 0x80) | 0x200) | 0x800,
     D3D12_RESOURCE_STATE_PRESENT = 0x0,
-    D3D12_RESOURCE_STATE_PREDICATION = 0x200
+    D3D12_RESOURCE_STATE_PREDICATION = 0x200,
+    D3D12_RESOURCE_STATE_VIDEO_DECODE_READ = 0x10000,
+    D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE = 0x20000,
+    D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ = 0x40000,
+    D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE = 0x80000,
+    D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ = 0x200000,
+    D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE = 0x800000
 } D3D12_RESOURCE_STATES;
 DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_STATES);
 typedef enum D3D12_RESOURCE_BARRIER_TYPE {
@@ -572,6 +718,7 @@ typedef enum D3D12_RESOURCE_BARRIER_FLAGS {
     D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
     D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2
 } D3D12_RESOURCE_BARRIER_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_BARRIER_FLAGS);
 typedef struct D3D12_RESOURCE_TRANSITION_BARRIER {
     ID3D12Resource *pResource;
     UINT Subresource;
@@ -629,6 +776,16 @@ typedef struct D3D12_RESOURCE_DESC {
     D3D12_TEXTURE_LAYOUT Layout;
     D3D12_RESOURCE_FLAGS Flags;
 } D3D12_RESOURCE_DESC;
+typedef enum D3D12_RESOLVE_MODE {
+    D3D12_RESOLVE_MODE_DECOMPRESS = 0,
+    D3D12_RESOLVE_MODE_MIN = 1,
+    D3D12_RESOLVE_MODE_MAX = 2,
+    D3D12_RESOLVE_MODE_AVERAGE = 3
+} D3D12_RESOLVE_MODE;
+typedef struct D3D12_SAMPLE_POSITION {
+    INT8 X;
+    INT8 Y;
+} D3D12_SAMPLE_POSITION;
 typedef enum D3D12_TEXTURE_COPY_TYPE {
     D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
     D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1
@@ -666,8 +823,13 @@ typedef struct D3D12_DESCRIPTOR_RANGE {
     UINT OffsetInDescriptorsFromTableStart;
 } D3D12_DESCRIPTOR_RANGE;
 typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS {
-    D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0
+    D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0x0,
+    D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
+    D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
+    D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
+    D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8
 } D3D12_DESCRIPTOR_RANGE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_RANGE_FLAGS);
 typedef struct D3D12_DESCRIPTOR_RANGE1 {
     D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
     UINT NumDescriptors;
@@ -694,8 +856,12 @@ typedef struct D3D12_ROOT_DESCRIPTOR {
     UINT RegisterSpace;
 } D3D12_ROOT_DESCRIPTOR;
 typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS {
-    D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0
+    D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0x0,
+    D3D12_ROOT_DESCRIPTOR_FLAG_DATA_VOLATILE = 0x2,
+    D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
+    D3D12_ROOT_DESCRIPTOR_FLAG_DATA_STATIC = 0x8
 } D3D12_ROOT_DESCRIPTOR_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_DESCRIPTOR_FLAGS);
 typedef struct D3D12_ROOT_DESCRIPTOR1 {
     UINT ShaderRegister;
     UINT RegisterSpace;
@@ -859,6 +1025,7 @@ typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
     D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
     D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40
 } D3D12_ROOT_SIGNATURE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_ROOT_SIGNATURE_FLAGS);
 typedef struct D3D12_ROOT_SIGNATURE_DESC {
     UINT NumParameters;
     const D3D12_ROOT_PARAMETER *pParameters;
@@ -896,6 +1063,7 @@ typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS {
     D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0x0,
     D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1
 } D3D12_DESCRIPTOR_HEAP_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_DESCRIPTOR_HEAP_FLAGS);
 typedef struct D3D12_DESCRIPTOR_HEAP_DESC {
     D3D12_DESCRIPTOR_HEAP_TYPE Type;
     UINT NumDescriptors;
@@ -924,6 +1092,7 @@ typedef enum D3D12_BUFFER_SRV_FLAGS {
     D3D12_BUFFER_SRV_FLAG_NONE = 0x0,
     D3D12_BUFFER_SRV_FLAG_RAW = 0x1
 } D3D12_BUFFER_SRV_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_SRV_FLAGS);
 typedef enum D3D12_SHADER_COMPONENT_MAPPING {
     D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
     D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
@@ -939,6 +1108,9 @@ typedef enum D3D12_SHADER_COMPONENT_MAPPING {
         | (((w) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 3)) \
         | D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)
 #define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)
+#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(i, mapping) \
+        ((D3D12_SHADER_COMPONENT_MAPPING)(mapping >> (i * D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \
+        & D3D12_SHADER_COMPONENT_MAPPING_MASK))
 typedef struct D3D12_BUFFER_SRV {
     UINT64 FirstElement;
     UINT NumElements;
@@ -1025,6 +1197,7 @@ typedef enum D3D12_BUFFER_UAV_FLAGS {
     D3D12_BUFFER_UAV_FLAG_NONE = 0x0,
     D3D12_BUFFER_UAV_FLAG_RAW = 0x1
 } D3D12_BUFFER_UAV_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_BUFFER_UAV_FLAGS);
 typedef struct D3D12_BUFFER_UAV {
     UINT64 FirstElement;
     UINT NumElements;
@@ -1361,6 +1534,7 @@ typedef enum D3D12_PIPELINE_STATE_FLAGS {
     D3D12_PIPELINE_STATE_FLAG_NONE = 0x0,
     D3D12_PIPELINE_STATE_FLAG_DEBUG = 0x1
 } D3D12_PIPELINE_STATE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_PIPELINE_STATE_FLAGS);
 typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC {
     ID3D12RootSignature *pRootSignature;
     D3D12_SHADER_BYTECODE VS;
@@ -1399,12 +1573,14 @@ typedef enum D3D12_COMMAND_LIST_TYPE {
 } D3D12_COMMAND_LIST_TYPE;
 typedef enum D3D12_COMMAND_QUEUE_PRIORITY {
     D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
-    D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100
+    D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
+    D3D12_COMMAND_QUEUE_PRIORITY_GLOBAL_REALTIME = 10000
 } D3D12_COMMAND_QUEUE_PRIORITY;
 typedef enum D3D12_COMMAND_QUEUE_FLAGS {
     D3D12_COMMAND_QUEUE_FLAG_NONE = 0x0,
     D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1
 } D3D12_COMMAND_QUEUE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_COMMAND_QUEUE_FLAGS);
 typedef struct D3D12_COMMAND_QUEUE_DESC {
     D3D12_COMMAND_LIST_TYPE Type;
     INT Priority;
@@ -1426,13 +1602,102 @@ typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS {
     const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
     D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
 } D3D12_FEATURE_DATA_FEATURE_LEVELS;
+typedef struct D3D12_FEATURE_DATA_ROOT_SIGNATURE {
+    D3D_ROOT_SIGNATURE_VERSION HighestVersion;
+} D3D12_FEATURE_DATA_ROOT_SIGNATURE;
+typedef struct D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT {
+    UINT MaxGPUVirtualAddressBitsPerResource;
+    UINT MaxGPUVirtualAddressBitsPerProcess;
+} D3D12_FEATURE_DATA_GPU_VIRTUAL_ADDRESS_SUPPORT;
+typedef enum D3D_SHADER_MODEL {
+    D3D_SHADER_MODEL_5_1 = 0x51,
+    D3D_SHADER_MODEL_6_0 = 0x60
+} D3D_SHADER_MODEL;
+typedef struct D3D12_FEATURE_DATA_SHADER_MODEL {
+    D3D_SHADER_MODEL HighestShaderModel;
+} D3D12_FEATURE_DATA_SHADER_MODEL;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS1 {
+    WINBOOL WaveOps;
+    UINT WaveLaneCountMin;
+    UINT WaveLaneCountMax;
+    UINT TotalLaneCount;
+    WINBOOL ExpandedComputeResourceStates;
+    WINBOOL Int64ShaderOps;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS1;
+typedef struct D3D12_FEATURE_DATA_ARCHITECTURE1 {
+    UINT NodeIndex;
+    WINBOOL TileBasedRenderer;
+    WINBOOL UMA;
+    WINBOOL CacheCoherentUMA;
+    WINBOOL IsolatedMMU;
+} D3D12_FEATURE_DATA_ARCHITECTURE1;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS2 {
+    WINBOOL DepthBoundsTestSupported;
+    D3D12_PROGRAMMABLE_SAMPLE_POSITIONS_TIER ProgrammableSamplePositionsTier;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS2;
+typedef struct D3D12_FEATURE_DATA_SHADER_CACHE {
+    D3D12_SHADER_CACHE_SUPPORT_FLAGS SupportFlags;
+} D3D12_FEATURE_DATA_SHADER_CACHE;
+typedef struct D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY {
+    D3D12_COMMAND_LIST_TYPE CommandListType;
+    UINT Priority;
+    WINBOOL PriorityForTypeIsSupported;
+} D3D12_FEATURE_DATA_COMMAND_QUEUE_PRIORITY;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS3 {
+    WINBOOL CopyQueueTimestampQueriesSupported;
+    WINBOOL CastingFullyTypedFormatSupported;
+    D3D12_COMMAND_LIST_SUPPORT_FLAGS WriteBufferImmediateSupportFlags;
+    D3D12_VIEW_INSTANCING_TIER ViewInstancingTier;
+    WINBOOL BarycentricsSupported;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS3;
+typedef struct D3D12_FEATURE_DATA_EXISTING_HEAPS {
+    WINBOOL Supported;
+} D3D12_FEATURE_DATA_EXISTING_HEAPS;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS4 {
+    WINBOOL MSAA64KBAlignedTextureSupported;
+    D3D12_SHARED_RESOURCE_COMPATIBILITY_TIER SharedResourceCompatibilityTier;
+    WINBOOL Native16BitShaderOpsSupported;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS4;
+typedef struct D3D12_FEATURE_DATA_SERIALIZATION {
+    UINT NodeIndex;
+    D3D12_HEAP_SERIALIZATION_TIER HeapSerializationTier;
+} D3D12_FEATURE_DATA_SERIALIZATION;
+typedef struct D3D12_FEATURE_DATA_CROSS_NODE {
+    D3D12_CROSS_NODE_SHARING_TIER SharingTier;
+    WINBOOL AtomicShaderInstructions;
+} D3D12_FEATURE_DATA_CROSS_NODE;
+typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS5 {
+    WINBOOL SRVOnlyTiledResourceTier3;
+    D3D12_RENDER_PASS_TIER RenderPassesTier;
+    D3D12_RAYTRACING_TIER RaytracingTier;
+} D3D12_FEATURE_DATA_D3D12_OPTIONS5;
 typedef enum D3D12_FEATURE {
     D3D12_FEATURE_D3D12_OPTIONS = 0,
     D3D12_FEATURE_ARCHITECTURE = 1,
     D3D12_FEATURE_FEATURE_LEVELS = 2,
     D3D12_FEATURE_FORMAT_SUPPORT = 3,
-    D3D12_FEATURE_FORMAT_INFO = 4,
-    D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 5
+    D3D12_FEATURE_MULTISAMPLE_QUALITY_LEVELS = 4,
+    D3D12_FEATURE_FORMAT_INFO = 5,
+    D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 6,
+    D3D12_FEATURE_SHADER_MODEL = 7,
+    D3D12_FEATURE_D3D12_OPTIONS1 = 8,
+    D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_SUPPORT = 10,
+    D3D12_FEATURE_ROOT_SIGNATURE = 12,
+    D3D12_FEATURE_ARCHITECTURE1 = 16,
+    D3D12_FEATURE_D3D12_OPTIONS2 = 18,
+    D3D12_FEATURE_SHADER_CACHE = 19,
+    D3D12_FEATURE_COMMAND_QUEUE_PRIORITY = 20,
+    D3D12_FEATURE_D3D12_OPTIONS3 = 21,
+    D3D12_FEATURE_EXISTING_HEAPS = 22,
+    D3D12_FEATURE_D3D12_OPTIONS4 = 23,
+    D3D12_FEATURE_SERIALIZATION = 24,
+    D3D12_FEATURE_CROSS_NODE = 25,
+    D3D12_FEATURE_D3D12_OPTIONS5 = 27,
+    D3D12_FEATURE_D3D12_OPTIONS6 = 30,
+    D3D12_FEATURE_QUERY_META_COMMAND = 31,
+    D3D12_FEATURE_D3D12_OPTIONS7 = 32,
+    D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPE_COUNT = 33,
+    D3D12_FEATURE_PROTECTED_RESOURCE_SESSION_TYPES = 34
 } D3D12_FEATURE;
 typedef struct D3D12_MEMCPY_DEST {
     void *pData;
@@ -1444,6 +1709,23 @@ typedef struct D3D12_SUBRESOURCE_DATA {
     LONG_PTR RowPitch;
     LONG_PTR SlicePitch;
 } D3D12_SUBRESOURCE_DATA;
+typedef enum D3D12_MULTIPLE_FENCE_WAIT_FLAGS {
+    D3D12_MULTIPLE_FENCE_WAIT_FLAG_NONE = 0x0,
+    D3D12_MULTIPLE_FENCE_WAIT_FLAG_ANY = 0x1,
+    D3D12_MULTIPLE_FENCE_WAIT_FLAG_ALL = 0x0
+} D3D12_MULTIPLE_FENCE_WAIT_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_MULTIPLE_FENCE_WAIT_FLAGS);
+typedef enum D3D12_RESIDENCY_PRIORITY {
+    D3D12_RESIDENCY_PRIORITY_MINIMUM = 0x28000000,
+    D3D12_RESIDENCY_PRIORITY_LOW = 0x50000000,
+    D3D12_RESIDENCY_PRIORITY_NORMAL = 0x78000000,
+    D3D12_RESIDENCY_PRIORITY_HIGH = 0xa0010000,
+    D3D12_RESIDENCY_PRIORITY_MAXIMUM = 0xc8000000
+} D3D12_RESIDENCY_PRIORITY;
+typedef struct D3D12_WRITEBUFFERIMMEDIATE_PARAMETER {
+    D3D12_GPU_VIRTUAL_ADDRESS Dest;
+    UINT32 Value;
+} D3D12_WRITEBUFFERIMMEDIATE_PARAMETER;
 /*****************************************************************************
  * ID3D12Object interface
  */
@@ -1798,6 +2080,147 @@ static FORCEINLINE HRESULT ID3D12Pageable_GetDevice(ID3D12Pageable* This,REFIID
 
 #endif  /* __ID3D12Pageable_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * ID3D12Heap interface
+ */
+#ifndef __ID3D12Heap_INTERFACE_DEFINED__
+#define __ID3D12Heap_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90,0xee, 0x98,0x84,0x26,0x5e,0x8d,0xf3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6b3b2502-6e51-45b3-90ee-9884265e8df3")
+ID3D12Heap : public ID3D12Pageable
+{
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+    virtual D3D12_HEAP_DESC* STDMETHODCALLTYPE GetDesc(
+        D3D12_HEAP_DESC *__ret) = 0;
+    D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc(
+        )
+    {
+        D3D12_HEAP_DESC __ret;
+        return *GetDesc(&__ret);
+    }
+#else
+    virtual D3D12_HEAP_DESC STDMETHODCALLTYPE GetDesc(
+        ) = 0;
+#endif
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Heap, 0x6b3b2502, 0x6e51, 0x45b3, 0x90,0xee, 0x98,0x84,0x26,0x5e,0x8d,0xf3)
+#endif
+#else
+typedef struct ID3D12HeapVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12Heap *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12Heap *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12Heap *This);
+
+    /*** ID3D12Object methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+        ID3D12Heap *This,
+        REFGUID guid,
+        UINT *data_size,
+        void *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+        ID3D12Heap *This,
+        REFGUID guid,
+        UINT data_size,
+        const void *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+        ID3D12Heap *This,
+        REFGUID guid,
+        const IUnknown *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetName)(
+        ID3D12Heap *This,
+        const WCHAR *name);
+
+    /*** ID3D12DeviceChild methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDevice)(
+        ID3D12Heap *This,
+        REFIID riid,
+        void **device);
+
+    /*** ID3D12Heap methods ***/
+    D3D12_HEAP_DESC * (STDMETHODCALLTYPE *GetDesc)(
+        ID3D12Heap *This,
+        D3D12_HEAP_DESC *__ret);
+
+    END_INTERFACE
+} ID3D12HeapVtbl;
+
+interface ID3D12Heap {
+    CONST_VTBL ID3D12HeapVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Heap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Heap_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Heap_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12Heap_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Heap_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Heap_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Heap_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12Heap_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12Heap methods ***/
+#define ID3D12Heap_GetDesc(This) ID3D12Heap_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Heap_QueryInterface(ID3D12Heap* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Heap_AddRef(ID3D12Heap* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Heap_Release(ID3D12Heap* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12Heap_GetPrivateData(ID3D12Heap* This,REFGUID guid,UINT *data_size,void *data) {
+    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Heap_SetPrivateData(ID3D12Heap* This,REFGUID guid,UINT data_size,const void *data) {
+    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Heap_SetPrivateDataInterface(ID3D12Heap* This,REFGUID guid,const IUnknown *data) {
+    return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12Heap_SetName(ID3D12Heap* This,const WCHAR *name) {
+    return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12Heap_GetDevice(ID3D12Heap* This,REFIID riid,void **device) {
+    return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12Heap methods ***/
+static FORCEINLINE D3D12_HEAP_DESC ID3D12Heap_GetDesc(ID3D12Heap* This) {
+    D3D12_HEAP_DESC __ret;
+    return *This->lpVtbl->GetDesc(This,&__ret);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12Heap_INTERFACE_DEFINED__ */
+
 /*****************************************************************************
  * ID3D12Resource interface
  */
@@ -2162,6 +2585,7 @@ typedef enum D3D12_TILE_COPY_FLAGS {
     D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
     D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4
 } D3D12_TILE_COPY_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_COPY_FLAGS);
 typedef struct D3D12_INDEX_BUFFER_VIEW {
     D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
     UINT SizeInBytes;
@@ -2211,6 +2635,10 @@ typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS {
     UINT64 DSInvocations;
     UINT64 CSInvocations;
 } D3D12_QUERY_DATA_PIPELINE_STATISTICS;
+typedef struct D3D12_QUERY_DATA_SO_STATISTICS {
+    UINT64 NumPrimitivesWritten;
+    UINT64 PrimitivesStorageNeeded;
+} D3D12_QUERY_DATA_SO_STATISTICS;
 typedef enum D3D12_PREDICATION_OP {
     D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
     D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1
@@ -3513,299 +3941,2069 @@ static FORCEINLINE void ID3D12GraphicsCommandList_ExecuteIndirect(ID3D12Graphics
 
 #endif  /* __ID3D12GraphicsCommandList_INTERFACE_DEFINED__ */
 
-typedef enum D3D12_TILE_RANGE_FLAGS {
-    D3D12_TILE_RANGE_FLAG_NONE = 0x0,
-    D3D12_TILE_RANGE_FLAG_NULL = 0x1,
-    D3D12_TILE_RANGE_FLAG_SKIP = 0x2,
-    D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 0x4
-} D3D12_TILE_RANGE_FLAGS;
-typedef enum D3D12_TILE_MAPPING_FLAGS {
-    D3D12_TILE_MAPPING_FLAG_NONE = 0x0,
-    D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
-} D3D12_TILE_MAPPING_FLAGS;
 /*****************************************************************************
- * ID3D12CommandQueue interface
+ * ID3D12GraphicsCommandList1 interface
  */
-#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
-#define __ID3D12CommandQueue_INTERFACE_DEFINED__
+#ifndef __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
+#define __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed);
+DEFINE_GUID(IID_ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb,0x38, 0x94,0x6d,0x7d,0x0e,0x7c,0xa7);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
-ID3D12CommandQueue : public ID3D12Pageable
+MIDL_INTERFACE("553103fb-1fe7-4557-bb38-946d7d0e7ca7")
+ID3D12GraphicsCommandList1 : public ID3D12GraphicsCommandList
 {
-    virtual void STDMETHODCALLTYPE UpdateTileMappings(
-        ID3D12Resource *resource,
-        UINT region_count,
-        const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
-        const D3D12_TILE_REGION_SIZE *region_sizes,
-        UINT range_count,
-        const D3D12_TILE_RANGE_FLAGS *range_flags,
-        UINT *heap_range_offsets,
-        UINT *range_tile_counts,
-        D3D12_TILE_MAPPING_FLAGS flags) = 0;
-
-    virtual void STDMETHODCALLTYPE CopyTileMappings(
-        ID3D12Resource *dst_resource,
-        const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
-        ID3D12Resource *src_resource,
-        const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
-        const D3D12_TILE_REGION_SIZE *region_size,
-        D3D12_TILE_MAPPING_FLAGS flags) = 0;
-
-    virtual void STDMETHODCALLTYPE ExecuteCommandLists(
-        UINT command_list_count,
-        ID3D12CommandList *const *command_lists) = 0;
-
-    virtual void STDMETHODCALLTYPE SetMarker(
-        UINT metadata,
-        const void *data,
-        UINT size) = 0;
-
-    virtual void STDMETHODCALLTYPE BeginEvent(
-        UINT metadata,
-        const void *data,
-        UINT size) = 0;
-
-    virtual void STDMETHODCALLTYPE EndEvent(
-        ) = 0;
+    virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT(
+        ID3D12Resource *dst_buffer,
+        UINT64 dst_offset,
+        ID3D12Resource *src_buffer,
+        UINT64 src_offset,
+        UINT dependent_resource_count,
+        ID3D12Resource *const *dependent_resources,
+        const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE Signal(
-        ID3D12Fence *fence,
-        UINT64 value) = 0;
+    virtual void STDMETHODCALLTYPE AtomicCopyBufferUINT64(
+        ID3D12Resource *dst_buffer,
+        UINT64 dst_offset,
+        ID3D12Resource *src_buffer,
+        UINT64 src_offset,
+        UINT dependent_resource_count,
+        ID3D12Resource *const *dependent_resources,
+        const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE Wait(
-        ID3D12Fence *fence,
-        UINT64 value) = 0;
+    virtual void STDMETHODCALLTYPE OMSetDepthBounds(
+        FLOAT min,
+        FLOAT max) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
-        UINT64 *frequency) = 0;
+    virtual void STDMETHODCALLTYPE SetSamplePositions(
+        UINT sample_count,
+        UINT pixel_count,
+        D3D12_SAMPLE_POSITION *sample_positions) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
-        UINT64 *gpu_timestamp,
-        UINT64 *cpu_timestamp) = 0;
+    virtual void STDMETHODCALLTYPE ResolveSubresourceRegion(
+        ID3D12Resource *dst_resource,
+        UINT dst_sub_resource_idx,
+        UINT dst_x,
+        UINT dst_y,
+        ID3D12Resource *src_resource,
+        UINT src_sub_resource_idx,
+        D3D12_RECT *src_rect,
+        DXGI_FORMAT format,
+        D3D12_RESOLVE_MODE mode) = 0;
 
-#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
-    virtual D3D12_COMMAND_QUEUE_DESC* STDMETHODCALLTYPE GetDesc(
-        D3D12_COMMAND_QUEUE_DESC *__ret) = 0;
-    D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(
-        )
-    {
-        D3D12_COMMAND_QUEUE_DESC __ret;
-        return *GetDesc(&__ret);
-    }
-#else
-    virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(
-        ) = 0;
-#endif
+    virtual void STDMETHODCALLTYPE SetViewInstanceMask(
+        UINT mask) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed)
+__CRT_UUID_DECL(ID3D12GraphicsCommandList1, 0x553103fb, 0x1fe7, 0x4557, 0xbb,0x38, 0x94,0x6d,0x7d,0x0e,0x7c,0xa7)
 #endif
 #else
-typedef struct ID3D12CommandQueueVtbl {
+typedef struct ID3D12GraphicsCommandList1Vtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D12CommandQueue *This,
+        ID3D12GraphicsCommandList1 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D12CommandQueue *This);
+        ID3D12GraphicsCommandList1 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D12CommandQueue *This);
+        ID3D12GraphicsCommandList1 *This);
 
     /*** ID3D12Object methods ***/
     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D12CommandQueue *This,
+        ID3D12GraphicsCommandList1 *This,
         REFGUID guid,
         UINT *data_size,
         void *data);
 
     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D12CommandQueue *This,
+        ID3D12GraphicsCommandList1 *This,
         REFGUID guid,
         UINT data_size,
         const void *data);
 
     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D12CommandQueue *This,
+        ID3D12GraphicsCommandList1 *This,
         REFGUID guid,
         const IUnknown *data);
 
     HRESULT (STDMETHODCALLTYPE *SetName)(
-        ID3D12CommandQueue *This,
+        ID3D12GraphicsCommandList1 *This,
         const WCHAR *name);
 
     /*** ID3D12DeviceChild methods ***/
     HRESULT (STDMETHODCALLTYPE *GetDevice)(
-        ID3D12CommandQueue *This,
+        ID3D12GraphicsCommandList1 *This,
         REFIID riid,
         void **device);
 
-    /*** ID3D12CommandQueue methods ***/
-    void (STDMETHODCALLTYPE *UpdateTileMappings)(
-        ID3D12CommandQueue *This,
-        ID3D12Resource *resource,
-        UINT region_count,
-        const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
-        const D3D12_TILE_REGION_SIZE *region_sizes,
-        UINT range_count,
-        const D3D12_TILE_RANGE_FLAGS *range_flags,
-        UINT *heap_range_offsets,
-        UINT *range_tile_counts,
-        D3D12_TILE_MAPPING_FLAGS flags);
+    /*** ID3D12CommandList methods ***/
+    D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
+        ID3D12GraphicsCommandList1 *This);
 
-    void (STDMETHODCALLTYPE *CopyTileMappings)(
-        ID3D12CommandQueue *This,
-        ID3D12Resource *dst_resource,
-        const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
-        ID3D12Resource *src_resource,
-        const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
-        const D3D12_TILE_REGION_SIZE *region_size,
-        D3D12_TILE_MAPPING_FLAGS flags);
+    /*** ID3D12GraphicsCommandList methods ***/
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        ID3D12GraphicsCommandList1 *This);
 
-    void (STDMETHODCALLTYPE *ExecuteCommandLists)(
-        ID3D12CommandQueue *This,
-        UINT command_list_count,
-        ID3D12CommandList *const *command_lists);
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12CommandAllocator *allocator,
+        ID3D12PipelineState *initial_state);
+
+    HRESULT (STDMETHODCALLTYPE *ClearState)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12PipelineState *pipeline_state);
+
+    void (STDMETHODCALLTYPE *DrawInstanced)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT vertex_count_per_instance,
+        UINT instance_count,
+        UINT start_vertex_location,
+        UINT start_instance_location);
+
+    void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT index_count_per_instance,
+        UINT instance_count,
+        UINT start_vertex_location,
+        INT base_vertex_location,
+        UINT start_instance_location);
+
+    void (STDMETHODCALLTYPE *Dispatch)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT x,
+        UINT u,
+        UINT z);
+
+    void (STDMETHODCALLTYPE *CopyBufferRegion)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12Resource *dst_buffer,
+        UINT64 dst_offset,
+        ID3D12Resource *src_buffer,
+        UINT64 src_offset,
+        UINT64 byte_count);
+
+    void (STDMETHODCALLTYPE *CopyTextureRegion)(
+        ID3D12GraphicsCommandList1 *This,
+        const D3D12_TEXTURE_COPY_LOCATION *dst,
+        UINT dst_x,
+        UINT dst_y,
+        UINT dst_z,
+        const D3D12_TEXTURE_COPY_LOCATION *src,
+        const D3D12_BOX *src_box);
+
+    void (STDMETHODCALLTYPE *CopyResource)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12Resource *dst_resource,
+        ID3D12Resource *src_resource);
+
+    void (STDMETHODCALLTYPE *CopyTiles)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12Resource *tiled_resource,
+        const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
+        const D3D12_TILE_REGION_SIZE *tile_region_size,
+        ID3D12Resource *buffer,
+        UINT64 buffer_offset,
+        D3D12_TILE_COPY_FLAGS flags);
+
+    void (STDMETHODCALLTYPE *ResolveSubresource)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12Resource *dst_resource,
+        UINT dst_sub_resource,
+        ID3D12Resource *src_resource,
+        UINT src_sub_resource,
+        DXGI_FORMAT format);
+
+    void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+        ID3D12GraphicsCommandList1 *This,
+        D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
+
+    void (STDMETHODCALLTYPE *RSSetViewports)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT viewport_count,
+        const D3D12_VIEWPORT *viewports);
+
+    void (STDMETHODCALLTYPE *RSSetScissorRects)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT rect_count,
+        const D3D12_RECT *rects);
+
+    void (STDMETHODCALLTYPE *OMSetBlendFactor)(
+        ID3D12GraphicsCommandList1 *This,
+        const FLOAT blend_factor[4]);
+
+    void (STDMETHODCALLTYPE *OMSetStencilRef)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT stencil_ref);
+
+    void (STDMETHODCALLTYPE *SetPipelineState)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12PipelineState *pipeline_state);
+
+    void (STDMETHODCALLTYPE *ResourceBarrier)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT barrier_count,
+        const D3D12_RESOURCE_BARRIER *barriers);
+
+    void (STDMETHODCALLTYPE *ExecuteBundle)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12GraphicsCommandList *command_list);
+
+    void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT heap_count,
+        ID3D12DescriptorHeap *const *heaps);
+
+    void (STDMETHODCALLTYPE *SetComputeRootSignature)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12RootSignature *root_signature);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12RootSignature *root_signature);
+
+    void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
+
+    void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        UINT data,
+        UINT dst_offset);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        UINT data,
+        UINT dst_offset);
+
+    void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        UINT constant_count,
+        const void *data,
+        UINT dst_offset);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        UINT constant_count,
+        const void *data,
+        UINT dst_offset);
+
+    void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+        ID3D12GraphicsCommandList1 *This,
+        const D3D12_INDEX_BUFFER_VIEW *view);
+
+    void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT start_slot,
+        UINT view_count,
+        const D3D12_VERTEX_BUFFER_VIEW *views);
+
+    void (STDMETHODCALLTYPE *SOSetTargets)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT start_slot,
+        UINT view_count,
+        const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
+
+    void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT render_target_descriptor_count,
+        const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
+        WINBOOL single_descriptor_handle,
+        const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
+
+    void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+        ID3D12GraphicsCommandList1 *This,
+        D3D12_CPU_DESCRIPTOR_HANDLE dsv,
+        D3D12_CLEAR_FLAGS flags,
+        FLOAT depth,
+        UINT8 stencil,
+        UINT rect_count,
+        const D3D12_RECT *rects);
+
+    void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+        ID3D12GraphicsCommandList1 *This,
+        D3D12_CPU_DESCRIPTOR_HANDLE rtv,
+        const FLOAT color[4],
+        UINT rect_count,
+        const D3D12_RECT *rects);
+
+    void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
+        ID3D12GraphicsCommandList1 *This,
+        D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+        D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+        ID3D12Resource *resource,
+        const UINT values[4],
+        UINT rect_count,
+        const D3D12_RECT *rects);
+
+    void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
+        ID3D12GraphicsCommandList1 *This,
+        D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+        D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+        ID3D12Resource *resource,
+        const float values[4],
+        UINT rect_count,
+        const D3D12_RECT *rects);
+
+    void (STDMETHODCALLTYPE *DiscardResource)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12Resource *resource,
+        const D3D12_DISCARD_REGION *region);
+
+    void (STDMETHODCALLTYPE *BeginQuery)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12QueryHeap *heap,
+        D3D12_QUERY_TYPE type,
+        UINT index);
+
+    void (STDMETHODCALLTYPE *EndQuery)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12QueryHeap *heap,
+        D3D12_QUERY_TYPE type,
+        UINT index);
+
+    void (STDMETHODCALLTYPE *ResolveQueryData)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12QueryHeap *heap,
+        D3D12_QUERY_TYPE type,
+        UINT start_index,
+        UINT query_count,
+        ID3D12Resource *dst_buffer,
+        UINT64 aligned_dst_buffer_offset);
+
+    void (STDMETHODCALLTYPE *SetPredication)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12Resource *buffer,
+        UINT64 aligned_buffer_offset,
+        D3D12_PREDICATION_OP operation);
 
     void (STDMETHODCALLTYPE *SetMarker)(
-        ID3D12CommandQueue *This,
+        ID3D12GraphicsCommandList1 *This,
+        UINT metadata,
+        const void *data,
+        UINT size);
+
+    void (STDMETHODCALLTYPE *BeginEvent)(
+        ID3D12GraphicsCommandList1 *This,
         UINT metadata,
         const void *data,
         UINT size);
 
-    void (STDMETHODCALLTYPE *BeginEvent)(
-        ID3D12CommandQueue *This,
-        UINT metadata,
-        const void *data,
-        UINT size);
+    void (STDMETHODCALLTYPE *EndEvent)(
+        ID3D12GraphicsCommandList1 *This);
+
+    void (STDMETHODCALLTYPE *ExecuteIndirect)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12CommandSignature *command_signature,
+        UINT max_command_count,
+        ID3D12Resource *arg_buffer,
+        UINT64 arg_buffer_offset,
+        ID3D12Resource *count_buffer,
+        UINT64 count_buffer_offset);
+
+    /*** ID3D12GraphicsCommandList1 methods ***/
+    void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12Resource *dst_buffer,
+        UINT64 dst_offset,
+        ID3D12Resource *src_buffer,
+        UINT64 src_offset,
+        UINT dependent_resource_count,
+        ID3D12Resource *const *dependent_resources,
+        const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
+
+    void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12Resource *dst_buffer,
+        UINT64 dst_offset,
+        ID3D12Resource *src_buffer,
+        UINT64 src_offset,
+        UINT dependent_resource_count,
+        ID3D12Resource *const *dependent_resources,
+        const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
+
+    void (STDMETHODCALLTYPE *OMSetDepthBounds)(
+        ID3D12GraphicsCommandList1 *This,
+        FLOAT min,
+        FLOAT max);
+
+    void (STDMETHODCALLTYPE *SetSamplePositions)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT sample_count,
+        UINT pixel_count,
+        D3D12_SAMPLE_POSITION *sample_positions);
+
+    void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
+        ID3D12GraphicsCommandList1 *This,
+        ID3D12Resource *dst_resource,
+        UINT dst_sub_resource_idx,
+        UINT dst_x,
+        UINT dst_y,
+        ID3D12Resource *src_resource,
+        UINT src_sub_resource_idx,
+        D3D12_RECT *src_rect,
+        DXGI_FORMAT format,
+        D3D12_RESOLVE_MODE mode);
+
+    void (STDMETHODCALLTYPE *SetViewInstanceMask)(
+        ID3D12GraphicsCommandList1 *This,
+        UINT mask);
+
+    END_INTERFACE
+} ID3D12GraphicsCommandList1Vtbl;
+
+interface ID3D12GraphicsCommandList1 {
+    CONST_VTBL ID3D12GraphicsCommandList1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12GraphicsCommandList1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12GraphicsCommandList1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12GraphicsCommandList1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12GraphicsCommandList1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12GraphicsCommandList1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12GraphicsCommandList1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12GraphicsCommandList1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12GraphicsCommandList1_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12CommandList methods ***/
+#define ID3D12GraphicsCommandList1_GetType(This) (This)->lpVtbl->GetType(This)
+/*** ID3D12GraphicsCommandList methods ***/
+#define ID3D12GraphicsCommandList1_Close(This) (This)->lpVtbl->Close(This)
+#define ID3D12GraphicsCommandList1_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
+#define ID3D12GraphicsCommandList1_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
+#define ID3D12GraphicsCommandList1_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
+#define ID3D12GraphicsCommandList1_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
+#define ID3D12GraphicsCommandList1_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
+#define ID3D12GraphicsCommandList1_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
+#define ID3D12GraphicsCommandList1_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
+#define ID3D12GraphicsCommandList1_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
+#define ID3D12GraphicsCommandList1_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
+#define ID3D12GraphicsCommandList1_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
+#define ID3D12GraphicsCommandList1_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
+#define ID3D12GraphicsCommandList1_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
+#define ID3D12GraphicsCommandList1_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
+#define ID3D12GraphicsCommandList1_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
+#define ID3D12GraphicsCommandList1_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
+#define ID3D12GraphicsCommandList1_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
+#define ID3D12GraphicsCommandList1_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
+#define ID3D12GraphicsCommandList1_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
+#define ID3D12GraphicsCommandList1_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
+#define ID3D12GraphicsCommandList1_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
+#define ID3D12GraphicsCommandList1_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
+#define ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
+#define ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
+#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
+#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
+#define ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
+#define ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
+#define ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList1_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
+#define ID3D12GraphicsCommandList1_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
+#define ID3D12GraphicsCommandList1_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
+#define ID3D12GraphicsCommandList1_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
+#define ID3D12GraphicsCommandList1_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
+#define ID3D12GraphicsCommandList1_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
+#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
+#define ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
+#define ID3D12GraphicsCommandList1_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
+#define ID3D12GraphicsCommandList1_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
+#define ID3D12GraphicsCommandList1_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
+#define ID3D12GraphicsCommandList1_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
+#define ID3D12GraphicsCommandList1_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
+#define ID3D12GraphicsCommandList1_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
+#define ID3D12GraphicsCommandList1_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
+#define ID3D12GraphicsCommandList1_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+#define ID3D12GraphicsCommandList1_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
+/*** ID3D12GraphicsCommandList1 methods ***/
+#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
+#define ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
+#define ID3D12GraphicsCommandList1_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
+#define ID3D12GraphicsCommandList1_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
+#define ID3D12GraphicsCommandList1_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
+#define ID3D12GraphicsCommandList1_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_QueryInterface(ID3D12GraphicsCommandList1* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12GraphicsCommandList1_AddRef(ID3D12GraphicsCommandList1* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12GraphicsCommandList1_Release(ID3D12GraphicsCommandList1* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_GetPrivateData(ID3D12GraphicsCommandList1* This,REFGUID guid,UINT *data_size,void *data) {
+    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_SetPrivateData(ID3D12GraphicsCommandList1* This,REFGUID guid,UINT data_size,const void *data) {
+    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_SetPrivateDataInterface(ID3D12GraphicsCommandList1* This,REFGUID guid,const IUnknown *data) {
+    return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_SetName(ID3D12GraphicsCommandList1* This,const WCHAR *name) {
+    return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_GetDevice(ID3D12GraphicsCommandList1* This,REFIID riid,void **device) {
+    return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12CommandList methods ***/
+static FORCEINLINE D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList1_GetType(ID3D12GraphicsCommandList1* This) {
+    return This->lpVtbl->GetType(This);
+}
+/*** ID3D12GraphicsCommandList methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_Close(ID3D12GraphicsCommandList1* This) {
+    return This->lpVtbl->Close(This);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_Reset(ID3D12GraphicsCommandList1* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
+    return This->lpVtbl->Reset(This,allocator,initial_state);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList1_ClearState(ID3D12GraphicsCommandList1* This,ID3D12PipelineState *pipeline_state) {
+    return This->lpVtbl->ClearState(This,pipeline_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_DrawInstanced(ID3D12GraphicsCommandList1* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
+    This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_DrawIndexedInstanced(ID3D12GraphicsCommandList1* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
+    This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_Dispatch(ID3D12GraphicsCommandList1* This,UINT x,UINT u,UINT z) {
+    This->lpVtbl->Dispatch(This,x,u,z);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_CopyBufferRegion(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
+    This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_CopyTextureRegion(ID3D12GraphicsCommandList1* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
+    This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_CopyResource(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
+    This->lpVtbl->CopyResource(This,dst_resource,src_resource);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_CopyTiles(ID3D12GraphicsCommandList1* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
+    This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ResolveSubresource(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
+    This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_IASetPrimitiveTopology(ID3D12GraphicsCommandList1* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
+    This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_RSSetViewports(ID3D12GraphicsCommandList1* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
+    This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_RSSetScissorRects(ID3D12GraphicsCommandList1* This,UINT rect_count,const D3D12_RECT *rects) {
+    This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_OMSetBlendFactor(ID3D12GraphicsCommandList1* This,const FLOAT blend_factor[4]) {
+    This->lpVtbl->OMSetBlendFactor(This,blend_factor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_OMSetStencilRef(ID3D12GraphicsCommandList1* This,UINT stencil_ref) {
+    This->lpVtbl->OMSetStencilRef(This,stencil_ref);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetPipelineState(ID3D12GraphicsCommandList1* This,ID3D12PipelineState *pipeline_state) {
+    This->lpVtbl->SetPipelineState(This,pipeline_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ResourceBarrier(ID3D12GraphicsCommandList1* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
+    This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ExecuteBundle(ID3D12GraphicsCommandList1* This,ID3D12GraphicsCommandList *command_list) {
+    This->lpVtbl->ExecuteBundle(This,command_list);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetDescriptorHeaps(ID3D12GraphicsCommandList1* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
+    This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRootSignature(ID3D12GraphicsCommandList1* This,ID3D12RootSignature *root_signature) {
+    This->lpVtbl->SetComputeRootSignature(This,root_signature);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRootSignature(ID3D12GraphicsCommandList1* This,ID3D12RootSignature *root_signature) {
+    This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
+    This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
+    This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
+    This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
+    This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
+    This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
+    This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList1* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_IASetIndexBuffer(ID3D12GraphicsCommandList1* This,const D3D12_INDEX_BUFFER_VIEW *view) {
+    This->lpVtbl->IASetIndexBuffer(This,view);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_IASetVertexBuffers(ID3D12GraphicsCommandList1* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
+    This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SOSetTargets(ID3D12GraphicsCommandList1* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
+    This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_OMSetRenderTargets(ID3D12GraphicsCommandList1* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
+    This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ClearDepthStencilView(ID3D12GraphicsCommandList1* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
+    This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ClearRenderTargetView(ID3D12GraphicsCommandList1* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
+    This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList1* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
+    This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList1* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
+    This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_DiscardResource(ID3D12GraphicsCommandList1* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
+    This->lpVtbl->DiscardResource(This,resource,region);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_BeginQuery(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
+    This->lpVtbl->BeginQuery(This,heap,type,index);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_EndQuery(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
+    This->lpVtbl->EndQuery(This,heap,type,index);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ResolveQueryData(ID3D12GraphicsCommandList1* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
+    This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetPredication(ID3D12GraphicsCommandList1* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
+    This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetMarker(ID3D12GraphicsCommandList1* This,UINT metadata,const void *data,UINT size) {
+    This->lpVtbl->SetMarker(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_BeginEvent(ID3D12GraphicsCommandList1* This,UINT metadata,const void *data,UINT size) {
+    This->lpVtbl->BeginEvent(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_EndEvent(ID3D12GraphicsCommandList1* This) {
+    This->lpVtbl->EndEvent(This);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ExecuteIndirect(ID3D12GraphicsCommandList1* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
+    This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
+}
+/*** ID3D12GraphicsCommandList1 methods ***/
+static FORCEINLINE void ID3D12GraphicsCommandList1_AtomicCopyBufferUINT(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
+    This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
+    This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_OMSetDepthBounds(ID3D12GraphicsCommandList1* This,FLOAT min,FLOAT max) {
+    This->lpVtbl->OMSetDepthBounds(This,min,max);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetSamplePositions(ID3D12GraphicsCommandList1* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
+    This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_ResolveSubresourceRegion(ID3D12GraphicsCommandList1* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
+    This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList1_SetViewInstanceMask(ID3D12GraphicsCommandList1* This,UINT mask) {
+    This->lpVtbl->SetViewInstanceMask(This,mask);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12GraphicsCommandList1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12GraphicsCommandList2 interface
+ */
+#ifndef __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
+#define __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12GraphicsCommandList2, 0x38c3e585, 0xff17, 0x412c, 0x91,0x50, 0x4f,0xc6,0xf9,0xd7,0x2a,0x28);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("38c3e585-ff17-412c-9150-4fc6f9d72a28")
+ID3D12GraphicsCommandList2 : public ID3D12GraphicsCommandList1
+{
+    virtual void STDMETHODCALLTYPE WriteBufferImmediate(
+        UINT count,
+        const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
+        const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12GraphicsCommandList2, 0x38c3e585, 0xff17, 0x412c, 0x91,0x50, 0x4f,0xc6,0xf9,0xd7,0x2a,0x28)
+#endif
+#else
+typedef struct ID3D12GraphicsCommandList2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12GraphicsCommandList2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12GraphicsCommandList2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12GraphicsCommandList2 *This);
+
+    /*** ID3D12Object methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+        ID3D12GraphicsCommandList2 *This,
+        REFGUID guid,
+        UINT *data_size,
+        void *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+        ID3D12GraphicsCommandList2 *This,
+        REFGUID guid,
+        UINT data_size,
+        const void *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+        ID3D12GraphicsCommandList2 *This,
+        REFGUID guid,
+        const IUnknown *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetName)(
+        ID3D12GraphicsCommandList2 *This,
+        const WCHAR *name);
+
+    /*** ID3D12DeviceChild methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDevice)(
+        ID3D12GraphicsCommandList2 *This,
+        REFIID riid,
+        void **device);
+
+    /*** ID3D12CommandList methods ***/
+    D3D12_COMMAND_LIST_TYPE (STDMETHODCALLTYPE *GetType)(
+        ID3D12GraphicsCommandList2 *This);
+
+    /*** ID3D12GraphicsCommandList methods ***/
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        ID3D12GraphicsCommandList2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12CommandAllocator *allocator,
+        ID3D12PipelineState *initial_state);
+
+    HRESULT (STDMETHODCALLTYPE *ClearState)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12PipelineState *pipeline_state);
+
+    void (STDMETHODCALLTYPE *DrawInstanced)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT vertex_count_per_instance,
+        UINT instance_count,
+        UINT start_vertex_location,
+        UINT start_instance_location);
+
+    void (STDMETHODCALLTYPE *DrawIndexedInstanced)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT index_count_per_instance,
+        UINT instance_count,
+        UINT start_vertex_location,
+        INT base_vertex_location,
+        UINT start_instance_location);
+
+    void (STDMETHODCALLTYPE *Dispatch)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT x,
+        UINT u,
+        UINT z);
+
+    void (STDMETHODCALLTYPE *CopyBufferRegion)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12Resource *dst_buffer,
+        UINT64 dst_offset,
+        ID3D12Resource *src_buffer,
+        UINT64 src_offset,
+        UINT64 byte_count);
+
+    void (STDMETHODCALLTYPE *CopyTextureRegion)(
+        ID3D12GraphicsCommandList2 *This,
+        const D3D12_TEXTURE_COPY_LOCATION *dst,
+        UINT dst_x,
+        UINT dst_y,
+        UINT dst_z,
+        const D3D12_TEXTURE_COPY_LOCATION *src,
+        const D3D12_BOX *src_box);
+
+    void (STDMETHODCALLTYPE *CopyResource)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12Resource *dst_resource,
+        ID3D12Resource *src_resource);
+
+    void (STDMETHODCALLTYPE *CopyTiles)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12Resource *tiled_resource,
+        const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
+        const D3D12_TILE_REGION_SIZE *tile_region_size,
+        ID3D12Resource *buffer,
+        UINT64 buffer_offset,
+        D3D12_TILE_COPY_FLAGS flags);
+
+    void (STDMETHODCALLTYPE *ResolveSubresource)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12Resource *dst_resource,
+        UINT dst_sub_resource,
+        ID3D12Resource *src_resource,
+        UINT src_sub_resource,
+        DXGI_FORMAT format);
+
+    void (STDMETHODCALLTYPE *IASetPrimitiveTopology)(
+        ID3D12GraphicsCommandList2 *This,
+        D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
+
+    void (STDMETHODCALLTYPE *RSSetViewports)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT viewport_count,
+        const D3D12_VIEWPORT *viewports);
+
+    void (STDMETHODCALLTYPE *RSSetScissorRects)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT rect_count,
+        const D3D12_RECT *rects);
+
+    void (STDMETHODCALLTYPE *OMSetBlendFactor)(
+        ID3D12GraphicsCommandList2 *This,
+        const FLOAT blend_factor[4]);
+
+    void (STDMETHODCALLTYPE *OMSetStencilRef)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT stencil_ref);
+
+    void (STDMETHODCALLTYPE *SetPipelineState)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12PipelineState *pipeline_state);
+
+    void (STDMETHODCALLTYPE *ResourceBarrier)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT barrier_count,
+        const D3D12_RESOURCE_BARRIER *barriers);
+
+    void (STDMETHODCALLTYPE *ExecuteBundle)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12GraphicsCommandList *command_list);
+
+    void (STDMETHODCALLTYPE *SetDescriptorHeaps)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT heap_count,
+        ID3D12DescriptorHeap *const *heaps);
+
+    void (STDMETHODCALLTYPE *SetComputeRootSignature)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12RootSignature *root_signature);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRootSignature)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12RootSignature *root_signature);
+
+    void (STDMETHODCALLTYPE *SetComputeRootDescriptorTable)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRootDescriptorTable)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
+
+    void (STDMETHODCALLTYPE *SetComputeRoot32BitConstant)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        UINT data,
+        UINT dst_offset);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstant)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        UINT data,
+        UINT dst_offset);
+
+    void (STDMETHODCALLTYPE *SetComputeRoot32BitConstants)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        UINT constant_count,
+        const void *data,
+        UINT dst_offset);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRoot32BitConstants)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        UINT constant_count,
+        const void *data,
+        UINT dst_offset);
+
+    void (STDMETHODCALLTYPE *SetComputeRootConstantBufferView)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRootConstantBufferView)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *SetComputeRootShaderResourceView)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRootShaderResourceView)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *SetComputeRootUnorderedAccessView)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *SetGraphicsRootUnorderedAccessView)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT root_parameter_index,
+        D3D12_GPU_VIRTUAL_ADDRESS address);
+
+    void (STDMETHODCALLTYPE *IASetIndexBuffer)(
+        ID3D12GraphicsCommandList2 *This,
+        const D3D12_INDEX_BUFFER_VIEW *view);
+
+    void (STDMETHODCALLTYPE *IASetVertexBuffers)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT start_slot,
+        UINT view_count,
+        const D3D12_VERTEX_BUFFER_VIEW *views);
+
+    void (STDMETHODCALLTYPE *SOSetTargets)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT start_slot,
+        UINT view_count,
+        const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
+
+    void (STDMETHODCALLTYPE *OMSetRenderTargets)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT render_target_descriptor_count,
+        const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
+        WINBOOL single_descriptor_handle,
+        const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
+
+    void (STDMETHODCALLTYPE *ClearDepthStencilView)(
+        ID3D12GraphicsCommandList2 *This,
+        D3D12_CPU_DESCRIPTOR_HANDLE dsv,
+        D3D12_CLEAR_FLAGS flags,
+        FLOAT depth,
+        UINT8 stencil,
+        UINT rect_count,
+        const D3D12_RECT *rects);
+
+    void (STDMETHODCALLTYPE *ClearRenderTargetView)(
+        ID3D12GraphicsCommandList2 *This,
+        D3D12_CPU_DESCRIPTOR_HANDLE rtv,
+        const FLOAT color[4],
+        UINT rect_count,
+        const D3D12_RECT *rects);
+
+    void (STDMETHODCALLTYPE *ClearUnorderedAccessViewUint)(
+        ID3D12GraphicsCommandList2 *This,
+        D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+        D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+        ID3D12Resource *resource,
+        const UINT values[4],
+        UINT rect_count,
+        const D3D12_RECT *rects);
+
+    void (STDMETHODCALLTYPE *ClearUnorderedAccessViewFloat)(
+        ID3D12GraphicsCommandList2 *This,
+        D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
+        D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,
+        ID3D12Resource *resource,
+        const float values[4],
+        UINT rect_count,
+        const D3D12_RECT *rects);
+
+    void (STDMETHODCALLTYPE *DiscardResource)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12Resource *resource,
+        const D3D12_DISCARD_REGION *region);
+
+    void (STDMETHODCALLTYPE *BeginQuery)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12QueryHeap *heap,
+        D3D12_QUERY_TYPE type,
+        UINT index);
+
+    void (STDMETHODCALLTYPE *EndQuery)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12QueryHeap *heap,
+        D3D12_QUERY_TYPE type,
+        UINT index);
+
+    void (STDMETHODCALLTYPE *ResolveQueryData)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12QueryHeap *heap,
+        D3D12_QUERY_TYPE type,
+        UINT start_index,
+        UINT query_count,
+        ID3D12Resource *dst_buffer,
+        UINT64 aligned_dst_buffer_offset);
+
+    void (STDMETHODCALLTYPE *SetPredication)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12Resource *buffer,
+        UINT64 aligned_buffer_offset,
+        D3D12_PREDICATION_OP operation);
+
+    void (STDMETHODCALLTYPE *SetMarker)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT metadata,
+        const void *data,
+        UINT size);
+
+    void (STDMETHODCALLTYPE *BeginEvent)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT metadata,
+        const void *data,
+        UINT size);
+
+    void (STDMETHODCALLTYPE *EndEvent)(
+        ID3D12GraphicsCommandList2 *This);
+
+    void (STDMETHODCALLTYPE *ExecuteIndirect)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12CommandSignature *command_signature,
+        UINT max_command_count,
+        ID3D12Resource *arg_buffer,
+        UINT64 arg_buffer_offset,
+        ID3D12Resource *count_buffer,
+        UINT64 count_buffer_offset);
+
+    /*** ID3D12GraphicsCommandList1 methods ***/
+    void (STDMETHODCALLTYPE *AtomicCopyBufferUINT)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12Resource *dst_buffer,
+        UINT64 dst_offset,
+        ID3D12Resource *src_buffer,
+        UINT64 src_offset,
+        UINT dependent_resource_count,
+        ID3D12Resource *const *dependent_resources,
+        const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
+
+    void (STDMETHODCALLTYPE *AtomicCopyBufferUINT64)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12Resource *dst_buffer,
+        UINT64 dst_offset,
+        ID3D12Resource *src_buffer,
+        UINT64 src_offset,
+        UINT dependent_resource_count,
+        ID3D12Resource *const *dependent_resources,
+        const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges);
+
+    void (STDMETHODCALLTYPE *OMSetDepthBounds)(
+        ID3D12GraphicsCommandList2 *This,
+        FLOAT min,
+        FLOAT max);
+
+    void (STDMETHODCALLTYPE *SetSamplePositions)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT sample_count,
+        UINT pixel_count,
+        D3D12_SAMPLE_POSITION *sample_positions);
+
+    void (STDMETHODCALLTYPE *ResolveSubresourceRegion)(
+        ID3D12GraphicsCommandList2 *This,
+        ID3D12Resource *dst_resource,
+        UINT dst_sub_resource_idx,
+        UINT dst_x,
+        UINT dst_y,
+        ID3D12Resource *src_resource,
+        UINT src_sub_resource_idx,
+        D3D12_RECT *src_rect,
+        DXGI_FORMAT format,
+        D3D12_RESOLVE_MODE mode);
+
+    void (STDMETHODCALLTYPE *SetViewInstanceMask)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT mask);
+
+    /*** ID3D12GraphicsCommandList2 methods ***/
+    void (STDMETHODCALLTYPE *WriteBufferImmediate)(
+        ID3D12GraphicsCommandList2 *This,
+        UINT count,
+        const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,
+        const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes);
+
+    END_INTERFACE
+} ID3D12GraphicsCommandList2Vtbl;
+
+interface ID3D12GraphicsCommandList2 {
+    CONST_VTBL ID3D12GraphicsCommandList2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12GraphicsCommandList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12GraphicsCommandList2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12GraphicsCommandList2_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12GraphicsCommandList2_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12GraphicsCommandList2_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12GraphicsCommandList2_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12GraphicsCommandList2_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12GraphicsCommandList2_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12CommandList methods ***/
+#define ID3D12GraphicsCommandList2_GetType(This) (This)->lpVtbl->GetType(This)
+/*** ID3D12GraphicsCommandList methods ***/
+#define ID3D12GraphicsCommandList2_Close(This) (This)->lpVtbl->Close(This)
+#define ID3D12GraphicsCommandList2_Reset(This,allocator,initial_state) (This)->lpVtbl->Reset(This,allocator,initial_state)
+#define ID3D12GraphicsCommandList2_ClearState(This,pipeline_state) (This)->lpVtbl->ClearState(This,pipeline_state)
+#define ID3D12GraphicsCommandList2_DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location) (This)->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location)
+#define ID3D12GraphicsCommandList2_DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location) (This)->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location)
+#define ID3D12GraphicsCommandList2_Dispatch(This,x,u,z) (This)->lpVtbl->Dispatch(This,x,u,z)
+#define ID3D12GraphicsCommandList2_CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count) (This)->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count)
+#define ID3D12GraphicsCommandList2_CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box) (This)->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box)
+#define ID3D12GraphicsCommandList2_CopyResource(This,dst_resource,src_resource) (This)->lpVtbl->CopyResource(This,dst_resource,src_resource)
+#define ID3D12GraphicsCommandList2_CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags) (This)->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags)
+#define ID3D12GraphicsCommandList2_ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format) (This)->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format)
+#define ID3D12GraphicsCommandList2_IASetPrimitiveTopology(This,primitive_topology) (This)->lpVtbl->IASetPrimitiveTopology(This,primitive_topology)
+#define ID3D12GraphicsCommandList2_RSSetViewports(This,viewport_count,viewports) (This)->lpVtbl->RSSetViewports(This,viewport_count,viewports)
+#define ID3D12GraphicsCommandList2_RSSetScissorRects(This,rect_count,rects) (This)->lpVtbl->RSSetScissorRects(This,rect_count,rects)
+#define ID3D12GraphicsCommandList2_OMSetBlendFactor(This,blend_factor) (This)->lpVtbl->OMSetBlendFactor(This,blend_factor)
+#define ID3D12GraphicsCommandList2_OMSetStencilRef(This,stencil_ref) (This)->lpVtbl->OMSetStencilRef(This,stencil_ref)
+#define ID3D12GraphicsCommandList2_SetPipelineState(This,pipeline_state) (This)->lpVtbl->SetPipelineState(This,pipeline_state)
+#define ID3D12GraphicsCommandList2_ResourceBarrier(This,barrier_count,barriers) (This)->lpVtbl->ResourceBarrier(This,barrier_count,barriers)
+#define ID3D12GraphicsCommandList2_ExecuteBundle(This,command_list) (This)->lpVtbl->ExecuteBundle(This,command_list)
+#define ID3D12GraphicsCommandList2_SetDescriptorHeaps(This,heap_count,heaps) (This)->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps)
+#define ID3D12GraphicsCommandList2_SetComputeRootSignature(This,root_signature) (This)->lpVtbl->SetComputeRootSignature(This,root_signature)
+#define ID3D12GraphicsCommandList2_SetGraphicsRootSignature(This,root_signature) (This)->lpVtbl->SetGraphicsRootSignature(This,root_signature)
+#define ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor)
+#define ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor) (This)->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor)
+#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset)
+#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset)
+#define ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
+#define ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset) (This)->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset)
+#define ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address) (This)->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address)
+#define ID3D12GraphicsCommandList2_IASetIndexBuffer(This,view) (This)->lpVtbl->IASetIndexBuffer(This,view)
+#define ID3D12GraphicsCommandList2_IASetVertexBuffers(This,start_slot,view_count,views) (This)->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views)
+#define ID3D12GraphicsCommandList2_SOSetTargets(This,start_slot,view_count,views) (This)->lpVtbl->SOSetTargets(This,start_slot,view_count,views)
+#define ID3D12GraphicsCommandList2_OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor) (This)->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor)
+#define ID3D12GraphicsCommandList2_ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects) (This)->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects)
+#define ID3D12GraphicsCommandList2_ClearRenderTargetView(This,rtv,color,rect_count,rects) (This)->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects)
+#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
+#define ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects) (This)->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects)
+#define ID3D12GraphicsCommandList2_DiscardResource(This,resource,region) (This)->lpVtbl->DiscardResource(This,resource,region)
+#define ID3D12GraphicsCommandList2_BeginQuery(This,heap,type,index) (This)->lpVtbl->BeginQuery(This,heap,type,index)
+#define ID3D12GraphicsCommandList2_EndQuery(This,heap,type,index) (This)->lpVtbl->EndQuery(This,heap,type,index)
+#define ID3D12GraphicsCommandList2_ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset) (This)->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset)
+#define ID3D12GraphicsCommandList2_SetPredication(This,buffer,aligned_buffer_offset,operation) (This)->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation)
+#define ID3D12GraphicsCommandList2_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
+#define ID3D12GraphicsCommandList2_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
+#define ID3D12GraphicsCommandList2_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+#define ID3D12GraphicsCommandList2_ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset) (This)->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset)
+/*** ID3D12GraphicsCommandList1 methods ***/
+#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
+#define ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges) (This)->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges)
+#define ID3D12GraphicsCommandList2_OMSetDepthBounds(This,min,max) (This)->lpVtbl->OMSetDepthBounds(This,min,max)
+#define ID3D12GraphicsCommandList2_SetSamplePositions(This,sample_count,pixel_count,sample_positions) (This)->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions)
+#define ID3D12GraphicsCommandList2_ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode) (This)->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode)
+#define ID3D12GraphicsCommandList2_SetViewInstanceMask(This,mask) (This)->lpVtbl->SetViewInstanceMask(This,mask)
+/*** ID3D12GraphicsCommandList2 methods ***/
+#define ID3D12GraphicsCommandList2_WriteBufferImmediate(This,count,parameters,modes) (This)->lpVtbl->WriteBufferImmediate(This,count,parameters,modes)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_QueryInterface(ID3D12GraphicsCommandList2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12GraphicsCommandList2_AddRef(ID3D12GraphicsCommandList2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12GraphicsCommandList2_Release(ID3D12GraphicsCommandList2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_GetPrivateData(ID3D12GraphicsCommandList2* This,REFGUID guid,UINT *data_size,void *data) {
+    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_SetPrivateData(ID3D12GraphicsCommandList2* This,REFGUID guid,UINT data_size,const void *data) {
+    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_SetPrivateDataInterface(ID3D12GraphicsCommandList2* This,REFGUID guid,const IUnknown *data) {
+    return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_SetName(ID3D12GraphicsCommandList2* This,const WCHAR *name) {
+    return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_GetDevice(ID3D12GraphicsCommandList2* This,REFIID riid,void **device) {
+    return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12CommandList methods ***/
+static FORCEINLINE D3D12_COMMAND_LIST_TYPE ID3D12GraphicsCommandList2_GetType(ID3D12GraphicsCommandList2* This) {
+    return This->lpVtbl->GetType(This);
+}
+/*** ID3D12GraphicsCommandList methods ***/
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_Close(ID3D12GraphicsCommandList2* This) {
+    return This->lpVtbl->Close(This);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_Reset(ID3D12GraphicsCommandList2* This,ID3D12CommandAllocator *allocator,ID3D12PipelineState *initial_state) {
+    return This->lpVtbl->Reset(This,allocator,initial_state);
+}
+static FORCEINLINE HRESULT ID3D12GraphicsCommandList2_ClearState(ID3D12GraphicsCommandList2* This,ID3D12PipelineState *pipeline_state) {
+    return This->lpVtbl->ClearState(This,pipeline_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_DrawInstanced(ID3D12GraphicsCommandList2* This,UINT vertex_count_per_instance,UINT instance_count,UINT start_vertex_location,UINT start_instance_location) {
+    This->lpVtbl->DrawInstanced(This,vertex_count_per_instance,instance_count,start_vertex_location,start_instance_location);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_DrawIndexedInstanced(ID3D12GraphicsCommandList2* This,UINT index_count_per_instance,UINT instance_count,UINT start_vertex_location,INT base_vertex_location,UINT start_instance_location) {
+    This->lpVtbl->DrawIndexedInstanced(This,index_count_per_instance,instance_count,start_vertex_location,base_vertex_location,start_instance_location);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_Dispatch(ID3D12GraphicsCommandList2* This,UINT x,UINT u,UINT z) {
+    This->lpVtbl->Dispatch(This,x,u,z);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_CopyBufferRegion(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT64 byte_count) {
+    This->lpVtbl->CopyBufferRegion(This,dst_buffer,dst_offset,src_buffer,src_offset,byte_count);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_CopyTextureRegion(ID3D12GraphicsCommandList2* This,const D3D12_TEXTURE_COPY_LOCATION *dst,UINT dst_x,UINT dst_y,UINT dst_z,const D3D12_TEXTURE_COPY_LOCATION *src,const D3D12_BOX *src_box) {
+    This->lpVtbl->CopyTextureRegion(This,dst,dst_x,dst_y,dst_z,src,src_box);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_CopyResource(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,ID3D12Resource *src_resource) {
+    This->lpVtbl->CopyResource(This,dst_resource,src_resource);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_CopyTiles(ID3D12GraphicsCommandList2* This,ID3D12Resource *tiled_resource,const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,const D3D12_TILE_REGION_SIZE *tile_region_size,ID3D12Resource *buffer,UINT64 buffer_offset,D3D12_TILE_COPY_FLAGS flags) {
+    This->lpVtbl->CopyTiles(This,tiled_resource,tile_region_start_coordinate,tile_region_size,buffer,buffer_offset,flags);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ResolveSubresource(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,UINT dst_sub_resource,ID3D12Resource *src_resource,UINT src_sub_resource,DXGI_FORMAT format) {
+    This->lpVtbl->ResolveSubresource(This,dst_resource,dst_sub_resource,src_resource,src_sub_resource,format);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_IASetPrimitiveTopology(ID3D12GraphicsCommandList2* This,D3D12_PRIMITIVE_TOPOLOGY primitive_topology) {
+    This->lpVtbl->IASetPrimitiveTopology(This,primitive_topology);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_RSSetViewports(ID3D12GraphicsCommandList2* This,UINT viewport_count,const D3D12_VIEWPORT *viewports) {
+    This->lpVtbl->RSSetViewports(This,viewport_count,viewports);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_RSSetScissorRects(ID3D12GraphicsCommandList2* This,UINT rect_count,const D3D12_RECT *rects) {
+    This->lpVtbl->RSSetScissorRects(This,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_OMSetBlendFactor(ID3D12GraphicsCommandList2* This,const FLOAT blend_factor[4]) {
+    This->lpVtbl->OMSetBlendFactor(This,blend_factor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_OMSetStencilRef(ID3D12GraphicsCommandList2* This,UINT stencil_ref) {
+    This->lpVtbl->OMSetStencilRef(This,stencil_ref);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetPipelineState(ID3D12GraphicsCommandList2* This,ID3D12PipelineState *pipeline_state) {
+    This->lpVtbl->SetPipelineState(This,pipeline_state);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ResourceBarrier(ID3D12GraphicsCommandList2* This,UINT barrier_count,const D3D12_RESOURCE_BARRIER *barriers) {
+    This->lpVtbl->ResourceBarrier(This,barrier_count,barriers);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ExecuteBundle(ID3D12GraphicsCommandList2* This,ID3D12GraphicsCommandList *command_list) {
+    This->lpVtbl->ExecuteBundle(This,command_list);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetDescriptorHeaps(ID3D12GraphicsCommandList2* This,UINT heap_count,ID3D12DescriptorHeap *const *heaps) {
+    This->lpVtbl->SetDescriptorHeaps(This,heap_count,heaps);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRootSignature(ID3D12GraphicsCommandList2* This,ID3D12RootSignature *root_signature) {
+    This->lpVtbl->SetComputeRootSignature(This,root_signature);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRootSignature(ID3D12GraphicsCommandList2* This,ID3D12RootSignature *root_signature) {
+    This->lpVtbl->SetGraphicsRootSignature(This,root_signature);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRootDescriptorTable(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
+    This->lpVtbl->SetComputeRootDescriptorTable(This,root_parameter_index,base_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRootDescriptorTable(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor) {
+    This->lpVtbl->SetGraphicsRootDescriptorTable(This,root_parameter_index,base_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRoot32BitConstant(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
+    This->lpVtbl->SetComputeRoot32BitConstant(This,root_parameter_index,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstant(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT data,UINT dst_offset) {
+    This->lpVtbl->SetGraphicsRoot32BitConstant(This,root_parameter_index,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRoot32BitConstants(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
+    This->lpVtbl->SetComputeRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRoot32BitConstants(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,UINT constant_count,const void *data,UINT dst_offset) {
+    This->lpVtbl->SetGraphicsRoot32BitConstants(This,root_parameter_index,constant_count,data,dst_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRootConstantBufferView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetComputeRootConstantBufferView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRootConstantBufferView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetGraphicsRootConstantBufferView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRootShaderResourceView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetComputeRootShaderResourceView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRootShaderResourceView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetGraphicsRootShaderResourceView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetComputeRootUnorderedAccessView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetComputeRootUnorderedAccessView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetGraphicsRootUnorderedAccessView(ID3D12GraphicsCommandList2* This,UINT root_parameter_index,D3D12_GPU_VIRTUAL_ADDRESS address) {
+    This->lpVtbl->SetGraphicsRootUnorderedAccessView(This,root_parameter_index,address);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_IASetIndexBuffer(ID3D12GraphicsCommandList2* This,const D3D12_INDEX_BUFFER_VIEW *view) {
+    This->lpVtbl->IASetIndexBuffer(This,view);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_IASetVertexBuffers(ID3D12GraphicsCommandList2* This,UINT start_slot,UINT view_count,const D3D12_VERTEX_BUFFER_VIEW *views) {
+    This->lpVtbl->IASetVertexBuffers(This,start_slot,view_count,views);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SOSetTargets(ID3D12GraphicsCommandList2* This,UINT start_slot,UINT view_count,const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views) {
+    This->lpVtbl->SOSetTargets(This,start_slot,view_count,views);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_OMSetRenderTargets(ID3D12GraphicsCommandList2* This,UINT render_target_descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,WINBOOL single_descriptor_handle,const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor) {
+    This->lpVtbl->OMSetRenderTargets(This,render_target_descriptor_count,render_target_descriptors,single_descriptor_handle,depth_stencil_descriptor);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ClearDepthStencilView(ID3D12GraphicsCommandList2* This,D3D12_CPU_DESCRIPTOR_HANDLE dsv,D3D12_CLEAR_FLAGS flags,FLOAT depth,UINT8 stencil,UINT rect_count,const D3D12_RECT *rects) {
+    This->lpVtbl->ClearDepthStencilView(This,dsv,flags,depth,stencil,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ClearRenderTargetView(ID3D12GraphicsCommandList2* This,D3D12_CPU_DESCRIPTOR_HANDLE rtv,const FLOAT color[4],UINT rect_count,const D3D12_RECT *rects) {
+    This->lpVtbl->ClearRenderTargetView(This,rtv,color,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ClearUnorderedAccessViewUint(ID3D12GraphicsCommandList2* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const UINT values[4],UINT rect_count,const D3D12_RECT *rects) {
+    This->lpVtbl->ClearUnorderedAccessViewUint(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ClearUnorderedAccessViewFloat(ID3D12GraphicsCommandList2* This,D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle,ID3D12Resource *resource,const float values[4],UINT rect_count,const D3D12_RECT *rects) {
+    This->lpVtbl->ClearUnorderedAccessViewFloat(This,gpu_handle,cpu_handle,resource,values,rect_count,rects);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_DiscardResource(ID3D12GraphicsCommandList2* This,ID3D12Resource *resource,const D3D12_DISCARD_REGION *region) {
+    This->lpVtbl->DiscardResource(This,resource,region);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_BeginQuery(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
+    This->lpVtbl->BeginQuery(This,heap,type,index);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_EndQuery(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT index) {
+    This->lpVtbl->EndQuery(This,heap,type,index);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ResolveQueryData(ID3D12GraphicsCommandList2* This,ID3D12QueryHeap *heap,D3D12_QUERY_TYPE type,UINT start_index,UINT query_count,ID3D12Resource *dst_buffer,UINT64 aligned_dst_buffer_offset) {
+    This->lpVtbl->ResolveQueryData(This,heap,type,start_index,query_count,dst_buffer,aligned_dst_buffer_offset);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetPredication(ID3D12GraphicsCommandList2* This,ID3D12Resource *buffer,UINT64 aligned_buffer_offset,D3D12_PREDICATION_OP operation) {
+    This->lpVtbl->SetPredication(This,buffer,aligned_buffer_offset,operation);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetMarker(ID3D12GraphicsCommandList2* This,UINT metadata,const void *data,UINT size) {
+    This->lpVtbl->SetMarker(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_BeginEvent(ID3D12GraphicsCommandList2* This,UINT metadata,const void *data,UINT size) {
+    This->lpVtbl->BeginEvent(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_EndEvent(ID3D12GraphicsCommandList2* This) {
+    This->lpVtbl->EndEvent(This);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ExecuteIndirect(ID3D12GraphicsCommandList2* This,ID3D12CommandSignature *command_signature,UINT max_command_count,ID3D12Resource *arg_buffer,UINT64 arg_buffer_offset,ID3D12Resource *count_buffer,UINT64 count_buffer_offset) {
+    This->lpVtbl->ExecuteIndirect(This,command_signature,max_command_count,arg_buffer,arg_buffer_offset,count_buffer,count_buffer_offset);
+}
+/*** ID3D12GraphicsCommandList1 methods ***/
+static FORCEINLINE void ID3D12GraphicsCommandList2_AtomicCopyBufferUINT(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
+    This->lpVtbl->AtomicCopyBufferUINT(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_AtomicCopyBufferUINT64(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_buffer,UINT64 dst_offset,ID3D12Resource *src_buffer,UINT64 src_offset,UINT dependent_resource_count,ID3D12Resource *const *dependent_resources,const D3D12_SUBRESOURCE_RANGE_UINT64 *dependent_sub_resource_ranges) {
+    This->lpVtbl->AtomicCopyBufferUINT64(This,dst_buffer,dst_offset,src_buffer,src_offset,dependent_resource_count,dependent_resources,dependent_sub_resource_ranges);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_OMSetDepthBounds(ID3D12GraphicsCommandList2* This,FLOAT min,FLOAT max) {
+    This->lpVtbl->OMSetDepthBounds(This,min,max);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetSamplePositions(ID3D12GraphicsCommandList2* This,UINT sample_count,UINT pixel_count,D3D12_SAMPLE_POSITION *sample_positions) {
+    This->lpVtbl->SetSamplePositions(This,sample_count,pixel_count,sample_positions);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_ResolveSubresourceRegion(ID3D12GraphicsCommandList2* This,ID3D12Resource *dst_resource,UINT dst_sub_resource_idx,UINT dst_x,UINT dst_y,ID3D12Resource *src_resource,UINT src_sub_resource_idx,D3D12_RECT *src_rect,DXGI_FORMAT format,D3D12_RESOLVE_MODE mode) {
+    This->lpVtbl->ResolveSubresourceRegion(This,dst_resource,dst_sub_resource_idx,dst_x,dst_y,src_resource,src_sub_resource_idx,src_rect,format,mode);
+}
+static FORCEINLINE void ID3D12GraphicsCommandList2_SetViewInstanceMask(ID3D12GraphicsCommandList2* This,UINT mask) {
+    This->lpVtbl->SetViewInstanceMask(This,mask);
+}
+/*** ID3D12GraphicsCommandList2 methods ***/
+static FORCEINLINE void ID3D12GraphicsCommandList2_WriteBufferImmediate(ID3D12GraphicsCommandList2* This,UINT count,const D3D12_WRITEBUFFERIMMEDIATE_PARAMETER *parameters,const D3D12_WRITEBUFFERIMMEDIATE_MODE *modes) {
+    This->lpVtbl->WriteBufferImmediate(This,count,parameters,modes);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12GraphicsCommandList2_INTERFACE_DEFINED__ */
+
+typedef enum D3D12_TILE_RANGE_FLAGS {
+    D3D12_TILE_RANGE_FLAG_NONE = 0x0,
+    D3D12_TILE_RANGE_FLAG_NULL = 0x1,
+    D3D12_TILE_RANGE_FLAG_SKIP = 0x2,
+    D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 0x4
+} D3D12_TILE_RANGE_FLAGS;
+typedef enum D3D12_TILE_MAPPING_FLAGS {
+    D3D12_TILE_MAPPING_FLAG_NONE = 0x0,
+    D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1
+} D3D12_TILE_MAPPING_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_TILE_MAPPING_FLAGS);
+/*****************************************************************************
+ * ID3D12CommandQueue interface
+ */
+#ifndef __ID3D12CommandQueue_INTERFACE_DEFINED__
+#define __ID3D12CommandQueue_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0ec870a6-5d7e-4c22-8cfc-5baae07616ed")
+ID3D12CommandQueue : public ID3D12Pageable
+{
+    virtual void STDMETHODCALLTYPE UpdateTileMappings(
+        ID3D12Resource *resource,
+        UINT region_count,
+        const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
+        const D3D12_TILE_REGION_SIZE *region_sizes,
+        UINT range_count,
+        const D3D12_TILE_RANGE_FLAGS *range_flags,
+        UINT *heap_range_offsets,
+        UINT *range_tile_counts,
+        D3D12_TILE_MAPPING_FLAGS flags) = 0;
+
+    virtual void STDMETHODCALLTYPE CopyTileMappings(
+        ID3D12Resource *dst_resource,
+        const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
+        ID3D12Resource *src_resource,
+        const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
+        const D3D12_TILE_REGION_SIZE *region_size,
+        D3D12_TILE_MAPPING_FLAGS flags) = 0;
+
+    virtual void STDMETHODCALLTYPE ExecuteCommandLists(
+        UINT command_list_count,
+        ID3D12CommandList *const *command_lists) = 0;
+
+    virtual void STDMETHODCALLTYPE SetMarker(
+        UINT metadata,
+        const void *data,
+        UINT size) = 0;
+
+    virtual void STDMETHODCALLTYPE BeginEvent(
+        UINT metadata,
+        const void *data,
+        UINT size) = 0;
+
+    virtual void STDMETHODCALLTYPE EndEvent(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Signal(
+        ID3D12Fence *fence,
+        UINT64 value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Wait(
+        ID3D12Fence *fence,
+        UINT64 value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetTimestampFrequency(
+        UINT64 *frequency) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetClockCalibration(
+        UINT64 *gpu_timestamp,
+        UINT64 *cpu_timestamp) = 0;
+
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+    virtual D3D12_COMMAND_QUEUE_DESC* STDMETHODCALLTYPE GetDesc(
+        D3D12_COMMAND_QUEUE_DESC *__ret) = 0;
+    D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(
+        )
+    {
+        D3D12_COMMAND_QUEUE_DESC __ret;
+        return *GetDesc(&__ret);
+    }
+#else
+    virtual D3D12_COMMAND_QUEUE_DESC STDMETHODCALLTYPE GetDesc(
+        ) = 0;
+#endif
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12CommandQueue, 0x0ec870a6, 0x5d7e, 0x4c22, 0x8c,0xfc, 0x5b,0xaa,0xe0,0x76,0x16,0xed)
+#endif
+#else
+typedef struct ID3D12CommandQueueVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12CommandQueue *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12CommandQueue *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12CommandQueue *This);
+
+    /*** ID3D12Object methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+        ID3D12CommandQueue *This,
+        REFGUID guid,
+        UINT *data_size,
+        void *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+        ID3D12CommandQueue *This,
+        REFGUID guid,
+        UINT data_size,
+        const void *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+        ID3D12CommandQueue *This,
+        REFGUID guid,
+        const IUnknown *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetName)(
+        ID3D12CommandQueue *This,
+        const WCHAR *name);
+
+    /*** ID3D12DeviceChild methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDevice)(
+        ID3D12CommandQueue *This,
+        REFIID riid,
+        void **device);
+
+    /*** ID3D12CommandQueue methods ***/
+    void (STDMETHODCALLTYPE *UpdateTileMappings)(
+        ID3D12CommandQueue *This,
+        ID3D12Resource *resource,
+        UINT region_count,
+        const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
+        const D3D12_TILE_REGION_SIZE *region_sizes,
+        UINT range_count,
+        const D3D12_TILE_RANGE_FLAGS *range_flags,
+        UINT *heap_range_offsets,
+        UINT *range_tile_counts,
+        D3D12_TILE_MAPPING_FLAGS flags);
+
+    void (STDMETHODCALLTYPE *CopyTileMappings)(
+        ID3D12CommandQueue *This,
+        ID3D12Resource *dst_resource,
+        const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
+        ID3D12Resource *src_resource,
+        const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
+        const D3D12_TILE_REGION_SIZE *region_size,
+        D3D12_TILE_MAPPING_FLAGS flags);
+
+    void (STDMETHODCALLTYPE *ExecuteCommandLists)(
+        ID3D12CommandQueue *This,
+        UINT command_list_count,
+        ID3D12CommandList *const *command_lists);
+
+    void (STDMETHODCALLTYPE *SetMarker)(
+        ID3D12CommandQueue *This,
+        UINT metadata,
+        const void *data,
+        UINT size);
+
+    void (STDMETHODCALLTYPE *BeginEvent)(
+        ID3D12CommandQueue *This,
+        UINT metadata,
+        const void *data,
+        UINT size);
+
+    void (STDMETHODCALLTYPE *EndEvent)(
+        ID3D12CommandQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *Signal)(
+        ID3D12CommandQueue *This,
+        ID3D12Fence *fence,
+        UINT64 value);
+
+    HRESULT (STDMETHODCALLTYPE *Wait)(
+        ID3D12CommandQueue *This,
+        ID3D12Fence *fence,
+        UINT64 value);
+
+    HRESULT (STDMETHODCALLTYPE *GetTimestampFrequency)(
+        ID3D12CommandQueue *This,
+        UINT64 *frequency);
+
+    HRESULT (STDMETHODCALLTYPE *GetClockCalibration)(
+        ID3D12CommandQueue *This,
+        UINT64 *gpu_timestamp,
+        UINT64 *cpu_timestamp);
+
+    D3D12_COMMAND_QUEUE_DESC * (STDMETHODCALLTYPE *GetDesc)(
+        ID3D12CommandQueue *This,
+        D3D12_COMMAND_QUEUE_DESC *__ret);
+
+    END_INTERFACE
+} ID3D12CommandQueueVtbl;
+
+interface ID3D12CommandQueue {
+    CONST_VTBL ID3D12CommandQueueVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12CommandQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12CommandQueue_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12CommandQueue_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandQueue_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12CommandQueue_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12CommandQueue_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12CommandQueue methods ***/
+#define ID3D12CommandQueue_UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,range_count,range_flags,heap_range_offsets,range_tile_counts,flags) (This)->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,range_count,range_flags,heap_range_offsets,range_tile_counts,flags)
+#define ID3D12CommandQueue_CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags) (This)->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags)
+#define ID3D12CommandQueue_ExecuteCommandLists(This,command_list_count,command_lists) (This)->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists)
+#define ID3D12CommandQueue_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
+#define ID3D12CommandQueue_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
+#define ID3D12CommandQueue_EndEvent(This) (This)->lpVtbl->EndEvent(This)
+#define ID3D12CommandQueue_Signal(This,fence,value) (This)->lpVtbl->Signal(This,fence,value)
+#define ID3D12CommandQueue_Wait(This,fence,value) (This)->lpVtbl->Wait(This,fence,value)
+#define ID3D12CommandQueue_GetTimestampFrequency(This,frequency) (This)->lpVtbl->GetTimestampFrequency(This,frequency)
+#define ID3D12CommandQueue_GetClockCalibration(This,gpu_timestamp,cpu_timestamp) (This)->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp)
+#define ID3D12CommandQueue_GetDesc(This) ID3D12CommandQueue_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12CommandQueue_QueryInterface(ID3D12CommandQueue* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12CommandQueue_AddRef(ID3D12CommandQueue* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12CommandQueue_Release(ID3D12CommandQueue* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12CommandQueue_GetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT *data_size,void *data) {
+    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_SetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT data_size,const void *data) {
+    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_SetPrivateDataInterface(ID3D12CommandQueue* This,REFGUID guid,const IUnknown *data) {
+    return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_SetName(ID3D12CommandQueue* This,const WCHAR *name) {
+    return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12CommandQueue_GetDevice(ID3D12CommandQueue* This,REFIID riid,void **device) {
+    return This->lpVtbl->GetDevice(This,riid,device);
+}
+/*** ID3D12CommandQueue methods ***/
+static FORCEINLINE void ID3D12CommandQueue_UpdateTileMappings(ID3D12CommandQueue* This,ID3D12Resource *resource,UINT region_count,const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,const D3D12_TILE_REGION_SIZE *region_sizes,UINT range_count,const D3D12_TILE_RANGE_FLAGS *range_flags,UINT *heap_range_offsets,UINT *range_tile_counts,D3D12_TILE_MAPPING_FLAGS flags) {
+    This->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,range_count,range_flags,heap_range_offsets,range_tile_counts,flags);
+}
+static FORCEINLINE void ID3D12CommandQueue_CopyTileMappings(ID3D12CommandQueue* This,ID3D12Resource *dst_resource,const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,ID3D12Resource *src_resource,const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,const D3D12_TILE_REGION_SIZE *region_size,D3D12_TILE_MAPPING_FLAGS flags) {
+    This->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags);
+}
+static FORCEINLINE void ID3D12CommandQueue_ExecuteCommandLists(ID3D12CommandQueue* This,UINT command_list_count,ID3D12CommandList *const *command_lists) {
+    This->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists);
+}
+static FORCEINLINE void ID3D12CommandQueue_SetMarker(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) {
+    This->lpVtbl->SetMarker(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12CommandQueue_BeginEvent(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) {
+    This->lpVtbl->BeginEvent(This,metadata,data,size);
+}
+static FORCEINLINE void ID3D12CommandQueue_EndEvent(ID3D12CommandQueue* This) {
+    This->lpVtbl->EndEvent(This);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_Signal(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) {
+    return This->lpVtbl->Signal(This,fence,value);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_Wait(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) {
+    return This->lpVtbl->Wait(This,fence,value);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_GetTimestampFrequency(ID3D12CommandQueue* This,UINT64 *frequency) {
+    return This->lpVtbl->GetTimestampFrequency(This,frequency);
+}
+static FORCEINLINE HRESULT ID3D12CommandQueue_GetClockCalibration(ID3D12CommandQueue* This,UINT64 *gpu_timestamp,UINT64 *cpu_timestamp) {
+    return This->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp);
+}
+static FORCEINLINE D3D12_COMMAND_QUEUE_DESC ID3D12CommandQueue_GetDesc(ID3D12CommandQueue* This) {
+    D3D12_COMMAND_QUEUE_DESC __ret;
+    return *This->lpVtbl->GetDesc(This,&__ret);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
+
+typedef enum D3D12_FENCE_FLAGS {
+    D3D12_FENCE_FLAG_NONE = 0x0,
+    D3D12_FENCE_FLAG_SHARED = 0x1,
+    D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2
+} D3D12_FENCE_FLAGS;
+DEFINE_ENUM_FLAG_OPERATORS(D3D12_FENCE_FLAGS);
+typedef enum D3D12_QUERY_HEAP_TYPE {
+    D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
+    D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
+    D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
+    D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3
+} D3D12_QUERY_HEAP_TYPE;
+typedef struct D3D12_QUERY_HEAP_DESC {
+    D3D12_QUERY_HEAP_TYPE Type;
+    UINT Count;
+    UINT NodeMask;
+} D3D12_QUERY_HEAP_DESC;
+typedef enum D3D12_INDIRECT_ARGUMENT_TYPE {
+    D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0,
+    D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = 1,
+    D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = 2,
+    D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = 3,
+    D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = 4,
+    D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = 5,
+    D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = 6,
+    D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = 7,
+    D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = 8
+} D3D12_INDIRECT_ARGUMENT_TYPE;
+typedef struct D3D12_INDIRECT_ARGUMENT_DESC {
+    D3D12_INDIRECT_ARGUMENT_TYPE Type;
+    __C89_NAMELESS union {
+        struct {
+            UINT Slot;
+        } VertexBuffer;
+        struct {
+            UINT RootParameterIndex;
+            UINT DestOffsetIn32BitValues;
+            UINT Num32BitValuesToSet;
+        } Constant;
+        struct {
+            UINT RootParameterIndex;
+        } ConstantBufferView;
+        struct {
+            UINT RootParameterIndex;
+        } ShaderResourceView;
+        struct {
+            UINT RootParameterIndex;
+        } UnorderedAccessView;
+    } __C89_NAMELESSUNIONNAME;
+} D3D12_INDIRECT_ARGUMENT_DESC;
+typedef struct D3D12_COMMAND_SIGNATURE_DESC {
+    UINT ByteStride;
+    UINT NumArgumentDescs;
+    const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
+    UINT NodeMask;
+} D3D12_COMMAND_SIGNATURE_DESC;
+/*****************************************************************************
+ * ID3D12RootSignature interface
+ */
+#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
+#define __ID3D12RootSignature_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
+ID3D12RootSignature : public ID3D12DeviceChild
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14)
+#endif
+#else
+typedef struct ID3D12RootSignatureVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12RootSignature *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12RootSignature *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12RootSignature *This);
+
+    /*** ID3D12Object methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+        ID3D12RootSignature *This,
+        REFGUID guid,
+        UINT *data_size,
+        void *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+        ID3D12RootSignature *This,
+        REFGUID guid,
+        UINT data_size,
+        const void *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+        ID3D12RootSignature *This,
+        REFGUID guid,
+        const IUnknown *data);
+
+    HRESULT (STDMETHODCALLTYPE *SetName)(
+        ID3D12RootSignature *This,
+        const WCHAR *name);
+
+    /*** ID3D12DeviceChild methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDevice)(
+        ID3D12RootSignature *This,
+        REFIID riid,
+        void **device);
+
+    END_INTERFACE
+} ID3D12RootSignatureVtbl;
+
+interface ID3D12RootSignature {
+    CONST_VTBL ID3D12RootSignatureVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12RootSignature_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12RootSignature_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12RootSignature_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12RootSignature_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12RootSignature_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12DeviceChild methods ***/
+#define ID3D12RootSignature_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12RootSignature_QueryInterface(ID3D12RootSignature* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12RootSignature_AddRef(ID3D12RootSignature* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12RootSignature_Release(ID3D12RootSignature* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12RootSignature_GetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT *data_size,void *data) {
+    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12RootSignature_SetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT data_size,const void *data) {
+    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12RootSignature_SetPrivateDataInterface(ID3D12RootSignature* This,REFGUID guid,const IUnknown *data) {
+    return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12RootSignature_SetName(ID3D12RootSignature* This,const WCHAR *name) {
+    return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12DeviceChild methods ***/
+static FORCEINLINE HRESULT ID3D12RootSignature_GetDevice(ID3D12RootSignature* This,REFIID riid,void **device) {
+    return This->lpVtbl->GetDevice(This,riid,device);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12PipelineState interface
+ */
+#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
+#define __ID3D12PipelineState_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
+ID3D12PipelineState : public ID3D12Pageable
+{
+    virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
+        ID3DBlob **blob) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45)
+#endif
+#else
+typedef struct ID3D12PipelineStateVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12PipelineState *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12PipelineState *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12PipelineState *This);
 
-    void (STDMETHODCALLTYPE *EndEvent)(
-        ID3D12CommandQueue *This);
+    /*** ID3D12Object methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
+        ID3D12PipelineState *This,
+        REFGUID guid,
+        UINT *data_size,
+        void *data);
 
-    HRESULT (STDMETHODCALLTYPE *Signal)(
-        ID3D12CommandQueue *This,
-        ID3D12Fence *fence,
-        UINT64 value);
+    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
+        ID3D12PipelineState *This,
+        REFGUID guid,
+        UINT data_size,
+        const void *data);
 
-    HRESULT (STDMETHODCALLTYPE *Wait)(
-        ID3D12CommandQueue *This,
-        ID3D12Fence *fence,
-        UINT64 value);
+    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
+        ID3D12PipelineState *This,
+        REFGUID guid,
+        const IUnknown *data);
 
-    HRESULT (STDMETHODCALLTYPE *GetTimestampFrequency)(
-        ID3D12CommandQueue *This,
-        UINT64 *frequency);
+    HRESULT (STDMETHODCALLTYPE *SetName)(
+        ID3D12PipelineState *This,
+        const WCHAR *name);
 
-    HRESULT (STDMETHODCALLTYPE *GetClockCalibration)(
-        ID3D12CommandQueue *This,
-        UINT64 *gpu_timestamp,
-        UINT64 *cpu_timestamp);
+    /*** ID3D12DeviceChild methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDevice)(
+        ID3D12PipelineState *This,
+        REFIID riid,
+        void **device);
 
-    D3D12_COMMAND_QUEUE_DESC * (STDMETHODCALLTYPE *GetDesc)(
-        ID3D12CommandQueue *This,
-        D3D12_COMMAND_QUEUE_DESC *__ret);
+    /*** ID3D12PipelineState methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetCachedBlob)(
+        ID3D12PipelineState *This,
+        ID3DBlob **blob);
 
     END_INTERFACE
-} ID3D12CommandQueueVtbl;
+} ID3D12PipelineStateVtbl;
 
-interface ID3D12CommandQueue {
-    CONST_VTBL ID3D12CommandQueueVtbl* lpVtbl;
+interface ID3D12PipelineState {
+    CONST_VTBL ID3D12PipelineStateVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define ID3D12CommandQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D12CommandQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D12CommandQueue_Release(This) (This)->lpVtbl->Release(This)
+#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12PipelineState_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12PipelineState_Release(This) (This)->lpVtbl->Release(This)
 /*** ID3D12Object methods ***/
-#define ID3D12CommandQueue_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
-#define ID3D12CommandQueue_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
-#define ID3D12CommandQueue_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
-#define ID3D12CommandQueue_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+#define ID3D12PipelineState_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12PipelineState_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12PipelineState_SetName(This,name) (This)->lpVtbl->SetName(This,name)
 /*** ID3D12DeviceChild methods ***/
-#define ID3D12CommandQueue_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
-/*** ID3D12CommandQueue methods ***/
-#define ID3D12CommandQueue_UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,range_count,range_flags,heap_range_offsets,range_tile_counts,flags) (This)->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,range_count,range_flags,heap_range_offsets,range_tile_counts,flags)
-#define ID3D12CommandQueue_CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags) (This)->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags)
-#define ID3D12CommandQueue_ExecuteCommandLists(This,command_list_count,command_lists) (This)->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists)
-#define ID3D12CommandQueue_SetMarker(This,metadata,data,size) (This)->lpVtbl->SetMarker(This,metadata,data,size)
-#define ID3D12CommandQueue_BeginEvent(This,metadata,data,size) (This)->lpVtbl->BeginEvent(This,metadata,data,size)
-#define ID3D12CommandQueue_EndEvent(This) (This)->lpVtbl->EndEvent(This)
-#define ID3D12CommandQueue_Signal(This,fence,value) (This)->lpVtbl->Signal(This,fence,value)
-#define ID3D12CommandQueue_Wait(This,fence,value) (This)->lpVtbl->Wait(This,fence,value)
-#define ID3D12CommandQueue_GetTimestampFrequency(This,frequency) (This)->lpVtbl->GetTimestampFrequency(This,frequency)
-#define ID3D12CommandQueue_GetClockCalibration(This,gpu_timestamp,cpu_timestamp) (This)->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp)
-#define ID3D12CommandQueue_GetDesc(This) ID3D12CommandQueue_GetDesc_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12PipelineState_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12PipelineState methods ***/
+#define ID3D12PipelineState_GetCachedBlob(This,blob) (This)->lpVtbl->GetCachedBlob(This,blob)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT ID3D12CommandQueue_QueryInterface(ID3D12CommandQueue* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT ID3D12PipelineState_QueryInterface(ID3D12PipelineState* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG ID3D12CommandQueue_AddRef(ID3D12CommandQueue* This) {
+static FORCEINLINE ULONG ID3D12PipelineState_AddRef(ID3D12PipelineState* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG ID3D12CommandQueue_Release(ID3D12CommandQueue* This) {
+static FORCEINLINE ULONG ID3D12PipelineState_Release(ID3D12PipelineState* This) {
     return This->lpVtbl->Release(This);
 }
 /*** ID3D12Object methods ***/
-static FORCEINLINE HRESULT ID3D12CommandQueue_GetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT *data_size,void *data) {
+static FORCEINLINE HRESULT ID3D12PipelineState_GetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT *data_size,void *data) {
     return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
 }
-static FORCEINLINE HRESULT ID3D12CommandQueue_SetPrivateData(ID3D12CommandQueue* This,REFGUID guid,UINT data_size,const void *data) {
+static FORCEINLINE HRESULT ID3D12PipelineState_SetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT data_size,const void *data) {
     return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
 }
-static FORCEINLINE HRESULT ID3D12CommandQueue_SetPrivateDataInterface(ID3D12CommandQueue* This,REFGUID guid,const IUnknown *data) {
+static FORCEINLINE HRESULT ID3D12PipelineState_SetPrivateDataInterface(ID3D12PipelineState* This,REFGUID guid,const IUnknown *data) {
     return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
 }
-static FORCEINLINE HRESULT ID3D12CommandQueue_SetName(ID3D12CommandQueue* This,const WCHAR *name) {
+static FORCEINLINE HRESULT ID3D12PipelineState_SetName(ID3D12PipelineState* This,const WCHAR *name) {
     return This->lpVtbl->SetName(This,name);
 }
 /*** ID3D12DeviceChild methods ***/
-static FORCEINLINE HRESULT ID3D12CommandQueue_GetDevice(ID3D12CommandQueue* This,REFIID riid,void **device) {
+static FORCEINLINE HRESULT ID3D12PipelineState_GetDevice(ID3D12PipelineState* This,REFIID riid,void **device) {
     return This->lpVtbl->GetDevice(This,riid,device);
 }
-/*** ID3D12CommandQueue methods ***/
-static FORCEINLINE void ID3D12CommandQueue_UpdateTileMappings(ID3D12CommandQueue* This,ID3D12Resource *resource,UINT region_count,const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,const D3D12_TILE_REGION_SIZE *region_sizes,UINT range_count,const D3D12_TILE_RANGE_FLAGS *range_flags,UINT *heap_range_offsets,UINT *range_tile_counts,D3D12_TILE_MAPPING_FLAGS flags) {
-    This->lpVtbl->UpdateTileMappings(This,resource,region_count,region_start_coordinates,region_sizes,range_count,range_flags,heap_range_offsets,range_tile_counts,flags);
-}
-static FORCEINLINE void ID3D12CommandQueue_CopyTileMappings(ID3D12CommandQueue* This,ID3D12Resource *dst_resource,const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,ID3D12Resource *src_resource,const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,const D3D12_TILE_REGION_SIZE *region_size,D3D12_TILE_MAPPING_FLAGS flags) {
-    This->lpVtbl->CopyTileMappings(This,dst_resource,dst_region_start_coordinate,src_resource,src_region_start_coordinate,region_size,flags);
-}
-static FORCEINLINE void ID3D12CommandQueue_ExecuteCommandLists(ID3D12CommandQueue* This,UINT command_list_count,ID3D12CommandList *const *command_lists) {
-    This->lpVtbl->ExecuteCommandLists(This,command_list_count,command_lists);
-}
-static FORCEINLINE void ID3D12CommandQueue_SetMarker(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) {
-    This->lpVtbl->SetMarker(This,metadata,data,size);
-}
-static FORCEINLINE void ID3D12CommandQueue_BeginEvent(ID3D12CommandQueue* This,UINT metadata,const void *data,UINT size) {
-    This->lpVtbl->BeginEvent(This,metadata,data,size);
-}
-static FORCEINLINE void ID3D12CommandQueue_EndEvent(ID3D12CommandQueue* This) {
-    This->lpVtbl->EndEvent(This);
-}
-static FORCEINLINE HRESULT ID3D12CommandQueue_Signal(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) {
-    return This->lpVtbl->Signal(This,fence,value);
-}
-static FORCEINLINE HRESULT ID3D12CommandQueue_Wait(ID3D12CommandQueue* This,ID3D12Fence *fence,UINT64 value) {
-    return This->lpVtbl->Wait(This,fence,value);
-}
-static FORCEINLINE HRESULT ID3D12CommandQueue_GetTimestampFrequency(ID3D12CommandQueue* This,UINT64 *frequency) {
-    return This->lpVtbl->GetTimestampFrequency(This,frequency);
-}
-static FORCEINLINE HRESULT ID3D12CommandQueue_GetClockCalibration(ID3D12CommandQueue* This,UINT64 *gpu_timestamp,UINT64 *cpu_timestamp) {
-    return This->lpVtbl->GetClockCalibration(This,gpu_timestamp,cpu_timestamp);
-}
-static FORCEINLINE D3D12_COMMAND_QUEUE_DESC ID3D12CommandQueue_GetDesc(ID3D12CommandQueue* This) {
-    D3D12_COMMAND_QUEUE_DESC __ret;
-    return *This->lpVtbl->GetDesc(This,&__ret);
+/*** ID3D12PipelineState methods ***/
+static FORCEINLINE HRESULT ID3D12PipelineState_GetCachedBlob(ID3D12PipelineState* This,ID3DBlob **blob) {
+    return This->lpVtbl->GetCachedBlob(This,blob);
 }
 #endif
 #endif
@@ -3813,298 +6011,279 @@ static FORCEINLINE D3D12_COMMAND_QUEUE_DESC ID3D12CommandQueue_GetDesc(ID3D12Com
 #endif
 
 
-#endif  /* __ID3D12CommandQueue_INTERFACE_DEFINED__ */
+#endif  /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
 
-typedef enum D3D12_FENCE_FLAGS {
-    D3D12_FENCE_FLAG_NONE = 0x0,
-    D3D12_FENCE_FLAG_SHARED = 0x1,
-    D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2
-} D3D12_FENCE_FLAGS;
-typedef enum D3D12_QUERY_HEAP_TYPE {
-    D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
-    D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
-    D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
-    D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3
-} D3D12_QUERY_HEAP_TYPE;
-typedef struct D3D12_QUERY_HEAP_DESC {
-    D3D12_QUERY_HEAP_TYPE Type;
-    UINT Count;
-    UINT NodeMask;
-} D3D12_QUERY_HEAP_DESC;
-typedef enum D3D12_INDIRECT_ARGUMENT_TYPE {
-    D3D12_INDIRECT_ARGUMENT_TYPE_DRAW = 0,
-    D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED = 1,
-    D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH = 2,
-    D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW = 3,
-    D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW = 4,
-    D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT = 5,
-    D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW = 6,
-    D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW = 7,
-    D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW = 8
-} D3D12_INDIRECT_ARGUMENT_TYPE;
-typedef struct D3D12_INDIRECT_ARGUMENT_DESC {
-    D3D12_INDIRECT_ARGUMENT_TYPE Type;
-    __C89_NAMELESS union {
-        struct {
-            UINT Slot;
-        } VertexBuffer;
-        struct {
-            UINT RootParameterIndex;
-            UINT DestOffsetIn32BitValues;
-            UINT Num32BitValuesToSet;
-        } Constant;
-        struct {
-            UINT RootParameterIndex;
-        } ConstantBufferView;
-        struct {
-            UINT RootParameterIndex;
-        } ShaderResourceView;
-        struct {
-            UINT RootParameterIndex;
-        } UnorderedAccessView;
-    } __C89_NAMELESSUNIONNAME;
-} D3D12_INDIRECT_ARGUMENT_DESC;
-typedef struct D3D12_COMMAND_SIGNATURE_DESC {
-    UINT ByteStride;
-    UINT NumArgumentDescs;
-    const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
-    UINT NodeMask;
-} D3D12_COMMAND_SIGNATURE_DESC;
 /*****************************************************************************
- * ID3D12RootSignature interface
+ * ID3D12Fence interface
  */
-#ifndef __ID3D12RootSignature_INTERFACE_DEFINED__
-#define __ID3D12RootSignature_INTERFACE_DEFINED__
+#ifndef __ID3D12Fence_INTERFACE_DEFINED__
+#define __ID3D12Fence_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14);
+DEFINE_GUID(IID_ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("c54a6b66-72df-4ee8-8be5-a946a1429214")
-ID3D12RootSignature : public ID3D12DeviceChild
+MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
+ID3D12Fence : public ID3D12Pageable
 {
+    virtual UINT64 STDMETHODCALLTYPE GetCompletedValue(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
+        UINT64 value,
+        HANDLE event) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Signal(
+        UINT64 value) = 0;
+
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ID3D12RootSignature, 0xc54a6b66, 0x72df, 0x4ee8, 0x8b,0xe5, 0xa9,0x46,0xa1,0x42,0x92,0x14)
+__CRT_UUID_DECL(ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76)
 #endif
 #else
-typedef struct ID3D12RootSignatureVtbl {
+typedef struct ID3D12FenceVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D12RootSignature *This,
+        ID3D12Fence *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D12RootSignature *This);
+        ID3D12Fence *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D12RootSignature *This);
+        ID3D12Fence *This);
 
     /*** ID3D12Object methods ***/
     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D12RootSignature *This,
+        ID3D12Fence *This,
         REFGUID guid,
         UINT *data_size,
         void *data);
 
     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D12RootSignature *This,
+        ID3D12Fence *This,
         REFGUID guid,
         UINT data_size,
         const void *data);
 
     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D12RootSignature *This,
+        ID3D12Fence *This,
         REFGUID guid,
         const IUnknown *data);
 
     HRESULT (STDMETHODCALLTYPE *SetName)(
-        ID3D12RootSignature *This,
+        ID3D12Fence *This,
         const WCHAR *name);
 
-    /*** ID3D12DeviceChild methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetDevice)(
-        ID3D12RootSignature *This,
-        REFIID riid,
-        void **device);
+    /*** ID3D12DeviceChild methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDevice)(
+        ID3D12Fence *This,
+        REFIID riid,
+        void **device);
+
+    /*** ID3D12Fence methods ***/
+    UINT64 (STDMETHODCALLTYPE *GetCompletedValue)(
+        ID3D12Fence *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetEventOnCompletion)(
+        ID3D12Fence *This,
+        UINT64 value,
+        HANDLE event);
+
+    HRESULT (STDMETHODCALLTYPE *Signal)(
+        ID3D12Fence *This,
+        UINT64 value);
 
     END_INTERFACE
-} ID3D12RootSignatureVtbl;
+} ID3D12FenceVtbl;
 
-interface ID3D12RootSignature {
-    CONST_VTBL ID3D12RootSignatureVtbl* lpVtbl;
+interface ID3D12Fence {
+    CONST_VTBL ID3D12FenceVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define ID3D12RootSignature_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D12RootSignature_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D12RootSignature_Release(This) (This)->lpVtbl->Release(This)
+#define ID3D12Fence_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Fence_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Fence_Release(This) (This)->lpVtbl->Release(This)
 /*** ID3D12Object methods ***/
-#define ID3D12RootSignature_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
-#define ID3D12RootSignature_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
-#define ID3D12RootSignature_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
-#define ID3D12RootSignature_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+#define ID3D12Fence_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Fence_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Fence_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Fence_SetName(This,name) (This)->lpVtbl->SetName(This,name)
 /*** ID3D12DeviceChild methods ***/
-#define ID3D12RootSignature_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+#define ID3D12Fence_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12Fence methods ***/
+#define ID3D12Fence_GetCompletedValue(This) (This)->lpVtbl->GetCompletedValue(This)
+#define ID3D12Fence_SetEventOnCompletion(This,value,event) (This)->lpVtbl->SetEventOnCompletion(This,value,event)
+#define ID3D12Fence_Signal(This,value) (This)->lpVtbl->Signal(This,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT ID3D12RootSignature_QueryInterface(ID3D12RootSignature* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT ID3D12Fence_QueryInterface(ID3D12Fence* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG ID3D12RootSignature_AddRef(ID3D12RootSignature* This) {
+static FORCEINLINE ULONG ID3D12Fence_AddRef(ID3D12Fence* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG ID3D12RootSignature_Release(ID3D12RootSignature* This) {
+static FORCEINLINE ULONG ID3D12Fence_Release(ID3D12Fence* This) {
     return This->lpVtbl->Release(This);
 }
 /*** ID3D12Object methods ***/
-static FORCEINLINE HRESULT ID3D12RootSignature_GetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT *data_size,void *data) {
+static FORCEINLINE HRESULT ID3D12Fence_GetPrivateData(ID3D12Fence* This,REFGUID guid,UINT *data_size,void *data) {
     return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
 }
-static FORCEINLINE HRESULT ID3D12RootSignature_SetPrivateData(ID3D12RootSignature* This,REFGUID guid,UINT data_size,const void *data) {
+static FORCEINLINE HRESULT ID3D12Fence_SetPrivateData(ID3D12Fence* This,REFGUID guid,UINT data_size,const void *data) {
     return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
 }
-static FORCEINLINE HRESULT ID3D12RootSignature_SetPrivateDataInterface(ID3D12RootSignature* This,REFGUID guid,const IUnknown *data) {
+static FORCEINLINE HRESULT ID3D12Fence_SetPrivateDataInterface(ID3D12Fence* This,REFGUID guid,const IUnknown *data) {
     return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
 }
-static FORCEINLINE HRESULT ID3D12RootSignature_SetName(ID3D12RootSignature* This,const WCHAR *name) {
+static FORCEINLINE HRESULT ID3D12Fence_SetName(ID3D12Fence* This,const WCHAR *name) {
     return This->lpVtbl->SetName(This,name);
 }
 /*** ID3D12DeviceChild methods ***/
-static FORCEINLINE HRESULT ID3D12RootSignature_GetDevice(ID3D12RootSignature* This,REFIID riid,void **device) {
+static FORCEINLINE HRESULT ID3D12Fence_GetDevice(ID3D12Fence* This,REFIID riid,void **device) {
     return This->lpVtbl->GetDevice(This,riid,device);
 }
+/*** ID3D12Fence methods ***/
+static FORCEINLINE UINT64 ID3D12Fence_GetCompletedValue(ID3D12Fence* This) {
+    return This->lpVtbl->GetCompletedValue(This);
+}
+static FORCEINLINE HRESULT ID3D12Fence_SetEventOnCompletion(ID3D12Fence* This,UINT64 value,HANDLE event) {
+    return This->lpVtbl->SetEventOnCompletion(This,value,event);
+}
+static FORCEINLINE HRESULT ID3D12Fence_Signal(ID3D12Fence* This,UINT64 value) {
+    return This->lpVtbl->Signal(This,value);
+}
 #endif
 #endif
 
 #endif
 
 
-#endif  /* __ID3D12RootSignature_INTERFACE_DEFINED__ */
+#endif  /* __ID3D12Fence_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * ID3D12PipelineState interface
+ * ID3D12CommandAllocator interface
  */
-#ifndef __ID3D12PipelineState_INTERFACE_DEFINED__
-#define __ID3D12PipelineState_INTERFACE_DEFINED__
+#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
+#define __ID3D12CommandAllocator_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45);
+DEFINE_GUID(IID_ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("765a30f3-f624-4c6f-a828-ace948622445")
-ID3D12PipelineState : public ID3D12Pageable
+MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
+ID3D12CommandAllocator : public ID3D12Pageable
 {
-    virtual HRESULT STDMETHODCALLTYPE GetCachedBlob(
-        ID3DBlob **blob) = 0;
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ID3D12PipelineState, 0x765a30f3, 0xf624, 0x4c6f, 0xa8,0x28, 0xac,0xe9,0x48,0x62,0x24,0x45)
+__CRT_UUID_DECL(ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24)
 #endif
 #else
-typedef struct ID3D12PipelineStateVtbl {
+typedef struct ID3D12CommandAllocatorVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D12PipelineState *This,
+        ID3D12CommandAllocator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D12PipelineState *This);
+        ID3D12CommandAllocator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D12PipelineState *This);
+        ID3D12CommandAllocator *This);
 
     /*** ID3D12Object methods ***/
     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D12PipelineState *This,
+        ID3D12CommandAllocator *This,
         REFGUID guid,
         UINT *data_size,
         void *data);
 
     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D12PipelineState *This,
+        ID3D12CommandAllocator *This,
         REFGUID guid,
         UINT data_size,
         const void *data);
 
     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D12PipelineState *This,
+        ID3D12CommandAllocator *This,
         REFGUID guid,
         const IUnknown *data);
 
     HRESULT (STDMETHODCALLTYPE *SetName)(
-        ID3D12PipelineState *This,
+        ID3D12CommandAllocator *This,
         const WCHAR *name);
 
     /*** ID3D12DeviceChild methods ***/
     HRESULT (STDMETHODCALLTYPE *GetDevice)(
-        ID3D12PipelineState *This,
+        ID3D12CommandAllocator *This,
         REFIID riid,
         void **device);
 
-    /*** ID3D12PipelineState methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetCachedBlob)(
-        ID3D12PipelineState *This,
-        ID3DBlob **blob);
+    /*** ID3D12CommandAllocator methods ***/
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        ID3D12CommandAllocator *This);
 
     END_INTERFACE
-} ID3D12PipelineStateVtbl;
+} ID3D12CommandAllocatorVtbl;
 
-interface ID3D12PipelineState {
-    CONST_VTBL ID3D12PipelineStateVtbl* lpVtbl;
+interface ID3D12CommandAllocator {
+    CONST_VTBL ID3D12CommandAllocatorVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define ID3D12PipelineState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D12PipelineState_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D12PipelineState_Release(This) (This)->lpVtbl->Release(This)
+#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12CommandAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12CommandAllocator_Release(This) (This)->lpVtbl->Release(This)
 /*** ID3D12Object methods ***/
-#define ID3D12PipelineState_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
-#define ID3D12PipelineState_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
-#define ID3D12PipelineState_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
-#define ID3D12PipelineState_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+#define ID3D12CommandAllocator_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandAllocator_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12CommandAllocator_SetName(This,name) (This)->lpVtbl->SetName(This,name)
 /*** ID3D12DeviceChild methods ***/
-#define ID3D12PipelineState_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
-/*** ID3D12PipelineState methods ***/
-#define ID3D12PipelineState_GetCachedBlob(This,blob) (This)->lpVtbl->GetCachedBlob(This,blob)
+#define ID3D12CommandAllocator_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
+/*** ID3D12CommandAllocator methods ***/
+#define ID3D12CommandAllocator_Reset(This) (This)->lpVtbl->Reset(This)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT ID3D12PipelineState_QueryInterface(ID3D12PipelineState* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT ID3D12CommandAllocator_QueryInterface(ID3D12CommandAllocator* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG ID3D12PipelineState_AddRef(ID3D12PipelineState* This) {
+static FORCEINLINE ULONG ID3D12CommandAllocator_AddRef(ID3D12CommandAllocator* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG ID3D12PipelineState_Release(ID3D12PipelineState* This) {
+static FORCEINLINE ULONG ID3D12CommandAllocator_Release(ID3D12CommandAllocator* This) {
     return This->lpVtbl->Release(This);
 }
 /*** ID3D12Object methods ***/
-static FORCEINLINE HRESULT ID3D12PipelineState_GetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT *data_size,void *data) {
+static FORCEINLINE HRESULT ID3D12CommandAllocator_GetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT *data_size,void *data) {
     return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
 }
-static FORCEINLINE HRESULT ID3D12PipelineState_SetPrivateData(ID3D12PipelineState* This,REFGUID guid,UINT data_size,const void *data) {
+static FORCEINLINE HRESULT ID3D12CommandAllocator_SetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT data_size,const void *data) {
     return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
 }
-static FORCEINLINE HRESULT ID3D12PipelineState_SetPrivateDataInterface(ID3D12PipelineState* This,REFGUID guid,const IUnknown *data) {
+static FORCEINLINE HRESULT ID3D12CommandAllocator_SetPrivateDataInterface(ID3D12CommandAllocator* This,REFGUID guid,const IUnknown *data) {
     return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
 }
-static FORCEINLINE HRESULT ID3D12PipelineState_SetName(ID3D12PipelineState* This,const WCHAR *name) {
+static FORCEINLINE HRESULT ID3D12CommandAllocator_SetName(ID3D12CommandAllocator* This,const WCHAR *name) {
     return This->lpVtbl->SetName(This,name);
 }
 /*** ID3D12DeviceChild methods ***/
-static FORCEINLINE HRESULT ID3D12PipelineState_GetDevice(ID3D12PipelineState* This,REFIID riid,void **device) {
+static FORCEINLINE HRESULT ID3D12CommandAllocator_GetDevice(ID3D12CommandAllocator* This,REFIID riid,void **device) {
     return This->lpVtbl->GetDevice(This,riid,device);
 }
-/*** ID3D12PipelineState methods ***/
-static FORCEINLINE HRESULT ID3D12PipelineState_GetCachedBlob(ID3D12PipelineState* This,ID3DBlob **blob) {
-    return This->lpVtbl->GetCachedBlob(This,blob);
+/*** ID3D12CommandAllocator methods ***/
+static FORCEINLINE HRESULT ID3D12CommandAllocator_Reset(ID3D12CommandAllocator* This) {
+    return This->lpVtbl->Reset(This);
 }
 #endif
 #endif
@@ -4112,498 +6291,508 @@ static FORCEINLINE HRESULT ID3D12PipelineState_GetCachedBlob(ID3D12PipelineState
 #endif
 
 
-#endif  /* __ID3D12PipelineState_INTERFACE_DEFINED__ */
+#endif  /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * ID3D12Fence interface
+ * ID3D12Device interface
  */
-#ifndef __ID3D12Fence_INTERFACE_DEFINED__
-#define __ID3D12Fence_INTERFACE_DEFINED__
+#ifndef __ID3D12Device_INTERFACE_DEFINED__
+#define __ID3D12Device_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76);
+DEFINE_GUID(IID_ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("0a753dcf-c4d8-4b91-adf6-be5a60d95a76")
-ID3D12Fence : public ID3D12Pageable
+MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
+ID3D12Device : public ID3D12Object
 {
-    virtual UINT64 STDMETHODCALLTYPE GetCompletedValue(
+    virtual UINT STDMETHODCALLTYPE GetNodeCount(
         ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE SetEventOnCompletion(
-        UINT64 value,
-        HANDLE event) = 0;
+    virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
+        const D3D12_COMMAND_QUEUE_DESC *desc,
+        REFIID riid,
+        void **command_queue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
+        D3D12_COMMAND_LIST_TYPE type,
+        REFIID riid,
+        void **command_allocator) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
+        const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
+        REFIID riid,
+        void **pipeline_state) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
+        const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
+        REFIID riid,
+        void **pipeline_state) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
+        UINT node_mask,
+        D3D12_COMMAND_LIST_TYPE type,
+        ID3D12CommandAllocator *command_allocator,
+        ID3D12PipelineState *initial_pipeline_state,
+        REFIID riid,
+        void **command_list) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
+        D3D12_FEATURE feature,
+        void *feature_data,
+        UINT feature_data_size) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
+        const D3D12_DESCRIPTOR_HEAP_DESC *desc,
+        REFIID riid,
+        void **descriptor_heap) = 0;
+
+    virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
+        D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
+        UINT node_mask,
+        const void *bytecode,
+        SIZE_T bytecode_length,
+        REFIID riid,
+        void **root_signature) = 0;
+
+    virtual void STDMETHODCALLTYPE CreateConstantBufferView(
+        const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+    virtual void STDMETHODCALLTYPE CreateShaderResourceView(
+        ID3D12Resource *resource,
+        const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+    virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
+        ID3D12Resource *resource,
+        ID3D12Resource *counter_resource,
+        const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+    virtual void STDMETHODCALLTYPE CreateRenderTargetView(
+        ID3D12Resource *resource,
+        const D3D12_RENDER_TARGET_VIEW_DESC *desc,
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+    virtual void STDMETHODCALLTYPE CreateDepthStencilView(
+        ID3D12Resource *resource,
+        const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+    virtual void STDMETHODCALLTYPE CreateSampler(
+        const D3D12_SAMPLER_DESC *desc,
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+
+    virtual void STDMETHODCALLTYPE CopyDescriptors(
+        UINT dst_descriptor_range_count,
+        const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
+        const UINT *dst_descriptor_range_sizes,
+        UINT src_descriptor_range_count,
+        const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
+        const UINT *src_descriptor_range_sizes,
+        D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE Signal(
-        UINT64 value) = 0;
+    virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
+        UINT descriptor_count,
+        const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
+        const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
+        D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
 
-};
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ID3D12Fence, 0x0a753dcf, 0xc4d8, 0x4b91, 0xad,0xf6, 0xbe,0x5a,0x60,0xd9,0x5a,0x76)
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+    virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo(
+        D3D12_RESOURCE_ALLOCATION_INFO *__ret,
+        UINT visible_mask,
+        UINT reource_desc_count,
+        const D3D12_RESOURCE_DESC *resource_descs) = 0;
+    D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
+        UINT visible_mask,
+        UINT reource_desc_count,
+        const D3D12_RESOURCE_DESC *resource_descs)
+    {
+        D3D12_RESOURCE_ALLOCATION_INFO __ret;
+        return *GetResourceAllocationInfo(&__ret, visible_mask, reource_desc_count, resource_descs);
+    }
+#else
+    virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
+        UINT visible_mask,
+        UINT reource_desc_count,
+        const D3D12_RESOURCE_DESC *resource_descs) = 0;
 #endif
+
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+    virtual D3D12_HEAP_PROPERTIES* STDMETHODCALLTYPE GetCustomHeapProperties(
+        D3D12_HEAP_PROPERTIES *__ret,
+        UINT node_mask,
+        D3D12_HEAP_TYPE heap_type) = 0;
+    D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
+        UINT node_mask,
+        D3D12_HEAP_TYPE heap_type)
+    {
+        D3D12_HEAP_PROPERTIES __ret;
+        return *GetCustomHeapProperties(&__ret, node_mask, heap_type);
+    }
 #else
-typedef struct ID3D12FenceVtbl {
-    BEGIN_INTERFACE
+    virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
+        UINT node_mask,
+        D3D12_HEAP_TYPE heap_type) = 0;
+#endif
 
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D12Fence *This,
+    virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
+        const D3D12_HEAP_PROPERTIES *heap_properties,
+        D3D12_HEAP_FLAGS heap_flags,
+        const D3D12_RESOURCE_DESC *desc,
+        D3D12_RESOURCE_STATES initial_state,
+        const D3D12_CLEAR_VALUE *optimized_clear_value,
         REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D12Fence *This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D12Fence *This);
+        void **resource) = 0;
 
-    /*** ID3D12Object methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D12Fence *This,
-        REFGUID guid,
-        UINT *data_size,
-        void *data);
+    virtual HRESULT STDMETHODCALLTYPE CreateHeap(
+        const D3D12_HEAP_DESC *desc,
+        REFIID riid,
+        void **heap) = 0;
 
-    HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D12Fence *This,
-        REFGUID guid,
-        UINT data_size,
-        const void *data);
+    virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
+        ID3D12Heap *heap,
+        UINT64 heap_offset,
+        const D3D12_RESOURCE_DESC *desc,
+        D3D12_RESOURCE_STATES initial_state,
+        const D3D12_CLEAR_VALUE *optimized_clear_value,
+        REFIID riid,
+        void **resource) = 0;
 
-    HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D12Fence *This,
-        REFGUID guid,
-        const IUnknown *data);
+    virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
+        const D3D12_RESOURCE_DESC *desc,
+        D3D12_RESOURCE_STATES initial_state,
+        const D3D12_CLEAR_VALUE *optimized_clear_value,
+        REFIID riid,
+        void **resource) = 0;
 
-    HRESULT (STDMETHODCALLTYPE *SetName)(
-        ID3D12Fence *This,
-        const WCHAR *name);
+    virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
+        ID3D12DeviceChild *object,
+        const SECURITY_ATTRIBUTES *attributes,
+        DWORD access,
+        const WCHAR *name,
+        HANDLE *handle) = 0;
 
-    /*** ID3D12DeviceChild methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetDevice)(
-        ID3D12Fence *This,
+    virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
+        HANDLE handle,
         REFIID riid,
-        void **device);
+        void **object) = 0;
 
-    /*** ID3D12Fence methods ***/
-    UINT64 (STDMETHODCALLTYPE *GetCompletedValue)(
-        ID3D12Fence *This);
+    virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
+        const WCHAR *name,
+        DWORD access,
+        HANDLE *handle) = 0;
 
-    HRESULT (STDMETHODCALLTYPE *SetEventOnCompletion)(
-        ID3D12Fence *This,
-        UINT64 value,
-        HANDLE event);
+    virtual HRESULT STDMETHODCALLTYPE MakeResident(
+        UINT object_count,
+        ID3D12Pageable *const *objects) = 0;
 
-    HRESULT (STDMETHODCALLTYPE *Signal)(
-        ID3D12Fence *This,
-        UINT64 value);
+    virtual HRESULT STDMETHODCALLTYPE Evict(
+        UINT object_count,
+        ID3D12Pageable *const *objects) = 0;
 
-    END_INTERFACE
-} ID3D12FenceVtbl;
+    virtual HRESULT STDMETHODCALLTYPE CreateFence(
+        UINT64 initial_value,
+        D3D12_FENCE_FLAGS flags,
+        REFIID riid,
+        void **fence) = 0;
 
-interface ID3D12Fence {
-    CONST_VTBL ID3D12FenceVtbl* lpVtbl;
-};
+    virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(
+        ) = 0;
 
-#ifdef COBJMACROS
-#ifndef WIDL_C_INLINE_WRAPPERS
-/*** IUnknown methods ***/
-#define ID3D12Fence_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D12Fence_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D12Fence_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D12Object methods ***/
-#define ID3D12Fence_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
-#define ID3D12Fence_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
-#define ID3D12Fence_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
-#define ID3D12Fence_SetName(This,name) (This)->lpVtbl->SetName(This,name)
-/*** ID3D12DeviceChild methods ***/
-#define ID3D12Fence_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
-/*** ID3D12Fence methods ***/
-#define ID3D12Fence_GetCompletedValue(This) (This)->lpVtbl->GetCompletedValue(This)
-#define ID3D12Fence_SetEventOnCompletion(This,value,event) (This)->lpVtbl->SetEventOnCompletion(This,value,event)
-#define ID3D12Fence_Signal(This,value) (This)->lpVtbl->Signal(This,value)
-#else
-/*** IUnknown methods ***/
-static FORCEINLINE HRESULT ID3D12Fence_QueryInterface(ID3D12Fence* This,REFIID riid,void **ppvObject) {
-    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
-}
-static FORCEINLINE ULONG ID3D12Fence_AddRef(ID3D12Fence* This) {
-    return This->lpVtbl->AddRef(This);
-}
-static FORCEINLINE ULONG ID3D12Fence_Release(ID3D12Fence* This) {
-    return This->lpVtbl->Release(This);
-}
-/*** ID3D12Object methods ***/
-static FORCEINLINE HRESULT ID3D12Fence_GetPrivateData(ID3D12Fence* This,REFGUID guid,UINT *data_size,void *data) {
-    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
-}
-static FORCEINLINE HRESULT ID3D12Fence_SetPrivateData(ID3D12Fence* This,REFGUID guid,UINT data_size,const void *data) {
-    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
-}
-static FORCEINLINE HRESULT ID3D12Fence_SetPrivateDataInterface(ID3D12Fence* This,REFGUID guid,const IUnknown *data) {
-    return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
-}
-static FORCEINLINE HRESULT ID3D12Fence_SetName(ID3D12Fence* This,const WCHAR *name) {
-    return This->lpVtbl->SetName(This,name);
-}
-/*** ID3D12DeviceChild methods ***/
-static FORCEINLINE HRESULT ID3D12Fence_GetDevice(ID3D12Fence* This,REFIID riid,void **device) {
-    return This->lpVtbl->GetDevice(This,riid,device);
-}
-/*** ID3D12Fence methods ***/
-static FORCEINLINE UINT64 ID3D12Fence_GetCompletedValue(ID3D12Fence* This) {
-    return This->lpVtbl->GetCompletedValue(This);
-}
-static FORCEINLINE HRESULT ID3D12Fence_SetEventOnCompletion(ID3D12Fence* This,UINT64 value,HANDLE event) {
-    return This->lpVtbl->SetEventOnCompletion(This,value,event);
-}
-static FORCEINLINE HRESULT ID3D12Fence_Signal(ID3D12Fence* This,UINT64 value) {
-    return This->lpVtbl->Signal(This,value);
-}
-#endif
-#endif
+    virtual void STDMETHODCALLTYPE GetCopyableFootprints(
+        const D3D12_RESOURCE_DESC *desc,
+        UINT first_sub_resource,
+        UINT sub_resource_count,
+        UINT64 base_offset,
+        D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
+        UINT *row_count,
+        UINT64 *row_size,
+        UINT64 *total_bytes) = 0;
 
-#endif
+    virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
+        const D3D12_QUERY_HEAP_DESC *desc,
+        REFIID riid,
+        void **heap) = 0;
 
+    virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
+        WINBOOL enable) = 0;
 
-#endif  /* __ID3D12Fence_INTERFACE_DEFINED__ */
+    virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
+        const D3D12_COMMAND_SIGNATURE_DESC *desc,
+        ID3D12RootSignature *root_signature,
+        REFIID riid,
+        void **command_signature) = 0;
 
-/*****************************************************************************
- * ID3D12CommandAllocator interface
- */
-#ifndef __ID3D12CommandAllocator_INTERFACE_DEFINED__
-#define __ID3D12CommandAllocator_INTERFACE_DEFINED__
+    virtual void STDMETHODCALLTYPE GetResourceTiling(
+        ID3D12Resource *resource,
+        UINT *total_tile_count,
+        D3D12_PACKED_MIP_INFO *packed_mip_info,
+        D3D12_TILE_SHAPE *standard_tile_shape,
+        UINT *sub_resource_tiling_count,
+        UINT first_sub_resource_tiling,
+        D3D12_SUBRESOURCE_TILING *sub_resource_tilings) = 0;
 
-DEFINE_GUID(IID_ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("6102dee4-af59-4b09-b999-b44d73f09b24")
-ID3D12CommandAllocator : public ID3D12Pageable
-{
-    virtual HRESULT STDMETHODCALLTYPE Reset(
+#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
+    virtual LUID* STDMETHODCALLTYPE GetAdapterLuid(
+        LUID *__ret) = 0;
+    LUID STDMETHODCALLTYPE GetAdapterLuid(
+        )
+    {
+        LUID __ret;
+        return *GetAdapterLuid(&__ret);
+    }
+#else
+    virtual LUID STDMETHODCALLTYPE GetAdapterLuid(
         ) = 0;
+#endif
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ID3D12CommandAllocator, 0x6102dee4, 0xaf59, 0x4b09, 0xb9,0x99, 0xb4,0x4d,0x73,0xf0,0x9b,0x24)
+__CRT_UUID_DECL(ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7)
 #endif
 #else
-typedef struct ID3D12CommandAllocatorVtbl {
+typedef struct ID3D12DeviceVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D12CommandAllocator *This,
+        ID3D12Device *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D12CommandAllocator *This);
+        ID3D12Device *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D12CommandAllocator *This);
+        ID3D12Device *This);
 
     /*** ID3D12Object methods ***/
     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D12CommandAllocator *This,
+        ID3D12Device *This,
         REFGUID guid,
         UINT *data_size,
         void *data);
 
     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D12CommandAllocator *This,
+        ID3D12Device *This,
         REFGUID guid,
         UINT data_size,
         const void *data);
 
     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D12CommandAllocator *This,
+        ID3D12Device *This,
         REFGUID guid,
         const IUnknown *data);
 
     HRESULT (STDMETHODCALLTYPE *SetName)(
-        ID3D12CommandAllocator *This,
+        ID3D12Device *This,
         const WCHAR *name);
 
-    /*** ID3D12DeviceChild methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetDevice)(
-        ID3D12CommandAllocator *This,
-        REFIID riid,
-        void **device);
-
-    /*** ID3D12CommandAllocator methods ***/
-    HRESULT (STDMETHODCALLTYPE *Reset)(
-        ID3D12CommandAllocator *This);
-
-    END_INTERFACE
-} ID3D12CommandAllocatorVtbl;
-
-interface ID3D12CommandAllocator {
-    CONST_VTBL ID3D12CommandAllocatorVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-#ifndef WIDL_C_INLINE_WRAPPERS
-/*** IUnknown methods ***/
-#define ID3D12CommandAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D12CommandAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D12CommandAllocator_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D12Object methods ***/
-#define ID3D12CommandAllocator_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
-#define ID3D12CommandAllocator_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
-#define ID3D12CommandAllocator_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
-#define ID3D12CommandAllocator_SetName(This,name) (This)->lpVtbl->SetName(This,name)
-/*** ID3D12DeviceChild methods ***/
-#define ID3D12CommandAllocator_GetDevice(This,riid,device) (This)->lpVtbl->GetDevice(This,riid,device)
-/*** ID3D12CommandAllocator methods ***/
-#define ID3D12CommandAllocator_Reset(This) (This)->lpVtbl->Reset(This)
-#else
-/*** IUnknown methods ***/
-static FORCEINLINE HRESULT ID3D12CommandAllocator_QueryInterface(ID3D12CommandAllocator* This,REFIID riid,void **ppvObject) {
-    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
-}
-static FORCEINLINE ULONG ID3D12CommandAllocator_AddRef(ID3D12CommandAllocator* This) {
-    return This->lpVtbl->AddRef(This);
-}
-static FORCEINLINE ULONG ID3D12CommandAllocator_Release(ID3D12CommandAllocator* This) {
-    return This->lpVtbl->Release(This);
-}
-/*** ID3D12Object methods ***/
-static FORCEINLINE HRESULT ID3D12CommandAllocator_GetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT *data_size,void *data) {
-    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
-}
-static FORCEINLINE HRESULT ID3D12CommandAllocator_SetPrivateData(ID3D12CommandAllocator* This,REFGUID guid,UINT data_size,const void *data) {
-    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
-}
-static FORCEINLINE HRESULT ID3D12CommandAllocator_SetPrivateDataInterface(ID3D12CommandAllocator* This,REFGUID guid,const IUnknown *data) {
-    return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
-}
-static FORCEINLINE HRESULT ID3D12CommandAllocator_SetName(ID3D12CommandAllocator* This,const WCHAR *name) {
-    return This->lpVtbl->SetName(This,name);
-}
-/*** ID3D12DeviceChild methods ***/
-static FORCEINLINE HRESULT ID3D12CommandAllocator_GetDevice(ID3D12CommandAllocator* This,REFIID riid,void **device) {
-    return This->lpVtbl->GetDevice(This,riid,device);
-}
-/*** ID3D12CommandAllocator methods ***/
-static FORCEINLINE HRESULT ID3D12CommandAllocator_Reset(ID3D12CommandAllocator* This) {
-    return This->lpVtbl->Reset(This);
-}
-#endif
-#endif
-
-#endif
-
-
-#endif  /* __ID3D12CommandAllocator_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * ID3D12Device interface
- */
-#ifndef __ID3D12Device_INTERFACE_DEFINED__
-#define __ID3D12Device_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("189819f1-1db6-4b57-be54-1821339b85f7")
-ID3D12Device : public ID3D12Object
-{
-    virtual UINT STDMETHODCALLTYPE GetNodeCount(
-        ) = 0;
+    /*** ID3D12Device methods ***/
+    UINT (STDMETHODCALLTYPE *GetNodeCount)(
+        ID3D12Device *This);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateCommandQueue(
+    HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
+        ID3D12Device *This,
         const D3D12_COMMAND_QUEUE_DESC *desc,
         REFIID riid,
-        void **command_queue) = 0;
+        void **command_queue);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateCommandAllocator(
+    HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
+        ID3D12Device *This,
         D3D12_COMMAND_LIST_TYPE type,
         REFIID riid,
-        void **command_allocator) = 0;
+        void **command_allocator);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateGraphicsPipelineState(
+    HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
+        ID3D12Device *This,
         const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
         REFIID riid,
-        void **pipeline_state) = 0;
+        void **pipeline_state);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateComputePipelineState(
+    HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
+        ID3D12Device *This,
         const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
         REFIID riid,
-        void **pipeline_state) = 0;
+        void **pipeline_state);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateCommandList(
+    HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
+        ID3D12Device *This,
         UINT node_mask,
         D3D12_COMMAND_LIST_TYPE type,
         ID3D12CommandAllocator *command_allocator,
         ID3D12PipelineState *initial_pipeline_state,
         REFIID riid,
-        void **command_list) = 0;
+        void **command_list);
 
-    virtual HRESULT STDMETHODCALLTYPE CheckFeatureSupport(
+    HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
+        ID3D12Device *This,
         D3D12_FEATURE feature,
         void *feature_data,
-        UINT feature_data_size) = 0;
+        UINT feature_data_size);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateDescriptorHeap(
+    HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
+        ID3D12Device *This,
         const D3D12_DESCRIPTOR_HEAP_DESC *desc,
         REFIID riid,
-        void **descriptor_heap) = 0;
+        void **descriptor_heap);
 
-    virtual UINT STDMETHODCALLTYPE GetDescriptorHandleIncrementSize(
-        D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
+    UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
+        ID3D12Device *This,
+        D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateRootSignature(
+    HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
+        ID3D12Device *This,
         UINT node_mask,
         const void *bytecode,
         SIZE_T bytecode_length,
         REFIID riid,
-        void **root_signature) = 0;
+        void **root_signature);
 
-    virtual void STDMETHODCALLTYPE CreateConstantBufferView(
+    void (STDMETHODCALLTYPE *CreateConstantBufferView)(
+        ID3D12Device *This,
         const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
-        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
-    virtual void STDMETHODCALLTYPE CreateShaderResourceView(
+    void (STDMETHODCALLTYPE *CreateShaderResourceView)(
+        ID3D12Device *This,
         ID3D12Resource *resource,
         const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
-        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
-    virtual void STDMETHODCALLTYPE CreateUnorderedAccessView(
+    void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
+        ID3D12Device *This,
         ID3D12Resource *resource,
         ID3D12Resource *counter_resource,
         const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
-        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
-    virtual void STDMETHODCALLTYPE CreateRenderTargetView(
+    void (STDMETHODCALLTYPE *CreateRenderTargetView)(
+        ID3D12Device *This,
         ID3D12Resource *resource,
         const D3D12_RENDER_TARGET_VIEW_DESC *desc,
-        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
-    virtual void STDMETHODCALLTYPE CreateDepthStencilView(
+    void (STDMETHODCALLTYPE *CreateDepthStencilView)(
+        ID3D12Device *This,
         ID3D12Resource *resource,
         const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
-        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
-    virtual void STDMETHODCALLTYPE CreateSampler(
+    void (STDMETHODCALLTYPE *CreateSampler)(
+        ID3D12Device *This,
         const D3D12_SAMPLER_DESC *desc,
-        D3D12_CPU_DESCRIPTOR_HANDLE descriptor) = 0;
+        D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
-    virtual void STDMETHODCALLTYPE CopyDescriptors(
+    void (STDMETHODCALLTYPE *CopyDescriptors)(
+        ID3D12Device *This,
         UINT dst_descriptor_range_count,
         const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
         const UINT *dst_descriptor_range_sizes,
         UINT src_descriptor_range_count,
         const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
         const UINT *src_descriptor_range_sizes,
-        D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
+        D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
 
-    virtual void STDMETHODCALLTYPE CopyDescriptorsSimple(
+    void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
+        ID3D12Device *This,
         UINT descriptor_count,
         const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
         const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
-        D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) = 0;
+        D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
 
-#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
-    virtual D3D12_RESOURCE_ALLOCATION_INFO* STDMETHODCALLTYPE GetResourceAllocationInfo(
+    D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
+        ID3D12Device *This,
         D3D12_RESOURCE_ALLOCATION_INFO *__ret,
         UINT visible_mask,
         UINT reource_desc_count,
-        const D3D12_RESOURCE_DESC *resource_descs) = 0;
-    D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
-        UINT visible_mask,
-        UINT reource_desc_count,
-        const D3D12_RESOURCE_DESC *resource_descs)
-    {
-        D3D12_RESOURCE_ALLOCATION_INFO __ret;
-        return *GetResourceAllocationInfo(&__ret, visible_mask, reource_desc_count, resource_descs);
-    }
-#else
-    virtual D3D12_RESOURCE_ALLOCATION_INFO STDMETHODCALLTYPE GetResourceAllocationInfo(
-        UINT visible_mask,
-        UINT reource_desc_count,
-        const D3D12_RESOURCE_DESC *resource_descs) = 0;
-#endif
+        const D3D12_RESOURCE_DESC *resource_descs);
 
-#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
-    virtual D3D12_HEAP_PROPERTIES* STDMETHODCALLTYPE GetCustomHeapProperties(
+    D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
+        ID3D12Device *This,
         D3D12_HEAP_PROPERTIES *__ret,
         UINT node_mask,
-        D3D12_HEAP_TYPE heap_type) = 0;
-    D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
-        UINT node_mask,
-        D3D12_HEAP_TYPE heap_type)
-    {
-        D3D12_HEAP_PROPERTIES __ret;
-        return *GetCustomHeapProperties(&__ret, node_mask, heap_type);
-    }
-#else
-    virtual D3D12_HEAP_PROPERTIES STDMETHODCALLTYPE GetCustomHeapProperties(
-        UINT node_mask,
-        D3D12_HEAP_TYPE heap_type) = 0;
-#endif
+        D3D12_HEAP_TYPE heap_type);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateCommittedResource(
+    HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
+        ID3D12Device *This,
         const D3D12_HEAP_PROPERTIES *heap_properties,
         D3D12_HEAP_FLAGS heap_flags,
         const D3D12_RESOURCE_DESC *desc,
         D3D12_RESOURCE_STATES initial_state,
         const D3D12_CLEAR_VALUE *optimized_clear_value,
         REFIID riid,
-        void **resource) = 0;
+        void **resource);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateHeap(
+    HRESULT (STDMETHODCALLTYPE *CreateHeap)(
+        ID3D12Device *This,
         const D3D12_HEAP_DESC *desc,
         REFIID riid,
-        void **heap) = 0;
+        void **heap);
 
-    virtual HRESULT STDMETHODCALLTYPE CreatePlacedResource(
+    HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
+        ID3D12Device *This,
         ID3D12Heap *heap,
         UINT64 heap_offset,
         const D3D12_RESOURCE_DESC *desc,
         D3D12_RESOURCE_STATES initial_state,
         const D3D12_CLEAR_VALUE *optimized_clear_value,
         REFIID riid,
-        void **resource) = 0;
+        void **resource);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateReservedResource(
+    HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
+        ID3D12Device *This,
         const D3D12_RESOURCE_DESC *desc,
         D3D12_RESOURCE_STATES initial_state,
         const D3D12_CLEAR_VALUE *optimized_clear_value,
         REFIID riid,
-        void **resource) = 0;
+        void **resource);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateSharedHandle(
+    HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
+        ID3D12Device *This,
         ID3D12DeviceChild *object,
         const SECURITY_ATTRIBUTES *attributes,
         DWORD access,
         const WCHAR *name,
-        HANDLE *handle) = 0;
+        HANDLE *handle);
 
-    virtual HRESULT STDMETHODCALLTYPE OpenSharedHandle(
+    HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
+        ID3D12Device *This,
         HANDLE handle,
         REFIID riid,
-        void **object) = 0;
+        void **object);
 
-    virtual HRESULT STDMETHODCALLTYPE OpenSharedHandleByName(
+    HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
+        ID3D12Device *This,
         const WCHAR *name,
         DWORD access,
-        HANDLE *handle) = 0;
+        HANDLE *handle);
 
-    virtual HRESULT STDMETHODCALLTYPE MakeResident(
+    HRESULT (STDMETHODCALLTYPE *MakeResident)(
+        ID3D12Device *This,
         UINT object_count,
-        ID3D12Pageable *const *objects) = 0;
+        ID3D12Pageable *const *objects);
 
-    virtual HRESULT STDMETHODCALLTYPE Evict(
+    HRESULT (STDMETHODCALLTYPE *Evict)(
+        ID3D12Device *This,
         UINT object_count,
-        ID3D12Pageable *const *objects) = 0;
+        ID3D12Pageable *const *objects);
 
-    virtual HRESULT STDMETHODCALLTYPE CreateFence(
+    HRESULT (STDMETHODCALLTYPE *CreateFence)(
+        ID3D12Device *This,
         UINT64 initial_value,
         D3D12_FENCE_FLAGS flags,
         REFIID riid,
-        void **fence) = 0;
+        void **fence);
 
-    virtual HRESULT STDMETHODCALLTYPE GetDeviceRemovedReason(
-        ) = 0;
+    HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
+        ID3D12Device *This);
 
-    virtual void STDMETHODCALLTYPE GetCopyableFootprints(
+    void (STDMETHODCALLTYPE *GetCopyableFootprints)(
+        ID3D12Device *This,
         const D3D12_RESOURCE_DESC *desc,
         UINT first_sub_resource,
         UINT sub_resource_count,
@@ -4611,117 +6800,343 @@ ID3D12Device : public ID3D12Object
         D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
         UINT *row_count,
         UINT64 *row_size,
-        UINT64 *total_bytes) = 0;
+        UINT64 *total_bytes);
+
+    HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
+        ID3D12Device *This,
+        const D3D12_QUERY_HEAP_DESC *desc,
+        REFIID riid,
+        void **heap);
+
+    HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
+        ID3D12Device *This,
+        WINBOOL enable);
+
+    HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
+        ID3D12Device *This,
+        const D3D12_COMMAND_SIGNATURE_DESC *desc,
+        ID3D12RootSignature *root_signature,
+        REFIID riid,
+        void **command_signature);
+
+    void (STDMETHODCALLTYPE *GetResourceTiling)(
+        ID3D12Device *This,
+        ID3D12Resource *resource,
+        UINT *total_tile_count,
+        D3D12_PACKED_MIP_INFO *packed_mip_info,
+        D3D12_TILE_SHAPE *standard_tile_shape,
+        UINT *sub_resource_tiling_count,
+        UINT first_sub_resource_tiling,
+        D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
+
+    LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
+        ID3D12Device *This,
+        LUID *__ret);
+
+    END_INTERFACE
+} ID3D12DeviceVtbl;
+
+interface ID3D12Device {
+    CONST_VTBL ID3D12DeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Device_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Device_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Object methods ***/
+#define ID3D12Device_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Device_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Device_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Device_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+/*** ID3D12Device methods ***/
+#define ID3D12Device_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
+#define ID3D12Device_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
+#define ID3D12Device_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
+#define ID3D12Device_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
+#define ID3D12Device_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
+#define ID3D12Device_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
+#define ID3D12Device_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
+#define ID3D12Device_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
+#define ID3D12Device_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
+#define ID3D12Device_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
+#define ID3D12Device_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
+#define ID3D12Device_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
+#define ID3D12Device_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
+#define ID3D12Device_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
+#define ID3D12Device_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
+#define ID3D12Device_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
+#define ID3D12Device_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
+#define ID3D12Device_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
+#define ID3D12Device_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12Device_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12Device_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
+#define ID3D12Device_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
+#define ID3D12Device_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
+#define ID3D12Device_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
+#define ID3D12Device_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
+#define ID3D12Device_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
+#define ID3D12Device_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
+#define ID3D12Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D12Device_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
+#define ID3D12Device_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
+#define ID3D12Device_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
+#define ID3D12Device_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
+#define ID3D12Device_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
+#define ID3D12Device_GetAdapterLuid(This) ID3D12Device_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Device_QueryInterface(ID3D12Device* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Device_AddRef(ID3D12Device* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Device_Release(ID3D12Device* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12Object methods ***/
+static FORCEINLINE HRESULT ID3D12Device_GetPrivateData(ID3D12Device* This,REFGUID guid,UINT *data_size,void *data) {
+    return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Device_SetPrivateData(ID3D12Device* This,REFGUID guid,UINT data_size,const void *data) {
+    return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
+}
+static FORCEINLINE HRESULT ID3D12Device_SetPrivateDataInterface(ID3D12Device* This,REFGUID guid,const IUnknown *data) {
+    return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
+}
+static FORCEINLINE HRESULT ID3D12Device_SetName(ID3D12Device* This,const WCHAR *name) {
+    return This->lpVtbl->SetName(This,name);
+}
+/*** ID3D12Device methods ***/
+static FORCEINLINE UINT ID3D12Device_GetNodeCount(ID3D12Device* This) {
+    return This->lpVtbl->GetNodeCount(This);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateCommandQueue(ID3D12Device* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
+    return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateCommandAllocator(ID3D12Device* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
+    return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateGraphicsPipelineState(ID3D12Device* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
+    return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateComputePipelineState(ID3D12Device* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
+    return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateCommandList(ID3D12Device* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
+    return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
+}
+static FORCEINLINE HRESULT ID3D12Device_CheckFeatureSupport(ID3D12Device* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
+    return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateDescriptorHeap(ID3D12Device* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
+    return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
+}
+static FORCEINLINE UINT ID3D12Device_GetDescriptorHandleIncrementSize(ID3D12Device* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+    return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateRootSignature(ID3D12Device* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
+    return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
+}
+static FORCEINLINE void ID3D12Device_CreateConstantBufferView(ID3D12Device* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+    This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CreateShaderResourceView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+    This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CreateUnorderedAccessView(ID3D12Device* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+    This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CreateRenderTargetView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+    This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CreateDepthStencilView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+    This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CreateSampler(ID3D12Device* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+    This->lpVtbl->CreateSampler(This,desc,descriptor);
+}
+static FORCEINLINE void ID3D12Device_CopyDescriptors(ID3D12Device* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+    This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
+}
+static FORCEINLINE void ID3D12Device_CopyDescriptorsSimple(ID3D12Device* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+    This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
+}
+static FORCEINLINE D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device_GetResourceAllocationInfo(ID3D12Device* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
+    D3D12_RESOURCE_ALLOCATION_INFO __ret;
+    return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
+}
+static FORCEINLINE D3D12_HEAP_PROPERTIES ID3D12Device_GetCustomHeapProperties(ID3D12Device* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
+    D3D12_HEAP_PROPERTIES __ret;
+    return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateCommittedResource(ID3D12Device* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+    return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateHeap(ID3D12Device* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
+    return This->lpVtbl->CreateHeap(This,desc,riid,heap);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreatePlacedResource(ID3D12Device* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+    return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateReservedResource(ID3D12Device* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+    return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateSharedHandle(ID3D12Device* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
+    return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
+}
+static FORCEINLINE HRESULT ID3D12Device_OpenSharedHandle(ID3D12Device* This,HANDLE handle,REFIID riid,void **object) {
+    return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
+}
+static FORCEINLINE HRESULT ID3D12Device_OpenSharedHandleByName(ID3D12Device* This,const WCHAR *name,DWORD access,HANDLE *handle) {
+    return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
+}
+static FORCEINLINE HRESULT ID3D12Device_MakeResident(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) {
+    return This->lpVtbl->MakeResident(This,object_count,objects);
+}
+static FORCEINLINE HRESULT ID3D12Device_Evict(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) {
+    return This->lpVtbl->Evict(This,object_count,objects);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateFence(ID3D12Device* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
+    return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
+}
+static FORCEINLINE HRESULT ID3D12Device_GetDeviceRemovedReason(ID3D12Device* This) {
+    return This->lpVtbl->GetDeviceRemovedReason(This);
+}
+static FORCEINLINE void ID3D12Device_GetCopyableFootprints(ID3D12Device* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
+    This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateQueryHeap(ID3D12Device* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
+    return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
+}
+static FORCEINLINE HRESULT ID3D12Device_SetStablePowerState(ID3D12Device* This,WINBOOL enable) {
+    return This->lpVtbl->SetStablePowerState(This,enable);
+}
+static FORCEINLINE HRESULT ID3D12Device_CreateCommandSignature(ID3D12Device* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
+    return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
+}
+static FORCEINLINE void ID3D12Device_GetResourceTiling(ID3D12Device* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
+    This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
+}
+static FORCEINLINE LUID ID3D12Device_GetAdapterLuid(ID3D12Device* This) {
+    LUID __ret;
+    return *This->lpVtbl->GetAdapterLuid(This,&__ret);
+}
+#endif
+#endif
 
-    virtual HRESULT STDMETHODCALLTYPE CreateQueryHeap(
-        const D3D12_QUERY_HEAP_DESC *desc,
-        REFIID riid,
-        void **heap) = 0;
+#endif
 
-    virtual HRESULT STDMETHODCALLTYPE SetStablePowerState(
-        WINBOOL enable) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE CreateCommandSignature(
-        const D3D12_COMMAND_SIGNATURE_DESC *desc,
-        ID3D12RootSignature *root_signature,
-        REFIID riid,
-        void **command_signature) = 0;
+#endif  /* __ID3D12Device_INTERFACE_DEFINED__ */
 
-    virtual void STDMETHODCALLTYPE GetResourceTiling(
-        ID3D12Resource *resource,
-        UINT *total_tile_count,
-        D3D12_PACKED_MIP_INFO *packed_mip_info,
-        D3D12_TILE_SHAPE *standard_tile_shape,
-        UINT *sub_resource_tiling_count,
-        UINT first_sub_resource_tiling,
-        D3D12_SUBRESOURCE_TILING *sub_resource_tilings) = 0;
+/*****************************************************************************
+ * ID3D12Device1 interface
+ */
+#ifndef __ID3D12Device1_INTERFACE_DEFINED__
+#define __ID3D12Device1_INTERFACE_DEFINED__
 
-#ifdef WIDL_EXPLICIT_AGGREGATE_RETURNS
-    virtual LUID* STDMETHODCALLTYPE GetAdapterLuid(
-        LUID *__ret) = 0;
-    LUID STDMETHODCALLTYPE GetAdapterLuid(
-        )
-    {
-        LUID __ret;
-        return *GetAdapterLuid(&__ret);
-    }
-#else
-    virtual LUID STDMETHODCALLTYPE GetAdapterLuid(
-        ) = 0;
-#endif
+DEFINE_GUID(IID_ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88,0x95, 0xc1,0xf2,0x33,0x86,0x86,0x3e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("77acce80-638e-4e65-8895-c1f23386863e")
+ID3D12Device1 : public ID3D12Device
+{
+    virtual HRESULT STDMETHODCALLTYPE CreatePipelineLibrary(
+        const void *blob,
+        SIZE_T blob_size,
+        REFIID iid,
+        void **lib) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetEventOnMultipleFenceCompletion(
+        ID3D12Fence *const *fences,
+        const UINT64 *values,
+        UINT fence_count,
+        D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
+        HANDLE event) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetResidencyPriority(
+        UINT object_count,
+        ID3D12Pageable *const *objects,
+        const D3D12_RESIDENCY_PRIORITY *priorities) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ID3D12Device, 0x189819f1, 0x1db6, 0x4b57, 0xbe,0x54, 0x18,0x21,0x33,0x9b,0x85,0xf7)
+__CRT_UUID_DECL(ID3D12Device1, 0x77acce80, 0x638e, 0x4e65, 0x88,0x95, 0xc1,0xf2,0x33,0x86,0x86,0x3e)
 #endif
 #else
-typedef struct ID3D12DeviceVtbl {
+typedef struct ID3D12Device1Vtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D12Device *This);
+        ID3D12Device1 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D12Device *This);
+        ID3D12Device1 *This);
 
     /*** ID3D12Object methods ***/
     HRESULT (STDMETHODCALLTYPE *GetPrivateData)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         REFGUID guid,
         UINT *data_size,
         void *data);
 
     HRESULT (STDMETHODCALLTYPE *SetPrivateData)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         REFGUID guid,
         UINT data_size,
         const void *data);
 
     HRESULT (STDMETHODCALLTYPE *SetPrivateDataInterface)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         REFGUID guid,
         const IUnknown *data);
 
     HRESULT (STDMETHODCALLTYPE *SetName)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const WCHAR *name);
 
     /*** ID3D12Device methods ***/
     UINT (STDMETHODCALLTYPE *GetNodeCount)(
-        ID3D12Device *This);
+        ID3D12Device1 *This);
 
     HRESULT (STDMETHODCALLTYPE *CreateCommandQueue)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_COMMAND_QUEUE_DESC *desc,
         REFIID riid,
         void **command_queue);
 
     HRESULT (STDMETHODCALLTYPE *CreateCommandAllocator)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         D3D12_COMMAND_LIST_TYPE type,
         REFIID riid,
         void **command_allocator);
 
     HRESULT (STDMETHODCALLTYPE *CreateGraphicsPipelineState)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
         REFIID riid,
         void **pipeline_state);
 
     HRESULT (STDMETHODCALLTYPE *CreateComputePipelineState)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
         REFIID riid,
         void **pipeline_state);
 
     HRESULT (STDMETHODCALLTYPE *CreateCommandList)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         UINT node_mask,
         D3D12_COMMAND_LIST_TYPE type,
         ID3D12CommandAllocator *command_allocator,
@@ -4730,23 +7145,23 @@ typedef struct ID3D12DeviceVtbl {
         void **command_list);
 
     HRESULT (STDMETHODCALLTYPE *CheckFeatureSupport)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         D3D12_FEATURE feature,
         void *feature_data,
         UINT feature_data_size);
 
     HRESULT (STDMETHODCALLTYPE *CreateDescriptorHeap)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_DESCRIPTOR_HEAP_DESC *desc,
         REFIID riid,
         void **descriptor_heap);
 
     UINT (STDMETHODCALLTYPE *GetDescriptorHandleIncrementSize)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
 
     HRESULT (STDMETHODCALLTYPE *CreateRootSignature)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         UINT node_mask,
         const void *bytecode,
         SIZE_T bytecode_length,
@@ -4754,42 +7169,42 @@ typedef struct ID3D12DeviceVtbl {
         void **root_signature);
 
     void (STDMETHODCALLTYPE *CreateConstantBufferView)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
         D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
     void (STDMETHODCALLTYPE *CreateShaderResourceView)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         ID3D12Resource *resource,
         const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
         D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
     void (STDMETHODCALLTYPE *CreateUnorderedAccessView)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         ID3D12Resource *resource,
         ID3D12Resource *counter_resource,
         const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
         D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
     void (STDMETHODCALLTYPE *CreateRenderTargetView)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         ID3D12Resource *resource,
         const D3D12_RENDER_TARGET_VIEW_DESC *desc,
         D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
     void (STDMETHODCALLTYPE *CreateDepthStencilView)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         ID3D12Resource *resource,
         const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
         D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
     void (STDMETHODCALLTYPE *CreateSampler)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_SAMPLER_DESC *desc,
         D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
 
     void (STDMETHODCALLTYPE *CopyDescriptors)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         UINT dst_descriptor_range_count,
         const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
         const UINT *dst_descriptor_range_sizes,
@@ -4799,27 +7214,27 @@ typedef struct ID3D12DeviceVtbl {
         D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
 
     void (STDMETHODCALLTYPE *CopyDescriptorsSimple)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         UINT descriptor_count,
         const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
         const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
         D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
 
     D3D12_RESOURCE_ALLOCATION_INFO * (STDMETHODCALLTYPE *GetResourceAllocationInfo)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         D3D12_RESOURCE_ALLOCATION_INFO *__ret,
         UINT visible_mask,
         UINT reource_desc_count,
         const D3D12_RESOURCE_DESC *resource_descs);
 
     D3D12_HEAP_PROPERTIES * (STDMETHODCALLTYPE *GetCustomHeapProperties)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         D3D12_HEAP_PROPERTIES *__ret,
         UINT node_mask,
         D3D12_HEAP_TYPE heap_type);
 
     HRESULT (STDMETHODCALLTYPE *CreateCommittedResource)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_HEAP_PROPERTIES *heap_properties,
         D3D12_HEAP_FLAGS heap_flags,
         const D3D12_RESOURCE_DESC *desc,
@@ -4829,13 +7244,13 @@ typedef struct ID3D12DeviceVtbl {
         void **resource);
 
     HRESULT (STDMETHODCALLTYPE *CreateHeap)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_HEAP_DESC *desc,
         REFIID riid,
         void **heap);
 
     HRESULT (STDMETHODCALLTYPE *CreatePlacedResource)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         ID3D12Heap *heap,
         UINT64 heap_offset,
         const D3D12_RESOURCE_DESC *desc,
@@ -4845,7 +7260,7 @@ typedef struct ID3D12DeviceVtbl {
         void **resource);
 
     HRESULT (STDMETHODCALLTYPE *CreateReservedResource)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_RESOURCE_DESC *desc,
         D3D12_RESOURCE_STATES initial_state,
         const D3D12_CLEAR_VALUE *optimized_clear_value,
@@ -4853,7 +7268,7 @@ typedef struct ID3D12DeviceVtbl {
         void **resource);
 
     HRESULT (STDMETHODCALLTYPE *CreateSharedHandle)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         ID3D12DeviceChild *object,
         const SECURITY_ATTRIBUTES *attributes,
         DWORD access,
@@ -4861,39 +7276,39 @@ typedef struct ID3D12DeviceVtbl {
         HANDLE *handle);
 
     HRESULT (STDMETHODCALLTYPE *OpenSharedHandle)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         HANDLE handle,
         REFIID riid,
         void **object);
 
     HRESULT (STDMETHODCALLTYPE *OpenSharedHandleByName)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const WCHAR *name,
         DWORD access,
         HANDLE *handle);
 
     HRESULT (STDMETHODCALLTYPE *MakeResident)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         UINT object_count,
         ID3D12Pageable *const *objects);
 
     HRESULT (STDMETHODCALLTYPE *Evict)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         UINT object_count,
         ID3D12Pageable *const *objects);
 
     HRESULT (STDMETHODCALLTYPE *CreateFence)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         UINT64 initial_value,
         D3D12_FENCE_FLAGS flags,
         REFIID riid,
         void **fence);
 
     HRESULT (STDMETHODCALLTYPE *GetDeviceRemovedReason)(
-        ID3D12Device *This);
+        ID3D12Device1 *This);
 
     void (STDMETHODCALLTYPE *GetCopyableFootprints)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_RESOURCE_DESC *desc,
         UINT first_sub_resource,
         UINT sub_resource_count,
@@ -4904,24 +7319,24 @@ typedef struct ID3D12DeviceVtbl {
         UINT64 *total_bytes);
 
     HRESULT (STDMETHODCALLTYPE *CreateQueryHeap)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_QUERY_HEAP_DESC *desc,
         REFIID riid,
         void **heap);
 
     HRESULT (STDMETHODCALLTYPE *SetStablePowerState)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         WINBOOL enable);
 
     HRESULT (STDMETHODCALLTYPE *CreateCommandSignature)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         const D3D12_COMMAND_SIGNATURE_DESC *desc,
         ID3D12RootSignature *root_signature,
         REFIID riid,
         void **command_signature);
 
     void (STDMETHODCALLTYPE *GetResourceTiling)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         ID3D12Resource *resource,
         UINT *total_tile_count,
         D3D12_PACKED_MIP_INFO *packed_mip_info,
@@ -4931,279 +7346,315 @@ typedef struct ID3D12DeviceVtbl {
         D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
 
     LUID * (STDMETHODCALLTYPE *GetAdapterLuid)(
-        ID3D12Device *This,
+        ID3D12Device1 *This,
         LUID *__ret);
 
+    /*** ID3D12Device1 methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreatePipelineLibrary)(
+        ID3D12Device1 *This,
+        const void *blob,
+        SIZE_T blob_size,
+        REFIID iid,
+        void **lib);
+
+    HRESULT (STDMETHODCALLTYPE *SetEventOnMultipleFenceCompletion)(
+        ID3D12Device1 *This,
+        ID3D12Fence *const *fences,
+        const UINT64 *values,
+        UINT fence_count,
+        D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,
+        HANDLE event);
+
+    HRESULT (STDMETHODCALLTYPE *SetResidencyPriority)(
+        ID3D12Device1 *This,
+        UINT object_count,
+        ID3D12Pageable *const *objects,
+        const D3D12_RESIDENCY_PRIORITY *priorities);
+
     END_INTERFACE
-} ID3D12DeviceVtbl;
+} ID3D12Device1Vtbl;
 
-interface ID3D12Device {
-    CONST_VTBL ID3D12DeviceVtbl* lpVtbl;
+interface ID3D12Device1 {
+    CONST_VTBL ID3D12Device1Vtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define ID3D12Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D12Device_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D12Device_Release(This) (This)->lpVtbl->Release(This)
+#define ID3D12Device1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Device1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Device1_Release(This) (This)->lpVtbl->Release(This)
 /*** ID3D12Object methods ***/
-#define ID3D12Device_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
-#define ID3D12Device_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
-#define ID3D12Device_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
-#define ID3D12Device_SetName(This,name) (This)->lpVtbl->SetName(This,name)
+#define ID3D12Device1_GetPrivateData(This,guid,data_size,data) (This)->lpVtbl->GetPrivateData(This,guid,data_size,data)
+#define ID3D12Device1_SetPrivateData(This,guid,data_size,data) (This)->lpVtbl->SetPrivateData(This,guid,data_size,data)
+#define ID3D12Device1_SetPrivateDataInterface(This,guid,data) (This)->lpVtbl->SetPrivateDataInterface(This,guid,data)
+#define ID3D12Device1_SetName(This,name) (This)->lpVtbl->SetName(This,name)
 /*** ID3D12Device methods ***/
-#define ID3D12Device_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
-#define ID3D12Device_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
-#define ID3D12Device_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
-#define ID3D12Device_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
-#define ID3D12Device_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
-#define ID3D12Device_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
-#define ID3D12Device_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
-#define ID3D12Device_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
-#define ID3D12Device_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
-#define ID3D12Device_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
-#define ID3D12Device_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
-#define ID3D12Device_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
-#define ID3D12Device_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
-#define ID3D12Device_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
-#define ID3D12Device_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
-#define ID3D12Device_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
-#define ID3D12Device_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
-#define ID3D12Device_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
-#define ID3D12Device_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
-#define ID3D12Device_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
-#define ID3D12Device_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
-#define ID3D12Device_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
-#define ID3D12Device_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
-#define ID3D12Device_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
-#define ID3D12Device_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
-#define ID3D12Device_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
-#define ID3D12Device_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
-#define ID3D12Device_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
-#define ID3D12Device_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
-#define ID3D12Device_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
-#define ID3D12Device_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
-#define ID3D12Device_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
-#define ID3D12Device_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
-#define ID3D12Device_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
-#define ID3D12Device_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
-#define ID3D12Device_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
-#define ID3D12Device_GetAdapterLuid(This) ID3D12Device_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12Device1_GetNodeCount(This) (This)->lpVtbl->GetNodeCount(This)
+#define ID3D12Device1_CreateCommandQueue(This,desc,riid,command_queue) (This)->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue)
+#define ID3D12Device1_CreateCommandAllocator(This,type,riid,command_allocator) (This)->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator)
+#define ID3D12Device1_CreateGraphicsPipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state)
+#define ID3D12Device1_CreateComputePipelineState(This,desc,riid,pipeline_state) (This)->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state)
+#define ID3D12Device1_CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list) (This)->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list)
+#define ID3D12Device1_CheckFeatureSupport(This,feature,feature_data,feature_data_size) (This)->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size)
+#define ID3D12Device1_CreateDescriptorHeap(This,desc,riid,descriptor_heap) (This)->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap)
+#define ID3D12Device1_GetDescriptorHandleIncrementSize(This,descriptor_heap_type) (This)->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type)
+#define ID3D12Device1_CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature) (This)->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature)
+#define ID3D12Device1_CreateConstantBufferView(This,desc,descriptor) (This)->lpVtbl->CreateConstantBufferView(This,desc,descriptor)
+#define ID3D12Device1_CreateShaderResourceView(This,resource,desc,descriptor) (This)->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor)
+#define ID3D12Device1_CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor) (This)->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor)
+#define ID3D12Device1_CreateRenderTargetView(This,resource,desc,descriptor) (This)->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor)
+#define ID3D12Device1_CreateDepthStencilView(This,resource,desc,descriptor) (This)->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor)
+#define ID3D12Device1_CreateSampler(This,desc,descriptor) (This)->lpVtbl->CreateSampler(This,desc,descriptor)
+#define ID3D12Device1_CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type) (This)->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type)
+#define ID3D12Device1_CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type) (This)->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type)
+#define ID3D12Device1_GetResourceAllocationInfo(This,visible_mask,reource_desc_count,resource_descs) ID3D12Device1_GetResourceAllocationInfo_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12Device1_GetCustomHeapProperties(This,node_mask,heap_type) ID3D12Device1_GetCustomHeapProperties_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+#define ID3D12Device1_CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device1_CreateHeap(This,desc,riid,heap) (This)->lpVtbl->CreateHeap(This,desc,riid,heap)
+#define ID3D12Device1_CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device1_CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource) (This)->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource)
+#define ID3D12Device1_CreateSharedHandle(This,object,attributes,access,name,handle) (This)->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle)
+#define ID3D12Device1_OpenSharedHandle(This,handle,riid,object) (This)->lpVtbl->OpenSharedHandle(This,handle,riid,object)
+#define ID3D12Device1_OpenSharedHandleByName(This,name,access,handle) (This)->lpVtbl->OpenSharedHandleByName(This,name,access,handle)
+#define ID3D12Device1_MakeResident(This,object_count,objects) (This)->lpVtbl->MakeResident(This,object_count,objects)
+#define ID3D12Device1_Evict(This,object_count,objects) (This)->lpVtbl->Evict(This,object_count,objects)
+#define ID3D12Device1_CreateFence(This,initial_value,flags,riid,fence) (This)->lpVtbl->CreateFence(This,initial_value,flags,riid,fence)
+#define ID3D12Device1_GetDeviceRemovedReason(This) (This)->lpVtbl->GetDeviceRemovedReason(This)
+#define ID3D12Device1_GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes) (This)->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes)
+#define ID3D12Device1_CreateQueryHeap(This,desc,riid,heap) (This)->lpVtbl->CreateQueryHeap(This,desc,riid,heap)
+#define ID3D12Device1_SetStablePowerState(This,enable) (This)->lpVtbl->SetStablePowerState(This,enable)
+#define ID3D12Device1_CreateCommandSignature(This,desc,root_signature,riid,command_signature) (This)->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature)
+#define ID3D12Device1_GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings) (This)->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings)
+#define ID3D12Device1_GetAdapterLuid(This) ID3D12Device1_GetAdapterLuid_define_WIDL_C_INLINE_WRAPPERS_for_aggregate_return_support
+/*** ID3D12Device1 methods ***/
+#define ID3D12Device1_CreatePipelineLibrary(This,blob,blob_size,iid,lib) (This)->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib)
+#define ID3D12Device1_SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event) (This)->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event)
+#define ID3D12Device1_SetResidencyPriority(This,object_count,objects,priorities) (This)->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT ID3D12Device_QueryInterface(ID3D12Device* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT ID3D12Device1_QueryInterface(ID3D12Device1* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG ID3D12Device_AddRef(ID3D12Device* This) {
+static FORCEINLINE ULONG ID3D12Device1_AddRef(ID3D12Device1* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG ID3D12Device_Release(ID3D12Device* This) {
+static FORCEINLINE ULONG ID3D12Device1_Release(ID3D12Device1* This) {
     return This->lpVtbl->Release(This);
 }
 /*** ID3D12Object methods ***/
-static FORCEINLINE HRESULT ID3D12Device_GetPrivateData(ID3D12Device* This,REFGUID guid,UINT *data_size,void *data) {
+static FORCEINLINE HRESULT ID3D12Device1_GetPrivateData(ID3D12Device1* This,REFGUID guid,UINT *data_size,void *data) {
     return This->lpVtbl->GetPrivateData(This,guid,data_size,data);
 }
-static FORCEINLINE HRESULT ID3D12Device_SetPrivateData(ID3D12Device* This,REFGUID guid,UINT data_size,const void *data) {
+static FORCEINLINE HRESULT ID3D12Device1_SetPrivateData(ID3D12Device1* This,REFGUID guid,UINT data_size,const void *data) {
     return This->lpVtbl->SetPrivateData(This,guid,data_size,data);
 }
-static FORCEINLINE HRESULT ID3D12Device_SetPrivateDataInterface(ID3D12Device* This,REFGUID guid,const IUnknown *data) {
+static FORCEINLINE HRESULT ID3D12Device1_SetPrivateDataInterface(ID3D12Device1* This,REFGUID guid,const IUnknown *data) {
     return This->lpVtbl->SetPrivateDataInterface(This,guid,data);
 }
-static FORCEINLINE HRESULT ID3D12Device_SetName(ID3D12Device* This,const WCHAR *name) {
+static FORCEINLINE HRESULT ID3D12Device1_SetName(ID3D12Device1* This,const WCHAR *name) {
     return This->lpVtbl->SetName(This,name);
 }
 /*** ID3D12Device methods ***/
-static FORCEINLINE UINT ID3D12Device_GetNodeCount(ID3D12Device* This) {
+static FORCEINLINE UINT ID3D12Device1_GetNodeCount(ID3D12Device1* This) {
     return This->lpVtbl->GetNodeCount(This);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateCommandQueue(ID3D12Device* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateCommandQueue(ID3D12Device1* This,const D3D12_COMMAND_QUEUE_DESC *desc,REFIID riid,void **command_queue) {
     return This->lpVtbl->CreateCommandQueue(This,desc,riid,command_queue);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateCommandAllocator(ID3D12Device* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateCommandAllocator(ID3D12Device1* This,D3D12_COMMAND_LIST_TYPE type,REFIID riid,void **command_allocator) {
     return This->lpVtbl->CreateCommandAllocator(This,type,riid,command_allocator);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateGraphicsPipelineState(ID3D12Device* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateGraphicsPipelineState(ID3D12Device1* This,const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
     return This->lpVtbl->CreateGraphicsPipelineState(This,desc,riid,pipeline_state);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateComputePipelineState(ID3D12Device* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateComputePipelineState(ID3D12Device1* This,const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,REFIID riid,void **pipeline_state) {
     return This->lpVtbl->CreateComputePipelineState(This,desc,riid,pipeline_state);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateCommandList(ID3D12Device* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateCommandList(ID3D12Device1* This,UINT node_mask,D3D12_COMMAND_LIST_TYPE type,ID3D12CommandAllocator *command_allocator,ID3D12PipelineState *initial_pipeline_state,REFIID riid,void **command_list) {
     return This->lpVtbl->CreateCommandList(This,node_mask,type,command_allocator,initial_pipeline_state,riid,command_list);
 }
-static FORCEINLINE HRESULT ID3D12Device_CheckFeatureSupport(ID3D12Device* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
+static FORCEINLINE HRESULT ID3D12Device1_CheckFeatureSupport(ID3D12Device1* This,D3D12_FEATURE feature,void *feature_data,UINT feature_data_size) {
     return This->lpVtbl->CheckFeatureSupport(This,feature,feature_data,feature_data_size);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateDescriptorHeap(ID3D12Device* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateDescriptorHeap(ID3D12Device1* This,const D3D12_DESCRIPTOR_HEAP_DESC *desc,REFIID riid,void **descriptor_heap) {
     return This->lpVtbl->CreateDescriptorHeap(This,desc,riid,descriptor_heap);
 }
-static FORCEINLINE UINT ID3D12Device_GetDescriptorHandleIncrementSize(ID3D12Device* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+static FORCEINLINE UINT ID3D12Device1_GetDescriptorHandleIncrementSize(ID3D12Device1* This,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
     return This->lpVtbl->GetDescriptorHandleIncrementSize(This,descriptor_heap_type);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateRootSignature(ID3D12Device* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateRootSignature(ID3D12Device1* This,UINT node_mask,const void *bytecode,SIZE_T bytecode_length,REFIID riid,void **root_signature) {
     return This->lpVtbl->CreateRootSignature(This,node_mask,bytecode,bytecode_length,riid,root_signature);
 }
-static FORCEINLINE void ID3D12Device_CreateConstantBufferView(ID3D12Device* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+static FORCEINLINE void ID3D12Device1_CreateConstantBufferView(ID3D12Device1* This,const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
     This->lpVtbl->CreateConstantBufferView(This,desc,descriptor);
 }
-static FORCEINLINE void ID3D12Device_CreateShaderResourceView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+static FORCEINLINE void ID3D12Device1_CreateShaderResourceView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
     This->lpVtbl->CreateShaderResourceView(This,resource,desc,descriptor);
 }
-static FORCEINLINE void ID3D12Device_CreateUnorderedAccessView(ID3D12Device* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+static FORCEINLINE void ID3D12Device1_CreateUnorderedAccessView(ID3D12Device1* This,ID3D12Resource *resource,ID3D12Resource *counter_resource,const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
     This->lpVtbl->CreateUnorderedAccessView(This,resource,counter_resource,desc,descriptor);
 }
-static FORCEINLINE void ID3D12Device_CreateRenderTargetView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+static FORCEINLINE void ID3D12Device1_CreateRenderTargetView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_RENDER_TARGET_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
     This->lpVtbl->CreateRenderTargetView(This,resource,desc,descriptor);
 }
-static FORCEINLINE void ID3D12Device_CreateDepthStencilView(ID3D12Device* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+static FORCEINLINE void ID3D12Device1_CreateDepthStencilView(ID3D12Device1* This,ID3D12Resource *resource,const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
     This->lpVtbl->CreateDepthStencilView(This,resource,desc,descriptor);
 }
-static FORCEINLINE void ID3D12Device_CreateSampler(ID3D12Device* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
+static FORCEINLINE void ID3D12Device1_CreateSampler(ID3D12Device1* This,const D3D12_SAMPLER_DESC *desc,D3D12_CPU_DESCRIPTOR_HANDLE descriptor) {
     This->lpVtbl->CreateSampler(This,desc,descriptor);
 }
-static FORCEINLINE void ID3D12Device_CopyDescriptors(ID3D12Device* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+static FORCEINLINE void ID3D12Device1_CopyDescriptors(ID3D12Device1* This,UINT dst_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,const UINT *dst_descriptor_range_sizes,UINT src_descriptor_range_count,const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,const UINT *src_descriptor_range_sizes,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
     This->lpVtbl->CopyDescriptors(This,dst_descriptor_range_count,dst_descriptor_range_offsets,dst_descriptor_range_sizes,src_descriptor_range_count,src_descriptor_range_offsets,src_descriptor_range_sizes,descriptor_heap_type);
 }
-static FORCEINLINE void ID3D12Device_CopyDescriptorsSimple(ID3D12Device* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
+static FORCEINLINE void ID3D12Device1_CopyDescriptorsSimple(ID3D12Device1* This,UINT descriptor_count,const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type) {
     This->lpVtbl->CopyDescriptorsSimple(This,descriptor_count,dst_descriptor_range_offset,src_descriptor_range_offset,descriptor_heap_type);
 }
-static FORCEINLINE D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device_GetResourceAllocationInfo(ID3D12Device* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
+static FORCEINLINE D3D12_RESOURCE_ALLOCATION_INFO ID3D12Device1_GetResourceAllocationInfo(ID3D12Device1* This,UINT visible_mask,UINT reource_desc_count,const D3D12_RESOURCE_DESC *resource_descs) {
     D3D12_RESOURCE_ALLOCATION_INFO __ret;
     return *This->lpVtbl->GetResourceAllocationInfo(This,&__ret,visible_mask,reource_desc_count,resource_descs);
 }
-static FORCEINLINE D3D12_HEAP_PROPERTIES ID3D12Device_GetCustomHeapProperties(ID3D12Device* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
+static FORCEINLINE D3D12_HEAP_PROPERTIES ID3D12Device1_GetCustomHeapProperties(ID3D12Device1* This,UINT node_mask,D3D12_HEAP_TYPE heap_type) {
     D3D12_HEAP_PROPERTIES __ret;
     return *This->lpVtbl->GetCustomHeapProperties(This,&__ret,node_mask,heap_type);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateCommittedResource(ID3D12Device* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateCommittedResource(ID3D12Device1* This,const D3D12_HEAP_PROPERTIES *heap_properties,D3D12_HEAP_FLAGS heap_flags,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
     return This->lpVtbl->CreateCommittedResource(This,heap_properties,heap_flags,desc,initial_state,optimized_clear_value,riid,resource);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateHeap(ID3D12Device* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateHeap(ID3D12Device1* This,const D3D12_HEAP_DESC *desc,REFIID riid,void **heap) {
     return This->lpVtbl->CreateHeap(This,desc,riid,heap);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreatePlacedResource(ID3D12Device* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+static FORCEINLINE HRESULT ID3D12Device1_CreatePlacedResource(ID3D12Device1* This,ID3D12Heap *heap,UINT64 heap_offset,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
     return This->lpVtbl->CreatePlacedResource(This,heap,heap_offset,desc,initial_state,optimized_clear_value,riid,resource);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateReservedResource(ID3D12Device* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateReservedResource(ID3D12Device1* This,const D3D12_RESOURCE_DESC *desc,D3D12_RESOURCE_STATES initial_state,const D3D12_CLEAR_VALUE *optimized_clear_value,REFIID riid,void **resource) {
     return This->lpVtbl->CreateReservedResource(This,desc,initial_state,optimized_clear_value,riid,resource);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateSharedHandle(ID3D12Device* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateSharedHandle(ID3D12Device1* This,ID3D12DeviceChild *object,const SECURITY_ATTRIBUTES *attributes,DWORD access,const WCHAR *name,HANDLE *handle) {
     return This->lpVtbl->CreateSharedHandle(This,object,attributes,access,name,handle);
 }
-static FORCEINLINE HRESULT ID3D12Device_OpenSharedHandle(ID3D12Device* This,HANDLE handle,REFIID riid,void **object) {
+static FORCEINLINE HRESULT ID3D12Device1_OpenSharedHandle(ID3D12Device1* This,HANDLE handle,REFIID riid,void **object) {
     return This->lpVtbl->OpenSharedHandle(This,handle,riid,object);
 }
-static FORCEINLINE HRESULT ID3D12Device_OpenSharedHandleByName(ID3D12Device* This,const WCHAR *name,DWORD access,HANDLE *handle) {
+static FORCEINLINE HRESULT ID3D12Device1_OpenSharedHandleByName(ID3D12Device1* This,const WCHAR *name,DWORD access,HANDLE *handle) {
     return This->lpVtbl->OpenSharedHandleByName(This,name,access,handle);
 }
-static FORCEINLINE HRESULT ID3D12Device_MakeResident(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) {
+static FORCEINLINE HRESULT ID3D12Device1_MakeResident(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects) {
     return This->lpVtbl->MakeResident(This,object_count,objects);
 }
-static FORCEINLINE HRESULT ID3D12Device_Evict(ID3D12Device* This,UINT object_count,ID3D12Pageable *const *objects) {
+static FORCEINLINE HRESULT ID3D12Device1_Evict(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects) {
     return This->lpVtbl->Evict(This,object_count,objects);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateFence(ID3D12Device* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateFence(ID3D12Device1* This,UINT64 initial_value,D3D12_FENCE_FLAGS flags,REFIID riid,void **fence) {
     return This->lpVtbl->CreateFence(This,initial_value,flags,riid,fence);
 }
-static FORCEINLINE HRESULT ID3D12Device_GetDeviceRemovedReason(ID3D12Device* This) {
+static FORCEINLINE HRESULT ID3D12Device1_GetDeviceRemovedReason(ID3D12Device1* This) {
     return This->lpVtbl->GetDeviceRemovedReason(This);
 }
-static FORCEINLINE void ID3D12Device_GetCopyableFootprints(ID3D12Device* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
+static FORCEINLINE void ID3D12Device1_GetCopyableFootprints(ID3D12Device1* This,const D3D12_RESOURCE_DESC *desc,UINT first_sub_resource,UINT sub_resource_count,UINT64 base_offset,D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,UINT *row_count,UINT64 *row_size,UINT64 *total_bytes) {
     This->lpVtbl->GetCopyableFootprints(This,desc,first_sub_resource,sub_resource_count,base_offset,layouts,row_count,row_size,total_bytes);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateQueryHeap(ID3D12Device* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateQueryHeap(ID3D12Device1* This,const D3D12_QUERY_HEAP_DESC *desc,REFIID riid,void **heap) {
     return This->lpVtbl->CreateQueryHeap(This,desc,riid,heap);
 }
-static FORCEINLINE HRESULT ID3D12Device_SetStablePowerState(ID3D12Device* This,WINBOOL enable) {
+static FORCEINLINE HRESULT ID3D12Device1_SetStablePowerState(ID3D12Device1* This,WINBOOL enable) {
     return This->lpVtbl->SetStablePowerState(This,enable);
 }
-static FORCEINLINE HRESULT ID3D12Device_CreateCommandSignature(ID3D12Device* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
+static FORCEINLINE HRESULT ID3D12Device1_CreateCommandSignature(ID3D12Device1* This,const D3D12_COMMAND_SIGNATURE_DESC *desc,ID3D12RootSignature *root_signature,REFIID riid,void **command_signature) {
     return This->lpVtbl->CreateCommandSignature(This,desc,root_signature,riid,command_signature);
 }
-static FORCEINLINE void ID3D12Device_GetResourceTiling(ID3D12Device* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
+static FORCEINLINE void ID3D12Device1_GetResourceTiling(ID3D12Device1* This,ID3D12Resource *resource,UINT *total_tile_count,D3D12_PACKED_MIP_INFO *packed_mip_info,D3D12_TILE_SHAPE *standard_tile_shape,UINT *sub_resource_tiling_count,UINT first_sub_resource_tiling,D3D12_SUBRESOURCE_TILING *sub_resource_tilings) {
     This->lpVtbl->GetResourceTiling(This,resource,total_tile_count,packed_mip_info,standard_tile_shape,sub_resource_tiling_count,first_sub_resource_tiling,sub_resource_tilings);
 }
-static FORCEINLINE LUID ID3D12Device_GetAdapterLuid(ID3D12Device* This) {
+static FORCEINLINE LUID ID3D12Device1_GetAdapterLuid(ID3D12Device1* This) {
     LUID __ret;
     return *This->lpVtbl->GetAdapterLuid(This,&__ret);
 }
+/*** ID3D12Device1 methods ***/
+static FORCEINLINE HRESULT ID3D12Device1_CreatePipelineLibrary(ID3D12Device1* This,const void *blob,SIZE_T blob_size,REFIID iid,void **lib) {
+    return This->lpVtbl->CreatePipelineLibrary(This,blob,blob_size,iid,lib);
+}
+static FORCEINLINE HRESULT ID3D12Device1_SetEventOnMultipleFenceCompletion(ID3D12Device1* This,ID3D12Fence *const *fences,const UINT64 *values,UINT fence_count,D3D12_MULTIPLE_FENCE_WAIT_FLAGS flags,HANDLE event) {
+    return This->lpVtbl->SetEventOnMultipleFenceCompletion(This,fences,values,fence_count,flags,event);
+}
+static FORCEINLINE HRESULT ID3D12Device1_SetResidencyPriority(ID3D12Device1* This,UINT object_count,ID3D12Pageable *const *objects,const D3D12_RESIDENCY_PRIORITY *priorities) {
+    return This->lpVtbl->SetResidencyPriority(This,object_count,objects,priorities);
+}
 #endif
 #endif
 
 #endif
 
 
-#endif  /* __ID3D12Device_INTERFACE_DEFINED__ */
+#endif  /* __ID3D12Device1_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * ID3D12Debug interface
+ * ID3D12RootSignatureDeserializer interface
  */
-#ifndef __ID3D12Debug_INTERFACE_DEFINED__
-#define __ID3D12Debug_INTERFACE_DEFINED__
+#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
+#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9,0x89, 0xf0,0x27,0x44,0x82,0x45,0xe0);
+DEFINE_GUID(IID_ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("344488b7-6846-474b-b989-f027448245e0")
-ID3D12Debug : public IUnknown
+MIDL_INTERFACE("34ab647b-3cc8-46ac-841b-c0965645c046")
+ID3D12RootSignatureDeserializer : public IUnknown
 {
-    virtual void STDMETHODCALLTYPE EnableDebugLayer(
+    virtual const D3D12_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetRootSignatureDesc(
         ) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9,0x89, 0xf0,0x27,0x44,0x82,0x45,0xe0)
+__CRT_UUID_DECL(ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46)
 #endif
 #else
-typedef struct ID3D12DebugVtbl {
+typedef struct ID3D12RootSignatureDeserializerVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D12Debug *This,
+        ID3D12RootSignatureDeserializer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D12Debug *This);
+        ID3D12RootSignatureDeserializer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D12Debug *This);
+        ID3D12RootSignatureDeserializer *This);
 
-    /*** ID3D12Debug methods ***/
-    void (STDMETHODCALLTYPE *EnableDebugLayer)(
-        ID3D12Debug *This);
+    /*** ID3D12RootSignatureDeserializer methods ***/
+    const D3D12_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetRootSignatureDesc)(
+        ID3D12RootSignatureDeserializer *This);
 
     END_INTERFACE
-} ID3D12DebugVtbl;
+} ID3D12RootSignatureDeserializerVtbl;
 
-interface ID3D12Debug {
-    CONST_VTBL ID3D12DebugVtbl* lpVtbl;
+interface ID3D12RootSignatureDeserializer {
+    CONST_VTBL ID3D12RootSignatureDeserializerVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define ID3D12Debug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D12Debug_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D12Debug_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D12Debug methods ***/
-#define ID3D12Debug_EnableDebugLayer(This) (This)->lpVtbl->EnableDebugLayer(This)
+#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12RootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12RootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12RootSignatureDeserializer methods ***/
+#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) (This)->lpVtbl->GetRootSignatureDesc(This)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT ID3D12Debug_QueryInterface(ID3D12Debug* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT ID3D12RootSignatureDeserializer_QueryInterface(ID3D12RootSignatureDeserializer* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG ID3D12Debug_AddRef(ID3D12Debug* This) {
+static FORCEINLINE ULONG ID3D12RootSignatureDeserializer_AddRef(ID3D12RootSignatureDeserializer* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG ID3D12Debug_Release(ID3D12Debug* This) {
+static FORCEINLINE ULONG ID3D12RootSignatureDeserializer_Release(ID3D12RootSignatureDeserializer* This) {
     return This->lpVtbl->Release(This);
 }
-/*** ID3D12Debug methods ***/
-static FORCEINLINE void ID3D12Debug_EnableDebugLayer(ID3D12Debug* This) {
-    This->lpVtbl->EnableDebugLayer(This);
+/*** ID3D12RootSignatureDeserializer methods ***/
+static FORCEINLINE const D3D12_ROOT_SIGNATURE_DESC * ID3D12RootSignatureDeserializer_GetRootSignatureDesc(ID3D12RootSignatureDeserializer* This) {
+    return This->lpVtbl->GetRootSignatureDesc(This);
 }
 #endif
 #endif
@@ -5211,75 +7662,88 @@ static FORCEINLINE void ID3D12Debug_EnableDebugLayer(ID3D12Debug* This) {
 #endif
 
 
-#endif  /* __ID3D12Debug_INTERFACE_DEFINED__ */
+#endif  /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * ID3D12RootSignatureDeserializer interface
+ * ID3D12VersionedRootSignatureDeserializer interface
  */
-#ifndef __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
-#define __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__
+#ifndef __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
+#define __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46);
+DEFINE_GUID(IID_ID3D12VersionedRootSignatureDeserializer, 0x7f91ce67, 0x090c, 0x4bb7, 0xb7,0x8e, 0xed,0x8f,0xf2,0xe3,0x1d,0xa0);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("34ab647b-3cc8-46ac-841b-c0965645c046")
-ID3D12RootSignatureDeserializer : public IUnknown
+MIDL_INTERFACE("7f91ce67-090c-4bb7-b78e-ed8ff2e31da0")
+ID3D12VersionedRootSignatureDeserializer : public IUnknown
 {
-    virtual const D3D12_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetRootSignatureDesc(
+    virtual HRESULT STDMETHODCALLTYPE GetRootSignatureDescAtVersion(
+        D3D_ROOT_SIGNATURE_VERSION version,
+        const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc) = 0;
+
+    virtual const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * STDMETHODCALLTYPE GetUnconvertedRootSignatureDesc(
         ) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ID3D12RootSignatureDeserializer, 0x34ab647b, 0x3cc8, 0x46ac, 0x84,0x1b, 0xc0,0x96,0x56,0x45,0xc0,0x46)
+__CRT_UUID_DECL(ID3D12VersionedRootSignatureDeserializer, 0x7f91ce67, 0x090c, 0x4bb7, 0xb7,0x8e, 0xed,0x8f,0xf2,0xe3,0x1d,0xa0)
 #endif
 #else
-typedef struct ID3D12RootSignatureDeserializerVtbl {
+typedef struct ID3D12VersionedRootSignatureDeserializerVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ID3D12RootSignatureDeserializer *This,
+        ID3D12VersionedRootSignatureDeserializer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ID3D12RootSignatureDeserializer *This);
+        ID3D12VersionedRootSignatureDeserializer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ID3D12RootSignatureDeserializer *This);
+        ID3D12VersionedRootSignatureDeserializer *This);
 
-    /*** ID3D12RootSignatureDeserializer methods ***/
-    const D3D12_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetRootSignatureDesc)(
-        ID3D12RootSignatureDeserializer *This);
+    /*** ID3D12VersionedRootSignatureDeserializer methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetRootSignatureDescAtVersion)(
+        ID3D12VersionedRootSignatureDeserializer *This,
+        D3D_ROOT_SIGNATURE_VERSION version,
+        const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc);
+
+    const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * (STDMETHODCALLTYPE *GetUnconvertedRootSignatureDesc)(
+        ID3D12VersionedRootSignatureDeserializer *This);
 
     END_INTERFACE
-} ID3D12RootSignatureDeserializerVtbl;
+} ID3D12VersionedRootSignatureDeserializerVtbl;
 
-interface ID3D12RootSignatureDeserializer {
-    CONST_VTBL ID3D12RootSignatureDeserializerVtbl* lpVtbl;
+interface ID3D12VersionedRootSignatureDeserializer {
+    CONST_VTBL ID3D12VersionedRootSignatureDeserializerVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define ID3D12RootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ID3D12RootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ID3D12RootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This)
-/*** ID3D12RootSignatureDeserializer methods ***/
-#define ID3D12RootSignatureDeserializer_GetRootSignatureDesc(This) (This)->lpVtbl->GetRootSignatureDesc(This)
+#define ID3D12VersionedRootSignatureDeserializer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12VersionedRootSignatureDeserializer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12VersionedRootSignatureDeserializer_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12VersionedRootSignatureDeserializer methods ***/
+#define ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(This,version,desc) (This)->lpVtbl->GetRootSignatureDescAtVersion(This,version,desc)
+#define ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(This) (This)->lpVtbl->GetUnconvertedRootSignatureDesc(This)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT ID3D12RootSignatureDeserializer_QueryInterface(ID3D12RootSignatureDeserializer* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT ID3D12VersionedRootSignatureDeserializer_QueryInterface(ID3D12VersionedRootSignatureDeserializer* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG ID3D12RootSignatureDeserializer_AddRef(ID3D12RootSignatureDeserializer* This) {
+static FORCEINLINE ULONG ID3D12VersionedRootSignatureDeserializer_AddRef(ID3D12VersionedRootSignatureDeserializer* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG ID3D12RootSignatureDeserializer_Release(ID3D12RootSignatureDeserializer* This) {
+static FORCEINLINE ULONG ID3D12VersionedRootSignatureDeserializer_Release(ID3D12VersionedRootSignatureDeserializer* This) {
     return This->lpVtbl->Release(This);
 }
-/*** ID3D12RootSignatureDeserializer methods ***/
-static FORCEINLINE const D3D12_ROOT_SIGNATURE_DESC * ID3D12RootSignatureDeserializer_GetRootSignatureDesc(ID3D12RootSignatureDeserializer* This) {
-    return This->lpVtbl->GetRootSignatureDesc(This);
+/*** ID3D12VersionedRootSignatureDeserializer methods ***/
+static FORCEINLINE HRESULT ID3D12VersionedRootSignatureDeserializer_GetRootSignatureDescAtVersion(ID3D12VersionedRootSignatureDeserializer* This,D3D_ROOT_SIGNATURE_VERSION version,const D3D12_VERSIONED_ROOT_SIGNATURE_DESC **desc) {
+    return This->lpVtbl->GetRootSignatureDescAtVersion(This,version,desc);
+}
+static FORCEINLINE const D3D12_VERSIONED_ROOT_SIGNATURE_DESC * ID3D12VersionedRootSignatureDeserializer_GetUnconvertedRootSignatureDesc(ID3D12VersionedRootSignatureDeserializer* This) {
+    return This->lpVtbl->GetUnconvertedRootSignatureDesc(This);
 }
 #endif
 #endif
@@ -5287,12 +7751,16 @@ static FORCEINLINE const D3D12_ROOT_SIGNATURE_DESC * ID3D12RootSignatureDeserial
 #endif
 
 
-#endif  /* __ID3D12RootSignatureDeserializer_INTERFACE_DEFINED__ */
+#endif  /* __ID3D12VersionedRootSignatureDeserializer_INTERFACE_DEFINED__ */
 
 HRESULT __stdcall  D3D12CreateRootSignatureDeserializer(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
 
+typedef HRESULT (__stdcall *PFN_D3D12_CREATE_VERSIONED_ROOT_SIGNATURE_DESERIALIZER)(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
+HRESULT __stdcall  D3D12CreateVersionedRootSignatureDeserializer(const void *data,SIZE_T data_size,REFIID iid,void **deserializer);
+
 HRESULT __stdcall  D3D12SerializeRootSignature(const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,D3D_ROOT_SIGNATURE_VERSION version,ID3DBlob **blob,ID3DBlob **error_blob);
 
+typedef HRESULT (__stdcall *PFN_D3D12_SERIALIZE_VERSIONED_ROOT_SIGNATURE)(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *desc,ID3DBlob **blob,ID3DBlob **error_blob);
 HRESULT __stdcall  D3D12SerializeVersionedRootSignature(const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *root_signature_desc,ID3DBlob **blob,ID3DBlob **error_blob);
 
 typedef HRESULT (__stdcall *PFN_D3D12_CREATE_DEVICE)(IUnknown *adapter,D3D_FEATURE_LEVEL minimum_feature_level,REFIID iid,void **device);
lib/libc/include/any-windows-any/d3d12.idl
@@ -1,2185 +0,0 @@
-/*
- * Copyright 2016 Jรณzef Kucia 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 "dxgi.idl";
-import "d3dcommon.idl";
-
-cpp_quote("#ifndef _D3D12_CONSTANTS")
-cpp_quote("#define _D3D12_CONSTANTS")
-
-const UINT D3D12_CS_TGSM_REGISTER_COUNT = 8192;
-const UINT D3D12_MAX_ROOT_COST = 64;
-const UINT D3D12_VIEWPORT_BOUNDS_MAX = 32767;
-const UINT D3D12_VIEWPORT_BOUNDS_MIN = -32768;
-
-const UINT D3D12_APPEND_ALIGNED_ELEMENT = 0xffffffff;
-cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_ALPHA (1.0f)")
-cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_BLUE (1.0f)")
-cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_GREEN (1.0f)")
-cpp_quote("#define D3D12_DEFAULT_BLEND_FACTOR_RED (1.0f)")
-const UINT D3D12_DEFAULT_DEPTH_BIAS = 0;
-cpp_quote("#define D3D12_DEFAULT_DEPTH_BIAS_CLAMP (0.0f)")
-cpp_quote("#define D3D12_DEFAULT_SLOPE_SCALED_DEPTH_BIAS (0.0f)")
-const UINT D3D12_DEFAULT_STENCIL_READ_MASK = 0xff;
-const UINT D3D12_DEFAULT_STENCIL_WRITE_MASK = 0xff;
-const UINT D3D12_DESCRIPTOR_RANGE_OFFSET_APPEND = 0xffffffff;
-cpp_quote("#define D3D12_FLOAT32_MAX (3.402823466e+38f)")
-const UINT D3D12_IA_VERTEX_INPUT_RESOURCE_SLOT_COUNT = 32;
-const UINT D3D12_REQ_MIP_LEVELS = 15;
-const UINT D3D12_REQ_TEXTURE1D_ARRAY_AXIS_DIMENSION = 2048;
-const UINT D3D12_REQ_TEXTURE1D_U_DIMENSION = 16384;
-const UINT D3D12_REQ_TEXTURE2D_ARRAY_AXIS_DIMENSION = 2048;
-const UINT D3D12_REQ_TEXTURE2D_U_OR_V_DIMENSION = 16384;
-const UINT D3D12_REQ_TEXTURE3D_U_V_OR_W_DIMENSION = 2048;
-const UINT D3D12_REQ_TEXTURECUBE_DIMENSION = 16384;
-const UINT D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES = 0xffffffff;
-const UINT D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT = 8;
-const UINT D3D12_CONSTANT_BUFFER_DATA_PLACEMENT_ALIGNMENT = 256;
-const UINT D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT = 65536;
-const UINT D3D12_TEXTURE_DATA_PITCH_ALIGNMENT = 256;
-const UINT D3D12_TEXTURE_DATA_PLACEMENT_ALIGNMENT = 512;
-const UINT D3D12_VS_INPUT_REGISTER_COUNT = 32;
-const UINT D3D12_VIEWPORT_AND_SCISSORRECT_OBJECT_COUNT_PER_PIPELINE = 16;
-
-cpp_quote("#endif")
-
-const UINT D3D12_SHADER_COMPONENT_MAPPING_MASK = 0x7;
-const UINT D3D12_SHADER_COMPONENT_MAPPING_SHIFT = 3;
-const UINT D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES
-        = 1 << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 4);
-
-typedef enum D3D12_SHADER_MIN_PRECISION_SUPPORT
-{
-    D3D12_SHADER_MIN_PRECISION_SUPPORT_NONE = 0x0,
-    D3D12_SHADER_MIN_PRECISION_SUPPORT_10_BIT = 0x1,
-    D3D12_SHADER_MIN_PRECISION_SUPPORT_16_BIT = 0x2,
-} D3D12_SHADER_MIN_PRECISION_SUPPORT;
-
-typedef enum D3D12_TILED_RESOURCES_TIER
-{
-    D3D12_TILED_RESOURCES_TIER_NOT_SUPPORTED = 0,
-    D3D12_TILED_RESOURCES_TIER_1 = 1,
-    D3D12_TILED_RESOURCES_TIER_2 = 2,
-    D3D12_TILED_RESOURCES_TIER_3 = 3,
-} D3D12_TILED_RESOURCES_TIER;
-
-typedef enum D3D12_RESOURCE_BINDING_TIER
-{
-    D3D12_RESOURCE_BINDING_TIER_1 = 1,
-    D3D12_RESOURCE_BINDING_TIER_2 = 2,
-    D3D12_RESOURCE_BINDING_TIER_3 = 3,
-} D3D12_RESOURCE_BINDING_TIER;
-
-typedef enum D3D12_CONSERVATIVE_RASTERIZATION_TIER
-{
-    D3D12_CONSERVATIVE_RASTERIZATION_TIER_NOT_SUPPORTED = 0,
-    D3D12_CONSERVATIVE_RASTERIZATION_TIER_1 = 1,
-    D3D12_CONSERVATIVE_RASTERIZATION_TIER_2 = 2,
-    D3D12_CONSERVATIVE_RASTERIZATION_TIER_3 = 3,
-} D3D12_CONSERVATIVE_RASTERIZATION_TIER;
-
-typedef enum D3D12_CROSS_NODE_SHARING_TIER
-{
-    D3D12_CROSS_NODE_SHARING_TIER_NOT_SUPPORTED = 0,
-    D3D12_CROSS_NODE_SHARING_TIER_1_EMULATED = 1,
-    D3D12_CROSS_NODE_SHARING_TIER_1 = 2,
-    D3D12_CROSS_NODE_SHARING_TIER_2 = 3,
-} D3D12_CROSS_NODE_SHARING_TIER;
-
-typedef enum D3D12_RESOURCE_HEAP_TIER
-{
-    D3D12_RESOURCE_HEAP_TIER_1 = 1,
-    D3D12_RESOURCE_HEAP_TIER_2 = 2,
-} D3D12_RESOURCE_HEAP_TIER;
-
-typedef enum D3D12_FORMAT_SUPPORT1
-{
-    D3D12_FORMAT_SUPPORT1_NONE = 0x00000000,
-    D3D12_FORMAT_SUPPORT1_BUFFER = 0x00000001,
-    D3D12_FORMAT_SUPPORT1_IA_VERTEX_BUFFER = 0x00000002,
-    D3D12_FORMAT_SUPPORT1_IA_INDEX_BUFFER = 0x00000004,
-    D3D12_FORMAT_SUPPORT1_SO_BUFFER = 0x00000008,
-    D3D12_FORMAT_SUPPORT1_TEXTURE1D = 0x00000010,
-    D3D12_FORMAT_SUPPORT1_TEXTURE2D = 0x00000020,
-    D3D12_FORMAT_SUPPORT1_TEXTURE3D = 0x00000040,
-    D3D12_FORMAT_SUPPORT1_TEXTURECUBE = 0x00000080,
-    D3D12_FORMAT_SUPPORT1_SHADER_LOAD = 0x00000100,
-    D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE = 0x00000200,
-    D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_COMPARISON = 0x00000400,
-    D3D12_FORMAT_SUPPORT1_SHADER_SAMPLE_MONO_TEXT = 0x00000800,
-    D3D12_FORMAT_SUPPORT1_MIP = 0x00001000,
-    D3D12_FORMAT_SUPPORT1_RENDER_TARGET = 0x00004000,
-    D3D12_FORMAT_SUPPORT1_BLENDABLE = 0x00008000,
-    D3D12_FORMAT_SUPPORT1_DEPTH_STENCIL = 0x00010000,
-    D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RESOLVE = 0x00040000,
-    D3D12_FORMAT_SUPPORT1_DISPLAY = 0x00080000,
-    D3D12_FORMAT_SUPPORT1_CAST_WITHIN_BIT_LAYOUT = 0x00100000,
-    D3D12_FORMAT_SUPPORT1_MULTISAMPLE_RENDERTARGET = 0x00200000,
-    D3D12_FORMAT_SUPPORT1_MULTISAMPLE_LOAD = 0x00400000,
-    D3D12_FORMAT_SUPPORT1_SHADER_GATHER = 0x00800000,
-    D3D12_FORMAT_SUPPORT1_BACK_BUFFER_CAST = 0x01000000,
-    D3D12_FORMAT_SUPPORT1_TYPED_UNORDERED_ACCESS_VIEW = 0x02000000,
-    D3D12_FORMAT_SUPPORT1_SHADER_GATHER_COMPARISON = 0x04000000,
-    D3D12_FORMAT_SUPPORT1_DECODER_OUTPUT = 0x08000000,
-    D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_OUTPUT = 0x10000000,
-    D3D12_FORMAT_SUPPORT1_VIDEO_PROCESSOR_INPUT = 0x20000000,
-    D3D12_FORMAT_SUPPORT1_VIDEO_ENCODER = 0x40000000,
-} D3D12_FORMAT_SUPPORT1;
-
-typedef enum D3D12_FORMAT_SUPPORT2
-{
-    D3D12_FORMAT_SUPPORT2_NONE = 0x00000000,
-    D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_ADD = 0x00000001,
-    D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS = 0x00000002,
-    D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE = 0x00000004,
-    D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE = 0x00000008,
-    D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX = 0x00000010,
-    D3D12_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX = 0x00000020,
-    D3D12_FORMAT_SUPPORT2_UAV_TYPED_LOAD = 0x00000040,
-    D3D12_FORMAT_SUPPORT2_UAV_TYPED_STORE = 0x00000080,
-    D3D12_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP = 0x00000100,
-    D3D12_FORMAT_SUPPORT2_TILED = 0x00000200,
-    D3D12_FORMAT_SUPPORT2_MULTIPLANE_OVERLAY = 0x00004000,
-} D3D12_FORMAT_SUPPORT2;
-
-interface ID3D12Fence;
-interface ID3D12RootSignature;
-interface ID3D12Heap;
-interface ID3D12DescriptorHeap;
-interface ID3D12Resource;
-interface ID3D12CommandAllocator;
-interface ID3D12GraphicsCommandList;
-interface ID3D12CommandQueue;
-interface ID3D12PipelineState;
-interface ID3D12Device;
-
-typedef RECT D3D12_RECT;
-
-typedef struct D3D12_BOX
-{
-    UINT left;
-    UINT top;
-    UINT front;
-    UINT right;
-    UINT bottom;
-    UINT back;
-} D3D12_BOX;
-
-typedef struct D3D12_VIEWPORT
-{
-    FLOAT TopLeftX;
-    FLOAT TopLeftY;
-    FLOAT Width;
-    FLOAT Height;
-    FLOAT MinDepth;
-    FLOAT MaxDepth;
-} D3D12_VIEWPORT;
-
-typedef struct D3D12_RANGE
-{
-    SIZE_T Begin;
-    SIZE_T End;
-} D3D12_RANGE;
-
-typedef struct D3D12_RESOURCE_ALLOCATION_INFO
-{
-    UINT64 SizeInBytes;
-    UINT64 Alignment;
-} D3D12_RESOURCE_ALLOCATION_INFO;
-
-typedef struct D3D12_DRAW_ARGUMENTS
-{
-    UINT VertexCountPerInstance;
-    UINT InstanceCount;
-    UINT StartVertexLocation;
-    UINT StartInstanceLocation;
-} D3D12_DRAW_ARGUMENTS;
-
-typedef struct D3D12_DRAW_INDEXED_ARGUMENTS
-{
-    UINT IndexCountPerInstance;
-    UINT InstanceCount;
-    UINT StartIndexLocation;
-    INT BaseVertexLocation;
-    UINT StartInstanceLocation;
-} D3D12_DRAW_INDEXED_ARGUMENTS;
-
-typedef struct D3D12_DISPATCH_ARGUMENTS
-{
-    UINT ThreadGroupCountX;
-    UINT ThreadGroupCountY;
-    UINT ThreadGroupCountZ;
-} D3D12_DISPATCH_ARGUMENTS;
-
-typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
-{
-    BOOL DoublePrecisionFloatShaderOps;
-    BOOL OutputMergerLogicOp;
-    D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
-    D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
-    D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
-    BOOL PSSpecifiedStencilRefSupported;
-    BOOL TypedUAVLoadAdditionalFormats;
-    BOOL ROVsSupported;
-    D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
-    UINT MaxGPUVirtualAddressBitsPerResource;
-    BOOL StandardSwizzle64KBSupported;
-    D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
-    BOOL CrossAdapterRowMajorTextureSupported;
-    BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
-    D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
-} D3D12_FEATURE_DATA_D3D12_OPTIONS;
-
-typedef struct D3D12_FEATURE_DATA_FORMAT_SUPPORT
-{
-    DXGI_FORMAT Format;
-    D3D12_FORMAT_SUPPORT1 Support1;
-    D3D12_FORMAT_SUPPORT2 Support2;
-} D3D12_FEATURE_DATA_FORMAT_SUPPORT;
-
-typedef enum D3D12_HEAP_TYPE
-{
-    D3D12_HEAP_TYPE_DEFAULT = 1,
-    D3D12_HEAP_TYPE_UPLOAD = 2,
-    D3D12_HEAP_TYPE_READBACK = 3,
-    D3D12_HEAP_TYPE_CUSTOM = 4,
-} D3D12_HEAP_TYPE;
-
-typedef enum D3D12_CPU_PAGE_PROPERTY
-{
-    D3D12_CPU_PAGE_PROPERTY_UNKNOWN = 0,
-    D3D12_CPU_PAGE_PROPERTY_WRITE_COMBINE = 2,
-    D3D12_CPU_PAGE_PROPERTY_WRITE_BACK = 3,
-} D3D12_CPU_PAGE_PROPERTY;
-
-typedef enum D3D12_MEMORY_POOL
-{
-    D3D12_MEMORY_POOL_UNKNOWN = 0,
-    D3D12_MEMORY_POOL_L0 = 1,
-    D3D12_MEMORY_POOL_L1 = 2,
-} D3D12_MEMORY_POOL;
-
-typedef struct D3D12_HEAP_PROPERTIES
-{
-    D3D12_HEAP_TYPE Type;
-    D3D12_CPU_PAGE_PROPERTY CPUPageProperty;
-    D3D12_MEMORY_POOL MemoryPoolPreference;
-    UINT CreationNodeMask;
-    UINT VisibleNodeMask;
-} D3D12_HEAP_PROPERTIES;
-
-typedef enum D3D12_HEAP_FLAGS
-{
-    D3D12_HEAP_FLAG_NONE = 0x00,
-    D3D12_HEAP_FLAG_SHARED = 0x01,
-    D3D12_HEAP_FLAG_DENY_BUFFERS = 0x04,
-    D3D12_HEAP_FLAG_ALLOW_DISPLAY = 0x08,
-    D3D12_HEAP_FLAG_SHARED_CROSS_ADAPTER = 0x20,
-    D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES = 0x40,
-    D3D12_HEAP_FLAG_DENY_NON_RT_DS_TEXTURES = 0x80,
-    D3D12_HEAP_FLAG_ALLOW_ALL_BUFFERS_AND_TEXTURES = 0x00,
-    D3D12_HEAP_FLAG_ALLOW_ONLY_BUFFERS = 0xc0,
-    D3D12_HEAP_FLAG_ALLOW_ONLY_NON_RT_DS_TEXTURES = 0x44,
-    D3D12_HEAP_FLAG_ALLOW_ONLY_RT_DS_TEXTURES = 0x84,
-} D3D12_HEAP_FLAGS;
-
-typedef struct D3D12_HEAP_DESC
-{
-    UINT64 SizeInBytes;
-    D3D12_HEAP_PROPERTIES Properties;
-    UINT64 Alignment;
-    D3D12_HEAP_FLAGS Flags;
-} D3D12_HEAP_DESC;
-
-typedef struct D3D12_TILED_RESOURCE_COORDINATE
-{
-    UINT X;
-    UINT Y;
-    UINT Z;
-    UINT Subresource;
-} D3D12_TILED_RESOURCE_COORDINATE;
-
-typedef struct D3D12_TILE_REGION_SIZE
-{
-    UINT NumTiles;
-    BOOL UseBox;
-    UINT Width;
-    UINT16 Height;
-    UINT16 Depth;
-} D3D12_TILE_REGION_SIZE;
-
-typedef struct D3D12_SUBRESOURCE_TILING
-{
-    UINT WidthInTiles;
-    UINT16 HeightInTiles;
-    UINT16 DepthInTiles;
-    UINT StartTileIndexInOverallResource;
-} D3D12_SUBRESOURCE_TILING;
-
-typedef struct D3D12_TILE_SHAPE
-{
-    UINT WidthInTexels;
-    UINT HeightInTexels;
-    UINT DepthInTexels;
-} D3D12_TILE_SHAPE;
-
-typedef struct D3D12_SHADER_BYTECODE
-{
-    const void *pShaderBytecode;
-    SIZE_T BytecodeLength;
-} D3D12_SHADER_BYTECODE;
-
-typedef struct D3D12_DEPTH_STENCIL_VALUE
-{
-    FLOAT Depth;
-    UINT8 Stencil;
-} D3D12_DEPTH_STENCIL_VALUE;
-
-typedef struct D3D12_CLEAR_VALUE
-{
-    DXGI_FORMAT Format;
-    union
-    {
-        FLOAT Color[4];
-        D3D12_DEPTH_STENCIL_VALUE DepthStencil;
-    };
-} D3D12_CLEAR_VALUE;
-
-typedef struct D3D12_PACKED_MIP_INFO
-{
-    UINT8 NumStandardMips;
-    UINT8 NumPackedMips;
-    UINT NumTilesForPackedMips;
-    UINT StartTileIndexInOverallResource;
-} D3D12_PACKED_MIP_INFO;
-
-typedef enum D3D12_RESOURCE_STATES
-{
-    D3D12_RESOURCE_STATE_COMMON = 0,
-    D3D12_RESOURCE_STATE_VERTEX_AND_CONSTANT_BUFFER = 0x1,
-    D3D12_RESOURCE_STATE_INDEX_BUFFER = 0x2,
-    D3D12_RESOURCE_STATE_RENDER_TARGET = 0x4,
-    D3D12_RESOURCE_STATE_UNORDERED_ACCESS = 0x8,
-    D3D12_RESOURCE_STATE_DEPTH_WRITE = 0x10,
-    D3D12_RESOURCE_STATE_DEPTH_READ = 0x20,
-    D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE = 0x40,
-    D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE = 0x80,
-    D3D12_RESOURCE_STATE_STREAM_OUT = 0x100,
-    D3D12_RESOURCE_STATE_INDIRECT_ARGUMENT = 0x200,
-    D3D12_RESOURCE_STATE_COPY_DEST = 0x400,
-    D3D12_RESOURCE_STATE_COPY_SOURCE = 0x800,
-    D3D12_RESOURCE_STATE_RESOLVE_DEST = 0x1000,
-    D3D12_RESOURCE_STATE_RESOLVE_SOURCE = 0x2000,
-    D3D12_RESOURCE_STATE_GENERIC_READ = 0x1 | 0x2 | 0x40 | 0x80 | 0x200 | 0x800,
-    D3D12_RESOURCE_STATE_PRESENT = 0x0,
-    D3D12_RESOURCE_STATE_PREDICATION = 0x200,
-} D3D12_RESOURCE_STATES;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_STATES);")
-
-typedef enum D3D12_RESOURCE_BARRIER_TYPE
-{
-    D3D12_RESOURCE_BARRIER_TYPE_TRANSITION = 0,
-    D3D12_RESOURCE_BARRIER_TYPE_ALIASING = 1,
-    D3D12_RESOURCE_BARRIER_TYPE_UAV = 2,
-} D3D12_RESOURCE_BARRIER_TYPE;
-
-typedef enum D3D12_RESOURCE_BARRIER_FLAGS
-{
-    D3D12_RESOURCE_BARRIER_FLAG_NONE = 0x0,
-    D3D12_RESOURCE_BARRIER_FLAG_BEGIN_ONLY = 0x1,
-    D3D12_RESOURCE_BARRIER_FLAG_END_ONLY = 0x2,
-} D3D12_RESOURCE_BARRIER_FLAGS;
-
-typedef struct D3D12_RESOURCE_TRANSITION_BARRIER
-{
-    ID3D12Resource *pResource;
-    UINT Subresource;
-    D3D12_RESOURCE_STATES StateBefore;
-    D3D12_RESOURCE_STATES StateAfter;
-} D3D12_RESOURCE_TRANSITION_BARRIER;
-
-typedef struct D3D12_RESOURCE_ALIASING_BARRIER_ALIASING
-{
-    ID3D12Resource *pResourceBefore;
-    ID3D12Resource *pResourceAfter;
-} D3D12_RESOURCE_ALIASING_BARRIER;
-
-typedef struct D3D12_RESOURCE_UAV_BARRIER
-{
-    ID3D12Resource *pResource;
-} D3D12_RESOURCE_UAV_BARRIER;
-
-typedef struct D3D12_RESOURCE_BARRIER
-{
-    D3D12_RESOURCE_BARRIER_TYPE Type;
-    D3D12_RESOURCE_BARRIER_FLAGS Flags;
-    union
-    {
-        D3D12_RESOURCE_TRANSITION_BARRIER Transition;
-        D3D12_RESOURCE_ALIASING_BARRIER Aliasing;
-        D3D12_RESOURCE_UAV_BARRIER UAV;
-    };
-} D3D12_RESOURCE_BARRIER;
-
-typedef enum D3D12_RESOURCE_DIMENSION
-{
-    D3D12_RESOURCE_DIMENSION_UNKNOWN = 0,
-    D3D12_RESOURCE_DIMENSION_BUFFER = 1,
-    D3D12_RESOURCE_DIMENSION_TEXTURE1D = 2,
-    D3D12_RESOURCE_DIMENSION_TEXTURE2D = 3,
-    D3D12_RESOURCE_DIMENSION_TEXTURE3D = 4,
-} D3D12_RESOURCE_DIMENSION;
-
-typedef enum D3D12_TEXTURE_LAYOUT
-{
-    D3D12_TEXTURE_LAYOUT_UNKNOWN = 0,
-    D3D12_TEXTURE_LAYOUT_ROW_MAJOR = 1,
-    D3D12_TEXTURE_LAYOUT_64KB_UNDEFINED_SWIZZLE = 2,
-    D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE = 3,
-} D3D12_TEXTURE_LAYOUT;
-
-typedef enum D3D12_RESOURCE_FLAGS
-{
-    D3D12_RESOURCE_FLAG_NONE = 0x0,
-    D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
-    D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
-    D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
-    D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
-    D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
-    D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
-} D3D12_RESOURCE_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_RESOURCE_FLAGS);")
-
-typedef struct D3D12_RESOURCE_DESC
-{
-    D3D12_RESOURCE_DIMENSION Dimension;
-    UINT64 Alignment;
-    UINT64 Width;
-    UINT Height;
-    UINT16 DepthOrArraySize;
-    UINT16 MipLevels;
-    DXGI_FORMAT Format;
-    DXGI_SAMPLE_DESC SampleDesc;
-    D3D12_TEXTURE_LAYOUT Layout;
-    D3D12_RESOURCE_FLAGS Flags;
-} D3D12_RESOURCE_DESC;
-
-typedef enum D3D12_TEXTURE_COPY_TYPE
-{
-    D3D12_TEXTURE_COPY_TYPE_SUBRESOURCE_INDEX = 0,
-    D3D12_TEXTURE_COPY_TYPE_PLACED_FOOTPRINT = 1,
-} D3D12_TEXTURE_COPY_TYPE;
-
-typedef struct D3D12_SUBRESOURCE_FOOTPRINT
-{
-    DXGI_FORMAT Format;
-    UINT Width;
-    UINT Height;
-    UINT Depth;
-    UINT RowPitch;
-} D3D12_SUBRESOURCE_FOOTPRINT;
-
-typedef struct D3D12_PLACED_SUBRESOURCE_FOOTPRINT
-{
-    UINT64 Offset;
-    D3D12_SUBRESOURCE_FOOTPRINT Footprint;
-} D3D12_PLACED_SUBRESOURCE_FOOTPRINT;
-
-typedef struct D3D12_TEXTURE_COPY_LOCATION
-{
-    ID3D12Resource *pResource;
-    D3D12_TEXTURE_COPY_TYPE Type;
-    union
-    {
-        D3D12_PLACED_SUBRESOURCE_FOOTPRINT PlacedFootprint;
-        UINT SubresourceIndex;
-    };
-} D3D12_TEXTURE_COPY_LOCATION;
-
-typedef enum D3D12_DESCRIPTOR_RANGE_TYPE
-{
-    D3D12_DESCRIPTOR_RANGE_TYPE_SRV = 0,
-    D3D12_DESCRIPTOR_RANGE_TYPE_UAV = 1,
-    D3D12_DESCRIPTOR_RANGE_TYPE_CBV = 2,
-    D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER = 3,
-} D3D12_DESCRIPTOR_RANGE_TYPE;
-
-typedef struct D3D12_DESCRIPTOR_RANGE
-{
-    D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
-    UINT NumDescriptors;
-    UINT BaseShaderRegister;
-    UINT RegisterSpace;
-    UINT OffsetInDescriptorsFromTableStart;
-} D3D12_DESCRIPTOR_RANGE;
-
-typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS
-{
-    D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
-} D3D12_DESCRIPTOR_RANGE_FLAGS;
-
-typedef struct D3D12_DESCRIPTOR_RANGE1
-{
-    D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
-    UINT NumDescriptors;
-    UINT BaseShaderRegister;
-    UINT RegisterSpace;
-    D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
-    UINT OffsetInDescriptorsFromTableStart;
-} D3D12_DESCRIPTOR_RANGE1;
-
-typedef struct D3D12_ROOT_DESCRIPTOR_TABLE
-{
-    UINT NumDescriptorRanges;
-    const D3D12_DESCRIPTOR_RANGE *pDescriptorRanges;
-} D3D12_ROOT_DESCRIPTOR_TABLE;
-
-typedef struct D3D12_ROOT_DESCRIPTOR_TABLE1
-{
-    UINT NumDescriptorRanges;
-    const D3D12_DESCRIPTOR_RANGE1 *pDescriptorRanges;
-} D3D12_ROOT_DESCRIPTOR_TABLE1;
-
-typedef struct D3D12_ROOT_CONSTANTS
-{
-    UINT ShaderRegister;
-    UINT RegisterSpace;
-    UINT Num32BitValues;
-} D3D12_ROOT_CONSTANTS;
-
-typedef struct D3D12_ROOT_DESCRIPTOR
-{
-    UINT ShaderRegister;
-    UINT RegisterSpace;
-} D3D12_ROOT_DESCRIPTOR;
-
-typedef enum D3D12_ROOT_DESCRIPTOR_FLAGS
-{
-    D3D12_ROOT_DESCRIPTOR_FLAG_NONE = 0,
-} D3D12_ROOT_DESCRIPTOR_FLAGS;
-
-typedef struct D3D12_ROOT_DESCRIPTOR1
-{
-    UINT ShaderRegister;
-    UINT RegisterSpace;
-    D3D12_ROOT_DESCRIPTOR_FLAGS Flags;
-} D3D12_ROOT_DESCRIPTOR1;
-
-typedef enum D3D12_ROOT_PARAMETER_TYPE
-{
-    D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE = 0,
-    D3D12_ROOT_PARAMETER_TYPE_32BIT_CONSTANTS = 1,
-    D3D12_ROOT_PARAMETER_TYPE_CBV = 2,
-    D3D12_ROOT_PARAMETER_TYPE_SRV = 3,
-    D3D12_ROOT_PARAMETER_TYPE_UAV = 4,
-} D3D12_ROOT_PARAMETER_TYPE;
-
-typedef enum D3D12_SHADER_VISIBILITY
-{
-    D3D12_SHADER_VISIBILITY_ALL = 0,
-    D3D12_SHADER_VISIBILITY_VERTEX = 1,
-    D3D12_SHADER_VISIBILITY_HULL = 2,
-    D3D12_SHADER_VISIBILITY_DOMAIN = 3,
-    D3D12_SHADER_VISIBILITY_GEOMETRY = 4,
-    D3D12_SHADER_VISIBILITY_PIXEL = 5,
-} D3D12_SHADER_VISIBILITY;
-
-typedef struct D3D12_ROOT_PARAMETER
-{
-    D3D12_ROOT_PARAMETER_TYPE ParameterType;
-    union
-    {
-        D3D12_ROOT_DESCRIPTOR_TABLE DescriptorTable;
-        D3D12_ROOT_CONSTANTS Constants;
-        D3D12_ROOT_DESCRIPTOR Descriptor;
-    };
-    D3D12_SHADER_VISIBILITY ShaderVisibility;
-} D3D12_ROOT_PARAMETER;
-
-typedef struct D3D12_ROOT_PARAMETER1
-{
-    D3D12_ROOT_PARAMETER_TYPE ParameterType;
-    union
-    {
-        D3D12_ROOT_DESCRIPTOR_TABLE1 DescriptorTable;
-        D3D12_ROOT_CONSTANTS Constants;
-        D3D12_ROOT_DESCRIPTOR1 Descriptor;
-    };
-    D3D12_SHADER_VISIBILITY ShaderVisibility;
-} D3D12_ROOT_PARAMETER1;
-
-typedef enum D3D12_STATIC_BORDER_COLOR
-{
-    D3D12_STATIC_BORDER_COLOR_TRANSPARENT_BLACK = 0,
-    D3D12_STATIC_BORDER_COLOR_OPAQUE_BLACK = 1,
-    D3D12_STATIC_BORDER_COLOR_OPAQUE_WHITE = 2,
-} D3D12_STATIC_BORDER_COLOR;
-
-typedef enum D3D12_FILTER
-{
-    D3D12_FILTER_MIN_MAG_MIP_POINT = 0x00,
-    D3D12_FILTER_MIN_MAG_POINT_MIP_LINEAR = 0x01,
-    D3D12_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x04,
-    D3D12_FILTER_MIN_POINT_MAG_MIP_LINEAR = 0x05,
-    D3D12_FILTER_MIN_LINEAR_MAG_MIP_POINT = 0x10,
-    D3D12_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x11,
-    D3D12_FILTER_MIN_MAG_LINEAR_MIP_POINT = 0x14,
-    D3D12_FILTER_MIN_MAG_MIP_LINEAR = 0x15,
-    D3D12_FILTER_ANISOTROPIC = 0x55,
-    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_POINT = 0x80,
-    D3D12_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR = 0x81,
-    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x84,
-    D3D12_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR = 0x85,
-    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT = 0x90,
-    D3D12_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x91,
-    D3D12_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT = 0x94,
-    D3D12_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR = 0x95,
-    D3D12_FILTER_COMPARISON_ANISOTROPIC = 0xd5,
-    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_POINT = 0x100,
-    D3D12_FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x101,
-    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x104,
-    D3D12_FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x105,
-    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x110,
-    D3D12_FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x111,
-    D3D12_FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x114,
-    D3D12_FILTER_MINIMUM_MIN_MAG_MIP_LINEAR = 0x115,
-    D3D12_FILTER_MINIMUM_ANISOTROPIC = 0x155,
-    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_POINT = 0x180,
-    D3D12_FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR = 0x181,
-    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT = 0x184,
-    D3D12_FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR = 0x185,
-    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT = 0x190,
-    D3D12_FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR = 0x191,
-    D3D12_FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT = 0x194,
-    D3D12_FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR = 0x195,
-    D3D12_FILTER_MAXIMUM_ANISOTROPIC = 0x1d5,
-} D3D12_FILTER;
-
-typedef enum D3D12_FILTER_TYPE
-{
-    D3D12_FILTER_TYPE_POINT = 0,
-    D3D12_FILTER_TYPE_LINEAR = 1,
-} D3D12_FILTER_TYPE;
-
-const UINT D3D12_MIP_FILTER_SHIFT = 0;
-const UINT D3D12_MAG_FILTER_SHIFT = 2;
-const UINT D3D12_MIN_FILTER_SHIFT = 4;
-const UINT D3D12_FILTER_TYPE_MASK = 0x3;
-
-const UINT D3D12_ANISOTROPIC_FILTERING_BIT = 0x40;
-
-typedef enum D3D12_FILTER_REDUCTION_TYPE
-{
-    D3D12_FILTER_REDUCTION_TYPE_STANDARD = 0,
-    D3D12_FILTER_REDUCTION_TYPE_COMPARISON = 1,
-    D3D12_FILTER_REDUCTION_TYPE_MINIMUM = 2,
-    D3D12_FILTER_REDUCTION_TYPE_MAXIMUM = 3,
-} D3D12_FILTER_REDUCTION_TYPE;
-
-const UINT D3D12_FILTER_REDUCTION_TYPE_MASK = 0x3;
-const UINT D3D12_FILTER_REDUCTION_TYPE_SHIFT = 7;
-
-cpp_quote("#define D3D12_DECODE_MAG_FILTER(filter) \\")
-cpp_quote("    ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MAG_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))")
-
-cpp_quote("#define D3D12_DECODE_MIN_FILTER(filter) \\")
-cpp_quote("    ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIN_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))")
-
-cpp_quote("#define D3D12_DECODE_MIP_FILTER(filter) \\")
-cpp_quote("    ((D3D12_FILTER_TYPE)(((filter) >> D3D12_MIP_FILTER_SHIFT) & D3D12_FILTER_TYPE_MASK))")
-
-cpp_quote("#define D3D12_DECODE_IS_ANISOTROPIC_FILTER(filter)  \\")
-cpp_quote("    (((filter) & D3D12_ANISOTROPIC_FILTERING_BIT) \\")
-cpp_quote("    && (D3D12_DECODE_MIN_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \\")
-cpp_quote("    && (D3D12_DECODE_MAG_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR) \\")
-cpp_quote("    && (D3D12_DECODE_MIP_FILTER(filter) == D3D12_FILTER_TYPE_LINEAR))")
-
-cpp_quote("#define D3D12_DECODE_FILTER_REDUCTION(filter) \\")
-cpp_quote("    ((D3D12_FILTER_REDUCTION_TYPE)(((filter) >> D3D12_FILTER_REDUCTION_TYPE_SHIFT) \\")
-cpp_quote("    & D3D12_FILTER_REDUCTION_TYPE_MASK))")
-
-cpp_quote("#define D3D12_DECODE_IS_COMPARISON_FILTER(filter) \\")
-cpp_quote("    (D3D12_DECODE_FILTER_REDUCTION(filter) == D3D12_FILTER_REDUCTION_TYPE_COMPARISON)")
-
-typedef enum D3D12_TEXTURE_ADDRESS_MODE
-{
-    D3D12_TEXTURE_ADDRESS_MODE_WRAP = 1,
-    D3D12_TEXTURE_ADDRESS_MODE_MIRROR = 2,
-    D3D12_TEXTURE_ADDRESS_MODE_CLAMP = 3,
-    D3D12_TEXTURE_ADDRESS_MODE_BORDER = 4,
-    D3D12_TEXTURE_ADDRESS_MODE_MIRROR_ONCE = 5,
-} D3D12_TEXTURE_ADDRESS_MODE;
-
-typedef enum D3D12_COMPARISON_FUNC
-{
-    D3D12_COMPARISON_FUNC_NEVER = 1,
-    D3D12_COMPARISON_FUNC_LESS = 2,
-    D3D12_COMPARISON_FUNC_EQUAL = 3,
-    D3D12_COMPARISON_FUNC_LESS_EQUAL = 4,
-    D3D12_COMPARISON_FUNC_GREATER = 5,
-    D3D12_COMPARISON_FUNC_NOT_EQUAL = 6,
-    D3D12_COMPARISON_FUNC_GREATER_EQUAL = 7,
-    D3D12_COMPARISON_FUNC_ALWAYS = 8,
-} D3D12_COMPARISON_FUNC;
-
-typedef struct D3D12_STATIC_SAMPLER_DESC
-{
-    D3D12_FILTER Filter;
-    D3D12_TEXTURE_ADDRESS_MODE AddressU;
-    D3D12_TEXTURE_ADDRESS_MODE AddressV;
-    D3D12_TEXTURE_ADDRESS_MODE AddressW;
-    FLOAT MipLODBias;
-    UINT MaxAnisotropy;
-    D3D12_COMPARISON_FUNC ComparisonFunc;
-    D3D12_STATIC_BORDER_COLOR BorderColor;
-    FLOAT MinLOD;
-    FLOAT MaxLOD;
-    UINT ShaderRegister;
-    UINT RegisterSpace;
-    D3D12_SHADER_VISIBILITY ShaderVisibility;
-} D3D12_STATIC_SAMPLER_DESC;
-
-typedef enum D3D12_ROOT_SIGNATURE_FLAGS
-{
-    D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x00,
-    D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x01,
-    D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x02,
-    D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x04,
-    D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x08,
-    D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,
-    D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,
-    D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,
-} D3D12_ROOT_SIGNATURE_FLAGS;
-
-typedef struct D3D12_ROOT_SIGNATURE_DESC
-{
-    UINT NumParameters;
-    const D3D12_ROOT_PARAMETER *pParameters;
-    UINT NumStaticSamplers;
-    const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
-    D3D12_ROOT_SIGNATURE_FLAGS Flags;
-} D3D12_ROOT_SIGNATURE_DESC;
-
-typedef struct D3D12_ROOT_SIGNATURE_DESC1
-{
-    UINT NumParameters;
-    const D3D12_ROOT_PARAMETER1 *pParameters;
-    UINT NumStaticSamplers;
-    const D3D12_STATIC_SAMPLER_DESC *pStaticSamplers;
-    D3D12_ROOT_SIGNATURE_FLAGS Flags;
-} D3D12_ROOT_SIGNATURE_DESC1;
-
-typedef enum D3D_ROOT_SIGNATURE_VERSION
-{
-    D3D_ROOT_SIGNATURE_VERSION_1 = 0x1,
-    D3D_ROOT_SIGNATURE_VERSION_1_0 = 0x1,
-    D3D_ROOT_SIGNATURE_VERSION_1_1 = 0x2,
-} D3D_ROOT_SIGNATURE_VERSION;
-
-typedef struct D3D12_VERSIONED_ROOT_SIGNATURE_DESC
-{
-    D3D_ROOT_SIGNATURE_VERSION Version;
-    union
-    {
-        D3D12_ROOT_SIGNATURE_DESC Desc_1_0;
-        D3D12_ROOT_SIGNATURE_DESC1 Desc_1_1;
-    };
-} D3D12_VERSIONED_ROOT_SIGNATURE_DESC;
-
-typedef enum D3D12_DESCRIPTOR_HEAP_TYPE
-{
-    D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV,
-    D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER,
-    D3D12_DESCRIPTOR_HEAP_TYPE_RTV,
-    D3D12_DESCRIPTOR_HEAP_TYPE_DSV,
-    D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES,
-} D3D12_DESCRIPTOR_HEAP_TYPE;
-
-typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS
-{
-    D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0x0,
-    D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 0x1,
-} D3D12_DESCRIPTOR_HEAP_FLAGS;
-
-typedef struct D3D12_DESCRIPTOR_HEAP_DESC
-{
-    D3D12_DESCRIPTOR_HEAP_TYPE Type;
-    UINT NumDescriptors;
-    D3D12_DESCRIPTOR_HEAP_FLAGS Flags;
-    UINT NodeMask;
-} D3D12_DESCRIPTOR_HEAP_DESC;
-
-typedef UINT64 D3D12_GPU_VIRTUAL_ADDRESS;
-
-typedef struct D3D12_CONSTANT_BUFFER_VIEW_DESC
-{
-    D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
-    UINT SizeInBytes;
-} D3D12_CONSTANT_BUFFER_VIEW_DESC;
-
-typedef enum D3D12_SRV_DIMENSION
-{
-    D3D12_SRV_DIMENSION_UNKNOWN = 0,
-    D3D12_SRV_DIMENSION_BUFFER = 1,
-    D3D12_SRV_DIMENSION_TEXTURE1D = 2,
-    D3D12_SRV_DIMENSION_TEXTURE1DARRAY = 3,
-    D3D12_SRV_DIMENSION_TEXTURE2D = 4,
-    D3D12_SRV_DIMENSION_TEXTURE2DARRAY = 5,
-    D3D12_SRV_DIMENSION_TEXTURE2DMS = 6,
-    D3D12_SRV_DIMENSION_TEXTURE2DMSARRAY = 7,
-    D3D12_SRV_DIMENSION_TEXTURE3D = 8,
-    D3D12_SRV_DIMENSION_TEXTURECUBE = 9,
-    D3D12_SRV_DIMENSION_TEXTURECUBEARRAY = 10,
-} D3D12_SRV_DIMENSION;
-
-typedef enum D3D12_BUFFER_SRV_FLAGS
-{
-    D3D12_BUFFER_SRV_FLAG_NONE = 0x0,
-    D3D12_BUFFER_SRV_FLAG_RAW = 0x1,
-} D3D12_BUFFER_SRV_FLAGS;
-
-typedef enum D3D12_SHADER_COMPONENT_MAPPING
-{
-    D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
-    D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
-    D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
-    D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
-    D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
-    D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5,
-} D3D12_SHADER_COMPONENT_MAPPING;
-
-cpp_quote("#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(x, y, z, w) \\")
-cpp_quote("        (((x) & D3D12_SHADER_COMPONENT_MAPPING_MASK) \\")
-cpp_quote("        | (((y) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << D3D12_SHADER_COMPONENT_MAPPING_SHIFT) \\")
-cpp_quote("        | (((z) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 2)) \\")
-cpp_quote("        | (((w) & D3D12_SHADER_COMPONENT_MAPPING_MASK) << (D3D12_SHADER_COMPONENT_MAPPING_SHIFT * 3)) \\")
-cpp_quote("        | D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES)")
-cpp_quote("#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0, 1, 2, 3)")
-
-typedef struct D3D12_BUFFER_SRV
-{
-    UINT64 FirstElement;
-    UINT NumElements;
-    UINT StructureByteStride;
-    D3D12_BUFFER_SRV_FLAGS Flags;
-} D3D12_BUFFER_SRV;
-
-typedef struct D3D12_TEX1D_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    FLOAT ResourceMinLODClamp;
-} D3D12_TEX1D_SRV;
-
-typedef struct D3D12_TEX1D_ARRAY_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-    FLOAT ResourceMinLODClamp;
-} D3D12_TEX1D_ARRAY_SRV;
-
-typedef struct D3D12_TEX2D_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT PlaneSlice;
-    FLOAT ResourceMinLODClamp;
-} D3D12_TEX2D_SRV;
-
-typedef struct D3D12_TEX2D_ARRAY_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-    UINT PlaneSlice;
-    FLOAT ResourceMinLODClamp;
-} D3D12_TEX2D_ARRAY_SRV;
-
-typedef struct D3D12_TEX2DMS_SRV
-{
-    UINT UnusedField_NothingToDefine;
-} D3D12_TEX2DMS_SRV;
-
-typedef struct D3D12_TEX2DMS_ARRAY_SRV
-{
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D12_TEX2DMS_ARRAY_SRV;
-
-typedef struct D3D12_TEX3D_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    FLOAT ResourceMinLODClamp;
-} D3D12_TEX3D_SRV;
-
-typedef struct D3D12_TEXCUBE_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    FLOAT ResourceMinLODClamp;
-} D3D12_TEXCUBE_SRV;
-
-typedef struct D3D12_TEXCUBE_ARRAY_SRV
-{
-    UINT MostDetailedMip;
-    UINT MipLevels;
-    UINT First2DArrayFace;
-    UINT NumCubes;
-    FLOAT ResourceMinLODClamp;
-} D3D12_TEXCUBE_ARRAY_SRV;
-
-typedef struct D3D12_SHADER_RESOURCE_VIEW_DESC
-{
-    DXGI_FORMAT Format;
-    D3D12_SRV_DIMENSION ViewDimension;
-    UINT Shader4ComponentMapping;
-    union
-    {
-        D3D12_BUFFER_SRV Buffer;
-        D3D12_TEX1D_SRV Texture1D;
-        D3D12_TEX1D_ARRAY_SRV Texture1DArray;
-        D3D12_TEX2D_SRV Texture2D;
-        D3D12_TEX2D_ARRAY_SRV Texture2DArray;
-        D3D12_TEX2DMS_SRV Texture2DMS;
-        D3D12_TEX2DMS_ARRAY_SRV Texture2DMSArray;
-        D3D12_TEX3D_SRV Texture3D;
-        D3D12_TEXCUBE_SRV TextureCube;
-        D3D12_TEXCUBE_ARRAY_SRV TextureCubeArray;
-    };
-} D3D12_SHADER_RESOURCE_VIEW_DESC;
-
-typedef enum D3D12_UAV_DIMENSION
-{
-    D3D12_UAV_DIMENSION_UNKNOWN = 0,
-    D3D12_UAV_DIMENSION_BUFFER = 1,
-    D3D12_UAV_DIMENSION_TEXTURE1D = 2,
-    D3D12_UAV_DIMENSION_TEXTURE1DARRAY = 3,
-    D3D12_UAV_DIMENSION_TEXTURE2D = 4,
-    D3D12_UAV_DIMENSION_TEXTURE2DARRAY = 5,
-    D3D12_UAV_DIMENSION_TEXTURE3D = 8,
-} D3D12_UAV_DIMENSION;
-
-typedef enum D3D12_BUFFER_UAV_FLAGS
-{
-    D3D12_BUFFER_UAV_FLAG_NONE = 0x0,
-    D3D12_BUFFER_UAV_FLAG_RAW = 0x1,
-} D3D12_BUFFER_UAV_FLAGS;
-
-typedef struct D3D12_BUFFER_UAV
-{
-    UINT64 FirstElement;
-    UINT NumElements;
-    UINT StructureByteStride;
-    UINT64 CounterOffsetInBytes;
-    D3D12_BUFFER_UAV_FLAGS Flags;
-} D3D12_BUFFER_UAV;
-
-typedef struct D3D12_TEX1D_UAV
-{
-    UINT MipSlice;
-} D3D12_TEX1D_UAV;
-
-typedef struct D3D12_TEX1D_ARRAY_UAV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D12_TEX1D_ARRAY_UAV;
-
-typedef struct D3D12_TEX2D_UAV
-{
-    UINT MipSlice;
-    UINT PlaneSlice;
-} D3D12_TEX2D_UAV;
-
-typedef struct D3D12_TEX2D_ARRAY_UAV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-    UINT PlaneSlice;
-} D3D12_TEX2D_ARRAY_UAV;
-
-typedef struct D3D12_TEX3D_UAV
-{
-    UINT MipSlice;
-    UINT FirstWSlice;
-    UINT WSize;
-} D3D12_TEX3D_UAV;
-
-typedef struct D3D12_UNORDERED_ACCESS_VIEW_DESC
-{
-    DXGI_FORMAT Format;
-    D3D12_UAV_DIMENSION ViewDimension;
-    union
-    {
-        D3D12_BUFFER_UAV Buffer;
-        D3D12_TEX1D_UAV Texture1D;
-        D3D12_TEX1D_ARRAY_UAV Texture1DArray;
-        D3D12_TEX2D_UAV Texture2D;
-        D3D12_TEX2D_ARRAY_UAV Texture2DArray;
-        D3D12_TEX3D_UAV Texture3D;
-    };
-} D3D12_UNORDERED_ACCESS_VIEW_DESC;
-
-typedef enum D3D12_RTV_DIMENSION
-{
-    D3D12_RTV_DIMENSION_UNKNOWN = 0,
-    D3D12_RTV_DIMENSION_BUFFER = 1,
-    D3D12_RTV_DIMENSION_TEXTURE1D = 2,
-    D3D12_RTV_DIMENSION_TEXTURE1DARRAY = 3,
-    D3D12_RTV_DIMENSION_TEXTURE2D = 4,
-    D3D12_RTV_DIMENSION_TEXTURE2DARRAY = 5,
-    D3D12_RTV_DIMENSION_TEXTURE2DMS = 6,
-    D3D12_RTV_DIMENSION_TEXTURE2DMSARRAY = 7,
-    D3D12_RTV_DIMENSION_TEXTURE3D = 8,
-} D3D12_RTV_DIMENSION;
-
-typedef struct D3D12_BUFFER_RTV
-{
-    UINT64 FirstElement;
-    UINT NumElements;
-} D3D12_BUFFER_RTV;
-
-typedef struct D3D12_TEX1D_RTV
-{
-    UINT MipSlice;
-} D3D12_TEX1D_RTV;
-
-typedef struct D3D12_TEX1D_ARRAY_RTV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D12_TEX1D_ARRAY_RTV;
-
-typedef struct D3D12_TEX2D_RTV
-{
-    UINT MipSlice;
-    UINT PlaneSlice;
-} D3D12_TEX2D_RTV;
-
-typedef struct D3D12_TEX2D_ARRAY_RTV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-    UINT PlaneSlice;
-} D3D12_TEX2D_ARRAY_RTV;
-
-typedef struct D3D12_TEX2DMS_RTV
-{
-    UINT UnusedField_NothingToDefine;
-} D3D12_TEX2DMS_RTV;
-
-typedef struct D3D12_TEX2DMS_ARRAY_RTV
-{
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D12_TEX2DMS_ARRAY_RTV;
-
-typedef struct D3D12_TEX3D_RTV
-{
-    UINT MipSlice;
-    UINT FirstWSlice;
-    UINT WSize;
-} D3D12_TEX3D_RTV;
-
-typedef struct D3D12_RENDER_TARGET_VIEW_DESC
-{
-    DXGI_FORMAT Format;
-    D3D12_RTV_DIMENSION ViewDimension;
-    union
-    {
-        D3D12_BUFFER_RTV Buffer;
-        D3D12_TEX1D_RTV Texture1D;
-        D3D12_TEX1D_ARRAY_RTV Texture1DArray;
-        D3D12_TEX2D_RTV Texture2D;
-        D3D12_TEX2D_ARRAY_RTV Texture2DArray;
-        D3D12_TEX2DMS_RTV Texture2DMS;
-        D3D12_TEX2DMS_ARRAY_RTV Texture2DMSArray;
-        D3D12_TEX3D_RTV Texture3D;
-    };
-} D3D12_RENDER_TARGET_VIEW_DESC;
-
-typedef enum D3D12_DSV_DIMENSION
-{
-    D3D12_DSV_DIMENSION_UNKNOWN = 0,
-    D3D12_DSV_DIMENSION_TEXTURE1D = 1,
-    D3D12_DSV_DIMENSION_TEXTURE1DARRAY = 2,
-    D3D12_DSV_DIMENSION_TEXTURE2D = 3,
-    D3D12_DSV_DIMENSION_TEXTURE2DARRAY = 4,
-    D3D12_DSV_DIMENSION_TEXTURE2DMS = 5,
-    D3D12_DSV_DIMENSION_TEXTURE2DMSARRAY = 6,
-} D3D12_DSV_DIMENSION;
-
-typedef enum D3D12_DSV_FLAGS
-{
-    D3D12_DSV_FLAG_NONE = 0x0,
-    D3D12_DSV_FLAG_READ_ONLY_DEPTH = 0x1,
-    D3D12_DSV_FLAG_READ_ONLY_STENCIL = 0x2,
-} D3D12_DSV_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_DSV_FLAGS);")
-
-typedef struct D3D12_TEX1D_DSV
-{
-    UINT MipSlice;
-} D3D12_TEX1D_DSV;
-
-typedef struct D3D12_TEX1D_ARRAY_DSV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D12_TEX1D_ARRAY_DSV;
-
-typedef struct D3D12_TEX2D_DSV
-{
-    UINT MipSlice;
-} D3D12_TEX2D_DSV;
-
-typedef struct D3D12_TEX2D_ARRAY_DSV
-{
-    UINT MipSlice;
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D12_TEX2D_ARRAY_DSV;
-
-typedef struct D3D12_TEX2DMS_DSV
-{
-    UINT UnusedField_NothingToDefine;
-} D3D12_TEX2DMS_DSV;
-
-typedef struct D3D12_TEX2DMS_ARRAY_DSV
-{
-    UINT FirstArraySlice;
-    UINT ArraySize;
-} D3D12_TEX2DMS_ARRAY_DSV;
-
-typedef struct D3D12_DEPTH_STENCIL_VIEW_DESC
-{
-    DXGI_FORMAT Format;
-    D3D12_DSV_DIMENSION ViewDimension;
-    D3D12_DSV_FLAGS Flags;
-    union
-    {
-        D3D12_TEX1D_DSV Texture1D;
-        D3D12_TEX1D_ARRAY_DSV Texture1DArray;
-        D3D12_TEX2D_DSV Texture2D;
-        D3D12_TEX2D_ARRAY_DSV Texture2DArray;
-        D3D12_TEX2DMS_DSV Texture2DMS;
-        D3D12_TEX2DMS_ARRAY_DSV Texture2DMSArray;
-    };
-} D3D12_DEPTH_STENCIL_VIEW_DESC;
-
-typedef struct D3D12_SAMPLER_DESC
-{
-    D3D12_FILTER Filter;
-    D3D12_TEXTURE_ADDRESS_MODE AddressU;
-    D3D12_TEXTURE_ADDRESS_MODE AddressV;
-    D3D12_TEXTURE_ADDRESS_MODE AddressW;
-    FLOAT MipLODBias;
-    UINT MaxAnisotropy;
-    D3D12_COMPARISON_FUNC ComparisonFunc;
-    FLOAT BorderColor[4];
-    FLOAT MinLOD;
-    FLOAT MaxLOD;
-} D3D12_SAMPLER_DESC;
-
-typedef struct D3D12_CPU_DESCRIPTOR_HANDLE
-{
-    SIZE_T ptr;
-} D3D12_CPU_DESCRIPTOR_HANDLE;
-
-typedef struct D3D12_GPU_DESCRIPTOR_HANDLE
-{
-    UINT64 ptr;
-} D3D12_GPU_DESCRIPTOR_HANDLE;
-
-typedef enum D3D12_STENCIL_OP
-{
-    D3D12_STENCIL_OP_KEEP = 1,
-    D3D12_STENCIL_OP_ZERO = 2,
-    D3D12_STENCIL_OP_REPLACE = 3,
-    D3D12_STENCIL_OP_INCR_SAT = 4,
-    D3D12_STENCIL_OP_DECR_SAT = 5,
-    D3D12_STENCIL_OP_INVERT = 6,
-    D3D12_STENCIL_OP_INCR = 7,
-    D3D12_STENCIL_OP_DECR = 8,
-} D3D12_STENCIL_OP;
-
-typedef struct D3D12_DEPTH_STENCILOP_DESC
-{
-    D3D12_STENCIL_OP StencilFailOp;
-    D3D12_STENCIL_OP StencilDepthFailOp;
-    D3D12_STENCIL_OP StencilPassOp;
-    D3D12_COMPARISON_FUNC StencilFunc;
-} D3D12_DEPTH_STENCILOP_DESC;
-
-typedef enum D3D12_DEPTH_WRITE_MASK
-{
-    D3D12_DEPTH_WRITE_MASK_ZERO = 0,
-    D3D12_DEPTH_WRITE_MASK_ALL = 1,
-} D3D12_DEPTH_WRITE_MASK;
-
-typedef struct D3D12_DEPTH_STENCIL_DESC
-{
-    BOOL DepthEnable;
-    D3D12_DEPTH_WRITE_MASK DepthWriteMask;
-    D3D12_COMPARISON_FUNC DepthFunc;
-    BOOL StencilEnable;
-    UINT8 StencilReadMask;
-    UINT8 StencilWriteMask;
-    D3D12_DEPTH_STENCILOP_DESC FrontFace;
-    D3D12_DEPTH_STENCILOP_DESC BackFace;
-} D3D12_DEPTH_STENCIL_DESC;
-
-typedef enum D3D12_BLEND
-{
-    D3D12_BLEND_ZERO = 1,
-    D3D12_BLEND_ONE = 2,
-    D3D12_BLEND_SRC_COLOR = 3,
-    D3D12_BLEND_INV_SRC_COLOR = 4,
-    D3D12_BLEND_SRC_ALPHA = 5,
-    D3D12_BLEND_INV_SRC_ALPHA = 6,
-    D3D12_BLEND_DEST_ALPHA = 7,
-    D3D12_BLEND_INV_DEST_ALPHA = 8,
-    D3D12_BLEND_DEST_COLOR = 9,
-    D3D12_BLEND_INV_DEST_COLOR = 10,
-    D3D12_BLEND_SRC_ALPHA_SAT = 11,
-    D3D12_BLEND_BLEND_FACTOR = 14,
-    D3D12_BLEND_INV_BLEND_FACTOR = 15,
-    D3D12_BLEND_SRC1_COLOR = 16,
-    D3D12_BLEND_INV_SRC1_COLOR = 17,
-    D3D12_BLEND_SRC1_ALPHA = 18,
-    D3D12_BLEND_INV_SRC1_ALPHA = 19,
-} D3D12_BLEND;
-
-typedef enum D3D12_BLEND_OP
-{
-    D3D12_BLEND_OP_ADD = 1,
-    D3D12_BLEND_OP_SUBTRACT = 2,
-    D3D12_BLEND_OP_REV_SUBTRACT = 3,
-    D3D12_BLEND_OP_MIN = 4,
-    D3D12_BLEND_OP_MAX = 5,
-} D3D12_BLEND_OP;
-
-typedef enum D3D12_LOGIC_OP
-{
-    D3D12_LOGIC_OP_CLEAR = 0,
-    D3D12_LOGIC_OP_SET = 1,
-    D3D12_LOGIC_OP_COPY = 2,
-    D3D12_LOGIC_OP_COPY_INVERTED = 3,
-    D3D12_LOGIC_OP_NOOP = 4,
-} D3D12_LOGIC_OP;
-
-typedef enum D3D12_COLOR_WRITE_ENABLE
-{
-    D3D12_COLOR_WRITE_ENABLE_RED = 0x1,
-    D3D12_COLOR_WRITE_ENABLE_GREEN = 0x2,
-    D3D12_COLOR_WRITE_ENABLE_BLUE = 0x4,
-    D3D12_COLOR_WRITE_ENABLE_ALPHA = 0x8,
-    D3D12_COLOR_WRITE_ENABLE_ALL = (D3D12_COLOR_WRITE_ENABLE_RED
-            | D3D12_COLOR_WRITE_ENABLE_GREEN | D3D12_COLOR_WRITE_ENABLE_BLUE
-            | D3D12_COLOR_WRITE_ENABLE_ALPHA),
-} D3D12_COLOR_WRITE_ENABLE;
-
-typedef struct D3D12_RENDER_TARGET_BLEND_DESC
-{
-    BOOL BlendEnable;
-    BOOL LogicOpEnable;
-    D3D12_BLEND SrcBlend;
-    D3D12_BLEND DestBlend;
-    D3D12_BLEND_OP BlendOp;
-    D3D12_BLEND SrcBlendAlpha;
-    D3D12_BLEND DestBlendAlpha;
-    D3D12_BLEND_OP BlendOpAlpha;
-    D3D12_LOGIC_OP LogicOp;
-    UINT8 RenderTargetWriteMask;
-} D3D12_RENDER_TARGET_BLEND_DESC;
-
-typedef struct D3D12_BLEND_DESC
-{
-    BOOL AlphaToCoverageEnable;
-    BOOL IndependentBlendEnable;
-    D3D12_RENDER_TARGET_BLEND_DESC RenderTarget[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT];
-} D3D12_BLEND_DESC;
-
-typedef enum D3D12_FILL_MODE
-{
-    D3D12_FILL_MODE_WIREFRAME = 2,
-    D3D12_FILL_MODE_SOLID = 3,
-} D3D12_FILL_MODE;
-
-typedef enum D3D12_CULL_MODE
-{
-    D3D12_CULL_MODE_NONE = 1,
-    D3D12_CULL_MODE_FRONT = 2,
-    D3D12_CULL_MODE_BACK = 3,
-} D3D12_CULL_MODE;
-
-typedef enum D3D12_CONSERVATIVE_RASTERIZATION_MODE
-{
-    D3D12_CONSERVATIVE_RASTERIZATION_MODE_OFF = 0,
-    D3D12_CONSERVATIVE_RASTERIZATION_MODE_ON = 1,
-} D3D12_CONSERVATIVE_RASTERIZATION_MODE;
-
-typedef struct D3D12_RASTERIZER_DESC
-{
-    D3D12_FILL_MODE FillMode;
-    D3D12_CULL_MODE CullMode;
-    BOOL FrontCounterClockwise;
-    INT DepthBias;
-    FLOAT DepthBiasClamp;
-    FLOAT SlopeScaledDepthBias;
-    BOOL DepthClipEnable;
-    BOOL MultisampleEnable;
-    BOOL AntialiasedLineEnable;
-    UINT ForcedSampleCount;
-    D3D12_CONSERVATIVE_RASTERIZATION_MODE ConservativeRaster;
-} D3D12_RASTERIZER_DESC;
-
-typedef struct D3D12_SO_DECLARATION_ENTRY
-{
-    UINT Stream;
-    const char *SemanticName;
-    UINT SemanticIndex;
-    BYTE StartComponent;
-    BYTE ComponentCount;
-    BYTE OutputSlot;
-} D3D12_SO_DECLARATION_ENTRY;
-
-typedef struct D3D12_STREAM_OUTPUT_DESC
-{
-    const D3D12_SO_DECLARATION_ENTRY *pSODeclaration;
-    UINT NumEntries;
-    const UINT *pBufferStrides;
-    UINT NumStrides;
-    UINT RasterizedStream;
-} D3D12_STREAM_OUTPUT_DESC;
-
-typedef enum D3D12_INPUT_CLASSIFICATION
-{
-    D3D12_INPUT_CLASSIFICATION_PER_VERTEX_DATA = 0,
-    D3D12_INPUT_CLASSIFICATION_PER_INSTANCE_DATA = 1,
-} D3D12_INPUT_CLASSIFICATION;
-
-typedef struct D3D12_INPUT_ELEMENT_DESC
-{
-    const char *SemanticName;
-    UINT SemanticIndex;
-    DXGI_FORMAT Format;
-    UINT InputSlot;
-    UINT AlignedByteOffset;
-    D3D12_INPUT_CLASSIFICATION InputSlotClass;
-    UINT InstanceDataStepRate;
-} D3D12_INPUT_ELEMENT_DESC;
-
-typedef struct D3D12_INPUT_LAYOUT_DESC
-{
-    const D3D12_INPUT_ELEMENT_DESC *pInputElementDescs;
-    UINT NumElements;
-} D3D12_INPUT_LAYOUT_DESC;
-
-typedef enum D3D12_INDEX_BUFFER_STRIP_CUT_VALUE
-{
-    D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_DISABLED = 0,
-    D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFF = 1,
-    D3D12_INDEX_BUFFER_STRIP_CUT_VALUE_0xFFFFFFFF = 2,
-} D3D12_INDEX_BUFFER_STRIP_CUT_VALUE;
-
-typedef D3D_PRIMITIVE_TOPOLOGY D3D12_PRIMITIVE_TOPOLOGY;
-
-typedef enum D3D12_PRIMITIVE_TOPOLOGY_TYPE
-{
-    D3D12_PRIMITIVE_TOPOLOGY_TYPE_UNDEFINED = 0,
-    D3D12_PRIMITIVE_TOPOLOGY_TYPE_POINT = 1,
-    D3D12_PRIMITIVE_TOPOLOGY_TYPE_LINE = 2,
-    D3D12_PRIMITIVE_TOPOLOGY_TYPE_TRIANGLE = 3,
-    D3D12_PRIMITIVE_TOPOLOGY_TYPE_PATCH = 4,
-} D3D12_PRIMITIVE_TOPOLOGY_TYPE;
-
-typedef struct D3D12_CACHED_PIPELINE_STATE
-{
-    const void *pCachedBlob;
-    SIZE_T CachedBlobSizeInBytes;
-} D3D12_CACHED_PIPELINE_STATE;
-
-typedef enum D3D12_PIPELINE_STATE_FLAGS
-{
-    D3D12_PIPELINE_STATE_FLAG_NONE = 0x0,
-    D3D12_PIPELINE_STATE_FLAG_DEBUG = 0x1,
-} D3D12_PIPELINE_STATE_FLAGS;
-
-typedef struct D3D12_GRAPHICS_PIPELINE_STATE_DESC
-{
-    ID3D12RootSignature *pRootSignature;
-    D3D12_SHADER_BYTECODE VS;
-    D3D12_SHADER_BYTECODE PS;
-    D3D12_SHADER_BYTECODE DS;
-    D3D12_SHADER_BYTECODE HS;
-    D3D12_SHADER_BYTECODE GS;
-    D3D12_STREAM_OUTPUT_DESC StreamOutput;
-    D3D12_BLEND_DESC BlendState;
-    UINT SampleMask;
-    D3D12_RASTERIZER_DESC RasterizerState;
-    D3D12_DEPTH_STENCIL_DESC DepthStencilState;
-    D3D12_INPUT_LAYOUT_DESC InputLayout;
-    D3D12_INDEX_BUFFER_STRIP_CUT_VALUE IBStripCutValue;
-    D3D12_PRIMITIVE_TOPOLOGY_TYPE PrimitiveTopologyType;
-    UINT NumRenderTargets;
-    DXGI_FORMAT RTVFormats[D3D12_SIMULTANEOUS_RENDER_TARGET_COUNT];
-    DXGI_FORMAT DSVFormat;
-    DXGI_SAMPLE_DESC SampleDesc;
-    UINT NodeMask;
-    D3D12_CACHED_PIPELINE_STATE CachedPSO;
-    D3D12_PIPELINE_STATE_FLAGS Flags;
-} D3D12_GRAPHICS_PIPELINE_STATE_DESC;
-
-typedef struct D3D12_COMPUTE_PIPELINE_STATE_DESC
-{
-    ID3D12RootSignature *pRootSignature;
-    D3D12_SHADER_BYTECODE CS;
-    UINT NodeMask;
-    D3D12_CACHED_PIPELINE_STATE CachedPSO;
-    D3D12_PIPELINE_STATE_FLAGS Flags;
-} D3D12_COMPUTE_PIPELINE_STATE_DESC;
-
-typedef enum D3D12_COMMAND_LIST_TYPE
-{
-    D3D12_COMMAND_LIST_TYPE_DIRECT = 0,
-    D3D12_COMMAND_LIST_TYPE_BUNDLE = 1,
-    D3D12_COMMAND_LIST_TYPE_COMPUTE = 2,
-    D3D12_COMMAND_LIST_TYPE_COPY = 3,
-} D3D12_COMMAND_LIST_TYPE;
-
-typedef enum D3D12_COMMAND_QUEUE_PRIORITY
-{
-    D3D12_COMMAND_QUEUE_PRIORITY_NORMAL = 0,
-    D3D12_COMMAND_QUEUE_PRIORITY_HIGH = 100,
-} D3D12_COMMAND_QUEUE_PRIORITY;
-
-typedef enum D3D12_COMMAND_QUEUE_FLAGS
-{
-    D3D12_COMMAND_QUEUE_FLAG_NONE = 0x0,
-    D3D12_COMMAND_QUEUE_FLAG_DISABLE_GPU_TIMEOUT = 0x1,
-} D3D12_COMMAND_QUEUE_FLAGS;
-
-typedef struct D3D12_COMMAND_QUEUE_DESC
-{
-    D3D12_COMMAND_LIST_TYPE Type;
-    INT Priority;
-    D3D12_COMMAND_QUEUE_FLAGS Flags;
-    UINT NodeMask;
-} D3D12_COMMAND_QUEUE_DESC;
-
-typedef struct D3D12_FEATURE_DATA_ARCHITECTURE
-{
-    UINT NodeIndex;
-    BOOL TileBasedRenderer;
-    BOOL UMA;
-    BOOL CacheCoherentUMA;
-} D3D12_FEATURE_DATA_ARCHITECTURE;
-
-typedef struct D3D12_FEATURE_DATA_FORMAT_INFO
-{
-    DXGI_FORMAT Format;
-    UINT8 PlaneCount;
-} D3D12_FEATURE_DATA_FORMAT_INFO;
-
-typedef struct D3D12_FEATURE_DATA_FEATURE_LEVELS
-{
-    UINT NumFeatureLevels;
-    const D3D_FEATURE_LEVEL *pFeatureLevelsRequested;
-    D3D_FEATURE_LEVEL MaxSupportedFeatureLevel;
-} D3D12_FEATURE_DATA_FEATURE_LEVELS;
-
-typedef enum D3D12_FEATURE
-{
-    D3D12_FEATURE_D3D12_OPTIONS = 0,
-    D3D12_FEATURE_ARCHITECTURE = 1,
-    D3D12_FEATURE_FEATURE_LEVELS = 2,
-    D3D12_FEATURE_FORMAT_SUPPORT = 3,
-    D3D12_FEATURE_FORMAT_INFO = 4,
-    D3D12_FEATURE_GPU_VIRTUAL_ADDRESS_SUPPORT = 5,
-} D3D12_FEATURE;
-
-typedef struct D3D12_MEMCPY_DEST
-{
-    void *pData;
-    SIZE_T RowPitch;
-    SIZE_T SlicePitch;
-} D3D12_MEMCPY_DEST;
-
-typedef struct D3D12_SUBRESOURCE_DATA
-{
-    const void *pData;
-    LONG_PTR RowPitch;
-    LONG_PTR SlicePitch;
-} D3D12_SUBRESOURCE_DATA;
-
-[
-    uuid(c4fec28f-7966-4e95-9f94-f431cb56c3b8),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12Object : IUnknown
-{
-    HRESULT GetPrivateData(REFGUID guid, UINT *data_size, void *data);
-    HRESULT SetPrivateData(REFGUID guid, UINT data_size, const void *data);
-    HRESULT SetPrivateDataInterface(REFGUID guid, const IUnknown *data);
-    HRESULT SetName(const WCHAR *name);
-}
-
-[
-    uuid(905db94b-a00c-4140-9df5-2b64ca9ea357),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12DeviceChild : ID3D12Object
-{
-    HRESULT GetDevice(REFIID riid, void **device);
-}
-
-[
-    uuid(63ee58fb-1268-4835-86da-f008ce62f0d6),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12Pageable : ID3D12DeviceChild
-{
-}
-
-[
-    uuid(696442be-a72e-4059-bc79-5b5c98040fad),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12Resource : ID3D12Pageable
-{
-    HRESULT Map(UINT sub_resource, const D3D12_RANGE *read_range, void **data);
-    void Unmap(UINT sub_resource, const D3D12_RANGE *written_range);
-
-    D3D12_RESOURCE_DESC GetDesc();
-
-    D3D12_GPU_VIRTUAL_ADDRESS GetGPUVirtualAddress();
-
-    HRESULT WriteToSubresource(UINT dst_sub_resource, const D3D12_BOX *dst_box,
-            const void *src_data, UINT src_row_pitch, UINT src_slice_pitch);
-    HRESULT ReadFromSubresource(void *dst_data, UINT dst_row_pitch, UINT dst_slice_pitch,
-            UINT src_sub_resource, const D3D12_BOX *src_box);
-
-    HRESULT GetHeapProperties(D3D12_HEAP_PROPERTIES *heap_properties, D3D12_HEAP_FLAGS *flags);
-}
-
-[
-    uuid(7116d91c-e7e4-47ce-b8c6-ec8168f437e5),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12CommandList : ID3D12DeviceChild
-{
-    D3D12_COMMAND_LIST_TYPE GetType();
-}
-
-typedef enum D3D12_TILE_COPY_FLAGS
-{
-    D3D12_TILE_COPY_FLAG_NONE = 0x0,
-    D3D12_TILE_COPY_FLAG_NO_HAZARD = 0x1,
-    D3D12_TILE_COPY_FLAG_LINEAR_BUFFER_TO_SWIZZLED_TILED_RESOURCE = 0x2,
-    D3D12_TILE_COPY_FLAG_SWIZZLED_TILED_RESOURCE_TO_LINEAR_BUFFER = 0x4,
-} D3D12_TILE_COPY_FLAGS;
-
-typedef struct D3D12_INDEX_BUFFER_VIEW
-{
-    D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
-    UINT SizeInBytes;
-    DXGI_FORMAT Format;
-} D3D12_INDEX_BUFFER_VIEW;
-
-typedef struct D3D12_VERTEX_BUFFER_VIEW
-{
-    D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
-    UINT SizeInBytes;
-    UINT StrideInBytes;
-} D3D12_VERTEX_BUFFER_VIEW;
-
-typedef struct D3D12_STREAM_OUTPUT_BUFFER_VIEW
-{
-    D3D12_GPU_VIRTUAL_ADDRESS BufferLocation;
-    UINT64 SizeInBytes;
-    D3D12_GPU_VIRTUAL_ADDRESS BufferFilledSizeLocation;
-} D3D12_STREAM_OUTPUT_BUFFER_VIEW;
-
-typedef enum D3D12_CLEAR_FLAGS
-{
-    D3D12_CLEAR_FLAG_DEPTH = 0x1,
-    D3D12_CLEAR_FLAG_STENCIL = 0x2,
-} D3D12_CLEAR_FLAGS;
-cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(D3D12_CLEAR_FLAGS);")
-
-typedef struct D3D12_DISCARD_REGION
-{
-    UINT NumRects;
-    const D3D12_RECT *pRects;
-    UINT FirstSubresource;
-    UINT NumSubresources;
-} D3D12_DISCARD_REGION;
-
-typedef enum D3D12_QUERY_TYPE
-{
-    D3D12_QUERY_TYPE_OCCLUSION = 0,
-    D3D12_QUERY_TYPE_BINARY_OCCLUSION = 1,
-    D3D12_QUERY_TYPE_TIMESTAMP = 2,
-    D3D12_QUERY_TYPE_PIPELINE_STATISTICS = 3,
-    D3D12_QUERY_TYPE_SO_STATISTICS_STREAM0 = 4,
-    D3D12_QUERY_TYPE_SO_STATISTICS_STREAM1 = 5,
-    D3D12_QUERY_TYPE_SO_STATISTICS_STREAM2 = 6,
-    D3D12_QUERY_TYPE_SO_STATISTICS_STREAM3 = 7,
-} D3D12_QUERY_TYPE;
-
-typedef struct D3D12_QUERY_DATA_PIPELINE_STATISTICS
-{
-    UINT64 IAVertices;
-    UINT64 IAPrimitives;
-    UINT64 VSInvocations;
-    UINT64 GSInvocations;
-    UINT64 GSPrimitives;
-    UINT64 CInvocations;
-    UINT64 CPrimitives;
-    UINT64 PSInvocations;
-    UINT64 HSInvocations;
-    UINT64 DSInvocations;
-    UINT64 CSInvocations;
-} D3D12_QUERY_DATA_PIPELINE_STATISTICS;
-
-typedef enum D3D12_PREDICATION_OP
-{
-    D3D12_PREDICATION_OP_EQUAL_ZERO = 0,
-    D3D12_PREDICATION_OP_NOT_EQUAL_ZERO = 1,
-} D3D12_PREDICATION_OP;
-
-[
-    uuid(8efb471d-616c-4f49-90f7-127bb763fa51),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12DescriptorHeap : ID3D12Pageable
-{
-    D3D12_DESCRIPTOR_HEAP_DESC GetDesc();
-
-    D3D12_CPU_DESCRIPTOR_HANDLE GetCPUDescriptorHandleForHeapStart();
-    D3D12_GPU_DESCRIPTOR_HANDLE GetGPUDescriptorHandleForHeapStart();
-}
-
-[
-    uuid(0d9658ae-ed45-469e-a61d-970ec583cab4),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12QueryHeap : ID3D12Pageable
-{
-}
-
-[
-    uuid(c36a797c-ec80-4f0a-8985-a7b2475082d1),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12CommandSignature : ID3D12Pageable
-{
-}
-
-[
-    uuid(5b160d0f-ac1b-4185-8ba8-b3ae42a5a455),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12GraphicsCommandList : ID3D12CommandList
-{
-    HRESULT Close();
-
-    HRESULT Reset(ID3D12CommandAllocator *allocator, ID3D12PipelineState *initial_state);
-
-    HRESULT ClearState(ID3D12PipelineState *pipeline_state);
-
-    void DrawInstanced(UINT vertex_count_per_instance, UINT instance_count,
-            UINT start_vertex_location, UINT start_instance_location);
-    void DrawIndexedInstanced(UINT index_count_per_instance, UINT instance_count,
-            UINT start_vertex_location, INT base_vertex_location, UINT start_instance_location);
-
-    void Dispatch(UINT x, UINT u, UINT z);
-
-    void CopyBufferRegion(ID3D12Resource *dst_buffer, UINT64 dst_offset,
-            ID3D12Resource *src_buffer, UINT64 src_offset, UINT64 byte_count);
-    void CopyTextureRegion(const D3D12_TEXTURE_COPY_LOCATION *dst,
-            UINT dst_x, UINT dst_y, UINT dst_z,
-            const D3D12_TEXTURE_COPY_LOCATION *src, const D3D12_BOX *src_box);
-    void CopyResource(ID3D12Resource *dst_resource, ID3D12Resource *src_resource);
-
-    void CopyTiles(ID3D12Resource *tiled_resource,
-            const D3D12_TILED_RESOURCE_COORDINATE *tile_region_start_coordinate,
-            const D3D12_TILE_REGION_SIZE *tile_region_size,
-            ID3D12Resource *buffer,
-            UINT64 buffer_offset,
-            D3D12_TILE_COPY_FLAGS flags);
-
-    void ResolveSubresource(ID3D12Resource *dst_resource, UINT dst_sub_resource,
-            ID3D12Resource *src_resource, UINT src_sub_resource,
-            DXGI_FORMAT format);
-
-    void IASetPrimitiveTopology(D3D12_PRIMITIVE_TOPOLOGY primitive_topology);
-
-    void RSSetViewports(UINT viewport_count, const D3D12_VIEWPORT *viewports);
-    void RSSetScissorRects(UINT rect_count, const D3D12_RECT *rects);
-
-    void OMSetBlendFactor(const FLOAT blend_factor[4]);
-    void OMSetStencilRef(UINT stencil_ref);
-
-    void SetPipelineState(ID3D12PipelineState *pipeline_state);
-
-    void ResourceBarrier(UINT barrier_count, const D3D12_RESOURCE_BARRIER *barriers);
-
-    void ExecuteBundle(ID3D12GraphicsCommandList *command_list);
-
-    void SetDescriptorHeaps(UINT heap_count, ID3D12DescriptorHeap * const *heaps);
-
-    void SetComputeRootSignature(ID3D12RootSignature *root_signature);
-    void SetGraphicsRootSignature(ID3D12RootSignature *root_signature);
-
-    void SetComputeRootDescriptorTable(UINT root_parameter_index, D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
-    void SetGraphicsRootDescriptorTable(UINT root_parameter_index, D3D12_GPU_DESCRIPTOR_HANDLE base_descriptor);
-
-    void SetComputeRoot32BitConstant(UINT root_parameter_index, UINT data, UINT dst_offset);
-    void SetGraphicsRoot32BitConstant(UINT root_parameter_index, UINT data, UINT dst_offset);
-
-    void SetComputeRoot32BitConstants(UINT root_parameter_index, UINT constant_count, const void *data,
-            UINT dst_offset);
-    void SetGraphicsRoot32BitConstants(UINT root_parameter_index, UINT constant_count, const void *data,
-            UINT dst_offset);
-
-    void SetComputeRootConstantBufferView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
-    void SetGraphicsRootConstantBufferView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
-
-    void SetComputeRootShaderResourceView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
-    void SetGraphicsRootShaderResourceView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
-
-    void SetComputeRootUnorderedAccessView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
-    void SetGraphicsRootUnorderedAccessView(UINT root_parameter_index, D3D12_GPU_VIRTUAL_ADDRESS address);
-
-    void IASetIndexBuffer(const D3D12_INDEX_BUFFER_VIEW *view);
-    void IASetVertexBuffers(UINT start_slot, UINT view_count, const D3D12_VERTEX_BUFFER_VIEW *views);
-
-    void SOSetTargets(UINT start_slot, UINT view_count, const D3D12_STREAM_OUTPUT_BUFFER_VIEW *views);
-
-    void OMSetRenderTargets(UINT render_target_descriptor_count,
-            const D3D12_CPU_DESCRIPTOR_HANDLE *render_target_descriptors,
-            BOOL single_descriptor_handle,
-            const D3D12_CPU_DESCRIPTOR_HANDLE *depth_stencil_descriptor);
-
-    void ClearDepthStencilView(D3D12_CPU_DESCRIPTOR_HANDLE dsv, D3D12_CLEAR_FLAGS flags,
-            FLOAT depth, UINT8 stencil, UINT rect_count, const D3D12_RECT *rects);
-    void ClearRenderTargetView(D3D12_CPU_DESCRIPTOR_HANDLE rtv, const FLOAT color[4],
-            UINT rect_count, const D3D12_RECT *rects);
-    void ClearUnorderedAccessViewUint(D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
-            D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, ID3D12Resource *resource, const UINT values[4],
-            UINT rect_count, const D3D12_RECT *rects);
-    void ClearUnorderedAccessViewFloat(D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle,
-            D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, ID3D12Resource *resource, const float values[4],
-            UINT rect_count, const D3D12_RECT *rects);
-
-    void DiscardResource(ID3D12Resource *resource, const D3D12_DISCARD_REGION *region);
-
-    void BeginQuery(ID3D12QueryHeap *heap, D3D12_QUERY_TYPE type, UINT index);
-    void EndQuery(ID3D12QueryHeap *heap, D3D12_QUERY_TYPE type, UINT index);
-    void ResolveQueryData(ID3D12QueryHeap *heap, D3D12_QUERY_TYPE type,
-            UINT start_index, UINT query_count,
-            ID3D12Resource *dst_buffer, UINT64 aligned_dst_buffer_offset);
-
-    void SetPredication(ID3D12Resource *buffer, UINT64 aligned_buffer_offset,
-            D3D12_PREDICATION_OP operation);
-
-    void SetMarker(UINT metadata, const void *data, UINT size);
-    void BeginEvent(UINT metadata, const void *data, UINT size);
-    void EndEvent();
-
-    void ExecuteIndirect(ID3D12CommandSignature *command_signature,
-            UINT max_command_count, ID3D12Resource *arg_buffer, UINT64 arg_buffer_offset,
-            ID3D12Resource *count_buffer, UINT64 count_buffer_offset);
-}
-
-typedef enum D3D12_TILE_RANGE_FLAGS
-{
-    D3D12_TILE_RANGE_FLAG_NONE = 0x0,
-    D3D12_TILE_RANGE_FLAG_NULL = 0x1,
-    D3D12_TILE_RANGE_FLAG_SKIP = 0x2,
-    D3D12_TILE_RANGE_FLAG_REUSE_SINGLE_TILE = 0x4
-} D3D12_TILE_RANGE_FLAGS;
-
-typedef enum D3D12_TILE_MAPPING_FLAGS
-{
-    D3D12_TILE_MAPPING_FLAG_NONE = 0x0,
-    D3D12_TILE_MAPPING_FLAG_NO_HAZARD = 0x1,
-} D3D12_TILE_MAPPING_FLAGS;
-
-[
-    uuid(0ec870a6-5d7e-4c22-8cfc-5baae07616ed),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12CommandQueue : ID3D12Pageable
-{
-    void UpdateTileMappings(ID3D12Resource *resource, UINT region_count,
-            const D3D12_TILED_RESOURCE_COORDINATE *region_start_coordinates,
-            const D3D12_TILE_REGION_SIZE *region_sizes,
-            UINT range_count,
-            const D3D12_TILE_RANGE_FLAGS *range_flags,
-            UINT *heap_range_offsets,
-            UINT *range_tile_counts,
-            D3D12_TILE_MAPPING_FLAGS flags);
-
-    void CopyTileMappings(ID3D12Resource *dst_resource,
-            const D3D12_TILED_RESOURCE_COORDINATE *dst_region_start_coordinate,
-            ID3D12Resource *src_resource,
-            const D3D12_TILED_RESOURCE_COORDINATE *src_region_start_coordinate,
-            const D3D12_TILE_REGION_SIZE *region_size,
-            D3D12_TILE_MAPPING_FLAGS flags);
-
-    void ExecuteCommandLists(UINT command_list_count,
-            ID3D12CommandList * const * command_lists);
-
-    void SetMarker(UINT metadata, const void *data, UINT size);
-    void BeginEvent(UINT metadata, const void *data, UINT size);
-    void EndEvent();
-
-    HRESULT Signal(ID3D12Fence *fence, UINT64 value);
-    HRESULT Wait(ID3D12Fence *fence, UINT64 value);
-
-    HRESULT GetTimestampFrequency(UINT64 *frequency);
-    HRESULT GetClockCalibration(UINT64 *gpu_timestamp, UINT64 *cpu_timestamp);
-
-    D3D12_COMMAND_QUEUE_DESC GetDesc();
-}
-
-typedef enum D3D12_FENCE_FLAGS
-{
-    D3D12_FENCE_FLAG_NONE = 0x0,
-    D3D12_FENCE_FLAG_SHARED = 0x1,
-    D3D12_FENCE_FLAG_SHARED_CROSS_ADAPTER = 0x2,
-} D3D12_FENCE_FLAGS;
-
-typedef enum D3D12_QUERY_HEAP_TYPE
-{
-    D3D12_QUERY_HEAP_TYPE_OCCLUSION = 0,
-    D3D12_QUERY_HEAP_TYPE_TIMESTAMP = 1,
-    D3D12_QUERY_HEAP_TYPE_PIPELINE_STATISTICS = 2,
-    D3D12_QUERY_HEAP_TYPE_SO_STATISTICS = 3,
-} D3D12_QUERY_HEAP_TYPE;
-
-typedef struct D3D12_QUERY_HEAP_DESC
-{
-    D3D12_QUERY_HEAP_TYPE Type;
-    UINT Count;
-    UINT NodeMask;
-} D3D12_QUERY_HEAP_DESC;
-
-typedef enum D3D12_INDIRECT_ARGUMENT_TYPE
-{
-    D3D12_INDIRECT_ARGUMENT_TYPE_DRAW,
-    D3D12_INDIRECT_ARGUMENT_TYPE_DRAW_INDEXED,
-    D3D12_INDIRECT_ARGUMENT_TYPE_DISPATCH,
-    D3D12_INDIRECT_ARGUMENT_TYPE_VERTEX_BUFFER_VIEW,
-    D3D12_INDIRECT_ARGUMENT_TYPE_INDEX_BUFFER_VIEW,
-    D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT,
-    D3D12_INDIRECT_ARGUMENT_TYPE_CONSTANT_BUFFER_VIEW,
-    D3D12_INDIRECT_ARGUMENT_TYPE_SHADER_RESOURCE_VIEW,
-    D3D12_INDIRECT_ARGUMENT_TYPE_UNORDERED_ACCESS_VIEW,
-} D3D12_INDIRECT_ARGUMENT_TYPE;
-
-typedef struct D3D12_INDIRECT_ARGUMENT_DESC
-{
-    D3D12_INDIRECT_ARGUMENT_TYPE Type;
-    union
-    {
-        struct
-        {
-            UINT Slot;
-        } VertexBuffer;
-        struct
-        {
-            UINT RootParameterIndex;
-            UINT DestOffsetIn32BitValues;
-            UINT Num32BitValuesToSet;
-        } Constant;
-        struct
-        {
-            UINT RootParameterIndex;
-        } ConstantBufferView;
-        struct
-        {
-            UINT RootParameterIndex;
-        } ShaderResourceView;
-        struct
-        {
-            UINT RootParameterIndex;
-        } UnorderedAccessView;
-    };
-} D3D12_INDIRECT_ARGUMENT_DESC;
-
-typedef struct D3D12_COMMAND_SIGNATURE_DESC
-{
-    UINT ByteStride;
-    UINT NumArgumentDescs;
-    const D3D12_INDIRECT_ARGUMENT_DESC *pArgumentDescs;
-    UINT NodeMask;
-} D3D12_COMMAND_SIGNATURE_DESC;
-
-[
-    uuid(c54a6b66-72df-4ee8-8be5-a946a1429214),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12RootSignature : ID3D12DeviceChild
-{
-}
-
-[
-    uuid(765a30f3-f624-4c6f-a828-ace948622445),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12PipelineState : ID3D12Pageable
-{
-    HRESULT GetCachedBlob(ID3DBlob **blob);
-}
-
-[
-    uuid(0a753dcf-c4d8-4b91-adf6-be5a60d95a76),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12Fence : ID3D12Pageable
-{
-    UINT64 GetCompletedValue();
-    HRESULT SetEventOnCompletion(UINT64 value, HANDLE event);
-    HRESULT Signal(UINT64 value);
-}
-
-[
-    uuid(6102dee4-af59-4b09-b999-b44d73f09b24),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12CommandAllocator : ID3D12Pageable
-{
-    HRESULT Reset();
-}
-
-[
-    uuid(189819f1-1db6-4b57-be54-1821339b85f7),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12Device : ID3D12Object
-{
-    UINT GetNodeCount();
-
-    HRESULT CreateCommandQueue(const D3D12_COMMAND_QUEUE_DESC *desc,
-            REFIID riid, void **command_queue);
-    HRESULT CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE type,
-            REFIID riid, void **command_allocator);
-    HRESULT CreateGraphicsPipelineState(const D3D12_GRAPHICS_PIPELINE_STATE_DESC *desc,
-            REFIID riid, void **pipeline_state);
-    HRESULT CreateComputePipelineState(const D3D12_COMPUTE_PIPELINE_STATE_DESC *desc,
-            REFIID riid, void **pipeline_state);
-    HRESULT CreateCommandList(UINT node_mask,
-            D3D12_COMMAND_LIST_TYPE type,
-            ID3D12CommandAllocator *command_allocator,
-            ID3D12PipelineState *initial_pipeline_state,
-            REFIID riid, void **command_list);
-
-    HRESULT CheckFeatureSupport(D3D12_FEATURE feature,
-            void *feature_data, UINT feature_data_size);
-
-    HRESULT CreateDescriptorHeap(const D3D12_DESCRIPTOR_HEAP_DESC *desc,
-            REFIID riid, void **descriptor_heap);
-    UINT GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
-
-    HRESULT CreateRootSignature(UINT node_mask,
-            const void *bytecode, SIZE_T bytecode_length,
-            REFIID riid, void **root_signature);
-
-    void CreateConstantBufferView(const D3D12_CONSTANT_BUFFER_VIEW_DESC *desc,
-            D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
-    void CreateShaderResourceView(ID3D12Resource *resource,
-            const D3D12_SHADER_RESOURCE_VIEW_DESC *desc,
-            D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
-    void CreateUnorderedAccessView(ID3D12Resource *resource, ID3D12Resource *counter_resource,
-            const D3D12_UNORDERED_ACCESS_VIEW_DESC *desc,
-            D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
-    void CreateRenderTargetView(ID3D12Resource *resource,
-            const D3D12_RENDER_TARGET_VIEW_DESC *desc,
-            D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
-    void CreateDepthStencilView(ID3D12Resource *resource,
-            const D3D12_DEPTH_STENCIL_VIEW_DESC *desc,
-            D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
-    void CreateSampler(const D3D12_SAMPLER_DESC *desc,
-            D3D12_CPU_DESCRIPTOR_HANDLE descriptor);
-
-    void CopyDescriptors(UINT dst_descriptor_range_count,
-            const D3D12_CPU_DESCRIPTOR_HANDLE *dst_descriptor_range_offsets,
-            const UINT *dst_descriptor_range_sizes,
-            UINT src_descriptor_range_count,
-            const D3D12_CPU_DESCRIPTOR_HANDLE *src_descriptor_range_offsets,
-            const UINT *src_descriptor_range_sizes,
-            D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
-    void CopyDescriptorsSimple(UINT descriptor_count,
-            const D3D12_CPU_DESCRIPTOR_HANDLE dst_descriptor_range_offset,
-            const D3D12_CPU_DESCRIPTOR_HANDLE src_descriptor_range_offset,
-            D3D12_DESCRIPTOR_HEAP_TYPE descriptor_heap_type);
-
-    D3D12_RESOURCE_ALLOCATION_INFO GetResourceAllocationInfo(UINT visible_mask,
-            UINT reource_desc_count, const D3D12_RESOURCE_DESC *resource_descs);
-
-    D3D12_HEAP_PROPERTIES GetCustomHeapProperties(UINT node_mask,
-            D3D12_HEAP_TYPE heap_type);
-
-    HRESULT CreateCommittedResource(const D3D12_HEAP_PROPERTIES *heap_properties, D3D12_HEAP_FLAGS heap_flags,
-            const D3D12_RESOURCE_DESC *desc, D3D12_RESOURCE_STATES initial_state,
-            const D3D12_CLEAR_VALUE *optimized_clear_value,
-            REFIID riid, void **resource);
-
-    HRESULT CreateHeap(const D3D12_HEAP_DESC *desc, REFIID riid, void **heap);
-
-    HRESULT CreatePlacedResource(ID3D12Heap *heap, UINT64 heap_offset,
-            const D3D12_RESOURCE_DESC *desc, D3D12_RESOURCE_STATES initial_state,
-            const D3D12_CLEAR_VALUE *optimized_clear_value,
-            REFIID riid, void **resource);
-    HRESULT CreateReservedResource(const D3D12_RESOURCE_DESC *desc, D3D12_RESOURCE_STATES initial_state,
-            const D3D12_CLEAR_VALUE *optimized_clear_value,
-            REFIID riid, void **resource);
-
-    HRESULT CreateSharedHandle(ID3D12DeviceChild *object,
-            const SECURITY_ATTRIBUTES *attributes, DWORD access,
-            const WCHAR *name, HANDLE *handle);
-    HRESULT OpenSharedHandle(HANDLE handle,
-            REFIID riid, void **object);
-    HRESULT OpenSharedHandleByName(const WCHAR *name, DWORD access, HANDLE *handle);
-
-    HRESULT MakeResident(UINT object_count, ID3D12Pageable * const *objects);
-    HRESULT Evict(UINT object_count, ID3D12Pageable * const *objects);
-
-    HRESULT CreateFence(UINT64 initial_value, D3D12_FENCE_FLAGS flags, REFIID riid, void **fence);
-
-    HRESULT GetDeviceRemovedReason();
-
-    void GetCopyableFootprints(const D3D12_RESOURCE_DESC *desc,
-            UINT first_sub_resource,
-            UINT sub_resource_count,
-            UINT64 base_offset,
-            D3D12_PLACED_SUBRESOURCE_FOOTPRINT *layouts,
-            UINT *row_count,
-            UINT64 *row_size,
-            UINT64 *total_bytes);
-
-    HRESULT CreateQueryHeap(const D3D12_QUERY_HEAP_DESC *desc,
-            REFIID riid, void **heap);
-
-    HRESULT SetStablePowerState(BOOL enable);
-
-    HRESULT CreateCommandSignature(const D3D12_COMMAND_SIGNATURE_DESC *desc,
-            ID3D12RootSignature *root_signature,
-            REFIID riid, void **command_signature);
-
-    void GetResourceTiling(ID3D12Resource *resource,
-            UINT *total_tile_count,
-            D3D12_PACKED_MIP_INFO *packed_mip_info,
-            D3D12_TILE_SHAPE *standard_tile_shape,
-            UINT *sub_resource_tiling_count,
-            UINT first_sub_resource_tiling,
-            D3D12_SUBRESOURCE_TILING *sub_resource_tilings);
-
-    LUID GetAdapterLuid();
-}
-
-[
-    uuid(344488b7-6846-474b-b989-f027448245e0),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12Debug : IUnknown
-{
-    void EnableDebugLayer();
-}
-
-[
-    uuid(34ab647b-3cc8-46ac-841b-c0965645c046),
-    object,
-    local,
-    pointer_default(unique)
-]
-interface ID3D12RootSignatureDeserializer : IUnknown
-{
-    const D3D12_ROOT_SIGNATURE_DESC *GetRootSignatureDesc();
-}
-
-[local] HRESULT __stdcall D3D12CreateRootSignatureDeserializer(
-        const void *data, SIZE_T data_size, REFIID iid, void **deserializer);
-
-[local] HRESULT __stdcall D3D12SerializeRootSignature(
-        const D3D12_ROOT_SIGNATURE_DESC *root_signature_desc,
-        D3D_ROOT_SIGNATURE_VERSION version, ID3DBlob **blob, ID3DBlob **error_blob);
-
-[local] HRESULT __stdcall D3D12SerializeVersionedRootSignature(
-        const D3D12_VERSIONED_ROOT_SIGNATURE_DESC *root_signature_desc,
-        ID3DBlob **blob, ID3DBlob **error_blob);
-
-typedef HRESULT (__stdcall *PFN_D3D12_CREATE_DEVICE)(IUnknown *adapter,
-        D3D_FEATURE_LEVEL minimum_feature_level, REFIID iid, void **device);
-
-[local] HRESULT __stdcall D3D12CreateDevice(IUnknown *adapter,
-        D3D_FEATURE_LEVEL minimum_feature_level, REFIID iid, void **device);
-
-typedef HRESULT (__stdcall *PFN_D3D12_GET_DEBUG_INTERFACE)(REFIID iid, void **debug);
-
-[local] HRESULT __stdcall D3D12GetDebugInterface(REFIID iid, void **debug);
-
-[local] HRESULT __stdcall D3D12EnableExperimentalFeatures(UINT feature_count,
-        const IID *iids, void *configurations, UINT *configurations_sizes);
lib/libc/include/any-windows-any/d3d12sdklayers.h
@@ -0,0 +1,1586 @@
+/*** Autogenerated by WIDL 6.4 from include/d3d12sdklayers.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __d3d12sdklayers_h__
+#define __d3d12sdklayers_h__
+
+/* Forward declarations */
+
+#ifndef __ID3D12Debug_FWD_DEFINED__
+#define __ID3D12Debug_FWD_DEFINED__
+typedef interface ID3D12Debug ID3D12Debug;
+#ifdef __cplusplus
+interface ID3D12Debug;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12Debug1_FWD_DEFINED__
+#define __ID3D12Debug1_FWD_DEFINED__
+typedef interface ID3D12Debug1 ID3D12Debug1;
+#ifdef __cplusplus
+interface ID3D12Debug1;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ID3D12InfoQueue_FWD_DEFINED__
+#define __ID3D12InfoQueue_FWD_DEFINED__
+typedef interface ID3D12InfoQueue ID3D12InfoQueue;
+#ifdef __cplusplus
+interface ID3D12InfoQueue;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <d3d12.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetMessage
+#endif
+typedef enum D3D12_MESSAGE_CATEGORY {
+    D3D12_MESSAGE_CATEGORY_APPLICATION_DEFINED = 0x0,
+    D3D12_MESSAGE_CATEGORY_MISCELLANEOUS = 0x1,
+    D3D12_MESSAGE_CATEGORY_INITIALIZATION = 0x2,
+    D3D12_MESSAGE_CATEGORY_CLEANUP = 0x3,
+    D3D12_MESSAGE_CATEGORY_COMPILATION = 0x4,
+    D3D12_MESSAGE_CATEGORY_STATE_CREATION = 0x5,
+    D3D12_MESSAGE_CATEGORY_STATE_SETTING = 0x6,
+    D3D12_MESSAGE_CATEGORY_STATE_GETTING = 0x7,
+    D3D12_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = 0x8,
+    D3D12_MESSAGE_CATEGORY_EXECUTION = 0x9,
+    D3D12_MESSAGE_CATEGORY_SHADER = 0xa
+} D3D12_MESSAGE_CATEGORY;
+typedef enum D3D12_MESSAGE_SEVERITY {
+    D3D12_MESSAGE_SEVERITY_CORRUPTION = 0x0,
+    D3D12_MESSAGE_SEVERITY_ERROR = 0x1,
+    D3D12_MESSAGE_SEVERITY_WARNING = 0x2,
+    D3D12_MESSAGE_SEVERITY_INFO = 0x3,
+    D3D12_MESSAGE_SEVERITY_MESSAGE = 0x4
+} D3D12_MESSAGE_SEVERITY;
+typedef enum D3D12_MESSAGE_ID {
+    D3D12_MESSAGE_ID_UNKNOWN = 0x0,
+    D3D12_MESSAGE_ID_STRING_FROM_APPLICATION = 0x1,
+    D3D12_MESSAGE_ID_CORRUPTED_THIS = 0x2,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER1 = 0x3,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER2 = 0x4,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER3 = 0x5,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER4 = 0x6,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER5 = 0x7,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER6 = 0x8,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER7 = 0x9,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER8 = 0xa,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER9 = 0xb,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER10 = 0xc,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER11 = 0xd,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER12 = 0xe,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER13 = 0xf,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER14 = 0x10,
+    D3D12_MESSAGE_ID_CORRUPTED_PARAMETER15 = 0x11,
+    D3D12_MESSAGE_ID_CORRUPTED_MULTITHREADING = 0x12,
+    D3D12_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY = 0x13,
+    D3D12_MESSAGE_ID_GETPRIVATEDATA_MOREDATA = 0x14,
+    D3D12_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA = 0x15,
+    D3D12_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS = 0x18,
+    D3D12_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY = 0x19,
+    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT = 0x1a,
+    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC = 0x1b,
+    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT = 0x1c,
+    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDVIDEOPLANESLICE = 0x1d,
+    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDPLANESLICE = 0x1e,
+    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS = 0x1f,
+    D3D12_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE = 0x20,
+    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT = 0x23,
+    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT = 0x24,
+    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC = 0x25,
+    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT = 0x26,
+    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDVIDEOPLANESLICE = 0x27,
+    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDPLANESLICE = 0x28,
+    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS = 0x29,
+    D3D12_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE = 0x2a,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT = 0x2d,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC = 0x2e,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT = 0x2f,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS = 0x30,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE = 0x31,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY = 0x34,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS = 0x35,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT = 0x36,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT = 0x37,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT = 0x38,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS = 0x39,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH = 0x3a,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE = 0x3b,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE = 0x3c,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT = 0x3d,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC = 0x3e,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE = 0x3f,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC = 0x40,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT = 0x41,
+    D3D12_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY = 0x42,
+    D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE = 0x43,
+    D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE = 0x44,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY = 0x45,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE = 0x46,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE = 0x47,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY = 0x48,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE = 0x49,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 0x4a,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES = 0x4b,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED = 0x4c,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED = 0x4f,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT = 0x50,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT = 0x51,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT = 0x52,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT = 0x53,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION = 0x54,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT = 0x55,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE = 0x56,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC = 0x57,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH = 0x58,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS = 0x59,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX = 0x5a,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE = 0x5b,
+    D3D12_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY = 0x5c,
+    D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE = 0x5d,
+    D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE = 0x5e,
+    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE = 0x5f,
+    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE = 0x60,
+    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP = 0x61,
+    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS = 0x62,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK = 0x64,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC = 0x65,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP = 0x66,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP = 0x67,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP = 0x68,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC = 0x69,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP = 0x6a,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP = 0x6b,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP = 0x6c,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC = 0x6d,
+    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND = 0x6f,
+    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND = 0x70,
+    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP = 0x71,
+    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA = 0x72,
+    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA = 0x73,
+    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA = 0x74,
+    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK = 0x75,
+    D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID = 0x87,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_NOT_SET = 0xc8,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_ROOT_SIGNATURE_MISMATCH = 0xc9,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_NOT_SET = 0xca,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL = 0xd1,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_BUFFER_TOO_SMALL = 0xd2,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_NOT_SET = 0xd3,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_FORMAT_INVALID = 0xd4,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_BUFFER_TOO_SMALL = 0xd5,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INVALID_PRIMITIVETOPOLOGY = 0xdb,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_VERTEX_STRIDE_UNALIGNED = 0xdd,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_INDEX_OFFSET_UNALIGNED = 0xde,
+    D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT = 0xe8,
+    D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT = 0xe9,
+    D3D12_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT = 0xea,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC = 0xef,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC = 0xf0,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH = 0xf5,
+    D3D12_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT = 0xfd,
+    D3D12_MESSAGE_ID_LIVE_OBJECT_SUMMARY = 0xff,
+    D3D12_MESSAGE_ID_LIVE_DEVICE = 0x112,
+    D3D12_MESSAGE_ID_LIVE_SWAPCHAIN = 0x113,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS = 0x114,
+    D3D12_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE = 0x115,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE = 0x116,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER = 0x118,
+    D3D12_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE = 0x11b,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM = 0x11c,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES = 0x11d,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES = 0x11e,
+    D3D12_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES = 0x11f,
+    D3D12_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY = 0x121,
+    D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE = 0x122,
+    D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE = 0x123,
+    D3D12_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE = 0x124,
+    D3D12_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY = 0x126,
+    D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE = 0x127,
+    D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE = 0x128,
+    D3D12_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE = 0x129,
+    D3D12_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED = 0x136,
+    D3D12_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE = 0x13e,
+    D3D12_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY = 0x141,
+    D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE = 0x142,
+    D3D12_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE = 0x143,
+    D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x14b,
+    D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x14c,
+    D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x14d,
+    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x14e,
+    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED = 0x14f,
+    D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x150,
+    D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED = 0x151,
+    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE = 0x154,
+    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC = 0x155,
+    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT = 0x156,
+    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDVIDEOPLANESLICE = 0x157,
+    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDPLANESLICE = 0x158,
+    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS = 0x159,
+    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT = 0x15a,
+    D3D12_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS = 0x162,
+    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFORCEDSAMPLECOUNT = 0x191,
+    D3D12_MESSAGE_ID_CREATEBLENDSTATE_INVALIDLOGICOPS = 0x193,
+    D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x19a,
+    D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x19c,
+    D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x19e,
+    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x1a0,
+    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEEXTENSIONSNOTSUPPORTED = 0x1a2,
+    D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x1a4,
+    D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEEXTENSIONSNOTSUPPORTED = 0x1a6,
+    D3D12_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_UAVSNOTSUPPORTED = 0x1a9,
+    D3D12_MESSAGE_ID_DEVICE_CREATEHULLSHADER_UAVSNOTSUPPORTED = 0x1aa,
+    D3D12_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_UAVSNOTSUPPORTED = 0x1ab,
+    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_UAVSNOTSUPPORTED = 0x1ac,
+    D3D12_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UAVSNOTSUPPORTED = 0x1ad,
+    D3D12_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_UAVSNOTSUPPORTED = 0x1ae,
+    D3D12_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_UAVSNOTSUPPORTED = 0x1af,
+    D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_INVALIDSOURCERECT = 0x1bf,
+    D3D12_MESSAGE_ID_DEVICE_CLEARVIEW_EMPTYRECT = 0x1c0,
+    D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_INVALID_PARAMETER = 0x1ed,
+    D3D12_MESSAGE_ID_COPYTILEMAPPINGS_INVALID_PARAMETER = 0x1ee,
+    D3D12_MESSAGE_ID_CREATEDEVICE_INVALIDARGS = 0x1fa,
+    D3D12_MESSAGE_ID_CREATEDEVICE_WARNING = 0x1fb,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_TYPE = 0x207,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_NULL_POINTER = 0x208,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SUBRESOURCE = 0x209,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_RESERVED_BITS = 0x20a,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISSING_BIND_FLAGS = 0x20b,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_MISC_FLAGS = 0x20c,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_MATCHING_STATES = 0x20d,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINATION = 0x20e,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_BEFORE_AFTER_MISMATCH = 0x20f,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_RESOURCE = 0x210,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_SAMPLE_COUNT = 0x211,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS = 0x212,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMBINED_FLAGS = 0x213,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAGS_FOR_FORMAT = 0x214,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_SPLIT_BARRIER = 0x215,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_END = 0x216,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_UNMATCHED_BEGIN = 0x217,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_FLAG = 0x218,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_COMMAND_LIST_TYPE = 0x219,
+    D3D12_MESSAGE_ID_INVALID_SUBRESOURCE_STATE = 0x21a,
+    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CONTENTION = 0x21c,
+    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET = 0x21d,
+    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_RESET_BUNDLE = 0x21e,
+    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_CANNOT_RESET = 0x21f,
+    D3D12_MESSAGE_ID_COMMAND_LIST_OPEN = 0x220,
+    D3D12_MESSAGE_ID_INVALID_BUNDLE_API = 0x222,
+    D3D12_MESSAGE_ID_COMMAND_LIST_CLOSED = 0x223,
+    D3D12_MESSAGE_ID_WRONG_COMMAND_ALLOCATOR_TYPE = 0x225,
+    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_SYNC = 0x228,
+    D3D12_MESSAGE_ID_COMMAND_LIST_SYNC = 0x229,
+    D3D12_MESSAGE_ID_SET_DESCRIPTOR_HEAP_INVALID = 0x22a,
+    D3D12_MESSAGE_ID_CREATE_COMMANDQUEUE = 0x22d,
+    D3D12_MESSAGE_ID_CREATE_COMMANDALLOCATOR = 0x22e,
+    D3D12_MESSAGE_ID_CREATE_PIPELINESTATE = 0x22f,
+    D3D12_MESSAGE_ID_CREATE_COMMANDLIST12 = 0x230,
+    D3D12_MESSAGE_ID_CREATE_RESOURCE = 0x232,
+    D3D12_MESSAGE_ID_CREATE_DESCRIPTORHEAP = 0x233,
+    D3D12_MESSAGE_ID_CREATE_ROOTSIGNATURE = 0x234,
+    D3D12_MESSAGE_ID_CREATE_LIBRARY = 0x235,
+    D3D12_MESSAGE_ID_CREATE_HEAP = 0x236,
+    D3D12_MESSAGE_ID_CREATE_MONITOREDFENCE = 0x237,
+    D3D12_MESSAGE_ID_CREATE_QUERYHEAP = 0x238,
+    D3D12_MESSAGE_ID_CREATE_COMMANDSIGNATURE = 0x239,
+    D3D12_MESSAGE_ID_LIVE_COMMANDQUEUE = 0x23a,
+    D3D12_MESSAGE_ID_LIVE_COMMANDALLOCATOR = 0x23b,
+    D3D12_MESSAGE_ID_LIVE_PIPELINESTATE = 0x23c,
+    D3D12_MESSAGE_ID_LIVE_COMMANDLIST12 = 0x23d,
+    D3D12_MESSAGE_ID_LIVE_RESOURCE = 0x23f,
+    D3D12_MESSAGE_ID_LIVE_DESCRIPTORHEAP = 0x240,
+    D3D12_MESSAGE_ID_LIVE_ROOTSIGNATURE = 0x241,
+    D3D12_MESSAGE_ID_LIVE_LIBRARY = 0x242,
+    D3D12_MESSAGE_ID_LIVE_HEAP = 0x243,
+    D3D12_MESSAGE_ID_LIVE_MONITOREDFENCE = 0x244,
+    D3D12_MESSAGE_ID_LIVE_QUERYHEAP = 0x245,
+    D3D12_MESSAGE_ID_LIVE_COMMANDSIGNATURE = 0x246,
+    D3D12_MESSAGE_ID_DESTROY_COMMANDQUEUE = 0x247,
+    D3D12_MESSAGE_ID_DESTROY_COMMANDALLOCATOR = 0x248,
+    D3D12_MESSAGE_ID_DESTROY_PIPELINESTATE = 0x249,
+    D3D12_MESSAGE_ID_DESTROY_COMMANDLIST12 = 0x24a,
+    D3D12_MESSAGE_ID_DESTROY_RESOURCE = 0x24c,
+    D3D12_MESSAGE_ID_DESTROY_DESCRIPTORHEAP = 0x24d,
+    D3D12_MESSAGE_ID_DESTROY_ROOTSIGNATURE = 0x24e,
+    D3D12_MESSAGE_ID_DESTROY_LIBRARY = 0x24f,
+    D3D12_MESSAGE_ID_DESTROY_HEAP = 0x250,
+    D3D12_MESSAGE_ID_DESTROY_MONITOREDFENCE = 0x251,
+    D3D12_MESSAGE_ID_DESTROY_QUERYHEAP = 0x252,
+    D3D12_MESSAGE_ID_DESTROY_COMMANDSIGNATURE = 0x253,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONS = 0x255,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMISCFLAGS = 0x257,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDARG_RETURN = 0x25a,
+    D3D12_MESSAGE_ID_CREATERESOURCE_OUTOFMEMORY_RETURN = 0x25b,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDESC = 0x25c,
+    D3D12_MESSAGE_ID_POSSIBLY_INVALID_SUBRESOURCE_STATE = 0x25f,
+    D3D12_MESSAGE_ID_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 0x260,
+    D3D12_MESSAGE_ID_POSSIBLE_INVALID_USE_OF_NON_RESIDENT_RESOURCE = 0x261,
+    D3D12_MESSAGE_ID_BUNDLE_PIPELINE_STATE_MISMATCH = 0x262,
+    D3D12_MESSAGE_ID_PRIMITIVE_TOPOLOGY_MISMATCH_PIPELINE_STATE = 0x263,
+    D3D12_MESSAGE_ID_RENDER_TARGET_FORMAT_MISMATCH_PIPELINE_STATE = 0x265,
+    D3D12_MESSAGE_ID_RENDER_TARGET_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 0x266,
+    D3D12_MESSAGE_ID_DEPTH_STENCIL_FORMAT_MISMATCH_PIPELINE_STATE = 0x267,
+    D3D12_MESSAGE_ID_DEPTH_STENCIL_SAMPLE_DESC_MISMATCH_PIPELINE_STATE = 0x268,
+    D3D12_MESSAGE_ID_CREATESHADER_INVALIDBYTECODE = 0x26e,
+    D3D12_MESSAGE_ID_CREATEHEAP_NULLDESC = 0x26f,
+    D3D12_MESSAGE_ID_CREATEHEAP_INVALIDSIZE = 0x270,
+    D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDHEAPTYPE = 0x271,
+    D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 0x272,
+    D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMEMORYPOOL = 0x273,
+    D3D12_MESSAGE_ID_CREATEHEAP_INVALIDPROPERTIES = 0x274,
+    D3D12_MESSAGE_ID_CREATEHEAP_INVALIDALIGNMENT = 0x275,
+    D3D12_MESSAGE_ID_CREATEHEAP_UNRECOGNIZEDMISCFLAGS = 0x276,
+    D3D12_MESSAGE_ID_CREATEHEAP_INVALIDMISCFLAGS = 0x277,
+    D3D12_MESSAGE_ID_CREATEHEAP_INVALIDARG_RETURN = 0x278,
+    D3D12_MESSAGE_ID_CREATEHEAP_OUTOFMEMORY_RETURN = 0x279,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAPPROPERTIES = 0x27a,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPTYPE = 0x27b,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDCPUPAGEPROPERTIES = 0x27c,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDMEMORYPOOL = 0x27d,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPPROPERTIES = 0x27e,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_UNRECOGNIZEDHEAPMISCFLAGS = 0x27f,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDHEAPMISCFLAGS = 0x280,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_INVALIDARG_RETURN = 0x281,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_OUTOFMEMORY_RETURN = 0x282,
+    D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_UNRECOGNIZEDHEAPTYPE = 0x283,
+    D3D12_MESSAGE_ID_GETCUSTOMHEAPPROPERTIES_INVALIDHEAPTYPE = 0x284,
+    D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_INVALID_DESC = 0x285,
+    D3D12_MESSAGE_ID_INVALID_DESCRIPTOR_HANDLE = 0x286,
+    D3D12_MESSAGE_ID_CREATERASTERIZERSTATE_INVALID_CONSERVATIVERASTERMODE = 0x287,
+    D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_RESOURCE = 0x289,
+    D3D12_MESSAGE_ID_CREATE_CONSTANT_BUFFER_VIEW_INVALID_DESC = 0x28a,
+    D3D12_MESSAGE_ID_CREATE_UNORDEREDACCESS_VIEW_INVALID_COUNTER_USAGE = 0x28c,
+    D3D12_MESSAGE_ID_COPY_DESCRIPTORS_INVALID_RANGES = 0x28d,
+    D3D12_MESSAGE_ID_COPY_DESCRIPTORS_WRITE_ONLY_DESCRIPTOR = 0x28e,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RTV_FORMAT_NOT_UNKNOWN = 0x28f,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_RENDER_TARGET_COUNT = 0x290,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VERTEX_SHADER_NOT_SET = 0x291,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_NOT_SET = 0x292,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_HS_DS_SIGNATURE_MISMATCH = 0x293,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERINDEX = 0x294,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_COMPONENTTYPE = 0x295,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_REGISTERMASK = 0x296,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SYSTEMVALUE = 0x297,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS = 0x298,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_MINPRECISION = 0x299,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND = 0x29a,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_XOR_DS_MISMATCH = 0x29b,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH = 0x29c,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_CONTROL_POINT_COUNT_MISMATCH = 0x29d,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_DS_TESSELLATOR_DOMAIN_MISMATCH = 0x29e,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN = 0x29f,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_USE_OF_FORCED_SAMPLE_COUNT = 0x2a0,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_PRIMITIVETOPOLOGY = 0x2a1,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SYSTEMVALUE = 0x2a2,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0 = 0x2a3,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING = 0x2a4,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_TYPE_MISMATCH = 0x2a5,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_OM_RENDER_TARGET_DOES_NOT_SUPPORT_LOGIC_OPS = 0x2a6,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RENDERTARGETVIEW_NOT_SET = 0x2a7,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DEPTHSTENCILVIEW_NOT_SET = 0x2a8,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_INPUT_PRIMITIVE_MISMATCH = 0x2a9,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_POSITION_NOT_PRESENT = 0x2aa,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE_FLAGS = 0x2ab,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_INDEX_BUFFER_PROPERTIES = 0x2ac,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INVALID_SAMPLE_DESC = 0x2ad,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_HS_ROOT_SIGNATURE_MISMATCH = 0x2ae,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_DS_ROOT_SIGNATURE_MISMATCH = 0x2af,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VS_ROOT_SIGNATURE_MISMATCH = 0x2b0,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_GS_ROOT_SIGNATURE_MISMATCH = 0x2b1,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_ROOT_SIGNATURE_MISMATCH = 0x2b2,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MISSING_ROOT_SIGNATURE = 0x2b3,
+    D3D12_MESSAGE_ID_EXECUTE_BUNDLE_OPEN_BUNDLE = 0x2b4,
+    D3D12_MESSAGE_ID_EXECUTE_BUNDLE_DESCRIPTOR_HEAP_MISMATCH = 0x2b5,
+    D3D12_MESSAGE_ID_EXECUTE_BUNDLE_TYPE = 0x2b6,
+    D3D12_MESSAGE_ID_DRAW_EMPTY_SCISSOR_RECTANGLE = 0x2b7,
+    D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_BLOB_NOT_FOUND = 0x2b8,
+    D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_DESERIALIZE_FAILED = 0x2b9,
+    D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_INVALID_CONFIGURATION = 0x2ba,
+    D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_SUPPORTED_ON_DEVICE = 0x2bb,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLRESOURCEPROPERTIES = 0x2bc,
+    D3D12_MESSAGE_ID_CREATERESOURCEANDHEAP_NULLHEAP = 0x2bd,
+    D3D12_MESSAGE_ID_GETRESOURCEALLOCATIONINFO_INVALIDRDESCS = 0x2be,
+    D3D12_MESSAGE_ID_MAKERESIDENT_NULLOBJECTARRAY = 0x2bf,
+    D3D12_MESSAGE_ID_EVICT_NULLOBJECTARRAY = 0x2c1,
+    D3D12_MESSAGE_ID_SET_DESCRIPTOR_TABLE_INVALID = 0x2c4,
+    D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_INVALID = 0x2c5,
+    D3D12_MESSAGE_ID_SET_ROOT_CONSTANT_BUFFER_VIEW_INVALID = 0x2c6,
+    D3D12_MESSAGE_ID_SET_ROOT_SHADER_RESOURCE_VIEW_INVALID = 0x2c7,
+    D3D12_MESSAGE_ID_SET_ROOT_UNORDERED_ACCESS_VIEW_INVALID = 0x2c8,
+    D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID_DESC = 0x2c9,
+    D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID_DESC = 0x2cb,
+    D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID_DESC = 0x2cd,
+    D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDDIMENSIONALITY = 0x2ce,
+    D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDLAYOUT = 0x2cf,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDDIMENSIONALITY = 0x2d0,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDALIGNMENT = 0x2d1,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDMIPLEVELS = 0x2d2,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDSAMPLEDESC = 0x2d3,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDLAYOUT = 0x2d4,
+    D3D12_MESSAGE_ID_SET_INDEX_BUFFER_INVALID = 0x2d5,
+    D3D12_MESSAGE_ID_SET_VERTEX_BUFFERS_INVALID = 0x2d6,
+    D3D12_MESSAGE_ID_SET_STREAM_OUTPUT_BUFFERS_INVALID = 0x2d7,
+    D3D12_MESSAGE_ID_SET_RENDER_TARGETS_INVALID = 0x2d8,
+    D3D12_MESSAGE_ID_CREATEQUERY_HEAP_INVALID_PARAMETERS = 0x2d9,
+    D3D12_MESSAGE_ID_BEGIN_END_QUERY_INVALID_PARAMETERS = 0x2db,
+    D3D12_MESSAGE_ID_CLOSE_COMMAND_LIST_OPEN_QUERY = 0x2dc,
+    D3D12_MESSAGE_ID_RESOLVE_QUERY_DATA_INVALID_PARAMETERS = 0x2dd,
+    D3D12_MESSAGE_ID_SET_PREDICATION_INVALID_PARAMETERS = 0x2de,
+    D3D12_MESSAGE_ID_TIMESTAMPS_NOT_SUPPORTED = 0x2df,
+    D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDFORMAT = 0x2e1,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDFORMAT = 0x2e2,
+    D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDSUBRESOURCERANGE = 0x2e3,
+    D3D12_MESSAGE_ID_GETCOPYABLEFOOTPRINTS_INVALIDBASEOFFSET = 0x2e4,
+    D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDSUBRESOURCERANGE = 0x2e3,
+    D3D12_MESSAGE_ID_GETCOPYABLELAYOUT_INVALIDBASEOFFSET = 0x2e4,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_INVALID_HEAP = 0x2e5,
+    D3D12_MESSAGE_ID_CREATE_SAMPLER_INVALID = 0x2e6,
+    D3D12_MESSAGE_ID_CREATECOMMANDSIGNATURE_INVALID = 0x2e7,
+    D3D12_MESSAGE_ID_EXECUTE_INDIRECT_INVALID_PARAMETERS = 0x2e8,
+    D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_RESOURCE_DIMENSION = 0x2e9,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUE = 0x32f,
+    D3D12_MESSAGE_ID_CREATERESOURCE_UNRECOGNIZEDCLEARVALUEFORMAT = 0x330,
+    D3D12_MESSAGE_ID_CREATERESOURCE_INVALIDCLEARVALUEFORMAT = 0x331,
+    D3D12_MESSAGE_ID_CREATERESOURCE_CLEARVALUEDENORMFLUSH = 0x332,
+    D3D12_MESSAGE_ID_CLEARRENDERTARGETVIEW_MISMATCHINGCLEARVALUE = 0x334,
+    D3D12_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_MISMATCHINGCLEARVALUE = 0x335,
+    D3D12_MESSAGE_ID_MAP_INVALIDHEAP = 0x336,
+    D3D12_MESSAGE_ID_UNMAP_INVALIDHEAP = 0x337,
+    D3D12_MESSAGE_ID_MAP_INVALIDRESOURCE = 0x338,
+    D3D12_MESSAGE_ID_UNMAP_INVALIDRESOURCE = 0x339,
+    D3D12_MESSAGE_ID_MAP_INVALIDSUBRESOURCE = 0x33a,
+    D3D12_MESSAGE_ID_UNMAP_INVALIDSUBRESOURCE = 0x33b,
+    D3D12_MESSAGE_ID_MAP_INVALIDRANGE = 0x33c,
+    D3D12_MESSAGE_ID_UNMAP_INVALIDRANGE = 0x33d,
+    D3D12_MESSAGE_ID_MAP_INVALIDDATAPOINTER = 0x340,
+    D3D12_MESSAGE_ID_MAP_INVALIDARG_RETURN = 0x341,
+    D3D12_MESSAGE_ID_MAP_OUTOFMEMORY_RETURN = 0x342,
+    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_BUNDLENOTSUPPORTED = 0x343,
+    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_COMMANDLISTMISMATCH = 0x344,
+    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_OPENCOMMANDLIST = 0x345,
+    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_FAILEDCOMMANDLIST = 0x346,
+    D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLDST = 0x347,
+    D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDDSTRESOURCEDIMENSION = 0x348,
+    D3D12_MESSAGE_ID_COPYBUFFERREGION_DSTRANGEOUTOFBOUNDS = 0x349,
+    D3D12_MESSAGE_ID_COPYBUFFERREGION_NULLSRC = 0x34a,
+    D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDSRCRESOURCEDIMENSION = 0x34b,
+    D3D12_MESSAGE_ID_COPYBUFFERREGION_SRCRANGEOUTOFBOUNDS = 0x34c,
+    D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALIDCOPYFLAGS = 0x34d,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLDST = 0x34e,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTTYPE = 0x34f,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCEDIMENSION = 0x350,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTRESOURCE = 0x351,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTSUBRESOURCE = 0x352,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTOFFSET = 0x353,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDDSTFORMAT = 0x354,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTFORMAT = 0x355,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDIMENSIONS = 0x356,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTROWPITCH = 0x357,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTPLACEMENT = 0x358,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTDSPLACEDFOOTPRINTFORMAT = 0x359,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_DSTREGIONOUTOFBOUNDS = 0x35a,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_NULLSRC = 0x35b,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCTYPE = 0x35c,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCEDIMENSION = 0x35d,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCRESOURCE = 0x35e,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCSUBRESOURCE = 0x35f,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCOFFSET = 0x360,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_UNRECOGNIZEDSRCFORMAT = 0x361,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCFORMAT = 0x362,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDIMENSIONS = 0x363,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCROWPITCH = 0x364,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCPLACEMENT = 0x365,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCDSPLACEDFOOTPRINTFORMAT = 0x366,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_SRCREGIONOUTOFBOUNDS = 0x367,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDDSTCOORDINATES = 0x368,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDSRCBOX = 0x369,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_FORMATMISMATCH = 0x36a,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_EMPTYBOX = 0x36b,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_INVALIDCOPYFLAGS = 0x36c,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SUBRESOURCE_INDEX = 0x36d,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_FORMAT = 0x36e,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_MISMATCH = 0x36f,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALID_SAMPLE_COUNT = 0x370,
+    D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_INVALID_SHADER = 0x371,
+    D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_CS_ROOT_SIGNATURE_MISMATCH = 0x372,
+    D3D12_MESSAGE_ID_CREATECOMPUTEPIPELINESTATE_MISSING_ROOT_SIGNATURE = 0x373,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALIDCACHEDBLOB = 0x374,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBADAPTERMISMATCH = 0x375,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDRIVERVERSIONMISMATCH = 0x376,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBDESCMISMATCH = 0x377,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CACHEDBLOBIGNORED = 0x378,
+    D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDHEAP = 0x379,
+    D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDRESOURCE = 0x37a,
+    D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDBOX = 0x37b,
+    D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_INVALIDSUBRESOURCE = 0x37c,
+    D3D12_MESSAGE_ID_WRITETOSUBRESOURCE_EMPTYBOX = 0x37d,
+    D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDHEAP = 0x37e,
+    D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDRESOURCE = 0x37f,
+    D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDBOX = 0x380,
+    D3D12_MESSAGE_ID_READFROMSUBRESOURCE_INVALIDSUBRESOURCE = 0x381,
+    D3D12_MESSAGE_ID_READFROMSUBRESOURCE_EMPTYBOX = 0x382,
+    D3D12_MESSAGE_ID_TOO_MANY_NODES_SPECIFIED = 0x383,
+    D3D12_MESSAGE_ID_INVALID_NODE_INDEX = 0x384,
+    D3D12_MESSAGE_ID_GETHEAPPROPERTIES_INVALIDRESOURCE = 0x385,
+    D3D12_MESSAGE_ID_NODE_MASK_MISMATCH = 0x386,
+    D3D12_MESSAGE_ID_COMMAND_LIST_OUTOFMEMORY = 0x387,
+    D3D12_MESSAGE_ID_COMMAND_LIST_MULTIPLE_SWAPCHAIN_BUFFER_REFERENCES = 0x388,
+    D3D12_MESSAGE_ID_COMMAND_LIST_TOO_MANY_SWAPCHAIN_REFERENCES = 0x389,
+    D3D12_MESSAGE_ID_COMMAND_QUEUE_TOO_MANY_SWAPCHAIN_REFERENCES = 0x38a,
+    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_WRONGSWAPCHAINBUFFERREFERENCE = 0x38b,
+    D3D12_MESSAGE_ID_COMMAND_LIST_SETRENDERTARGETS_INVALIDNUMRENDERTARGETS = 0x38c,
+    D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_TYPE = 0x38d,
+    D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_FLAGS = 0x38e,
+    D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFLAGS = 0x38f,
+    D3D12_MESSAGE_ID_CREATESHAREDRESOURCE_INVALIDFORMAT = 0x390,
+    D3D12_MESSAGE_ID_CREATESHAREDHEAP_INVALIDFLAGS = 0x391,
+    D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_UNRECOGNIZEDPROPERTIES = 0x392,
+    D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDSIZE = 0x393,
+    D3D12_MESSAGE_ID_REFLECTSHAREDPROPERTIES_INVALIDOBJECT = 0x394,
+    D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDOBJECT = 0x395,
+    D3D12_MESSAGE_ID_KEYEDMUTEX_INVALIDKEY = 0x396,
+    D3D12_MESSAGE_ID_KEYEDMUTEX_WRONGSTATE = 0x397,
+    D3D12_MESSAGE_ID_CREATE_QUEUE_INVALID_PRIORITY = 0x398,
+    D3D12_MESSAGE_ID_OBJECT_DELETED_WHILE_STILL_IN_USE = 0x399,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_FLAGS = 0x39a,
+    D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_HAS_NO_RESOURCE = 0x39b,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DRAW_RENDER_TARGET_DELETED = 0x39c,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_ALL_RENDER_TARGETS_HAVE_UNKNOWN_FORMAT = 0x39d,
+    D3D12_MESSAGE_ID_HEAP_ADDRESS_RANGE_INTERSECTS_MULTIPLE_BUFFERS = 0x39e,
+    D3D12_MESSAGE_ID_EXECUTECOMMANDLISTS_GPU_WRITTEN_READBACK_RESOURCE_MAPPED = 0x39f,
+    D3D12_MESSAGE_ID_UNMAP_RANGE_NOT_EMPTY = 0x3a1,
+    D3D12_MESSAGE_ID_MAP_INVALID_NULLRANGE = 0x3a2,
+    D3D12_MESSAGE_ID_UNMAP_INVALID_NULLRANGE = 0x3a3,
+    D3D12_MESSAGE_ID_NO_GRAPHICS_API_SUPPORT = 0x3a4,
+    D3D12_MESSAGE_ID_NO_COMPUTE_API_SUPPORT = 0x3a5,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_RESOURCE_FLAGS_NOT_SUPPORTED = 0x3a6,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_ARGUMENT_UNINITIALIZED = 0x3a7,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_HEAP_INDEX_OUT_OF_BOUNDS = 0x3a8,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TABLE_REGISTER_INDEX_OUT_OF_BOUNDS = 0x3a9,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_UNINITIALIZED = 0x3aa,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_DESCRIPTOR_TYPE_MISMATCH = 0x3ab,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SRV_RESOURCE_DIMENSION_MISMATCH = 0x3ac,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UAV_RESOURCE_DIMENSION_MISMATCH = 0x3ad,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INCOMPATIBLE_RESOURCE_STATE = 0x3ae,
+    D3D12_MESSAGE_ID_COPYRESOURCE_NULLDST = 0x3af,
+    D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDDSTRESOURCE = 0x3b0,
+    D3D12_MESSAGE_ID_COPYRESOURCE_NULLSRC = 0x3b1,
+    D3D12_MESSAGE_ID_COPYRESOURCE_INVALIDSRCRESOURCE = 0x3b2,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLDST = 0x3b3,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDDSTRESOURCE = 0x3b4,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_NULLSRC = 0x3b5,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_INVALIDSRCRESOURCE = 0x3b6,
+    D3D12_MESSAGE_ID_PIPELINE_STATE_TYPE_MISMATCH = 0x3b7,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_NOT_SET = 0x3b8,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DISPATCH_ROOT_SIGNATURE_MISMATCH = 0x3b9,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_ZERO_BARRIERS = 0x3ba,
+    D3D12_MESSAGE_ID_BEGIN_END_EVENT_MISMATCH = 0x3bb,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_POSSIBLE_BEFORE_AFTER_MISMATCH = 0x3bc,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_BEGIN_END = 0x3bd,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_INVALID_RESOURCE = 0x3be,
+    D3D12_MESSAGE_ID_USE_OF_ZERO_REFCOUNT_OBJECT = 0x3bf,
+    D3D12_MESSAGE_ID_OBJECT_EVICTED_WHILE_STILL_IN_USE = 0x3c0,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_ROOT_DESCRIPTOR_ACCESS_OUT_OF_BOUNDS = 0x3c1,
+    D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_INVALIDLIBRARYBLOB = 0x3c2,
+    D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_DRIVERVERSIONMISMATCH = 0x3c3,
+    D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_ADAPTERVERSIONMISMATCH = 0x3c4,
+    D3D12_MESSAGE_ID_CREATEPIPELINELIBRARY_UNSUPPORTED = 0x3c5,
+    D3D12_MESSAGE_ID_CREATE_PIPELINELIBRARY = 0x3c6,
+    D3D12_MESSAGE_ID_LIVE_PIPELINELIBRARY = 0x3c7,
+    D3D12_MESSAGE_ID_DESTROY_PIPELINELIBRARY = 0x3c8,
+    D3D12_MESSAGE_ID_STOREPIPELINE_NONAME = 0x3c9,
+    D3D12_MESSAGE_ID_STOREPIPELINE_DUPLICATENAME = 0x3ca,
+    D3D12_MESSAGE_ID_LOADPIPELINE_NAMENOTFOUND = 0x3cb,
+    D3D12_MESSAGE_ID_LOADPIPELINE_INVALIDDESC = 0x3cc,
+    D3D12_MESSAGE_ID_PIPELINELIBRARY_SERIALIZE_NOTENOUGHMEMORY = 0x3cd,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_PS_OUTPUT_RT_OUTPUT_MISMATCH = 0x3ce,
+    D3D12_MESSAGE_ID_SETEVENTONMULTIPLEFENCECOMPLETION_INVALIDFLAGS = 0x3cf,
+    D3D12_MESSAGE_ID_CREATE_QUEUE_VIDEO_NOT_SUPPORTED = 0x3d0,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_ALLOCATOR_VIDEO_NOT_SUPPORTED = 0x3d1,
+    D3D12_MESSAGE_ID_CREATEQUERY_HEAP_VIDEO_DECODE_STATISTICS_NOT_SUPPORTED = 0x3d2,
+    D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDLIST = 0x3d3,
+    D3D12_MESSAGE_ID_CREATE_VIDEODECODER = 0x3d4,
+    D3D12_MESSAGE_ID_CREATE_VIDEODECODESTREAM = 0x3d5,
+    D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDLIST = 0x3d6,
+    D3D12_MESSAGE_ID_LIVE_VIDEODECODER = 0x3d7,
+    D3D12_MESSAGE_ID_LIVE_VIDEODECODESTREAM = 0x3d8,
+    D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDLIST = 0x3d9,
+    D3D12_MESSAGE_ID_DESTROY_VIDEODECODER = 0x3da,
+    D3D12_MESSAGE_ID_DESTROY_VIDEODECODESTREAM = 0x3db,
+    D3D12_MESSAGE_ID_DECODE_FRAME_INVALID_PARAMETERS = 0x3dc,
+    D3D12_MESSAGE_ID_DEPRECATED_API = 0x3dd,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_MISMATCHING_COMMAND_LIST_TYPE = 0x3de,
+    D3D12_MESSAGE_ID_COMMAND_LIST_DESCRIPTOR_TABLE_NOT_SET = 0x3df,
+    D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_CONSTANT_BUFFER_VIEW_NOT_SET = 0x3e0,
+    D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_SHADER_RESOURCE_VIEW_NOT_SET = 0x3e1,
+    D3D12_MESSAGE_ID_COMMAND_LIST_ROOT_UNORDERED_ACCESS_VIEW_NOT_SET = 0x3e2,
+    D3D12_MESSAGE_ID_DISCARD_INVALID_SUBRESOURCE_RANGE = 0x3e3,
+    D3D12_MESSAGE_ID_DISCARD_ONE_SUBRESOURCE_FOR_MIPS_WITH_RECTS = 0x3e4,
+    D3D12_MESSAGE_ID_DISCARD_NO_RECTS_FOR_NON_TEXTURE2D = 0x3e5,
+    D3D12_MESSAGE_ID_COPY_ON_SAME_SUBRESOURCE = 0x3e6,
+    D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PAGEABLE = 0x3e7,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_UNSUPPORTED = 0x3e8,
+    D3D12_MESSAGE_ID_STATIC_DESCRIPTOR_INVALID_DESCRIPTOR_CHANGE = 0x3e9,
+    D3D12_MESSAGE_ID_DATA_STATIC_DESCRIPTOR_INVALID_DATA_CHANGE = 0x3ea,
+    D3D12_MESSAGE_ID_DATA_STATIC_WHILE_SET_AT_EXECUTE_DESCRIPTOR_INVALID_DATA_CHANGE = 0x3eb,
+    D3D12_MESSAGE_ID_EXECUTE_BUNDLE_STATIC_DESCRIPTOR_DATA_STATIC_NOT_SET = 0x3ec,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_ACCESS_OUT_OF_BOUNDS = 0x3ed,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_SAMPLER_MODE_MISMATCH = 0x3ee,
+    D3D12_MESSAGE_ID_CREATE_FENCE_INVALID_FLAGS = 0x3ef,
+    D3D12_MESSAGE_ID_RESOURCE_BARRIER_DUPLICATE_SUBRESOURCE_TRANSITIONS = 0x3f0,
+    D3D12_MESSAGE_ID_SETRESIDENCYPRIORITY_INVALID_PRIORITY = 0x3f1,
+    D3D12_MESSAGE_ID_CREATE_DESCRIPTOR_HEAP_LARGE_NUM_DESCRIPTORS = 0x3f5,
+    D3D12_MESSAGE_ID_BEGIN_EVENT = 0x3f6,
+    D3D12_MESSAGE_ID_END_EVENT = 0x3f7,
+    D3D12_MESSAGE_ID_CREATEDEVICE_DEBUG_LAYER_STARTUP_OPTIONS = 0x3f8,
+    D3D12_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_DEPTHBOUNDSTEST_UNSUPPORTED = 0x3f9,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_DUPLICATE_SUBOBJECT = 0x3fa,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_UNKNOWN_SUBOBJECT = 0x3fb,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_ZERO_SIZE_STREAM = 0x3fc,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_INVALID_STREAM = 0x3fd,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_CANNOT_DEDUCE_TYPE = 0x3fe,
+    D3D12_MESSAGE_ID_COMMAND_LIST_STATIC_DESCRIPTOR_RESOURCE_DIMENSION_MISMATCH = 0x3ff,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_PRIVILEGE_FOR_GLOBAL_REALTIME = 0x400,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_QUEUE_INSUFFICIENT_HARDWARE_SUPPORT_FOR_GLOBAL_REALTIME = 0x401,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_ARCHITECTURE = 0x402,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DST = 0x403,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE_DIMENSION = 0x404,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DST_RANGE_OUT_OF_BOUNDS = 0x405,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_SRC = 0x406,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE_DIMENSION = 0x407,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_SRC_RANGE_OUT_OF_BOUNDS = 0x408,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_OFFSET_ALIGNMENT = 0x409,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_RESOURCES = 0x40a,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_NULL_DEPENDENT_SUBRESOURCE_RANGES = 0x40b,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_RESOURCE = 0x40c,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DEPENDENT_SUBRESOURCE_RANGE = 0x40d,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_SUBRESOURCE_OUT_OF_BOUNDS = 0x40e,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_DEPENDENT_RANGE_OUT_OF_BOUNDS = 0x40f,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_ZERO_DEPENDENCIES = 0x410,
+    D3D12_MESSAGE_ID_DEVICE_CREATE_SHARED_HANDLE_INVALIDARG = 0x411,
+    D3D12_MESSAGE_ID_DESCRIPTOR_HANDLE_WITH_INVALID_RESOURCE = 0x412,
+    D3D12_MESSAGE_ID_SETDEPTHBOUNDS_INVALIDARGS = 0x413,
+    D3D12_MESSAGE_ID_GPU_BASED_VALIDATION_RESOURCE_STATE_IMPRECISE = 0x414,
+    D3D12_MESSAGE_ID_COMMAND_LIST_PIPELINE_STATE_NOT_SET = 0x415,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_SHADER_MODEL_MISMATCH = 0x416,
+    D3D12_MESSAGE_ID_OBJECT_ACCESSED_WHILE_STILL_IN_USE = 0x417,
+    D3D12_MESSAGE_ID_PROGRAMMABLE_MSAA_UNSUPPORTED = 0x418,
+    D3D12_MESSAGE_ID_SETSAMPLEPOSITIONS_INVALIDARGS = 0x419,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCEREGION_INVALID_RECT = 0x41a,
+    D3D12_MESSAGE_ID_CREATE_VIDEODECODECOMMANDQUEUE = 0x41b,
+    D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDLIST = 0x41c,
+    D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSCOMMANDQUEUE = 0x41d,
+    D3D12_MESSAGE_ID_LIVE_VIDEODECODECOMMANDQUEUE = 0x41e,
+    D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDLIST = 0x41f,
+    D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSCOMMANDQUEUE = 0x420,
+    D3D12_MESSAGE_ID_DESTROY_VIDEODECODECOMMANDQUEUE = 0x421,
+    D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDLIST = 0x422,
+    D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSCOMMANDQUEUE = 0x423,
+    D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSOR = 0x424,
+    D3D12_MESSAGE_ID_CREATE_VIDEOPROCESSSTREAM = 0x425,
+    D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSOR = 0x426,
+    D3D12_MESSAGE_ID_LIVE_VIDEOPROCESSSTREAM = 0x427,
+    D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSOR = 0x428,
+    D3D12_MESSAGE_ID_DESTROY_VIDEOPROCESSSTREAM = 0x429,
+    D3D12_MESSAGE_ID_PROCESS_FRAME_INVALID_PARAMETERS = 0x42a,
+    D3D12_MESSAGE_ID_COPY_INVALIDLAYOUT = 0x42b,
+    D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION = 0x42c,
+    D3D12_MESSAGE_ID_CREATE_CRYPTO_SESSION_POLICY = 0x42d,
+    D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION = 0x42e,
+    D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION = 0x42f,
+    D3D12_MESSAGE_ID_LIVE_CRYPTO_SESSION_POLICY = 0x430,
+    D3D12_MESSAGE_ID_LIVE_PROTECTED_RESOURCE_SESSION = 0x431,
+    D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION = 0x432,
+    D3D12_MESSAGE_ID_DESTROY_CRYPTO_SESSION_POLICY = 0x433,
+    D3D12_MESSAGE_ID_DESTROY_PROTECTED_RESOURCE_SESSION = 0x434,
+    D3D12_MESSAGE_ID_PROTECTED_RESOURCE_SESSION_UNSUPPORTED = 0x435,
+    D3D12_MESSAGE_ID_FENCE_INVALIDOPERATION = 0x436,
+    D3D12_MESSAGE_ID_CREATEQUERY_HEAP_COPY_QUEUE_TIMESTAMPS_NOT_SUPPORTED = 0x437,
+    D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_DEFERRED = 0x438,
+    D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMFIRSTUSE = 0x439,
+    D3D12_MESSAGE_ID_SAMPLEPOSITIONS_MISMATCH_RECORDTIME_ASSUMEDFROMCLEAR = 0x43a,
+    D3D12_MESSAGE_ID_CREATE_VIDEODECODERHEAP = 0x43b,
+    D3D12_MESSAGE_ID_LIVE_VIDEODECODERHEAP = 0x43c,
+    D3D12_MESSAGE_ID_DESTROY_VIDEODECODERHEAP = 0x43d,
+    D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDARG_RETURN = 0x43e,
+    D3D12_MESSAGE_ID_OPENEXISTINGHEAP_OUTOFMEMORY_RETURN = 0x43f,
+    D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDADDRESS = 0x440,
+    D3D12_MESSAGE_ID_OPENEXISTINGHEAP_INVALIDHANDLE = 0x441,
+    D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_DEST = 0x442,
+    D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_MODE = 0x443,
+    D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_INVALID_ALIGNMENT = 0x444,
+    D3D12_MESSAGE_ID_WRITEBUFFERIMMEDIATE_NOT_SUPPORTED = 0x445,
+    D3D12_MESSAGE_ID_SETVIEWINSTANCEMASK_INVALIDARGS = 0x446,
+    D3D12_MESSAGE_ID_VIEW_INSTANCING_UNSUPPORTED = 0x447,
+    D3D12_MESSAGE_ID_VIEW_INSTANCING_INVALIDARGS = 0x448,
+    D3D12_MESSAGE_ID_COPYTEXTUREREGION_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 0x449,
+    D3D12_MESSAGE_ID_COPYRESOURCE_MISMATCH_DECODE_REFERENCE_ONLY_FLAG = 0x44a,
+    D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_FAILURE = 0x44b,
+    D3D12_MESSAGE_ID_CREATE_VIDEO_DECODE_HEAP_CAPS_UNSUPPORTED = 0x44c,
+    D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_INVALID_INPUT = 0x44d,
+    D3D12_MESSAGE_ID_CREATE_VIDEO_DECODER_UNSUPPORTED = 0x44e,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_METADATA_ERROR = 0x44f,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_VIEW_INSTANCING_VERTEX_SIZE_EXCEEDED = 0x450,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_RUNTIME_INTERNAL_ERROR = 0x451,
+    D3D12_MESSAGE_ID_NO_VIDEO_API_SUPPORT = 0x452,
+    D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_INVALID_INPUT = 0x453,
+    D3D12_MESSAGE_ID_CREATE_VIDEO_PROCESSOR_CAPS_FAILURE = 0x454,
+    D3D12_MESSAGE_ID_VIDEO_PROCESS_SUPPORT_UNSUPPORTED_FORMAT = 0x455,
+    D3D12_MESSAGE_ID_VIDEO_DECODE_FRAME_INVALID_ARGUMENT = 0x456,
+    D3D12_MESSAGE_ID_ENQUEUE_MAKE_RESIDENT_INVALID_FLAGS = 0x457,
+    D3D12_MESSAGE_ID_OPENEXISTINGHEAP_UNSUPPORTED = 0x458,
+    D3D12_MESSAGE_ID_VIDEO_PROCESS_FRAMES_INVALID_ARGUMENT = 0x459,
+    D3D12_MESSAGE_ID_VIDEO_DECODE_SUPPORT_UNSUPPORTED = 0x45a,
+    D3D12_MESSAGE_ID_CREATE_COMMANDRECORDER = 0x45b,
+    D3D12_MESSAGE_ID_LIVE_COMMANDRECORDER = 0x45c,
+    D3D12_MESSAGE_ID_DESTROY_COMMANDRECORDER = 0x45d,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_VIDEO_NOT_SUPPORTED = 0x45e,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_SUPPORT_FLAGS = 0x45f,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_INVALID_FLAGS = 0x460,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_RECORDER_MORE_RECORDERS_THAN_LOGICAL_PROCESSORS = 0x461,
+    D3D12_MESSAGE_ID_CREATE_COMMANDPOOL = 0x462,
+    D3D12_MESSAGE_ID_LIVE_COMMANDPOOL = 0x463,
+    D3D12_MESSAGE_ID_DESTROY_COMMANDPOOL = 0x464,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_POOL_INVALID_FLAGS = 0x465,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_VIDEO_NOT_SUPPORTED = 0x466,
+    D3D12_MESSAGE_ID_COMMAND_RECORDER_SUPPORT_FLAGS_MISMATCH = 0x467,
+    D3D12_MESSAGE_ID_COMMAND_RECORDER_CONTENTION = 0x468,
+    D3D12_MESSAGE_ID_COMMAND_RECORDER_USAGE_WITH_CREATECOMMANDLIST_COMMAND_LIST = 0x469,
+    D3D12_MESSAGE_ID_COMMAND_ALLOCATOR_USAGE_WITH_CREATECOMMANDLIST1_COMMAND_LIST = 0x46a,
+    D3D12_MESSAGE_ID_CANNOT_EXECUTE_EMPTY_COMMAND_LIST = 0x46b,
+    D3D12_MESSAGE_ID_CANNOT_RESET_COMMAND_POOL_WITH_OPEN_COMMAND_LISTS = 0x46c,
+    D3D12_MESSAGE_ID_CANNOT_USE_COMMAND_RECORDER_WITHOUT_CURRENT_TARGET = 0x46d,
+    D3D12_MESSAGE_ID_CANNOT_CHANGE_COMMAND_RECORDER_TARGET_WHILE_RECORDING = 0x46e,
+    D3D12_MESSAGE_ID_COMMAND_POOL_SYNC = 0x46f,
+    D3D12_MESSAGE_ID_EVICT_UNDERFLOW = 0x470,
+    D3D12_MESSAGE_ID_CREATE_META_COMMAND = 0x471,
+    D3D12_MESSAGE_ID_LIVE_META_COMMAND = 0x472,
+    D3D12_MESSAGE_ID_DESTROY_META_COMMAND = 0x473,
+    D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_DST_RESOURCE = 0x474,
+    D3D12_MESSAGE_ID_COPYBUFFERREGION_INVALID_SRC_RESOURCE = 0x475,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_DST_RESOURCE = 0x476,
+    D3D12_MESSAGE_ID_ATOMICCOPYBUFFER_INVALID_SRC_RESOURCE = 0x477,
+    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_BUFFER = 0x478,
+    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_NULL_RESOURCE_DESC = 0x479,
+    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_UNSUPPORTED = 0x47a,
+    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_DIMENSION = 0x47b,
+    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_FLAGS = 0x47c,
+    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_BUFFER_OFFSET = 0x47d,
+    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_DIMENSION = 0x47e,
+    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_INVALID_RESOURCE_FLAGS = 0x47f,
+    D3D12_MESSAGE_ID_CREATEPLACEDRESOURCEONBUFFER_OUTOFMEMORY_RETURN = 0x480,
+    D3D12_MESSAGE_ID_CANNOT_CREATE_GRAPHICS_AND_VIDEO_COMMAND_RECORDER = 0x481,
+    D3D12_MESSAGE_ID_UPDATETILEMAPPINGS_POSSIBLY_MISMATCHING_PROPERTIES = 0x482,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE = 0x483,
+    D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INCOMPATIBLE_WITH_STRUCTURED_BUFFERS = 0x484,
+    D3D12_MESSAGE_ID_COMPUTE_ONLY_DEVICE_OPERATION_UNSUPPORTED = 0x485,
+    D3D12_MESSAGE_ID_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 0x486,
+    D3D12_MESSAGE_ID_EMIT_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_INVALID = 0x487,
+    D3D12_MESSAGE_ID_COPY_RAYTRACING_ACCELERATION_STRUCTURE_INVALID = 0x488,
+    D3D12_MESSAGE_ID_DISPATCH_RAYS_INVALID = 0x489,
+    D3D12_MESSAGE_ID_GET_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO_INVALID = 0x48a,
+    D3D12_MESSAGE_ID_CREATE_LIFETIMETRACKER = 0x48b,
+    D3D12_MESSAGE_ID_LIVE_LIFETIMETRACKER = 0x48c,
+    D3D12_MESSAGE_ID_DESTROY_LIFETIMETRACKER = 0x48d,
+    D3D12_MESSAGE_ID_DESTROYOWNEDOBJECT_OBJECTNOTOWNED = 0x48e,
+    D3D12_MESSAGE_ID_CREATE_TRACKEDWORKLOAD = 0x48f,
+    D3D12_MESSAGE_ID_LIVE_TRACKEDWORKLOAD = 0x490,
+    D3D12_MESSAGE_ID_DESTROY_TRACKEDWORKLOAD = 0x491,
+    D3D12_MESSAGE_ID_RENDER_PASS_ERROR = 0x492,
+    D3D12_MESSAGE_ID_META_COMMAND_ID_INVALID = 0x493,
+    D3D12_MESSAGE_ID_META_COMMAND_UNSUPPORTED_PARAMS = 0x494,
+    D3D12_MESSAGE_ID_META_COMMAND_FAILED_ENUMERATION = 0x495,
+    D3D12_MESSAGE_ID_META_COMMAND_PARAMETER_SIZE_MISMATCH = 0x496,
+    D3D12_MESSAGE_ID_UNINITIALIZED_META_COMMAND = 0x497,
+    D3D12_MESSAGE_ID_META_COMMAND_INVALID_GPU_VIRTUAL_ADDRESS = 0x498,
+    D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDLIST = 0x499,
+    D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDLIST = 0x49a,
+    D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDLIST = 0x49b,
+    D3D12_MESSAGE_ID_CREATE_VIDEOENCODECOMMANDQUEUE = 0x49c,
+    D3D12_MESSAGE_ID_LIVE_VIDEOENCODECOMMANDQUEUE = 0x49d,
+    D3D12_MESSAGE_ID_DESTROY_VIDEOENCODECOMMANDQUEUE = 0x49e,
+    D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONESTIMATOR = 0x49f,
+    D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONESTIMATOR = 0x4a0,
+    D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONESTIMATOR = 0x4a1,
+    D3D12_MESSAGE_ID_CREATE_VIDEOMOTIONVECTORHEAP = 0x4a2,
+    D3D12_MESSAGE_ID_LIVE_VIDEOMOTIONVECTORHEAP = 0x4a3,
+    D3D12_MESSAGE_ID_DESTROY_VIDEOMOTIONVECTORHEAP = 0x4a4,
+    D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOADS = 0x4a5,
+    D3D12_MESSAGE_ID_MULTIPLE_TRACKED_WORKLOAD_PAIRS = 0x4a6,
+    D3D12_MESSAGE_ID_OUT_OF_ORDER_TRACKED_WORKLOAD_PAIR = 0x4a7,
+    D3D12_MESSAGE_ID_CANNOT_ADD_TRACKED_WORKLOAD = 0x4a8,
+    D3D12_MESSAGE_ID_INCOMPLETE_TRACKED_WORKLOAD_PAIR = 0x4a9,
+    D3D12_MESSAGE_ID_CREATE_STATE_OBJECT_ERROR = 0x4aa,
+    D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_ERROR = 0x4ab,
+    D3D12_MESSAGE_ID_GET_SHADER_STACK_SIZE_ERROR = 0x4ac,
+    D3D12_MESSAGE_ID_GET_PIPELINE_STACK_SIZE_ERROR = 0x4ad,
+    D3D12_MESSAGE_ID_SET_PIPELINE_STACK_SIZE_ERROR = 0x4ae,
+    D3D12_MESSAGE_ID_GET_SHADER_IDENTIFIER_SIZE_INVALID = 0x4af,
+    D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_INVALID = 0x4b0,
+    D3D12_MESSAGE_ID_CHECK_DRIVER_MATCHING_IDENTIFIER_DRIVER_REPORTED_ISSUE = 0x4b1,
+    D3D12_MESSAGE_ID_RENDER_PASS_INVALID_RESOURCE_BARRIER = 0x4b2,
+    D3D12_MESSAGE_ID_RENDER_PASS_DISALLOWED_API_CALLED = 0x4b3,
+    D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_NEST_RENDER_PASSES = 0x4b4,
+    D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_END_WITHOUT_BEGIN = 0x4b5,
+    D3D12_MESSAGE_ID_RENDER_PASS_CANNOT_CLOSE_COMMAND_LIST = 0x4b6,
+    D3D12_MESSAGE_ID_RENDER_PASS_GPU_WORK_WHILE_SUSPENDED = 0x4b7,
+    D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_SUSPEND_RESUME = 0x4b8,
+    D3D12_MESSAGE_ID_RENDER_PASS_NO_PRIOR_SUSPEND_WITHIN_EXECUTECOMMANDLISTS = 0x4b9,
+    D3D12_MESSAGE_ID_RENDER_PASS_NO_SUBSEQUENT_RESUME_WITHIN_EXECUTECOMMANDLISTS = 0x4ba,
+    D3D12_MESSAGE_ID_TRACKED_WORKLOAD_COMMAND_QUEUE_MISMATCH = 0x4bb,
+    D3D12_MESSAGE_ID_TRACKED_WORKLOAD_NOT_SUPPORTED = 0x4bc,
+    D3D12_MESSAGE_ID_RENDER_PASS_MISMATCHING_NO_ACCESS = 0x4bd,
+    D3D12_MESSAGE_ID_RENDER_PASS_UNSUPPORTED_RESOLVE = 0x4be,
+    D3D12_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_INVALID_RESOURCE_PTR = 0x4bf,
+    D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_SIGNAL = 0x4c0,
+    D3D12_MESSAGE_ID_WINDOWS7_FENCE_OUTOFORDER_WAIT = 0x4c1,
+    D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_ESTIMATOR_INVALID_ARGUMENT = 0x4c2,
+    D3D12_MESSAGE_ID_VIDEO_CREATE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 0x4c3,
+    D3D12_MESSAGE_ID_ESTIMATE_MOTION_INVALID_ARGUMENT = 0x4c4,
+    D3D12_MESSAGE_ID_RESOLVE_MOTION_VECTOR_HEAP_INVALID_ARGUMENT = 0x4c5,
+    D3D12_MESSAGE_ID_GETGPUVIRTUALADDRESS_INVALID_HEAP_TYPE = 0x4c6,
+    D3D12_MESSAGE_ID_SET_BACKGROUND_PROCESSING_MODE_INVALID_ARGUMENT = 0x4c7,
+    D3D12_MESSAGE_ID_CREATE_COMMAND_LIST_INVALID_COMMAND_LIST_TYPE_FOR_FEATURE_LEVEL = 0x4c8,
+    D3D12_MESSAGE_ID_CREATE_VIDEOEXTENSIONCOMMAND = 0x4c9,
+    D3D12_MESSAGE_ID_LIVE_VIDEOEXTENSIONCOMMAND = 0x4ca,
+    D3D12_MESSAGE_ID_DESTROY_VIDEOEXTENSIONCOMMAND = 0x4cb,
+    D3D12_MESSAGE_ID_INVALID_VIDEO_EXTENSION_COMMAND_ID = 0x4cc,
+    D3D12_MESSAGE_ID_VIDEO_EXTENSION_COMMAND_INVALID_ARGUMENT = 0x4cd,
+    D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_NOT_UNIQUE_IN_DXIL_LIBRARY = 0x4ce,
+    D3D12_MESSAGE_ID_VARIABLE_SHADING_RATE_NOT_ALLOWED_WITH_TIR = 0x4cf,
+    D3D12_MESSAGE_ID_GEOMETRY_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 0x4d0,
+    D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_SHADING_RATE = 0x4d1,
+    D3D12_MESSAGE_ID_RSSETSHADING_RATE_SHADING_RATE_NOT_PERMITTED_BY_CAP = 0x4d2,
+    D3D12_MESSAGE_ID_RSSETSHADING_RATE_INVALID_COMBINER = 0x4d3,
+    D3D12_MESSAGE_ID_RSSETSHADINGRATEIMAGE_REQUIRES_TIER_2 = 0x4d4,
+    D3D12_MESSAGE_ID_RSSETSHADINGRATE_REQUIRES_TIER_1 = 0x4d5,
+    D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_FORMAT = 0x4d6,
+    D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_ARRAY_SIZE = 0x4d7,
+    D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_MIP_LEVEL = 0x4d8,
+    D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_COUNT = 0x4d9,
+    D3D12_MESSAGE_ID_SHADING_RATE_IMAGE_INCORRECT_SAMPLE_QUALITY = 0x4da,
+    D3D12_MESSAGE_ID_NON_RETAIL_SHADER_MODEL_WONT_VALIDATE = 0x4db,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_ROOT_SIGNATURE_MISMATCH = 0x4dc,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_ROOT_SIGNATURE_MISMATCH = 0x4dd,
+    D3D12_MESSAGE_ID_ADD_TO_STATE_OBJECT_ERROR = 0x4de,
+    D3D12_MESSAGE_ID_CREATE_PROTECTED_RESOURCE_SESSION_INVALID_ARGUMENT = 0x4df,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_PSO_DESC_MISMATCH = 0x4e0,
+    D3D12_MESSAGE_ID_CREATEPIPELINESTATE_MS_INCOMPLETE_TYPE = 0x4e1,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_AS_NOT_MS_MISMATCH = 0x4e2,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_MS_NOT_PS_MISMATCH = 0x4e3,
+    D3D12_MESSAGE_ID_NONZERO_SAMPLER_FEEDBACK_MIP_REGION_WITH_INCOMPATIBLE_FORMAT = 0x4e4,
+    D3D12_MESSAGE_ID_CREATEGRAPHICSPIPELINESTATE_INPUTLAYOUT_SHADER_MISMATCH = 0x4e5,
+    D3D12_MESSAGE_ID_EMPTY_DISPATCH = 0x4e6,
+    D3D12_MESSAGE_ID_RESOURCE_FORMAT_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 0x4e7,
+    D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_MIP_REGION = 0x4e8,
+    D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_DIMENSION = 0x4e9,
+    D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_COUNT = 0x4ea,
+    D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_SAMPLE_QUALITY = 0x4eb,
+    D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_INVALID_LAYOUT = 0x4ec,
+    D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_MAP_REQUIRES_UNORDERED_ACCESS_FLAG = 0x4ed,
+    D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_NULL_ARGUMENTS = 0x4ee,
+    D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_UAV_REQUIRES_SAMPLER_FEEDBACK_CAPABILITY = 0x4ef,
+    D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_REQUIRES_FEEDBACK_MAP_FORMAT = 0x4f0,
+    D3D12_MESSAGE_ID_CREATEMESHSHADER_INVALIDSHADERBYTECODE = 0x4f1,
+    D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTOFMEMORY = 0x4f2,
+    D3D12_MESSAGE_ID_CREATEMESHSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE = 0x4f3,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_INVALID_FORMAT = 0x4f4,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_INVALID_MIP_LEVEL_COUNT = 0x4f5,
+    D3D12_MESSAGE_ID_RESOLVESUBRESOURCE_SAMPLER_FEEDBACK_TRANSCODE_ARRAY_SIZE_MISMATCH = 0x4f6,
+    D3D12_MESSAGE_ID_SAMPLER_FEEDBACK_CREATE_UAV_MISMATCHING_TARGETED_RESOURCE = 0x4f7,
+    D3D12_MESSAGE_ID_CREATEMESHSHADER_OUTPUTEXCEEDSMAXSIZE = 0x4f8,
+    D3D12_MESSAGE_ID_CREATEMESHSHADER_GROUPSHAREDEXCEEDSMAXSIZE = 0x4f9,
+    D3D12_MESSAGE_ID_VERTEX_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 0x4fa,
+    D3D12_MESSAGE_ID_MESH_SHADER_OUTPUTTING_BOTH_VIEWPORT_ARRAY_INDEX_AND_SHADING_RATE_NOT_SUPPORTED_ON_DEVICE = 0x4fb,
+    D3D12_MESSAGE_ID_CREATEMESHSHADER_MISMATCHEDASMSPAYLOADSIZE = 0x4fc,
+    D3D12_MESSAGE_ID_CREATE_ROOT_SIGNATURE_UNBOUNDED_STATIC_DESCRIPTORS = 0x4fd,
+    D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_INVALIDSHADERBYTECODE = 0x4fe,
+    D3D12_MESSAGE_ID_CREATEAMPLIFICATIONSHADER_OUTOFMEMORY = 0x4ff,
+    D3D12_MESSAGE_ID_D3D12_MESSAGES_END = 0x500
+} D3D12_MESSAGE_ID;
+typedef enum D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE {
+    D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_NONE = 0x0,
+    D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_STATE_TRACKING_ONLY = 0x1,
+    D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_UNGUARDED_VALIDATION = 0x2,
+    D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE_GUARDED_VALIDATION = 0x3,
+    NUM_D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODES = 0x4
+} D3D12_GPU_BASED_VALIDATION_SHADER_PATCH_MODE;
+typedef struct D3D12_MESSAGE {
+    D3D12_MESSAGE_CATEGORY Category;
+    D3D12_MESSAGE_SEVERITY Severity;
+    D3D12_MESSAGE_ID ID;
+    const char *pDescription;
+    SIZE_T DescriptionByteLength;
+} D3D12_MESSAGE;
+typedef struct D3D12_INFO_QUEUE_FILTER_DESC {
+    UINT NumCategories;
+    D3D12_MESSAGE_CATEGORY *pCategoryList;
+    UINT NumSeverities;
+    D3D12_MESSAGE_SEVERITY *pSeverityList;
+    UINT NumIDs;
+    D3D12_MESSAGE_ID *pIDList;
+} D3D12_INFO_QUEUE_FILTER_DESC;
+typedef struct D3D12_INFO_QUEUE_FILTER {
+    D3D12_INFO_QUEUE_FILTER_DESC AllowList;
+    D3D12_INFO_QUEUE_FILTER_DESC DenyList;
+} D3D12_INFO_QUEUE_FILTER;
+/*****************************************************************************
+ * ID3D12Debug interface
+ */
+#ifndef __ID3D12Debug_INTERFACE_DEFINED__
+#define __ID3D12Debug_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9,0x89, 0xf0,0x27,0x44,0x82,0x45,0xe0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("344488b7-6846-474b-b989-f027448245e0")
+ID3D12Debug : public IUnknown
+{
+    virtual void STDMETHODCALLTYPE EnableDebugLayer(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Debug, 0x344488b7, 0x6846, 0x474b, 0xb9,0x89, 0xf0,0x27,0x44,0x82,0x45,0xe0)
+#endif
+#else
+typedef struct ID3D12DebugVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12Debug *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12Debug *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12Debug *This);
+
+    /*** ID3D12Debug methods ***/
+    void (STDMETHODCALLTYPE *EnableDebugLayer)(
+        ID3D12Debug *This);
+
+    END_INTERFACE
+} ID3D12DebugVtbl;
+
+interface ID3D12Debug {
+    CONST_VTBL ID3D12DebugVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Debug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Debug_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Debug_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Debug methods ***/
+#define ID3D12Debug_EnableDebugLayer(This) (This)->lpVtbl->EnableDebugLayer(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Debug_QueryInterface(ID3D12Debug* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Debug_AddRef(ID3D12Debug* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Debug_Release(ID3D12Debug* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12Debug methods ***/
+static FORCEINLINE void ID3D12Debug_EnableDebugLayer(ID3D12Debug* This) {
+    This->lpVtbl->EnableDebugLayer(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12Debug_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12Debug1 interface
+ */
+#ifndef __ID3D12Debug1_INTERFACE_DEFINED__
+#define __ID3D12Debug1_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12Debug1, 0xaffaa4ca, 0x63fe, 0x4d8e, 0xb8,0xad, 0x15,0x90,0x00,0xaf,0x43,0x04);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("affaa4ca-63fe-4d8e-b8ad-159000af4304")
+ID3D12Debug1 : public IUnknown
+{
+    virtual void STDMETHODCALLTYPE EnableDebugLayer(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE SetEnableGPUBasedValidation(
+        WINBOOL enable) = 0;
+
+    virtual void STDMETHODCALLTYPE SetEnableSynchronizedCommandQueueValidation(
+        WINBOOL enable) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12Debug1, 0xaffaa4ca, 0x63fe, 0x4d8e, 0xb8,0xad, 0x15,0x90,0x00,0xaf,0x43,0x04)
+#endif
+#else
+typedef struct ID3D12Debug1Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12Debug1 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12Debug1 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12Debug1 *This);
+
+    /*** ID3D12Debug1 methods ***/
+    void (STDMETHODCALLTYPE *EnableDebugLayer)(
+        ID3D12Debug1 *This);
+
+    void (STDMETHODCALLTYPE *SetEnableGPUBasedValidation)(
+        ID3D12Debug1 *This,
+        WINBOOL enable);
+
+    void (STDMETHODCALLTYPE *SetEnableSynchronizedCommandQueueValidation)(
+        ID3D12Debug1 *This,
+        WINBOOL enable);
+
+    END_INTERFACE
+} ID3D12Debug1Vtbl;
+
+interface ID3D12Debug1 {
+    CONST_VTBL ID3D12Debug1Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12Debug1_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12Debug1_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12Debug1_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12Debug1 methods ***/
+#define ID3D12Debug1_EnableDebugLayer(This) (This)->lpVtbl->EnableDebugLayer(This)
+#define ID3D12Debug1_SetEnableGPUBasedValidation(This,enable) (This)->lpVtbl->SetEnableGPUBasedValidation(This,enable)
+#define ID3D12Debug1_SetEnableSynchronizedCommandQueueValidation(This,enable) (This)->lpVtbl->SetEnableSynchronizedCommandQueueValidation(This,enable)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12Debug1_QueryInterface(ID3D12Debug1* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12Debug1_AddRef(ID3D12Debug1* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12Debug1_Release(ID3D12Debug1* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12Debug1 methods ***/
+static FORCEINLINE void ID3D12Debug1_EnableDebugLayer(ID3D12Debug1* This) {
+    This->lpVtbl->EnableDebugLayer(This);
+}
+static FORCEINLINE void ID3D12Debug1_SetEnableGPUBasedValidation(ID3D12Debug1* This,WINBOOL enable) {
+    This->lpVtbl->SetEnableGPUBasedValidation(This,enable);
+}
+static FORCEINLINE void ID3D12Debug1_SetEnableSynchronizedCommandQueueValidation(ID3D12Debug1* This,WINBOOL enable) {
+    This->lpVtbl->SetEnableSynchronizedCommandQueueValidation(This,enable);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12Debug1_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ID3D12InfoQueue interface
+ */
+#ifndef __ID3D12InfoQueue_INTERFACE_DEFINED__
+#define __ID3D12InfoQueue_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ID3D12InfoQueue, 0x0742a90b, 0xc387, 0x483f, 0xb9,0x46, 0x30,0xa7,0xe4,0xe6,0x14,0x58);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0742a90b-c387-483f-b946-30a7e4e61458")
+ID3D12InfoQueue : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetMessageCountLimit(
+        UINT64 limit) = 0;
+
+    virtual void STDMETHODCALLTYPE ClearStoredMessages(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMessage(
+        UINT64 index,
+        D3D12_MESSAGE *message,
+        SIZE_T *length) = 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(
+        D3D12_INFO_QUEUE_FILTER *filter) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStorageFilter(
+        D3D12_INFO_QUEUE_FILTER *filter,
+        SIZE_T *length) = 0;
+
+    virtual void STDMETHODCALLTYPE ClearStorageFilter(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PushEmptyStorageFilter(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PushCopyOfStorageFilter(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PushStorageFilter(
+        D3D12_INFO_QUEUE_FILTER *filter) = 0;
+
+    virtual void STDMETHODCALLTYPE PopStorageFilter(
+        ) = 0;
+
+    virtual UINT STDMETHODCALLTYPE GetStorageFilterStackSize(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddRetrievalFilterEntries(
+        D3D12_INFO_QUEUE_FILTER *filter) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRetrievalFilter(
+        D3D12_INFO_QUEUE_FILTER *filter,
+        SIZE_T *length) = 0;
+
+    virtual void STDMETHODCALLTYPE ClearRetrievalFilter(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PushEmptyRetrievalFilter(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PushCopyOfRetrievalFilter(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PushRetrievalFilter(
+        D3D12_INFO_QUEUE_FILTER *filter) = 0;
+
+    virtual void STDMETHODCALLTYPE PopRetrievalFilter(
+        ) = 0;
+
+    virtual UINT STDMETHODCALLTYPE GetRetrievalFilterStackSize(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddMessage(
+        D3D12_MESSAGE_CATEGORY category,
+        D3D12_MESSAGE_SEVERITY severity,
+        D3D12_MESSAGE_ID id,
+        const char *description) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddApplicationMessage(
+        D3D12_MESSAGE_SEVERITY severity,
+        const char *description) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetBreakOnCategory(
+        D3D12_MESSAGE_CATEGORY category,
+        WINBOOL enable) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetBreakOnSeverity(
+        D3D12_MESSAGE_SEVERITY severity,
+        WINBOOL enable) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetBreakOnID(
+        D3D12_MESSAGE_ID id,
+        WINBOOL enable) = 0;
+
+    virtual WINBOOL STDMETHODCALLTYPE GetBreakOnCategory(
+        D3D12_MESSAGE_CATEGORY category) = 0;
+
+    virtual WINBOOL STDMETHODCALLTYPE GetBreakOnSeverity(
+        D3D12_MESSAGE_SEVERITY severity) = 0;
+
+    virtual WINBOOL STDMETHODCALLTYPE GetBreakOnID(
+        D3D12_MESSAGE_ID id) = 0;
+
+    virtual void STDMETHODCALLTYPE SetMuteDebugOutput(
+        WINBOOL mute) = 0;
+
+    virtual WINBOOL STDMETHODCALLTYPE GetMuteDebugOutput(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ID3D12InfoQueue, 0x0742a90b, 0xc387, 0x483f, 0xb9,0x46, 0x30,0xa7,0xe4,0xe6,0x14,0x58)
+#endif
+#else
+typedef struct ID3D12InfoQueueVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ID3D12InfoQueue *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ID3D12InfoQueue *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ID3D12InfoQueue *This);
+
+    /*** ID3D12InfoQueue methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetMessageCountLimit)(
+        ID3D12InfoQueue *This,
+        UINT64 limit);
+
+    void (STDMETHODCALLTYPE *ClearStoredMessages)(
+        ID3D12InfoQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *GetMessage)(
+        ID3D12InfoQueue *This,
+        UINT64 index,
+        D3D12_MESSAGE *message,
+        SIZE_T *length);
+
+    UINT64 (STDMETHODCALLTYPE *GetNumMessagesAllowedByStorageFilter)(
+        ID3D12InfoQueue *This);
+
+    UINT64 (STDMETHODCALLTYPE *GetNumMessagesDeniedByStorageFilter)(
+        ID3D12InfoQueue *This);
+
+    UINT64 (STDMETHODCALLTYPE *GetNumStoredMessages)(
+        ID3D12InfoQueue *This);
+
+    UINT64 (STDMETHODCALLTYPE *GetNumStoredMessagesAllowedByRetrievalFilter)(
+        ID3D12InfoQueue *This);
+
+    UINT64 (STDMETHODCALLTYPE *GetNumMessagesDiscardedByMessageCountLimit)(
+        ID3D12InfoQueue *This);
+
+    UINT64 (STDMETHODCALLTYPE *GetMessageCountLimit)(
+        ID3D12InfoQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *AddStorageFilterEntries)(
+        ID3D12InfoQueue *This,
+        D3D12_INFO_QUEUE_FILTER *filter);
+
+    HRESULT (STDMETHODCALLTYPE *GetStorageFilter)(
+        ID3D12InfoQueue *This,
+        D3D12_INFO_QUEUE_FILTER *filter,
+        SIZE_T *length);
+
+    void (STDMETHODCALLTYPE *ClearStorageFilter)(
+        ID3D12InfoQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *PushEmptyStorageFilter)(
+        ID3D12InfoQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *PushCopyOfStorageFilter)(
+        ID3D12InfoQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *PushStorageFilter)(
+        ID3D12InfoQueue *This,
+        D3D12_INFO_QUEUE_FILTER *filter);
+
+    void (STDMETHODCALLTYPE *PopStorageFilter)(
+        ID3D12InfoQueue *This);
+
+    UINT (STDMETHODCALLTYPE *GetStorageFilterStackSize)(
+        ID3D12InfoQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *AddRetrievalFilterEntries)(
+        ID3D12InfoQueue *This,
+        D3D12_INFO_QUEUE_FILTER *filter);
+
+    HRESULT (STDMETHODCALLTYPE *GetRetrievalFilter)(
+        ID3D12InfoQueue *This,
+        D3D12_INFO_QUEUE_FILTER *filter,
+        SIZE_T *length);
+
+    void (STDMETHODCALLTYPE *ClearRetrievalFilter)(
+        ID3D12InfoQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *PushEmptyRetrievalFilter)(
+        ID3D12InfoQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *PushCopyOfRetrievalFilter)(
+        ID3D12InfoQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *PushRetrievalFilter)(
+        ID3D12InfoQueue *This,
+        D3D12_INFO_QUEUE_FILTER *filter);
+
+    void (STDMETHODCALLTYPE *PopRetrievalFilter)(
+        ID3D12InfoQueue *This);
+
+    UINT (STDMETHODCALLTYPE *GetRetrievalFilterStackSize)(
+        ID3D12InfoQueue *This);
+
+    HRESULT (STDMETHODCALLTYPE *AddMessage)(
+        ID3D12InfoQueue *This,
+        D3D12_MESSAGE_CATEGORY category,
+        D3D12_MESSAGE_SEVERITY severity,
+        D3D12_MESSAGE_ID id,
+        const char *description);
+
+    HRESULT (STDMETHODCALLTYPE *AddApplicationMessage)(
+        ID3D12InfoQueue *This,
+        D3D12_MESSAGE_SEVERITY severity,
+        const char *description);
+
+    HRESULT (STDMETHODCALLTYPE *SetBreakOnCategory)(
+        ID3D12InfoQueue *This,
+        D3D12_MESSAGE_CATEGORY category,
+        WINBOOL enable);
+
+    HRESULT (STDMETHODCALLTYPE *SetBreakOnSeverity)(
+        ID3D12InfoQueue *This,
+        D3D12_MESSAGE_SEVERITY severity,
+        WINBOOL enable);
+
+    HRESULT (STDMETHODCALLTYPE *SetBreakOnID)(
+        ID3D12InfoQueue *This,
+        D3D12_MESSAGE_ID id,
+        WINBOOL enable);
+
+    WINBOOL (STDMETHODCALLTYPE *GetBreakOnCategory)(
+        ID3D12InfoQueue *This,
+        D3D12_MESSAGE_CATEGORY category);
+
+    WINBOOL (STDMETHODCALLTYPE *GetBreakOnSeverity)(
+        ID3D12InfoQueue *This,
+        D3D12_MESSAGE_SEVERITY severity);
+
+    WINBOOL (STDMETHODCALLTYPE *GetBreakOnID)(
+        ID3D12InfoQueue *This,
+        D3D12_MESSAGE_ID id);
+
+    void (STDMETHODCALLTYPE *SetMuteDebugOutput)(
+        ID3D12InfoQueue *This,
+        WINBOOL mute);
+
+    WINBOOL (STDMETHODCALLTYPE *GetMuteDebugOutput)(
+        ID3D12InfoQueue *This);
+
+    END_INTERFACE
+} ID3D12InfoQueueVtbl;
+
+interface ID3D12InfoQueue {
+    CONST_VTBL ID3D12InfoQueueVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ID3D12InfoQueue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ID3D12InfoQueue_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ID3D12InfoQueue_Release(This) (This)->lpVtbl->Release(This)
+/*** ID3D12InfoQueue methods ***/
+#define ID3D12InfoQueue_SetMessageCountLimit(This,limit) (This)->lpVtbl->SetMessageCountLimit(This,limit)
+#define ID3D12InfoQueue_ClearStoredMessages(This) (This)->lpVtbl->ClearStoredMessages(This)
+#define ID3D12InfoQueue_GetMessage(This,index,message,length) (This)->lpVtbl->GetMessage(This,index,message,length)
+#define ID3D12InfoQueue_GetNumMessagesAllowedByStorageFilter(This) (This)->lpVtbl->GetNumMessagesAllowedByStorageFilter(This)
+#define ID3D12InfoQueue_GetNumMessagesDeniedByStorageFilter(This) (This)->lpVtbl->GetNumMessagesDeniedByStorageFilter(This)
+#define ID3D12InfoQueue_GetNumStoredMessages(This) (This)->lpVtbl->GetNumStoredMessages(This)
+#define ID3D12InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(This) (This)->lpVtbl->GetNumStoredMessagesAllowedByRetrievalFilter(This)
+#define ID3D12InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(This) (This)->lpVtbl->GetNumMessagesDiscardedByMessageCountLimit(This)
+#define ID3D12InfoQueue_GetMessageCountLimit(This) (This)->lpVtbl->GetMessageCountLimit(This)
+#define ID3D12InfoQueue_AddStorageFilterEntries(This,filter) (This)->lpVtbl->AddStorageFilterEntries(This,filter)
+#define ID3D12InfoQueue_GetStorageFilter(This,filter,length) (This)->lpVtbl->GetStorageFilter(This,filter,length)
+#define ID3D12InfoQueue_ClearStorageFilter(This) (This)->lpVtbl->ClearStorageFilter(This)
+#define ID3D12InfoQueue_PushEmptyStorageFilter(This) (This)->lpVtbl->PushEmptyStorageFilter(This)
+#define ID3D12InfoQueue_PushCopyOfStorageFilter(This) (This)->lpVtbl->PushCopyOfStorageFilter(This)
+#define ID3D12InfoQueue_PushStorageFilter(This,filter) (This)->lpVtbl->PushStorageFilter(This,filter)
+#define ID3D12InfoQueue_PopStorageFilter(This) (This)->lpVtbl->PopStorageFilter(This)
+#define ID3D12InfoQueue_GetStorageFilterStackSize(This) (This)->lpVtbl->GetStorageFilterStackSize(This)
+#define ID3D12InfoQueue_AddRetrievalFilterEntries(This,filter) (This)->lpVtbl->AddRetrievalFilterEntries(This,filter)
+#define ID3D12InfoQueue_GetRetrievalFilter(This,filter,length) (This)->lpVtbl->GetRetrievalFilter(This,filter,length)
+#define ID3D12InfoQueue_ClearRetrievalFilter(This) (This)->lpVtbl->ClearRetrievalFilter(This)
+#define ID3D12InfoQueue_PushEmptyRetrievalFilter(This) (This)->lpVtbl->PushEmptyRetrievalFilter(This)
+#define ID3D12InfoQueue_PushCopyOfRetrievalFilter(This) (This)->lpVtbl->PushCopyOfRetrievalFilter(This)
+#define ID3D12InfoQueue_PushRetrievalFilter(This,filter) (This)->lpVtbl->PushRetrievalFilter(This,filter)
+#define ID3D12InfoQueue_PopRetrievalFilter(This) (This)->lpVtbl->PopRetrievalFilter(This)
+#define ID3D12InfoQueue_GetRetrievalFilterStackSize(This) (This)->lpVtbl->GetRetrievalFilterStackSize(This)
+#define ID3D12InfoQueue_AddMessage(This,category,severity,id,description) (This)->lpVtbl->AddMessage(This,category,severity,id,description)
+#define ID3D12InfoQueue_AddApplicationMessage(This,severity,description) (This)->lpVtbl->AddApplicationMessage(This,severity,description)
+#define ID3D12InfoQueue_SetBreakOnCategory(This,category,enable) (This)->lpVtbl->SetBreakOnCategory(This,category,enable)
+#define ID3D12InfoQueue_SetBreakOnSeverity(This,severity,enable) (This)->lpVtbl->SetBreakOnSeverity(This,severity,enable)
+#define ID3D12InfoQueue_SetBreakOnID(This,id,enable) (This)->lpVtbl->SetBreakOnID(This,id,enable)
+#define ID3D12InfoQueue_GetBreakOnCategory(This,category) (This)->lpVtbl->GetBreakOnCategory(This,category)
+#define ID3D12InfoQueue_GetBreakOnSeverity(This,severity) (This)->lpVtbl->GetBreakOnSeverity(This,severity)
+#define ID3D12InfoQueue_GetBreakOnID(This,id) (This)->lpVtbl->GetBreakOnID(This,id)
+#define ID3D12InfoQueue_SetMuteDebugOutput(This,mute) (This)->lpVtbl->SetMuteDebugOutput(This,mute)
+#define ID3D12InfoQueue_GetMuteDebugOutput(This) (This)->lpVtbl->GetMuteDebugOutput(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ID3D12InfoQueue_QueryInterface(ID3D12InfoQueue* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ID3D12InfoQueue_AddRef(ID3D12InfoQueue* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ID3D12InfoQueue_Release(ID3D12InfoQueue* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ID3D12InfoQueue methods ***/
+static FORCEINLINE HRESULT ID3D12InfoQueue_SetMessageCountLimit(ID3D12InfoQueue* This,UINT64 limit) {
+    return This->lpVtbl->SetMessageCountLimit(This,limit);
+}
+static FORCEINLINE void ID3D12InfoQueue_ClearStoredMessages(ID3D12InfoQueue* This) {
+    This->lpVtbl->ClearStoredMessages(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_GetMessage(ID3D12InfoQueue* This,UINT64 index,D3D12_MESSAGE *message,SIZE_T *length) {
+    return This->lpVtbl->GetMessage(This,index,message,length);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetNumMessagesAllowedByStorageFilter(ID3D12InfoQueue* This) {
+    return This->lpVtbl->GetNumMessagesAllowedByStorageFilter(This);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetNumMessagesDeniedByStorageFilter(ID3D12InfoQueue* This) {
+    return This->lpVtbl->GetNumMessagesDeniedByStorageFilter(This);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetNumStoredMessages(ID3D12InfoQueue* This) {
+    return This->lpVtbl->GetNumStoredMessages(This);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetNumStoredMessagesAllowedByRetrievalFilter(ID3D12InfoQueue* This) {
+    return This->lpVtbl->GetNumStoredMessagesAllowedByRetrievalFilter(This);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetNumMessagesDiscardedByMessageCountLimit(ID3D12InfoQueue* This) {
+    return This->lpVtbl->GetNumMessagesDiscardedByMessageCountLimit(This);
+}
+static FORCEINLINE UINT64 ID3D12InfoQueue_GetMessageCountLimit(ID3D12InfoQueue* This) {
+    return This->lpVtbl->GetMessageCountLimit(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_AddStorageFilterEntries(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter) {
+    return This->lpVtbl->AddStorageFilterEntries(This,filter);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_GetStorageFilter(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter,SIZE_T *length) {
+    return This->lpVtbl->GetStorageFilter(This,filter,length);
+}
+static FORCEINLINE void ID3D12InfoQueue_ClearStorageFilter(ID3D12InfoQueue* This) {
+    This->lpVtbl->ClearStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushEmptyStorageFilter(ID3D12InfoQueue* This) {
+    return This->lpVtbl->PushEmptyStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushCopyOfStorageFilter(ID3D12InfoQueue* This) {
+    return This->lpVtbl->PushCopyOfStorageFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushStorageFilter(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter) {
+    return This->lpVtbl->PushStorageFilter(This,filter);
+}
+static FORCEINLINE void ID3D12InfoQueue_PopStorageFilter(ID3D12InfoQueue* This) {
+    This->lpVtbl->PopStorageFilter(This);
+}
+static FORCEINLINE UINT ID3D12InfoQueue_GetStorageFilterStackSize(ID3D12InfoQueue* This) {
+    return This->lpVtbl->GetStorageFilterStackSize(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_AddRetrievalFilterEntries(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter) {
+    return This->lpVtbl->AddRetrievalFilterEntries(This,filter);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_GetRetrievalFilter(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter,SIZE_T *length) {
+    return This->lpVtbl->GetRetrievalFilter(This,filter,length);
+}
+static FORCEINLINE void ID3D12InfoQueue_ClearRetrievalFilter(ID3D12InfoQueue* This) {
+    This->lpVtbl->ClearRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushEmptyRetrievalFilter(ID3D12InfoQueue* This) {
+    return This->lpVtbl->PushEmptyRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushCopyOfRetrievalFilter(ID3D12InfoQueue* This) {
+    return This->lpVtbl->PushCopyOfRetrievalFilter(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_PushRetrievalFilter(ID3D12InfoQueue* This,D3D12_INFO_QUEUE_FILTER *filter) {
+    return This->lpVtbl->PushRetrievalFilter(This,filter);
+}
+static FORCEINLINE void ID3D12InfoQueue_PopRetrievalFilter(ID3D12InfoQueue* This) {
+    This->lpVtbl->PopRetrievalFilter(This);
+}
+static FORCEINLINE UINT ID3D12InfoQueue_GetRetrievalFilterStackSize(ID3D12InfoQueue* This) {
+    return This->lpVtbl->GetRetrievalFilterStackSize(This);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_AddMessage(ID3D12InfoQueue* This,D3D12_MESSAGE_CATEGORY category,D3D12_MESSAGE_SEVERITY severity,D3D12_MESSAGE_ID id,const char *description) {
+    return This->lpVtbl->AddMessage(This,category,severity,id,description);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_AddApplicationMessage(ID3D12InfoQueue* This,D3D12_MESSAGE_SEVERITY severity,const char *description) {
+    return This->lpVtbl->AddApplicationMessage(This,severity,description);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_SetBreakOnCategory(ID3D12InfoQueue* This,D3D12_MESSAGE_CATEGORY category,WINBOOL enable) {
+    return This->lpVtbl->SetBreakOnCategory(This,category,enable);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_SetBreakOnSeverity(ID3D12InfoQueue* This,D3D12_MESSAGE_SEVERITY severity,WINBOOL enable) {
+    return This->lpVtbl->SetBreakOnSeverity(This,severity,enable);
+}
+static FORCEINLINE HRESULT ID3D12InfoQueue_SetBreakOnID(ID3D12InfoQueue* This,D3D12_MESSAGE_ID id,WINBOOL enable) {
+    return This->lpVtbl->SetBreakOnID(This,id,enable);
+}
+static FORCEINLINE WINBOOL ID3D12InfoQueue_GetBreakOnCategory(ID3D12InfoQueue* This,D3D12_MESSAGE_CATEGORY category) {
+    return This->lpVtbl->GetBreakOnCategory(This,category);
+}
+static FORCEINLINE WINBOOL ID3D12InfoQueue_GetBreakOnSeverity(ID3D12InfoQueue* This,D3D12_MESSAGE_SEVERITY severity) {
+    return This->lpVtbl->GetBreakOnSeverity(This,severity);
+}
+static FORCEINLINE WINBOOL ID3D12InfoQueue_GetBreakOnID(ID3D12InfoQueue* This,D3D12_MESSAGE_ID id) {
+    return This->lpVtbl->GetBreakOnID(This,id);
+}
+static FORCEINLINE void ID3D12InfoQueue_SetMuteDebugOutput(ID3D12InfoQueue* This,WINBOOL mute) {
+    This->lpVtbl->SetMuteDebugOutput(This,mute);
+}
+static FORCEINLINE WINBOOL ID3D12InfoQueue_GetMuteDebugOutput(ID3D12InfoQueue* This) {
+    return This->lpVtbl->GetMuteDebugOutput(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ID3D12InfoQueue_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __d3d12sdklayers_h__ */
lib/libc/include/any-windows-any/d3d12shader.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3d12shader.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3d12shader.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -84,6 +84,15 @@ interface ID3D12LibraryReflection;
 extern "C" {
 #endif
 
+typedef enum D3D12_SHADER_VERSION_TYPE {
+    D3D12_SHVER_PIXEL_SHADER = 0x0,
+    D3D12_SHVER_VERTEX_SHADER = 0x1,
+    D3D12_SHVER_GEOMETRY_SHADER = 0x2,
+    D3D12_SHVER_HULL_SHADER = 0x3,
+    D3D12_SHVER_DOMAIN_SHADER = 0x4,
+    D3D12_SHVER_COMPUTE_SHADER = 0x5,
+    D3D12_SHVER_RESERVED0 = 0xfff0
+} D3D12_SHADER_VERSION_TYPE;
 typedef struct _D3D12_SHADER_DESC {
     UINT Version;
     const char *Creator;
lib/libc/include/any-windows-any/d3d12shader.idl
@@ -1,296 +0,0 @@
-/*
- * Copyright 2020 Paul Gofman 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 "d3dcommon.idl";
-
-typedef struct _D3D12_SHADER_DESC
-{
-    UINT Version;
-    const char *Creator;
-    UINT Flags;
-    UINT ConstantBuffers;
-    UINT BoundResources;
-    UINT InputParameters;
-    UINT OutputParameters;
-    UINT InstructionCount;
-    UINT TempRegisterCount;
-    UINT TempArrayCount;
-    UINT DefCount;
-    UINT DclCount;
-    UINT TextureNormalInstructions;
-    UINT TextureLoadInstructions;
-    UINT TextureCompInstructions;
-    UINT TextureBiasInstructions;
-    UINT TextureGradientInstructions;
-    UINT FloatInstructionCount;
-    UINT IntInstructionCount;
-    UINT UintInstructionCount;
-    UINT StaticFlowControlCount;
-    UINT DynamicFlowControlCount;
-    UINT MacroInstructionCount;
-    UINT ArrayInstructionCount;
-    UINT CutInstructionCount;
-    UINT EmitInstructionCount;
-    D3D_PRIMITIVE_TOPOLOGY GSOutputTopology;
-    UINT GSMaxOutputVertexCount;
-    D3D_PRIMITIVE InputPrimitive;
-    UINT PatchConstantParameters;
-    UINT cGSInstanceCount;
-    UINT cControlPoints;
-    D3D_TESSELLATOR_OUTPUT_PRIMITIVE HSOutputPrimitive;
-    D3D_TESSELLATOR_PARTITIONING HSPartitioning;
-    D3D_TESSELLATOR_DOMAIN TessellatorDomain;
-    UINT cBarrierInstructions;
-    UINT cInterlockedInstructions;
-    UINT cTextureStoreInstructions;
-} D3D12_SHADER_DESC;
-
-typedef struct _D3D12_SHADER_VARIABLE_DESC
-{
-    const char *Name;
-    UINT StartOffset;
-    UINT Size;
-    UINT uFlags;
-    void *DefaultValue;
-    UINT StartTexture;
-    UINT TextureSize;
-    UINT StartSampler;
-    UINT SamplerSize;
-} D3D12_SHADER_VARIABLE_DESC;
-
-typedef struct _D3D12_SHADER_TYPE_DESC
-{
-    D3D_SHADER_VARIABLE_CLASS Class;
-    D3D_SHADER_VARIABLE_TYPE Type;
-    UINT Rows;
-    UINT Columns;
-    UINT Elements;
-    UINT Members;
-    UINT Offset;
-    const char *Name;
-} D3D12_SHADER_TYPE_DESC;
-
-typedef struct _D3D12_SHADER_BUFFER_DESC
-{
-    const char *Name;
-    D3D_CBUFFER_TYPE Type;
-    UINT Variables;
-    UINT Size;
-    UINT uFlags;
-} D3D12_SHADER_BUFFER_DESC;
-
-typedef struct _D3D12_SHADER_INPUT_BIND_DESC
-{
-    const char *Name;
-    D3D_SHADER_INPUT_TYPE Type;
-    UINT BindPoint;
-    UINT BindCount;
-    UINT uFlags;
-    D3D_RESOURCE_RETURN_TYPE ReturnType;
-    D3D_SRV_DIMENSION Dimension;
-    UINT NumSamples;
-    UINT Space;
-    UINT uID;
-} D3D12_SHADER_INPUT_BIND_DESC;
-
-typedef struct _D3D12_SIGNATURE_PARAMETER_DESC
-{
-    const char *SemanticName;
-    UINT SemanticIndex;
-    UINT Register;
-    D3D_NAME SystemValueType;
-    D3D_REGISTER_COMPONENT_TYPE ComponentType;
-    BYTE Mask;
-    BYTE ReadWriteMask;
-    UINT Stream;
-    D3D_MIN_PRECISION MinPrecision;
-} D3D12_SIGNATURE_PARAMETER_DESC;
-
-typedef struct _D3D12_PARAMETER_DESC
-{
-    const char *Name;
-    const char *SemanticName;
-    D3D_SHADER_VARIABLE_TYPE Type;
-    D3D_SHADER_VARIABLE_CLASS Class;
-    UINT Rows;
-    UINT Columns;
-    D3D_INTERPOLATION_MODE InterpolationMode;
-    D3D_PARAMETER_FLAGS Flags;
-    UINT FirstInRegister;
-    UINT FirstInComponent;
-    UINT FirstOutRegister;
-    UINT FirstOutComponent;
-} D3D12_PARAMETER_DESC;
-
-typedef struct _D3D12_FUNCTION_DESC
-{
-    UINT Version;
-    const char *Creator;
-    UINT Flags;
-    UINT ConstantBuffers;
-    UINT BoundResources;
-    UINT InstructionCount;
-    UINT TempRegisterCount;
-    UINT TempArrayCount;
-    UINT DefCount;
-    UINT DclCount;
-    UINT TextureNormalInstructions;
-    UINT TextureLoadInstructions;
-    UINT TextureCompInstructions;
-    UINT TextureBiasInstructions;
-    UINT TextureGradientInstructions;
-    UINT FloatInstructionCount;
-    UINT IntInstructionCount;
-    UINT UintInstructionCount;
-    UINT StaticFlowControlCount;
-    UINT DynamicFlowControlCount;
-    UINT MacroInstructionCount;
-    UINT ArrayInstructionCount;
-    UINT MovInstructionCount;
-    UINT MovcInstructionCount;
-    UINT ConversionInstructionCount;
-    UINT BitwiseInstructionCount;
-    D3D_FEATURE_LEVEL MinFeatureLevel;
-    UINT64 RequiredFeatureFlags;
-    const char *Name;
-    INT FunctionParameterCount;
-    BOOL HasReturn;
-    BOOL Has10Level9VertexShader;
-    BOOL Has10Level9PixelShader;
-} D3D12_FUNCTION_DESC;
-
-typedef struct _D3D12_LIBRARY_DESC
-{
-    const char *Creator;
-    UINT Flags;
-    UINT FunctionCount;
-} D3D12_LIBRARY_DESC;
-
-interface ID3D12ShaderReflectionConstantBuffer;
-
-[
-    uuid(e913c351-783d-48ca-a1d1-4f306284ad56),
-    object,
-    local,
-]
-interface ID3D12ShaderReflectionType
-{
-    HRESULT GetDesc(D3D12_SHADER_TYPE_DESC *desc);
-    ID3D12ShaderReflectionType *GetMemberTypeByIndex(UINT index);
-    ID3D12ShaderReflectionType *GetMemberTypeByName(const char *name);
-    const char *GetMemberTypeName(UINT index);
-    HRESULT IsEqual(ID3D12ShaderReflectionType *type);
-    ID3D12ShaderReflectionType *GetSubType();
-    ID3D12ShaderReflectionType *GetBaseClass();
-    UINT GetNumInterfaces();
-    ID3D12ShaderReflectionType *GetInterfaceByIndex(UINT index);
-    HRESULT IsOfType(ID3D12ShaderReflectionType *type);
-    HRESULT ImplementsInterface(ID3D12ShaderReflectionType *base);
-}
-
-[
-    uuid(8337a8a6-a216-444a-b2f4-314733a73aea),
-    object,
-    local,
-]
-interface ID3D12ShaderReflectionVariable
-{
-    HRESULT GetDesc(D3D12_SHADER_VARIABLE_DESC *desc);
-    ID3D12ShaderReflectionType *GetType();
-    ID3D12ShaderReflectionConstantBuffer *GetBuffer();
-    UINT GetInterfaceSlot(UINT index);
-}
-
-[
-    uuid(c59598b4-48b3-4869-b9b1-b1618b14a8b7),
-    object,
-    local,
-]
-interface ID3D12ShaderReflectionConstantBuffer
-{
-    HRESULT GetDesc(D3D12_SHADER_BUFFER_DESC *desc);
-    ID3D12ShaderReflectionVariable *GetVariableByIndex(UINT index);
-    ID3D12ShaderReflectionVariable *GetVariableByName(const char *name);
-}
-
-[
-    uuid(5a58797d-a72c-478d-8ba2-efc6b0efe88e),
-    object,
-    local,
-]
-interface ID3D12ShaderReflection : IUnknown
-{
-    HRESULT GetDesc(D3D12_SHADER_DESC *desc);
-    ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByIndex(UINT index);
-    ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByName(const char *name);
-    HRESULT GetResourceBindingDesc(UINT index, D3D12_SHADER_INPUT_BIND_DESC *desc);
-    HRESULT GetInputParameterDesc(UINT index, D3D12_SIGNATURE_PARAMETER_DESC *desc);
-    HRESULT GetOutputParameterDesc(UINT index, D3D12_SIGNATURE_PARAMETER_DESC *desc);
-    HRESULT GetPatchConstantParameterDesc(UINT index, D3D12_SIGNATURE_PARAMETER_DESC *desc);
-    ID3D12ShaderReflectionVariable *GetVariableByName(const char *name);
-    HRESULT GetResourceBindingDescByName(const char *name, D3D12_SHADER_INPUT_BIND_DESC *desc);
-    UINT GetMovInstructionCount();
-    UINT GetMovcInstructionCount();
-    UINT GetConversionInstructionCount();
-    UINT GetBitwiseInstructionCount();
-    D3D_PRIMITIVE GetGSInputPrimitive();
-    BOOL IsSampleFrequencyShader();
-    UINT GetNumInterfaceSlots();
-    HRESULT GetMinFeatureLevel(D3D_FEATURE_LEVEL *level);
-    UINT GetThreadGroupSize(UINT *sizex, UINT *sizey, UINT *sizez);
-    UINT64 GetRequiresFlags();
-}
-
-[
-    uuid(ec25f42d-7006-4f2b-b33e-02cc3375733f),
-    object,
-    local,
-]
-interface ID3D12FunctionParameterReflection
-{
-    HRESULT GetDesc(D3D12_PARAMETER_DESC *desc);
-}
-
-[
-    uuid(1108795c-2772-4ba9-b2a8-d464dc7e2799),
-    object,
-    local,
-]
-interface ID3D12FunctionReflection
-{
-    HRESULT GetDesc(D3D12_FUNCTION_DESC *desc);
-    ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByIndex(UINT index);
-    ID3D12ShaderReflectionConstantBuffer *GetConstantBufferByName(const char *name);
-    HRESULT GetResourceBindingDesc(UINT index, D3D12_SHADER_INPUT_BIND_DESC *desc);
-    ID3D12ShaderReflectionVariable *GetVariableByName(const char *name);
-    HRESULT GetResourceBindingDescByName(const char *name, D3D12_SHADER_INPUT_BIND_DESC *desc);
-    ID3D12FunctionParameterReflection *GetFunctionParameter(INT index);
-}
-
-[
-    uuid(8e349d19-54db-4a56-9dc9-119d87bdb804),
-    object,
-    local,
-]
-interface ID3D12LibraryReflection : IUnknown
-{
-    HRESULT GetDesc(D3D12_LIBRARY_DESC *desc);
-    ID3D12FunctionReflection *GetFunctionByIndex(INT index);
-}
lib/libc/include/any-windows-any/d3d9.h
@@ -62,7 +62,7 @@
  */
 #define D3D_SDK_VERSION                         32
 #define D3DADAPTER_DEFAULT                      0
-#define D3DENUM_NO_WHQL_LEVEL                   __MSABI_LONG(0x00000002)
+#define D3DENUM_WHQL_LEVEL                      __MSABI_LONG(0x00000002)
 #define D3DPRESENT_DONOTWAIT                    __MSABI_LONG(1)
 #define D3DPRESENT_LINEAR_CONTENT               __MSABI_LONG(2)
 #define D3DPRESENT_BACK_BUFFERS_MAX             __MSABI_LONG(3)
lib/libc/include/any-windows-any/d3d9caps.h
@@ -258,9 +258,7 @@
 #define D3DCAPS3_DXVAHD_LIMITED                    __MSABI_LONG(0x00000800)
 #define D3DCAPS3_RESERVED                          __MSABI_LONG(0x8000001F)
 
-#define D3DCAPS2_NO2DDURING3DSCENE                 __MSABI_LONG(0x00000002)
 #define D3DCAPS2_FULLSCREENGAMMA                   __MSABI_LONG(0x00020000)
-#define D3DCAPS2_CANRENDERWINDOWED                 __MSABI_LONG(0x00080000)
 #define D3DCAPS2_CANCALIBRATEGAMMA                 __MSABI_LONG(0x00100000)
 #define D3DCAPS2_RESERVED                          __MSABI_LONG(0x02000000)
 #define D3DCAPS2_CANMANAGERESOURCE                 __MSABI_LONG(0x10000000)
lib/libc/include/any-windows-any/d3dcommon.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/d3dcommon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/d3dcommon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3dnthal.h
@@ -1,258 +0,0 @@
-/*
- * d3dnthal.h
- *
- * Direct3D NT driver interface
- *
- * Contributors:
- *   Created by Ge van Geldorp
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#ifndef __DDK_D3DNTHAL_H
-#define __DDK_D3DNTHAL_H
-
-#include <ddrawint.h>
-#include <d3dtypes.h>
-#include <d3dcaps.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-DEFINE_GUID(GUID_D3DCallbacks,                   0x7BF06990, 0x8794, 0x11D0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xD2, 0xEF, 0x02);
-DEFINE_GUID(GUID_D3DCallbacks3,                  0xDDF41230, 0xEC0A, 0x11D0, 0xA9, 0xB6, 0x00, 0xAA, 0x00, 0xC0, 0x99, 0x3E);
-DEFINE_GUID(GUID_D3DExtendedCaps,                0x7DE41F80, 0x9D93, 0x11D0, 0x89, 0xAB, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x29);
-DEFINE_GUID(GUID_D3DParseUnknownCommandCallback, 0x2E04FFA0, 0x98E4, 0x11D1, 0x8C, 0xE1, 0x00, 0xA0, 0xC9, 0x06, 0x29, 0xA8);
-DEFINE_GUID(GUID_ZPixelFormats,                  0x93869880, 0x36CF, 0x11D1, 0x9B, 0x1B, 0x00, 0xAA, 0x00, 0xBB, 0xB8, 0xAE);
-DEFINE_GUID(GUID_DDStereoMode,                   0xF828169C, 0xA8E8, 0x11D2, 0xA1, 0xF2, 0x00, 0xA0, 0xC9, 0x83, 0xEA, 0xF6);
-
-typedef struct _D3DNTHAL_CONTEXTCREATEDATA {
-  __GNU_EXTENSION union {
-    PDD_DIRECTDRAW_GLOBAL lpDDGbl;
-    PDD_DIRECTDRAW_LOCAL lpDDLcl;
-  };
-  __GNU_EXTENSION union {
-    PDD_SURFACE_LOCAL lpDDS;
-    PDD_SURFACE_LOCAL lpDDSLcl;
-  };
-  __GNU_EXTENSION union {
-    PDD_SURFACE_LOCAL lpDDSZ;
-    PDD_SURFACE_LOCAL lpDDSZLcl;
-  };
-  DWORD dwPID;
-  ULONG_PTR dwhContext;
-  HRESULT ddrval;
-} D3DNTHAL_CONTEXTCREATEDATA, *LPD3DNTHAL_CONTEXTCREATEDATA;
-
-typedef struct _D3DNTHAL_CONTEXTDESTROYDATA {
-  ULONG_PTR dwhContext;
-  HRESULT ddrval;
-} D3DNTHAL_CONTEXTDESTROYDATA, *LPD3DNTHAL_CONTEXTDESTROYDATA;
-
-typedef struct _D3DNTHAL_CONTEXTDESTROYALLDATA {
-  DWORD dwPID;
-  HRESULT ddrval;
-} D3DNTHAL_CONTEXTDESTROYALLDATA, *LPD3DNTHAL_CONTEXTDESTROYALLDATA;
-
-typedef struct _D3DNTHAL_SCENECAPTUREDATA {
-  ULONG_PTR dwhContext;
-  DWORD dwFlag;
-  HRESULT ddrval;
-} D3DNTHAL_SCENECAPTUREDATA, *LPD3DNTHAL_SCENECAPTUREDATA;
-
-typedef struct _D3DNTHAL_TEXTURECREATEDATA {
-  ULONG_PTR dwhContext;
-  HANDLE hDDS;
-  ULONG_PTR dwHandle;
-  HRESULT ddrval;
-} D3DNTHAL_TEXTURECREATEDATA, *LPD3DNTHAL_TEXTURECREATEDATA;
-
-typedef struct _D3DNTHAL_TEXTUREDESTROYDATA {
-  ULONG_PTR dwhContext;
-  ULONG_PTR dwHandle;
-  HRESULT ddrval;
-} D3DNTHAL_TEXTUREDESTROYDATA, *LPD3DNTHAL_TEXTUREDESTROYDATA;
-
-typedef struct _D3DNTHAL_TEXTURESWAPDATA {
-  ULONG_PTR dwhContext;
-  ULONG_PTR dwHandle1;
-  ULONG_PTR dwHandle2;
-  HRESULT ddrval;
-} D3DNTHAL_TEXTURESWAPDATA, *LPD3DNTHAL_TEXTURESWAPDATA;
-
-typedef struct _D3DNTHAL_TEXTUREGETSURFDATA {
-  ULONG_PTR dwhContext;
-  HANDLE hDDS;
-  ULONG_PTR dwHandle;
-  HRESULT ddrval;
-} D3DNTHAL_TEXTUREGETSURFDATA, *LPD3DNTHAL_TEXTUREGETSURFDATA;
-
-typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTCREATECB)(LPD3DNTHAL_CONTEXTCREATEDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYCB)(LPD3DNTHAL_CONTEXTDESTROYDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_CONTEXTDESTROYALLCB)(LPD3DNTHAL_CONTEXTDESTROYALLDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_SCENECAPTURECB)(LPD3DNTHAL_SCENECAPTUREDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURECREATECB)(LPD3DNTHAL_TEXTURECREATEDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREDESTROYCB)(LPD3DNTHAL_TEXTUREDESTROYDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTURESWAPCB)(LPD3DNTHAL_TEXTURESWAPDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_TEXTUREGETSURFCB)(LPD3DNTHAL_TEXTUREGETSURFDATA);
-
-typedef struct _D3DNTHALDeviceDesc_V1 {
-	DWORD            dwSize;
-	DWORD            dwFlags;
-	D3DCOLORMODEL    dcmColorModel;
-	DWORD            dwDevCaps;
-	D3DTRANSFORMCAPS dtcTransformCaps;
-	WINBOOL          bClipping;
-	D3DLIGHTINGCAPS  dlcLightingCaps;
-	D3DPRIMCAPS      dpcLineCaps;
-	D3DPRIMCAPS      dpcTriCaps;
-	DWORD            dwDeviceRenderBitDepth;
-	DWORD            dwDeviceZBufferBitDepth;
-	DWORD            dwMaxBufferSize;
-	DWORD            dwMaxVertexCount;
-} D3DNTHALDEVICEDESC_V1, *LPD3DNTHALDEVICEDESC_V1;
-
-typedef struct _D3DNTHAL_GLOBALDRIVERDATA {
-	DWORD               dwSize;
-	D3DNTHALDEVICEDESC_V1 hwCaps;
-	DWORD               dwNumVertices;
-	DWORD               dwNumClipVertices;
-	DWORD               dwNumTextureFormats;
-	LPDDSURFACEDESC     lpTextureFormats;
-} D3DNTHAL_GLOBALDRIVERDATA, *LPD3DNTHAL_GLOBALDRIVERDATA;
-
-typedef struct _D3DNTHAL_CALLBACKS {
-  DWORD dwSize;
-  LPD3DNTHAL_CONTEXTCREATECB ContextCreate;
-  LPD3DNTHAL_CONTEXTDESTROYCB ContextDestroy;
-  LPD3DNTHAL_CONTEXTDESTROYALLCB ContextDestroyAll;
-  LPD3DNTHAL_SCENECAPTURECB SceneCapture;
-  LPVOID dwReserved10;
-  LPVOID dwReserved11;
-  LPVOID dwReserved22;
-  LPVOID dwReserved23;
-  ULONG_PTR dwReserved;
-  LPD3DNTHAL_TEXTURECREATECB TextureCreate;
-  LPD3DNTHAL_TEXTUREDESTROYCB TextureDestroy;
-  LPD3DNTHAL_TEXTURESWAPCB TextureSwap;
-  LPD3DNTHAL_TEXTUREGETSURFCB TextureGetSurf;
-  LPVOID dwReserved12;
-  LPVOID dwReserved13;
-  LPVOID dwReserved14;
-  LPVOID dwReserved15;
-  LPVOID dwReserved16;
-  LPVOID dwReserved17;
-  LPVOID dwReserved18;
-  LPVOID dwReserved19;
-  LPVOID dwReserved20;
-  LPVOID dwReserved21;
-  LPVOID dwReserved24;
-  ULONG_PTR dwReserved0;
-  ULONG_PTR dwReserved1;
-  ULONG_PTR dwReserved2;
-  ULONG_PTR dwReserved3;
-  ULONG_PTR dwReserved4;
-  ULONG_PTR dwReserved5;
-  ULONG_PTR dwReserved6;
-  ULONG_PTR dwReserved7;
-  ULONG_PTR dwReserved8;
-  ULONG_PTR dwReserved9;
-} D3DNTHAL_CALLBACKS, *LPD3DNTHAL_CALLBACKS;
-
-
-typedef struct _D3DNTHAL_SETRENDERTARGETDATA {
-  ULONG_PTR dwhContext;
-  PDD_SURFACE_LOCAL lpDDS;
-  PDD_SURFACE_LOCAL lpDDSZ;
-  HRESULT ddrval;
-} D3DNTHAL_SETRENDERTARGETDATA;
-typedef D3DNTHAL_SETRENDERTARGETDATA *LPD3DNTHAL_SETRENDERTARGETDATA;
-
-typedef DWORD (APIENTRY *LPD3DNTHAL_SETRENDERTARGETCB)(LPD3DNTHAL_SETRENDERTARGETDATA);
-
-
-typedef struct _D3DNTHAL_CALLBACKS2 {
-  DWORD dwSize;
-  DWORD dwFlags;
-
-  LPD3DNTHAL_SETRENDERTARGETCB SetRenderTarget;
-  LPVOID dwReserved1;
-  LPVOID dwReserved2;
-  LPVOID dwReserved3;
-  LPVOID dwReserved4;
-} D3DNTHAL_CALLBACKS2, *LPD3DNTHAL_CALLBACKS2;
-
-
-typedef struct _D3DNTHAL_CLEAR2DATA {
-  ULONG_PTR dwhContext;
-  DWORD dwFlags;
-  DWORD dwFillColor;
-  D3DVALUE dvFillDepth;
-  DWORD dwFillStencil;
-  LPD3DRECT lpRects;
-  DWORD dwNumRects;
-  HRESULT ddrval;
-} D3DNTHAL_CLEAR2DATA;
-typedef D3DNTHAL_CLEAR2DATA FAR *LPD3DNTHAL_CLEAR2DATA;
-
-typedef struct _D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA {
-  ULONG_PTR dwhContext;
-  DWORD dwFlags;
-  ULONG_PTR dwReserved;
-  DWORD dwNumPasses;
-  HRESULT ddrval;
-} D3DNTHAL_VALIDATETEXTURESTAGESTATEDATA, FAR *LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA;
-
-typedef struct _D3DNTHAL_DRAWPRIMITIVES2DATA {
-  ULONG_PTR dwhContext;
-  DWORD dwFlags;
-  DWORD dwVertexType;
-  PDD_SURFACE_LOCAL lpDDCommands;
-  DWORD dwCommandOffset;
-  DWORD dwCommandLength;
-  __GNU_EXTENSION union {
-    PDD_SURFACE_LOCAL lpDDVertex;
-    LPVOID lpVertices;
-  };
-  DWORD dwVertexOffset;
-  DWORD dwVertexLength;
-  DWORD dwReqVertexBufSize;
-  DWORD dwReqCommandBufSize;
-  LPDWORD lpdwRStates;
-  __GNU_EXTENSION union {
-    DWORD dwVertexSize;
-    HRESULT ddrval;
-  };
-  DWORD dwErrorOffset;
-} D3DNTHAL_DRAWPRIMITIVES2DATA, FAR *LPD3DNTHAL_DRAWPRIMITIVES2DATA;
-
-typedef DWORD (APIENTRY *LPD3DNTHAL_CLEAR2CB)(LPD3DNTHAL_CLEAR2DATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB)(LPD3DNTHAL_VALIDATETEXTURESTAGESTATEDATA);
-typedef DWORD (APIENTRY *LPD3DNTHAL_DRAWPRIMITIVES2CB)(LPD3DNTHAL_DRAWPRIMITIVES2DATA);
-
-typedef struct _D3DNTHAL_CALLBACKS3 {
-  DWORD dwSize; 
-  DWORD dwFlags;
-
-  LPD3DNTHAL_CLEAR2CB Clear2;
-  LPVOID lpvReserved;
-  LPD3DNTHAL_VALIDATETEXTURESTAGESTATECB ValidateTextureStageState;
-  LPD3DNTHAL_DRAWPRIMITIVES2CB DrawPrimitives2;
-} D3DNTHAL_CALLBACKS3, *LPD3DNTHAL_CALLBACKS3;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* __DDK_D3DNTHAL_H */
-
lib/libc/include/any-windows-any/dbgprop.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/dbgprop.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dbgprop.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dcommon.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dcommon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dcommon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dcomp.h
@@ -60,16 +60,24 @@ DECLARE_INTERFACE_IID_(IDCompositionTransform,IDCompositionTransform3D,"fd55faa7
 #define INTERFACE IDCompositionTranslateTransform
 DECLARE_INTERFACE_IID_(IDCompositionTranslateTransform,IDCompositionTransform,"06791122-c6f0-417d-8323-269e987f5954")
 {
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetOffsetX)(THIS_ float) PURE;
     STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetOffsetY)(THIS_ float) PURE;
     STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetOffsetX)(THIS_ float) PURE;
+    STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetOffsetY)(THIS_ float) PURE;
+#endif
 };
 
 #undef INTERFACE
 #define INTERFACE IDCompositionScaleTransform
 DECLARE_INTERFACE_IID_(IDCompositionScaleTransform,IDCompositionTransform,"71fde914-40ef-45ef-bd51-68b037c339f9")
 {
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetScaleX)(THIS_ float) PURE;
     STDMETHOD(SetScaleX)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetScaleY)(THIS_ float) PURE;
@@ -78,24 +86,44 @@ DECLARE_INTERFACE_IID_(IDCompositionScaleTransform,IDCompositionTransform,"71fde
     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetCenterY)(THIS_ float) PURE;
     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetScaleX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetScaleX)(THIS_ float) PURE;
+    STDMETHOD(SetScaleY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetScaleY)(THIS_ float) PURE;
+    STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterX)(THIS_ float) PURE;
+    STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterY)(THIS_ float) PURE;
+#endif
 };
 
 #undef INTERFACE
 #define INTERFACE IDCompositionRotateTransform
 DECLARE_INTERFACE_IID_(IDCompositionRotateTransform,IDCompositionTransform,"641ed83c-ae96-46c5-90dc-32774cc5c6d5")
 {
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetAngle)(THIS_ float) PURE;
     STDMETHOD(SetAngle)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetCenterX)(THIS_ float) PURE;
     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetCenterY)(THIS_ float) PURE;
     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetAngle)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetAngle)(THIS_ float) PURE;
+    STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterX)(THIS_ float) PURE;
+    STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterY)(THIS_ float) PURE;
+#endif
 };
 
 #undef INTERFACE
 #define INTERFACE IDCompositionSkewTransform
 DECLARE_INTERFACE_IID_(IDCompositionSkewTransform,IDCompositionTransform,"e57aa735-dcdb-4c72-9c61-0591f58889ee")
 {
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetAngleX)(THIS_ float) PURE;
     STDMETHOD(SetAngleX)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetAngleY)(THIS_ float) PURE;
@@ -104,6 +132,16 @@ DECLARE_INTERFACE_IID_(IDCompositionSkewTransform,IDCompositionTransform,"e57aa7
     STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetCenterY)(THIS_ float) PURE;
     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetAngleX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetAngleX)(THIS_ float) PURE;
+    STDMETHOD(SetAngleY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetAngleY)(THIS_ float) PURE;
+    STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterX)(THIS_ float) PURE;
+    STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterY)(THIS_ float) PURE;
+#endif
 };
 
 #undef INTERFACE
@@ -111,26 +149,41 @@ DECLARE_INTERFACE_IID_(IDCompositionSkewTransform,IDCompositionTransform,"e57aa7
 DECLARE_INTERFACE_IID_(IDCompositionMatrixTransform,IDCompositionTransform,"16cdff07-c503-419c-83f2-0965c7af1fa6")
 {
     STDMETHOD(SetMatrix)(THIS_ const D2D_MATRIX_3X2_F&) PURE;
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetMatrixElement)(THIS_ int,int,float) PURE;
     STDMETHOD(SetMatrixElement)(THIS_ int,int,IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetMatrixElement)(THIS_ int,int,IDCompositionAnimation*) PURE;
+    STDMETHOD(SetMatrixElement)(THIS_ int,int,float) PURE;
+#endif
 };
 
 #undef INTERFACE
 #define INTERFACE IDCompositionTranslateTransform3D
 DECLARE_INTERFACE_IID_(IDCompositionTranslateTransform3D,IDCompositionTransform3D,"91636d4b-9ba1-4532-aaf7-e3344994d788")
 {
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetOffsetX)(THIS_ float) PURE;
     STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetOffsetY)(THIS_ float) PURE;
     STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetOffsetZ)(THIS_ float) PURE;
     STDMETHOD(SetOffsetZ)(THIS_ IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetOffsetX)(THIS_ float) PURE;
+    STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetOffsetY)(THIS_ float) PURE;
+    STDMETHOD(SetOffsetZ)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetOffsetZ)(THIS_ float) PURE;
+#endif
 };
 
 #undef INTERFACE
 #define INTERFACE IDCompositionScaleTransform3D
 DECLARE_INTERFACE_IID_(IDCompositionScaleTransform3D,IDCompositionTransform3D,"2a9e9ead-364b-4b15-a7c4-a1997f78b389")
 {
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetScaleX)(THIS_ float) PURE;
     STDMETHOD(SetScaleX)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetScaleY)(THIS_ float) PURE;
@@ -143,12 +196,27 @@ DECLARE_INTERFACE_IID_(IDCompositionScaleTransform3D,IDCompositionTransform3D,"2
     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetCenterZ)(THIS_ float) PURE;
     STDMETHOD(SetCenterZ)(THIS_ IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetScaleX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetScaleX)(THIS_ float) PURE;
+    STDMETHOD(SetScaleY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetScaleY)(THIS_ float) PURE;
+    STDMETHOD(SetScaleZ)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetScaleZ)(THIS_ float) PURE;
+    STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterX)(THIS_ float) PURE;
+    STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterY)(THIS_ float) PURE;
+    STDMETHOD(SetCenterZ)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterZ)(THIS_ float) PURE;
+#endif
 };
 
 #undef INTERFACE
 #define INTERFACE IDCompositionRotateTransform3D
 DECLARE_INTERFACE_IID_(IDCompositionRotateTransform3D,IDCompositionTransform3D,"d8f5b23f-d429-4a91-b55a-d2f45fd75b18")
 {
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetAngle)(THIS_ float) PURE;
     STDMETHOD(SetAngle)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetAxisX)(THIS_ float) PURE;
@@ -163,6 +231,22 @@ DECLARE_INTERFACE_IID_(IDCompositionRotateTransform3D,IDCompositionTransform3D,"
     STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetCenterZ)(THIS_ float) PURE;
     STDMETHOD(SetCenterZ)(THIS_ IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetAngle)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetAngle)(THIS_ float) PURE;
+    STDMETHOD(SetAxisX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetAxisX)(THIS_ float) PURE;
+    STDMETHOD(SetAxisY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetAxisY)(THIS_ float) PURE;
+    STDMETHOD(SetAxisZ)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetAxisZ)(THIS_ float) PURE;
+    STDMETHOD(SetCenterX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterX)(THIS_ float) PURE;
+    STDMETHOD(SetCenterY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterY)(THIS_ float) PURE;
+    STDMETHOD(SetCenterZ)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetCenterZ)(THIS_ float) PURE;
+#endif
 };
 
 #undef INTERFACE
@@ -170,16 +254,26 @@ DECLARE_INTERFACE_IID_(IDCompositionRotateTransform3D,IDCompositionTransform3D,"
 DECLARE_INTERFACE_IID_(IDCompositionMatrixTransform3D,IDCompositionTransform3D,"4b3363f0-643b-41b7-b6e0-ccf22d34467c")
 {
     STDMETHOD(SetMatrix)(THIS_ const D3DMATRIX&) PURE;
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetMatrixElement)(THIS_ int,int,float) PURE;
     STDMETHOD(SetMatrixElement)(THIS_ int,int,IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetMatrixElement)(THIS_ int,int,IDCompositionAnimation*) PURE;
+    STDMETHOD(SetMatrixElement)(THIS_ int,int,float) PURE;
+#endif
 };
 
 #undef INTERFACE
 #define INTERFACE IDCompositionEffectGroup
 DECLARE_INTERFACE_IID_(IDCompositionEffectGroup,IDCompositionEffect,"a7929a74-e6b2-4bd6-8b95-4040119ca34d")
 {
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetOpacity)(THIS_ float) PURE;
     STDMETHOD(SetOpacity)(THIS_ IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetOpacity)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetOpacity)(THIS_ float) PURE;
+#endif
     STDMETHOD(SetTransform3D)(THIS_ IDCompositionTransform3D*) PURE;
 };
 
@@ -193,6 +287,7 @@ DECLARE_INTERFACE_IID_(IDCompositionClip,IUnknown,"64ac3703-9d3f-45ec-a109-7cac0
 #define INTERFACE IDCompositionRectangleClip
 DECLARE_INTERFACE_IID_(IDCompositionRectangleClip,IDCompositionClip,"9842ad7d-d9cf-4908-aed7-48b51da5e7c2")
 {
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetLeft)(THIS_ float) PURE;
     STDMETHOD(SetLeft)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetTop)(THIS_ float) PURE;
@@ -217,24 +312,64 @@ DECLARE_INTERFACE_IID_(IDCompositionRectangleClip,IDCompositionClip,"9842ad7d-d9
     STDMETHOD(SetBottomRightRadiusX)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetBottomRightRadiusY)(THIS_ float) PURE;
     STDMETHOD(SetBottomRightRadiusY)(THIS_ IDCompositionAnimation*) PURE;
+#else
+    STDMETHOD(SetLeft)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetLeft)(THIS_ float) PURE;
+    STDMETHOD(SetTop)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetTop)(THIS_ float) PURE;
+    STDMETHOD(SetRight)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetRight)(THIS_ float) PURE;
+    STDMETHOD(SetBottom)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetBottom)(THIS_ float) PURE;
+    STDMETHOD(SetTopLeftRadiusX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetTopLeftRadiusX)(THIS_ float) PURE;
+    STDMETHOD(SetTopLeftRadiusY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetTopLeftRadiusY)(THIS_ float) PURE;
+    STDMETHOD(SetTopRightRadiusX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetTopRightRadiusX)(THIS_ float) PURE;
+    STDMETHOD(SetTopRightRadiusY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetTopRightRadiusY)(THIS_ float) PURE;
+    STDMETHOD(SetBottomLeftRadiusX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetBottomLeftRadiusX)(THIS_ float) PURE;
+    STDMETHOD(SetBottomLeftRadiusY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetBottomLeftRadiusY)(THIS_ float) PURE;
+    STDMETHOD(SetBottomRightRadiusX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetBottomRightRadiusX)(THIS_ float) PURE;
+    STDMETHOD(SetBottomRightRadiusY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetBottomRightRadiusY)(THIS_ float) PURE;
+#endif
 };
 
 #undef INTERFACE
 #define INTERFACE IDCompositionVisual
 DECLARE_INTERFACE_IID_(IDCompositionVisual,IUnknown,"4d93059d-097b-4651-9a60-f0f25116e2f3")
 {
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetOffsetX)(THIS_ float) PURE;
     STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetOffsetY)(THIS_ float) PURE;
     STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
     STDMETHOD(SetTransform)(THIS_ const D2D_MATRIX_3X2_F&) PURE;
     STDMETHOD(SetTransform)(THIS_ IDCompositionTransform*) PURE;
+#else
+    STDMETHOD(SetOffsetX)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetOffsetX)(THIS_ float) PURE;
+    STDMETHOD(SetOffsetY)(THIS_ IDCompositionAnimation*) PURE;
+    STDMETHOD(SetOffsetY)(THIS_ float) PURE;
+    STDMETHOD(SetTransform)(THIS_ IDCompositionTransform*) PURE;
+    STDMETHOD(SetTransform)(THIS_ const D2D_MATRIX_3X2_F&) PURE;
+#endif
     STDMETHOD(SetTransformParent)(THIS_ IDCompositionVisual*) PURE;
     STDMETHOD(SetEffect)(THIS_ IDCompositionEffect*) PURE;
     STDMETHOD(SetBitmapInterpolationMode)(THIS_ DCOMPOSITION_BITMAP_INTERPOLATION_MODE) PURE;
     STDMETHOD(SetBorderMode)(THIS_ DCOMPOSITION_BORDER_MODE) PURE;
+#if defined(_MSC_VER) && defined(__cplusplus)
     STDMETHOD(SetClip)(THIS_ const D2D_RECT_F&) PURE;
     STDMETHOD(SetClip)(THIS_ IDCompositionClip*) PURE;
+#else
+    STDMETHOD(SetClip)(THIS_ IDCompositionClip*) PURE;
+    STDMETHOD(SetClip)(THIS_ const D2D_RECT_F&) PURE;
+#endif
     STDMETHOD(SetContent)(THIS_ IUnknown*) PURE;
     STDMETHOD(AddVisual)(THIS_ IDCompositionVisual*,BOOL,IDCompositionVisual*) PURE;
     STDMETHOD(RemoveVisual)(THIS_ IDCompositionVisual*) PURE;
lib/libc/include/any-windows-any/dcompanimation.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/dcompanimation.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dcompanimation.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ddkernel.h
@@ -1,97 +0,0 @@
-/* $Id$
- *
- * COPYRIGHT:            This file is in the public domain.
- * PROJECT:              ReactOS kernel
- * FILE:
- * PURPOSE:              Directx headers
- * PROGRAMMER:           Magnus Olsen (greatlrd)
- *
- */
-
-#ifndef __DDKM_INCLUDED__
-#define __DDKM_INCLUDED__
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#if defined (_WIN32) && !defined (_NO_COM)
-DEFINE_GUID (IID_IDirectDrawKernel,        0x8D56C120,0x6A08,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-DEFINE_GUID (IID_IDirectDrawSurfaceKernel, 0x60755DA0,0x6A40,0x11D0,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-#endif
-
-typedef struct _DDKERNELCAPS {
-  DWORD dwSize;
-  DWORD dwCaps;
-  DWORD dwIRQCaps;
-} DDKERNELCAPS, *LPDDKERNELCAPS;
-
-#define DDKERNELCAPS_SKIPFIELDS			0x00000001
-#define DDKERNELCAPS_AUTOFLIP			0x00000002
-#define DDKERNELCAPS_SETSTATE			0x00000004
-#define DDKERNELCAPS_LOCK			0x00000008
-#define DDKERNELCAPS_FLIPVIDEOPORT		0x00000010
-#define DDKERNELCAPS_FLIPOVERLAY		0x00000020
-#define DDKERNELCAPS_CAPTURE_SYSMEM		0x00000040
-#define DDKERNELCAPS_CAPTURE_NONLOCALVIDMEM	0x00000080
-#define DDKERNELCAPS_FIELDPOLARITY		0x00000100
-#define DDKERNELCAPS_CAPTURE_INVERTED		0x00000200
-#define DDIRQ_DISPLAY_VSYNC			0x00000001
-#define DDIRQ_RESERVED1				0x00000002
-#define DDIRQ_VPORT0_VSYNC			0x00000004
-#define DDIRQ_VPORT0_LINE			0x00000008
-#define DDIRQ_VPORT1_VSYNC			0x00000010
-#define DDIRQ_VPORT1_LINE			0x00000020
-#define DDIRQ_VPORT2_VSYNC			0x00000040
-#define DDIRQ_VPORT2_LINE			0x00000080
-#define DDIRQ_VPORT3_VSYNC			0x00000100
-#define DDIRQ_VPORT3_LINE			0x00000200
-#define DDIRQ_VPORT4_VSYNC			0x00000400
-#define DDIRQ_VPORT4_LINE			0x00000800
-#define DDIRQ_VPORT5_VSYNC			0x00001000
-#define DDIRQ_VPORT5_LINE			0x00002000
-#define DDIRQ_VPORT6_VSYNC			0x00004000
-#define DDIRQ_VPORT6_LINE			0x00008000
-#define DDIRQ_VPORT7_VSYNC			0x00010000
-#define DDIRQ_VPORT7_LINE			0x00020000
-#define DDIRQ_VPORT8_VSYNC			0x00040000
-#define DDIRQ_VPORT8_LINE			0x00080000
-#define DDIRQ_VPORT9_VSYNC			0x00010000
-#define DDIRQ_VPORT9_LINE			0x00020000
-
-typedef struct IDirectDrawKernel* LPDIRECTDRAWKERNEL;
-typedef struct IDirectDrawSurfaceKernel* LPDIRECTDRAWSURFACEKERNEL;
-
-#if defined(_WIN32) && !defined(_NO_COM)
-
-#undef INTERFACE
-#define INTERFACE IDirectDrawKernel
-DECLARE_INTERFACE_ (IDirectDrawKernel, IUnknown)
-{
-	STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
-	STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-	STDMETHOD_(ULONG,Release) (THIS) PURE;
-	STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE;
-	STDMETHOD(ReleaseKernelHandle) (THIS) PURE;
-};
-
-#undef INTERFACE
-#define INTERFACE IDirectDrawSurfaceKernel
-DECLARE_INTERFACE_ (IDirectDrawSurfaceKernel, IUnknown)
-{
-	STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
-	STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-	STDMETHOD_(ULONG,Release) (THIS) PURE;
-	STDMETHOD(GetKernelHandle) (THIS_ ULONG*) PURE;
-	STDMETHOD(ReleaseKernelHandle) (THIS) PURE;
-};
-
-#undef INTERFACE
-#endif /* defined(_WIN32) && !defined(_NO_COM) */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
-
lib/libc/include/any-windows-any/ddkmapi.h
@@ -1,307 +0,0 @@
-/*
- * ddkmapi.h
- *
- * DirectDraw support for DxApi function
- *
- * Contributors:
- *   Created by Magnus Olsen
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#ifndef __DDKMAPI_INCLUDED__
-#define __DDKMAPI_INCLUDED__
-
-#if defined(_DXAPI_)
-#define DXAPI
-#else
-#define DXAPI DECLSPEC_IMPORT
-#endif
-
-#define DXAPI_MAJORVERSION			1
-#define DXAPI_MINORVERSION			0
-
-#define DD_FIRST_DXAPI				0x500
-#define DD_DXAPI_GETVERSIONNUMBER			(DD_FIRST_DXAPI)
-#define DD_DXAPI_CLOSEHANDLE				(DD_FIRST_DXAPI+1)
-#define DD_DXAPI_OPENDIRECTDRAW				(DD_FIRST_DXAPI+2)
-#define DD_DXAPI_OPENSURFACE				(DD_FIRST_DXAPI+3)
-#define DD_DXAPI_OPENVIDEOPORT				(DD_FIRST_DXAPI+4)
-#define DD_DXAPI_GETKERNELCAPS				(DD_FIRST_DXAPI+5)
-#define DD_DXAPI_GET_VP_FIELD_NUMBER			(DD_FIRST_DXAPI+6)
-#define DD_DXAPI_SET_VP_FIELD_NUMBER			(DD_FIRST_DXAPI+7)
-#define DD_DXAPI_SET_VP_SKIP_FIELD			(DD_FIRST_DXAPI+8)
-#define DD_DXAPI_GET_SURFACE_STATE			(DD_FIRST_DXAPI+9)
-#define DD_DXAPI_SET_SURFACE_STATE			(DD_FIRST_DXAPI+10)
-#define DD_DXAPI_LOCK					(DD_FIRST_DXAPI+11)
-#define DD_DXAPI_FLIP_OVERLAY				(DD_FIRST_DXAPI+12)
-#define DD_DXAPI_FLIP_VP				(DD_FIRST_DXAPI+13)
-#define DD_DXAPI_GET_CURRENT_VP_AUTOFLIP_SURFACE	(DD_FIRST_DXAPI+14)
-#define DD_DXAPI_GET_LAST_VP_AUTOFLIP_SURFACE		(DD_FIRST_DXAPI+15)
-#define DD_DXAPI_REGISTER_CALLBACK			(DD_FIRST_DXAPI+16)
-#define DD_DXAPI_UNREGISTER_CALLBACK			(DD_FIRST_DXAPI+17)
-#define DD_DXAPI_GET_POLARITY				(DD_FIRST_DXAPI+18)
-#define DD_DXAPI_OPENVPCAPTUREDEVICE			(DD_FIRST_DXAPI+19)
-#define DD_DXAPI_ADDVPCAPTUREBUFFER			(DD_FIRST_DXAPI+20)
-#define DD_DXAPI_FLUSHVPCAPTUREBUFFERS			(DD_FIRST_DXAPI+21)
-
-/* DDOPENVPCAPTUREDEVICEIN.dwFlags constants */
-#define DDOPENCAPTURE_VIDEO			0x0001
-#define DDOPENCAPTURE_VBI			0x0002
-
-/* DDADDVPCAPTUREBUFF.dwFlags constants */
-#define DDADDBUFF_SYSTEMMEMORY			0x0001
-#define DDADDBUFF_NONLOCALVIDMEM		0x0002
-#define DDADDBUFF_INVERT			0x0004
-
-/* DDGETSURFACESTATEOUT.dwStateCaps/dwStateStatus constants */
-#define DDSTATE_BOB				0x0001
-#define DDSTATE_WEAVE				0x0002
-#define DDSTATE_EXPLICITLY_SET			0x0004
-#define DDSTATE_SOFTWARE_AUTOFLIP		0x0008
-#define DDSTATE_SKIPEVENFIELDS			0x0010
-
-/* DDREGISTERCALLBACK.dwEvents constants */
-#define DDEVENT_DISPLAY_VSYNC			0x0001
-#define DDEVENT_VP_VSYNC			0x0002
-#define DDEVENT_VP_LINE				0x0004
-#define DDEVENT_PRERESCHANGE			0x0008
-#define DDEVENT_POSTRESCHANGE			0x0010
-#define DDEVENT_PREDOSBOX			0x0020
-#define DDEVENT_POSTDOSBOX			0x0040
-
-/* LPDD_NOTIFYCALLBACK.dwFlags constants */
-#define DDNOTIFY_DISPLAY_VSYNC			0x0001
-#define DDNOTIFY_VP_VSYNC			0x0002
-#define DDNOTIFY_VP_LINE			0x0004
-#define DDNOTIFY_PRERESCHANGE			0x0008
-#define DDNOTIFY_POSTRESCHANGE			0x0010
-#define DDNOTIFY_PREDOSBOX			0x0020
-#define DDNOTIFY_POSTDOSBOX			0x0040
-#define DDNOTIFY_CLOSEDIRECTDRAW		0x0080
-#define DDNOTIFY_CLOSESURFACE			0x0100
-#define DDNOTIFY_CLOSEVIDEOPORT			0x0200
-#define DDNOTIFY_CLOSECAPTURE			0x0400
-
-typedef DWORD (PASCAL *LPDXAPI)(DWORD dwFunctionNum, LPVOID lpvInBuffer, DWORD cbInBuffer, LPVOID  lpvOutBuffer, DWORD  cbOutBuffer);
-typedef ULONG (PASCAL *LPDD_NOTIFYCALLBACK) (DWORD dwFlags, PVOID pContext, DWORD dwParam1, DWORD dwParam2);
-
-typedef struct _DDCAPBUFFINFO {
-  DWORD dwFieldNumber;
-  DWORD bPolarity;
-  LARGE_INTEGER liTimeStamp;
-  DWORD ddRVal;
-} DDCAPBUFFINFO, * LPDDCAPBUFFINFO;
-
-typedef struct _DDADDVPCAPTUREBUFF {
-  HANDLE hCapture;
-  DWORD dwFlags;
-  PMDL pMDL;
-  PKEVENT pKEvent;
-  LPDDCAPBUFFINFO lpBuffInfo;
-} DDADDVPCAPTUREBUFF, * LPDDADDVPCAPTUREBUFF;
-
-typedef struct _DDCLOSEHANDLE {
-  HANDLE  hHandle;
-} DDCLOSEHANDLE, *LPDDCLOSEHANDLE;
-
-typedef struct _DDFLIPOVERLAY {
-  HANDLE hDirectDraw;
-  HANDLE hCurrentSurface;
-  HANDLE hTargetSurface;
-  DWORD dwFlags;
-} DDFLIPOVERLAY, *LPDDFLIPOVERLAY;
-
-typedef struct _DDFLIPVIDEOPORT {
-  HANDLE hDirectDraw;
-  HANDLE hVideoPort;
-  HANDLE hCurrentSurface;
-  HANDLE hTargetSurface;
-  DWORD  dwFlags;
-} DDFLIPVIDEOPORT, *LPDDFLIPVIDEOPORT;
-
-typedef struct _DDGETAUTOFLIPIN {
-  HANDLE hDirectDraw;
-  HANDLE hVideoPort;
-} DDGETAUTOFLIPIN, *LPDDGETAUTOFLIPIN;
-
-typedef struct _DDGETAUTOFLIPOUT {
-  DWORD  ddRVal;
-  HANDLE hVideoSurface;
-  HANDLE hVBISurface;
-  WINBOOL bPolarity;
-} DDGETAUTOFLIPOUT, *LPDDGETAUTOFLIPOUT;
-
-typedef struct _DDGETPOLARITYIN {
-  HANDLE hDirectDraw;
-  HANDLE hVideoPort;
-} DDGETPOLARITYIN, *LPDDGETPOLARITYIN;
-
-typedef struct _DDGETPOLARITYOUT {
-  DWORD  ddRVal;
-  WINBOOL bPolarity;
-} DDGETPOLARITYOUT, *LPDDGETPOLARITYOUT;
-
-typedef struct _DDGETSURFACESTATEIN {
-  HANDLE hDirectDraw;
-  HANDLE hSurface;
-} DDGETSURFACESTATEIN, *LPDDGETSURFACESTATEIN;
-
-typedef struct _DDGETSURFACESTATEOUT {
-  DWORD ddRVal;
-  DWORD dwStateCaps;
-  DWORD dwStateStatus;
-} DDGETSURFACESTATEOUT, *LPDDGETSURFACESTATEOUT;
-
-typedef struct _DDGETFIELDNUMIN {
-  HANDLE hDirectDraw;
-  HANDLE hVideoPort;
-} DDGETFIELDNUMIN, *LPDDGETFIELDNUMIN;
-
-typedef struct _DDGETFIELDNUMOUT {
-  DWORD ddRVal;
-  DWORD dwFieldNum;
-} DDGETFIELDNUMOUT, *LPDDGETFIELDNUMOUT;
-
-typedef struct _DDGETKERNELCAPSOUT {
-  DWORD ddRVal;
-  DWORD dwCaps;
-  DWORD dwIRQCaps;
-} DDGETKERNELCAPSOUT, *LPDDGETKERNELCAPSOUT;
-
-typedef struct _DDGETVERSIONNUMBER {
-  DWORD ddRVal;
-  DWORD dwMajorVersion;
-  DWORD dwMinorVersion;
-} DDGETVERSIONNUMBER, *LPDDGETVERSIONNUMBER;
-
-typedef struct _DDLOCKIN {
-  HANDLE hDirectDraw;
-  HANDLE hSurface;
-} DDLOCKIN, *LPDDLOCKIN;
-
-typedef struct _DDLOCKOUT {
-  DWORD ddRVal;
-  DWORD dwSurfHeight;
-  DWORD dwSurfWidth;
-  LONG  lSurfPitch;
-  PVOID lpSurface;
-  DWORD SurfaceCaps;
-  DWORD dwFormatFlags;
-  DWORD dwFormatFourCC;
-  DWORD dwFormatBitCount;
-  __GNU_EXTENSION union {
-    DWORD dwRBitMask;
-    DWORD dwYBitMask;
-  };
-  __GNU_EXTENSION union {
-    DWORD dwGBitMask;
-    DWORD dwUBitMask;
-  };
-  __GNU_EXTENSION union {
-    DWORD dwBBitMask;
-    DWORD dwVBitMask;
-  };
-} DDLOCKOUT, *LPDDLOCKOUT;
-
-
-typedef struct _DDOPENDIRECTDRAWIN {
-  ULONG_PTR		dwDirectDrawHandle;
-  LPDD_NOTIFYCALLBACK	pfnDirectDrawClose;
-  PVOID			pContext;
-} DDOPENDIRECTDRAWIN, *LPDDOPENDIRECTDRAWIN;
-
-typedef struct _DDOPENDIRECTDRAWOUT {
-  DWORD  ddRVal;
-  HANDLE hDirectDraw;
-} DDOPENDIRECTDRAWOUT, *LPDDOPENDIRECTDRAWOUT;
-
-typedef struct _DDOPENSURFACEIN {
-  HANDLE		hDirectDraw;
-  ULONG_PTR		dwSurfaceHandle;
-  LPDD_NOTIFYCALLBACK	pfnSurfaceClose;
-  PVOID			pContext;
-} DDOPENSURFACEIN, *LPDDOPENSURFACEIN;
-
-typedef struct _DDOPENSURFACEOUT {
-  DWORD  ddRVal;
-  HANDLE hSurface;
-} DDOPENSURFACEOUT, *LPDDOPENSURFACEOUT;
-
-typedef struct _DDOPENVIDEOPORTIN {
-  HANDLE		hDirectDraw;
-  ULONG			dwVideoPortHandle;
-  LPDD_NOTIFYCALLBACK	pfnVideoPortClose;
-  PVOID			pContext;
-} DDOPENVIDEOPORTIN, *LPDDOPENVIDEOPORTIN;
-
-typedef struct _DDOPENVIDEOPORTOUT {
-  DWORD  ddRVal;
-  HANDLE hVideoPort;
-} DDOPENVIDEOPORTOUT, *LPDDOPENVIDEOPORTOUT;
-
-typedef struct _DDOPENVPCAPTUREDEVICEIN {
-  HANDLE hDirectDraw;
-  HANDLE hVideoPort;
-  DWORD  dwStartLine;
-  DWORD  dwEndLine;
-  DWORD  dwCaptureEveryNFields;
-  LPDD_NOTIFYCALLBACK  pfnCaptureClose;
-  PVOID  pContext;
-  DWORD  dwFlags;
-} DDOPENVPCAPTUREDEVICEIN, *LPDDOPENVPCAPTUREDEVICEIN;
-
-typedef struct _DDOPENVPCAPTUREDEVICEOUT {
-  DWORD  ddRVal;
-  HANDLE hCapture;
-} DDOPENVPCAPTUREDEVICEOUT, *LPDDOPENVPCAPTUREDEVICEOUT;
-
-typedef struct _DDREGISTERCALLBACK {
-  HANDLE		hDirectDraw;
-  ULONG			dwEvents;
-  LPDD_NOTIFYCALLBACK	pfnCallback;
-  ULONG_PTR		dwParam1;
-  ULONG_PTR		dwParam2;
-  PVOID			pContext;
-} DDREGISTERCALLBACK, *LPDDREGISTERCALLBACK;
-
-typedef struct _DDSETSURFACETATE {
-  HANDLE hDirectDraw;
-  HANDLE hSurface;
-  DWORD  dwState;
-  DWORD  dwStartField;
-} DDSETSURFACESTATE, *LPDDSETSURFACESTATE;
-
-typedef struct _DDSETFIELDNUM {
-  HANDLE hDirectDraw;
-  HANDLE hVideoPort;
-  DWORD  dwFieldNum;
-} DDSETFIELDNUM, *LPDDSETFIELDNUM;
-
-typedef struct _DDSETSKIPFIELD {
-  HANDLE hDirectDraw;
-  HANDLE hVideoPort;
-  DWORD  dwStartField;
-} DDSETSKIPFIELD, *LPDDSETSKIPFIELD;
-
-
-DXAPI
-DWORD PASCAL
-DxApi(IN DWORD dwFunctionNum,
-      IN LPVOID lpvInBuffer,
-      IN DWORD cbInBuffer,
-      OUT LPVOID lpvOutBuffer,
-      OUT DWORD cbOutBuffer);
-
-
-#endif /* __DDKMAPI_INCLUDED__ */
-
lib/libc/include/any-windows-any/ddraw.h
@@ -228,6 +228,10 @@ typedef struct IDirectDrawGammaControl *LPDIRECTDRAWGAMMACONTROL;
 #define DDBLT_WAIT				0x01000000
 #define DDBLT_DEPTHFILL				0x02000000
 #define DDBLT_DONOTWAIT                         0x08000000
+#define DDBLT_PRESENTATION                      0x10000000
+#define DDBLT_LAST_PRESENTATION                 0x20000000
+#define DDBLT_EXTENDED_FLAGS                    0x40000000
+#define DDBLT_EXTENDED_LINEAR_CONTENT           0x00000004
 
 /* dwTrans for BltFast */
 #define DDBLTFAST_NOCOLORKEY			0x00000000
@@ -367,6 +371,30 @@ typedef struct _DDSCAPS {
 /* indicates surface is part of a stereo flipping chain */
 #define DDSCAPS2_STEREOSURFACELEFT      0x00080000
 #define DDSCAPS2_VOLUME                 0x00200000
+#define DDSCAPS2_NOTUSERLOCKABLE        0x00400000
+#define DDSCAPS2_POINTS                 0x00800000
+#define DDSCAPS2_RTPATCHES              0x01000000
+#define DDSCAPS2_NPATCHES               0x02000000
+#define DDSCAPS2_RESERVED3              0x04000000
+#define DDSCAPS2_DISCARDBACKBUFFER      0x10000000
+#define DDSCAPS2_ENABLEALPHACHANNEL     0x20000000
+#define DDSCAPS2_EXTENDEDFORMATPRIMARY  0x40000000
+#define DDSCAPS2_ADDITIONALPRIMARY      0x80000000
+
+/* DDSCAPS2.dwCaps3 */
+#define DDSCAPS3_MULTISAMPLE_MASK               0x0000001f
+#define DDSCAPS3_MULTISAMPLE_QUALITY_MASK       0x000000e0
+#define DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT      5
+#define DDSCAPS3_RESERVED1                      0x00000100
+#define DDSCAPS3_RESERVED2                      0x00000200
+#define DDSCAPS3_LIGHTWEIGHTMIPMAP              0x00000400
+#define DDSCAPS3_AUTOGENMIPMAP                  0x00000800
+#define DDSCAPS3_DMAP                           0x00001000
+#ifndef D3D_DISABLE_9EX
+#define DDSCAPS3_CREATESHAREDRESOURCE           0x00002000
+#define DDSCAPS3_READONLYRESOURCE               0x00004000
+#define DDSCAPS3_OPENSHAREDRESOURCE             0x00008000
+#endif /* !D3D_DISABLE_9EX */
 
 typedef struct _DDSCAPS2 {
 	DWORD	dwCaps;	/* capabilities of surface wanted */
@@ -753,6 +781,7 @@ typedef struct _DDPIXELFORMAT {
 	DWORD	dwAlphaBitDepth;        /* C: how many bits for alpha channels*/
 	DWORD	dwLuminanceBitCount;
 	DWORD	dwBumpBitCount;
+	DWORD	dwPrivateFormatBitCount;
     } DUMMYUNIONNAME1;
     __GNU_EXTENSION union {
 	DWORD	dwRBitMask;             /* 10: mask for red bit*/
@@ -760,12 +789,17 @@ typedef struct _DDPIXELFORMAT {
 	DWORD	dwStencilBitDepth;
 	DWORD	dwLuminanceBitMask;
 	DWORD	dwBumpDuBitMask;
+	DWORD	dwOperations;
     } DUMMYUNIONNAME2;
     __GNU_EXTENSION union {
 	DWORD	dwGBitMask;             /* 14: mask for green bits*/
 	DWORD	dwUBitMask;             /* 14: mask for U bits*/
 	DWORD	dwZBitMask;
 	DWORD	dwBumpDvBitMask;
+	struct {
+		WORD	wFlipMSTypes;
+		WORD	wBltMSTypes;
+	} MultiSampleCaps;
     } DUMMYUNIONNAME3;
     __GNU_EXTENSION union {
 	DWORD   dwBBitMask;             /* 18: mask for blue bits*/
@@ -899,6 +933,9 @@ typedef struct _DDPIXELFORMAT {
 #define DDOVER_BOB                              0x00200000
 #define DDOVER_OVERRIDEBOBWEAVE                 0x00400000
 #define DDOVER_INTERLEAVED                      0x00800000
+#define DDOVER_BOBHARDWARE                      0x01000000
+#define DDOVER_ARGBSCALEFACTORS                 0x02000000
+#define DDOVER_DEGRADEARGBSCALING               0x04000000
 
 /* DDPIXELFORMAT.dwFlags */
 #define DDPF_ALPHAPIXELS		0x00000001
@@ -1098,6 +1135,10 @@ typedef HRESULT (CALLBACK *LPDDENUMSURFACESCALLBACK)(LPDIRECTDRAWSURFACE, LPDDSU
 typedef HRESULT (CALLBACK *LPDDENUMSURFACESCALLBACK2)(LPDIRECTDRAWSURFACE4, LPDDSURFACEDESC2, LPVOID);
 typedef HRESULT (CALLBACK *LPDDENUMSURFACESCALLBACK7)(LPDIRECTDRAWSURFACE7, LPDDSURFACEDESC2, LPVOID);
 
+#if (WINVER < 0x0500) && !defined(HMONITOR_DECLARED)
+DECLARE_HANDLE(HMONITOR);
+#define HMONITOR_DECLARED 1
+#endif
 typedef WINBOOL (CALLBACK *LPDDENUMCALLBACKEXA)(GUID *, LPSTR, LPSTR, LPVOID, HMONITOR);
 typedef WINBOOL (CALLBACK *LPDDENUMCALLBACKEXW)(GUID *, LPWSTR, LPWSTR, LPVOID, HMONITOR);
 DECL_WINELIB_TYPE_AW(LPDDENUMCALLBACKEX)
lib/libc/include/any-windows-any/ddrawi.h
@@ -16,95 +16,41 @@
  *
  * 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 Street, Fifth Floor, Boston, MA  02110-1301  USA
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
 #ifndef __DDRAWI_INCLUDED__
 #define __DDRAWI_INCLUDED__
 
+#include <_mingw_dxhelper.h>
+#include <ddraw.h>
+#include <dciddi.h> /* the DD HAL is layered onto DCI escapes */
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#define OBJECT_ISROOT           0x80000000
-
-#include <ddraw.h>
-#include <dvp.h>
-#include <ddkernel.h>
-#include <dmemmgr.h>
+typedef struct _DDVIDEOPORTCAPS *LPDDVIDEOPORTCAPS; /* should be in dvp.h */
+typedef struct _DDKERNELCAPS *LPDDKERNELCAPS; /* should be in ddkernel.h */
+typedef struct _VMEMHEAP *LPVMEMHEAP; /* should be in dmemmgr.h */
 
 #define DDAPI WINAPI
 
-#define VALID_ALIGNMENT(align) \
-	   (!((align==0)||(align%2)!= 0 ))
-
 /* the DirectDraw versions */
 #define DD_VERSION		0x0200 /* compatibility version */
-#define DD_RUNTIME_VERSION	0x0902 /* actual version */
+#define DD_RUNTIME_VERSION	0x0700 /* actual version */
 
 /* the HAL version returned from QUERYESCSUPPORT - DCICOMMAND */
 #define DD_HAL_VERSION	0x0100
 
 /* more DCICOMMAND escapes */
-#ifndef DCICOMMAND
-#define DCICOMMAND 3075
-#endif
-
 #define DDCREATEDRIVEROBJECT	10
 #define DDGET32BITDRIVERNAME	11
 #define DDNEWCALLBACKFNS	12
 #define DDVERSIONINFO		13
 
-
-#define DDUNSUPPORTEDMODE  ((DWORD) -1)
-
-#include "dciddi.h"
-
-#ifndef CCHDEVICENAME
-#define CCHDEVICENAME 32
-#endif
 #define MAX_DRIVER_NAME		CCHDEVICENAME
 
-#define DDHAL_DRIVER_DLLNAME    "DDRAW16.DLL"
-#define DDHAL_APP_DLLNAME   "DDRAW.DLL"
-
-
-/* GUID */
-#ifdef _WIN32
-DEFINE_GUID(GUID_MiscellaneousCallbacks, 0xefd60cc0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID(GUID_VideoPortCallbacks,     0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID(GUID_ColorControlCallbacks,  0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID(GUID_VideoPortCaps,          0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID(GUID_D3DCallbacks2,          0x0ba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x00, 0xaa, 0x00, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID(GUID_D3DCallbacks3,          0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e);
-DEFINE_GUID(GUID_NonLocalVidMemCaps,     0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37);
-DEFINE_GUID(GUID_KernelCallbacks,        0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
-DEFINE_GUID(GUID_KernelCaps,             0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
-DEFINE_GUID(GUID_D3DExtendedCaps,        0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x0, 0xa0, 0xc9, 0x5, 0x41, 0x29);
-DEFINE_GUID(GUID_ZPixelFormats,          0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
-DEFINE_GUID(GUID_DDMoreSurfaceCaps,      0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
-DEFINE_GUID(GUID_DDStereoMode,           0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
-DEFINE_GUID(GUID_OptSurfaceKmodeInfo,    0xe05c8472, 0x51d4, 0x11d1, 0x8c, 0xce, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID(GUID_OptSurfaceUmodeInfo,    0x9d792804, 0x5fa8, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID(GUID_UserModeDriverInfo,     0xf0b0e8e2, 0x5f97, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID(GUID_UserModeDriverPassword, 0x97f861b6, 0x60a1, 0x11d1, 0x8c, 0xd0, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID(GUID_D3DParseUnknownCommandCallback,  0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID(GUID_MotionCompCallbacks,           0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
-DEFINE_GUID(GUID_Miscellaneous2Callbacks,   0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
-#endif
-
-#ifndef _WIN32
-#undef  E_NOTIMPL
-#undef  E_OUTOFMEMORY
-#undef  E_INVALIDARG
-#undef  E_FAIL
-#define E_NOTIMPL      0x80004001L
-#define E_OUTOFMEMORY  0x8007000EL
-#define E_INVALIDARG   0x80070057L
-#define E_FAIL         0x80004005L
-#endif
-
-
 /*****************************************************************************
  * Initialization stuff
  */
@@ -122,25 +68,16 @@ typedef struct {
 
 typedef DWORD (PASCAL *LPDD32BITDRIVERINIT)(DWORD dwContext);
 
-
+/* pointer to video memory */
+typedef ULONG_PTR FLATPTR;
 
 /* predeclare some structures */
 typedef struct _DDHALINFO *LPDDHALINFO;
 typedef struct _DDRAWI_DIRECTDRAW_INT *LPDDRAWI_DIRECTDRAW_INT;
-
-#ifndef DDRAWI_DIRECTDRAW_DEFINED
 typedef struct _DDRAWI_DIRECTDRAW_LCL *LPDDRAWI_DIRECTDRAW_LCL;
 typedef struct _DDRAWI_DIRECTDRAW_GBL *LPDDRAWI_DIRECTDRAW_GBL;
-#define DDRAWI_DIRECTDRAW_DEFINED
-#endif
-
 typedef struct _DDRAWI_DDRAWSURFACE_INT *LPDDRAWI_DDRAWSURFACE_INT;
-
-#ifndef DDRAWI_DDRAWSURFACE_DEFINED
 typedef struct _DDRAWI_DDRAWSURFACE_LCL *LPDDRAWI_DDRAWSURFACE_LCL;
-#define DDRAWI_DDRAWSURFACE_DEFINED
-#endif
-
 typedef struct _DDRAWI_DDRAWSURFACE_GBL *LPDDRAWI_DDRAWSURFACE_GBL;
 typedef struct _DDRAWI_DDRAWSURFACE_MORE *LPDDRAWI_DDRAWSURFACE_MORE;
 typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE *LPDDRAWI_DDRAWSURFACE_GBL_MORE;
@@ -155,10 +92,26 @@ typedef struct _DDRAWI_DDVIDEOPORT_LCL *LPDDRAWI_DDVIDEOPORT_LCL;
 typedef struct _DDRAWI_DDMOTIONCOMP_INT *LPDDRAWI_DDMOTIONCOMP_INT;
 typedef struct _DDRAWI_DDMOTIONCOMP_LCL *LPDDRAWI_DDMOTIONCOMP_LCL;
 
+/* structure GUIDs for GetDriverInfo */
+DEFINE_GUID( GUID_MiscellaneousCallbacks,	0xEFD60CC0,0x49E7,0x11D0,0x88,0x9D,0x00,0xAA,0x00,0xBB,0xB7,0x6A );
+/* ...videport stuff here... */
+DEFINE_GUID( GUID_D3DCallbacks2,		0x0BA584E1,0x70B6,0x11D0,0x88,0x9D,0x00,0xAA,0x00,0xBB,0xB7,0x6A );
+DEFINE_GUID( GUID_D3DCallbacks3,		0xDDF41230,0xEC0A,0x11D0,0xA9,0xB6,0x00,0xAA,0x00,0xC0,0x99,0x3E );
+DEFINE_GUID( GUID_NonLocalVidMemCaps,		0x86C4FA80,0x8D84,0x11D0,0x94,0xE8,0x00,0xC0,0x4F,0xC3,0x41,0x37 );
+/* ...kernel stuff here... */
+DEFINE_GUID( GUID_D3DExtendedCaps,		0x7DE41F80,0x9D93,0x11D0,0x89,0xAB,0x00,0xA0,0xC9,0x05,0x41,0x29 );
+DEFINE_GUID( GUID_ZPixelFormats,		0x93869880,0x36CF,0x11D1,0x9B,0x1B,0x00,0xAA,0x00,0xBB,0xB8,0xAE );
+DEFINE_GUID( GUID_DDMoreSurfaceCaps,		0x3B8A0466,0xF269,0x11D1,0x88,0x0B,0x00,0xC0,0x4F,0xD9,0x30,0xC5 );
+DEFINE_GUID( GUID_DDStereoMode,			0xF828169C,0xA8E8,0x11D2,0xA1,0xF2,0x00,0xA0,0xC9,0x83,0xEA,0xF6 );
+/* ...more stuff here... */
+DEFINE_GUID(GUID_D3DParseUnknownCommandCallback,0x2E04FFA0,0x98E4,0x11D1,0x8C,0xE1,0x00,0xA0,0xC9,0x06,0x29,0xA8 );
+/* ...motioncomp stuff here... */
+DEFINE_GUID( GUID_Miscellaneous2Callbacks,	0x406B2F00,0x3E5A,0x11D1,0xB6,0x40,0x00,0xAA,0x00,0xA1,0xF9,0x6A );
+
 /*****************************************************************************
  * driver->ddraw callbacks
  */
-typedef WINBOOL (DDAPI *LPDDHAL_SETINFO)(LPDDHALINFO lpDDHalInfo, WINBOOL reset);
+typedef BOOL    (DDAPI *LPDDHAL_SETINFO)(LPDDHALINFO lpDDHalInfo, BOOL reset);
 typedef FLATPTR (DDAPI *LPDDHAL_VIDMEMALLOC)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, DWORD dwWidth, DWORD dwHeight);
 typedef void    (DDAPI *LPDDHAL_VIDMEMFREE)(LPDDRAWI_DIRECTDRAW_GBL lpDD, int heap, FLATPTR fpMem);
 
@@ -185,7 +138,6 @@ typedef struct _DDHALMODEINFO {
     DWORD	dwAlphaBitMask;
 } DDHALMODEINFO,*LPDDHALMODEINFO;
 
-
 #define DDMODEINFO_PALETTIZED	0x0001
 #define DDMODEINFO_MODEX	0x0002
 #define DDMODEINFO_UNSUPPORTED	0x0004
@@ -199,25 +151,24 @@ typedef struct _DDHALMODEINFO {
 typedef struct _VIDMEM {
     DWORD	dwFlags;
     FLATPTR	fpStart;
-    __GNU_EXTENSION union {
+    union {
 	FLATPTR		fpEnd;
 	DWORD		dwWidth;
-    };
+    } DUMMYUNIONNAME1;
     DDSCAPS	ddsCaps;
     DDSCAPS	ddsCapsAlt;
-    __GNU_EXTENSION union {
+    union {
 	LPVMEMHEAP	lpHeap;
 	DWORD		dwHeight;
-    };
-} VIDMEM;
-
+    } DUMMYUNIONNAME2;
+} VIDMEM,*LPVIDMEM;
 
-#define VIDMEM_ISLINEAR			0x00000001l
-#define VIDMEM_ISRECTANGULAR		0x00000002l
-#define VIDMEM_ISHEAP			0x00000004l
-#define VIDMEM_ISNONLOCAL		0x00000008l
-#define VIDMEM_ISWC			0x00000010l
-#define VIDMEM_HEAPDISABLED		0x00000020l
+#define VIDMEM_ISLINEAR		0x00000001
+#define VIDMEM_ISRECTANGULAR	0x00000002
+#define VIDMEM_ISHEAP		0x00000004
+#define VIDMEM_ISNONLOCAL	0x00000008
+#define VIDMEM_ISWC		0x00000010
+#define VIDMEM_HEAPDISABLED	0x00000020
 
 typedef struct _VIDMEMINFO {
     FLATPTR		fpPrimary;
@@ -235,7 +186,6 @@ typedef struct _VIDMEMINFO {
     LPVIDMEM		pvmList;
 } VIDMEMINFO,*LPVIDMEMINFO;
 
-
 typedef struct _HEAPALIAS {
     FLATPTR	fpVidMem;
     LPVOID	lpAlias;
@@ -318,18 +268,16 @@ typedef struct _DDNONLOCALVIDMEMCAPS {
     DWORD	dwNLVBRops[DD_ROP_SPACE];
 } DDNONLOCALVIDMEMCAPS,*LPDDNONLOCALVIDMEMCAPS;
 
-
-#define DDSCAPS_EXECUTEBUFFER		DDSCAPS_RESERVED2
-#define DDSCAPS2_VERTEXBUFFER		DDSCAPS2_RESERVED1
-#define DDSCAPS2_COMMANDBUFFER		DDSCAPS2_RESERVED2
-
+#define DDSCAPS_EXECUTEBUFFER	DDSCAPS_RESERVED2
+#define DDSCAPS2_VERTEXBUFFER	DDSCAPS2_RESERVED1
+#define DDSCAPS2_COMMANDBUFFER	DDSCAPS2_RESERVED2
 
 /*****************************************************************************
  * ddraw->driver callbacks
  */
-#define DDHAL_DRIVER_NOTHANDLED		0x00000000l
-#define DDHAL_DRIVER_HANDLED		0x00000001l
-#define DDHAL_DRIVER_NOCKEYHW		0x00000002l
+#define DDHAL_DRIVER_NOTHANDLED	0
+#define DDHAL_DRIVER_HANDLED	1
+#define DDHAL_DRIVER_NOCKEYHW	2
 
 typedef struct _DDHAL_DESTROYDRIVERDATA		*LPDDHAL_DESTROYDRIVERDATA;
 typedef struct _DDHAL_CREATESURFACEDATA		*LPDDHAL_CREATESURFACEDATA;
@@ -353,7 +301,6 @@ typedef DWORD (PASCAL *LPDDHAL_GETSCANLINE)	    (LPDDHAL_GETSCANLINEDATA);
 typedef DWORD (PASCAL *LPDDHAL_SETEXCLUSIVEMODE)    (LPDDHAL_SETEXCLUSIVEMODEDATA);
 typedef DWORD (PASCAL *LPDDHAL_FLIPTOGDISURFACE)    (LPDDHAL_FLIPTOGDISURFACEDATA);
 
-
 typedef struct _DDHAL_DDCALLBACKS {
     DWORD				dwSize;
     DWORD				dwFlags;
@@ -370,7 +317,6 @@ typedef struct _DDHAL_DDCALLBACKS {
     LPDDHAL_FLIPTOGDISURFACE		FlipToGDISurface;
 } DDHAL_DDCALLBACKS,*LPDDHAL_DDCALLBACKS;
 
-
 typedef struct _DDHAL_DESTROYSURFACEDATA	*LPDDHAL_DESTROYSURFACEDATA;
 typedef struct _DDHAL_FLIPDATA			*LPDDHAL_FLIPDATA;
 typedef struct _DDHAL_SETCLIPLISTDATA		*LPDDHAL_SETCLIPLISTDATA;
@@ -418,8 +364,6 @@ typedef struct _DDHAL_DDSURFACECALLBACKS {
     LPDDHALSURFCB_SETPALETTE		SetPalette;
 } DDHAL_DDSURFACECALLBACKS,*LPDDHAL_DDSURFACECALLBACKS;
 
-
-
 typedef struct _DDHAL_DESTROYPALETTEDATA	*LPDDHAL_DESTROYPALETTEDATA;
 typedef struct _DDHAL_SETENTRIESDATA		*LPDDHAL_SETENTRIESDATA;
 
@@ -483,126 +427,8 @@ typedef struct _DDHAL_DDMISCELLANEOUS2CALLBACKS {
     LPDDHAL_DESTROYDDLOCAL		DestroyDDLocal;
 } DDHAL_DDMISCELLANEOUS2CALLBACKS,*LPDDHAL_DDMISCELLANEOUS2CALLBACKS;
 
-
-typedef struct _DDHAL_CANCREATEVPORTDATA       *LPDDHAL_CANCREATEVPORTDATA;
-typedef struct _DDHAL_CREATEVPORTDATA          *LPDDHAL_CREATEVPORTDATA;
-typedef struct _DDHAL_FLIPVPORTDATA            *LPDDHAL_FLIPVPORTDATA;
-typedef struct _DDHAL_GETVPORTCONNECTDATA      *LPDDHAL_GETVPORTCONNECTDATA;
-typedef struct _DDHAL_GETVPORTBANDWIDTHDATA    *LPDDHAL_GETVPORTBANDWIDTHDATA;
-typedef struct _DDHAL_GETVPORTINPUTFORMATDATA  *LPDDHAL_GETVPORTINPUTFORMATDATA;
-typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA *LPDDHAL_GETVPORTOUTPUTFORMATDATA;
-typedef struct _DDHAL_GETVPORTFIELDDATA        *LPDDHAL_GETVPORTFIELDDATA;
-typedef struct _DDHAL_GETVPORTLINEDATA         *LPDDHAL_GETVPORTLINEDATA;
-typedef struct _DDHAL_DESTROYVPORTDATA         *LPDDHAL_DESTROYVPORTDATA;
-typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA   *LPDDHAL_GETVPORTFLIPSTATUSDATA;
-typedef struct _DDHAL_UPDATEVPORTDATA          *LPDDHAL_UPDATEVPORTDATA;
-typedef struct _DDHAL_WAITFORVPORTSYNCDATA     *LPDDHAL_WAITFORVPORTSYNCDATA;
-typedef struct _DDHAL_GETVPORTSIGNALDATA       *LPDDHAL_GETVPORTSIGNALDATA;
-typedef struct _DDHAL_VPORTCOLORDATA           *LPDDHAL_VPORTCOLORDATA;
-
-typedef DWORD (PASCAL *LPDDHALVPORTCB_CANCREATEVIDEOPORT)(LPDDHAL_CANCREATEVPORTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_CREATEVIDEOPORT)(LPDDHAL_CREATEVPORTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_FLIP)(LPDDHAL_FLIPVPORTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETBANDWIDTH)(LPDDHAL_GETVPORTBANDWIDTHDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETINPUTFORMATS)(LPDDHAL_GETVPORTINPUTFORMATDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETOUTPUTFORMATS)(LPDDHAL_GETVPORTOUTPUTFORMATDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFIELD)(LPDDHAL_GETVPORTFIELDDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETLINE)(LPDDHAL_GETVPORTLINEDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETVPORTCONNECT)(LPDDHAL_GETVPORTCONNECTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_DESTROYVPORT)(LPDDHAL_DESTROYVPORTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETFLIPSTATUS)(LPDDHAL_GETVPORTFLIPSTATUSDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_UPDATE)(LPDDHAL_UPDATEVPORTDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_WAITFORSYNC)(LPDDHAL_WAITFORVPORTSYNCDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_GETSIGNALSTATUS)(LPDDHAL_GETVPORTSIGNALDATA);
-typedef DWORD (PASCAL *LPDDHALVPORTCB_COLORCONTROL)(LPDDHAL_VPORTCOLORDATA);
-
-typedef struct _DDHAL_DDVIDEOPORTCALLBACKS {
-    DWORD				dwSize;
-    DWORD				dwFlags;
-    LPDDHALVPORTCB_CANCREATEVIDEOPORT	CanCreateVideoPort;
-    LPDDHALVPORTCB_CREATEVIDEOPORT	CreateVideoPort;
-    LPDDHALVPORTCB_FLIP			FlipVideoPort;
-    LPDDHALVPORTCB_GETBANDWIDTH		GetVideoPortBandwidth;
-    LPDDHALVPORTCB_GETINPUTFORMATS	GetVideoPortInputFormats;
-    LPDDHALVPORTCB_GETOUTPUTFORMATS	GetVideoPortOutputFormats;
-    LPVOID				lpReserved1;
-    LPDDHALVPORTCB_GETFIELD		GetVideoPortField;
-    LPDDHALVPORTCB_GETLINE		GetVideoPortLine;
-    LPDDHALVPORTCB_GETVPORTCONNECT	GetVideoPortConnectInfo;
-    LPDDHALVPORTCB_DESTROYVPORT		DestroyVideoPort;
-    LPDDHALVPORTCB_GETFLIPSTATUS	GetVideoPortFlipStatus;
-    LPDDHALVPORTCB_UPDATE		UpdateVideoPort;
-    LPDDHALVPORTCB_WAITFORSYNC		WaitForVideoPortSync;
-    LPDDHALVPORTCB_GETSIGNALSTATUS	GetVideoSignalStatus;
-    LPDDHALVPORTCB_COLORCONTROL		ColorControl;
-} DDHAL_DDVIDEOPORTCALLBACKS;
-
-
-typedef struct _DDHAL_COLORCONTROLDATA *LPDDHAL_COLORCONTROLDATA;
-
-typedef DWORD (PASCAL *LPDDHALCOLORCB_COLORCONTROL)(LPDDHAL_COLORCONTROLDATA);
-
-
-typedef struct _DDHAL_DDCOLORCONTROLCALLBACKS {
-    DWORD				dwSize;
-    DWORD				dwFlags;
-    LPDDHALCOLORCB_COLORCONTROL		ColorControl;
-} DDHAL_DDCOLORCONTROLCALLBACKS;
-
-typedef struct _DDHAL_SYNCSURFACEDATA   *LPDDHAL_SYNCSURFACEDATA;
-typedef struct _DDHAL_SYNCVIDEOPORTDATA *LPDDHAL_SYNCVIDEOPORTDATA;
-
-typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCSURFACE)(LPDDHAL_SYNCSURFACEDATA);
-typedef DWORD (PASCAL *LPDDHALKERNELCB_SYNCVIDEOPORT)(LPDDHAL_SYNCVIDEOPORTDATA);
-
-typedef struct _DDHAL_DDKERNELCALLBACKS {
-    DWORD				dwSize;
-    DWORD				dwFlags;
-    LPDDHALKERNELCB_SYNCSURFACE		SyncSurfaceData;
-    LPDDHALKERNELCB_SYNCVIDEOPORT	SyncVideoPortData;
-} DDHAL_DDKERNELCALLBACKS, *LPDDHAL_DDKERNELCALLBACKS;
-
-typedef struct _DDHAL_GETMOCOMPGUIDSDATA  *LPDDHAL_GETMOCOMPGUIDSDATA;
-typedef struct _DDHAL_GETMOCOMPFORMATSDATA  *LPDDHAL_GETMOCOMPFORMATSDATA;
-typedef struct _DDHAL_CREATEMOCOMPDATA  *LPDDHAL_CREATEMOCOMPDATA;
-typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA  *LPDDHAL_GETMOCOMPCOMPBUFFDATA;
-typedef struct _DDHAL_GETINTERNALMOCOMPDATA  *LPDDHAL_GETINTERNALMOCOMPDATA;
-typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA  *LPDDHAL_BEGINMOCOMPFRAMEDATA;
-typedef struct _DDHAL_ENDMOCOMPFRAMEDATA  *LPDDHAL_ENDMOCOMPFRAMEDATA;
-typedef struct _DDHAL_RENDERMOCOMPDATA  *LPDDHAL_RENDERMOCOMPDATA;
-typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA  *LPDDHAL_QUERYMOCOMPSTATUSDATA;
-typedef struct _DDHAL_DESTROYMOCOMPDATA  *LPDDHAL_DESTROYMOCOMPDATA;
-
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETGUIDS)( LPDDHAL_GETMOCOMPGUIDSDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETFORMATS)( LPDDHAL_GETMOCOMPFORMATSDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_CREATE)( LPDDHAL_CREATEMOCOMPDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETCOMPBUFFINFO)( LPDDHAL_GETMOCOMPCOMPBUFFDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_GETINTERNALINFO)( LPDDHAL_GETINTERNALMOCOMPDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_BEGINFRAME)( LPDDHAL_BEGINMOCOMPFRAMEDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_ENDFRAME)( LPDDHAL_ENDMOCOMPFRAMEDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_RENDER)( LPDDHAL_RENDERMOCOMPDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_QUERYSTATUS)( LPDDHAL_QUERYMOCOMPSTATUSDATA);
-typedef DWORD (PASCAL *LPDDHALMOCOMPCB_DESTROY)( LPDDHAL_DESTROYMOCOMPDATA);
-
-typedef struct _DDHAL_DDMOTIONCOMPCALLBACKS {
-    DWORD				dwSize;
-    DWORD				dwFlags;
-    LPDDHALMOCOMPCB_GETGUIDS		GetMoCompGuids;
-    LPDDHALMOCOMPCB_GETFORMATS		GetMoCompFormats;
-    LPDDHALMOCOMPCB_CREATE		CreateMoComp;
-    LPDDHALMOCOMPCB_GETCOMPBUFFINFO	GetMoCompBuffInfo;
-    LPDDHALMOCOMPCB_GETINTERNALINFO	GetInternalMoCompInfo;
-    LPDDHALMOCOMPCB_BEGINFRAME		BeginMoCompFrame;
-    LPDDHALMOCOMPCB_ENDFRAME		EndMoCompFrame;
-    LPDDHALMOCOMPCB_RENDER		RenderMoComp;
-    LPDDHALMOCOMPCB_QUERYSTATUS		QueryMoCompStatus;
-    LPDDHALMOCOMPCB_DESTROY		DestroyMoComp;
-} DDHAL_DDMOTIONCOMPCALLBACKS, *LPDDHAL_DDMOTIONCOMPCALLBACKS;
-
-
 typedef HRESULT (WINAPI *LPDDGAMMACALIBRATORPROC)(LPDDGAMMARAMP, LPBYTE);
 
-
 /*****************************************************************************
  * driver info structure
  *
@@ -611,18 +437,6 @@ typedef HRESULT (WINAPI *LPDDGAMMACALIBRATORPROC)(LPDDGAMMARAMP, LPBYTE);
 typedef struct _DDHAL_GETDRIVERINFODATA *LPDDHAL_GETDRIVERINFODATA;
 typedef DWORD (PASCAL *LPDDHAL_GETDRIVERINFO)(LPDDHAL_GETDRIVERINFODATA);
 
-
-typedef struct _DDHAL_GETDRIVERINFODATA {
-    DWORD	dwSize;
-    DWORD	dwFlags;
-    GUID	guidInfo;
-    DWORD	dwExpectedSize;
-    LPVOID	lpvData;
-    DWORD	dwActualSize;
-    HRESULT	ddRVal;
-    ULONG_PTR	dwContext;
-} DDHAL_GETDRIVERINFODATA;
-
 typedef struct _DDHALINFO {
     DWORD			dwSize;
     LPDDHAL_DDCALLBACKS		lpDDCallbacks;
@@ -645,144 +459,25 @@ typedef struct _DDHALINFO {
     LPDDHAL_DDEXEBUFCALLBACKS	lpDDExeBufCallbacks;
 } DDHALINFO;
 
-
-#define DDPALETTECALLBACKSSIZE		sizeof(DDHAL_DDPALETTECALLBACKS)
-#define DDSURFACECALLBACKSSIZE		sizeof(DDHAL_DDSURFACECALLBACKS)
-#define DDMISCELLANEOUSCALLBACKSSIZE	sizeof(DDHAL_DDMISCELLANEOUSCALLBACKS)
-#define DDMISCELLANEOUS2CALLBACKSSIZE	sizeof(DDHAL_DDMISCELLANEOUS2CALLBACKS)
-#define DDEXEBUFCALLBACKSSIZE		sizeof(DDHAL_DDEXEBUFCALLBACKS)
-#define DDVIDEOPORTCALLBACKSSIZE	sizeof(DDHAL_DDVIDEOPORTCALLBACKS)
-#define DDCOLORCONTROLCALLBACKSSIZE	sizeof(DDHAL_DDCOLORCONTROLCALLBACKS)
-#define DDKERNELCALLBACKSSIZE		sizeof(DDHAL_DDKERNELCALLBACKS)
-#define DDMOTIONCOMPCALLBACKSSIZE	sizeof(DDHAL_DDMOTIONCOMPCALLBACKS)
-
-#define MAX_PALETTE_SIZE		256
-
-#define MAX_AUTOFLIP_BUFFERS		10
-#define DDSCAPS2_INDEXBUFFER		DDSCAPS2_RESERVED3
-#define DDSCAPS3_VIDEO			DDSCAPS3_RESERVED2
-#define D3DFMT_INTERNAL_D32		71
-#define D3DFMT_INTERNAL_S1D15		72
-#define D3DFMT_INTERNAL_D15S1		73
-#define D3DFMT_INTERNAL_S8D24		74
-#define D3DFMT_INTERNAL_D24S8		75
-#define D3DFMT_INTERNAL_X8D24		76
-#define D3DFMT_INTERNAL_D24X8		77
-
-#define DDHAL_PLEASEALLOC_BLOCKSIZE		0x00000002l
-#define DDHAL_PLEASEALLOC_LINEARSIZE		0x00000003l
-
-#define DDHAL_CB32_DESTROYDRIVER		0x00000001l
-#define DDHAL_CB32_CREATESURFACE		0x00000002l
-#define DDHAL_CB32_SETCOLORKEY			0x00000004l
-#define DDHAL_CB32_SETMODE			0x00000008l
-#define DDHAL_CB32_WAITFORVERTICALBLANK		0x00000010l
-#define DDHAL_CB32_CANCREATESURFACE		0x00000020l
-#define DDHAL_CB32_CREATEPALETTE		0x00000040l
-#define DDHAL_CB32_GETSCANLINE			0x00000080l
-#define DDHAL_CB32_SETEXCLUSIVEMODE		0x00000100l
-#define DDHAL_CB32_FLIPTOGDISURFACE		0x00000200l
-#define DDHAL_PALCB32_DESTROYPALETTE		0x00000001l
-#define DDHAL_PALCB32_SETENTRIES		0x00000002l
-
-#define DDHALINFO_ISPRIMARYDISPLAY		0x00000001
-#define DDHALINFO_MODEXILLEGAL			0x00000002
-#define DDHALINFO_GETDRIVERINFOSET		0x00000004
-#define DDHALINFO_GETDRIVERINFO2		0x00000008
-
-#define DDRAWI_VPORTSTART			0x0001
-#define DDRAWI_VPORTSTOP			0x0002
-#define DDRAWI_VPORTUPDATE			0x0003
-#define DDRAWI_VPORTGETCOLOR			0x0001
-#define DDRAWI_VPORTSETCOLOR			0x0002
-
-#define DDHAL_SURFCB32_DESTROYSURFACE		0x00000001
-#define DDHAL_SURFCB32_FLIP			0x00000002
-#define DDHAL_SURFCB32_SETCLIPLIST		0x00000004
-#define DDHAL_SURFCB32_LOCK			0x00000008
-#define DDHAL_SURFCB32_UNLOCK			0x00000010
-#define DDHAL_SURFCB32_BLT			0x00000020
-#define DDHAL_SURFCB32_SETCOLORKEY		0x00000040
-#define DDHAL_SURFCB32_ADDATTACHEDSURFACE	0x00000080
-#define DDHAL_SURFCB32_GETBLTSTATUS		0x00000100
-#define DDHAL_SURFCB32_GETFLIPSTATUS		0x00000200
-#define DDHAL_SURFCB32_UPDATEOVERLAY		0x00000400
-#define DDHAL_SURFCB32_SETOVERLAYPOSITION	0x00000800
-#define DDHAL_SURFCB32_RESERVED4		0x00001000
-#define DDHAL_SURFCB32_SETPALETTE		0x00002000
-
-#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY	0x00000001
-#define DDHAL_MISCCB32_UPDATENONLOCALHEAP	0x00000002
-#define DDHAL_MISCCB32_GETHEAPALIGNMENT		0x00000004
-#define DDHAL_MISCCB32_GETSYSMEMBLTSTATUS	0x00000008
-#define DDHAL_MISC2CB32_ALPHABLT		0x00000001
-#define DDHAL_MISC2CB32_CREATESURFACEEX		0x00000002
-#define DDHAL_MISC2CB32_GETDRIVERSTATE		0x00000004
-#define DDHAL_MISC2CB32_DESTROYDDLOCAL		0x00000008
-
-#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF	0x00000001l
-#define DDHAL_EXEBUFCB32_CREATEEXEBUF		0x00000002l
-#define DDHAL_EXEBUFCB32_DESTROYEXEBUF		0x00000004l
-#define DDHAL_EXEBUFCB32_LOCKEXEBUF		0x00000008l
-#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF		0x00000010l
-
-#define DDHAL_VPORT32_CANCREATEVIDEOPORT	0x00000001
-#define DDHAL_VPORT32_CREATEVIDEOPORT		0x00000002
-#define DDHAL_VPORT32_FLIP			0x00000004
-#define DDHAL_VPORT32_GETBANDWIDTH		0x00000008
-#define DDHAL_VPORT32_GETINPUTFORMATS		0x00000010
-#define DDHAL_VPORT32_GETOUTPUTFORMATS		0x00000020
-#define DDHAL_VPORT32_GETFIELD			0x00000080
-#define DDHAL_VPORT32_GETLINE			0x00000100
-#define DDHAL_VPORT32_GETCONNECT		0x00000200
-#define DDHAL_VPORT32_DESTROY			0x00000400
-#define DDHAL_VPORT32_GETFLIPSTATUS		0x00000800
-#define DDHAL_VPORT32_UPDATE			0x00001000
-#define DDHAL_VPORT32_WAITFORSYNC		0x00002000
-#define DDHAL_VPORT32_GETSIGNALSTATUS		0x00004000
-#define DDHAL_VPORT32_COLORCONTROL		0x00008000
-
-#define DDHAL_COLOR_COLORCONTROL		0x00000001
-
-#define DDHAL_KERNEL_SYNCSURFACEDATA		0x00000001l
-#define DDHAL_KERNEL_SYNCVIDEOPORTDATA		0x00000002l
-
-#define DDHAL_MOCOMP32_GETGUIDS			0x00000001
-#define DDHAL_MOCOMP32_GETFORMATS		0x00000002
-#define DDHAL_MOCOMP32_CREATE			0x00000004
-#define DDHAL_MOCOMP32_GETCOMPBUFFINFO		0x00000008
-#define DDHAL_MOCOMP32_GETINTERNALINFO		0x00000010
-#define DDHAL_MOCOMP32_BEGINFRAME		0x00000020
-#define DDHAL_MOCOMP32_ENDFRAME			0x00000040
-#define DDHAL_MOCOMP32_RENDER			0x00000080
-#define DDHAL_MOCOMP32_QUERYSTATUS		0x00000100
-#define DDHAL_MOCOMP32_DESTROY			0x00000200
-
+#define DDHALINFO_ISPRIMARYDISPLAY	0x00000001
+#define DDHALINFO_MODEXILLEGAL		0x00000002
+#define DDHALINFO_GETDRIVERINFOSET	0x00000004
 
 /* where the high-level ddraw implementation stores the callbacks */
 typedef struct _DDHAL_CALLBACKS {
-    DDHAL_DDCALLBACKS			cbDDCallbacks;
-    DDHAL_DDSURFACECALLBACKS		cbDDSurfaceCallbacks;
-    DDHAL_DDPALETTECALLBACKS		cbDDPaletteCallbacks;
-    DDHAL_DDCALLBACKS			HALDD;
-    DDHAL_DDSURFACECALLBACKS		HALDDSurface;
-    DDHAL_DDPALETTECALLBACKS		HALDDPalette;
-    DDHAL_DDCALLBACKS			HELDD;
-    DDHAL_DDSURFACECALLBACKS		HELDDSurface;
-    DDHAL_DDPALETTECALLBACKS		HELDDPalette;
-    DDHAL_DDEXEBUFCALLBACKS		cbDDExeBufCallbacks;
-    DDHAL_DDEXEBUFCALLBACKS		HALDDExeBuf;
-    DDHAL_DDEXEBUFCALLBACKS		HELDDExeBuf;
-    DDHAL_DDVIDEOPORTCALLBACKS		cbDDVideoPortCallbacks;
-    DDHAL_DDVIDEOPORTCALLBACKS		HALDDVideoPort;
-    DDHAL_DDCOLORCONTROLCALLBACKS	cbDDColorControlCallbacks;
-    DDHAL_DDCOLORCONTROLCALLBACKS	HALDDColorControl;
-    DDHAL_DDMISCELLANEOUSCALLBACKS	cbDDMiscellaneousCallbacks;
-    DDHAL_DDMISCELLANEOUSCALLBACKS	HALDDMiscellaneous;
-    DDHAL_DDKERNELCALLBACKS		cbDDKernelCallbacks;
-    DDHAL_DDKERNELCALLBACKS		HALDDKernel;
-    DDHAL_DDMOTIONCOMPCALLBACKS		cbDDMotionCompCallbacks;
-    DDHAL_DDMOTIONCOMPCALLBACKS		HALDDMotionComp;
+    DDHAL_DDCALLBACKS		cbDDCallbacks;
+    DDHAL_DDSURFACECALLBACKS	cbDDSurfaceCallbacks;
+    DDHAL_DDPALETTECALLBACKS	cbDDPaletteCallbacks;
+    DDHAL_DDCALLBACKS		HALDD;
+    DDHAL_DDSURFACECALLBACKS	HALDDSurface;
+    DDHAL_DDPALETTECALLBACKS	HALDDPalette;
+    DDHAL_DDCALLBACKS		HELDD;
+    DDHAL_DDSURFACECALLBACKS	HELDDSurface;
+    DDHAL_DDPALETTECALLBACKS	HELDDPalette;
+    DDHAL_DDEXEBUFCALLBACKS	cbDDExeBufCallbacks;
+    DDHAL_DDEXEBUFCALLBACKS	HALDDExeBuf;
+    DDHAL_DDEXEBUFCALLBACKS	HELDDExeBuf;
+    /* there's more... videoport, colorcontrol, misc, and motion compensation callbacks... */
 } DDHAL_CALLBACKS,*LPDDHAL_CALLBACKS;
 
 /*****************************************************************************
@@ -799,8 +494,8 @@ typedef struct _DDHAL_SETMODEDATA {
     DWORD			dwModeIndex;
     HRESULT			ddRVal;
     LPDDHAL_SETMODE		SetMode;
-    WINBOOL			inexcl;
-    WINBOOL			useRefreshRate;
+    BOOL			inexcl;
+    BOOL			useRefreshRate;
 } DDHAL_SETMODEDATA;
 
 typedef struct _DDHAL_CREATESURFACEDATA {
@@ -826,7 +521,7 @@ typedef struct _DDHAL_CREATEPALETTEDATA {
     LPPALETTEENTRY		lpColorTable;
     HRESULT			ddRVal;
     LPDDHAL_CREATEPALETTE	CreatePalette;
-    WINBOOL			is_excl;
+    BOOL			is_excl;
 } DDHAL_CREATEPALETTEDATA;
 
 typedef struct _DDHAL_SETEXCLUSIVEMODEDATA {
@@ -885,20 +580,32 @@ typedef struct _DDHAL_BLTDATA {
     DDBLTFX			bltFX;
     HRESULT			ddRVal;
     LPDDHALSURFCB_BLT		Blt;
-    WINBOOL			IsClipped;
+    BOOL			IsClipped;
     RECTL			rOrigDest;
     RECTL			rOrigSrc;
     DWORD			dwRectCnt;
     LPRECT			prDestRects;
 } DDHAL_BLTDATA;
 
+typedef struct _DDHAL_UPDATEOVERLAYDATA {
+ LPDDRAWI_DIRECTDRAW_GBL lpDD;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDDestSurface;
+ RECTL rDest;
+ LPDDRAWI_DDRAWSURFACE_LCL lpDDSrcSurface;
+ RECTL rSrc;
+ DWORD dwFlags;
+ DDOVERLAYFX overlayFX;
+ HRESULT ddRVal;
+ LPDDHALSURFCB_UPDATEOVERLAY UpdateOverlay;
+} DDHAL_UPDATEOVERLAYDATA;
+
 typedef struct _DDHAL_SETPALETTEDATA {
     LPDDRAWI_DIRECTDRAW_GBL	lpDD;
     LPDDRAWI_DDRAWSURFACE_LCL	lpDDSurface;
     LPDDRAWI_DDRAWPALETTE_GBL	lpDDPalette;
     HRESULT			ddRVal;
     LPDDHALSURFCB_SETPALETTE	SetPalette;
-    WINBOOL			Attach;
+    BOOL			Attach;
 } DDHAL_SETPALETTEDATA;
 
 /* palettes */
@@ -919,213 +626,16 @@ typedef struct _DDHAL_SETENTRIESDATA {
     LPDDHALPALCB_SETENTRIES	SetEntries;
 } DDHAL_SETENTRIESDATA;
 
-
-typedef struct _DDHAL_CANCREATEVPORTDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDVIDEOPORTDESC			lpDDVideoPortDesc;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_CANCREATEVIDEOPORT	CanCreateVideoPort;
-} DDHAL_CANCREATEVPORTDATA;
-
-typedef struct _DDHAL_CREATEVPORTDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDVIDEOPORTDESC			lpDDVideoPortDesc;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_CREATEVIDEOPORT	CreateVideoPort;
-} DDHAL_CREATEVPORTDATA;
-
-typedef struct _DDHAL_GETVPORTBANDWIDTHDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    LPDDPIXELFORMAT			lpddpfFormat;
-    DWORD				dwWidth;
-    DWORD				dwHeight;
-    DWORD				dwFlags;
-    LPDDVIDEOPORTBANDWIDTH		lpBandwidth;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_GETBANDWIDTH		GetVideoPortBandwidth;
-} DDHAL_GETVPORTBANDWIDTHDATA;
-
-typedef struct _DDHAL_GETVPORTINPUTFORMATDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    DWORD				dwFlags;
-    LPDDPIXELFORMAT			lpddpfFormat;
-    DWORD				dwNumFormats;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_GETINPUTFORMATS	GetVideoPortInputFormats;
-} DDHAL_GETVPORTINPUTFORMATDATA;
-
-typedef struct _DDHAL_GETVPORTFIELDDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    WINBOOL				bField;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_GETFIELD		GetVideoPortField;
-} DDHAL_GETVPORTFIELDDATA;
-
-typedef struct _DDHAL_GETVPORTOUTPUTFORMATDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    DWORD				dwFlags;
-    LPDDPIXELFORMAT			lpddpfInputFormat;
-    LPDDPIXELFORMAT			lpddpfOutputFormats;
-    DWORD				dwNumFormats;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_GETOUTPUTFORMATS	GetVideoPortOutputFormats;
-} DDHAL_GETVPORTOUTPUTFORMATDATA;
-
-typedef struct _DDHAL_GETVPORTLINEDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    DWORD				dwLine;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_GETLINE		GetVideoPortLine;
-} DDHAL_GETVPORTLINEDATA;
-
-typedef struct _DDHAL_DESTROYVPORTDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_DESTROYVPORT		DestroyVideoPort;
-} DDHAL_DESTROYVPORTDATA;
-
-typedef struct _DDHAL_GETVPORTFLIPSTATUSDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    FLATPTR				fpSurface;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_GETFLIPSTATUS	GetVideoPortFlipStatus;
-} DDHAL_GETVPORTFLIPSTATUSDATA;
-
-typedef struct _DDHAL_UPDATEVPORTDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    LPDDRAWI_DDRAWSURFACE_INT		*lplpDDSurface;
-    LPDDRAWI_DDRAWSURFACE_INT		*lplpDDVBISurface;
-    LPDDVIDEOPORTINFO			lpVideoInfo;
-    DWORD				dwFlags;
-    DWORD				dwNumAutoflip;
-    DWORD				dwNumVBIAutoflip;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_UPDATE		UpdateVideoPort;
-} DDHAL_UPDATEVPORTDATA;
-
-typedef struct _DDHAL_WAITFORVPORTSYNCDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    DWORD				dwFlags;
-    DWORD				dwLine;
-    DWORD				dwTimeOut;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_WAITFORSYNC		WaitForVideoPortSync;
-} DDHAL_WAITFORVPORTSYNCDATA;
-
-typedef struct _DDHAL_GETVPORTSIGNALDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    DWORD				dwStatus;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_GETSIGNALSTATUS	GetVideoSignalStatus;
-} DDHAL_GETVPORTSIGNALDATA;
-
-typedef struct _DDHAL_VPORTCOLORDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    DWORD				dwFlags;
-    LPDDCOLORCONTROL			lpColorData;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_COLORCONTROL		ColorControl;
-} DDHAL_VPORTCOLORDATA;
-
-typedef struct _DDHAL_FLIPVPORTDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    LPDDRAWI_DDRAWSURFACE_LCL		lpSurfCurr;
-    LPDDRAWI_DDRAWSURFACE_LCL		lpSurfTarg;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_FLIP			FlipVideoPort;
-} DDHAL_FLIPVPORTDATA;
-
-typedef struct _DDHAL_GETVPORTCONNECTDATA {
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    DWORD				dwPortId;
-    LPDDVIDEOPORTCONNECT		lpConnect;
-    DWORD				dwNumEntries;
-    HRESULT				ddRVal;
-    LPDDHALVPORTCB_GETVPORTCONNECT	GetVideoPortConnectInfo;
-} DDHAL_GETVPORTCONNECTDATA;
-
-typedef struct _DDHAL_SYNCSURFACEDATA {
-    DWORD				dwSize;
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL		lpDDSurface;
-    DWORD				dwSurfaceOffset;
-    ULONG_PTR				fpLockPtr;
-    LONG				lPitch;
-    DWORD				dwOverlayOffset;
-    DWORD				dwOverlaySrcWidth;
-    DWORD				dwOverlaySrcHeight;
-    DWORD				dwOverlayDestWidth;
-    DWORD				dwOverlayDestHeight;
-    ULONG_PTR				dwDriverReserved1;
-    ULONG_PTR				dwDriverReserved2;
-    ULONG_PTR				dwDriverReserved3;
-    HRESULT				ddRVal;
-} DDHAL_SYNCSURFACEDATA;
-
-typedef struct _DDHAL_SYNCVIDEOPORTDATA {
-    DWORD				dwSize;
-    LPDDRAWI_DIRECTDRAW_LCL		lpDD;
-    LPDDRAWI_DDVIDEOPORT_LCL		lpVideoPort;
-    DWORD				dwOriginOffset;
-    DWORD				dwHeight;
-    DWORD				dwVBIHeight;
-    ULONG_PTR				dwDriverReserved1;
-    ULONG_PTR				dwDriverReserved2;
-    ULONG_PTR				dwDriverReserved3;
-    HRESULT				ddRVal;
-} DDHAL_SYNCVIDEOPORTDATA;
-
-typedef struct _DDHAL_DESTROYDDLOCALDATA {
-    DWORD				dwFlags;
-    LPDDRAWI_DIRECTDRAW_LCL		pDDLcl;
-    HRESULT				ddRVal;
-} DDHAL_DESTROYDDLOCALDATA;
-
-typedef struct _DDHAL_CREATESURFACEEXDATA {
-    DWORD				dwFlags;
-    LPDDRAWI_DIRECTDRAW_LCL		lpDDLcl;
-    LPDDRAWI_DDRAWSURFACE_LCL		lpDDSLcl;
-    HRESULT				ddRVal;
-} DDHAL_CREATESURFACEEXDATA;
-
-typedef struct _DDHAL_GETHEAPALIGNMENTDATA {
-    ULONG_PTR				dwInstance;
-    DWORD				dwHeap;
-    HRESULT				ddRVal;
-    LPDDHAL_GETHEAPALIGNMENT		GetHeapAlignment;
-    HEAPALIGNMENT			Alignment;
-} DDHAL_GETHEAPALIGNMENTDATA;
-
-
-typedef struct _DDMORESURFACECAPS {
-    DWORD	dwSize;
-    DDSCAPSEX	ddsCapsMore;
-    struct tagExtendedHeapRestrictions {
-      DDSCAPSEX		ddsCapsEx;
-      DDSCAPSEX		ddsCapsExAlt;
-    } ddsExtendedHeapRestrictions[1];
-} DDMORESURFACECAPS, *LPDDMORESURFACECAPS;
-
-typedef struct _DDSTEREOMODE {
+typedef struct _DDHAL_GETDRIVERINFODATA {
     DWORD	dwSize;
-    DWORD	dwHeight;
-    DWORD	dwWidth;
-    DWORD	dwBpp;
-    DWORD	dwRefreshRate;
-    WINBOOL	bSupported;
-} DDSTEREOMODE, *LPDDSTEREOMODE;
+    DWORD	dwFlags;
+    GUID	guidInfo;
+    DWORD	dwExpectedSize;
+    LPVOID	lpvData;
+    DWORD	dwActualSize;
+    HRESULT	ddRVal;
+    ULONG_PTR	dwContext;
+} DDHAL_GETDRIVERINFODATA;
 
 /*****************************************************************************
  * high-level ddraw implementation structures
@@ -1133,13 +643,8 @@ typedef struct _DDSTEREOMODE {
 typedef struct _IUNKNOWN_LIST {
     struct _IUNKNOWN_LIST *	lpLink;
     LPGUID			lpGuid;
-#ifndef _NO_COM
     IUnknown *			lpIUnknown;
-#else
-    LPVOID			lpIUnknown;
-#endif /* _NO_COM */
-} IUNKNOWN_LIST, *LPIUNKNOWN_LIST;
-
+} IUNKNOWN_LIST,*LPIUNKNOWN_LIST;
 
 typedef struct _PROCESS_LIST {
     struct _PROCESS_LIST *	lpLink;
@@ -1156,7 +661,7 @@ typedef struct _ATTACHLIST {
     LPDDRAWI_DDRAWSURFACE_INT	lpIAttached;
 } ATTACHLIST,*LPATTACHLIST;
 
-#define DDAL_IMPLICIT			0x00000001
+#define DDAL_IMPLICIT	0x00000001
 
 typedef struct _ACCESSRECTLIST {
     struct _ACCESSRECTLIST *	lpLink;
@@ -1185,7 +690,6 @@ typedef struct _DDRAWI_DIRECTDRAW_INT {
     DWORD			dwIntRefCnt;
 } DDRAWI_DIRECTDRAW_INT;
 
-
 typedef struct _DDRAWI_DIRECTDRAW_LCL {
     DWORD			lpDDMore;
     LPDDRAWI_DIRECTDRAW_GBL	lpGbl;
@@ -1193,11 +697,7 @@ typedef struct _DDRAWI_DIRECTDRAW_LCL {
     DWORD			dwLocalFlags;
     DWORD			dwLocalRefCnt;
     DWORD			dwProcessId;
-#ifndef _NO_COM
     IUnknown *			pUnkOuter;
-#else
-    PVOID			pUnkOuter;
-#endif
     DWORD			dwObsolete1;
     ULONG_PTR			hWnd;
     ULONG_PTR			hDC;
@@ -1207,11 +707,7 @@ typedef struct _DDRAWI_DIRECTDRAW_LCL {
     DWORD			dwPreferredMode;
     /* DirectX 2 */
     HINSTANCE			hD3DInstance;
-#ifndef _NO_COM
     IUnknown *			pD3DIUnknown;
-#else
-    PVOID			pD3DIUnknown;
-#endif
     LPDDHAL_CALLBACKS		lpDDCB;
     ULONG_PTR			hDDVxd;
     /* DirectX 5.0 */
@@ -1227,7 +723,6 @@ typedef struct _DDRAWI_DIRECTDRAW_LCL {
     LPDDGAMMACALIBRATORPROC	lpGammaCalibrator;
 } DDRAWI_DIRECTDRAW_LCL;
 
-
 #define DDRAWILCL_HASEXCLUSIVEMODE	0x00000001
 #define DDRAWILCL_ISFULLSCREEN		0x00000002
 #define DDRAWILCL_SETCOOPCALLED		0x00000004
@@ -1248,9 +743,6 @@ typedef struct _DDRAWI_DIRECTDRAW_LCL {
 #define DDRAWILCL_DIRECTDRAW7		0x00020000
 #define DDRAWILCL_ATTEMPTEDD3DCONTEXT	0x00040000
 #define DDRAWILCL_FPUPRESERVE		0x00080000
-#define DDRAWILCL_DX8DRIVER		0x00100000
-#define DDRAWILCL_DIRECTDRAW8		0x00200000
-
 
 typedef struct _DDRAWI_DIRECTDRAW_GBL {
     DWORD			dwRefCnt;
@@ -1329,37 +821,15 @@ typedef struct _DDRAWI_DIRECTDRAW_GBL {
     DDSCAPSEX			ddsCapsMore;
 } DDRAWI_DIRECTDRAW_GBL;
 
-#define DDRAWI_xxxxxxxxx1			0x00000001
-#define DDRAWI_xxxxxxxxx2			0x00000002
-#define DDRAWI_VIRTUALDESKTOP			0x00000008
-#define DDRAWI_MODEX				0x00000010
-#define DDRAWI_DISPLAYDRV			0x00000020
-#define DDRAWI_FULLSCREEN			0x00000040
-#define DDRAWI_MODECHANGED			0x00000080
-#define DDRAWI_NOHARDWARE			0x00000100
-#define DDRAWI_PALETTEINIT			0x00000200
-#define DDRAWI_NOEMULATION			0x00000400
-#define DDRAWI_HASCKEYDESTOVERLAY		0x00000800
-#define DDRAWI_HASCKEYSRCOVERLAY		0x00001000
-#define DDRAWI_HASGDIPALETTE			0x00002000
-#define DDRAWI_EMULATIONINITIALIZED		0x00004000
-#define DDRAWI_HASGDIPALETTE_EXCLUSIVE		0x00008000
-#define DDRAWI_MODEXILLEGAL			0x00010000
-#define DDRAWI_FLIPPEDTOGDI			0x00020000
-#define DDRAWI_NEEDSWIN16FORVRAMLOCK		0x00040000
-#define DDRAWI_PDEVICEVRAMBITCLEARED		0x00080000
-#define DDRAWI_STANDARDVGA			0x00100000
-#define DDRAWI_EXTENDEDALIGNMENT		0x00200000
-#define DDRAWI_CHANGINGMODE			0x00400000
-#define DDRAWI_GDIDRV				0x00800000
-#define DDRAWI_ATTACHEDTODESKTOP		0x01000000
-#define DDRAWI_UMODELOADED			0x02000000
-#define DDRAWI_DDRAWDATANOTFETCHED		0x04000000
-#define DDRAWI_SECONDARYDRIVERLOADED		0x08000000
-#define DDRAWI_TESTINGMODES			0x10000000
-#define DDRAWI_DRIVERINFO2			0x20000000
-#define DDRAWI_BADPDEV				0x40000000
-
+#define DDRAWI_VIRTUALDESKTOP	0x00000008
+#define DDRAWI_MODEX		0x00000010
+#define DDRAWI_DISPLAYDRV	0x00000020
+#define DDRAWI_FULLSCREEN	0x00000040
+#define DDRAWI_MODECHANGED	0x00000080
+#define DDRAWI_NOHARDWARE	0x00000100
+#define DDRAWI_PALETTEINIT	0x00000200
+#define DDRAWI_NOEMULATION	0x00000400
+/* more... */
 
 /* surfaces */
 typedef struct _DDRAWI_DDRAWSURFACE_INT {
@@ -1372,60 +842,56 @@ typedef struct _DDRAWI_DDRAWSURFACE_INT {
 typedef struct _DDRAWI_DDRAWSURFACE_GBL {
     DWORD			dwRefCnt;
     DWORD			dwGlobalFlags;
-    __GNU_EXTENSION union {
+    union {
 	LPACCESSRECTLIST	lpRectList;
-	DWORD			    dwBlockSizeY;
-	LONG                lSlicePitch;
-    };
-    __GNU_EXTENSION union {
+	DWORD			dwBlockSizeY;
+    } DUMMYUNIONNAME1;
+    union {
 	LPVMEMHEAP		lpVidMemHeap;
 	DWORD			dwBlockSizeX;
-    };
-    __GNU_EXTENSION union {
+    } DUMMYUNIONNAME2;
+    union {
 	LPDDRAWI_DIRECTDRAW_GBL	lpDD;
 	LPVOID			lpDDHandle;
-    };
+    } DUMMYUNIONNAME3;
     FLATPTR			fpVidMem;
-    __GNU_EXTENSION union {
+    union {
 	LONG			lPitch;
 	DWORD			dwLinearSize;
-    };
+    } DUMMYUNIONNAME4;
     WORD			wHeight;
     WORD			wWidth;
     DWORD			dwUsageCount;
-    ULONG_PTR			dwReserved1;
+    ULONG_PTR			dwReserved1; /* for display driver use */
+    /* optional (defaults to primary surface pixelformat) */
     DDPIXELFORMAT		ddpfSurface;
 } DDRAWI_DDRAWSURFACE_GBL;
 
-#define DDRAWISURFGBL_MEMFREE			0x00000001L
-#define DDRAWISURFGBL_SYSMEMREQUESTED		0x00000002L
-#define DDRAWISURFGBL_ISGDISURFACE		0x00000004L
-#define DDRAWISURFGBL_SOFTWAREAUTOFLIP		0x00000008L
-#define DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK	0x00000010L
-#define DDRAWISURFGBL_LOCKVRAMSTYLE		0x00000020L
-#define DDRAWISURFGBL_LOCKBROKEN		0x00000040L
-#define DDRAWISURFGBL_IMPLICITHANDLE		0x00000080L
-#define DDRAWISURFGBL_ISCLIENTMEM		0x00000100L
-#define DDRAWISURFGBL_HARDWAREOPSOURCE		0x00000200L
-#define DDRAWISURFGBL_HARDWAREOPDEST		0x00000400L
-#define DDRAWISURFGBL_HARDWAREOPSTARTED		(DDRAWISURFGBL_HARDWAREOPSOURCE|DDRAWISURFGBL_HARDWAREOPDEST)
-#define DDRAWISURFGBL_VPORTINTERLEAVED		0x00000800L
-#define DDRAWISURFGBL_VPORTDATA			0x00001000L
-#define DDRAWISURFGBL_LATEALLOCATELINEAR	0x00002000L
-#define DDRAWISURFGBL_SYSMEMEXECUTEBUFFER	0x00004000L
-#define DDRAWISURFGBL_FASTLOCKHELD		0x00008000L
-#define DDRAWISURFGBL_READONLYLOCKHELD		0x00010000L
-#define DDRAWISURFGBL_DX8SURFACE		0x00080000L
-#define DDRAWISURFGBL_DDHELDONTFREE		0x00100000L
-#define DDRAWISURFGBL_NOTIFYWHENUNLOCKED	0x00200000L
-#define DDRAWISURFGBL_RESERVED0			0x80000000L /* Reserved flag */
+#define DDRAWISURFGBL_MEMFREE			0x00000001
+#define DDRAWISURFGBL_SYSMEMREQUESTED		0x00000002
+#define DDRAWISURFGBL_ISGDISURFACE		0x00000004
+#define DDRAWISURFGBL_SOFTWAREAUTOFLIP		0x00000008
+#define DDRAWISURFGBL_LOCKNOTHOLDINGWIN16LOCK	0x00000010
+#define DDRAWISURFGBL_LOCKVRAMSTYLE		0x00000020
+#define DDRAWISURFGBL_LOCKBROKEN		0x00000040
+#define DDRAWISURFGBL_IMPLICITHANDLE		0x00000080
+#define DDRAWISURFGBL_ISCLIENTMEM		0x00000100
+#define DDRAWISURFGBL_HARDWAREOPSOURCE		0x00000200
+#define DDRAWISURFGBL_HARDWAREOPDEST		0x00000400
+#define DDRAWISURFGBL_HARDWAREOPSTARTED		0x00000600
+#define DDRAWISURFGBL_VPORTINTERLEAVED		0x00000800
+#define DDRAWISURFGBL_VPORTDATA			0x00001000
+#define DDRAWISURFGBL_LATEALLOCATELINEAR	0x00002000
+#define DDRAWISURFGBL_SYSMEMEXECUTEBUFFER	0x00004000
+#define DDRAWISURFGBL_FASTLOCKHELD		0x00008000
+#define DDRAWISURFGBL_READONLYLOCKHELD		0x00010000
 
 typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE {
     DWORD			dwSize;
-    __GNU_EXTENSION union {
+    union {
 	DWORD			dwPhysicalPageTable;
 	FLATPTR			fpPhysicalVidMem;
-    };
+    } DUMMYUNIONNAME1;
     LPDWORD			pPageTable;
     DWORD			cPages;
     ULONG_PTR			dwSavedDCContext;
@@ -1451,21 +917,6 @@ typedef struct _DDRAWI_DDRAWSURFACE_GBL_MORE {
 #define GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl) \
     (*(((LPDDRAWI_DDRAWSURFACE_GBL_MORE *)(psurf_gbl)) - 1))
 
-#define SURFACE_PHYSICALVIDMEM( psurf_gbl ) \
-    ( GET_LPDDRAWSURFACE_GBL_MORE(psurf_gbl )->fpPhysicalVidMem )
-
-
-typedef struct  _DISPLAYMODEINFO {
-    WORD		wWidth;
-    WORD		wHeight;
-    BYTE		wBPP;
-    BYTE		wMonitorsAttachedToDesktop;
-    WORD		wRefreshRate;
-} DISPLAYMODEINFO, *LPDISPLAYMODEINFO;
-
-#define EQUAL_DISPLAYMODE ( A, B ) (0 == memcmp(&(A), &(B), sizeof (DISPLAYMODEINFO)))
-
-
 typedef struct _DDRAWI_DDRAWSURFACE_MORE {
     DWORD			dwSize;
     IUNKNOWN_LIST *		lpIUnknowns;
@@ -1491,9 +942,6 @@ typedef struct _DDRAWI_DDRAWSURFACE_MORE {
     LPDWORD			lpGammaRamp;
     LPDWORD			lpOriginalGammaRamp;
     LPVOID			lpDDrawReserved6;
-# ifndef WIN95
-    DISPLAYMODEINFO dmiDDrawReserved7;
-# endif
     DWORD			dwSurfaceHandle;
     DWORD			qwDDrawReserved8[2];
     LPVOID			lpDDrawReserved9;
@@ -1504,7 +952,6 @@ typedef struct _DDRAWI_DDRAWSURFACE_MORE {
     LPVOID			lpVB;
 } DDRAWI_DDRAWSURFACE_MORE;
 
-
 typedef struct _DDRAWI_DDRAWSURFACE_LCL {
     LPDDRAWI_DDRAWSURFACE_MORE	lpSurfMore;
     LPDDRAWI_DDRAWSURFACE_GBL	lpGbl;
@@ -1515,20 +962,15 @@ typedef struct _DDRAWI_DDRAWSURFACE_LCL {
     DWORD			dwProcessId;
     DWORD			dwFlags;
     DDSCAPS			ddsCaps;
-    __GNU_EXTENSION union {
-      LPDDRAWI_DDRAWPALETTE_INT	lpDDPalette;
-      LPDDRAWI_DDRAWPALETTE_INT	lp16DDPalette;
-    };
-    __GNU_EXTENSION union  {
-      LPDDRAWI_DDRAWCLIPPER_LCL	lpDDClipper;
-      LPDDRAWI_DDRAWCLIPPER_INT	lp16DDClipper;
-    };
+    LPDDRAWI_DDRAWPALETTE_INT	lpDDPalette;
+    LPDDRAWI_DDRAWCLIPPER_LCL	lpDDClipper;
     DWORD			dwModeCreatedIn;
     DWORD			dwBackBufferCount;
     DDCOLORKEY			ddckCKDestBlt;
     DDCOLORKEY			ddckCKSrcBlt;
     ULONG_PTR			hDC;
-    ULONG_PTR			dwReserved1;
+    ULONG_PTR			dwReserved1; /* for display driver use */
+    /* overlays only */
     DDCOLORKEY			ddckCKSrcOverlay;
     DDCOLORKEY			ddckCKDestOverlay;
     LPDDRAWI_DDRAWSURFACE_INT	lpSurfaceOverlaying;
@@ -1541,40 +983,24 @@ typedef struct _DDRAWI_DDRAWSURFACE_LCL {
     LONG			lOverlayY;
 } DDRAWI_DDRAWSURFACE_LCL;
 
-#define DDRAWISURF_ATTACHED		0x00000001L
-#define DDRAWISURF_IMPLICITCREATE	0x00000002L
-#define DDRAWISURF_ISFREE		0x00000004L
-#define DDRAWISURF_ATTACHED_FROM	0x00000008L
-#define DDRAWISURF_IMPLICITROOT		0x00000010L
-#define DDRAWISURF_PARTOFPRIMARYCHAIN	0x00000020L
-#define DDRAWISURF_DATAISALIASED	0x00000040L
-#define DDRAWISURF_HASDC		0x00000080L
-#define DDRAWISURF_HASCKEYDESTOVERLAY	0x00000100L
-#define DDRAWISURF_HASCKEYDESTBLT	0x00000200L
-#define DDRAWISURF_HASCKEYSRCOVERLAY	0x00000400L
-#define DDRAWISURF_HASCKEYSRCBLT	0x00000800L
-#define DDRAWISURF_LOCKEXCLUDEDCURSOR	0x00001000L
-#define DDRAWISURF_HASPIXELFORMAT	0x00002000L
-#define DDRAWISURF_HASOVERLAYDATA	0x00004000L
-#define DDRAWISURF_SETGAMMA		0x00008000L
-#define DDRAWISURF_SW_CKEYDESTOVERLAY	0x00010000L
-#define DDRAWISURF_SW_CKEYDESTBLT	0x00020000L
-#define DDRAWISURF_SW_CKEYSRCOVERLAY	0x00040000L
-#define DDRAWISURF_SW_CKEYSRCBLT	0x00080000L
-#define DDRAWISURF_HW_CKEYDESTOVERLAY	0x00100000L
-#define DDRAWISURF_HW_CKEYDESTBLT	0x00200000L
-#define DDRAWISURF_HW_CKEYSRCOVERLAY	0x00400000L
-#define DDRAWISURF_HW_CKEYSRCBLT	0x00800000L
-#define DDRAWISURF_INMASTERSPRITELIST	0x01000000L
-#define DDRAWISURF_HELCB		0x02000000L
-#define DDRAWISURF_FRONTBUFFER		0x04000000L
-#define DDRAWISURF_BACKBUFFER		0x08000000L
-#define DDRAWISURF_INVALID		0x10000000L
-#define DDRAWISURF_DCIBUSY		0x20000000L
-#define DDRAWISURF_GETDCNULL		0x40000000L
-#define DDRAWISURF_STEREOSURFACELEFT	0x20000000L
-#define DDRAWISURF_DRIVERMANAGED	0x40000000L
-#define DDRAWISURF_DCILOCK		0x80000000L
+#define DDRAWISURF_ATTACHED		0x00000001
+#define DDRAWISURF_IMPLICITCREATE	0x00000002
+#define DDRAWISURF_ISFREE		0x00000004
+#define DDRAWISURF_ATTACHED_FROM	0x00000008
+#define DDRAWISURF_IMPLICITROOT		0x00000010
+#define DDRAWISURF_PARTOFPRIMARYCHAIN	0x00000020
+#define DDRAWISURF_DATAISALIASED	0x00000040
+#define DDRAWISURF_HASDC		0x00000080
+#define DDRAWISURF_HASCKEYDESTOVERLAY	0x00000100
+#define DDRAWISURF_HASCKEYDESTBLT	0x00000200
+#define DDRAWISURF_HASCKEYSRCOVERLAY	0x00000400
+#define DDRAWISURF_HASCKEYSRCBLT	0x00000800
+#define DDRAWISURF_LOCKEXCLUDEDCURSOR	0x00001000
+#define DDRAWISURF_HASPIXELFORMAT	0x00002000
+#define DDRAWISURF_HASOVERLAYDATA	0x00004000
+#define DDRAWISURF_SETGAMMA		0x00008000
+/* more... */
+#define DDRAWISURF_INVALID		0x10000000
 
 /* palettes */
 typedef struct _DDRAWI_DDRAWPALETTE_INT {
@@ -1590,118 +1016,40 @@ typedef struct _DDRAWI_DDRAWPALETTE_GBL {
     LPDDRAWI_DIRECTDRAW_LCL	lpDD_lcl;
     DWORD			dwProcessId;
     LPPALETTEENTRY		lpColorTable;
-    __GNU_EXTENSION union {
-	ULONG_PTR		dwReserved1;
+    union {
+	ULONG_PTR		dwReserved1; /* for display driver use */
 	HPALETTE		hHELGDIPalette;
-    };
+    } DUMMYUNIONNAME1;
+    /* DirectX 5.0 */
     DWORD			dwDriverReserved;
     DWORD			dwContentsStamp;
+    /* DirectX 6.0 */
     DWORD			dwSaveStamp;
+    /* DirectX 7.0 */
     DWORD			dwHandle;
 } DDRAWI_DDRAWPALETTE_GBL;
 
-#define DDRAWIPAL_256				0x00000001
-#define DDRAWIPAL_16				0x00000002
-#define DDRAWIPAL_GDI				0x00000004
-#define DDRAWIPAL_STORED_8			0x00000008
-#define DDRAWIPAL_STORED_16			0x00000010
-#define DDRAWIPAL_STORED_24			0x00000020
-#define DDRAWIPAL_EXCLUSIVE			0x00000040
-#define DDRAWIPAL_INHEL				0x00000080
-#define DDRAWIPAL_DIRTY				0x00000100
-#define DDRAWIPAL_ALLOW256			0x00000200
-#define DDRAWIPAL_4				0x00000400
-#define DDRAWIPAL_2				0x00000800
-#define DDRAWIPAL_STORED_8INDEX			0x00001000
-#define DDRAWIPAL_ALPHA				0x00002000
-
-#define D3DFORMAT_OP_TEXTURE			0x00000001L
-#define D3DFORMAT_OP_VOLUMETEXTURE		0x00000002L
-#define D3DFORMAT_OP_CUBETEXTURE		0x00000004L
-#define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET	0x00000008L
-#define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET	0x00000010L
-#define D3DFORMAT_OP_ZSTENCIL			0x00000040L
-#define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH  0x00000080L
-#define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L
-#define D3DFORMAT_OP_DISPLAYMODE		0x00000400L
-#define D3DFORMAT_OP_3DACCELERATION		0x00000800L
-#define D3DFORMAT_OP_PIXELSIZE			0x00001000L
-#define D3DFORMAT_OP_CONVERT_TO_ARGB		0x00002000L
-#define D3DFORMAT_OP_OFFSCREENPLAIN		0x00004000L
-#define D3DFORMAT_OP_SRGBREAD			0x00008000L
-#define D3DFORMAT_OP_BUMPMAP			0x00010000L
-#define D3DFORMAT_OP_NOFILTER			0x00040000L
-
-#define DDPF_D3DFORMAT				0x00200000l
-#define DDPF_NOVEL_TEXTURE_FORMAT		0x00100000l
-
-#define D3DFORMAT_MEMBEROFGROUP_ARGB		0x00080000L
-#define D3DFORMAT_OP_SRGBWRITE			0x00100000L
-#define D3DFORMAT_OP_NOALPHABLEND		0x00200000L
-#define D3DFORMAT_OP_AUTOGENMIPMAP		0x00400000L
-#define D3DFORMAT_OP_VERTEXTEXTURE		0x00800000L
-#define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP	0x01000000L
-
-#define DELETED_OK				0
-#define DELETED_LASTONE				1
-#define DELETED_NOTFOUND			2
-
-#define DDCALLBACKSSIZE_V1			( offsetof(DDHAL_DDCALLBACKS, SetExclusiveMode) )
-#define DDCALLBACKSSIZE				sizeof(DDHAL_DDCALLBACKS)
-
-#define DDRAWICLIP_WATCHWINDOW			0x00000001
-#define DDRAWICLIP_ISINITIALIZED		0x00000002
-#define DDRAWICLIP_INMASTERSPRITELIST		0x00000004
-
-#define PFINDEX_UNINITIALIZED			(0UL)
-#define PFINDEX_UNSUPPORTED			(~0UL)
-
-#define ROP_HAS_SOURCE				0x00000001l
-#define ROP_HAS_PATTERN				0x00000002l
-#define ROP_HAS_SOURCEPATTERN			ROP_HAS_SOURCE | ROP_HAS_PATTERN
-
-#define DDRAWIVPORT_ON				0x00000001
-#define DDRAWIVPORT_SOFTWARE_AUTOFLIP		0x00000002
-#define DDRAWIVPORT_COLORKEYANDINTERP		0x00000004
-#define DDRAWIVPORT_NOKERNELHANDLES		0x00000008
-#define DDRAWIVPORT_SOFTWARE_BOB		0x00000010
-#define DDRAWIVPORT_VBION			0x00000020
-#define DDRAWIVPORT_VIDEOON			0x00000040
-
-#define DDRAWI_GETCOLOR				0x0001
-#define DDRAWI_SETCOLOR				0x0002
-
-#define DDMCQUERY_READ				0x00000001
-#define DDWAITVB_I_TESTVB			0x80000006
-
-#define DDBLT_ANYALPHA							\
-	(DDBLT_ALPHASRCSURFACEOVERRIDE | DDBLT_ALPHASRCCONSTOVERRIDE |	\
-	 DDBLT_ALPHASRC | DDBLT_ALPHADESTSURFACEOVERRIDE |		\
-	 DDBLT_ALPHADESTCONSTOVERRIDE | DDBLT_ALPHADEST)
-
-#define DDHAL_ALIGNVALIDCAPS						\
-	(DDSCAPS_OFFSCREENPLAIN | DDSCAPS_EXECUTEBUFFER |		\
-	 DDSCAPS_OVERLAY | DDSCAPS_TEXTURE |				\
-	 DDSCAPS_ZBUFFER | DDSCAPS_ALPHA | DDSCAPS_FLIP)
-
-#define DDHALINFOSIZE_V2 sizeof(DDHALINFO)
-
-#define DDOVER_ANYALPHA							\
-	(DDOVER_ALPHASRCSURFACEOVERRIDE | DDOVER_ALPHASRCCONSTOVERRIDE |\
-	 DDOVER_ALPHASRC | DDOVER_ALPHADESTSURFACEOVERRIDE |		\
-	 DDOVER_ALPHADESTCONSTOVERRIDE | DDOVER_ALPHADEST)
-
+#define DDRAWIPAL_256		0x00000001
+#define DDRAWIPAL_16		0x00000002
+#define DDRAWIPAL_GDI		0x00000004
+#define DDRAWIPAL_STORED_8	0x00000008
+#define DDRAWIPAL_STORED_16	0x00000010
+#define DDRAWIPAL_STORED_24	0x00000020
+#define DDRAWIPAL_EXCLUSIVE	0x00000040
+#define DDRAWIPAL_INHEL		0x00000080
+#define DDRAWIPAL_DIRTY		0x00000100
+#define DDRAWIPAL_ALLOW256	0x00000200
+#define DDRAWIPAL_4		0x00000400
+#define DDRAWIPAL_2		0x00000800
+#define DDRAWIPAL_STORED_8INDEX	0x00001000
+#define DDRAWIPAL_ALPHA		0x00002000
 
 typedef struct _DDRAWI_DDRAWPALETTE_LCL {
     DWORD			lpPalMore;
     LPDDRAWI_DDRAWPALETTE_GBL	lpGbl;
     ULONG_PTR			dwUnused0;
     DWORD			dwLocalRefCnt;
-#ifndef _NO_COM
     IUnknown *			pUnkOuter;
-#else
-    PVOID			pUnkOuter;
-#endif
     LPDDRAWI_DIRECTDRAW_LCL	lpDD_lcl;
     ULONG_PTR			dwReserved1;
     /* DirectX 6.0 */
@@ -1710,418 +1058,8 @@ typedef struct _DDRAWI_DDRAWPALETTE_LCL {
     ULONG_PTR			dwDDRAWReserved3;
 } DDRAWI_DDRAWPALETTE_LCL;
 
-
-typedef struct _DDMCCOMPBUFFERINFO {
-    DWORD			dwSize;
-    DWORD			dwNumCompBuffers;
-    DWORD			dwWidthToCreate;
-    DWORD			dwHeightToCreate;
-    DWORD			dwBytesToAllocate;
-    DDSCAPS2			ddCompCaps;
-    DDPIXELFORMAT		ddPixelFormat;
-} DDMCCOMPBUFFERINFO, *LPDDMCCOMPBUFFERINFO;
-
-typedef struct _DDMCBUFFERINFO {
-    DWORD			dwSize;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpCompSurface;
-    DWORD			dwDataOffset;
-    DWORD			dwDataSize;
-    LPVOID			lpPrivate;
-} DDMCBUFFERINFO, *LPDDMCBUFFERINFO;
-
-typedef struct _DDHAL_GETDRIVERSTATEDATA {
-    DWORD			dwFlags;
-    __GNU_EXTENSION union {
-	ULONG_PTR		dwhContext;
-    };
-    LPDWORD			lpdwStates;
-    DWORD			dwLength;
-    HRESULT			ddRVal;
-} DDHAL_GETDRIVERSTATEDATA;
-
-typedef struct _DDHAL_ADDATTACHEDSURFACEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDSurface;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpSurfAttached;
-    HRESULT				ddRVal;
-    LPDDHALSURFCB_ADDATTACHEDSURFACE	AddAttachedSurface;
-} DDHAL_ADDATTACHEDSURFACEDATA;
-
-
-typedef struct _DDHAL_BEGINMOCOMPFRAMEDATA {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL	lpMoComp;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDestSurface;
-    DWORD			dwInputDataSize;
-    LPVOID			lpInputData;
-    DWORD			dwOutputDataSize;
-    LPVOID			lpOutputData;
-    HRESULT			ddRVal;
-    LPDDHALMOCOMPCB_BEGINFRAME	BeginMoCompFrame;
-} DDHAL_BEGINMOCOMPFRAMEDATA;
-
-typedef struct _DDHAL_COLORCONTROLDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDSurface;
-    LPDDCOLORCONTROL		lpColorData;
-    DWORD			dwFlags;
-    HRESULT			ddRVal;
-    LPDDHALCOLORCB_COLORCONTROL	ColorControl;
-} DDHAL_COLORCONTROLDATA;
-
-typedef struct _DDHAL_CREATEMOCOMPDATA {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL	lpMoComp;
-    LPGUID			lpGuid;
-    DWORD			dwUncompWidth;
-    DWORD			dwUncompHeight;
-    DDPIXELFORMAT		ddUncompPixelFormat;
-    LPVOID			lpData;
-    DWORD			dwDataSize;
-    HRESULT			ddRVal;
-    LPDDHALMOCOMPCB_CREATE	CreateMoComp;
-} DDHAL_CREATEMOCOMPDATA;
-
-typedef struct _DDHAL_DESTROYMOCOMPDATA {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL	lpMoComp;
-    HRESULT			ddRVal;
-    LPDDHALMOCOMPCB_DESTROY	DestroyMoComp;
-} DDHAL_DESTROYMOCOMPDATA;
-
-typedef struct _DDHAL_ENDMOCOMPFRAMEDATA {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL	lpMoComp;
-    LPVOID			lpInputData;
-    DWORD			dwInputDataSize;
-    HRESULT			ddRVal;
-    LPDDHALMOCOMPCB_ENDFRAME	EndMoCompFrame;
-} DDHAL_ENDMOCOMPFRAMEDATA;
-
-typedef struct _DDHAL_FLIPTOGDISURFACEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    DWORD			dwToGDI;
-    DWORD			dwReserved;
-    HRESULT			ddRVal;
-    LPDDHAL_FLIPTOGDISURFACE	FlipToGDISurface;
-} DDHAL_FLIPTOGDISURFACEDATA;
-
-typedef struct _DDHAL_GETAVAILDRIVERMEMORYDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    DDSCAPS			DDSCaps;
-    DWORD			dwTotal;
-    DWORD			dwFree;
-    HRESULT			ddRVal;
-    LPDDHAL_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
-    DDSCAPSEX			ddsCapsEx;
-} DDHAL_GETAVAILDRIVERMEMORYDATA;
-
-typedef struct _DDHAL_GETBLTSTATUSDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDSurface;
-    DWORD			dwFlags;
-    HRESULT			ddRVal;
-    LPDDHALSURFCB_GETBLTSTATUS	GetBltStatus;
-} DDHAL_GETBLTSTATUSDATA;
-
-typedef struct _DDHAL_GETFLIPSTATUSDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDSurface;
-    DWORD			dwFlags;
-    HRESULT			ddRVal;
-    LPDDHALSURFCB_GETFLIPSTATUS	GetFlipStatus;
-} DDHAL_GETFLIPSTATUSDATA;
-
-typedef struct _DDHAL_GETINTERNALMOCOMPDATA {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    LPGUID			lpGuid;
-    DWORD			dwWidth;
-    DWORD			dwHeight;
-    DDPIXELFORMAT		ddPixelFormat;
-    DWORD			dwScratchMemAlloc;
-    HRESULT				ddRVal;
-    LPDDHALMOCOMPCB_GETINTERNALINFO GetInternalMoCompInfo;
-} DDHAL_GETINTERNALMOCOMPDATA;
-
-typedef struct _DDHAL_GETMOCOMPCOMPBUFFDATA {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    LPGUID			lpGuid;
-    DWORD			dwWidth;
-    DWORD			dwHeight;
-    DDPIXELFORMAT		ddPixelFormat;
-    DWORD			dwNumTypesCompBuffs;
-    LPDDMCCOMPBUFFERINFO	lpCompBuffInfo;
-    HRESULT				ddRVal;
-    LPDDHALMOCOMPCB_GETCOMPBUFFINFO GetMoCompBuffInfo;
-} DDHAL_GETMOCOMPCOMPBUFFDATA;
-
-typedef struct _DDHAL_GETMOCOMPGUIDSDATA {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    DWORD			dwNumGuids;
-    LPGUID			lpGuids;
-    HRESULT			ddRVal;
-    LPDDHALMOCOMPCB_GETGUIDS	GetMoCompGuids;
-} DDHAL_GETMOCOMPGUIDSDATA;
-
-typedef struct _DDHAL_GETMOCOMPFORMATSDATA {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    LPGUID			lpGuid;
-    DWORD			dwNumFormats;
-    LPDDPIXELFORMAT		lpFormats;
-    HRESULT			ddRVal;
-    LPDDHALMOCOMPCB_GETFORMATS	GetMoCompFormats;
-} DDHAL_GETMOCOMPFORMATSDATA;
-
-typedef struct _DDHAL_GETSCANLINEDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    DWORD			dwScanLine;
-    HRESULT			ddRVal;
-    LPDDHAL_GETSCANLINE		GetScanLine;
-} DDHAL_GETSCANLINEDATA;
-
-typedef struct _DDHAL_QUERYMOCOMPSTATUSDATA {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL	lpMoComp;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpSurface;
-    DWORD			dwFlags;
-    HRESULT			ddRVal;
-    LPDDHALMOCOMPCB_QUERYSTATUS	QueryMoCompStatus;
-} DDHAL_QUERYMOCOMPSTATUSDATA;
-
-typedef struct _DDHAL_RENDERMOCOMPDATA {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    LPDDRAWI_DDMOTIONCOMP_LCL	lpMoComp;
-    DWORD			dwNumBuffers;
-    LPDDMCBUFFERINFO		lpBufferInfo;
-    DWORD			dwFunction;
-    LPVOID			lpInputData;
-    DWORD			dwInputDataSize;
-    LPVOID			lpOutputData;
-    DWORD			dwOutputDataSize;
-    HRESULT			ddRVal;
-    LPDDHALMOCOMPCB_RENDER	RenderMoComp;
-} DDHAL_RENDERMOCOMPDATA;
-
-typedef struct _DDHAL_SETCOLORKEYDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDSurface;
-    DWORD			dwFlags;
-    DDCOLORKEY			ckNew;
-    HRESULT			ddRVal;
-    LPDDHALSURFCB_SETCOLORKEY	SetColorKey;
-} DDHAL_SETCOLORKEYDATA;
-
-typedef struct _DDHAL_SETOVERLAYPOSITIONDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDSrcSurface;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDDestSurface;
-    LONG				lXPos;
-    LONG				lYPos;
-    HRESULT				ddRVal;
-    LPDDHALSURFCB_SETOVERLAYPOSITION SetOverlayPosition;
-} DDHAL_SETOVERLAYPOSITIONDATA;
-
-typedef struct _DDHAL_UPDATEOVERLAYDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDDestSurface;
-    RECTL			rDest;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDSrcSurface;
-    RECTL			rSrc;
-    DWORD			dwFlags;
-    DDOVERLAYFX			overlayFX;
-    HRESULT			ddRVal;
-    LPDDHALSURFCB_UPDATEOVERLAY	UpdateOverlay;
-} DDHAL_UPDATEOVERLAYDATA;
-
-typedef struct _DDHAL_WAITFORVERTICALBLANKDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    DWORD			dwFlags;
-    DWORD			bIsInVB;
-    ULONG_PTR			hEvent;
-    HRESULT			ddRVal;
-    LPDDHAL_WAITFORVERTICALBLANK WaitForVerticalBlank;
-} DDHAL_WAITFORVERTICALBLANKDATA;
-
-typedef struct _DDHAL_DRVSETCOLORKEYDATA {
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDSurface;
-    DWORD			dwFlags;
-    DDCOLORKEY			ckNew;
-    HRESULT			ddRVal;
-    LPDDHAL_SETCOLORKEY		SetColorKey;
-} DDHAL_DRVSETCOLORKEYDATA;
-
-typedef struct _DDMONITORINFO {
-    WORD		Manufacturer;
-    WORD		Product;
-    DWORD		SerialNumber;
-    GUID		DeviceIdentifier;
-    int			Mode640x480;
-    int			Mode800x600;
-    int			Mode1024x768;
-    int			Mode1280x1024;
-    int			Mode1600x1200;
-    int			ModeReserved1;
-    int			ModeReserved2;
-    int			ModeReserved3;
-} DDMONITORINFO, FAR *LPDDMONITORINFO;
-
-typedef struct _DDRAWI_DDRAWCLIPPER_INT {
-    LPVOID			lpVtbl;
-    LPDDRAWI_DDRAWCLIPPER_LCL	lpLcl;
-    LPDDRAWI_DDRAWCLIPPER_INT	lpLink;
-    DWORD		   dwIntRefCnt;
-} DDRAWI_DDRAWCLIPPER_INT;
-
-typedef struct _DDHAL_UPDATENONLOCALHEAPDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    DWORD			dwHeap;
-    FLATPTR			fpGARTLin;
-    FLATPTR			fpGARTDev;
-    ULONG_PTR			ulPolicyMaxBytes;
-    HRESULT			ddRVal;
-    LPDDHAL_UPDATENONLOCALHEAP	UpdateNonLocalHeap;
-} DDHAL_UPDATENONLOCALHEAPDATA;
-
-typedef struct _DDHAL_SETCLIPLISTDATA {
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    LPDDRAWI_DDRAWSURFACE_LCL	lpDDSurface;
-    HRESULT			ddRVal;
-    LPDDHALSURFCB_SETCLIPLIST	SetClipList;
-} DDHAL_SETCLIPLISTDATA;
-
-typedef struct _DDRAWI_DDMOTIONCOMP_LCL {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    GUID			guid;
-    DWORD			dwUncompWidth;
-    DWORD			dwUncompHeight;
-    DDPIXELFORMAT		ddUncompPixelFormat;
-    DWORD			dwInternalFlags;
-    DWORD			dwRefCnt;
-    DWORD			dwProcessId;
-    HANDLE			hMoComp;
-    DWORD		dwDriverReserved1;
-    DWORD		dwDriverReserved2;
-    DWORD		dwDriverReserved3;
-    LPVOID		lpDriverReserved1;
-    LPVOID		lpDriverReserved2;
-    LPVOID		lpDriverReserved3;
-} DDRAWI_DDMOTIONCOMP_LCL;
-
-typedef struct _DDRAWI_DDMOTIONCOMP_INT {
-    LPVOID			lpVtbl;
-    LPDDRAWI_DDMOTIONCOMP_LCL	lpLcl;
-    LPDDRAWI_DDMOTIONCOMP_INT	lpLink;
-    DWORD			dwIntRefCnt;
-} DDRAWI_DDMOTIONCOMP_INT;
-
-
-typedef struct _DDRAWI_DDVIDEOPORT_LCL {
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD;
-    DDVIDEOPORTDESC		ddvpDesc;
-    DDVIDEOPORTINFO		ddvpInfo;
-    LPDDRAWI_DDRAWSURFACE_INT	lpSurface;
-    LPDDRAWI_DDRAWSURFACE_INT	lpVBISurface;
-    LPDDRAWI_DDRAWSURFACE_INT	*lpFlipInts;
-    DWORD			dwNumAutoflip;
-    DWORD			dwProcessID;
-    DWORD			dwStateFlags;
-    DWORD			dwFlags;
-    DWORD			dwRefCnt;
-    FLATPTR			fpLastFlip;
-    ULONG_PTR			dwReserved1;
-    ULONG_PTR			dwReserved2;
-    HANDLE			hDDVideoPort;
-    DWORD			dwNumVBIAutoflip;
-    LPDDVIDEOPORTDESC		lpVBIDesc;
-    LPDDVIDEOPORTDESC		lpVideoDesc;
-    LPDDVIDEOPORTINFO		lpVBIInfo;
-    LPDDVIDEOPORTINFO		lpVideoInfo;
-    DWORD			dwVBIProcessID;
-    LPDDRAWI_DDVIDEOPORT_INT	lpVPNotify;
-} DDRAWI_DDVIDEOPORT_LCL;
-
-
-typedef struct _DDRAWI_DDVIDEOPORT_INT {
-    LPVOID			lpVtbl;
-    LPDDRAWI_DDVIDEOPORT_LCL	lpLcl;
-    LPDDRAWI_DDVIDEOPORT_INT	lpLink;
-    DWORD			dwIntRefCnt;
-    DWORD			dwFlags;
-} DDRAWI_DDVIDEOPORT_INT;
-
-
-typedef struct _DDRAWI_DDRAWCLIPPER_LCL {
-    DWORD			lpClipMore;
-    LPDDRAWI_DDRAWCLIPPER_GBL	lpGbl;
-    LPDDRAWI_DIRECTDRAW_LCL	lpDD_lcl;
-    DWORD			dwLocalRefCnt;
-#ifndef _NO_COM
-    IUnknown *			pUnkOuter;
-#else
-    PVOID			pUnkOuter;
-#endif
-    LPDDRAWI_DIRECTDRAW_INT	lpDD_int;
-    ULONG_PTR			dwReserved1;
-#ifndef _NO_COM
-    IUnknown *			pAddrefedThisOwner;
-#else
-    PVOID			pAddrefedThisOwner;
-#endif
-} DDRAWI_DDRAWCLIPPER_LCL;
-
-
-typedef struct _DDRAWI_DDRAWCLIPPER_GBL {
-    DWORD			dwRefCnt;
-    DWORD			dwFlags;
-    LPDDRAWI_DIRECTDRAW_GBL	lpDD;
-    DWORD			dwProcessId;
-    ULONG_PTR			dwReserved1;
-    ULONG_PTR			hWnd;
-    LPRGNDATA			lpStaticClipList;
-} DDRAWI_DDRAWCLIPPER_GBL;
-
-typedef WINBOOL (PASCAL *LPDDHEL_INIT)(LPDDRAWI_DIRECTDRAW_GBL,WINBOOL);
-
-extern HRESULT DDAPI
-       LateAllocateSurfaceMem(
-                              LPDIRECTDRAWSURFACE lpSurface,
-                              DWORD dwPleaseAllocType,
-                              DWORD dwWidthInBytesOrSize,
-                              DWORD dwHeight);
-
-       LPDIRECTDRAWSURFACE GetNextMipMap(
-                           LPDIRECTDRAWSURFACE lpLevel);
-
-
-typedef struct IDirectDrawClipperVtbl DIRECTDRAWCLIPPERCALLBACKS;
-typedef struct IDirectDrawPaletteVtbl DIRECTDRAWPALETTECALLBACKS;
-typedef struct IDirectDrawSurfaceVtbl DIRECTDRAWSURFACECALLBACKS;
-typedef struct IDirectDrawSurface2Vtbl DIRECTDRAWSURFACE2CALLBACKS;
-typedef struct IDirectDrawSurface3Vtbl DIRECTDRAWSURFACE3CALLBACKS;
-typedef struct IDirectDrawSurface4Vtbl DIRECTDRAWSURFACE4CALLBACKS;
-typedef struct IDirectDrawSurface7Vtbl DIRECTDRAWSURFACE7CALLBACKS;
-typedef struct IDirectDrawColorControlVtbl DIRECTDRAWCOLORCONTROLCALLBACKS;
-typedef struct IDirectDrawVtbl DIRECTDRAWCALLBACKS;
-typedef struct IDirectDraw2Vtbl DIRECTDRAW2CALLBACKS;
-typedef struct IDirectDraw4Vtbl DIRECTDRAW4CALLBACKS;
-typedef struct IDirectDraw7Vtbl DIRECTDRAW7CALLBACKS;
-typedef struct IDirectDrawKernelVtbl DIRECTDRAWKERNELCALLBACKS;
-typedef struct IDirectDrawSurfaceKernelVtbl DIRECTDRAWSURFACEKERNELCALLBACKS;
-typedef struct IDirectDrawGammaControlVtbl DIRECTDRAWGAMMACONTROLCALLBACKS;
-
-typedef DIRECTDRAWCLIPPERCALLBACKS  *LPDIRECTDRAWCLIPPERCALLBACKS;
-typedef DIRECTDRAWPALETTECALLBACKS  *LPDIRECTDRAWPALETTECALLBACKS;
-typedef DIRECTDRAWSURFACECALLBACKS  *LPDIRECTDRAWSURFACECALLBACKS;
-typedef DIRECTDRAWCALLBACKS  *LPDIRECTDRAWCALLBACKS;
-
-
-HRESULT CALLBACK
-        D3DParseUnknownCommand (LPVOID lpvCommands,
-                                LPVOID *lplpvReturnedCommand);
-
 #ifdef __cplusplus
 } /* extern "C" */
 #endif
 
 #endif /* __DDRAWI_INCLUDED__ */
-
lib/libc/include/any-windows-any/ddrawint.h
@@ -1,1459 +0,0 @@
-/*
- * ddrawint.h
- *
- * DirectDraw NT driver interface
- *
- * Contributors:
- *   Created by Ge van Geldorp
- *
- * THIS SOFTWARE IS NOT COPYRIGHTED
- *
- * This source code is offered for use in the public domain. You may
- * use, modify or distribute it freely.
- *
- * This code is distributed in the hope that it will be useful but
- * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- * DISCLAIMED. This includes but is not limited to warranties of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- */
-
-#ifndef __DD_INCLUDED__
-#define __DD_INCLUDED__
-
-DEFINE_GUID( GUID_MiscellaneousCallbacks,  0xEFD60CC0, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID( GUID_Miscellaneous2Callbacks, 0x406B2F00, 0x3E5A, 0x11D1, 0xB6, 0x40, 0x00, 0xAA, 0x00, 0xA1, 0xF9, 0x6A);
-DEFINE_GUID( GUID_VideoPortCallbacks,      0xefd60cc1, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID( GUID_ColorControlCallbacks,   0xefd60cc2, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID( GUID_MotionCompCallbacks,     0xb1122b40, 0x5dA5, 0x11d1, 0x8f, 0xcF, 0x00, 0xc0, 0x4f, 0xc2, 0x9b, 0x4e);
-DEFINE_GUID( GUID_VideoPortCaps,           0xefd60cc3, 0x49e7, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID( GUID_D3DCaps,                 0x7bf06991, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
-DEFINE_GUID( GUID_D3DExtendedCaps,         0x7de41f80, 0x9d93, 0x11d0, 0x89, 0xab, 0x00, 0xa0, 0xc9, 0x05, 0x41, 0x29);
-DEFINE_GUID( GUID_D3DCallbacks,            0x7bf06990, 0x8794, 0x11d0, 0x91, 0x39, 0x08, 0x00, 0x36, 0xd2, 0xef, 0x02);
-DEFINE_GUID( GUID_D3DCallbacks2,           0xba584e1, 0x70b6, 0x11d0, 0x88, 0x9d, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x6a);
-DEFINE_GUID( GUID_D3DCallbacks3,           0xddf41230, 0xec0a, 0x11d0, 0xa9, 0xb6, 0x00, 0xaa, 0x00, 0xc0, 0x99, 0x3e);
-DEFINE_GUID( GUID_NonLocalVidMemCaps,      0x86c4fa80, 0x8d84, 0x11d0, 0x94, 0xe8, 0x00, 0xc0, 0x4f, 0xc3, 0x41, 0x37);
-DEFINE_GUID( GUID_KernelCallbacks,         0x80863800, 0x6B06, 0x11D0, 0x9B, 0x06, 0x0, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
-DEFINE_GUID( GUID_KernelCaps,              0xFFAA7540, 0x7AA8, 0x11D0, 0x9B, 0x06, 0x00, 0xA0, 0xC9, 0x03, 0xA3, 0xB8);
-DEFINE_GUID( GUID_ZPixelFormats,           0x93869880, 0x36cf, 0x11d1, 0x9b, 0x1b, 0x0, 0xaa, 0x0, 0xbb, 0xb8, 0xae);
-DEFINE_GUID( GUID_DDMoreCaps,              0x880baf30, 0xb030, 0x11d0, 0x8e, 0xa7, 0x00, 0x60, 0x97, 0x97, 0xea, 0x5b);
-DEFINE_GUID( GUID_D3DParseUnknownCommandCallback, 0x2e04ffa0, 0x98e4, 0x11d1, 0x8c, 0xe1, 0x0, 0xa0, 0xc9, 0x6, 0x29, 0xa8);
-DEFINE_GUID( GUID_NTCallbacks,             0x6fe9ecde, 0xdf89, 0x11d1, 0x9d, 0xb0, 0x00, 0x60, 0x08, 0x27, 0x71, 0xba);
-DEFINE_GUID( GUID_DDMoreSurfaceCaps,       0x3b8a0466, 0xf269, 0x11d1, 0x88, 0x0b, 0x0, 0xc0, 0x4f, 0xd9, 0x30, 0xc5);
-DEFINE_GUID( GUID_GetHeapAlignment,        0x42e02f16, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
-DEFINE_GUID( GUID_UpdateNonLocalHeap,      0x42e02f17, 0x7b41, 0x11d2, 0x8b, 0xff, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
-DEFINE_GUID( GUID_NTPrivateDriverCaps,     0xfad16a23, 0x7b66, 0x11d2, 0x83, 0xd7, 0x0, 0xc0, 0x4f, 0x7c, 0xe5, 0x8c);
-DEFINE_GUID( GUID_DDStereoMode,            0xf828169c, 0xa8e8, 0x11d2, 0xa1, 0xf2, 0x0, 0xa0, 0xc9, 0x83, 0xea, 0xf6);
-DEFINE_GUID( GUID_VPE2Callbacks,           0x52882147, 0x2d47, 0x469a, 0xa0, 0xd1, 0x3, 0x45, 0x58, 0x90, 0xf6, 0xc8);
-
-
-#ifndef GUID_DEFS_ONLY
-
-#ifndef _NO_DDRAWINT_NO_COM
-#ifndef _NO_COM
-#define _NO_COM
-#include <ddraw.h>
-#include <dvp.h>
-#undef _NO_COM
-#else
-#include <ddraw.h>
-#include <dvp.h>
-#endif
-#else
-#include <ddraw.h>
-#include <dvp.h>
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef MAKE_HRESULT // fixme this if statment should not be here, but MAKE_HRESULT should be here
-#define MAKE_HRESULT(sev,fac,code) ((HRESULT) (((ULONG)(sev)<<31) | ((ULONG)(fac)<<16) | ((ULONG)(code))) )
-#endif
-
-#ifndef FLATPTR_DEFINED
-typedef ULONG_PTR FLATPTR;
-#define FLATPTR_DEFINED
-#endif
-
-typedef struct _DD_VIDEOPORT_LOCAL   *PDD_VIDEOPORT_LOCAL;
-
-/************************************************************************/
-/* _DD_GETHEAPALIGNMENTDATA is defined in dmemmgr.h                     */
- /************************************************************************/
-struct _DD_GETHEAPALIGNMENTDATA;
-#ifndef DD_GETHEAPALIGNMENTDATA_DECLARED
-typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
-#define DD_GETHEAPALIGNMENTDATA_DECLARED
-#endif
-
-/************************************************************************/
-/* Video memory info structures                                         */
-/************************************************************************/
-
-typedef struct _VIDEOMEMORY
-{
-	DWORD		dwFlags;
-	FLATPTR		fpStart;
-	__GNU_EXTENSION union {
-	  FLATPTR	fpEnd;
-	  DWORD		dwWidth;
-	};
-	DDSCAPS		ddsCaps;
-	DDSCAPS		ddsCapsAlt;
-	__GNU_EXTENSION union {
-	  struct _VMEMHEAP  *lpHeap;
-	  DWORD		dwHeight;
-	};
-} VIDEOMEMORY, *PVIDEOMEMORY;
-
-typedef struct _VIDEOMEMORYINFO
-{
-	FLATPTR		fpPrimary;
-	DWORD		dwFlags;
-	DWORD		dwDisplayWidth;
-	DWORD		dwDisplayHeight;
-	LONG		lDisplayPitch;
-	DDPIXELFORMAT	ddpfDisplay;
-	DWORD		dwOffscreenAlign;
-	DWORD		dwOverlayAlign;
-	DWORD		dwTextureAlign;
-	DWORD		dwZBufferAlign;
-	DWORD		dwAlphaAlign;
-	PVOID		pvPrimary;
-} VIDEOMEMORYINFO;
-typedef VIDEOMEMORYINFO *LPVIDEOMEMORYINFO;
-
-typedef struct _DD_DIRECTDRAW_GLOBAL
-{
-	PVOID			dhpdev;
-	ULONG_PTR		dwReserved1;
-	ULONG_PTR		dwReserved2;
-	LPDDVIDEOPORTCAPS	lpDDVideoPortCaps;
-} DD_DIRECTDRAW_GLOBAL, *PDD_DIRECTDRAW_GLOBAL;
-
-typedef struct _DD_DIRECTDRAW_LOCAL
-{
-	PDD_DIRECTDRAW_GLOBAL	lpGbl;
-} DD_DIRECTDRAW_LOCAL, *PDD_DIRECTDRAW_LOCAL;
-
-
-typedef struct _DD_SURFACE_GLOBAL
-{
-	__GNU_EXTENSION union {
-	  DWORD		dwBlockSizeY;
-	  LONG		lSlicePitch;
-	};
-
-	__GNU_EXTENSION union {
-	  PVIDEOMEMORY	lpVidMemHeap;
-	  DWORD		dwBlockSizeX;
-	  DWORD		dwUserMemSize;
-	};
-
-	FLATPTR		fpVidMem;
-	__GNU_EXTENSION union {
-	  LONG		lPitch;
-	  DWORD		dwLinearSize;
-	};
-	LONG		yHint;
-	LONG		xHint;
-	DWORD		wHeight;
-	DWORD		wWidth;
-	ULONG_PTR	dwReserved1;
-	DDPIXELFORMAT	ddpfSurface;
-	FLATPTR		fpHeapOffset;
-	HANDLE		hCreatorProcess;
-} DD_SURFACE_GLOBAL, *PDD_SURFACE_GLOBAL;
-
-typedef struct _DD_SURFACE_MORE
-{
-	DWORD			dwMipMapCount;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	DWORD			dwOverlayFlags;
-	DDSCAPSEX		ddsCapsEx;
-	DWORD			dwSurfaceHandle;
-} DD_SURFACE_MORE, *PDD_SURFACE_MORE;
-
-typedef struct _DD_ATTACHLIST *PDD_ATTACHLIST;
-
-typedef struct _DD_SURFACE_LOCAL
-{
-	PDD_SURFACE_GLOBAL	lpGbl;
-	DWORD			dwFlags;
-	DDSCAPS			ddsCaps;
-	ULONG_PTR		dwReserved1;
-	__GNU_EXTENSION union {
-	  DDCOLORKEY		ddckCKSrcOverlay;
-	  DDCOLORKEY		ddckCKSrcBlt;
-	};
-	__GNU_EXTENSION union {
-	  DDCOLORKEY		ddckCKDestOverlay;
-	  DDCOLORKEY		ddckCKDestBlt;
-	};
-	PDD_SURFACE_MORE	lpSurfMore;
-	PDD_ATTACHLIST		lpAttachList;
-	PDD_ATTACHLIST		lpAttachListFrom;
-	RECT			rcOverlaySrc;
-} DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL;
-
-typedef struct _DD_ATTACHLIST
-{
-	PDD_ATTACHLIST		lpLink;
-	PDD_SURFACE_LOCAL	lpAttached;
-} DD_ATTACHLIST;
-
-typedef struct _DD_SURFACE_INT
-{
-	PDD_SURFACE_LOCAL 	lpLcl;
-} DD_SURFACE_INT, *PDD_SURFACE_INT;
-
-/************************************************************************/
-/* DDI representation of the DirectDrawPalette object                   */
-/************************************************************************/
-
-typedef struct _DD_PALETTE_GLOBAL
-{
-	ULONG_PTR           Reserved1;
-} DD_PALETTE_GLOBAL, *PDD_PALETTE_GLOBAL;
-
-/************************************************************************/
-/* DDI representation of the DirectDrawVideo object                     */
-/************************************************************************/
-
-typedef struct
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	GUID			guid;
-	DWORD			dwUncompWidth;
-	DWORD			dwUncompHeight;
-	DDPIXELFORMAT		ddUncompPixelFormat;
-	DWORD			dwDriverReserved1;
-	DWORD			dwDriverReserved2;
-	DWORD			dwDriverReserved3;
-	LPVOID			lpDriverReserved1;
-	LPVOID			lpDriverReserved2;
-	LPVOID			lpDriverReserved3;
-} DD_MOTIONCOMP_LOCAL, *PDD_MOTIONCOMP_LOCAL;
-
-
-typedef struct _DD_VIDEOPORT_LOCAL
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	DDVIDEOPORTDESC		ddvpDesc;
-	DDVIDEOPORTINFO		ddvpInfo;
-	PDD_SURFACE_INT		lpSurface;
-	PDD_SURFACE_INT		lpVBISurface;
-	DWORD			dwNumAutoflip;
-	DWORD			dwNumVBIAutoflip;
-	ULONG_PTR		dwReserved1;
-	ULONG_PTR		dwReserved2;
-	ULONG_PTR		dwReserved3;
-} DD_VIDEOPORT_LOCAL;
-
-/************************************************************************/
-/* IDirectDrawSurface callbacks                                         */
-/************************************************************************/
-
-typedef struct _DD_LOCKDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	DWORD			bHasRect;
-	RECTL			rArea;
-	LPVOID			lpSurfData;
-	HRESULT			ddRVal;
-	PVOID			Lock;
-	DWORD			dwFlags;
-	FLATPTR			fpProcess;
-} DD_LOCKDATA, *PDD_LOCKDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_LOCK)(PDD_LOCKDATA);
-
-
-typedef struct _DD_UNLOCKDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	HRESULT			ddRVal;
-	PVOID			Unlock;
-} DD_UNLOCKDATA, *PDD_UNLOCKDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_UNLOCK)(PDD_UNLOCKDATA);
-
-#define DDABLT_SRCOVERDEST		0x00000001
-#define DDBLT_AFLAGS			0x80000000
-
-typedef struct _DD_BLTDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDDestSurface;
-	RECTL			rDest;
-	PDD_SURFACE_LOCAL	lpDDSrcSurface;
-	RECTL			rSrc;
-	DWORD			dwFlags;
-	DWORD			dwROPFlags;
-	DDBLTFX			bltFX;
-	HRESULT			ddRVal;
-	PVOID			Blt;
-	WINBOOL			IsClipped;
-	RECTL			rOrigDest;
-	RECTL			rOrigSrc;
-	DWORD			dwRectCnt;
-	LPRECT			prDestRects;
-	DWORD			dwAFlags;
-	DDARGB			ddargbScaleFactors;
-} DD_BLTDATA, *PDD_BLTDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_BLT)(PDD_BLTDATA);
-
-typedef struct _DD_UPDATEOVERLAYDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDDestSurface;
-	RECTL			rDest;
-	PDD_SURFACE_LOCAL	lpDDSrcSurface;
-	RECTL			rSrc;
-	DWORD			dwFlags;
-	DDOVERLAYFX		overlayFX;
-	HRESULT			ddRVal;
-	PVOID			UpdateOverlay;
-} DD_UPDATEOVERLAYDATA, *PDD_UPDATEOVERLAYDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_UPDATEOVERLAY)(PDD_UPDATEOVERLAYDATA);
-
-typedef struct _DD_SETOVERLAYPOSITIONDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSrcSurface;
-	PDD_SURFACE_LOCAL	lpDDDestSurface;
-	LONG			lXPos;
-	LONG			lYPos;
-	HRESULT			ddRVal;
-	PVOID			SetOverlayPosition;
-} DD_SETOVERLAYPOSITIONDATA, *PDD_SETOVERLAYPOSITIONDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_SETOVERLAYPOSITION)(PDD_SETOVERLAYPOSITIONDATA);
-
-typedef struct _DD_SETPALETTEDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	PDD_PALETTE_GLOBAL	lpDDPalette;
-	HRESULT			ddRVal;
-	PVOID			SetPalette;
-	WINBOOL			Attach;
-} DD_SETPALETTEDATA, *PDD_SETPALETTEDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_SETPALETTE)(PDD_SETPALETTEDATA);
-
-typedef struct _DD_FLIPDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpSurfCurr;
-	PDD_SURFACE_LOCAL	lpSurfTarg;
-	DWORD			dwFlags;
-	HRESULT			ddRVal;
-	PVOID			Flip;
-	PDD_SURFACE_LOCAL	lpSurfCurrLeft;
-	PDD_SURFACE_LOCAL	lpSurfTargLeft;
-} DD_FLIPDATA, *PDD_FLIPDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_FLIP)(PDD_FLIPDATA);
-
-typedef struct _DD_DESTROYSURFACEDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	HRESULT			ddRVal;
-	PVOID			DestroySurface;
-} DD_DESTROYSURFACEDATA, *PDD_DESTROYSURFACEDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_DESTROYSURFACE)(PDD_DESTROYSURFACEDATA);
-
-typedef struct _DD_SETCLIPLISTDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	HRESULT			ddRVal;
-	PVOID			SetClipList;
-} DD_SETCLIPLISTDATA, *PDD_SETCLIPLISTDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_SETCLIPLIST)(PDD_SETCLIPLISTDATA);
-
-typedef struct _DD_ADDATTACHEDSURFACEDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	PDD_SURFACE_LOCAL	lpSurfAttached;
-	HRESULT			ddRVal;
-	PVOID			AddAttachedSurface;
-} DD_ADDATTACHEDSURFACEDATA, *PDD_ADDATTACHEDSURFACEDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_ADDATTACHEDSURFACE)(PDD_ADDATTACHEDSURFACEDATA);
-
-typedef struct _DD_SETCOLORKEYDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	DWORD			dwFlags;
-	DDCOLORKEY		ckNew;
-	HRESULT			ddRVal;
-	PVOID			SetColorKey;
-} DD_SETCOLORKEYDATA, *PDD_SETCOLORKEYDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_SETCOLORKEY)(PDD_SETCOLORKEYDATA);
-
-typedef struct _DD_GETBLTSTATUSDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	DWORD			dwFlags;
-	HRESULT			ddRVal;
-	PVOID			GetBltStatus;
-} DD_GETBLTSTATUSDATA, *PDD_GETBLTSTATUSDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_GETBLTSTATUS)(PDD_GETBLTSTATUSDATA);
-
-typedef struct _DD_GETFLIPSTATUSDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	DWORD			dwFlags;
-	HRESULT			ddRVal;
-	PVOID			GetFlipStatus;
-} DD_GETFLIPSTATUSDATA, *PDD_GETFLIPSTATUSDATA;
-typedef DWORD (WINAPI *PDD_SURFCB_GETFLIPSTATUS)(PDD_GETFLIPSTATUSDATA);
-
-typedef struct DD_SURFACECALLBACKS
-{
-	DWORD				dwSize;
-	DWORD				dwFlags;
-	PDD_SURFCB_DESTROYSURFACE	DestroySurface;
-	PDD_SURFCB_FLIP			Flip;
-	PDD_SURFCB_SETCLIPLIST		SetClipList;
-	PDD_SURFCB_LOCK			Lock;
-	PDD_SURFCB_UNLOCK		Unlock;
-	PDD_SURFCB_BLT			Blt;
-	PDD_SURFCB_SETCOLORKEY		SetColorKey;
-	PDD_SURFCB_ADDATTACHEDSURFACE	AddAttachedSurface;
-	PDD_SURFCB_GETBLTSTATUS		GetBltStatus;
-	PDD_SURFCB_GETFLIPSTATUS	GetFlipStatus;
-	PDD_SURFCB_UPDATEOVERLAY	UpdateOverlay;
-	PDD_SURFCB_SETOVERLAYPOSITION	SetOverlayPosition;
-	PVOID				reserved4;
-	PDD_SURFCB_SETPALETTE		SetPalette;
-} DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
-
-
-#define DDHAL_SURFCB32_DESTROYSURFACE			0x00000001
-#define DDHAL_SURFCB32_FLIP				0x00000002
-#define DDHAL_SURFCB32_SETCLIPLIST			0x00000004
-#define DDHAL_SURFCB32_LOCK				0x00000008
-#define DDHAL_SURFCB32_UNLOCK				0x00000010
-#define DDHAL_SURFCB32_BLT				0x00000020
-#define DDHAL_SURFCB32_SETCOLORKEY			0x00000040
-#define DDHAL_SURFCB32_ADDATTACHEDSURFACE		0x00000080
-#define DDHAL_SURFCB32_GETBLTSTATUS			0x00000100
-#define DDHAL_SURFCB32_GETFLIPSTATUS			0x00000200
-#define DDHAL_SURFCB32_UPDATEOVERLAY			0x00000400
-#define DDHAL_SURFCB32_SETOVERLAYPOSITION		0x00000800
-#define DDHAL_SURFCB32_RESERVED4			0x00001000
-#define DDHAL_SURFCB32_SETPALETTE			0x00002000
-
-/************************************************************************/
-/* IDirectDraw callbacks                                                */
-/************************************************************************/
-
-typedef struct _DD_CREATESURFACEDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	DDSURFACEDESC		*lpDDSurfaceDesc;
-	PDD_SURFACE_LOCAL	*lplpSList;
-	DWORD			dwSCnt;
-	HRESULT			ddRVal;
-	PVOID			CreateSurface;
-} DD_CREATESURFACEDATA, *PDD_CREATESURFACEDATA;
-typedef DWORD (WINAPI *PDD_CREATESURFACE)(PDD_CREATESURFACEDATA);
-
-typedef struct _DD_DRVSETCOLORKEYDATA
-{
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	DWORD			dwFlags;
-	DDCOLORKEY		ckNew;
-	HRESULT			ddRVal;
-	PVOID			SetColorKey;
-} DD_DRVSETCOLORKEYDATA, *PDD_DRVSETCOLORKEYDATA;
-typedef DWORD (WINAPI *PDD_SETCOLORKEY)(PDD_DRVSETCOLORKEYDATA);
-
-#define DDWAITVB_I_TESTVB    0x80000006
-
-typedef struct _DD_WAITFORVERTICALBLANKDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	DWORD			dwFlags;
-	DWORD			bIsInVB;
-	DWORD			hEvent;
-	HRESULT			ddRVal;
-	PVOID			WaitForVerticalBlank;
-} DD_WAITFORVERTICALBLANKDATA, *PDD_WAITFORVERTICALBLANKDATA;
-typedef DWORD (WINAPI *PDD_WAITFORVERTICALBLANK)(PDD_WAITFORVERTICALBLANKDATA);
-
-typedef struct _DD_CANCREATESURFACEDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	DDSURFACEDESC		*lpDDSurfaceDesc;
-	DWORD			bIsDifferentPixelFormat;
-	HRESULT			ddRVal;
-	PVOID			CanCreateSurface;
-} DD_CANCREATESURFACEDATA, *PDD_CANCREATESURFACEDATA;
-typedef DWORD (WINAPI *PDD_CANCREATESURFACE)(PDD_CANCREATESURFACEDATA);
-
-typedef struct _DD_CREATEPALETTEDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_PALETTE_GLOBAL	lpDDPalette;
-	LPPALETTEENTRY		lpColorTable;
-	HRESULT			ddRVal;
-	PVOID			CreatePalette;
-	WINBOOL			is_excl;
-} DD_CREATEPALETTEDATA, *PDD_CREATEPALETTEDATA;
-typedef DWORD (WINAPI *PDD_CREATEPALETTE)(PDD_CREATEPALETTEDATA);
-
-typedef struct _DD_GETSCANLINEDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	DWORD			dwScanLine;
-	HRESULT			ddRVal;
-	PVOID			GetScanLine;
-} DD_GETSCANLINEDATA, *PDD_GETSCANLINEDATA;
-typedef DWORD (WINAPI *PDD_GETSCANLINE)(PDD_GETSCANLINEDATA);
-
-typedef struct _DD_MAPMEMORYDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	WINBOOL			bMap;
-	HANDLE			hProcess;
-	FLATPTR			fpProcess;
-	HRESULT			ddRVal;
-} DD_MAPMEMORYDATA, *PDD_MAPMEMORYDATA;
-typedef DWORD (WINAPI *PDD_MAPMEMORY)(PDD_MAPMEMORYDATA);
-
-
-typedef struct _DD_DESTROYDRIVERDATA *PDD_DESTROYDRIVERDATA;
-typedef struct _DD_SETMODEDATA *PDD_SETMODEDATA;
-
-typedef DWORD   (APIENTRY *PDD_DESTROYDRIVER)(PDD_DESTROYDRIVERDATA);
-typedef DWORD   (APIENTRY *PDD_SETMODE)(PDD_SETMODEDATA);
-
-typedef struct DD_CALLBACKS
-{
-	DWORD			dwSize;
-	DWORD			dwFlags;
-	PDD_DESTROYDRIVER	DestroyDriver;
-	PDD_CREATESURFACE	CreateSurface;
-	PDD_SETCOLORKEY		SetColorKey;
-	PDD_SETMODE		SetMode;
-	PDD_WAITFORVERTICALBLANK WaitForVerticalBlank;
-	PDD_CANCREATESURFACE	CanCreateSurface;
-	PDD_CREATEPALETTE	CreatePalette;
-	PDD_GETSCANLINE		GetScanLine;
-	PDD_MAPMEMORY		MapMemory;
-} DD_CALLBACKS, *PDD_CALLBACKS;
-
-
-#define DDHAL_CB32_DESTROYDRIVER			0x00000001l
-#define DDHAL_CB32_CREATESURFACE			0x00000002l
-#define DDHAL_CB32_SETCOLORKEY				0x00000004l
-#define DDHAL_CB32_SETMODE				0x00000008l
-#define DDHAL_CB32_WAITFORVERTICALBLANK			0x00000010l
-#define DDHAL_CB32_CANCREATESURFACE			0x00000020l
-#define DDHAL_CB32_CREATEPALETTE			0x00000040l
-#define DDHAL_CB32_GETSCANLINE				0x00000080l
-#define DDHAL_CB32_MAPMEMORY				0x80000000l
-
-typedef struct _DD_GETAVAILDRIVERMEMORYDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	DDSCAPS			DDSCaps;
-	DWORD			dwTotal;
-	DWORD			dwFree;
-	HRESULT			ddRVal;
-	PVOID			GetAvailDriverMemory;
-} DD_GETAVAILDRIVERMEMORYDATA, *PDD_GETAVAILDRIVERMEMORYDATA;
-typedef DWORD (WINAPI *PDD_GETAVAILDRIVERMEMORY)(PDD_GETAVAILDRIVERMEMORYDATA);
-
-typedef struct _DD_MISCELLANEOUSCALLBACKS
-{
-	DWORD			dwSize;
-	DWORD			dwFlags;
-	PDD_GETAVAILDRIVERMEMORY GetAvailDriverMemory;
-} DD_MISCELLANEOUSCALLBACKS, *PDD_MISCELLANEOUSCALLBACKS;
-
-#define DDHAL_MISCCB32_GETAVAILDRIVERMEMORY		0x00000001
-
-typedef DWORD (WINAPI *PDD_ALPHABLT)(PDD_BLTDATA);
-
-typedef struct _DD_CREATESURFACEEXDATA
-{
-	DWORD			dwFlags;
-	PDD_DIRECTDRAW_LOCAL	lpDDLcl;
-	PDD_SURFACE_LOCAL	lpDDSLcl;
-	HRESULT			ddRVal;
-} DD_CREATESURFACEEXDATA, *PDD_CREATESURFACEEXDATA;
-typedef DWORD (WINAPI *PDD_CREATESURFACEEX)(PDD_CREATESURFACEEXDATA);
-
-typedef struct _DD_GETDRIVERSTATEDATA
-{
-	DWORD			dwFlags;
-	__GNU_EXTENSION union {
-	  PDD_DIRECTDRAW_GLOBAL	lpDD;
-	  DWORD_PTR		dwhContext;
-	};
-	LPDWORD			lpdwStates;
-	DWORD			dwLength;
-	HRESULT			ddRVal;
-} DD_GETDRIVERSTATEDATA, *PDD_GETDRIVERSTATEDATA;
-typedef DWORD (WINAPI *PDD_GETDRIVERSTATE)(PDD_GETDRIVERSTATEDATA);
-
-typedef struct _DD_DESTROYDDLOCALDATA
-{
-	DWORD			dwFlags;
-	PDD_DIRECTDRAW_LOCAL	pDDLcl;
-	HRESULT			ddRVal;
-} DD_DESTROYDDLOCALDATA, *PDD_DESTROYDDLOCALDATA;
-typedef DWORD (WINAPI *PDD_DESTROYDDLOCAL)(PDD_DESTROYDDLOCALDATA);
-
-
-typedef struct _DD_MISCELLANEOUS2CALLBACKS
-{
-	DWORD			dwSize;
-	DWORD			dwFlags;
-	PDD_ALPHABLT		AlphaBlt;
-	PDD_CREATESURFACEEX	CreateSurfaceEx;
-	PDD_GETDRIVERSTATE	GetDriverState;
-	PDD_DESTROYDDLOCAL	DestroyDDLocal;
-} DD_MISCELLANEOUS2CALLBACKS, *PDD_MISCELLANEOUS2CALLBACKS;
-
-
-#define DDHAL_MISC2CB32_ALPHABLT			0x00000001
-#define DDHAL_MISC2CB32_CREATESURFACEEX			0x00000002
-#define DDHAL_MISC2CB32_GETDRIVERSTATE			0x00000004
-#define DDHAL_MISC2CB32_DESTROYDDLOCAL			0x00000008
-
-
-typedef struct _DD_FREEDRIVERMEMORYDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	HRESULT			ddRVal;
-	PVOID			FreeDriverMemory;
-} DD_FREEDRIVERMEMORYDATA, *PDD_FREEDRIVERMEMORYDATA;
-typedef DWORD (WINAPI *PDD_FREEDRIVERMEMORY)(PDD_FREEDRIVERMEMORYDATA);
-
-typedef struct _DD_SETEXCLUSIVEMODEDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	DWORD			dwEnterExcl;
-	DWORD			dwReserved;
-	HRESULT			ddRVal;
-	PVOID			SetExclusiveMode;
-} DD_SETEXCLUSIVEMODEDATA, *PDD_SETEXCLUSIVEMODEDATA;
-typedef DWORD (WINAPI *PDD_SETEXCLUSIVEMODE)(PDD_SETEXCLUSIVEMODEDATA);
-
-typedef struct _DD_FLIPTOGDISURFACEDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	DWORD			dwToGDI;
-	DWORD			dwReserved;
-	HRESULT			ddRVal;
-	PVOID			FlipToGDISurface;
-} DD_FLIPTOGDISURFACEDATA, *PDD_FLIPTOGDISURFACEDATA;
-typedef DWORD (WINAPI *PDD_FLIPTOGDISURFACE)(PDD_FLIPTOGDISURFACEDATA);
-
-
-
-typedef struct _DD_NTCALLBACKS
-{
-	DWORD			dwSize;
-	DWORD			dwFlags;
-	PDD_FREEDRIVERMEMORY	FreeDriverMemory;
-	PDD_SETEXCLUSIVEMODE	SetExclusiveMode;
-	PDD_FLIPTOGDISURFACE	FlipToGDISurface;
-} DD_NTCALLBACKS, *PDD_NTCALLBACKS;
-
-
-#define DDHAL_NTCB32_FREEDRIVERMEMORY			0x00000001
-#define DDHAL_NTCB32_SETEXCLUSIVEMODE			0x00000002
-#define DDHAL_NTCB32_FLIPTOGDISURFACE			0x00000004
-
-/************************************************************************/
-/* IDirectDrawPalette callbacks                                         */
-/************************************************************************/
-
-typedef struct _DD_DESTROYPALETTEDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_PALETTE_GLOBAL	lpDDPalette;
-	HRESULT			ddRVal;
-	PVOID			DestroyPalette;
-} DD_DESTROYPALETTEDATA, *PDD_DESTROYPALETTEDATA;
-typedef DWORD (WINAPI *PDD_PALCB_DESTROYPALETTE)(PDD_DESTROYPALETTEDATA);
-
-typedef struct _DD_SETENTRIESDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_PALETTE_GLOBAL	lpDDPalette;
-	DWORD			dwBase;
-	DWORD			dwNumEntries;
-	LPPALETTEENTRY		lpEntries;
-	HRESULT			ddRVal;
-	PVOID			SetEntries;
-} DD_SETENTRIESDATA, *PDD_SETENTRIESDATA;
-typedef DWORD (WINAPI *PDD_PALCB_SETENTRIES)(PDD_SETENTRIESDATA);
-
-typedef struct DD_PALETTECALLBACKS
-{
-	DWORD			dwSize;
-	DWORD			dwFlags;
-	PDD_PALCB_DESTROYPALETTE DestroyPalette;
-	PDD_PALCB_SETENTRIES	SetEntries;
-} DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
-
-#define DDHAL_PALCB32_DESTROYPALETTE    0x00000001l
-#define DDHAL_PALCB32_SETENTRIES    0x00000002l
-
-/************************************************************************/
-/* IDirectDrawVideoport callbacks                                       */
-/************************************************************************/
-
-typedef struct _DD_CANCREATEVPORTDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	LPDDVIDEOPORTDESC	lpDDVideoPortDesc;
-	HRESULT			ddRVal;
-	PVOID			CanCreateVideoPort;
-} DD_CANCREATEVPORTDATA, *PDD_CANCREATEVPORTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_CANCREATEVIDEOPORT)(PDD_CANCREATEVPORTDATA);
-
-typedef struct _DD_CREATEVPORTDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	LPDDVIDEOPORTDESC	lpDDVideoPortDesc;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	HRESULT			ddRVal;
-	PVOID			CreateVideoPort;
-} DD_CREATEVPORTDATA, *PDD_CREATEVPORTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_CREATEVIDEOPORT)(PDD_CREATEVPORTDATA);
-
-typedef struct _DD_FLIPVPORTDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	PDD_SURFACE_LOCAL	lpSurfCurr;
-	PDD_SURFACE_LOCAL	lpSurfTarg;
-	HRESULT			ddRVal;
-	PVOID			FlipVideoPort;
-} DD_FLIPVPORTDATA, *PDD_FLIPVPORTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_FLIP)(PDD_FLIPVPORTDATA);
-
-typedef struct _DD_GETVPORTBANDWIDTHDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	LPDDPIXELFORMAT		lpddpfFormat;
-	DWORD			dwWidth;
-	DWORD			dwHeight;
-	DWORD			dwFlags;
-	LPDDVIDEOPORTBANDWIDTH	lpBandwidth;
-	HRESULT			ddRVal;
-	PVOID			GetVideoPortBandwidth;
-} DD_GETVPORTBANDWIDTHDATA, *PDD_GETVPORTBANDWIDTHDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETBANDWIDTH)(PDD_GETVPORTBANDWIDTHDATA);
-
-typedef struct _DD_GETVPORTINPUTFORMATDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	DWORD			dwFlags;
-	LPDDPIXELFORMAT		lpddpfFormat;
-	DWORD			dwNumFormats;
-	HRESULT			ddRVal;
-	PVOID			GetVideoPortInputFormats;
-} DD_GETVPORTINPUTFORMATDATA, *PDD_GETVPORTINPUTFORMATDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETINPUTFORMATS)(PDD_GETVPORTINPUTFORMATDATA);
-
-typedef struct _DD_GETVPORTOUTPUTFORMATDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	DWORD			dwFlags;
-	LPDDPIXELFORMAT		lpddpfInputFormat;
-	LPDDPIXELFORMAT		lpddpfOutputFormats;
-	DWORD			dwNumFormats;
-	HRESULT			ddRVal;
-	PVOID			GetVideoPortInputFormats;
-} DD_GETVPORTOUTPUTFORMATDATA, *PDD_GETVPORTOUTPUTFORMATDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETOUTPUTFORMATS)(PDD_GETVPORTOUTPUTFORMATDATA);
-
-typedef struct _DD_GETVPORTFIELDDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	WINBOOL			bField;
-	HRESULT			ddRVal;
-	PVOID			GetVideoPortField;
-} DD_GETVPORTFIELDDATA, *PDD_GETVPORTFIELDDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETFIELD)(PDD_GETVPORTFIELDDATA);
-
-typedef struct _DD_GETVPORTLINEDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	DWORD			dwLine;
-	HRESULT			ddRVal;
-	PVOID			GetVideoPortLine;
-} DD_GETVPORTLINEDATA, *PDD_GETVPORTLINEDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETLINE)(PDD_GETVPORTLINEDATA);
-
-typedef struct _DD_GETVPORTCONNECTDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	DWORD			dwPortId;
-	LPDDVIDEOPORTCONNECT	lpConnect;
-	DWORD			dwNumEntries;
-	HRESULT			ddRVal;
-	PVOID			GetVideoPortConnectInfo;
-} DD_GETVPORTCONNECTDATA, *PDD_GETVPORTCONNECTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETVPORTCONNECT)(PDD_GETVPORTCONNECTDATA);
-
-typedef struct _DD_DESTROYVPORTDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	HRESULT			ddRVal;
-	PVOID			DestroyVideoPort;
-} DD_DESTROYVPORTDATA, *PDD_DESTROYVPORTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_DESTROYVPORT)(PDD_DESTROYVPORTDATA);
-
-typedef struct _DD_GETVPORTFLIPSTATUSDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	FLATPTR			fpSurface;
-	HRESULT			ddRVal;
-	PVOID			GetVideoPortFlipStatus;
-} DD_GETVPORTFLIPSTATUSDATA, *PDD_GETVPORTFLIPSTATUSDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETFLIPSTATUS)(PDD_GETVPORTFLIPSTATUSDATA);
-
-
-typedef struct _DD_UPDATEVPORTDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	PDD_SURFACE_INT		*lplpDDSurface;
-	PDD_SURFACE_INT		*lplpDDVBISurface;
-	LPDDVIDEOPORTINFO	lpVideoInfo;
-	DWORD			dwFlags;
-	DWORD			dwNumAutoflip;
-	DWORD			dwNumVBIAutoflip;
-	HRESULT			ddRVal;
-	PVOID			UpdateVideoPort;
-} DD_UPDATEVPORTDATA, *PDD_UPDATEVPORTDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_UPDATE)(PDD_UPDATEVPORTDATA);
-
-typedef struct _DD_WAITFORVPORTSYNCDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	DWORD			dwFlags;
-	DWORD			dwLine;
-	DWORD			dwTimeOut;
-	HRESULT			ddRVal;
-	PVOID			UpdateVideoPort;
-} DD_WAITFORVPORTSYNCDATA, *PDD_WAITFORVPORTSYNCDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_WAITFORSYNC)(PDD_WAITFORVPORTSYNCDATA);
-
-typedef struct _DD_GETVPORTSIGNALDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	DWORD			dwStatus;
-	HRESULT			ddRVal;
-	PVOID			GetVideoSignalStatus;
-} DD_GETVPORTSIGNALDATA, *PDD_GETVPORTSIGNALDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_GETSIGNALSTATUS)(PDD_GETVPORTSIGNALDATA);
-
-typedef struct _DD_VPORTCOLORDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	DWORD			dwFlags;
-	LPDDCOLORCONTROL	lpColorData;
-	HRESULT			ddRVal;
-	PVOID			ColorControl;
-} DD_VPORTCOLORDATA, *PDD_VPORTCOLORDATA;
-typedef DWORD (WINAPI *PDD_VPORTCB_COLORCONTROL)(PDD_VPORTCOLORDATA);
-
-
-typedef struct DD_VIDEOPORTCALLBACKS
-{
-	DWORD				dwSize;
-	DWORD				dwFlags;
-	PDD_VPORTCB_CANCREATEVIDEOPORT	CanCreateVideoPort;
-	PDD_VPORTCB_CREATEVIDEOPORT	CreateVideoPort;
-	PDD_VPORTCB_FLIP		FlipVideoPort;
-	PDD_VPORTCB_GETBANDWIDTH	GetVideoPortBandwidth;
-	PDD_VPORTCB_GETINPUTFORMATS	GetVideoPortInputFormats;
-	PDD_VPORTCB_GETOUTPUTFORMATS	GetVideoPortOutputFormats;
-	PVOID				lpReserved1;
-	PDD_VPORTCB_GETFIELD		GetVideoPortField;
-	PDD_VPORTCB_GETLINE		GetVideoPortLine;
-	PDD_VPORTCB_GETVPORTCONNECT	GetVideoPortConnectInfo;
-	PDD_VPORTCB_DESTROYVPORT	DestroyVideoPort;
-	PDD_VPORTCB_GETFLIPSTATUS	GetVideoPortFlipStatus;
-	PDD_VPORTCB_UPDATE		UpdateVideoPort;
-	PDD_VPORTCB_WAITFORSYNC		WaitForVideoPortSync;
-	PDD_VPORTCB_GETSIGNALSTATUS	GetVideoSignalStatus;
-	PDD_VPORTCB_COLORCONTROL	ColorControl;
-} DD_VIDEOPORTCALLBACKS, *PDD_VIDEOPORTCALLBACKS;
-
-#define DDHAL_VPORT32_CANCREATEVIDEOPORT		0x00000001
-#define DDHAL_VPORT32_CREATEVIDEOPORT			0x00000002
-#define DDHAL_VPORT32_FLIP				0x00000004
-#define DDHAL_VPORT32_GETBANDWIDTH			0x00000008
-#define DDHAL_VPORT32_GETINPUTFORMATS			0x00000010
-#define DDHAL_VPORT32_GETOUTPUTFORMATS			0x00000020
-#define DDHAL_VPORT32_GETFIELD				0x00000080
-#define DDHAL_VPORT32_GETLINE				0x00000100
-#define DDHAL_VPORT32_GETCONNECT			0x00000200
-#define DDHAL_VPORT32_DESTROY				0x00000400
-#define DDHAL_VPORT32_GETFLIPSTATUS			0x00000800
-#define DDHAL_VPORT32_UPDATE				0x00001000
-#define DDHAL_VPORT32_WAITFORSYNC			0x00002000
-#define DDHAL_VPORT32_GETSIGNALSTATUS			0x00004000
-#define DDHAL_VPORT32_COLORCONTROL			0x00008000
-
-
-/************************************************************************/
-/* IDirectDrawColorControl callbacks                                    */
-/************************************************************************/
-
-#define DDRAWI_GETCOLOR					0x0001
-#define DDRAWI_SETCOLOR					0x0002
-
-typedef struct _DD_COLORCONTROLDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	LPDDCOLORCONTROL	lpColorData;
-	DWORD			dwFlags;
-	HRESULT			ddRVal;
-	PVOID			ColorControl;
-} DD_COLORCONTROLDATA, *PDD_COLORCONTROLDATA;
-typedef DWORD (WINAPI *PDD_COLORCB_COLORCONTROL)(PDD_COLORCONTROLDATA);
-
-
-typedef struct _DD_COLORCONTROLCALLBACKS
-{
-	DWORD			dwSize;
-	DWORD			dwFlags;
-	PDD_COLORCB_COLORCONTROL ColorControl;
-} DD_COLORCONTROLCALLBACKS, *PDD_COLORCONTROLCALLBACKS;
-
-#define DDHAL_COLOR_COLORCONTROL			0x00000001
-
-/************************************************************************/
-/* IDirectDrawVideo callbacks                                           */
-/************************************************************************/
-
-typedef struct _DD_GETMOCOMPGUIDSDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	DWORD			dwNumGuids;
-	GUID			*lpGuids;
-	HRESULT			ddRVal;
-} DD_GETMOCOMPGUIDSDATA, *PDD_GETMOCOMPGUIDSDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_GETGUIDS)(PDD_GETMOCOMPGUIDSDATA);
-
-typedef struct _DD_GETMOCOMPFORMATSDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	GUID			*lpGuid;
-	DWORD			dwNumFormats;
-	LPDDPIXELFORMAT		lpFormats;
-	HRESULT			ddRVal;
-} DD_GETMOCOMPFORMATSDATA, *PDD_GETMOCOMPFORMATSDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_GETFORMATS)(PDD_GETMOCOMPFORMATSDATA);
-
-typedef struct _DD_CREATEMOCOMPDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_MOTIONCOMP_LOCAL	lpMoComp;
-	GUID			*lpGuid;
-	DWORD			dwUncompWidth;
-	DWORD			dwUncompHeight;
-	DDPIXELFORMAT		ddUncompPixelFormat;
-	LPVOID			lpData;
-	DWORD			dwDataSize;
-	HRESULT			ddRVal;
-} DD_CREATEMOCOMPDATA, *PDD_CREATEMOCOMPDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_CREATE)(PDD_CREATEMOCOMPDATA);
-
-typedef struct _DDCOMPBUFFERINFO
-{
-	DWORD			dwSize;
-	DWORD			dwNumCompBuffers;
-	DWORD			dwWidthToCreate;
-	DWORD			dwHeightToCreate;
-	DWORD			dwBytesToAllocate;
-	DDSCAPS2		ddCompCaps;
-	DDPIXELFORMAT		ddPixelFormat;
-} DDCOMPBUFFERINFO, *LPDDCOMPBUFFERINFO;
-
-typedef struct _DD_GETMOCOMPCOMPBUFFDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	GUID			*lpGuid;
-	DWORD			dwWidth;
-	DWORD			dwHeight;
-	DDPIXELFORMAT		ddPixelFormat;
-	DWORD			dwNumTypesCompBuffs;
-	LPDDCOMPBUFFERINFO	lpCompBuffInfo;
-	HRESULT			ddRVal;
-} DD_GETMOCOMPCOMPBUFFDATA, *PDD_GETMOCOMPCOMPBUFFDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_GETCOMPBUFFINFO)(PDD_GETMOCOMPCOMPBUFFDATA);
-
-typedef struct _DD_GETINTERNALMOCOMPDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	GUID			*lpGuid;
-	DWORD			dwWidth;
-	DWORD			dwHeight;
-	DDPIXELFORMAT		ddPixelFormat;
-	DWORD			dwScratchMemAlloc;
-	HRESULT			ddRVal;
-} DD_GETINTERNALMOCOMPDATA, *PDD_GETINTERNALMOCOMPDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_GETINTERNALINFO)(PDD_GETINTERNALMOCOMPDATA);
-
-typedef struct _DD_BEGINMOCOMPFRAMEDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_MOTIONCOMP_LOCAL	lpMoComp;
-	PDD_SURFACE_LOCAL	lpDestSurface;
-	DWORD			dwInputDataSize;
-	LPVOID			lpInputData;
-	DWORD			dwOutputDataSize;
-	LPVOID			lpOutputData;
-	HRESULT			ddRVal;
-} DD_BEGINMOCOMPFRAMEDATA, *PDD_BEGINMOCOMPFRAMEDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_BEGINFRAME)(PDD_BEGINMOCOMPFRAMEDATA);
-
-typedef struct _DD_ENDMOCOMPFRAMEDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_MOTIONCOMP_LOCAL	lpMoComp;
-	LPVOID			lpInputData;
-	DWORD			dwInputDataSize;
-	HRESULT			ddRVal;
-} DD_ENDMOCOMPFRAMEDATA, *PDD_ENDMOCOMPFRAMEDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_ENDFRAME)(PDD_ENDMOCOMPFRAMEDATA);
-
-typedef struct _DDMOCOMPBUFFERINFO
-{
-	DWORD			dwSize;
-	PDD_SURFACE_LOCAL	lpCompSurface;
-	DWORD			dwDataOffset;
-	DWORD			dwDataSize;
-	LPVOID			lpPrivate;
-} DDMOCOMPBUFFERINFO, *LPDDMOCOMPBUFFERINFO;
-
-typedef struct _DD_RENDERMOCOMPDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_MOTIONCOMP_LOCAL	lpMoComp;
-	DWORD			dwNumBuffers;
-	LPDDMOCOMPBUFFERINFO	lpBufferInfo;
-	DWORD			dwFunction;
-	LPVOID			lpInputData;
-	DWORD			dwInputDataSize;
-	LPVOID			lpOutputData;
-	DWORD			dwOutputDataSize;
-	HRESULT			ddRVal;
-} DD_RENDERMOCOMPDATA, *PDD_RENDERMOCOMPDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_RENDER)(PDD_RENDERMOCOMPDATA);
-
-#define DDMCQUERY_READ					0x00000001
-
-typedef struct _DD_QUERYMOCOMPSTATUSDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_MOTIONCOMP_LOCAL	lpMoComp;
-	PDD_SURFACE_LOCAL	lpSurface;
-	DWORD			dwFlags;
-	HRESULT			ddRVal;
-} DD_QUERYMOCOMPSTATUSDATA, *PDD_QUERYMOCOMPSTATUSDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_QUERYSTATUS)(PDD_QUERYMOCOMPSTATUSDATA);
-
-typedef struct _DD_DESTROYMOCOMPDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_MOTIONCOMP_LOCAL	lpMoComp;
-	HRESULT			ddRVal;
-} DD_DESTROYMOCOMPDATA, *PDD_DESTROYMOCOMPDATA;
-typedef DWORD (WINAPI *PDD_MOCOMPCB_DESTROY)(PDD_DESTROYMOCOMPDATA);
-
-
-typedef struct DD_MOTIONCOMPCALLBACKS
-{
-	DWORD				dwSize;
-	DWORD				dwFlags;
-	PDD_MOCOMPCB_GETGUIDS		GetMoCompGuids;
-	PDD_MOCOMPCB_GETFORMATS		GetMoCompFormats;
-	PDD_MOCOMPCB_CREATE		CreateMoComp;
-	PDD_MOCOMPCB_GETCOMPBUFFINFO	GetMoCompBuffInfo;
-	PDD_MOCOMPCB_GETINTERNALINFO	GetInternalMoCompInfo;
-	PDD_MOCOMPCB_BEGINFRAME		BeginMoCompFrame;
-	PDD_MOCOMPCB_ENDFRAME		EndMoCompFrame;
-	PDD_MOCOMPCB_RENDER		RenderMoComp;
-	PDD_MOCOMPCB_QUERYSTATUS	QueryMoCompStatus;
-	PDD_MOCOMPCB_DESTROY		DestroyMoComp;
-} DD_MOTIONCOMPCALLBACKS, *PDD_MOTIONCOMPCALLBACKS;
-
-#define DDHAL_MOCOMP32_GETGUIDS				0x00000001
-#define DDHAL_MOCOMP32_GETFORMATS			0x00000002
-#define DDHAL_MOCOMP32_CREATE				0x00000004
-#define DDHAL_MOCOMP32_GETCOMPBUFFINFO			0x00000008
-#define DDHAL_MOCOMP32_GETINTERNALINFO			0x00000010
-#define DDHAL_MOCOMP32_BEGINFRAME			0x00000020
-#define DDHAL_MOCOMP32_ENDFRAME				0x00000040
-#define DDHAL_MOCOMP32_RENDER				0x00000080
-#define DDHAL_MOCOMP32_QUERYSTATUS			0x00000100
-#define DDHAL_MOCOMP32_DESTROY				0x00000200
-
-/************************************************************************/
-/* D3D buffer callbacks                                                 */
-/************************************************************************/
-
-typedef struct _DD_D3DBUFCALLBACKS
-{
-	DWORD			dwSize;
-	DWORD			dwFlags;
-	PDD_CANCREATESURFACE	CanCreateD3DBuffer;
-	PDD_CREATESURFACE	CreateD3DBuffer;
-	PDD_SURFCB_DESTROYSURFACE DestroyD3DBuffer;
-	PDD_SURFCB_LOCK		LockD3DBuffer;
-	PDD_SURFCB_UNLOCK	UnlockD3DBuffer;
-} DD_D3DBUFCALLBACKS, *PDD_D3DBUFCALLBACKS;
-
-/************************************************************************/
-/* DdGetDriverInfo callback                                             */
-/************************************************************************/
-
-typedef struct _DD_GETDRIVERINFODATA
-{
-	// Input:
-	PVOID	dhpdev;
-	DWORD	dwSize;
-	DWORD	dwFlags;
-	GUID	guidInfo;
-	DWORD	dwExpectedSize;
-	PVOID	lpvData;
-	// Output:
-	DWORD	dwActualSize;
-	HRESULT	ddRVal;
-} DD_GETDRIVERINFODATA, *PDD_GETDRIVERINFODATA;
-typedef DWORD (WINAPI *PDD_GETDRIVERINFO)(PDD_GETDRIVERINFODATA);
-
-
-/************************************************************************/
-/* Driver info structures                                               */
-/************************************************************************/
-
-typedef struct _DDNTCORECAPS
-{
-	DWORD	dwSize;
-	DWORD	dwCaps;
-	DWORD	dwCaps2;
-	DWORD	dwCKeyCaps;
-	DWORD	dwFXCaps;
-	DWORD	dwFXAlphaCaps;
-	DWORD	dwPalCaps;
-	DWORD	dwSVCaps;
-	DWORD	dwAlphaBltConstBitDepths;
-	DWORD	dwAlphaBltPixelBitDepths;
-	DWORD	dwAlphaBltSurfaceBitDepths;
-	DWORD	dwAlphaOverlayConstBitDepths;
-	DWORD	dwAlphaOverlayPixelBitDepths;
-	DWORD	dwAlphaOverlaySurfaceBitDepths;
-	DWORD	dwZBufferBitDepths;
-	DWORD	dwVidMemTotal;
-	DWORD	dwVidMemFree;
-	DWORD	dwMaxVisibleOverlays;
-	DWORD	dwCurrVisibleOverlays;
-	DWORD	dwNumFourCCCodes;
-	DWORD	dwAlignBoundarySrc;
-	DWORD	dwAlignSizeSrc;
-	DWORD	dwAlignBoundaryDest;
-	DWORD	dwAlignSizeDest;
-	DWORD	dwAlignStrideAlign;
-	DWORD	dwRops[DD_ROP_SPACE];
-	DDSCAPS	ddsCaps;
-	DWORD	dwMinOverlayStretch;
-	DWORD	dwMaxOverlayStretch;
-	DWORD	dwMinLiveVideoStretch;
-	DWORD	dwMaxLiveVideoStretch;
-	DWORD	dwMinHwCodecStretch;
-	DWORD	dwMaxHwCodecStretch;
-	DWORD	dwReserved1;
-	DWORD	dwReserved2;
-	DWORD	dwReserved3;
-	DWORD	dwSVBCaps;
-	DWORD	dwSVBCKeyCaps;
-	DWORD	dwSVBFXCaps;
-	DWORD	dwSVBRops[DD_ROP_SPACE];
-	DWORD	dwVSBCaps;
-	DWORD	dwVSBCKeyCaps;
-	DWORD	dwVSBFXCaps;
-	DWORD	dwVSBRops[DD_ROP_SPACE];
-	DWORD	dwSSBCaps;
-	DWORD	dwSSBCKeyCaps;
-	DWORD	dwSSBFXCaps;
-	DWORD	dwSSBRops[DD_ROP_SPACE];
-	DWORD	dwMaxVideoPorts;
-	DWORD	dwCurrVideoPorts;
-	DWORD	dwSVBCaps2;
-} DDNTCORECAPS, *PDDNTCORECAPS;
-
-
-typedef struct _DD_HALINFO_V4
-{
-	DWORD			dwSize;
-	VIDEOMEMORYINFO		vmiData;
-	DDNTCORECAPS		ddCaps;
-	PDD_GETDRIVERINFO	GetDriverInfo;
-	DWORD			dwFlags;
-} DD_HALINFO_V4, *PDD_HALINFO_V4;
-
-typedef struct _DD_HALINFO
-{
-	DWORD			dwSize;
-	VIDEOMEMORYINFO		vmiData;
-	DDNTCORECAPS		ddCaps;
-	PDD_GETDRIVERINFO	GetDriverInfo;
-	DWORD			dwFlags;
-	PVOID			lpD3DGlobalDriverData;
-	PVOID			lpD3DHALCallbacks;
-	PDD_D3DBUFCALLBACKS	lpD3DBufCallbacks;
-} DD_HALINFO, *PDD_HALINFO;
-
-
-typedef struct _DD_NONLOCALVIDMEMCAPS
-{
-	DWORD	dwSize;
-	DWORD	dwNLVBCaps;
-	DWORD	dwNLVBCaps2;
-	DWORD	dwNLVBCKeyCaps;
-	DWORD	dwNLVBFXCaps;
-	DWORD	dwNLVBRops[DD_ROP_SPACE];
-} DD_NONLOCALVIDMEMCAPS, *PDD_NONLOCALVIDMEMCAPS;
-
-
-typedef struct _DD_MORESURFACECAPS
-{
-	DWORD			dwSize;
-	DDSCAPSEX		ddsCapsMore;
-	struct tagNTExtendedHeapRestrictions
-	{
-		DDSCAPSEX	ddsCapsEx;
-		DDSCAPSEX	ddsCapsExAlt;
-	} ddsExtendedHeapRestrictions[1];
-} DD_MORESURFACECAPS, *PDD_MORESURFACECAPS;
-
-
-/*********************************************************/
-/* Kernel Callbacks                                      */
-/*********************************************************/
-typedef struct _DD_SYNCSURFACEDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_SURFACE_LOCAL	lpDDSurface;
-	DWORD			dwSurfaceOffset;
-	ULONG_PTR		fpLockPtr;
-	LONG			lPitch;
-	DWORD			dwOverlayOffset;
-	ULONG			dwDriverReserved1;
-	ULONG			dwDriverReserved2;
-	ULONG			dwDriverReserved3;
-	ULONG			dwDriverReserved4;
-	HRESULT			ddRVal;
-} DD_SYNCSURFACEDATA, *PDD_SYNCSURFACEDATA;
-typedef DWORD (WINAPI *PDD_KERNELCB_SYNCSURFACE)(PDD_SYNCSURFACEDATA);
-
-typedef struct _DD_SYNCVIDEOPORTDATA
-{
-	PDD_DIRECTDRAW_LOCAL	lpDD;
-	PDD_VIDEOPORT_LOCAL	lpVideoPort;
-	DWORD			dwOriginOffset;
-	DWORD			dwHeight;
-	DWORD			dwVBIHeight;
-	ULONG			dwDriverReserved1;
-	ULONG			dwDriverReserved2;
-	ULONG			dwDriverReserved3;
-	HRESULT			ddRVal;
-} DD_SYNCVIDEOPORTDATA, *PDD_SYNCVIDEOPORTDATA;
-typedef DWORD (WINAPI *PDD_KERNELCB_SYNCVIDEOPORT)(PDD_SYNCVIDEOPORTDATA);
-
-
-typedef struct DD_NTPRIVATEDRIVERCAPS
-{
-	DWORD			dwSize;
-	DWORD			dwPrivateCaps;
-} DD_NTPRIVATEDRIVERCAPS;
-
-typedef struct _DD_UPDATENONLOCALHEAPDATA
-{
-	PDD_DIRECTDRAW_GLOBAL	lpDD;
-	DWORD			dwHeap;
-	FLATPTR			fpGARTLin;
-	FLATPTR			fpGARTDev;
-	ULONG_PTR		ulPolicyMaxBytes;
-	HRESULT			ddRVal;
-	VOID *			UpdateNonLocalHeap;
-} DD_UPDATENONLOCALHEAPDATA, *PDD_UPDATENONLOCALHEAPDATA;
-
-typedef struct _DD_STEREOMODE
-{
-	DWORD		dwSize;
-	DWORD		dwHeight;
-	DWORD		dwWidth;
-	DWORD		dwBpp;
-	DWORD		dwRefreshRate;
-	WINBOOL		bSupported;
-} DD_STEREOMODE, *PDD_STEREOMODE;
-
-typedef struct _DD_MORECAPS
-{
-	DWORD		dwSize;
-	DWORD		dwAlphaCaps;
-	DWORD		dwSVBAlphaCaps;
-	DWORD		dwVSBAlphaCaps;
-	DWORD		dwSSBAlphaCaps;
-	DWORD		dwFilterCaps;
-	DWORD		dwSVBFilterCaps;
-	DWORD		dwVSBFilterCaps;
-	DWORD		dwSSBFilterCaps;
-} DD_MORECAPS, *PDD_MORECAPS;
-
-typedef struct _DD_CLIPPER_GLOBAL
-{
-	ULONG_PTR	dwReserved1;
-} DD_CLIPPER_GLOBAL;
-
-typedef struct _DD_CLIPPER_LOCAL
-{
-	ULONG_PTR	dwReserved1;
-} DD_CLIPPER_LOCAL;
-
-typedef struct _DD_PALETTE_LOCAL
-{
-	ULONG		dwReserved0;
-	ULONG_PTR	dwReserved1;
-} DD_PALETTE_LOCAL;
-
-
-typedef struct DD_KERNELCALLBACKS
-{
-	DWORD				dwSize;
-	DWORD				dwFlags;
-	PDD_KERNELCB_SYNCSURFACE	SyncSurfaceData;
-	PDD_KERNELCB_SYNCVIDEOPORT	SyncVideoPortData;
-} DD_KERNELCALLBACKS, *PDD_KERNELCALLBACKS;
-
-
-#define MAX_AUTOFLIP_BUFFERS				10
-#define DDSCAPS_EXECUTEBUFFER				DDSCAPS_RESERVED2
-#define DDSCAPS_COMMANDBUFFER				DDSCAPS_RESERVED3
-#define DDSCAPS_VERTEXBUFFER				DDSCAPS_RESERVED4
-#define DDPF_D3DFORMAT					0x00200000l
-#define D3DFORMAT_OP_TEXTURE				0x00000001L
-#define D3DFORMAT_OP_VOLUMETEXTURE			0x00000002L
-#define D3DFORMAT_OP_CUBETEXTURE			0x00000004L
-#define D3DFORMAT_OP_OFFSCREEN_RENDERTARGET		0x00000008L
-#define D3DFORMAT_OP_SAME_FORMAT_RENDERTARGET		0x00000010L
-#define D3DFORMAT_OP_ZSTENCIL				0x00000040L
-#define D3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH  0x00000080L
-#define D3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET 0x00000100L
-#define D3DFORMAT_OP_DISPLAYMODE			0x00000400L
-#define D3DFORMAT_OP_3DACCELERATION			0x00000800L
-#define D3DFORMAT_OP_PIXELSIZE				0x00001000L
-#define D3DFORMAT_OP_CONVERT_TO_ARGB			0x00002000L
-#define D3DFORMAT_OP_OFFSCREENPLAIN			0x00004000L
-#define D3DFORMAT_OP_SRGBREAD				0x00008000L
-#define D3DFORMAT_OP_BUMPMAP				0x00010000L
-#define D3DFORMAT_OP_DMAP				0x00020000L
-#define D3DFORMAT_OP_NOFILTER				0x00040000L
-#define D3DFORMAT_MEMBEROFGROUP_ARGB			0x00080000L
-#define D3DFORMAT_OP_SRGBWRITE				0x00100000L
-#define D3DFORMAT_OP_NOALPHABLEND			0x00200000L
-#define D3DFORMAT_OP_AUTOGENMIPMAP			0x00400000L
-#define D3DFORMAT_OP_VERTEXTEXTURE			0x00800000L
-#define D3DFORMAT_OP_NOTEXCOORDWRAPNORMIP		0x01000000L
-#define DDHAL_PLEASEALLOC_BLOCKSIZE			0x00000002l
-#define DDHAL_PLEASEALLOC_USERMEM			0x00000004l
-
-#define VIDMEM_ISLINEAR					0x00000001l
-#define VIDMEM_ISRECTANGULAR				0x00000002l
-#define VIDMEM_ISHEAP					0x00000004l
-#define VIDMEM_ISNONLOCAL				0x00000008l
-#define VIDMEM_ISWC					0x00000010l
-#define VIDMEM_HEAPDISABLED				0x00000020l
-
-#define DDHAL_CREATESURFACEEX_SWAPHANDLES		0x00000001l
-
-#define DDHAL_KERNEL_SYNCSURFACEDATA			0x00000001l
-#define DDHAL_KERNEL_SYNCVIDEOPORTDATA			0x00000002l
-
-#define DDHAL_DRIVER_NOTHANDLED				0x00000000l
-#define DDHAL_DRIVER_HANDLED				0x00000001l
-#define DDHAL_DRIVER_NOCKEYHW				0x00000002l
-
-#define DDRAWISURF_HASCKEYSRCBLT			0x00000800L
-#define DDRAWISURF_HASPIXELFORMAT			0x00002000L
-#define DDRAWISURF_HASOVERLAYDATA			0x00004000L
-#define DDRAWISURF_FRONTBUFFER				0x04000000L
-#define DDRAWISURF_BACKBUFFER				0x08000000L
-#define DDRAWISURF_INVALID				0x10000000L
-#define DDRAWISURF_DRIVERMANAGED			0x40000000L
-
-#define ROP_HAS_SOURCE					0x00000001l
-#define ROP_HAS_PATTERN					0x00000002l
-#define ROP_HAS_SOURCEPATTERN		ROP_HAS_SOURCE | ROP_HAS_PATTERN
-
-#define DDHAL_EXEBUFCB32_CANCREATEEXEBUF		0x00000001l
-#define DDHAL_EXEBUFCB32_CREATEEXEBUF			0x00000002l
-#define DDHAL_EXEBUFCB32_DESTROYEXEBUF			0x00000004l
-#define DDHAL_EXEBUFCB32_LOCKEXEBUF			0x00000008l
-#define DDHAL_EXEBUFCB32_UNLOCKEXEBUF			0x00000010l
-
-#define DDHAL_D3DBUFCB32_CANCREATED3DBUF		DDHAL_EXEBUFCB32_CANCREATEEXEBUF
-#define DDHAL_D3DBUFCB32_CREATED3DBUF			DDHAL_EXEBUFCB32_CREATEEXEBUF
-#define DDHAL_D3DBUFCB32_DESTROYD3DBUF			DDHAL_EXEBUFCB32_DESTROYEXEBUF
-#define DDHAL_D3DBUFCB32_LOCKD3DBUF			DDHAL_EXEBUFCB32_LOCKEXEBUF
-#define DDHAL_D3DBUFCB32_UNLOCKD3DBUF			DDHAL_EXEBUFCB32_UNLOCKEXEBUF
-
-#define DDHALINFO_ISPRIMARYDISPLAY			0x00000001
-#define DDHALINFO_MODEXILLEGAL				0x00000002
-#define DDHALINFO_GETDRIVERINFOSET			0x00000004
-#define DDHALINFO_GETDRIVERINFO2			0x00000008
-
-#define DDRAWIVPORT_ON					0x00000001
-#define DDRAWIVPORT_SOFTWARE_AUTOFLIP			0x00000002
-#define DDRAWIVPORT_COLORKEYANDINTERP			0x00000004
-
-#define DDHAL_PRIVATECAP_ATOMICSURFACECREATION		0x00000001l
-#define DDHAL_PRIVATECAP_NOTIFYPRIMARYCREATION		0x00000002l
-#define DDHAL_PRIVATECAP_RESERVED1			0x00000004l
-
-#define DDRAWI_VPORTSTART				0x0001
-#define DDRAWI_VPORTSTOP				0x0002
-#define DDRAWI_VPORTUPDATE				0x0003
-#define DDRAWI_VPORTGETCOLOR				0x0001
-#define DDRAWI_VPORTSETCOLOR				0x0002
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* GUID_DEFS_ONLY */
-
-#endif /* __DD_INCLUDED__ */
-
lib/libc/include/any-windows-any/ddstream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/ddstream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/ddstream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ddstream.idl
@@ -1,88 +0,0 @@
-/*
- * Copyright 2004 Christian Costa
- *
- * 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 "unknwn.idl";
-import "mmstream.idl";
-
-cpp_quote("#ifndef __DDRAW_INCLUDED__")
-typedef void * LPDDSURFACEDESC;
-typedef struct tDDSURFACEDESC DDSURFACEDESC;
-interface IDirectDraw;
-interface IDirectDrawSurface;
-interface IDirectDrawPalette;
-cpp_quote("#endif")
-cpp_quote("#include <ddraw.h>")
-
-enum {
-	DDSFF_PROGRESSIVERENDER = 0x00000001
-};
-
-interface IDirectDrawMediaStream;
-interface IDirectDrawStreamSample;
-
-[
-object,
-local,
-uuid(F4104FCE-9A70-11d0-8FDE-00C04FD9189D),
-pointer_default(unique)
-]
-interface IDirectDrawMediaStream : IMediaStream
-{
-	HRESULT GetFormat(
-		[out] DDSURFACEDESC *pDDSDCurrent,
-		[out] IDirectDrawPalette **ppDirectDrawPalette,
-		[out] DDSURFACEDESC *pDDSDDesired,
-		[out] DWORD *pdwFlags);
-
-	HRESULT SetFormat(
-		[in] const DDSURFACEDESC *pDDSurfaceDesc,
-		[in] IDirectDrawPalette *pDirectDrawPalette);
-
-	HRESULT GetDirectDraw(
-		[out] IDirectDraw **ppDirectDraw);
-
-	HRESULT SetDirectDraw(
-		[in] IDirectDraw *pDirectDraw);
-
-	HRESULT CreateSample(
-		[in] IDirectDrawSurface *pSurface,
-		[in] const RECT *pRect,
-		[in] DWORD dwFlags,
-		[out] IDirectDrawStreamSample **ppSample);
-
-	HRESULT GetTimePerFrame(
-		[out] STREAM_TIME *pFrameTime);
-}
-
-
-[
-object,
-local,
-uuid(F4104FCF-9A70-11d0-8FDE-00C04FD9189D),
-pointer_default(unique)
-]
-interface IDirectDrawStreamSample : IStreamSample
-{
-	HRESULT GetSurface(
-		[out] IDirectDrawSurface ** ppDirectDrawSurface,
-		[out] RECT * pRect);
-
-	HRESULT SetRect(
-		[in] const RECT * pRect);
-
-}
lib/libc/include/any-windows-any/devicetopology.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/devicetopology.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/devicetopology.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -3110,6 +3110,8 @@ static FORCEINLINE HRESULT IDeviceTopology_GetSignalPath(IDeviceTopology* This,I
 
 #endif  /* __IDeviceTopology_INTERFACE_DEFINED__ */
 
+#ifndef __DevTopologyLib_LIBRARY_DEFINED__
+#define __DevTopologyLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_DevTopologyLib, 0x51b9a01d, 0x8181, 0x4363, 0xb5,0x9c, 0xe6,0x78,0xf4,0x76,0xdd,0x0e);
 
@@ -3126,6 +3128,7 @@ __CRT_UUID_DECL(DeviceTopology, 0x1df639d0, 0x5ec1, 0x47aa, 0x93,0x79, 0x82,0x8d
 #endif
 #endif
 
+#endif /* __DevTopologyLib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 
lib/libc/include/any-windows-any/dimm.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/dimm.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dimm.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -131,21 +131,23 @@ interface IEnumRegisterWordW;
 #include <winapifamily.h>
 
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __ActiveIMM_LIBRARY_DEFINED__
+#define __ActiveIMM_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_ActiveIMM, 0x4955dd30, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x00,0x6b,0xcc,0x59);
 
 #include <imm.h>
 #if 0
 typedef WORD LANGID;
-typedef struct __WIDL_dimm_generated_name_00000002 {
+typedef struct __WIDL_dimm_generated_name_0000000C {
     LPSTR lpReading;
     LPSTR lpWord;
 } REGISTERWORDA;
-typedef struct __WIDL_dimm_generated_name_00000003 {
+typedef struct __WIDL_dimm_generated_name_0000000D {
     LPWSTR lpReading;
     LPWSTR lpWord;
 } REGISTERWORDW;
-typedef struct __WIDL_dimm_generated_name_00000004 {
+typedef struct __WIDL_dimm_generated_name_0000000E {
     LONG lfHeight;
     LONG lfWidth;
     LONG lfEscapement;
@@ -161,7 +163,7 @@ typedef struct __WIDL_dimm_generated_name_00000004 {
     BYTE lfPitchAndFamily;
     CHAR lfFaceName[32];
 } LOGFONTA;
-typedef struct __WIDL_dimm_generated_name_00000005 {
+typedef struct __WIDL_dimm_generated_name_0000000F {
     LONG lfHeight;
     LONG lfWidth;
     LONG lfEscapement;
@@ -179,18 +181,18 @@ typedef struct __WIDL_dimm_generated_name_00000005 {
 } LOGFONTW;
 typedef DWORD HIMC;
 typedef DWORD HIMCC;
-typedef struct __WIDL_dimm_generated_name_00000006 {
+typedef struct __WIDL_dimm_generated_name_00000010 {
     DWORD dwIndex;
     DWORD dwStyle;
     POINT ptCurrentPos;
     RECT rcArea;
 } CANDIDATEFORM;
-typedef struct __WIDL_dimm_generated_name_00000007 {
+typedef struct __WIDL_dimm_generated_name_00000011 {
     DWORD dwStyle;
     POINT ptCurrentPos;
     RECT rcArea;
 } COMPOSITIONFORM;
-typedef struct __WIDL_dimm_generated_name_00000008 {
+typedef struct __WIDL_dimm_generated_name_00000012 {
     DWORD dwSize;
     DWORD dwStyle;
     DWORD dwCount;
@@ -199,16 +201,16 @@ typedef struct __WIDL_dimm_generated_name_00000008 {
     DWORD dwPageSize;
     DWORD dwOffset[1];
 } CANDIDATELIST;
-typedef struct __WIDL_dimm_generated_name_00000009 {
+typedef struct __WIDL_dimm_generated_name_00000013 {
     DWORD dwStyle;
     CHAR szDescription[32];
 } STYLEBUFA;
-typedef struct __WIDL_dimm_generated_name_0000000A {
+typedef struct __WIDL_dimm_generated_name_00000014 {
     DWORD dwStyle;
     WCHAR szDescription[32];
 } STYLEBUFW;
 typedef WORD ATOM;
-typedef struct __WIDL_dimm_generated_name_0000000B {
+typedef struct __WIDL_dimm_generated_name_00000015 {
     UINT cbSize;
     UINT fType;
     UINT fState;
@@ -219,7 +221,7 @@ typedef struct __WIDL_dimm_generated_name_0000000B {
     CHAR szString[80];
     HBITMAP hbmpItem;
 } IMEMENUITEMINFOA;
-typedef struct __WIDL_dimm_generated_name_0000000C {
+typedef struct __WIDL_dimm_generated_name_00000016 {
     UINT cbSize;
     UINT fType;
     UINT fState;
@@ -232,7 +234,7 @@ typedef struct __WIDL_dimm_generated_name_0000000C {
 } IMEMENUITEMINFOW;
 #endif
 #ifndef _DDKIMM_H_
-typedef struct __WIDL_dimm_generated_name_0000000D {
+typedef struct __WIDL_dimm_generated_name_00000017 {
     HWND hWnd;
     WINBOOL fOpen;
     POINT ptStatusWndPos;
@@ -254,7 +256,7 @@ typedef struct __WIDL_dimm_generated_name_0000000D {
     DWORD fdwInit;
     DWORD dwReserve[3];
 } INPUTCONTEXT;
-typedef struct __WIDL_dimm_generated_name_0000000E {
+typedef struct __WIDL_dimm_generated_name_00000018 {
     DWORD dwPrivateDataSize;
     DWORD fdwProperty;
     DWORD fdwConversionCaps;
@@ -4001,6 +4003,7 @@ __CRT_UUID_DECL(CActiveIMM, 0x4955dd33, 0xb159, 0x11d0, 0x8f,0xcf, 0x00,0xaa,0x0
 #endif
 #endif
 
+#endif /* __ActiveIMM_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/dinput.h
@@ -474,8 +474,8 @@ DECL_WINELIB_TYPE_AW(DIDEVICEINSTANCE)
 DECL_WINELIB_TYPE_AW(LPDIDEVICEINSTANCE)
 DECL_WINELIB_TYPE_AW(LPCDIDEVICEINSTANCE)
 
-typedef BOOL (CALLBACK *LPDIENUMDEVICESCALLBACKA)(LPCDIDEVICEINSTANCEA,LPVOID);
-typedef BOOL (CALLBACK *LPDIENUMDEVICESCALLBACKW)(LPCDIDEVICEINSTANCEW,LPVOID);
+typedef WINBOOL (CALLBACK *LPDIENUMDEVICESCALLBACKA)(LPCDIDEVICEINSTANCEA,LPVOID);
+typedef WINBOOL (CALLBACK *LPDIENUMDEVICESCALLBACKW)(LPCDIDEVICEINSTANCEW,LPVOID);
 DECL_WINELIB_TYPE_AW(LPDIENUMDEVICESCALLBACK)
 
 #define DIEDBS_MAPPEDPRI1		0x00000001
@@ -492,19 +492,19 @@ DECL_WINELIB_TYPE_AW(LPDIENUMDEVICESCALLBACK)
 #define DIEDBSFL_VALID			0x00007110
 
 #if DIRECTINPUT_VERSION >= 0x0800
-typedef BOOL (CALLBACK *LPDIENUMDEVICESBYSEMANTICSCBA)(LPCDIDEVICEINSTANCEA,LPDIRECTINPUTDEVICE8A,DWORD,DWORD,LPVOID);
-typedef BOOL (CALLBACK *LPDIENUMDEVICESBYSEMANTICSCBW)(LPCDIDEVICEINSTANCEW,LPDIRECTINPUTDEVICE8W,DWORD,DWORD,LPVOID);
+typedef WINBOOL (CALLBACK *LPDIENUMDEVICESBYSEMANTICSCBA)(LPCDIDEVICEINSTANCEA,LPDIRECTINPUTDEVICE8A,DWORD,DWORD,LPVOID);
+typedef WINBOOL (CALLBACK *LPDIENUMDEVICESBYSEMANTICSCBW)(LPCDIDEVICEINSTANCEW,LPDIRECTINPUTDEVICE8W,DWORD,DWORD,LPVOID);
 DECL_WINELIB_TYPE_AW(LPDIENUMDEVICESBYSEMANTICSCB)
 #endif
 
-typedef BOOL (CALLBACK *LPDICONFIGUREDEVICESCALLBACK)(LPUNKNOWN,LPVOID);
+typedef WINBOOL (CALLBACK *LPDICONFIGUREDEVICESCALLBACK)(LPUNKNOWN,LPVOID);
 
-typedef BOOL (CALLBACK *LPDIENUMDEVICEOBJECTSCALLBACKA)(LPCDIDEVICEOBJECTINSTANCEA,LPVOID);
-typedef BOOL (CALLBACK *LPDIENUMDEVICEOBJECTSCALLBACKW)(LPCDIDEVICEOBJECTINSTANCEW,LPVOID);
+typedef WINBOOL (CALLBACK *LPDIENUMDEVICEOBJECTSCALLBACKA)(LPCDIDEVICEOBJECTINSTANCEA,LPVOID);
+typedef WINBOOL (CALLBACK *LPDIENUMDEVICEOBJECTSCALLBACKW)(LPCDIDEVICEOBJECTINSTANCEW,LPVOID);
 DECL_WINELIB_TYPE_AW(LPDIENUMDEVICEOBJECTSCALLBACK)
 
 #if DIRECTINPUT_VERSION >= 0x0500
-typedef BOOL (CALLBACK *LPDIENUMCREATEDEFFECTOBJECTSCALLBACK)(LPDIRECTINPUTEFFECT, LPVOID);
+typedef WINBOOL (CALLBACK *LPDIENUMCREATEDEFFECTOBJECTSCALLBACK)(LPDIRECTINPUTEFFECT, LPVOID);
 #endif
 
 #define DIK_ESCAPE          0x01
@@ -1130,8 +1130,8 @@ DECL_WINELIB_TYPE_AW(DIEFFECTINFO)
 DECL_WINELIB_TYPE_AW(LPDIEFFECTINFO)
 DECL_WINELIB_TYPE_AW(LPCDIEFFECTINFO)
 
-typedef BOOL (CALLBACK *LPDIENUMEFFECTSCALLBACKA)(LPCDIEFFECTINFOA, LPVOID);
-typedef BOOL (CALLBACK *LPDIENUMEFFECTSCALLBACKW)(LPCDIEFFECTINFOW, LPVOID);
+typedef WINBOOL (CALLBACK *LPDIENUMEFFECTSCALLBACKA)(LPCDIEFFECTINFOA, LPVOID);
+typedef WINBOOL (CALLBACK *LPDIENUMEFFECTSCALLBACKW)(LPCDIEFFECTINFOW, LPVOID);
 
 typedef struct DIEFFESCAPE {
 	DWORD	dwSize;
@@ -1242,7 +1242,7 @@ typedef struct DIFILEEFFECT {
 } DIFILEEFFECT, *LPDIFILEEFFECT;
 
 typedef const DIFILEEFFECT *LPCDIFILEEFFECT;
-typedef BOOL (CALLBACK *LPDIENUMEFFECTSINFILECALLBACK)(LPCDIFILEEFFECT , LPVOID);
+typedef WINBOOL (CALLBACK *LPDIENUMEFFECTSINFILECALLBACK)(LPCDIFILEEFFECT , LPVOID);
 #endif /* DIRECTINPUT_VERSION >= 0x0700 */
 
 /* DInput 8 structures and types */
lib/libc/include/any-windows-any/dinputd.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from dinputd.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dinputd.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/direct.h
@@ -27,7 +27,9 @@ extern "C" {
 
   _CRTIMP char *__cdecl _getcwd(char *_DstBuf,int _SizeInBytes);
   _CRTIMP char *__cdecl _getdcwd(int _Drive,char *_DstBuf,int _SizeInBytes);
+#if __MSVCRT_VERSION__ >= 0x800
   char *__cdecl _getdcwd_nolock(int _Drive,char *_DstBuf,int _SizeInBytes);
+#endif
   _CRTIMP int __cdecl _chdir(const char *_Path);
   _CRTIMP int __cdecl _mkdir(const char *_Path);
   _CRTIMP int __cdecl _rmdir(const char *_Path);
@@ -46,7 +48,9 @@ extern "C" {
 #define _WDIRECT_DEFINED
   _CRTIMP wchar_t *__cdecl _wgetcwd(wchar_t *_DstBuf,int _SizeInWords);
   _CRTIMP wchar_t *__cdecl _wgetdcwd(int _Drive,wchar_t *_DstBuf,int _SizeInWords);
+#if __MSVCRT_VERSION__ >= 0x800
   wchar_t *__cdecl _wgetdcwd_nolock(int _Drive,wchar_t *_DstBuf,int _SizeInWords);
+#endif
   _CRTIMP int __cdecl _wchdir(const wchar_t *_Path);
   _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path);
   _CRTIMP int __cdecl _wrmdir(const wchar_t *_Path);
lib/libc/include/any-windows-any/directmanipulation.h
@@ -0,0 +1,2319 @@
+/*** Autogenerated by WIDL 6.4 from include/directmanipulation.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __directmanipulation_h__
+#define __directmanipulation_h__
+
+/* Forward declarations */
+
+#ifndef __IDirectManipulationFrameInfoProvider_FWD_DEFINED__
+#define __IDirectManipulationFrameInfoProvider_FWD_DEFINED__
+typedef interface IDirectManipulationFrameInfoProvider IDirectManipulationFrameInfoProvider;
+#ifdef __cplusplus
+interface IDirectManipulationFrameInfoProvider;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationManager_FWD_DEFINED__
+#define __IDirectManipulationManager_FWD_DEFINED__
+typedef interface IDirectManipulationManager IDirectManipulationManager;
+#ifdef __cplusplus
+interface IDirectManipulationManager;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationContent_FWD_DEFINED__
+#define __IDirectManipulationContent_FWD_DEFINED__
+typedef interface IDirectManipulationContent IDirectManipulationContent;
+#ifdef __cplusplus
+interface IDirectManipulationContent;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationUpdateHandler_FWD_DEFINED__
+#define __IDirectManipulationUpdateHandler_FWD_DEFINED__
+typedef interface IDirectManipulationUpdateHandler IDirectManipulationUpdateHandler;
+#ifdef __cplusplus
+interface IDirectManipulationUpdateHandler;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationUpdateManager_FWD_DEFINED__
+#define __IDirectManipulationUpdateManager_FWD_DEFINED__
+typedef interface IDirectManipulationUpdateManager IDirectManipulationUpdateManager;
+#ifdef __cplusplus
+interface IDirectManipulationUpdateManager;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationCompositor_FWD_DEFINED__
+#define __IDirectManipulationCompositor_FWD_DEFINED__
+typedef interface IDirectManipulationCompositor IDirectManipulationCompositor;
+#ifdef __cplusplus
+interface IDirectManipulationCompositor;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationViewport_FWD_DEFINED__
+#define __IDirectManipulationViewport_FWD_DEFINED__
+typedef interface IDirectManipulationViewport IDirectManipulationViewport;
+#ifdef __cplusplus
+interface IDirectManipulationViewport;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationViewport2_FWD_DEFINED__
+#define __IDirectManipulationViewport2_FWD_DEFINED__
+typedef interface IDirectManipulationViewport2 IDirectManipulationViewport2;
+#ifdef __cplusplus
+interface IDirectManipulationViewport2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationViewportEventHandler_FWD_DEFINED__
+#define __IDirectManipulationViewportEventHandler_FWD_DEFINED__
+typedef interface IDirectManipulationViewportEventHandler IDirectManipulationViewportEventHandler;
+#ifdef __cplusplus
+interface IDirectManipulationViewportEventHandler;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationManager2_FWD_DEFINED__
+#define __IDirectManipulationManager2_FWD_DEFINED__
+typedef interface IDirectManipulationManager2 IDirectManipulationManager2;
+#ifdef __cplusplus
+interface IDirectManipulationManager2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationPrimaryContent_FWD_DEFINED__
+#define __IDirectManipulationPrimaryContent_FWD_DEFINED__
+typedef interface IDirectManipulationPrimaryContent IDirectManipulationPrimaryContent;
+#ifdef __cplusplus
+interface IDirectManipulationPrimaryContent;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDirectManipulationCompositor2_FWD_DEFINED__
+#define __IDirectManipulationCompositor2_FWD_DEFINED__
+typedef interface IDirectManipulationCompositor2 IDirectManipulationCompositor2;
+#ifdef __cplusplus
+interface IDirectManipulationCompositor2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __DirectManipulationManager_FWD_DEFINED__
+#define __DirectManipulationManager_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class DirectManipulationManager DirectManipulationManager;
+#else
+typedef struct DirectManipulationManager DirectManipulationManager;
+#endif /* defined __cplusplus */
+#endif /* defined __DirectManipulationManager_FWD_DEFINED__ */
+
+#ifndef __DirectManipulationSharedManager_FWD_DEFINED__
+#define __DirectManipulationSharedManager_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class DirectManipulationSharedManager DirectManipulationSharedManager;
+#else
+typedef struct DirectManipulationSharedManager DirectManipulationSharedManager;
+#endif /* defined __cplusplus */
+#endif /* defined __DirectManipulationSharedManager_FWD_DEFINED__ */
+
+#ifndef __DCompManipulationCompositor_FWD_DEFINED__
+#define __DCompManipulationCompositor_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class DCompManipulationCompositor DCompManipulationCompositor;
+#else
+typedef struct DCompManipulationCompositor DCompManipulationCompositor;
+#endif /* defined __cplusplus */
+#endif /* defined __DCompManipulationCompositor_FWD_DEFINED__ */
+
+#ifndef __DirectManipulationViewport_FWD_DEFINED__
+#define __DirectManipulationViewport_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class DirectManipulationViewport DirectManipulationViewport;
+#else
+typedef struct DirectManipulationViewport DirectManipulationViewport;
+#endif /* defined __cplusplus */
+#endif /* defined __DirectManipulationViewport_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if 0
+typedef void *HWND;
+#endif
+#ifndef __IDirectManipulationViewportEventHandler_FWD_DEFINED__
+#define __IDirectManipulationViewportEventHandler_FWD_DEFINED__
+typedef interface IDirectManipulationViewportEventHandler IDirectManipulationViewportEventHandler;
+#ifdef __cplusplus
+interface IDirectManipulationViewportEventHandler;
+#endif /* __cplusplus */
+#endif
+
+typedef enum DIRECTMANIPULATION_HITTEST_TYPE {
+    DIRECTMANIPULATION_HITTEST_TYPE_ASYNCHRONOUS = 0x0,
+    DIRECTMANIPULATION_HITTEST_TYPE_SYNCHRONOUS = 0x1,
+    DIRECTMANIPULATION_HITTEST_TYPE_AUTO_SYNCHRONOUS = 0x2
+} DIRECTMANIPULATION_HITTEST_TYPE;
+DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_HITTEST_TYPE)
+typedef enum DIRECTMANIPULATION_STATUS {
+    DIRECTMANIPULATION_BUILDING = 0,
+    DIRECTMANIPULATION_ENABLED = 1,
+    DIRECTMANIPULATION_DISABLED = 2,
+    DIRECTMANIPULATION_RUNNING = 3,
+    DIRECTMANIPULATION_INERTIA = 4,
+    DIRECTMANIPULATION_READY = 5,
+    DIRECTMANIPULATION_SUSPENDED = 6
+} DIRECTMANIPULATION_STATUS;
+typedef enum DIRECTMANIPULATION_VIEWPORT_OPTIONS {
+    DIRECTMANIPULATION_VIEWPORT_OPTIONS_DEFAULT = 0x0,
+    DIRECTMANIPULATION_VIEWPORT_OPTIONS_AUTODISABLE = 0x1,
+    DIRECTMANIPULATION_VIEWPORT_OPTIONS_MANUALUPDATE = 0x2,
+    DIRECTMANIPULATION_VIEWPORT_OPTIONS_INPUT = 0x4,
+    DIRECTMANIPULATION_VIEWPORT_OPTIONS_EXPLICITHITTEST = 0x8,
+    DIRECTMANIPULATION_VIEWPORT_OPTIONS_DISABLEPIXELSNAPPING = 0x10
+} DIRECTMANIPULATION_VIEWPORT_OPTIONS;
+DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_VIEWPORT_OPTIONS)
+typedef enum DIRECTMANIPULATION_CONFIGURATION {
+    DIRECTMANIPULATION_CONFIGURATION_NONE = 0x0,
+    DIRECTMANIPULATION_CONFIGURATION_INTERACTION = 0x1,
+    DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_X = 0x2,
+    DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_Y = 0x4,
+    DIRECTMANIPULATION_CONFIGURATION_SCALING = 0x10,
+    DIRECTMANIPULATION_CONFIGURATION_TRANSLATION_INERTIA = 0x20,
+    DIRECTMANIPULATION_CONFIGURATION_SCALING_INERTIA = 0x80,
+    DIRECTMANIPULATION_CONFIGURATION_RAILS_X = 0x100,
+    DIRECTMANIPULATION_CONFIGURATION_RAILS_Y = 0x200
+} DIRECTMANIPULATION_CONFIGURATION;
+DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_CONFIGURATION)
+typedef enum DIRECTMANIPULATION_GESTURE_CONFIGURATION {
+    DIRECTMANIPULATION_GESTURE_NONE = 0x0,
+    DIRECTMANIPULATION_GESTURE_DEFAULT = 0x0,
+    DIRECTMANIPULATION_GESTURE_CROSS_SLIDE_VERTICAL = 0x8,
+    DIRECTMANIPULATION_GESTURE_CROSS_SLIDE_HORIZONTAL = 0x10,
+    DIRECTMANIPULATION_GESTURE_PINCH_ZOOM = 0x20
+} DIRECTMANIPULATION_GESTURE_CONFIGURATION;
+DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_GESTURE_CONFIGURATION)
+typedef enum DIRECTMANIPULATION_MOTION_TYPES {
+    DIRECTMANIPULATION_MOTION_NONE = 0x0,
+    DIRECTMANIPULATION_MOTION_TRANSLATEX = 0x1,
+    DIRECTMANIPULATION_MOTION_TRANSLATEY = 0x2,
+    DIRECTMANIPULATION_MOTION_ZOOM = 0x4,
+    DIRECTMANIPULATION_MOTION_CENTERX = 0x10,
+    DIRECTMANIPULATION_MOTION_CENTERY = 0x20,
+    DIRECTMANIPULATION_MOTION_ALL = (((DIRECTMANIPULATION_MOTION_TRANSLATEX | DIRECTMANIPULATION_MOTION_TRANSLATEY) | DIRECTMANIPULATION_MOTION_ZOOM) | DIRECTMANIPULATION_MOTION_CENTERX) | DIRECTMANIPULATION_MOTION_CENTERY
+} DIRECTMANIPULATION_MOTION_TYPES;
+DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_MOTION_TYPES)
+typedef enum DIRECTMANIPULATION_SNAPPOINT_TYPE {
+    DIRECTMANIPULATION_SNAPPOINT_MANDATORY = 0,
+    DIRECTMANIPULATION_SNAPPOINT_OPTIONAL = 1,
+    DIRECTMANIPULATION_SNAPPOINT_MANDATORY_SINGLE = 2,
+    DIRECTMANIPULATION_SNAPPOINT_OPTIONAL_SINGLE = 3
+} DIRECTMANIPULATION_SNAPPOINT_TYPE;
+typedef enum DIRECTMANIPULATION_SNAPPOINT_COORDINATE {
+    DIRECTMANIPULATION_COORDINATE_BOUNDARY = 0x0,
+    DIRECTMANIPULATION_COORDINATE_ORIGIN = 0x1,
+    DIRECTMANIPULATION_COORDINATE_MIRRORED = 0x10
+} DIRECTMANIPULATION_SNAPPOINT_COORDINATE;
+DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_SNAPPOINT_COORDINATE)
+typedef enum DIRECTMANIPULATION_HORIZONTALALIGNMENT {
+    DIRECTMANIPULATION_HORIZONTALALIGNMENT_NONE = 0x0,
+    DIRECTMANIPULATION_HORIZONTALALIGNMENT_LEFT = 0x1,
+    DIRECTMANIPULATION_HORIZONTALALIGNMENT_CENTER = 0x2,
+    DIRECTMANIPULATION_HORIZONTALALIGNMENT_RIGHT = 0x4,
+    DIRECTMANIPULATION_HORIZONTALALIGNMENT_UNLOCKCENTER = 0x8
+} DIRECTMANIPULATION_HORIZONTALALIGNMENT;
+DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_HORIZONTALALIGNMENT)
+typedef enum DIRECTMANIPULATION_VERTICALALIGNMENT {
+    DIRECTMANIPULATION_VERTICALALIGNMENT_NONE = 0x0,
+    DIRECTMANIPULATION_VERTICALALIGNMENT_TOP = 0x1,
+    DIRECTMANIPULATION_VERTICALALIGNMENT_CENTER = 0x2,
+    DIRECTMANIPULATION_VERTICALALIGNMENT_BOTTOM = 0x4,
+    DIRECTMANIPULATION_VERTICALALIGNMENT_UNLOCKCENTER = 0x8
+} DIRECTMANIPULATION_VERTICALALIGNMENT;
+DEFINE_ENUM_FLAG_OPERATORS(DIRECTMANIPULATION_VERTICALALIGNMENT)
+typedef enum DIRECTMANIPULATION_INPUT_MODE {
+    DIRECTMANIPULATION_INPUT_MODE_AUTOMATIC = 0,
+    DIRECTMANIPULATION_INPUT_MODE_MANUAL = 1
+} DIRECTMANIPULATION_INPUT_MODE;
+/*****************************************************************************
+ * IDirectManipulationFrameInfoProvider interface
+ */
+#ifndef __IDirectManipulationFrameInfoProvider_INTERFACE_DEFINED__
+#define __IDirectManipulationFrameInfoProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationFrameInfoProvider, 0xfb759dba, 0x6f4c, 0x4c01, 0x87,0x4e, 0x19,0xc8,0xa0,0x59,0x07,0xf9);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fb759dba-6f4c-4c01-874e-19c8a05907f9")
+IDirectManipulationFrameInfoProvider : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetNextFrameInfo(
+        ULONGLONG *time,
+        ULONGLONG *process,
+        ULONGLONG *composition) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationFrameInfoProvider, 0xfb759dba, 0x6f4c, 0x4c01, 0x87,0x4e, 0x19,0xc8,0xa0,0x59,0x07,0xf9)
+#endif
+#else
+typedef struct IDirectManipulationFrameInfoProviderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationFrameInfoProvider *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationFrameInfoProvider *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationFrameInfoProvider *This);
+
+    /*** IDirectManipulationFrameInfoProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetNextFrameInfo)(
+        IDirectManipulationFrameInfoProvider *This,
+        ULONGLONG *time,
+        ULONGLONG *process,
+        ULONGLONG *composition);
+
+    END_INTERFACE
+} IDirectManipulationFrameInfoProviderVtbl;
+
+interface IDirectManipulationFrameInfoProvider {
+    CONST_VTBL IDirectManipulationFrameInfoProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationFrameInfoProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationFrameInfoProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationFrameInfoProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationFrameInfoProvider methods ***/
+#define IDirectManipulationFrameInfoProvider_GetNextFrameInfo(This,time,process,composition) (This)->lpVtbl->GetNextFrameInfo(This,time,process,composition)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationFrameInfoProvider_QueryInterface(IDirectManipulationFrameInfoProvider* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationFrameInfoProvider_AddRef(IDirectManipulationFrameInfoProvider* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationFrameInfoProvider_Release(IDirectManipulationFrameInfoProvider* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationFrameInfoProvider methods ***/
+static FORCEINLINE HRESULT IDirectManipulationFrameInfoProvider_GetNextFrameInfo(IDirectManipulationFrameInfoProvider* This,ULONGLONG *time,ULONGLONG *process,ULONGLONG *composition) {
+    return This->lpVtbl->GetNextFrameInfo(This,time,process,composition);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationFrameInfoProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationManager interface
+ */
+#ifndef __IDirectManipulationManager_INTERFACE_DEFINED__
+#define __IDirectManipulationManager_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationManager, 0xfbf5d3b4, 0x70c7, 0x4163, 0x93,0x22, 0x5a,0x6f,0x66,0x0d,0x6f,0xbc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fbf5d3b4-70c7-4163-9322-5a6f660d6fbc")
+IDirectManipulationManager : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Activate(
+        HWND window) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Deactivate(
+        HWND window) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterHitTestTarget(
+        HWND window,
+        HWND hittest,
+        DIRECTMANIPULATION_HITTEST_TYPE type) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ProcessInput(
+        const MSG *msg,
+        WINBOOL *handled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetUpdateManager(
+        REFIID riid,
+        void **obj) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateViewport(
+        IDirectManipulationFrameInfoProvider *frame,
+        HWND window,
+        REFIID riid,
+        void **obj) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateContent(
+        IDirectManipulationFrameInfoProvider *frame,
+        REFCLSID clsid,
+        REFIID riid,
+        void **obj) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationManager, 0xfbf5d3b4, 0x70c7, 0x4163, 0x93,0x22, 0x5a,0x6f,0x66,0x0d,0x6f,0xbc)
+#endif
+#else
+typedef struct IDirectManipulationManagerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationManager *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationManager *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationManager *This);
+
+    /*** IDirectManipulationManager methods ***/
+    HRESULT (STDMETHODCALLTYPE *Activate)(
+        IDirectManipulationManager *This,
+        HWND window);
+
+    HRESULT (STDMETHODCALLTYPE *Deactivate)(
+        IDirectManipulationManager *This,
+        HWND window);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterHitTestTarget)(
+        IDirectManipulationManager *This,
+        HWND window,
+        HWND hittest,
+        DIRECTMANIPULATION_HITTEST_TYPE type);
+
+    HRESULT (STDMETHODCALLTYPE *ProcessInput)(
+        IDirectManipulationManager *This,
+        const MSG *msg,
+        WINBOOL *handled);
+
+    HRESULT (STDMETHODCALLTYPE *GetUpdateManager)(
+        IDirectManipulationManager *This,
+        REFIID riid,
+        void **obj);
+
+    HRESULT (STDMETHODCALLTYPE *CreateViewport)(
+        IDirectManipulationManager *This,
+        IDirectManipulationFrameInfoProvider *frame,
+        HWND window,
+        REFIID riid,
+        void **obj);
+
+    HRESULT (STDMETHODCALLTYPE *CreateContent)(
+        IDirectManipulationManager *This,
+        IDirectManipulationFrameInfoProvider *frame,
+        REFCLSID clsid,
+        REFIID riid,
+        void **obj);
+
+    END_INTERFACE
+} IDirectManipulationManagerVtbl;
+
+interface IDirectManipulationManager {
+    CONST_VTBL IDirectManipulationManagerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationManager_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationManager methods ***/
+#define IDirectManipulationManager_Activate(This,window) (This)->lpVtbl->Activate(This,window)
+#define IDirectManipulationManager_Deactivate(This,window) (This)->lpVtbl->Deactivate(This,window)
+#define IDirectManipulationManager_RegisterHitTestTarget(This,window,hittest,type) (This)->lpVtbl->RegisterHitTestTarget(This,window,hittest,type)
+#define IDirectManipulationManager_ProcessInput(This,msg,handled) (This)->lpVtbl->ProcessInput(This,msg,handled)
+#define IDirectManipulationManager_GetUpdateManager(This,riid,obj) (This)->lpVtbl->GetUpdateManager(This,riid,obj)
+#define IDirectManipulationManager_CreateViewport(This,frame,window,riid,obj) (This)->lpVtbl->CreateViewport(This,frame,window,riid,obj)
+#define IDirectManipulationManager_CreateContent(This,frame,clsid,riid,obj) (This)->lpVtbl->CreateContent(This,frame,clsid,riid,obj)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationManager_QueryInterface(IDirectManipulationManager* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationManager_AddRef(IDirectManipulationManager* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationManager_Release(IDirectManipulationManager* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationManager methods ***/
+static FORCEINLINE HRESULT IDirectManipulationManager_Activate(IDirectManipulationManager* This,HWND window) {
+    return This->lpVtbl->Activate(This,window);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager_Deactivate(IDirectManipulationManager* This,HWND window) {
+    return This->lpVtbl->Deactivate(This,window);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager_RegisterHitTestTarget(IDirectManipulationManager* This,HWND window,HWND hittest,DIRECTMANIPULATION_HITTEST_TYPE type) {
+    return This->lpVtbl->RegisterHitTestTarget(This,window,hittest,type);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager_ProcessInput(IDirectManipulationManager* This,const MSG *msg,WINBOOL *handled) {
+    return This->lpVtbl->ProcessInput(This,msg,handled);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager_GetUpdateManager(IDirectManipulationManager* This,REFIID riid,void **obj) {
+    return This->lpVtbl->GetUpdateManager(This,riid,obj);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager_CreateViewport(IDirectManipulationManager* This,IDirectManipulationFrameInfoProvider *frame,HWND window,REFIID riid,void **obj) {
+    return This->lpVtbl->CreateViewport(This,frame,window,riid,obj);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager_CreateContent(IDirectManipulationManager* This,IDirectManipulationFrameInfoProvider *frame,REFCLSID clsid,REFIID riid,void **obj) {
+    return This->lpVtbl->CreateContent(This,frame,clsid,riid,obj);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationManager_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationContent interface
+ */
+#ifndef __IDirectManipulationContent_INTERFACE_DEFINED__
+#define __IDirectManipulationContent_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationContent, 0xb89962cb, 0x3d89, 0x442b, 0xbb,0x58, 0x50,0x98,0xfa,0x0f,0x9f,0x16);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b89962cb-3d89-442b-bb58-5098fa0f9f16")
+IDirectManipulationContent : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetContentRect(
+        RECT *size) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetContentRect(
+        const RECT *size) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetViewport(
+        REFIID riid,
+        void **object) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetTag(
+        REFIID riid,
+        void **object,
+        UINT32 *id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetTag(
+        IUnknown *object,
+        UINT32 id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetOutputTransform(
+        float *matrix,
+        DWORD count) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetContentTransform(
+        float *matrix,
+        DWORD count) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SyncContentTransform(
+        const float *matrix,
+        DWORD count) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationContent, 0xb89962cb, 0x3d89, 0x442b, 0xbb,0x58, 0x50,0x98,0xfa,0x0f,0x9f,0x16)
+#endif
+#else
+typedef struct IDirectManipulationContentVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationContent *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationContent *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationContent *This);
+
+    /*** IDirectManipulationContent methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetContentRect)(
+        IDirectManipulationContent *This,
+        RECT *size);
+
+    HRESULT (STDMETHODCALLTYPE *SetContentRect)(
+        IDirectManipulationContent *This,
+        const RECT *size);
+
+    HRESULT (STDMETHODCALLTYPE *GetViewport)(
+        IDirectManipulationContent *This,
+        REFIID riid,
+        void **object);
+
+    HRESULT (STDMETHODCALLTYPE *GetTag)(
+        IDirectManipulationContent *This,
+        REFIID riid,
+        void **object,
+        UINT32 *id);
+
+    HRESULT (STDMETHODCALLTYPE *SetTag)(
+        IDirectManipulationContent *This,
+        IUnknown *object,
+        UINT32 id);
+
+    HRESULT (STDMETHODCALLTYPE *GetOutputTransform)(
+        IDirectManipulationContent *This,
+        float *matrix,
+        DWORD count);
+
+    HRESULT (STDMETHODCALLTYPE *GetContentTransform)(
+        IDirectManipulationContent *This,
+        float *matrix,
+        DWORD count);
+
+    HRESULT (STDMETHODCALLTYPE *SyncContentTransform)(
+        IDirectManipulationContent *This,
+        const float *matrix,
+        DWORD count);
+
+    END_INTERFACE
+} IDirectManipulationContentVtbl;
+
+interface IDirectManipulationContent {
+    CONST_VTBL IDirectManipulationContentVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationContent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationContent_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationContent_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationContent methods ***/
+#define IDirectManipulationContent_GetContentRect(This,size) (This)->lpVtbl->GetContentRect(This,size)
+#define IDirectManipulationContent_SetContentRect(This,size) (This)->lpVtbl->SetContentRect(This,size)
+#define IDirectManipulationContent_GetViewport(This,riid,object) (This)->lpVtbl->GetViewport(This,riid,object)
+#define IDirectManipulationContent_GetTag(This,riid,object,id) (This)->lpVtbl->GetTag(This,riid,object,id)
+#define IDirectManipulationContent_SetTag(This,object,id) (This)->lpVtbl->SetTag(This,object,id)
+#define IDirectManipulationContent_GetOutputTransform(This,matrix,count) (This)->lpVtbl->GetOutputTransform(This,matrix,count)
+#define IDirectManipulationContent_GetContentTransform(This,matrix,count) (This)->lpVtbl->GetContentTransform(This,matrix,count)
+#define IDirectManipulationContent_SyncContentTransform(This,matrix,count) (This)->lpVtbl->SyncContentTransform(This,matrix,count)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationContent_QueryInterface(IDirectManipulationContent* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationContent_AddRef(IDirectManipulationContent* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationContent_Release(IDirectManipulationContent* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationContent methods ***/
+static FORCEINLINE HRESULT IDirectManipulationContent_GetContentRect(IDirectManipulationContent* This,RECT *size) {
+    return This->lpVtbl->GetContentRect(This,size);
+}
+static FORCEINLINE HRESULT IDirectManipulationContent_SetContentRect(IDirectManipulationContent* This,const RECT *size) {
+    return This->lpVtbl->SetContentRect(This,size);
+}
+static FORCEINLINE HRESULT IDirectManipulationContent_GetViewport(IDirectManipulationContent* This,REFIID riid,void **object) {
+    return This->lpVtbl->GetViewport(This,riid,object);
+}
+static FORCEINLINE HRESULT IDirectManipulationContent_GetTag(IDirectManipulationContent* This,REFIID riid,void **object,UINT32 *id) {
+    return This->lpVtbl->GetTag(This,riid,object,id);
+}
+static FORCEINLINE HRESULT IDirectManipulationContent_SetTag(IDirectManipulationContent* This,IUnknown *object,UINT32 id) {
+    return This->lpVtbl->SetTag(This,object,id);
+}
+static FORCEINLINE HRESULT IDirectManipulationContent_GetOutputTransform(IDirectManipulationContent* This,float *matrix,DWORD count) {
+    return This->lpVtbl->GetOutputTransform(This,matrix,count);
+}
+static FORCEINLINE HRESULT IDirectManipulationContent_GetContentTransform(IDirectManipulationContent* This,float *matrix,DWORD count) {
+    return This->lpVtbl->GetContentTransform(This,matrix,count);
+}
+static FORCEINLINE HRESULT IDirectManipulationContent_SyncContentTransform(IDirectManipulationContent* This,const float *matrix,DWORD count) {
+    return This->lpVtbl->SyncContentTransform(This,matrix,count);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationContent_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationUpdateHandler interface
+ */
+#ifndef __IDirectManipulationUpdateHandler_INTERFACE_DEFINED__
+#define __IDirectManipulationUpdateHandler_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationUpdateHandler, 0x790b6337, 0x64f8, 0x4ff5, 0xa2,0x69, 0xb3,0x2b,0xc2,0xaf,0x27,0xa7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("790b6337-64f8-4ff5-a269-b32bc2af27a7")
+IDirectManipulationUpdateHandler : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Update(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationUpdateHandler, 0x790b6337, 0x64f8, 0x4ff5, 0xa2,0x69, 0xb3,0x2b,0xc2,0xaf,0x27,0xa7)
+#endif
+#else
+typedef struct IDirectManipulationUpdateHandlerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationUpdateHandler *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationUpdateHandler *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationUpdateHandler *This);
+
+    /*** IDirectManipulationUpdateHandler methods ***/
+    HRESULT (STDMETHODCALLTYPE *Update)(
+        IDirectManipulationUpdateHandler *This);
+
+    END_INTERFACE
+} IDirectManipulationUpdateHandlerVtbl;
+
+interface IDirectManipulationUpdateHandler {
+    CONST_VTBL IDirectManipulationUpdateHandlerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationUpdateHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationUpdateHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationUpdateHandler_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationUpdateHandler methods ***/
+#define IDirectManipulationUpdateHandler_Update(This) (This)->lpVtbl->Update(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationUpdateHandler_QueryInterface(IDirectManipulationUpdateHandler* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationUpdateHandler_AddRef(IDirectManipulationUpdateHandler* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationUpdateHandler_Release(IDirectManipulationUpdateHandler* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationUpdateHandler methods ***/
+static FORCEINLINE HRESULT IDirectManipulationUpdateHandler_Update(IDirectManipulationUpdateHandler* This) {
+    return This->lpVtbl->Update(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationUpdateHandler_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationUpdateManager interface
+ */
+#ifndef __IDirectManipulationUpdateManager_INTERFACE_DEFINED__
+#define __IDirectManipulationUpdateManager_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationUpdateManager, 0xb0ae62fd, 0xbe34, 0x46e7, 0x9c,0xaa, 0xd3,0x61,0xfa,0xcb,0xb9,0xcc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b0ae62fd-be34-46e7-9caa-d361facbb9cc")
+IDirectManipulationUpdateManager : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE RegisterWaitHandleCallback(
+        HANDLE handle,
+        IDirectManipulationUpdateHandler *handler,
+        DWORD *cookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE UnregisterWaitHandleCallback(
+        DWORD cookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Update(
+        IDirectManipulationFrameInfoProvider *provider) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationUpdateManager, 0xb0ae62fd, 0xbe34, 0x46e7, 0x9c,0xaa, 0xd3,0x61,0xfa,0xcb,0xb9,0xcc)
+#endif
+#else
+typedef struct IDirectManipulationUpdateManagerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationUpdateManager *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationUpdateManager *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationUpdateManager *This);
+
+    /*** IDirectManipulationUpdateManager methods ***/
+    HRESULT (STDMETHODCALLTYPE *RegisterWaitHandleCallback)(
+        IDirectManipulationUpdateManager *This,
+        HANDLE handle,
+        IDirectManipulationUpdateHandler *handler,
+        DWORD *cookie);
+
+    HRESULT (STDMETHODCALLTYPE *UnregisterWaitHandleCallback)(
+        IDirectManipulationUpdateManager *This,
+        DWORD cookie);
+
+    HRESULT (STDMETHODCALLTYPE *Update)(
+        IDirectManipulationUpdateManager *This,
+        IDirectManipulationFrameInfoProvider *provider);
+
+    END_INTERFACE
+} IDirectManipulationUpdateManagerVtbl;
+
+interface IDirectManipulationUpdateManager {
+    CONST_VTBL IDirectManipulationUpdateManagerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationUpdateManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationUpdateManager_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationUpdateManager_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationUpdateManager methods ***/
+#define IDirectManipulationUpdateManager_RegisterWaitHandleCallback(This,handle,handler,cookie) (This)->lpVtbl->RegisterWaitHandleCallback(This,handle,handler,cookie)
+#define IDirectManipulationUpdateManager_UnregisterWaitHandleCallback(This,cookie) (This)->lpVtbl->UnregisterWaitHandleCallback(This,cookie)
+#define IDirectManipulationUpdateManager_Update(This,provider) (This)->lpVtbl->Update(This,provider)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationUpdateManager_QueryInterface(IDirectManipulationUpdateManager* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationUpdateManager_AddRef(IDirectManipulationUpdateManager* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationUpdateManager_Release(IDirectManipulationUpdateManager* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationUpdateManager methods ***/
+static FORCEINLINE HRESULT IDirectManipulationUpdateManager_RegisterWaitHandleCallback(IDirectManipulationUpdateManager* This,HANDLE handle,IDirectManipulationUpdateHandler *handler,DWORD *cookie) {
+    return This->lpVtbl->RegisterWaitHandleCallback(This,handle,handler,cookie);
+}
+static FORCEINLINE HRESULT IDirectManipulationUpdateManager_UnregisterWaitHandleCallback(IDirectManipulationUpdateManager* This,DWORD cookie) {
+    return This->lpVtbl->UnregisterWaitHandleCallback(This,cookie);
+}
+static FORCEINLINE HRESULT IDirectManipulationUpdateManager_Update(IDirectManipulationUpdateManager* This,IDirectManipulationFrameInfoProvider *provider) {
+    return This->lpVtbl->Update(This,provider);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationUpdateManager_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationCompositor interface
+ */
+#ifndef __IDirectManipulationCompositor_INTERFACE_DEFINED__
+#define __IDirectManipulationCompositor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationCompositor, 0x537a0825, 0x0387, 0x4efa, 0xb6,0x2f, 0x71,0xeb,0x1f,0x08,0x5a,0x7e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("537a0825-0387-4efa-b62f-71eb1f085a7e")
+IDirectManipulationCompositor : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AddContent(
+        IDirectManipulationContent *content,
+        IUnknown *device,
+        IUnknown *parent,
+        IUnknown *child) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveContent(
+        IDirectManipulationContent *content) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetUpdateManager(
+        IDirectManipulationUpdateManager *manager) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Flush(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationCompositor, 0x537a0825, 0x0387, 0x4efa, 0xb6,0x2f, 0x71,0xeb,0x1f,0x08,0x5a,0x7e)
+#endif
+#else
+typedef struct IDirectManipulationCompositorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationCompositor *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationCompositor *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationCompositor *This);
+
+    /*** IDirectManipulationCompositor methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddContent)(
+        IDirectManipulationCompositor *This,
+        IDirectManipulationContent *content,
+        IUnknown *device,
+        IUnknown *parent,
+        IUnknown *child);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveContent)(
+        IDirectManipulationCompositor *This,
+        IDirectManipulationContent *content);
+
+    HRESULT (STDMETHODCALLTYPE *SetUpdateManager)(
+        IDirectManipulationCompositor *This,
+        IDirectManipulationUpdateManager *manager);
+
+    HRESULT (STDMETHODCALLTYPE *Flush)(
+        IDirectManipulationCompositor *This);
+
+    END_INTERFACE
+} IDirectManipulationCompositorVtbl;
+
+interface IDirectManipulationCompositor {
+    CONST_VTBL IDirectManipulationCompositorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationCompositor_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationCompositor methods ***/
+#define IDirectManipulationCompositor_AddContent(This,content,device,parent,child) (This)->lpVtbl->AddContent(This,content,device,parent,child)
+#define IDirectManipulationCompositor_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
+#define IDirectManipulationCompositor_SetUpdateManager(This,manager) (This)->lpVtbl->SetUpdateManager(This,manager)
+#define IDirectManipulationCompositor_Flush(This) (This)->lpVtbl->Flush(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationCompositor_QueryInterface(IDirectManipulationCompositor* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationCompositor_AddRef(IDirectManipulationCompositor* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationCompositor_Release(IDirectManipulationCompositor* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationCompositor methods ***/
+static FORCEINLINE HRESULT IDirectManipulationCompositor_AddContent(IDirectManipulationCompositor* This,IDirectManipulationContent *content,IUnknown *device,IUnknown *parent,IUnknown *child) {
+    return This->lpVtbl->AddContent(This,content,device,parent,child);
+}
+static FORCEINLINE HRESULT IDirectManipulationCompositor_RemoveContent(IDirectManipulationCompositor* This,IDirectManipulationContent *content) {
+    return This->lpVtbl->RemoveContent(This,content);
+}
+static FORCEINLINE HRESULT IDirectManipulationCompositor_SetUpdateManager(IDirectManipulationCompositor* This,IDirectManipulationUpdateManager *manager) {
+    return This->lpVtbl->SetUpdateManager(This,manager);
+}
+static FORCEINLINE HRESULT IDirectManipulationCompositor_Flush(IDirectManipulationCompositor* This) {
+    return This->lpVtbl->Flush(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationCompositor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationViewport interface
+ */
+#ifndef __IDirectManipulationViewport_INTERFACE_DEFINED__
+#define __IDirectManipulationViewport_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationViewport, 0x28b85a3d, 0x60a0, 0x48bd, 0x9b,0xa1, 0x5c,0xe8,0xd9,0xea,0x3a,0x6d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("28b85a3d-60a0-48bd-9ba1-5ce8d9ea3a6d")
+IDirectManipulationViewport : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Enable(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Disable(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetContact(
+        UINT32 id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReleaseContact(
+        UINT32 id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReleaseAllContacts(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStatus(
+        DIRECTMANIPULATION_STATUS *status) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetTag(
+        REFIID riid,
+        void **object,
+        UINT32 *id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetTag(
+        IUnknown *object,
+        UINT32 id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetViewportRect(
+        RECT *viewport) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetViewportRect(
+        const RECT *viewport) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ZoomToRect(
+        const float left,
+        const float top,
+        const float right,
+        const float bottom,
+        WINBOOL animate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetViewportTransform(
+        const float *matrix,
+        DWORD count) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SyncDisplayTransform(
+        const float *matrix,
+        DWORD count) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPrimaryContent(
+        REFIID riid,
+        void **object) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddContent(
+        IDirectManipulationContent *content) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveContent(
+        IDirectManipulationContent *content) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetViewportOptions(
+        DIRECTMANIPULATION_VIEWPORT_OPTIONS options) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddConfiguration(
+        DIRECTMANIPULATION_CONFIGURATION configuration) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveConfiguration(
+        DIRECTMANIPULATION_CONFIGURATION configuration) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ActivateConfiguration(
+        DIRECTMANIPULATION_CONFIGURATION configuration) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetManualGesture(
+        DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetChaining(
+        DIRECTMANIPULATION_MOTION_TYPES enabledTypes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddEventHandler(
+        HWND window,
+        IDirectManipulationViewportEventHandler *eventHandler,
+        DWORD *cookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveEventHandler(
+        DWORD cookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetInputMode(
+        DIRECTMANIPULATION_INPUT_MODE mode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetUpdateMode(
+        DIRECTMANIPULATION_INPUT_MODE mode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Stop(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Abandon(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationViewport, 0x28b85a3d, 0x60a0, 0x48bd, 0x9b,0xa1, 0x5c,0xe8,0xd9,0xea,0x3a,0x6d)
+#endif
+#else
+typedef struct IDirectManipulationViewportVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationViewport *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationViewport *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationViewport *This);
+
+    /*** IDirectManipulationViewport methods ***/
+    HRESULT (STDMETHODCALLTYPE *Enable)(
+        IDirectManipulationViewport *This);
+
+    HRESULT (STDMETHODCALLTYPE *Disable)(
+        IDirectManipulationViewport *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetContact)(
+        IDirectManipulationViewport *This,
+        UINT32 id);
+
+    HRESULT (STDMETHODCALLTYPE *ReleaseContact)(
+        IDirectManipulationViewport *This,
+        UINT32 id);
+
+    HRESULT (STDMETHODCALLTYPE *ReleaseAllContacts)(
+        IDirectManipulationViewport *This);
+
+    HRESULT (STDMETHODCALLTYPE *GetStatus)(
+        IDirectManipulationViewport *This,
+        DIRECTMANIPULATION_STATUS *status);
+
+    HRESULT (STDMETHODCALLTYPE *GetTag)(
+        IDirectManipulationViewport *This,
+        REFIID riid,
+        void **object,
+        UINT32 *id);
+
+    HRESULT (STDMETHODCALLTYPE *SetTag)(
+        IDirectManipulationViewport *This,
+        IUnknown *object,
+        UINT32 id);
+
+    HRESULT (STDMETHODCALLTYPE *GetViewportRect)(
+        IDirectManipulationViewport *This,
+        RECT *viewport);
+
+    HRESULT (STDMETHODCALLTYPE *SetViewportRect)(
+        IDirectManipulationViewport *This,
+        const RECT *viewport);
+
+    HRESULT (STDMETHODCALLTYPE *ZoomToRect)(
+        IDirectManipulationViewport *This,
+        const float left,
+        const float top,
+        const float right,
+        const float bottom,
+        WINBOOL animate);
+
+    HRESULT (STDMETHODCALLTYPE *SetViewportTransform)(
+        IDirectManipulationViewport *This,
+        const float *matrix,
+        DWORD count);
+
+    HRESULT (STDMETHODCALLTYPE *SyncDisplayTransform)(
+        IDirectManipulationViewport *This,
+        const float *matrix,
+        DWORD count);
+
+    HRESULT (STDMETHODCALLTYPE *GetPrimaryContent)(
+        IDirectManipulationViewport *This,
+        REFIID riid,
+        void **object);
+
+    HRESULT (STDMETHODCALLTYPE *AddContent)(
+        IDirectManipulationViewport *This,
+        IDirectManipulationContent *content);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveContent)(
+        IDirectManipulationViewport *This,
+        IDirectManipulationContent *content);
+
+    HRESULT (STDMETHODCALLTYPE *SetViewportOptions)(
+        IDirectManipulationViewport *This,
+        DIRECTMANIPULATION_VIEWPORT_OPTIONS options);
+
+    HRESULT (STDMETHODCALLTYPE *AddConfiguration)(
+        IDirectManipulationViewport *This,
+        DIRECTMANIPULATION_CONFIGURATION configuration);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveConfiguration)(
+        IDirectManipulationViewport *This,
+        DIRECTMANIPULATION_CONFIGURATION configuration);
+
+    HRESULT (STDMETHODCALLTYPE *ActivateConfiguration)(
+        IDirectManipulationViewport *This,
+        DIRECTMANIPULATION_CONFIGURATION configuration);
+
+    HRESULT (STDMETHODCALLTYPE *SetManualGesture)(
+        IDirectManipulationViewport *This,
+        DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration);
+
+    HRESULT (STDMETHODCALLTYPE *SetChaining)(
+        IDirectManipulationViewport *This,
+        DIRECTMANIPULATION_MOTION_TYPES enabledTypes);
+
+    HRESULT (STDMETHODCALLTYPE *AddEventHandler)(
+        IDirectManipulationViewport *This,
+        HWND window,
+        IDirectManipulationViewportEventHandler *eventHandler,
+        DWORD *cookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveEventHandler)(
+        IDirectManipulationViewport *This,
+        DWORD cookie);
+
+    HRESULT (STDMETHODCALLTYPE *SetInputMode)(
+        IDirectManipulationViewport *This,
+        DIRECTMANIPULATION_INPUT_MODE mode);
+
+    HRESULT (STDMETHODCALLTYPE *SetUpdateMode)(
+        IDirectManipulationViewport *This,
+        DIRECTMANIPULATION_INPUT_MODE mode);
+
+    HRESULT (STDMETHODCALLTYPE *Stop)(
+        IDirectManipulationViewport *This);
+
+    HRESULT (STDMETHODCALLTYPE *Abandon)(
+        IDirectManipulationViewport *This);
+
+    END_INTERFACE
+} IDirectManipulationViewportVtbl;
+
+interface IDirectManipulationViewport {
+    CONST_VTBL IDirectManipulationViewportVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationViewport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationViewport_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationViewport_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationViewport methods ***/
+#define IDirectManipulationViewport_Enable(This) (This)->lpVtbl->Enable(This)
+#define IDirectManipulationViewport_Disable(This) (This)->lpVtbl->Disable(This)
+#define IDirectManipulationViewport_SetContact(This,id) (This)->lpVtbl->SetContact(This,id)
+#define IDirectManipulationViewport_ReleaseContact(This,id) (This)->lpVtbl->ReleaseContact(This,id)
+#define IDirectManipulationViewport_ReleaseAllContacts(This) (This)->lpVtbl->ReleaseAllContacts(This)
+#define IDirectManipulationViewport_GetStatus(This,status) (This)->lpVtbl->GetStatus(This,status)
+#define IDirectManipulationViewport_GetTag(This,riid,object,id) (This)->lpVtbl->GetTag(This,riid,object,id)
+#define IDirectManipulationViewport_SetTag(This,object,id) (This)->lpVtbl->SetTag(This,object,id)
+#define IDirectManipulationViewport_GetViewportRect(This,viewport) (This)->lpVtbl->GetViewportRect(This,viewport)
+#define IDirectManipulationViewport_SetViewportRect(This,viewport) (This)->lpVtbl->SetViewportRect(This,viewport)
+#define IDirectManipulationViewport_ZoomToRect(This,left,top,right,bottom,animate) (This)->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate)
+#define IDirectManipulationViewport_SetViewportTransform(This,matrix,count) (This)->lpVtbl->SetViewportTransform(This,matrix,count)
+#define IDirectManipulationViewport_SyncDisplayTransform(This,matrix,count) (This)->lpVtbl->SyncDisplayTransform(This,matrix,count)
+#define IDirectManipulationViewport_GetPrimaryContent(This,riid,object) (This)->lpVtbl->GetPrimaryContent(This,riid,object)
+#define IDirectManipulationViewport_AddContent(This,content) (This)->lpVtbl->AddContent(This,content)
+#define IDirectManipulationViewport_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
+#define IDirectManipulationViewport_SetViewportOptions(This,options) (This)->lpVtbl->SetViewportOptions(This,options)
+#define IDirectManipulationViewport_AddConfiguration(This,configuration) (This)->lpVtbl->AddConfiguration(This,configuration)
+#define IDirectManipulationViewport_RemoveConfiguration(This,configuration) (This)->lpVtbl->RemoveConfiguration(This,configuration)
+#define IDirectManipulationViewport_ActivateConfiguration(This,configuration) (This)->lpVtbl->ActivateConfiguration(This,configuration)
+#define IDirectManipulationViewport_SetManualGesture(This,configuration) (This)->lpVtbl->SetManualGesture(This,configuration)
+#define IDirectManipulationViewport_SetChaining(This,enabledTypes) (This)->lpVtbl->SetChaining(This,enabledTypes)
+#define IDirectManipulationViewport_AddEventHandler(This,window,eventHandler,cookie) (This)->lpVtbl->AddEventHandler(This,window,eventHandler,cookie)
+#define IDirectManipulationViewport_RemoveEventHandler(This,cookie) (This)->lpVtbl->RemoveEventHandler(This,cookie)
+#define IDirectManipulationViewport_SetInputMode(This,mode) (This)->lpVtbl->SetInputMode(This,mode)
+#define IDirectManipulationViewport_SetUpdateMode(This,mode) (This)->lpVtbl->SetUpdateMode(This,mode)
+#define IDirectManipulationViewport_Stop(This) (This)->lpVtbl->Stop(This)
+#define IDirectManipulationViewport_Abandon(This) (This)->lpVtbl->Abandon(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationViewport_QueryInterface(IDirectManipulationViewport* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationViewport_AddRef(IDirectManipulationViewport* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationViewport_Release(IDirectManipulationViewport* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationViewport methods ***/
+static FORCEINLINE HRESULT IDirectManipulationViewport_Enable(IDirectManipulationViewport* This) {
+    return This->lpVtbl->Enable(This);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_Disable(IDirectManipulationViewport* This) {
+    return This->lpVtbl->Disable(This);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_SetContact(IDirectManipulationViewport* This,UINT32 id) {
+    return This->lpVtbl->SetContact(This,id);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_ReleaseContact(IDirectManipulationViewport* This,UINT32 id) {
+    return This->lpVtbl->ReleaseContact(This,id);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_ReleaseAllContacts(IDirectManipulationViewport* This) {
+    return This->lpVtbl->ReleaseAllContacts(This);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_GetStatus(IDirectManipulationViewport* This,DIRECTMANIPULATION_STATUS *status) {
+    return This->lpVtbl->GetStatus(This,status);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_GetTag(IDirectManipulationViewport* This,REFIID riid,void **object,UINT32 *id) {
+    return This->lpVtbl->GetTag(This,riid,object,id);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_SetTag(IDirectManipulationViewport* This,IUnknown *object,UINT32 id) {
+    return This->lpVtbl->SetTag(This,object,id);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_GetViewportRect(IDirectManipulationViewport* This,RECT *viewport) {
+    return This->lpVtbl->GetViewportRect(This,viewport);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_SetViewportRect(IDirectManipulationViewport* This,const RECT *viewport) {
+    return This->lpVtbl->SetViewportRect(This,viewport);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_ZoomToRect(IDirectManipulationViewport* This,const float left,const float top,const float right,const float bottom,WINBOOL animate) {
+    return This->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_SetViewportTransform(IDirectManipulationViewport* This,const float *matrix,DWORD count) {
+    return This->lpVtbl->SetViewportTransform(This,matrix,count);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_SyncDisplayTransform(IDirectManipulationViewport* This,const float *matrix,DWORD count) {
+    return This->lpVtbl->SyncDisplayTransform(This,matrix,count);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_GetPrimaryContent(IDirectManipulationViewport* This,REFIID riid,void **object) {
+    return This->lpVtbl->GetPrimaryContent(This,riid,object);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_AddContent(IDirectManipulationViewport* This,IDirectManipulationContent *content) {
+    return This->lpVtbl->AddContent(This,content);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_RemoveContent(IDirectManipulationViewport* This,IDirectManipulationContent *content) {
+    return This->lpVtbl->RemoveContent(This,content);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_SetViewportOptions(IDirectManipulationViewport* This,DIRECTMANIPULATION_VIEWPORT_OPTIONS options) {
+    return This->lpVtbl->SetViewportOptions(This,options);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_AddConfiguration(IDirectManipulationViewport* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
+    return This->lpVtbl->AddConfiguration(This,configuration);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_RemoveConfiguration(IDirectManipulationViewport* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
+    return This->lpVtbl->RemoveConfiguration(This,configuration);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_ActivateConfiguration(IDirectManipulationViewport* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
+    return This->lpVtbl->ActivateConfiguration(This,configuration);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_SetManualGesture(IDirectManipulationViewport* This,DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration) {
+    return This->lpVtbl->SetManualGesture(This,configuration);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_SetChaining(IDirectManipulationViewport* This,DIRECTMANIPULATION_MOTION_TYPES enabledTypes) {
+    return This->lpVtbl->SetChaining(This,enabledTypes);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_AddEventHandler(IDirectManipulationViewport* This,HWND window,IDirectManipulationViewportEventHandler *eventHandler,DWORD *cookie) {
+    return This->lpVtbl->AddEventHandler(This,window,eventHandler,cookie);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_RemoveEventHandler(IDirectManipulationViewport* This,DWORD cookie) {
+    return This->lpVtbl->RemoveEventHandler(This,cookie);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_SetInputMode(IDirectManipulationViewport* This,DIRECTMANIPULATION_INPUT_MODE mode) {
+    return This->lpVtbl->SetInputMode(This,mode);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_SetUpdateMode(IDirectManipulationViewport* This,DIRECTMANIPULATION_INPUT_MODE mode) {
+    return This->lpVtbl->SetUpdateMode(This,mode);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_Stop(IDirectManipulationViewport* This) {
+    return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport_Abandon(IDirectManipulationViewport* This) {
+    return This->lpVtbl->Abandon(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationViewport_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationViewport2 interface
+ */
+#ifndef __IDirectManipulationViewport2_INTERFACE_DEFINED__
+#define __IDirectManipulationViewport2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationViewport2, 0x923ccaac, 0x61e1, 0x4385, 0xb7,0x26, 0x01,0x7a,0xf1,0x89,0x88,0x2a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("923ccaac-61e1-4385-b726-017af189882a")
+IDirectManipulationViewport2 : public IDirectManipulationViewport
+{
+    virtual HRESULT STDMETHODCALLTYPE AddBehavior(
+        IUnknown *behavior,
+        DWORD *cookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveBehavior(
+        DWORD cookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveAllBehaviors(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationViewport2, 0x923ccaac, 0x61e1, 0x4385, 0xb7,0x26, 0x01,0x7a,0xf1,0x89,0x88,0x2a)
+#endif
+#else
+typedef struct IDirectManipulationViewport2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationViewport2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationViewport2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationViewport2 *This);
+
+    /*** IDirectManipulationViewport methods ***/
+    HRESULT (STDMETHODCALLTYPE *Enable)(
+        IDirectManipulationViewport2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *Disable)(
+        IDirectManipulationViewport2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetContact)(
+        IDirectManipulationViewport2 *This,
+        UINT32 id);
+
+    HRESULT (STDMETHODCALLTYPE *ReleaseContact)(
+        IDirectManipulationViewport2 *This,
+        UINT32 id);
+
+    HRESULT (STDMETHODCALLTYPE *ReleaseAllContacts)(
+        IDirectManipulationViewport2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *GetStatus)(
+        IDirectManipulationViewport2 *This,
+        DIRECTMANIPULATION_STATUS *status);
+
+    HRESULT (STDMETHODCALLTYPE *GetTag)(
+        IDirectManipulationViewport2 *This,
+        REFIID riid,
+        void **object,
+        UINT32 *id);
+
+    HRESULT (STDMETHODCALLTYPE *SetTag)(
+        IDirectManipulationViewport2 *This,
+        IUnknown *object,
+        UINT32 id);
+
+    HRESULT (STDMETHODCALLTYPE *GetViewportRect)(
+        IDirectManipulationViewport2 *This,
+        RECT *viewport);
+
+    HRESULT (STDMETHODCALLTYPE *SetViewportRect)(
+        IDirectManipulationViewport2 *This,
+        const RECT *viewport);
+
+    HRESULT (STDMETHODCALLTYPE *ZoomToRect)(
+        IDirectManipulationViewport2 *This,
+        const float left,
+        const float top,
+        const float right,
+        const float bottom,
+        WINBOOL animate);
+
+    HRESULT (STDMETHODCALLTYPE *SetViewportTransform)(
+        IDirectManipulationViewport2 *This,
+        const float *matrix,
+        DWORD count);
+
+    HRESULT (STDMETHODCALLTYPE *SyncDisplayTransform)(
+        IDirectManipulationViewport2 *This,
+        const float *matrix,
+        DWORD count);
+
+    HRESULT (STDMETHODCALLTYPE *GetPrimaryContent)(
+        IDirectManipulationViewport2 *This,
+        REFIID riid,
+        void **object);
+
+    HRESULT (STDMETHODCALLTYPE *AddContent)(
+        IDirectManipulationViewport2 *This,
+        IDirectManipulationContent *content);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveContent)(
+        IDirectManipulationViewport2 *This,
+        IDirectManipulationContent *content);
+
+    HRESULT (STDMETHODCALLTYPE *SetViewportOptions)(
+        IDirectManipulationViewport2 *This,
+        DIRECTMANIPULATION_VIEWPORT_OPTIONS options);
+
+    HRESULT (STDMETHODCALLTYPE *AddConfiguration)(
+        IDirectManipulationViewport2 *This,
+        DIRECTMANIPULATION_CONFIGURATION configuration);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveConfiguration)(
+        IDirectManipulationViewport2 *This,
+        DIRECTMANIPULATION_CONFIGURATION configuration);
+
+    HRESULT (STDMETHODCALLTYPE *ActivateConfiguration)(
+        IDirectManipulationViewport2 *This,
+        DIRECTMANIPULATION_CONFIGURATION configuration);
+
+    HRESULT (STDMETHODCALLTYPE *SetManualGesture)(
+        IDirectManipulationViewport2 *This,
+        DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration);
+
+    HRESULT (STDMETHODCALLTYPE *SetChaining)(
+        IDirectManipulationViewport2 *This,
+        DIRECTMANIPULATION_MOTION_TYPES enabledTypes);
+
+    HRESULT (STDMETHODCALLTYPE *AddEventHandler)(
+        IDirectManipulationViewport2 *This,
+        HWND window,
+        IDirectManipulationViewportEventHandler *eventHandler,
+        DWORD *cookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveEventHandler)(
+        IDirectManipulationViewport2 *This,
+        DWORD cookie);
+
+    HRESULT (STDMETHODCALLTYPE *SetInputMode)(
+        IDirectManipulationViewport2 *This,
+        DIRECTMANIPULATION_INPUT_MODE mode);
+
+    HRESULT (STDMETHODCALLTYPE *SetUpdateMode)(
+        IDirectManipulationViewport2 *This,
+        DIRECTMANIPULATION_INPUT_MODE mode);
+
+    HRESULT (STDMETHODCALLTYPE *Stop)(
+        IDirectManipulationViewport2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *Abandon)(
+        IDirectManipulationViewport2 *This);
+
+    /*** IDirectManipulationViewport2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddBehavior)(
+        IDirectManipulationViewport2 *This,
+        IUnknown *behavior,
+        DWORD *cookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveBehavior)(
+        IDirectManipulationViewport2 *This,
+        DWORD cookie);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveAllBehaviors)(
+        IDirectManipulationViewport2 *This);
+
+    END_INTERFACE
+} IDirectManipulationViewport2Vtbl;
+
+interface IDirectManipulationViewport2 {
+    CONST_VTBL IDirectManipulationViewport2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationViewport2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationViewport2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationViewport2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationViewport methods ***/
+#define IDirectManipulationViewport2_Enable(This) (This)->lpVtbl->Enable(This)
+#define IDirectManipulationViewport2_Disable(This) (This)->lpVtbl->Disable(This)
+#define IDirectManipulationViewport2_SetContact(This,id) (This)->lpVtbl->SetContact(This,id)
+#define IDirectManipulationViewport2_ReleaseContact(This,id) (This)->lpVtbl->ReleaseContact(This,id)
+#define IDirectManipulationViewport2_ReleaseAllContacts(This) (This)->lpVtbl->ReleaseAllContacts(This)
+#define IDirectManipulationViewport2_GetStatus(This,status) (This)->lpVtbl->GetStatus(This,status)
+#define IDirectManipulationViewport2_GetTag(This,riid,object,id) (This)->lpVtbl->GetTag(This,riid,object,id)
+#define IDirectManipulationViewport2_SetTag(This,object,id) (This)->lpVtbl->SetTag(This,object,id)
+#define IDirectManipulationViewport2_GetViewportRect(This,viewport) (This)->lpVtbl->GetViewportRect(This,viewport)
+#define IDirectManipulationViewport2_SetViewportRect(This,viewport) (This)->lpVtbl->SetViewportRect(This,viewport)
+#define IDirectManipulationViewport2_ZoomToRect(This,left,top,right,bottom,animate) (This)->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate)
+#define IDirectManipulationViewport2_SetViewportTransform(This,matrix,count) (This)->lpVtbl->SetViewportTransform(This,matrix,count)
+#define IDirectManipulationViewport2_SyncDisplayTransform(This,matrix,count) (This)->lpVtbl->SyncDisplayTransform(This,matrix,count)
+#define IDirectManipulationViewport2_GetPrimaryContent(This,riid,object) (This)->lpVtbl->GetPrimaryContent(This,riid,object)
+#define IDirectManipulationViewport2_AddContent(This,content) (This)->lpVtbl->AddContent(This,content)
+#define IDirectManipulationViewport2_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
+#define IDirectManipulationViewport2_SetViewportOptions(This,options) (This)->lpVtbl->SetViewportOptions(This,options)
+#define IDirectManipulationViewport2_AddConfiguration(This,configuration) (This)->lpVtbl->AddConfiguration(This,configuration)
+#define IDirectManipulationViewport2_RemoveConfiguration(This,configuration) (This)->lpVtbl->RemoveConfiguration(This,configuration)
+#define IDirectManipulationViewport2_ActivateConfiguration(This,configuration) (This)->lpVtbl->ActivateConfiguration(This,configuration)
+#define IDirectManipulationViewport2_SetManualGesture(This,configuration) (This)->lpVtbl->SetManualGesture(This,configuration)
+#define IDirectManipulationViewport2_SetChaining(This,enabledTypes) (This)->lpVtbl->SetChaining(This,enabledTypes)
+#define IDirectManipulationViewport2_AddEventHandler(This,window,eventHandler,cookie) (This)->lpVtbl->AddEventHandler(This,window,eventHandler,cookie)
+#define IDirectManipulationViewport2_RemoveEventHandler(This,cookie) (This)->lpVtbl->RemoveEventHandler(This,cookie)
+#define IDirectManipulationViewport2_SetInputMode(This,mode) (This)->lpVtbl->SetInputMode(This,mode)
+#define IDirectManipulationViewport2_SetUpdateMode(This,mode) (This)->lpVtbl->SetUpdateMode(This,mode)
+#define IDirectManipulationViewport2_Stop(This) (This)->lpVtbl->Stop(This)
+#define IDirectManipulationViewport2_Abandon(This) (This)->lpVtbl->Abandon(This)
+/*** IDirectManipulationViewport2 methods ***/
+#define IDirectManipulationViewport2_AddBehavior(This,behavior,cookie) (This)->lpVtbl->AddBehavior(This,behavior,cookie)
+#define IDirectManipulationViewport2_RemoveBehavior(This,cookie) (This)->lpVtbl->RemoveBehavior(This,cookie)
+#define IDirectManipulationViewport2_RemoveAllBehaviors(This) (This)->lpVtbl->RemoveAllBehaviors(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationViewport2_QueryInterface(IDirectManipulationViewport2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationViewport2_AddRef(IDirectManipulationViewport2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationViewport2_Release(IDirectManipulationViewport2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationViewport methods ***/
+static FORCEINLINE HRESULT IDirectManipulationViewport2_Enable(IDirectManipulationViewport2* This) {
+    return This->lpVtbl->Enable(This);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_Disable(IDirectManipulationViewport2* This) {
+    return This->lpVtbl->Disable(This);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_SetContact(IDirectManipulationViewport2* This,UINT32 id) {
+    return This->lpVtbl->SetContact(This,id);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_ReleaseContact(IDirectManipulationViewport2* This,UINT32 id) {
+    return This->lpVtbl->ReleaseContact(This,id);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_ReleaseAllContacts(IDirectManipulationViewport2* This) {
+    return This->lpVtbl->ReleaseAllContacts(This);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_GetStatus(IDirectManipulationViewport2* This,DIRECTMANIPULATION_STATUS *status) {
+    return This->lpVtbl->GetStatus(This,status);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_GetTag(IDirectManipulationViewport2* This,REFIID riid,void **object,UINT32 *id) {
+    return This->lpVtbl->GetTag(This,riid,object,id);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_SetTag(IDirectManipulationViewport2* This,IUnknown *object,UINT32 id) {
+    return This->lpVtbl->SetTag(This,object,id);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_GetViewportRect(IDirectManipulationViewport2* This,RECT *viewport) {
+    return This->lpVtbl->GetViewportRect(This,viewport);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_SetViewportRect(IDirectManipulationViewport2* This,const RECT *viewport) {
+    return This->lpVtbl->SetViewportRect(This,viewport);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_ZoomToRect(IDirectManipulationViewport2* This,const float left,const float top,const float right,const float bottom,WINBOOL animate) {
+    return This->lpVtbl->ZoomToRect(This,left,top,right,bottom,animate);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_SetViewportTransform(IDirectManipulationViewport2* This,const float *matrix,DWORD count) {
+    return This->lpVtbl->SetViewportTransform(This,matrix,count);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_SyncDisplayTransform(IDirectManipulationViewport2* This,const float *matrix,DWORD count) {
+    return This->lpVtbl->SyncDisplayTransform(This,matrix,count);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_GetPrimaryContent(IDirectManipulationViewport2* This,REFIID riid,void **object) {
+    return This->lpVtbl->GetPrimaryContent(This,riid,object);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_AddContent(IDirectManipulationViewport2* This,IDirectManipulationContent *content) {
+    return This->lpVtbl->AddContent(This,content);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_RemoveContent(IDirectManipulationViewport2* This,IDirectManipulationContent *content) {
+    return This->lpVtbl->RemoveContent(This,content);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_SetViewportOptions(IDirectManipulationViewport2* This,DIRECTMANIPULATION_VIEWPORT_OPTIONS options) {
+    return This->lpVtbl->SetViewportOptions(This,options);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_AddConfiguration(IDirectManipulationViewport2* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
+    return This->lpVtbl->AddConfiguration(This,configuration);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_RemoveConfiguration(IDirectManipulationViewport2* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
+    return This->lpVtbl->RemoveConfiguration(This,configuration);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_ActivateConfiguration(IDirectManipulationViewport2* This,DIRECTMANIPULATION_CONFIGURATION configuration) {
+    return This->lpVtbl->ActivateConfiguration(This,configuration);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_SetManualGesture(IDirectManipulationViewport2* This,DIRECTMANIPULATION_GESTURE_CONFIGURATION configuration) {
+    return This->lpVtbl->SetManualGesture(This,configuration);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_SetChaining(IDirectManipulationViewport2* This,DIRECTMANIPULATION_MOTION_TYPES enabledTypes) {
+    return This->lpVtbl->SetChaining(This,enabledTypes);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_AddEventHandler(IDirectManipulationViewport2* This,HWND window,IDirectManipulationViewportEventHandler *eventHandler,DWORD *cookie) {
+    return This->lpVtbl->AddEventHandler(This,window,eventHandler,cookie);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_RemoveEventHandler(IDirectManipulationViewport2* This,DWORD cookie) {
+    return This->lpVtbl->RemoveEventHandler(This,cookie);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_SetInputMode(IDirectManipulationViewport2* This,DIRECTMANIPULATION_INPUT_MODE mode) {
+    return This->lpVtbl->SetInputMode(This,mode);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_SetUpdateMode(IDirectManipulationViewport2* This,DIRECTMANIPULATION_INPUT_MODE mode) {
+    return This->lpVtbl->SetUpdateMode(This,mode);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_Stop(IDirectManipulationViewport2* This) {
+    return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_Abandon(IDirectManipulationViewport2* This) {
+    return This->lpVtbl->Abandon(This);
+}
+/*** IDirectManipulationViewport2 methods ***/
+static FORCEINLINE HRESULT IDirectManipulationViewport2_AddBehavior(IDirectManipulationViewport2* This,IUnknown *behavior,DWORD *cookie) {
+    return This->lpVtbl->AddBehavior(This,behavior,cookie);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_RemoveBehavior(IDirectManipulationViewport2* This,DWORD cookie) {
+    return This->lpVtbl->RemoveBehavior(This,cookie);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewport2_RemoveAllBehaviors(IDirectManipulationViewport2* This) {
+    return This->lpVtbl->RemoveAllBehaviors(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationViewport2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationViewportEventHandler interface
+ */
+#ifndef __IDirectManipulationViewportEventHandler_INTERFACE_DEFINED__
+#define __IDirectManipulationViewportEventHandler_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationViewportEventHandler, 0x952121da, 0xd69f, 0x45f9, 0xb0,0xf9, 0xf2,0x39,0x44,0x32,0x1a,0x6d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("952121da-d69f-45f9-b0f9-f23944321a6d")
+IDirectManipulationViewportEventHandler : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnViewportStatusChanged(
+        IDirectManipulationViewport *viewport,
+        DIRECTMANIPULATION_STATUS current,
+        DIRECTMANIPULATION_STATUS previous) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnViewportUpdated(
+        IDirectManipulationViewport *viewport) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnContentUpdated(
+        IDirectManipulationViewport *viewport,
+        IDirectManipulationContent *content) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationViewportEventHandler, 0x952121da, 0xd69f, 0x45f9, 0xb0,0xf9, 0xf2,0x39,0x44,0x32,0x1a,0x6d)
+#endif
+#else
+typedef struct IDirectManipulationViewportEventHandlerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationViewportEventHandler *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationViewportEventHandler *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationViewportEventHandler *This);
+
+    /*** IDirectManipulationViewportEventHandler methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnViewportStatusChanged)(
+        IDirectManipulationViewportEventHandler *This,
+        IDirectManipulationViewport *viewport,
+        DIRECTMANIPULATION_STATUS current,
+        DIRECTMANIPULATION_STATUS previous);
+
+    HRESULT (STDMETHODCALLTYPE *OnViewportUpdated)(
+        IDirectManipulationViewportEventHandler *This,
+        IDirectManipulationViewport *viewport);
+
+    HRESULT (STDMETHODCALLTYPE *OnContentUpdated)(
+        IDirectManipulationViewportEventHandler *This,
+        IDirectManipulationViewport *viewport,
+        IDirectManipulationContent *content);
+
+    END_INTERFACE
+} IDirectManipulationViewportEventHandlerVtbl;
+
+interface IDirectManipulationViewportEventHandler {
+    CONST_VTBL IDirectManipulationViewportEventHandlerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationViewportEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationViewportEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationViewportEventHandler_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationViewportEventHandler methods ***/
+#define IDirectManipulationViewportEventHandler_OnViewportStatusChanged(This,viewport,current,previous) (This)->lpVtbl->OnViewportStatusChanged(This,viewport,current,previous)
+#define IDirectManipulationViewportEventHandler_OnViewportUpdated(This,viewport) (This)->lpVtbl->OnViewportUpdated(This,viewport)
+#define IDirectManipulationViewportEventHandler_OnContentUpdated(This,viewport,content) (This)->lpVtbl->OnContentUpdated(This,viewport,content)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationViewportEventHandler_QueryInterface(IDirectManipulationViewportEventHandler* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationViewportEventHandler_AddRef(IDirectManipulationViewportEventHandler* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationViewportEventHandler_Release(IDirectManipulationViewportEventHandler* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationViewportEventHandler methods ***/
+static FORCEINLINE HRESULT IDirectManipulationViewportEventHandler_OnViewportStatusChanged(IDirectManipulationViewportEventHandler* This,IDirectManipulationViewport *viewport,DIRECTMANIPULATION_STATUS current,DIRECTMANIPULATION_STATUS previous) {
+    return This->lpVtbl->OnViewportStatusChanged(This,viewport,current,previous);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewportEventHandler_OnViewportUpdated(IDirectManipulationViewportEventHandler* This,IDirectManipulationViewport *viewport) {
+    return This->lpVtbl->OnViewportUpdated(This,viewport);
+}
+static FORCEINLINE HRESULT IDirectManipulationViewportEventHandler_OnContentUpdated(IDirectManipulationViewportEventHandler* This,IDirectManipulationViewport *viewport,IDirectManipulationContent *content) {
+    return This->lpVtbl->OnContentUpdated(This,viewport,content);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationViewportEventHandler_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationManager2 interface
+ */
+#ifndef __IDirectManipulationManager2_INTERFACE_DEFINED__
+#define __IDirectManipulationManager2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationManager2, 0xfa1005e9, 0x3d16, 0x484c, 0xbf,0xc9, 0x62,0xb6,0x1e,0x56,0xec,0x4e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fa1005e9-3d16-484c-bfc9-62b61e56ec4e")
+IDirectManipulationManager2 : public IDirectManipulationManager
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateBehavior(
+        REFCLSID clsid,
+        REFIID riid,
+        void **obj) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationManager2, 0xfa1005e9, 0x3d16, 0x484c, 0xbf,0xc9, 0x62,0xb6,0x1e,0x56,0xec,0x4e)
+#endif
+#else
+typedef struct IDirectManipulationManager2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationManager2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationManager2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationManager2 *This);
+
+    /*** IDirectManipulationManager methods ***/
+    HRESULT (STDMETHODCALLTYPE *Activate)(
+        IDirectManipulationManager2 *This,
+        HWND window);
+
+    HRESULT (STDMETHODCALLTYPE *Deactivate)(
+        IDirectManipulationManager2 *This,
+        HWND window);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterHitTestTarget)(
+        IDirectManipulationManager2 *This,
+        HWND window,
+        HWND hittest,
+        DIRECTMANIPULATION_HITTEST_TYPE type);
+
+    HRESULT (STDMETHODCALLTYPE *ProcessInput)(
+        IDirectManipulationManager2 *This,
+        const MSG *msg,
+        WINBOOL *handled);
+
+    HRESULT (STDMETHODCALLTYPE *GetUpdateManager)(
+        IDirectManipulationManager2 *This,
+        REFIID riid,
+        void **obj);
+
+    HRESULT (STDMETHODCALLTYPE *CreateViewport)(
+        IDirectManipulationManager2 *This,
+        IDirectManipulationFrameInfoProvider *frame,
+        HWND window,
+        REFIID riid,
+        void **obj);
+
+    HRESULT (STDMETHODCALLTYPE *CreateContent)(
+        IDirectManipulationManager2 *This,
+        IDirectManipulationFrameInfoProvider *frame,
+        REFCLSID clsid,
+        REFIID riid,
+        void **obj);
+
+    /*** IDirectManipulationManager2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateBehavior)(
+        IDirectManipulationManager2 *This,
+        REFCLSID clsid,
+        REFIID riid,
+        void **obj);
+
+    END_INTERFACE
+} IDirectManipulationManager2Vtbl;
+
+interface IDirectManipulationManager2 {
+    CONST_VTBL IDirectManipulationManager2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationManager2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationManager2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationManager2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationManager methods ***/
+#define IDirectManipulationManager2_Activate(This,window) (This)->lpVtbl->Activate(This,window)
+#define IDirectManipulationManager2_Deactivate(This,window) (This)->lpVtbl->Deactivate(This,window)
+#define IDirectManipulationManager2_RegisterHitTestTarget(This,window,hittest,type) (This)->lpVtbl->RegisterHitTestTarget(This,window,hittest,type)
+#define IDirectManipulationManager2_ProcessInput(This,msg,handled) (This)->lpVtbl->ProcessInput(This,msg,handled)
+#define IDirectManipulationManager2_GetUpdateManager(This,riid,obj) (This)->lpVtbl->GetUpdateManager(This,riid,obj)
+#define IDirectManipulationManager2_CreateViewport(This,frame,window,riid,obj) (This)->lpVtbl->CreateViewport(This,frame,window,riid,obj)
+#define IDirectManipulationManager2_CreateContent(This,frame,clsid,riid,obj) (This)->lpVtbl->CreateContent(This,frame,clsid,riid,obj)
+/*** IDirectManipulationManager2 methods ***/
+#define IDirectManipulationManager2_CreateBehavior(This,clsid,riid,obj) (This)->lpVtbl->CreateBehavior(This,clsid,riid,obj)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationManager2_QueryInterface(IDirectManipulationManager2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationManager2_AddRef(IDirectManipulationManager2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationManager2_Release(IDirectManipulationManager2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationManager methods ***/
+static FORCEINLINE HRESULT IDirectManipulationManager2_Activate(IDirectManipulationManager2* This,HWND window) {
+    return This->lpVtbl->Activate(This,window);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager2_Deactivate(IDirectManipulationManager2* This,HWND window) {
+    return This->lpVtbl->Deactivate(This,window);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager2_RegisterHitTestTarget(IDirectManipulationManager2* This,HWND window,HWND hittest,DIRECTMANIPULATION_HITTEST_TYPE type) {
+    return This->lpVtbl->RegisterHitTestTarget(This,window,hittest,type);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager2_ProcessInput(IDirectManipulationManager2* This,const MSG *msg,WINBOOL *handled) {
+    return This->lpVtbl->ProcessInput(This,msg,handled);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager2_GetUpdateManager(IDirectManipulationManager2* This,REFIID riid,void **obj) {
+    return This->lpVtbl->GetUpdateManager(This,riid,obj);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager2_CreateViewport(IDirectManipulationManager2* This,IDirectManipulationFrameInfoProvider *frame,HWND window,REFIID riid,void **obj) {
+    return This->lpVtbl->CreateViewport(This,frame,window,riid,obj);
+}
+static FORCEINLINE HRESULT IDirectManipulationManager2_CreateContent(IDirectManipulationManager2* This,IDirectManipulationFrameInfoProvider *frame,REFCLSID clsid,REFIID riid,void **obj) {
+    return This->lpVtbl->CreateContent(This,frame,clsid,riid,obj);
+}
+/*** IDirectManipulationManager2 methods ***/
+static FORCEINLINE HRESULT IDirectManipulationManager2_CreateBehavior(IDirectManipulationManager2* This,REFCLSID clsid,REFIID riid,void **obj) {
+    return This->lpVtbl->CreateBehavior(This,clsid,riid,obj);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationManager2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationPrimaryContent interface
+ */
+#ifndef __IDirectManipulationPrimaryContent_INTERFACE_DEFINED__
+#define __IDirectManipulationPrimaryContent_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationPrimaryContent, 0xc12851e4, 0x1698, 0x4625, 0xb9,0xb1, 0x7c,0xa3,0xec,0x18,0x63,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c12851e4-1698-4625-b9b1-7ca3ec18630b")
+IDirectManipulationPrimaryContent : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetSnapInterval(
+        DIRECTMANIPULATION_MOTION_TYPES motion,
+        float interval,
+        float offset) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetSnapPoints(
+        DIRECTMANIPULATION_MOTION_TYPES motion,
+        const float *points,
+        DWORD count) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetSnapType(
+        DIRECTMANIPULATION_MOTION_TYPES motion,
+        DIRECTMANIPULATION_SNAPPOINT_TYPE type) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetSnapCoordinate(
+        DIRECTMANIPULATION_MOTION_TYPES motion,
+        DIRECTMANIPULATION_SNAPPOINT_COORDINATE coordinate,
+        float origin) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetZoomBoundaries(
+        float minimum,
+        float maximum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetHorizontalAlignment(
+        DIRECTMANIPULATION_HORIZONTALALIGNMENT alignment) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetVerticalAlignment(
+        DIRECTMANIPULATION_VERTICALALIGNMENT alignment) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetInertiaEndTransform(
+        float *matrix,
+        DWORD count) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCenterPoint(
+        float *x,
+        float *y) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationPrimaryContent, 0xc12851e4, 0x1698, 0x4625, 0xb9,0xb1, 0x7c,0xa3,0xec,0x18,0x63,0x0b)
+#endif
+#else
+typedef struct IDirectManipulationPrimaryContentVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationPrimaryContent *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationPrimaryContent *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationPrimaryContent *This);
+
+    /*** IDirectManipulationPrimaryContent methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetSnapInterval)(
+        IDirectManipulationPrimaryContent *This,
+        DIRECTMANIPULATION_MOTION_TYPES motion,
+        float interval,
+        float offset);
+
+    HRESULT (STDMETHODCALLTYPE *SetSnapPoints)(
+        IDirectManipulationPrimaryContent *This,
+        DIRECTMANIPULATION_MOTION_TYPES motion,
+        const float *points,
+        DWORD count);
+
+    HRESULT (STDMETHODCALLTYPE *SetSnapType)(
+        IDirectManipulationPrimaryContent *This,
+        DIRECTMANIPULATION_MOTION_TYPES motion,
+        DIRECTMANIPULATION_SNAPPOINT_TYPE type);
+
+    HRESULT (STDMETHODCALLTYPE *SetSnapCoordinate)(
+        IDirectManipulationPrimaryContent *This,
+        DIRECTMANIPULATION_MOTION_TYPES motion,
+        DIRECTMANIPULATION_SNAPPOINT_COORDINATE coordinate,
+        float origin);
+
+    HRESULT (STDMETHODCALLTYPE *SetZoomBoundaries)(
+        IDirectManipulationPrimaryContent *This,
+        float minimum,
+        float maximum);
+
+    HRESULT (STDMETHODCALLTYPE *SetHorizontalAlignment)(
+        IDirectManipulationPrimaryContent *This,
+        DIRECTMANIPULATION_HORIZONTALALIGNMENT alignment);
+
+    HRESULT (STDMETHODCALLTYPE *SetVerticalAlignment)(
+        IDirectManipulationPrimaryContent *This,
+        DIRECTMANIPULATION_VERTICALALIGNMENT alignment);
+
+    HRESULT (STDMETHODCALLTYPE *GetInertiaEndTransform)(
+        IDirectManipulationPrimaryContent *This,
+        float *matrix,
+        DWORD count);
+
+    HRESULT (STDMETHODCALLTYPE *GetCenterPoint)(
+        IDirectManipulationPrimaryContent *This,
+        float *x,
+        float *y);
+
+    END_INTERFACE
+} IDirectManipulationPrimaryContentVtbl;
+
+interface IDirectManipulationPrimaryContent {
+    CONST_VTBL IDirectManipulationPrimaryContentVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationPrimaryContent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationPrimaryContent_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationPrimaryContent_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationPrimaryContent methods ***/
+#define IDirectManipulationPrimaryContent_SetSnapInterval(This,motion,interval,offset) (This)->lpVtbl->SetSnapInterval(This,motion,interval,offset)
+#define IDirectManipulationPrimaryContent_SetSnapPoints(This,motion,points,count) (This)->lpVtbl->SetSnapPoints(This,motion,points,count)
+#define IDirectManipulationPrimaryContent_SetSnapType(This,motion,type) (This)->lpVtbl->SetSnapType(This,motion,type)
+#define IDirectManipulationPrimaryContent_SetSnapCoordinate(This,motion,coordinate,origin) (This)->lpVtbl->SetSnapCoordinate(This,motion,coordinate,origin)
+#define IDirectManipulationPrimaryContent_SetZoomBoundaries(This,minimum,maximum) (This)->lpVtbl->SetZoomBoundaries(This,minimum,maximum)
+#define IDirectManipulationPrimaryContent_SetHorizontalAlignment(This,alignment) (This)->lpVtbl->SetHorizontalAlignment(This,alignment)
+#define IDirectManipulationPrimaryContent_SetVerticalAlignment(This,alignment) (This)->lpVtbl->SetVerticalAlignment(This,alignment)
+#define IDirectManipulationPrimaryContent_GetInertiaEndTransform(This,matrix,count) (This)->lpVtbl->GetInertiaEndTransform(This,matrix,count)
+#define IDirectManipulationPrimaryContent_GetCenterPoint(This,x,y) (This)->lpVtbl->GetCenterPoint(This,x,y)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_QueryInterface(IDirectManipulationPrimaryContent* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationPrimaryContent_AddRef(IDirectManipulationPrimaryContent* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationPrimaryContent_Release(IDirectManipulationPrimaryContent* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationPrimaryContent methods ***/
+static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetSnapInterval(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,float interval,float offset) {
+    return This->lpVtbl->SetSnapInterval(This,motion,interval,offset);
+}
+static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetSnapPoints(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,const float *points,DWORD count) {
+    return This->lpVtbl->SetSnapPoints(This,motion,points,count);
+}
+static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetSnapType(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,DIRECTMANIPULATION_SNAPPOINT_TYPE type) {
+    return This->lpVtbl->SetSnapType(This,motion,type);
+}
+static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetSnapCoordinate(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_MOTION_TYPES motion,DIRECTMANIPULATION_SNAPPOINT_COORDINATE coordinate,float origin) {
+    return This->lpVtbl->SetSnapCoordinate(This,motion,coordinate,origin);
+}
+static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetZoomBoundaries(IDirectManipulationPrimaryContent* This,float minimum,float maximum) {
+    return This->lpVtbl->SetZoomBoundaries(This,minimum,maximum);
+}
+static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetHorizontalAlignment(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_HORIZONTALALIGNMENT alignment) {
+    return This->lpVtbl->SetHorizontalAlignment(This,alignment);
+}
+static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_SetVerticalAlignment(IDirectManipulationPrimaryContent* This,DIRECTMANIPULATION_VERTICALALIGNMENT alignment) {
+    return This->lpVtbl->SetVerticalAlignment(This,alignment);
+}
+static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_GetInertiaEndTransform(IDirectManipulationPrimaryContent* This,float *matrix,DWORD count) {
+    return This->lpVtbl->GetInertiaEndTransform(This,matrix,count);
+}
+static FORCEINLINE HRESULT IDirectManipulationPrimaryContent_GetCenterPoint(IDirectManipulationPrimaryContent* This,float *x,float *y) {
+    return This->lpVtbl->GetCenterPoint(This,x,y);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationPrimaryContent_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDirectManipulationCompositor2 interface
+ */
+#ifndef __IDirectManipulationCompositor2_INTERFACE_DEFINED__
+#define __IDirectManipulationCompositor2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDirectManipulationCompositor2, 0xd38c7822, 0xf1cb, 0x43cb, 0xb4,0xb9, 0xac,0x0c,0x76,0x7a,0x41,0x2e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d38c7822-f1cb-43cb-b4b9-ac0c767a412e")
+IDirectManipulationCompositor2 : public IDirectManipulationCompositor
+{
+    virtual HRESULT STDMETHODCALLTYPE AddContentWithCrossProcessChaining(
+        IDirectManipulationPrimaryContent *content,
+        IUnknown *device,
+        IUnknown *parentVisual,
+        IUnknown *childVisual) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDirectManipulationCompositor2, 0xd38c7822, 0xf1cb, 0x43cb, 0xb4,0xb9, 0xac,0x0c,0x76,0x7a,0x41,0x2e)
+#endif
+#else
+typedef struct IDirectManipulationCompositor2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDirectManipulationCompositor2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDirectManipulationCompositor2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDirectManipulationCompositor2 *This);
+
+    /*** IDirectManipulationCompositor methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddContent)(
+        IDirectManipulationCompositor2 *This,
+        IDirectManipulationContent *content,
+        IUnknown *device,
+        IUnknown *parent,
+        IUnknown *child);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveContent)(
+        IDirectManipulationCompositor2 *This,
+        IDirectManipulationContent *content);
+
+    HRESULT (STDMETHODCALLTYPE *SetUpdateManager)(
+        IDirectManipulationCompositor2 *This,
+        IDirectManipulationUpdateManager *manager);
+
+    HRESULT (STDMETHODCALLTYPE *Flush)(
+        IDirectManipulationCompositor2 *This);
+
+    /*** IDirectManipulationCompositor2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddContentWithCrossProcessChaining)(
+        IDirectManipulationCompositor2 *This,
+        IDirectManipulationPrimaryContent *content,
+        IUnknown *device,
+        IUnknown *parentVisual,
+        IUnknown *childVisual);
+
+    END_INTERFACE
+} IDirectManipulationCompositor2Vtbl;
+
+interface IDirectManipulationCompositor2 {
+    CONST_VTBL IDirectManipulationCompositor2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDirectManipulationCompositor2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDirectManipulationCompositor2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDirectManipulationCompositor2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDirectManipulationCompositor methods ***/
+#define IDirectManipulationCompositor2_AddContent(This,content,device,parent,child) (This)->lpVtbl->AddContent(This,content,device,parent,child)
+#define IDirectManipulationCompositor2_RemoveContent(This,content) (This)->lpVtbl->RemoveContent(This,content)
+#define IDirectManipulationCompositor2_SetUpdateManager(This,manager) (This)->lpVtbl->SetUpdateManager(This,manager)
+#define IDirectManipulationCompositor2_Flush(This) (This)->lpVtbl->Flush(This)
+/*** IDirectManipulationCompositor2 methods ***/
+#define IDirectManipulationCompositor2_AddContentWithCrossProcessChaining(This,content,device,parentVisual,childVisual) (This)->lpVtbl->AddContentWithCrossProcessChaining(This,content,device,parentVisual,childVisual)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDirectManipulationCompositor2_QueryInterface(IDirectManipulationCompositor2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDirectManipulationCompositor2_AddRef(IDirectManipulationCompositor2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDirectManipulationCompositor2_Release(IDirectManipulationCompositor2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDirectManipulationCompositor methods ***/
+static FORCEINLINE HRESULT IDirectManipulationCompositor2_AddContent(IDirectManipulationCompositor2* This,IDirectManipulationContent *content,IUnknown *device,IUnknown *parent,IUnknown *child) {
+    return This->lpVtbl->AddContent(This,content,device,parent,child);
+}
+static FORCEINLINE HRESULT IDirectManipulationCompositor2_RemoveContent(IDirectManipulationCompositor2* This,IDirectManipulationContent *content) {
+    return This->lpVtbl->RemoveContent(This,content);
+}
+static FORCEINLINE HRESULT IDirectManipulationCompositor2_SetUpdateManager(IDirectManipulationCompositor2* This,IDirectManipulationUpdateManager *manager) {
+    return This->lpVtbl->SetUpdateManager(This,manager);
+}
+static FORCEINLINE HRESULT IDirectManipulationCompositor2_Flush(IDirectManipulationCompositor2* This) {
+    return This->lpVtbl->Flush(This);
+}
+/*** IDirectManipulationCompositor2 methods ***/
+static FORCEINLINE HRESULT IDirectManipulationCompositor2_AddContentWithCrossProcessChaining(IDirectManipulationCompositor2* This,IDirectManipulationPrimaryContent *content,IUnknown *device,IUnknown *parentVisual,IUnknown *childVisual) {
+    return This->lpVtbl->AddContentWithCrossProcessChaining(This,content,device,parentVisual,childVisual);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDirectManipulationCompositor2_INTERFACE_DEFINED__ */
+
+#ifndef __DirectManipulation_LIBRARY_DEFINED__
+#define __DirectManipulation_LIBRARY_DEFINED__
+
+DEFINE_GUID(LIBID_DirectManipulation, 0x9fbedf98, 0xf6d8, 0x4e3b, 0xb4,0x88, 0xfa,0x66,0xdb,0xf5,0xe9,0xf3);
+
+/*****************************************************************************
+ * DirectManipulationManager coclass
+ */
+
+DEFINE_GUID(CLSID_DirectManipulationManager, 0x54e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("54e211b6-3650-4f75-8334-fa359598e1c5") DirectManipulationManager;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(DirectManipulationManager, 0x54e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5)
+#endif
+#endif
+
+/*****************************************************************************
+ * DirectManipulationSharedManager coclass
+ */
+
+DEFINE_GUID(CLSID_DirectManipulationSharedManager, 0x99793286, 0x77cc, 0x4b57, 0x96,0xdb, 0x3b,0x35,0x4f,0x6f,0x9f,0xb5);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("99793286-77cc-4b57-96db-3b354f6f9fb5") DirectManipulationSharedManager;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(DirectManipulationSharedManager, 0x99793286, 0x77cc, 0x4b57, 0x96,0xdb, 0x3b,0x35,0x4f,0x6f,0x9f,0xb5)
+#endif
+#endif
+
+/*****************************************************************************
+ * DCompManipulationCompositor coclass
+ */
+
+DEFINE_GUID(CLSID_DCompManipulationCompositor, 0x79dea627, 0xa08a, 0x43ac, 0x8e,0xf5, 0x69,0x00,0xb9,0x29,0x91,0x26);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("79dea627-a08a-43ac-8ef5-6900b9299126") DCompManipulationCompositor;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(DCompManipulationCompositor, 0x79dea627, 0xa08a, 0x43ac, 0x8e,0xf5, 0x69,0x00,0xb9,0x29,0x91,0x26)
+#endif
+#endif
+
+/*****************************************************************************
+ * DirectManipulationViewport coclass
+ */
+
+DEFINE_GUID(CLSID_DirectManipulationViewport, 0x34e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("34e211b6-3650-4f75-8334-fa359598e1c5") DirectManipulationViewport;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(DirectManipulationViewport, 0x34e211b6, 0x3650, 0x4f75, 0x83,0x34, 0xfa,0x35,0x95,0x98,0xe1,0xc5)
+#endif
+#endif
+
+#endif /* __DirectManipulation_LIBRARY_DEFINED__ */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __directmanipulation_h__ */
lib/libc/include/any-windows-any/directxmath.h
@@ -0,0 +1,326 @@
+/**
+ * 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 DIRECTXMATH_H
+#define DIRECTXMATH_H
+
+#ifndef __cplusplus
+#error DirectX Math requires C++
+#endif
+
+#include <stdint.h>
+
+#define DIRECTX_MATH_VERSION 314
+
+#define XM_CONST const
+#if __cplusplus >= 201103L
+#define XM_CONSTEXPR constexpr
+#else
+#define XM_CONSTEXPR
+#endif
+
+namespace DirectX {
+
+struct XMFLOAT2 {
+  float x, y;
+  XMFLOAT2() = default;
+  XMFLOAT2(const XMFLOAT2&) = default;
+  XMFLOAT2& operator=(const XMFLOAT2&) = default;
+  XMFLOAT2(XMFLOAT2&&) = default;
+  XMFLOAT2& operator=(XMFLOAT2&&) = default;
+  XM_CONSTEXPR XMFLOAT2(float _x, float _y) : x(_x), y(_y) {}
+  explicit XMFLOAT2(const float *pArray) : x(pArray[0]), y(pArray[1]) {}
+};
+
+struct __attribute__ ((__aligned__ (16))) XMFLOAT2A : public XMFLOAT2 {
+  XMFLOAT2A() = default;
+  XMFLOAT2A(const XMFLOAT2A&) = default;
+  XMFLOAT2A& operator=(const XMFLOAT2A&) = default;
+  XMFLOAT2A(XMFLOAT2A&&) = default;
+  XMFLOAT2A& operator=(XMFLOAT2A&&) = default;
+  XM_CONSTEXPR XMFLOAT2A(float _x, float _y) : XMFLOAT2(_x, _y) {}
+  explicit XMFLOAT2A(const float *pArray) : XMFLOAT2(pArray) {}
+};
+
+struct XMINT2 {
+  int32_t x, y;
+  XMINT2() = default;
+  XMINT2(const XMINT2&) = default;
+  XMINT2& operator=(const XMINT2&) = default;
+  XMINT2(XMINT2&&) = default;
+  XMINT2& operator=(XMINT2&&) = default;
+  XM_CONSTEXPR XMINT2(int32_t _x, int32_t _y) : x(_x), y(_y) {}
+  explicit XMINT2(const int32_t *pArray) : x(pArray[0]), y(pArray[1]) {}
+};
+
+struct XMUINT2 {
+  uint32_t x, y;
+  XMUINT2() = default;
+  XMUINT2(const XMUINT2&) = default;
+  XMUINT2& operator=(const XMUINT2&) = default;
+  XMUINT2(XMUINT2&&) = default;
+  XMUINT2& operator=(XMUINT2&&) = default;
+  XM_CONSTEXPR XMUINT2(uint32_t _x, uint32_t _y) : x(_x), y(_y) {}
+  explicit XMUINT2(const uint32_t *pArray) : x(pArray[0]), y(pArray[1]) {}
+};
+
+struct XMFLOAT3 {
+  float x, y, z;
+  XMFLOAT3() = default;
+  XMFLOAT3(const XMFLOAT3&) = default;
+  XMFLOAT3& operator=(const XMFLOAT3&) = default;
+  XMFLOAT3(XMFLOAT3&&) = default;
+  XMFLOAT3& operator=(XMFLOAT3&&) = default;
+  XM_CONSTEXPR XMFLOAT3(float _x, float _y, float _z) : x(_x), y(_y), z(_z) {}
+  explicit XMFLOAT3(const float *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
+};
+
+struct __attribute__ ((__aligned__ (16))) XMFLOAT3A : public XMFLOAT3 {
+  XMFLOAT3A() = default;
+  XMFLOAT3A(const XMFLOAT3A&) = default;
+  XMFLOAT3A& operator=(const XMFLOAT3A&) = default;
+  XMFLOAT3A(XMFLOAT3A&&) = default;
+  XMFLOAT3A& operator=(XMFLOAT3A&&) = default;
+  XM_CONSTEXPR XMFLOAT3A(float _x, float _y, float _z) : XMFLOAT3(_x, _y, _z) {}
+  explicit XMFLOAT3A(const float *pArray) : XMFLOAT3(pArray) {}
+};
+
+struct XMINT3 {
+  int32_t x, y, z;
+  XMINT3() = default;
+  XMINT3(const XMINT3&) = default;
+  XMINT3& operator=(const XMINT3&) = default;
+  XMINT3(XMINT3&&) = default;
+  XMINT3& operator=(XMINT3&&) = default;
+  XM_CONSTEXPR XMINT3(int32_t _x, int32_t _y, int32_t _z) : x(_x), y(_y), z(_z) {}
+  explicit XMINT3(const int32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
+};
+
+struct XMUINT3 {
+  uint32_t x, y, z;
+  XMUINT3() = default;
+  XMUINT3(const XMUINT3&) = default;
+  XMUINT3& operator=(const XMUINT3&) = default;
+  XMUINT3(XMUINT3&&) = default;
+  XMUINT3& operator=(XMUINT3&&) = default;
+  XM_CONSTEXPR XMUINT3(uint32_t _x, uint32_t _y, uint32_t _z) : x(_x), y(_y), z(_z) {}
+  explicit XMUINT3(const uint32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]) {}
+};
+
+struct XMFLOAT4 {
+  float x, y, z, w;
+  XMFLOAT4() = default;
+  XMFLOAT4(const XMFLOAT4&) = default;
+  XMFLOAT4& operator=(const XMFLOAT4&) = default;
+  XMFLOAT4(XMFLOAT4&&) = default;
+  XMFLOAT4& operator=(XMFLOAT4&&) = default;
+  XM_CONSTEXPR XMFLOAT4(float _x, float _y, float _z, float _w) : x(_x), y(_y), z(_z), w(_w) {}
+  explicit XMFLOAT4(const float *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
+};
+
+struct __attribute__ ((__aligned__ (16))) XMFLOAT4A : public XMFLOAT4 {
+  XMFLOAT4A() = default;
+  XMFLOAT4A(const XMFLOAT4A&) = default;
+  XMFLOAT4A& operator=(const XMFLOAT4A&) = default;
+  XMFLOAT4A(XMFLOAT4A&&) = default;
+  XMFLOAT4A& operator=(XMFLOAT4A&&) = default;
+  XM_CONSTEXPR XMFLOAT4A(float _x, float _y, float _z, float _w) : XMFLOAT4(_x, _y, _z, _w) {}
+  explicit XMFLOAT4A(const float *pArray) : XMFLOAT4(pArray) {}
+};
+
+struct XMINT4 {
+  int32_t x, y, z, w;
+  XMINT4() = default;
+  XMINT4(const XMINT4&) = default;
+  XMINT4& operator=(const XMINT4&) = default;
+  XMINT4(XMINT4&&) = default;
+  XMINT4& operator=(XMINT4&&) = default;
+  XM_CONSTEXPR XMINT4(int32_t _x, int32_t _y, int32_t _z, int32_t _w) : x(_x), y(_y), z(_z), w(_w) {}
+  explicit XMINT4(const int32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
+};
+
+struct XMUINT4 {
+  uint32_t x, y, z, w;
+  XMUINT4() = default;
+  XMUINT4(const XMUINT4&) = default;
+  XMUINT4& operator=(const XMUINT4&) = default;
+  XMUINT4(XMUINT4&&) = default;
+  XMUINT4& operator=(XMUINT4&&) = default;
+  XM_CONSTEXPR XMUINT4(uint32_t _x, uint32_t _y, uint32_t _z, uint32_t _w) : x(_x), y(_y), z(_z), w(_w) {}
+  explicit XMUINT4(const uint32_t *pArray) : x(pArray[0]), y(pArray[1]), z(pArray[2]), w(pArray[3]) {}
+};
+
+struct XMFLOAT3X3 {
+  union
+  {
+    struct
+    {
+      float _11, _12, _13;
+      float _21, _22, _23;
+      float _31, _32, _33;
+    };
+    float m[3][3];
+  };
+
+  XMFLOAT3X3() = default;
+  XMFLOAT3X3(const XMFLOAT3X3&) = default;
+  XMFLOAT3X3& operator=(const XMFLOAT3X3&) = default;
+  XMFLOAT3X3(XMFLOAT3X3&&) = default;
+  XMFLOAT3X3& operator=(XMFLOAT3X3&&) = default;
+  XM_CONSTEXPR XMFLOAT3X3(
+    float m00, float m01, float m02,
+    float m10, float m11, float m12,
+    float m20, float m21, float m22)
+    : _11(m00), _12(m01), _13(m02),
+      _21(m10), _22(m11), _23(m12),
+      _31(m20), _32(m21), _33(m22) {}
+  explicit XMFLOAT3X3(const float *pArray);
+  float operator() (size_t Row, size_t Column) const { return m[Row][Column]; }
+  float& operator() (size_t Row, size_t Column) { return m[Row][Column]; }
+  };
+
+struct XMFLOAT4X3 {
+  union
+  {
+    struct
+    {
+      float _11, _12, _13;
+      float _21, _22, _23;
+      float _31, _32, _33;
+      float _41, _42, _43;
+    };
+    float m[4][3];
+    float f[12];
+  };
+
+  XMFLOAT4X3() = default;
+  XMFLOAT4X3(const XMFLOAT4X3&) = default;
+  XMFLOAT4X3& operator=(const XMFLOAT4X3&) = default;
+  XMFLOAT4X3(XMFLOAT4X3&&) = default;
+  XMFLOAT4X3& operator=(XMFLOAT4X3&&) = default;
+  XM_CONSTEXPR XMFLOAT4X3(
+    float m00, float m01, float m02,
+    float m10, float m11, float m12,
+    float m20, float m21, float m22,
+    float m30, float m31, float m32)
+    : _11(m00), _12(m01), _13(m02),
+      _21(m10), _22(m11), _23(m12),
+      _31(m20), _32(m21), _33(m22),
+      _41(m30), _42(m31), _43(m32) {}
+  explicit XMFLOAT4X3(const float *pArray);
+  float operator() (size_t Row, size_t Column) const { return m[Row][Column]; }
+  float& operator() (size_t Row, size_t Column) { return m[Row][Column]; }
+};
+
+struct __attribute__ ((__aligned__ (16))) XMFLOAT4X3A : public XMFLOAT4X3 {
+  XMFLOAT4X3A() = default;
+  XMFLOAT4X3A(const XMFLOAT4X3A&) = default;
+  XMFLOAT4X3A& operator=(const XMFLOAT4X3A&) = default;
+  XMFLOAT4X3A(XMFLOAT4X3A&&) = default;
+  XMFLOAT4X3A& operator=(XMFLOAT4X3A&&) = default;
+  XM_CONSTEXPR XMFLOAT4X3A(
+    float m00, float m01, float m02,
+    float m10, float m11, float m12,
+    float m20, float m21, float m22,
+    float m30, float m31, float m32) :
+    XMFLOAT4X3(m00,m01,m02,m10,m11,m12,m20,m21,m22,m30,m31,m32) {}
+  explicit XMFLOAT4X3A(const float *pArray) : XMFLOAT4X3(pArray) {}
+};
+
+struct XMFLOAT3X4 {
+  union
+  {
+    struct
+    {
+      float _11, _12, _13, _14;
+      float _21, _22, _23, _24;
+      float _31, _32, _33, _34;
+    };
+    float m[3][4];
+    float f[12];
+  };
+
+  XMFLOAT3X4() = default;
+  XMFLOAT3X4(const XMFLOAT3X4&) = default;
+  XMFLOAT3X4& operator=(const XMFLOAT3X4&) = default;
+  XMFLOAT3X4(XMFLOAT3X4&&) = default;
+  XMFLOAT3X4& operator=(XMFLOAT3X4&&) = default;
+  XM_CONSTEXPR XMFLOAT3X4(
+    float m00, float m01, float m02, float m03,
+    float m10, float m11, float m12, float m13,
+    float m20, float m21, float m22, float m23)
+    : _11(m00), _12(m01), _13(m02), _14(m03),
+      _21(m10), _22(m11), _23(m12), _24(m13),
+      _31(m20), _32(m21), _33(m22), _34(m23) {}
+  explicit XMFLOAT3X4(const float *pArray);
+  float operator() (size_t Row, size_t Column) const { return m[Row][Column]; }
+  float& operator() (size_t Row, size_t Column) { return m[Row][Column]; }
+};
+
+struct __attribute__ ((__aligned__ (16))) XMFLOAT3X4A : public XMFLOAT3X4 {
+  XMFLOAT3X4A() = default;
+  XMFLOAT3X4A(const XMFLOAT3X4A&) = default;
+  XMFLOAT3X4A& operator=(const XMFLOAT3X4A&) = default;
+  XMFLOAT3X4A(XMFLOAT3X4A&&) = default;
+  XMFLOAT3X4A& operator=(XMFLOAT3X4A&&) = default;
+  XM_CONSTEXPR XMFLOAT3X4A(
+    float m00, float m01, float m02, float m03,
+    float m10, float m11, float m12, float m13,
+    float m20, float m21, float m22, float m23) :
+    XMFLOAT3X4(m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23) {}
+  explicit XMFLOAT3X4A(const float *pArray) : XMFLOAT3X4(pArray) {}
+};
+
+struct XMFLOAT4X4 {
+  union
+  {
+    struct
+    {
+      float _11, _12, _13, _14;
+      float _21, _22, _23, _24;
+      float _31, _32, _33, _34;
+      float _41, _42, _43, _44;
+    };
+    float m[4][4];
+  };
+
+  XMFLOAT4X4() = default;
+  XMFLOAT4X4(const XMFLOAT4X4&) = default;
+  XMFLOAT4X4& operator=(const XMFLOAT4X4&) = default;
+  XMFLOAT4X4(XMFLOAT4X4&&) = default;
+  XMFLOAT4X4& operator=(XMFLOAT4X4&&) = default;
+  XM_CONSTEXPR XMFLOAT4X4(
+    float m00, float m01, float m02, float m03,
+    float m10, float m11, float m12, float m13,
+    float m20, float m21, float m22, float m23,
+    float m30, float m31, float m32, float m33)
+    : _11(m00), _12(m01), _13(m02), _14(m03),
+      _21(m10), _22(m11), _23(m12), _24(m13),
+      _31(m20), _32(m21), _33(m22), _34(m23),
+      _41(m30), _42(m31), _43(m32), _44(m33) {}
+  explicit XMFLOAT4X4(const float *pArray);
+  float operator() (size_t Row, size_t Column) const { return m[Row][Column]; }
+  float& operator() (size_t Row, size_t Column) { return m[Row][Column]; }
+};
+
+struct __attribute__ ((__aligned__ (16))) XMFLOAT4X4A : public XMFLOAT4X4 {
+  XMFLOAT4X4A() = default;
+  XMFLOAT4X4A(const XMFLOAT4X4A&) = default;
+  XMFLOAT4X4A& operator=(const XMFLOAT4X4A&) = default;
+  XMFLOAT4X4A(XMFLOAT4X4A&&) = default;
+  XMFLOAT4X4A& operator=(XMFLOAT4X4A&&) = default;
+  XM_CONSTEXPR XMFLOAT4X4A(
+    float m00, float m01, float m02, float m03,
+    float m10, float m11, float m12, float m13,
+    float m20, float m21, float m22, float m23,
+    float m30, float m31, float m32, float m33)
+    : XMFLOAT4X4(m00,m01,m02,m03,m10,m11,m12,m13,m20,m21,m22,m23,m30,m31,m32,m33) {}
+  explicit XMFLOAT4X4A(const float *pArray) : XMFLOAT4X4(pArray) {}
+};
+
+} /* namespace DirectX */
+
+#endif /* DIRECTXMATH_H */
lib/libc/include/any-windows-any/dismapi.h
@@ -0,0 +1,383 @@
+/**
+ * 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 _DISMAPI_H_
+#define _DISMAPI_H_
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef UINT DismSession;
+
+typedef void(CALLBACK *DISM_PROGRESS_CALLBACK)(UINT Current, UINT Total, PVOID UserData);
+
+#define DISM_ONLINE_IMAGE L"DISM_{53BFAE52-B167-4E2F-A258-0A37B57FF845}"
+
+#define DISM_SESSION_DEFAULT 0
+
+#define DISM_MOUNT_READWRITE 0x00000000
+#define DISM_MOUNT_READONLY 0x00000001
+#define DISM_MOUNT_OPTIMIZE 0x00000002
+#define DISM_MOUNT_CHECK_INTEGRITY 0x00000004
+
+#define DISM_COMMIT_IMAGE 0x00000000
+#define DISM_DISCARD_IMAGE 0x00000001
+
+#define DISM_COMMIT_GENERATE_INTEGRITY 0x00010000
+#define DISM_COMMIT_APPEND 0x00020000
+#define DISM_COMMIT_MASK 0xffff0000
+
+/* https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism/dism-api-enumerations */
+
+typedef enum _DismLogLevel
+{
+    DismLogErrors = 0,
+    DismLogErrorsWarnings,
+    DismLogErrorsWarningsInfo
+} DismLogLevel;
+
+typedef enum _DismImageIdentifier
+{
+    DismImageIndex = 0,
+    DismImageName
+} DismImageIdentifier;
+
+typedef enum _DismMountMode
+{
+    DismReadWrite = 0,
+    DismReadOnly
+} DismMountMode;
+
+typedef enum _DismImageType
+{
+    DismImageTypeUnsupported = -1,
+    DismImageTypeWim = 0,
+    DismImageTypeVhd = 1
+} DismImageType;
+
+typedef enum _DismImageBootable
+{
+    DismImageBootableYes = 0,
+    DismImageBootableNo,
+    DismImageBootableUnknown
+} DismImageBootable;
+
+typedef enum _DismMountStatus
+{
+    DismMountStatusOk = 0,
+    DismMountStatusNeedsRemount,
+    DismMountStatusInvalid
+} DismMountStatus;
+
+typedef enum _DismImageHealthState
+{
+    DismImageHealthy = 0,
+    DismImageRepairable,
+    DismImageNonRepairable
+} DismImageHealthState;
+
+typedef enum _DismPackageIdentifier
+{
+    DismPackageNone = 0,
+    DismPackageName,
+    DismPackagePath
+} DismPackageIdentifier;
+
+typedef enum _DismPackageFeatureState
+{
+    DismStateNotPresent = 0,
+    DismStateUninstallPending,
+    DismStateStaged,
+    DismStateResolved,
+    DismStateRemoved = DismStateResolved,
+    DismStateInstalled,
+    DismStateInstallPending,
+    DismStateSuperseded,
+    DismStatePartiallyInstalled
+} DismPackageFeatureState;
+
+typedef enum _DismReleaseType
+{
+    DismReleaseTypeCriticalUpdate = 0,
+    DismReleaseTypeDriver,
+    DismReleaseTypeFeaturePack,
+    DismReleaseTypeHotfix,
+    DismReleaseTypeSecurityUpdate,
+    DismReleaseTypeSoftwareUpdate,
+    DismReleaseTypeUpdate,
+    DismReleaseTypeUpdateRollup,
+    DismReleaseTypeLanguagePack,
+    DismReleaseTypeFoundation,
+    DismReleaseTypeServicePack,
+    DismReleaseTypeProduct,
+    DismReleaseTypeLocalPack,
+    DismReleaseTypeOther,
+    DismReleaseTypeOnDemandPack
+} DismReleaseType;
+
+typedef enum _DismRestartType
+{
+    DismRestartNo = 0,
+    DismRestartPossible,
+    DismRestartRequired
+} DismRestartType;
+
+typedef enum _DismDriverSignature
+{
+    DismDriverSignatureUnknown = 0,
+    DismDriverSignatureUnsigned = 1,
+    DismDriverSignatureSigned = 2
+} DismDriverSignature;
+
+typedef enum _DismFullyOfflineInstallableType
+{
+    DismFullyOfflineInstallable = 0,
+    DismFullyOfflineNotInstallable,
+    DismFullyOfflineInstallableUndetermined
+} DismFullyOfflineInstallableType;
+
+/* https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism/dism-api-structures */
+
+#pragma pack(push, 1)
+
+typedef struct _DismPackage
+{
+    PCWSTR PackageName;
+    DismPackageFeatureState PackageState;
+    DismReleaseType ReleaseType;
+    SYSTEMTIME InstallTime;
+} DismPackage;
+
+typedef struct _DismCustomProperty
+{
+    PCWSTR Name;
+    PCWSTR Value;
+    PCWSTR Path;
+} DismCustomProperty;
+
+typedef struct _DismFeature
+{
+    PCWSTR FeatureName;
+    DismPackageFeatureState State;
+} DismFeature;
+
+typedef struct _DismCapability
+{
+    PCWSTR Name;
+    DismPackageFeatureState State;
+} DismCapability;
+
+typedef struct _DismPackageInfo
+{
+    PCWSTR PackageName;
+    DismPackageFeatureState PackageState;
+    DismReleaseType ReleaseType;
+    SYSTEMTIME InstallTime;
+    WINBOOL Applicable;
+    PCWSTR Copyright;
+    PCWSTR Company;
+    SYSTEMTIME CreationTime;
+    PCWSTR DisplayName;
+    PCWSTR Description;
+    PCWSTR InstallClient;
+    PCWSTR InstallPackageName;
+    SYSTEMTIME LastUpdateTime;
+    PCWSTR ProductName;
+    PCWSTR ProductVersion;
+    DismRestartType RestartRequired;
+    DismFullyOfflineInstallableType FullyOffline;
+    PCWSTR SupportInformation;
+    DismCustomProperty *CustomProperty;
+    UINT CustomPropertyCount;
+    DismFeature *Feature;
+    UINT FeatureCount;
+} DismPackageInfo;
+
+#ifdef __cplusplus
+typedef struct _DismPackageInfoEx : public _DismPackageInfo
+{
+#else
+typedef struct _DismPackageInfoEx
+{
+    DismPackageInfo;
+#endif
+    PCWSTR CapabilityId;
+} DismPackageInfoEx;
+
+typedef struct _DismFeatureInfo
+{
+    PCWSTR FeatureName;
+    DismPackageFeatureState FeatureState;
+    PCWSTR DisplayName;
+    PCWSTR Description;
+    DismRestartType RestartRequired;
+    DismCustomProperty *CustomProperty;
+    UINT CustomPropertyCount;
+} DismFeatureInfo;
+
+typedef struct _DismCapabilityInfo
+{
+    PCWSTR Name;
+    DismPackageFeatureState State;
+    PCWSTR DisplayName;
+    PCWSTR Description;
+    DWORD DownloadSize;
+    DWORD InstallSize;
+} DismCapabilityInfo;
+
+typedef struct _DismString
+{
+    PCWSTR Value;
+} DismString;
+
+typedef DismString DismLanguage;
+
+typedef struct _DismWimCustomizedInfo
+{
+    UINT Size;
+    UINT DirectoryCount;
+    UINT FileCount;
+    SYSTEMTIME CreatedTime;
+    SYSTEMTIME ModifiedTime;
+} DismWimCustomizedInfo;
+
+typedef struct _DismImageInfo
+{
+    DismImageType ImageType;
+    UINT ImageIndex;
+    PCWSTR ImageName;
+    PCWSTR ImageDescription;
+    UINT64 ImageSize;
+    UINT Architecture;
+    PCWSTR ProductName;
+    PCWSTR EditionId;
+    PCWSTR InstallationType;
+    PCWSTR Hal;
+    PCWSTR ProductType;
+    PCWSTR ProductSuite;
+    UINT MajorVersion;
+    UINT MinorVersion;
+    UINT Build;
+    UINT SpBuild;
+    UINT SpLevel;
+    DismImageBootable Bootable;
+    PCWSTR SystemRoot;
+    DismLanguage *Language;
+    UINT LanguageCount;
+    UINT DefaultLanguageIndex;
+    VOID *CustomizedInfo;
+} DismImageInfo;
+
+typedef struct _DismMountedImageInfo
+{
+    PCWSTR MountPath;
+    PCWSTR ImageFilePath;
+    UINT ImageIndex;
+    DismMountMode MountMode;
+    DismMountStatus MountStatus;
+} DismMountedImageInfo;
+
+typedef struct _DismDriverPackage
+{
+    PCWSTR PublishedName;
+    PCWSTR OriginalFileName;
+    WINBOOL InBox;
+    PCWSTR CatalogFile;
+    PCWSTR ClassName;
+    PCWSTR ClassGuid;
+    PCWSTR ClassDescription;
+    WINBOOL BootCritical;
+    DismDriverSignature DriverSignature;
+    PCWSTR ProviderName;
+    SYSTEMTIME Date;
+    UINT MajorVersion;
+    UINT MinorVersion;
+    UINT Build;
+    UINT Revision;
+} DismDriverPackage;
+
+typedef struct _DismDriver
+{
+    PCWSTR ManufacturerName;
+    PCWSTR HardwareDescription;
+    PCWSTR HardwareId;
+    UINT Architecture;
+    PCWSTR ServiceName;
+    PCWSTR CompatibleIds;
+    PCWSTR ExcludeIds;
+} DismDriver;
+
+#pragma pack(pop)
+
+/* https://docs.microsoft.com/en-us/windows-hardware/manufacture/desktop/dism/dism-api-functions */
+
+HRESULT WINAPI DismInitialize (DismLogLevel LogLevel, PCWSTR LogFilePath, PCWSTR ScratchDirectory);
+HRESULT WINAPI DismShutdown (void);
+HRESULT WINAPI DismMountImage (PCWSTR ImageFilePath, PCWSTR MountPath, UINT ImageIndex, PCWSTR ImageName, DismImageIdentifier ImageIdentifier, DWORD Flags, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
+HRESULT WINAPI DismUnmountImage (PCWSTR MountPath, DWORD Flags, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
+HRESULT WINAPI DismOpenSession (PCWSTR ImagePath, PCWSTR WindowsDirectory, PCWSTR SystemDrive, DismSession *Session);
+HRESULT WINAPI DismCloseSession (DismSession Session);
+HRESULT WINAPI DismGetLastErrorMessage (DismString **ErrorMessage);
+HRESULT WINAPI DismRemountImage (PCWSTR MountPath);
+HRESULT WINAPI DismCommitImage (DismSession Session, DWORD Flags, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
+HRESULT WINAPI DismGetImageInfo (PCWSTR ImageFilePath, DismImageInfo **ImageInfo, UINT *Count);
+HRESULT WINAPI DismGetMountedImageInfo (DismMountedImageInfo **MountedImageInfo, UINT *Count);
+HRESULT WINAPI DismCleanupMountpoints (void);
+HRESULT WINAPI DismCheckImageHealth (DismSession Session, WINBOOL ScanImage, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData, DismImageHealthState *ImageHealth);
+HRESULT WINAPI DismRestoreImageHealth (DismSession Session, PCWSTR *SourcePaths, UINT SourcePathCount, WINBOOL LimitAccess, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
+HRESULT WINAPI DismDelete (VOID *DismStructure);
+HRESULT WINAPI DismAddPackage (DismSession Session, PCWSTR PackagePath, WINBOOL IgnoreCheck, WINBOOL PreventPending, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
+HRESULT WINAPI DismRemovePackage (DismSession Session, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
+HRESULT WINAPI DismEnableFeature (DismSession Session, PCWSTR FeatureName, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, WINBOOL LimitAccess, PCWSTR *SourcePaths, UINT SourcePathCount, WINBOOL EnableAll, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
+HRESULT WINAPI DismDisableFeature (DismSession Session, PCWSTR FeatureName, PCWSTR PackageName, WINBOOL RemovePayload, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
+HRESULT WINAPI DismGetPackages (DismSession Session, DismPackage **Package, UINT *Count);
+HRESULT WINAPI DismGetPackageInfo (DismSession Session, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, DismPackageInfo **PackageInfo);
+HRESULT WINAPI DismGetPackageInfoEx (DismSession Session, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, DismPackageInfoEx **PackageInfoEx);
+HRESULT WINAPI DismGetFeatures (DismSession Session, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, DismFeature **Feature, UINT *Count);
+HRESULT WINAPI DismGetFeatureInfo (DismSession Session, PCWSTR FeatureName, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, DismFeatureInfo **FeatureInfo);
+HRESULT WINAPI DismGetFeatureParent (DismSession Session, PCWSTR FeatureName, PCWSTR Identifier, DismPackageIdentifier PackageIdentifier, DismFeature **Feature, UINT *Count);
+HRESULT WINAPI DismApplyUnattend (DismSession Session, PCWSTR UnattendFile, WINBOOL SingleSession);
+HRESULT WINAPI DismAddDriver (DismSession Session, PCWSTR DriverPath, WINBOOL ForceUnsigned);
+HRESULT WINAPI DismRemoveDriver (DismSession Session, PCWSTR DriverPath);
+HRESULT WINAPI DismGetDrivers (DismSession Session, WINBOOL AllDrivers, DismDriverPackage **DriverPackage, UINT *Count);
+HRESULT WINAPI DismGetDriverInfo (DismSession Session, PCWSTR DriverPath, DismDriver **Driver, UINT *Count, DismDriverPackage **DriverPackage);
+HRESULT WINAPI DismGetCapabilities (DismSession Session, DismCapability **Capability, UINT *Count);
+HRESULT WINAPI DismGetCapabilityInfo (DismSession Session, PCWSTR Name, DismCapabilityInfo **Info);
+HRESULT WINAPI DismAddCapability (DismSession Session, PCWSTR Name, WINBOOL LimitAccess, PCWSTR *SourcePaths, UINT SourcePathCount, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
+HRESULT WINAPI DismRemoveCapability (DismSession Session, PCWSTR Name, HANDLE CancelEvent, DISM_PROGRESS_CALLBACK Progress, PVOID UserData);
+
+#define DISMAPI_S_RELOAD_IMAGE_SESSION_REQUIRED 0x00000001
+#define DISMAPI_E_DISMAPI_NOT_INITIALIZED 0xc0040001
+#define DISMAPI_E_SHUTDOWN_IN_PROGRESS 0xc0040002
+#define DISMAPI_E_OPEN_SESSION_HANDLES 0xc0040003
+#define DISMAPI_E_INVALID_DISM_SESSION 0xc0040004
+#define DISMAPI_E_INVALID_IMAGE_INDEX 0xc0040005
+#define DISMAPI_E_INVALID_IMAGE_NAME 0xc0040006
+#define DISMAPI_E_UNABLE_TO_UNMOUNT_IMAGE_PATH 0xc0040007
+#define DISMAPI_E_LOGGING_DISABLED 0xc0040009
+#define DISMAPI_E_OPEN_HANDLES_UNABLE_TO_UNMOUNT_IMAGE_PATH 0xc004000a
+#define DISMAPI_E_OPEN_HANDLES_UNABLE_TO_MOUNT_IMAGE_PATH 0xc004000b
+#define DISMAPI_E_OPEN_HANDLES_UNABLE_TO_REMOUNT_IMAGE_PATH 0xc004000c
+#define DISMAPI_E_PARENT_FEATURE_DISABLED 0xc004000d
+#define DISMAPI_E_MUST_SPECIFY_ONLINE_IMAGE 0xc004000e
+#define DISMAPI_E_INVALID_PRODUCT_KEY 0xc004000f
+#define DISMAPI_E_NEEDS_REMOUNT 0xc1510114
+#define DISMAPI_E_UNKNOWN_FEATURE 0x800f080c
+#define DISMAPI_E_BUSY 0x800f0902
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+
+#endif /* _DISMAPI_H_ */
lib/libc/include/any-windows-any/dispex.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/dispex.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dispex.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dmemmgr.h
@@ -1,93 +1,45 @@
-
-/* $Id: $
- *
- * COPYRIGHT:            This file is in the public domain.
- * PROJECT:              ReactOS kernel
- * FILE:
- * PURPOSE:              Directx headers
- * PROGRAMMER:           Magnus Olsen (greatlrd)
- *
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
  */
 
 #ifndef __DMEMMGR_INCLUDED__
 #define __DMEMMGR_INCLUDED__
 
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include <winapifamily.h>
 
-#ifndef __NTDDKCOMP__
-
-#ifndef FLATPTR_DEFINED
-typedef ULONG_PTR FLATPTR;
-#define FLATPTR_DEFINED
-#endif
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
 
-typedef struct _VIDMEM *LPVIDMEM;
+#define VMEMHEAP_LINEAR __MSABI_LONG(0x1)
+#define VMEMHEAP_RECTANGULAR __MSABI_LONG(0x2)
+#define VMEMHEAP_ALIGNMENT __MSABI_LONG(0x4)
 
-#else /* __NTDDKCOMP__ */
+#define SURFACEALIGN_DISCARDABLE __MSABI_LONG(0x1)
 
-#ifndef FLATPTR_DEFINED
-typedef ULONG_PTR FLATPTR;
-#define FLATPTR_DEFINED
+#ifdef __cplusplus
+extern "C" {
 #endif
 
-typedef struct _VIDEOMEMORY *LPVIDMEM;
-#endif /* __NTDDKCOMP__ */
-
-#define SURFACEALIGN_DISCARDABLE 0x00000001
-#define VMEMHEAP_LINEAR 0x00000001
-#define VMEMHEAP_RECTANGULAR 0x00000002
-#define VMEMHEAP_ALIGNMENT 0x00000004
-
-typedef struct _VMEML
-{
-  struct _VMEML *next;
-  FLATPTR ptr;
-  DWORD size;
-  WINBOOL bDiscardable;
-} VMEML, *LPVMEML, *LPLPVMEML;
-
-typedef struct _VMEMR
-{
-  struct _VMEMR *next;
-  struct _VMEMR *prev;
-
-  struct _VMEMR *pUp;
-  struct _VMEMR *pDown;
-  struct _VMEMR *pLeft;
-  struct _VMEMR *pRight;
-  FLATPTR  ptr;
-  DWORD size;
-  DWORD x;
-  DWORD y;
-  DWORD cx;
-  DWORD cy;
-  DWORD flags;
-  FLATPTR pBits;
-  WINBOOL bDiscardable;
-} VMEMR,  *LPVMEMR,  *LPLPVMEMR;
-
-typedef struct _SURFACEALIGNMENT
-{
-  __GNU_EXTENSION union {
-    struct {
-      DWORD dwStartAlignment;
-      DWORD dwPitchAlignment;
-      DWORD dwFlags;
-      DWORD dwReserved2;
-    } Linear;
-    struct {
-      DWORD dwXAlignment;
-      DWORD dwYAlignment;
-      DWORD dwFlags;
-      DWORD dwReserved2;
-    } Rectangular;
-  };
-} SURFACEALIGNMENT, *LPSURFACEALIGNMENT;
-
-typedef struct _HEAPALIGNMENT
-{
+  typedef ULONG_PTR FLATPTR;
+
+  typedef struct _SURFACEALIGNMENT {
+    __C89_NAMELESS union {
+      struct {
+	DWORD dwStartAlignment;
+	DWORD dwPitchAlignment;
+	DWORD dwFlags;
+	DWORD dwReserved2;
+      } Linear;
+      struct {
+	DWORD dwXAlignment;
+	DWORD dwYAlignment;
+	DWORD dwFlags;
+	DWORD dwReserved2;
+      } Rectangular;
+    };
+  } SURFACEALIGNMENT;
+
+  typedef struct _HEAPALIGNMENT {
     DWORD dwSize;
     DDSCAPS ddsCaps;
     DWORD dwReserved;
@@ -98,10 +50,42 @@ typedef struct _HEAPALIGNMENT
     SURFACEALIGNMENT AlphaBuffer;
     SURFACEALIGNMENT Offscreen;
     SURFACEALIGNMENT FlipTarget;
-} HEAPALIGNMENT, *LPHEAPALIGNMENT;
+  } HEAPALIGNMENT;
 
-typedef struct _VMEMHEAP
-{
+  typedef struct _DD_GETHEAPALIGNMENTDATA {
+    ULONG_PTR dwInstance;
+    DWORD dwHeap;
+    HRESULT ddRVal;
+    VOID *GetHeapAlignment;
+    HEAPALIGNMENT Alignment;
+  } DD_GETHEAPALIGNMENTDATA;
+
+  typedef struct _VMEML {
+    struct _VMEML *next;
+    FLATPTR ptr;
+    DWORD size;
+    WINBOOL bDiscardable;
+  } VMEML,*LPVMEML,**LPLPVMEML;
+
+  typedef struct _VMEMR {
+    struct _VMEMR *next;
+    struct _VMEMR *prev;
+    struct _VMEMR *pUp;
+    struct _VMEMR *pDown;
+    struct _VMEMR *pLeft;
+    struct _VMEMR *pRight;
+    FLATPTR ptr;
+    DWORD size;
+    DWORD x;
+    DWORD y;
+    DWORD cx;
+    DWORD cy;
+    DWORD flags;
+    FLATPTR pBits;
+    WINBOOL bDiscardable;
+  } VMEMR,*LPVMEMR,**LPLPVMEMR;
+
+  typedef struct _VMEMHEAP {
     DWORD dwFlags;
     DWORD stride;
     LPVOID freeList;
@@ -119,38 +103,32 @@ typedef struct _VMEMHEAP
 #endif
     HANDLE hdevAGP;
     LPVOID pvPhysRsrv;
-    BYTE* pAgpCommitMask;
+#if NTDDI_VERSION >= 0x05010000
+    BYTE *pAgpCommitMask;
     DWORD dwAgpCommitMaskSize;
-} VMEMHEAP, *LPVMEMHEAP;
-
-typedef struct _DD_GETHEAPALIGNMENTDATA
-{
-    ULONG_PTR dwInstance;
-    DWORD dwHeap;
-    HRESULT ddRVal;
-    VOID* GetHeapAlignment;
-    HEAPALIGNMENT Alignment;
-} DD_GETHEAPALIGNMENTDATA;
+#endif
+  } VMEMHEAP;
 
-#ifndef DD_GETHEAPALIGNMENTDATA_DECLARED
-typedef DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
-#define DD_GETHEAPALIGNMENTDATA_DECLARED
+#ifndef __NTDDKCOMP__
+  typedef struct _VIDMEM *LPVIDMEM;
+#else
+  typedef struct _VIDEOMEMORY *LPVIDMEM;
 #endif
 
-extern void WINAPI VidMemFree (LPVMEMHEAP pvmh, FLATPTR ptr);
-extern FLATPTR WINAPI VidMemAlloc (LPVMEMHEAP pvmh, DWORD width, DWORD height);
+  typedef struct _SURFACEALIGNMENT *LPSURFACEALIGNMENT;
+  typedef struct _HEAPALIGNMENT *LPHEAPALIGNMENT;
+  typedef struct _DD_GETHEAPALIGNMENTDATA *PDD_GETHEAPALIGNMENTDATA;
+  typedef VMEMHEAP *LPVMEMHEAP;
 
-extern FLATPTR WINAPI
-       HeapVidMemAllocAligned(
-                               LPVIDMEM lpVidMem,
-                               DWORD dwWidth,
-                               DWORD dwHeight,
-                               LPSURFACEALIGNMENT lpAlignment,
-                               LPLONG lpNewPitch );
+#ifndef __NTDDKCOMP__
+  extern FLATPTR WINAPI VidMemAlloc (LPVMEMHEAP pvmh, DWORD width, DWORD height);
+#endif
+  extern FLATPTR WINAPI HeapVidMemAllocAligned (LPVIDMEM lpVidMem, DWORD dwWidth, DWORD dwHeight, LPSURFACEALIGNMENT lpAlignment, LPLONG lpNewPitch);
+  extern void WINAPI VidMemFree (LPVMEMHEAP pvmh, FLATPTR ptr);
 
 #ifdef __cplusplus
-}
+};
 #endif
 
-#endif /* __DMEMMGR_INCLUDED__ */
-
+#endif
+#endif
lib/libc/include/any-windows-any/dmodshow.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from direct-x/include/dmodshow.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dmodshow.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dmodshow.idl
@@ -1,34 +0,0 @@
-/* This file is part of the KDE project
-   Copyright (C) 2007 Shane King
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public
-   License as published by the Free Software Foundation; either
-   version 2 of the License, or (at your option) any later version.
-
-   This program 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public License
-   along with this program; see the file COPYING.  If not, write to
-   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.
-*/
-
-import "unknwn.idl";
-
-cpp_quote("DEFINE_GUID(CLSID_DMOWrapperFilter,  0x94297043, 0xbd82, 0x4dfd, 0xb0, 0xde, 0x81, 0x77, 0x73, 0x9c, 0x6d, 0x20);")
-
-[
-    object,
-    uuid(52d6f586-9f0f-4824-8fc8-e32ca04930c2)
-]
-interface IDMOWrapperFilter : IUnknown
-{
-    HRESULT Init(
-      REFCLSID clsidDMO,
-      REFCLSID catDMO
-    );
-}
lib/libc/include/any-windows-any/docobj.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/docobj.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/docobj.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -195,7 +195,7 @@ interface IProtectedModeMenuServices;
 
 typedef IOleDocument *LPOLEDOCUMENT;
 
-typedef enum __WIDL_docobj_generated_name_00000013 {
+typedef enum __WIDL_docobj_generated_name_00000020 {
     DOCMISC_CANCREATEMULTIPLEVIEWS = 1,
     DOCMISC_SUPPORTCOMPLEXRECTANGLES = 2,
     DOCMISC_CANTOPENEDIT = 4,
@@ -856,7 +856,7 @@ static FORCEINLINE HRESULT IContinueCallback_FContinuePrinting(IContinueCallback
 
 typedef IPrint *LPPRINT;
 
-typedef enum __WIDL_docobj_generated_name_00000014 {
+typedef enum __WIDL_docobj_generated_name_00000021 {
     PRINTFLAG_MAYBOTHERUSER = 1,
     PRINTFLAG_PROMPTUSER = 2,
     PRINTFLAG_USERMAYCHANGEPRINTER = 4,
lib/libc/include/any-windows-any/docobjectservice.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.19 from include/docobjectservice.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/docobjectservice.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/documenttarget.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/documenttarget.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/documenttarget.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -194,7 +194,7 @@ typedef enum PrintDocumentPackageCompletion {
     PrintDocumentPackageCompletion_Canceled = 2,
     PrintDocumentPackageCompletion_Failed = 3
 } PrintDocumentPackageCompletion;
-typedef struct __WIDL_documenttarget_generated_name_00000013 {
+typedef struct __WIDL_documenttarget_generated_name_00000020 {
     UINT32 JobId;
     INT32 CurrentDocument;
     INT32 CurrentPage;
@@ -413,6 +413,8 @@ static FORCEINLINE HRESULT IPrintDocumentPackageTargetFactory_CreateDocumentPack
 #endif  /* __IPrintDocumentPackageTargetFactory_INTERFACE_DEFINED__ */
 
 #endif
+#ifndef __PrintDocumentTargetLib_LIBRARY_DEFINED__
+#define __PrintDocumentTargetLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_PrintDocumentTargetLib, 0x410d76f7, 0x8bb5, 0x4a7d, 0x9d,0x37, 0x9c,0x71,0xb1,0xb1,0x4d,0x14);
 
@@ -470,6 +472,7 @@ __CRT_UUID_DECL(PrintDocumentPackageTargetFactory, 0x348ef17d, 0x6c81, 0x4982, 0
 #endif
 
 #endif
+#endif /* __PrintDocumentTargetLib_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/downloadmgr.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/downloadmgr.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/downloadmgr.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/drmexternals.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/drmexternals.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/drmexternals.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dvdif.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dvdif.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dvdif.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dvdmedia.h
@@ -22,6 +22,7 @@
 #define AMCONTROL_USED 0x00000001
 #define AMCONTROL_PAD_TO_4x3 0x00000002
 #define AMCONTROL_PAD_TO_16x9 0x00000004
+#define AMCONTROL_COLORINFO_PRESENT 0x00000080
 
 typedef struct tagVIDEOINFOHEADER2 {
     RECT rcSource;
lib/libc/include/any-windows-any/dvp.h
@@ -1,376 +0,0 @@
-
-/* $Id$
- *
- * COPYRIGHT:            This file is in the public domain.
- * PROJECT:              ReactOS kernel
- * FILE:
- * PURPOSE:              Directx headers
- * PROGRAMMER:           Magnus Olsen (greatlrd)
- *
- */
-
-#ifndef __DVP_INCLUDED__
-#define __DVP_INCLUDED__
-
-#if defined( _WIN32 )  && !defined( _NO_COM )
-DEFINE_GUID(IID_IDDVideoPortContainer, 0x6C142760,0xA733,0x11CE,0xA5,0x21,0x00,0x20,0xAF,0x0B,0xE5,0x60);
-DEFINE_GUID(IID_IDirectDrawVideoPort, 0xB36D93E0,0x2B43,0x11CF,0xA2,0xDE,0x00,0xAA,0x00,0xB9,0x33,0x56);
-DEFINE_GUID(IID_IDirectDrawVideoPortNotify, 0xA655FB94,0x0589,0x4E57,0xB3,0x33,0x56,0x7A,0x89,0x46,0x8C,0x88);
-
-DEFINE_GUID(DDVPTYPE_E_HREFH_VREFH, 0x54F39980L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-DEFINE_GUID(DDVPTYPE_E_HREFH_VREFL, 0x92783220L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-DEFINE_GUID(DDVPTYPE_E_HREFL_VREFH, 0xA07A02E0L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-DEFINE_GUID(DDVPTYPE_E_HREFL_VREFL, 0xE09C77E0L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-DEFINE_GUID(DDVPTYPE_CCIR656, 0xFCA326A0L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-DEFINE_GUID(DDVPTYPE_BROOKTREE, 0x1352A560L,0xDA61,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-DEFINE_GUID(DDVPTYPE_PHILIPS, 0x332CF160L,0xDA61,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8);
-#endif
-
-#ifndef GUID_DEFS_ONLY
-
-#if defined(_WIN32)  && !defined(_NO_COM)
-#define COM_NO_WINDOWS_H
-#include <objbase.h>
-#else
-#define IUnknown void
-#endif /* _WIN32 && !_NO_COM */
-
-#ifndef MAXULONG_PTR
-#define ULONG_PTR DWORD
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef struct _DDVIDEOPORTCONNECT
-{
-  DWORD dwSize;
-  DWORD dwPortWidth;
-  GUID guidTypeID;
-  DWORD dwFlags;
-  ULONG_PTR dwReserved1;
-} DDVIDEOPORTCONNECT, *LPDDVIDEOPORTCONNECT;
-
-typedef struct _DDVIDEOPORTDESC
-{
-  DWORD dwSize;
-  DWORD dwFieldWidth;
-  DWORD dwVBIWidth;
-  DWORD dwFieldHeight;
-  DWORD dwMicrosecondsPerField;
-  DWORD dwMaxPixelsPerSecond;
-  DWORD dwVideoPortID;
-  DWORD dwReserved1;
-  DDVIDEOPORTCONNECT VideoPortType;
-  ULONG_PTR dwReserved2;
-  ULONG_PTR dwReserved3;
-} DDVIDEOPORTDESC, *LPDDVIDEOPORTDESC;
-
-typedef struct _DDVIDEOPORTBANDWIDTH
-{
-  DWORD dwSize;
-  DWORD dwOverlay;
-  DWORD dwColorkey;
-  DWORD dwYInterpolate;
-  DWORD dwYInterpAndColorkey;
-  ULONG_PTR dwReserved1;
-  ULONG_PTR dwReserved2;
-} DDVIDEOPORTBANDWIDTH, *LPDDVIDEOPORTBANDWIDTH;
-
-typedef struct _DDVIDEOPORTCAPS
-{
-  DWORD dwSize;
-  DWORD dwFlags;
-  DWORD dwMaxWidth;
-  DWORD dwMaxVBIWidth;
-  DWORD dwMaxHeight;
-  DWORD dwVideoPortID;
-  DWORD dwCaps;
-  DWORD dwFX;
-  DWORD dwNumAutoFlipSurfaces;
-  DWORD dwAlignVideoPortBoundary;
-  DWORD dwAlignVideoPortPrescaleWidth;
-  DWORD dwAlignVideoPortCropBoundary;
-  DWORD dwAlignVideoPortCropWidth;
-  DWORD dwPreshrinkXStep;
-  DWORD dwPreshrinkYStep;
-  DWORD dwNumVBIAutoFlipSurfaces;
-  DWORD dwNumPreferredAutoflip;
-  WORD  wNumFilterTapsX;
-  WORD  wNumFilterTapsY;
-} DDVIDEOPORTCAPS, *LPDDVIDEOPORTCAPS;
-
-typedef struct _DDVIDEOPORTINFO
-{
-  DWORD dwSize;
-  DWORD dwOriginX;
-  DWORD dwOriginY;
-  DWORD dwVPFlags;
-  RECT rCrop;
-  DWORD dwPrescaleWidth;
-  DWORD dwPrescaleHeight;
-  LPDDPIXELFORMAT lpddpfInputFormat;
-  LPDDPIXELFORMAT lpddpfVBIInputFormat;
-  LPDDPIXELFORMAT lpddpfVBIOutputFormat;
-  DWORD dwVBIHeight;
-  ULONG_PTR dwReserved1;
-  ULONG_PTR dwReserved2;
-} DDVIDEOPORTINFO, *LPDDVIDEOPORTINFO;
-
-typedef struct _DDVIDEOPORTSTATUS
-{
-  DWORD dwSize;
-  WINBOOL bInUse;
-  DWORD dwFlags;
-  DWORD dwReserved1;
-  DDVIDEOPORTCONNECT VideoPortType;
-  ULONG_PTR dwReserved2;
-  ULONG_PTR dwReserved3;
-} DDVIDEOPORTSTATUS, *LPDDVIDEOPORTSTATUS;
-
-typedef struct _DDVIDEOPORTNOTIFY
-{
-  LARGE_INTEGER ApproximateTimeStamp;
-  LONG lField;
-  UINT dwSurfaceIndex;
-  LONG lDone;
-} DDVIDEOPORTNOTIFY, *LPDDVIDEOPORTNOTIFY;
-
-
-#define DDVPD_WIDTH				0x00000001
-#define DDVPD_HEIGHT				0x00000002
-#define DDVPD_ID				0x00000004
-#define DDVPD_CAPS				0x00000008
-#define DDVPD_FX				0x00000010
-#define DDVPD_AUTOFLIP				0x00000020
-#define DDVPD_ALIGN				0x00000040
-#define DDVPD_PREFERREDAUTOFLIP			0x00000080
-#define DDVPD_FILTERQUALITY			0x00000100
-#define DDVPCONNECT_DOUBLECLOCK			0x00000001
-#define DDVPCONNECT_VACT			0x00000002
-#define DDVPCONNECT_INVERTPOLARITY		0x00000004
-#define DDVPCONNECT_DISCARDSVREFDATA		0x00000008
-#define DDVPCONNECT_HALFLINE			0x00000010
-#define DDVPCONNECT_INTERLACED			0x00000020
-#define DDVPCONNECT_SHAREEVEN			0x00000040
-#define DDVPCONNECT_SHAREODD			0x00000080
-#define DDVPCAPS_AUTOFLIP			0x00000001
-#define DDVPCAPS_INTERLACED			0x00000002
-#define DDVPCAPS_NONINTERLACED			0x00000004
-#define DDVPCAPS_READBACKFIELD			0x00000008
-#define DDVPCAPS_READBACKLINE			0x00000010
-#define DDVPCAPS_SHAREABLE			0x00000020
-#define DDVPCAPS_SKIPEVENFIELDS			0x00000040
-#define DDVPCAPS_SKIPODDFIELDS			0x00000080
-#define DDVPCAPS_SYNCMASTER			0x00000100
-#define DDVPCAPS_VBISURFACE			0x00000200
-#define DDVPCAPS_COLORCONTROL			0x00000400
-#define DDVPCAPS_OVERSAMPLEDVBI			0x00000800
-#define DDVPCAPS_SYSTEMMEMORY			0x00001000
-#define DDVPCAPS_VBIANDVIDEOINDEPENDENT		0x00002000
-#define DDVPCAPS_HARDWAREDEINTERLACE		0x00004000
-#define DDVPFX_CROPTOPDATA			0x00000001
-#define DDVPFX_CROPX				0x00000002
-#define DDVPFX_CROPY				0x00000004
-#define DDVPFX_INTERLEAVE			0x00000008
-#define DDVPFX_MIRRORLEFTRIGHT			0x00000010
-#define DDVPFX_MIRRORUPDOWN			0x00000020
-#define DDVPFX_PRESHRINKX			0x00000040
-#define DDVPFX_PRESHRINKY			0x00000080
-#define DDVPFX_PRESHRINKXB			0x00000100
-#define DDVPFX_PRESHRINKYB			0x00000200
-#define DDVPFX_PRESHRINKXS			0x00000400
-#define DDVPFX_PRESHRINKYS			0x00000800
-#define DDVPFX_PRESTRETCHX			0x00001000
-#define DDVPFX_PRESTRETCHY			0x00002000
-#define DDVPFX_PRESTRETCHXN			0x00004000
-#define DDVPFX_PRESTRETCHYN			0x00008000
-#define DDVPFX_VBICONVERT			0x00010000
-#define DDVPFX_VBINOSCALE			0x00020000
-#define DDVPFX_IGNOREVBIXCROP			0x00040000
-#define DDVPFX_VBINOINTERLEAVE			0x00080000
-#define DDVP_AUTOFLIP				0x00000001
-#define DDVP_CONVERT				0x00000002
-#define DDVP_CROP				0x00000004
-#define DDVP_INTERLEAVE				0x00000008
-#define DDVP_MIRRORLEFTRIGHT			0x00000010
-#define DDVP_MIRRORUPDOWN			0x00000020
-#define DDVP_PRESCALE				0x00000040
-#define DDVP_SKIPEVENFIELDS			0x00000080
-#define DDVP_SKIPODDFIELDS			0x00000100
-#define DDVP_SYNCMASTER				0x00000200
-#define DDVP_VBICONVERT				0x00000400
-#define DDVP_VBINOSCALE				0x00000800
-#define DDVP_OVERRIDEBOBWEAVE			0x00001000
-#define DDVP_IGNOREVBIXCROP			0x00002000
-#define DDVP_VBINOINTERLEAVE			0x00004000
-#define DDVP_HARDWAREDEINTERLACE		0x00008000
-#define DDVPFORMAT_VIDEO			0x00000001
-#define DDVPFORMAT_VBI				0x00000002
-#define DDVPTARGET_VIDEO			0x00000001
-#define DDVPTARGET_VBI				0x00000002
-#define DDVPWAIT_BEGIN				0x00000001
-#define DDVPWAIT_END				0x00000002
-#define DDVPWAIT_LINE				0x00000003
-#define DDVPFLIP_VIDEO				0x00000001
-#define DDVPFLIP_VBI				0x00000002
-#define DDVPSQ_NOSIGNAL				0x00000001
-#define DDVPSQ_SIGNALOK				0x00000002
-#define DDVPB_VIDEOPORT				0x00000001
-#define DDVPB_OVERLAY				0x00000002
-#define DDVPB_TYPE				0x00000004
-#define DDVPBCAPS_SOURCE			0x00000001
-#define DDVPBCAPS_DESTINATION			0x00000002
-#define DDVPCREATE_VBIONLY			0x00000001
-#define DDVPCREATE_VIDEOONLY			0x00000002
-#define DDVPSTATUS_VBIONLY			0x00000001
-#define DDVPSTATUS_VIDEOONLY			0x00000002
-
-struct IDirectDraw;
-struct IDirectDrawSurface;
-struct IDirectDrawPalette;
-struct IDirectDrawClipper;
-typedef struct IDirectDrawVideoPort *LPDIRECTDRAWVIDEOPORT;
-typedef struct IDDVideoPortContainer *LPDDVIDEOPORTCONTAINER;
-typedef struct IDirectDrawVideoPortNotify *LPDIRECTDRAWVIDEOPORTNOTIFY;
-
-typedef struct IDDVideoPortContainerVtbl DDVIDEOPORTCONTAINERCALLBACKS;
-typedef struct IDirectDrawVideoPortVtbl DIRECTDRAWVIDEOPORTCALLBACKS;
-typedef struct IDirectDrawVideoPortNotifyVtbl DIRECTDRAWVIDEOPORTNOTIFYCALLBACKS;
-
-typedef HRESULT (*LPDDENUMVIDEOCALLBACK)(LPDDVIDEOPORTCAPS, LPVOID);
-
-
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDDVideoPortContainer
-DECLARE_INTERFACE_( IDDVideoPortContainer, IUnknown )
-{
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID *ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    STDMETHOD(CreateVideoPort)(THIS_ DWORD, LPDDVIDEOPORTDESC, LPDIRECTDRAWVIDEOPORT *, IUnknown *) PURE;
-    STDMETHOD(EnumVideoPorts)(THIS_ DWORD, LPDDVIDEOPORTCAPS, LPVOID,LPDDENUMVIDEOCALLBACK ) PURE;
-    STDMETHOD(GetVideoPortConnectInfo)(THIS_ DWORD, LPDWORD, LPDDVIDEOPORTCONNECT ) PURE;
-    STDMETHOD(QueryVideoPortStatus)(THIS_ DWORD, LPDDVIDEOPORTSTATUS ) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-# define IVideoPortContainer_QueryInterface(p, a, b)		(p)->lpVtbl->QueryInterface(p, a, b)
-# define IVideoPortContainer_AddRef(p)				(p)->lpVtbl->AddRef(p)
-# define IVideoPortContainer_Release(p)				(p)->lpVtbl->Release(p)
-# define IVideoPortContainer_CreateVideoPort(p, a, b, c, d)	(p)->lpVtbl->CreateVideoPort(p, a, b, c, d)
-# define IVideoPortContainer_EnumVideoPorts(p, a, b, c, d)	(p)->lpVtbl->EnumVideoPorts(p, a, b, c, d)
-# define IVideoPortContainer_GetVideoPortConnectInfo(p, a, b, c) (p)->lpVtbl->GetVideoPortConnectInfo(p, a, b, c)
-# define IVideoPortContainer_QueryVideoPortStatus(p, a, b)	(p)->lpVtbl->QueryVideoPortStatus(p, a, b)
-#else
-# define IVideoPortContainer_QueryInterface(p, a, b)		(p)->QueryInterface(a, b)
-# define IVideoPortContainer_AddRef(p)				(p)->AddRef()
-# define IVideoPortContainer_Release(p)				(p)->Release()
-# define IVideoPortContainer_CreateVideoPort(p, a, b, c, d)	(p)->CreateVideoPort(a, b, c, d)
-# define IVideoPortContainer_EnumVideoPorts(p, a, b, c, d)	(p)->EnumVideoPorts(a, b, c, d)
-# define IVideoPortContainer_GetVideoPortConnectInfo(p, a, b, c) (p)->GetVideoPortConnectInfo(a, b, c)
-# define IVideoPortContainer_QueryVideoPortStatus(p, a, b)	(p)->QueryVideoPortStatus(a, b)
-#endif /* !__cplusplus || defined(CINTERFACE) */
-#endif /* defined( _WIN32 ) && !defined( _NO_COM ) */
-
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawVideoPort
-DECLARE_INTERFACE_( IDirectDrawVideoPort, IUnknown )
-{
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    STDMETHOD(Flip)(THIS_ LPDIRECTDRAWSURFACE, DWORD) PURE;
-    STDMETHOD(GetBandwidthInfo)(THIS_ LPDDPIXELFORMAT, DWORD, DWORD, DWORD, LPDDVIDEOPORTBANDWIDTH) PURE;
-    STDMETHOD(GetColorControls)(THIS_ LPDDCOLORCONTROL) PURE;
-    STDMETHOD(GetInputFormats)(THIS_ LPDWORD, LPDDPIXELFORMAT, DWORD) PURE;
-    STDMETHOD(GetOutputFormats)(THIS_ LPDDPIXELFORMAT, LPDWORD, LPDDPIXELFORMAT, DWORD) PURE;
-    STDMETHOD(GetFieldPolarity)(THIS_ LPBOOL) PURE;
-    STDMETHOD(GetVideoLine)(THIS_ LPDWORD) PURE;
-    STDMETHOD(GetVideoSignalStatus)(THIS_ LPDWORD) PURE;
-    STDMETHOD(SetColorControls)(THIS_ LPDDCOLORCONTROL) PURE;
-    STDMETHOD(SetTargetSurface)(THIS_ LPDIRECTDRAWSURFACE, DWORD) PURE;
-    STDMETHOD(StartVideo)(THIS_ LPDDVIDEOPORTINFO) PURE;
-    STDMETHOD(StopVideo)(THIS) PURE;
-    STDMETHOD(UpdateVideo)(THIS_ LPDDVIDEOPORTINFO) PURE;
-    STDMETHOD(WaitForSync)(THIS_ DWORD, DWORD, DWORD) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-# define IVideoPort_QueryInterface(p,a,b)		(p)->lpVtbl->QueryInterface(p,a,b)
-# define IVideoPort_AddRef(p)				(p)->lpVtbl->AddRef(p)
-# define IVideoPort_Release(p)				(p)->lpVtbl->Release(p)
-# define IVideoPort_SetTargetSurface(p,a,b)		(p)->lpVtbl->SetTargetSurface(p,a,b)
-# define IVideoPort_Flip(p,a,b)				(p)->lpVtbl->Flip(p,a,b)
-# define IVideoPort_GetBandwidthInfo(p,a,b,c,d,e)	(p)->lpVtbl->GetBandwidthInfo(p,a,b,c,d,e)
-# define IVideoPort_GetColorControls(p,a) 		(p)->lpVtbl->GetColorControls(p,a)
-# define IVideoPort_GetInputFormats(p,a,b,c)		(p)->lpVtbl->GetInputFormats(p,a,b,c)
-# define IVideoPort_GetOutputFormats(p,a,b,c,d)		(p)->lpVtbl->GetOutputFormats(p,a,b,c,d)
-# define IVideoPort_GetFieldPolarity(p,a)		(p)->lpVtbl->GetFieldPolarity(p,a)
-# define IVideoPort_GetVideoLine(p,a)			(p)->lpVtbl->GetVideoLine(p,a)
-# define IVideoPort_GetVideoSignalStatus(p,a)		(p)->lpVtbl->GetVideoSignalStatus(p,a)
-# define IVideoPort_SetColorControls(p,a)		(p)->lpVtbl->SetColorControls(p,a)
-# define IVideoPort_StartVideo(p,a)			(p)->lpVtbl->StartVideo(p,a)
-# define IVideoPort_StopVideo(p)			(p)->lpVtbl->StopVideo(p)
-# define IVideoPort_UpdateVideo(p,a)			(p)->lpVtbl->UpdateVideo(p,a)
-# define IVideoPort_WaitForSync(p,a,b,c)		(p)->lpVtbl->WaitForSync(p,a,b,c)
-#else
-# define IVideoPort_QueryInterface(p,a,b)		(p)->QueryInterface(a,b)
-# define IVideoPort_AddRef(p)				(p)->AddRef()
-# define IVideoPort_Release(p)				(p)->Release()
-# define IVideoPort_SetTargetSurface(p,a,b)		(p)->SetTargetSurface(a,b)
-# define IVideoPort_Flip(p,a,b)				(p)->Flip(a,b)
-# define IVideoPort_GetBandwidthInfo(p,a,b,c,d,e)	(p)->GetBandwidthInfo(a,b,c,d,e)
-# define IVideoPort_GetColorControls(p,a) 		(p)->GetColorControls(a)
-# define IVideoPort_GetInputFormats(p,a,b,c)		(p)->GetInputFormats(a,b,c)
-# define IVideoPort_GetOutputFormats(p,a,b,c,d)		(p)->GetOutputFormats(a,b,c,d)
-# define IVideoPort_GetFieldPolarity(p,a)		(p)->GetFieldPolarity(a)
-# define IVideoPort_GetVideoLine(p,a)			(p)->GetVideoLine(a)
-# define IVideoPort_GetVideoSignalStatus(p,a)		(p)->GetVideoSignalStatus(a)
-# define IVideoPort_SetColorControls(p,a)		(p)->SetColorControls(a)
-# define IVideoPort_StartVideo(p,a)			(p)->StartVideo(a)
-# define IVideoPort_StopVideo(p)			(p)->StopVideo()
-# define IVideoPort_UpdateVideo(p,a)			(p)->UpdateVideo(a)
-# define IVideoPort_WaitForSync(p,a,b,c)		(p)->WaitForSync(a,b,c)
-#endif /* !__cplusplus || defined(CINTERFACE) */
-#endif /* defined( _WIN32 ) && !defined( _NO_COM ) */
-
-#if defined( _WIN32 ) && !defined( _NO_COM )
-#undef INTERFACE
-#define INTERFACE IDirectDrawVideoPortNotify
-
-DECLARE_INTERFACE_( IDirectDrawVideoPortNotify, IUnknown )
-{
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    STDMETHOD(AcquireNotification)(THIS_ HANDLE *, LPDDVIDEOPORTNOTIFY) PURE;
-    STDMETHOD(ReleaseNotification)(THIS_ HANDLE) PURE;
-};
-
-#if !defined(__cplusplus) || defined(CINTERFACE)
-# define IVideoPortNotify_QueryInterface(p,a,b)		(p)->lpVtbl->QueryInterface(p,a,b)
-# define IVideoPortNotify_AddRef(p)			(p)->lpVtbl->AddRef(p)
-# define IVideoPortNotify_Release(p)			(p)->lpVtbl->Release(p)
-# define IVideoPortNotify_AcquireNotification(p,a,b)	(p)->lpVtbl->AcquireNotification(p,a,b)
-# define IVideoPortNotify_ReleaseNotification(p,a)	(p)->lpVtbl->ReleaseNotification(p,a)
-#else
-# define IVideoPortNotify_QueryInterface(p,a,b)		(p)->QueryInterface(a,b)
-# define IVideoPortNotify_AddRef(p)			(p)->AddRef()
-# define IVideoPortNotify_Release(p)			(p)->Release()
-# define IVideoPortNotify_AcquireNotification(p,a,b)	(p)->lpVtbl->AcquireNotification(a,b)
-# define IVideoPortNotify_ReleaseNotification(p,a)	(p)->lpVtbl->ReleaseNotification(a)
-#endif /* !__cplusplus || defined(CINTERFACE) */
-#endif /* defined( _WIN32 ) && !defined( _NO_COM ) */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ! GUID_DEFS_ONLY */
-
-#endif /* __DVP_INCLUDED__ */
-
lib/libc/include/any-windows-any/dwrite.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dwrite.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dwrite.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dwrite_1.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dwrite_1.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dwrite_1.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dwrite_2.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dwrite_2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dwrite_2.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dwrite_3.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dwrite_3.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dwrite_3.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -454,6 +454,11 @@ typedef struct DWRITE_FONT_PROPERTY {
     const WCHAR *propertyValue;
     const WCHAR *localeName;
 } DWRITE_FONT_PROPERTY;
+#ifdef __cplusplus
+#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))
+#else
+#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d))
+#endif
 typedef enum DWRITE_FONT_AXIS_TAG {
     DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777,
     DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477,
@@ -5048,7 +5053,7 @@ IDWriteTextFormat3 : public IDWriteTextFormat2
         ) = 0;
 
     virtual HRESULT STDMETHODCALLTYPE GetFontAxisValues(
-        const DWRITE_FONT_AXIS_VALUE *axis_values,
+        DWRITE_FONT_AXIS_VALUE *axis_values,
         UINT32 num_values) = 0;
 
     virtual DWRITE_AUTOMATIC_FONT_AXES STDMETHODCALLTYPE GetAutomaticFontAxes(
@@ -5224,7 +5229,7 @@ typedef struct IDWriteTextFormat3Vtbl {
 
     HRESULT (STDMETHODCALLTYPE *GetFontAxisValues)(
         IDWriteTextFormat3 *This,
-        const DWRITE_FONT_AXIS_VALUE *axis_values,
+        DWRITE_FONT_AXIS_VALUE *axis_values,
         UINT32 num_values);
 
     DWRITE_AUTOMATIC_FONT_AXES (STDMETHODCALLTYPE *GetAutomaticFontAxes)(
@@ -5409,7 +5414,7 @@ static FORCEINLINE HRESULT IDWriteTextFormat3_SetFontAxisValues(IDWriteTextForma
 static FORCEINLINE UINT32 IDWriteTextFormat3_GetFontAxisValueCount(IDWriteTextFormat3* This) {
     return This->lpVtbl->GetFontAxisValueCount(This);
 }
-static FORCEINLINE HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) {
+static FORCEINLINE HRESULT IDWriteTextFormat3_GetFontAxisValues(IDWriteTextFormat3* This,DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_values) {
     return This->lpVtbl->GetFontAxisValues(This,axis_values,num_values);
 }
 static FORCEINLINE DWRITE_AUTOMATIC_FONT_AXES IDWriteTextFormat3_GetAutomaticFontAxes(IDWriteTextFormat3* This) {
lib/libc/include/any-windows-any/dxgi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dxgi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxgi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi.idl
@@ -1,503 +0,0 @@
-/*
- * Copyright 2007 Andras Kovacs
- *
- * 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 "dxgitype.idl";
-
-const UINT _FACDXGI = 0x87a;
-
-cpp_quote("#define MAKE_DXGI_STATUS(x)                         MAKE_HRESULT(0, _FACDXGI, x)")
-cpp_quote("#define MAKE_DXGI_HRESULT(x)                        MAKE_HRESULT(1, _FACDXGI, x)")
-
-cpp_quote("#if 0")
-typedef HANDLE HMONITOR;
-typedef struct _LUID {
-    DWORD LowPart;
-    LONG HighPart;
-} LUID, *PLUID;
-cpp_quote("#endif")
-
-const UINT DXGI_CPU_ACCESS_NONE                     = 0;
-const UINT DXGI_CPU_ACCESS_DYNAMIC                  = 1;
-const UINT DXGI_CPU_ACCESS_READ_WRITE               = 2;
-const UINT DXGI_CPU_ACCESS_SCRATCH                  = 3;
-const UINT DXGI_CPU_ACCESS_FIELD                    = 15;
-
-typedef UINT DXGI_USAGE;
-const DXGI_USAGE DXGI_USAGE_SHADER_INPUT            = 0x10L;
-const DXGI_USAGE DXGI_USAGE_RENDER_TARGET_OUTPUT    = 0x20L;
-const DXGI_USAGE DXGI_USAGE_BACK_BUFFER             = 0x40L;
-const DXGI_USAGE DXGI_USAGE_SHARED                  = 0x80L;
-const DXGI_USAGE DXGI_USAGE_READ_ONLY               = 0x100L;
-const DXGI_USAGE DXGI_USAGE_DISCARD_ON_PRESENT      = 0x200L;
-const DXGI_USAGE DXGI_USAGE_UNORDERED_ACCESS        = 0x400L;
-
-const UINT DXGI_ENUM_MODES_INTERLACED               = 1;
-const UINT DXGI_ENUM_MODES_SCALING                  = 2;
-
-const UINT DXGI_RESOURCE_PRIORITY_MINIMUM           = 0x28000000;
-const UINT DXGI_RESOURCE_PRIORITY_LOW               = 0x50000000;
-const UINT DXGI_RESOURCE_PRIORITY_NORMAL            = 0x78000000;
-const UINT DXGI_RESOURCE_PRIORITY_HIGH              = 0xa0000000;
-const UINT DXGI_RESOURCE_PRIORITY_MAXIMUM           = 0xc8000000;
-
-const UINT DXGI_MAP_READ                            = 0x1;
-const UINT DXGI_MAP_WRITE                           = 0x2;
-const UINT DXGI_MAP_DISCARD                         = 0x4;
-
-typedef enum DXGI_SWAP_EFFECT {
-    DXGI_SWAP_EFFECT_DISCARD    = 0,
-    DXGI_SWAP_EFFECT_SEQUENTIAL = 1,
-    DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL = 3,
-    DXGI_SWAP_EFFECT_FLIP_DISCARD = 4
-} DXGI_SWAP_EFFECT;
-
-typedef enum DXGI_RESIDENCY {
-    DXGI_RESIDENCY_FULLY_RESIDENT               = 1,
-    DXGI_RESIDENCY_RESIDENT_IN_SHARED_MEMORY    = 2,
-    DXGI_RESIDENCY_EVICTED_TO_DISK              = 3,
-} DXGI_RESIDENCY;
-
-typedef struct DXGI_SURFACE_DESC {
-    UINT Width;
-    UINT Height;
-    DXGI_FORMAT Format;
-    DXGI_SAMPLE_DESC SampleDesc;
-} DXGI_SURFACE_DESC;
-
-typedef struct DXGI_MAPPED_RECT {
-    INT Pitch;
-    BYTE *pBits;
-} DXGI_MAPPED_RECT;
-
-typedef struct DXGI_OUTPUT_DESC {
-    WCHAR DeviceName[32];
-    RECT DesktopCoordinates;
-    BOOL AttachedToDesktop;
-    DXGI_MODE_ROTATION Rotation;
-    HMONITOR Monitor;
-} DXGI_OUTPUT_DESC;
-
-typedef struct DXGI_FRAME_STATISTICS {
-    UINT PresentCount;
-    UINT PresentRefreshCount;
-    UINT SyncRefreshCount;
-    LARGE_INTEGER SyncQPCTime;
-    LARGE_INTEGER SyncGPUTime;
-} DXGI_FRAME_STATISTICS;
-
-typedef struct DXGI_ADAPTER_DESC {
-    WCHAR Description[128];
-    UINT VendorId;
-    UINT DeviceId;
-    UINT SubSysId;
-    UINT Revision;
-    SIZE_T DedicatedVideoMemory;
-    SIZE_T DedicatedSystemMemory;
-    SIZE_T SharedSystemMemory;
-    LUID AdapterLuid;
-} DXGI_ADAPTER_DESC;
-
-typedef enum DXGI_SWAP_CHAIN_FLAG
-{
-    DXGI_SWAP_CHAIN_FLAG_NONPREROTATED                          = 0x0001,
-    DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH                      = 0x0002,
-    DXGI_SWAP_CHAIN_FLAG_GDI_COMPATIBLE                         = 0x0004,
-    DXGI_SWAP_CHAIN_FLAG_RESTRICTED_CONTENT                     = 0x0008,
-    DXGI_SWAP_CHAIN_FLAG_RESTRICT_SHARED_RESOURCE_DRIVER        = 0x0010,
-    DXGI_SWAP_CHAIN_FLAG_DISPLAY_ONLY                           = 0x0020,
-    DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT          = 0x0040,
-    DXGI_SWAP_CHAIN_FLAG_FOREGROUND_LAYER                       = 0x0080,
-    DXGI_SWAP_CHAIN_FLAG_FULLSCREEN_VIDEO                       = 0x0100,
-    DXGI_SWAP_CHAIN_FLAG_YUV_VIDEO                              = 0x0200,
-    DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED                           = 0x0400,
-    DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING                          = 0x0800,
-    DXGI_SWAP_CHAIN_FLAG_RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS = 0x1000,
-} DXGI_SWAP_CHAIN_FLAG;
-
-typedef struct DXGI_SWAP_CHAIN_DESC {
-    DXGI_MODE_DESC BufferDesc;
-    DXGI_SAMPLE_DESC SampleDesc;
-    DXGI_USAGE BufferUsage;
-    UINT BufferCount;
-    HWND OutputWindow;
-    BOOL Windowed;
-    DXGI_SWAP_EFFECT SwapEffect;
-    UINT Flags;
-} DXGI_SWAP_CHAIN_DESC;
-
-typedef struct DXGI_SHARED_RESOURCE {
-    HANDLE Handle;
-} DXGI_SHARED_RESOURCE;
-
-[
-    object,
-    local,
-    uuid(aec22fb8-76f3-4639-9be0-28eb43a67a2e)
-]
-interface IDXGIObject : IUnknown
-{
-    HRESULT SetPrivateData(
-        [in] REFGUID guid,
-        [in] UINT data_size,
-        [in] const void *data
-    );
-    HRESULT SetPrivateDataInterface(
-        [in] REFGUID guid,
-        [in] const IUnknown *object
-    );
-    HRESULT GetPrivateData(
-        [in] REFGUID guid,
-        [in, out] UINT *data_size,
-        [out] void *data
-    );
-    HRESULT GetParent(
-        [in] REFIID riid,
-        [out] void **parent
-    );
-}
-
-[
-    object,
-    local,
-    uuid(3d3e0379-f9de-4d58-bb6c-18d62992f1a6)
-]
-interface IDXGIDeviceSubObject : IDXGIObject
-{
-    HRESULT GetDevice(
-        [in] REFIID riid,
-        [out] void **device
-    );
-}
-
-[
-    object,
-    uuid(035f3ab4-482e-4e50-b41f-8a7f8bd8960b),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIResource : IDXGIDeviceSubObject
-{
-    HRESULT GetSharedHandle([out] HANDLE *pSharedHandle);
-    HRESULT GetUsage([out] DXGI_USAGE *pUsage);
-    HRESULT SetEvictionPriority([in] UINT EvictionPriority);
-    HRESULT GetEvictionPriority([out, retval] UINT *pEvictionPriority);
-}
-
-[
-    object,
-    uuid(9d8e1289-d7b3-465f-8126-250e349af85d),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIKeyedMutex : IDXGIDeviceSubObject
-{
-    HRESULT AcquireSync([in] UINT64 Key, [in] DWORD dwMilliseconds);
-    HRESULT ReleaseSync([in] UINT64 Key);
-}
-
-[
-    object,
-    local,
-    uuid(cafcb56c-6ac3-4889-bf47-9e23bbd260ec)
-]
-interface IDXGISurface : IDXGIDeviceSubObject
-{
-    HRESULT GetDesc(
-        [out] DXGI_SURFACE_DESC *desc
-    );
-    HRESULT Map(
-        [out] DXGI_MAPPED_RECT *mapped_rect,
-        [in] UINT flags
-    );
-    HRESULT Unmap(
-    );
-}
-
-[
-    object,
-    local,
-    uuid(4ae63092-6327-4c1b-80ae-bfe12ea32b86)
-]
-interface IDXGISurface1 : IDXGISurface
-{
-    HRESULT GetDC(
-        [in] BOOL discard,
-        [out] HDC *hdc
-    );
-    HRESULT ReleaseDC(
-        [in] RECT *dirty_rect
-    );
-}
-
-[
-    object,
-    local,
-    uuid(ae02eedb-c735-4690-8d52-5a8dc20213aa)
-]
-interface IDXGIOutput : IDXGIObject
-{
-    HRESULT GetDesc(
-        [out] DXGI_OUTPUT_DESC *desc
-    );
-    HRESULT GetDisplayModeList(
-        [in] DXGI_FORMAT format,
-        [in] UINT flags,
-        [in, out] UINT *mode_count,
-        [out] DXGI_MODE_DESC *desc
-    );
-    HRESULT FindClosestMatchingMode(
-        [in] const DXGI_MODE_DESC *mode,
-        [out] DXGI_MODE_DESC *closest_match,
-        [in] IUnknown *device
-    );
-    HRESULT WaitForVBlank(
-    );
-    HRESULT TakeOwnership(
-        [in] IUnknown *device,
-        [in] BOOL exclusive
-    );
-    void ReleaseOwnership(
-    );
-    HRESULT GetGammaControlCapabilities(
-        [out] DXGI_GAMMA_CONTROL_CAPABILITIES *gamma_caps
-    );
-    HRESULT SetGammaControl(
-        [in] const DXGI_GAMMA_CONTROL *gamma_control
-    );
-    HRESULT GetGammaControl(
-        [out] DXGI_GAMMA_CONTROL *gamma_control
-    );
-    HRESULT SetDisplaySurface(
-        [in] IDXGISurface *surface
-    );
-    HRESULT GetDisplaySurfaceData(
-        [in] IDXGISurface *surface
-    );
-    HRESULT GetFrameStatistics(
-        [out] DXGI_FRAME_STATISTICS *stats
-    );
-}
-
-[
-    object,
-    local,
-    uuid(2411e7e1-12ac-4ccf-bd14-9798e8534dc0)
-]
-interface IDXGIAdapter : IDXGIObject
-{
-    HRESULT EnumOutputs(
-        [in] UINT output_idx,
-        [in, out] IDXGIOutput **output
-    );
-    HRESULT GetDesc(
-        [out] DXGI_ADAPTER_DESC *desc
-    );
-    HRESULT CheckInterfaceSupport(
-        [in] REFGUID guid,
-        [out] LARGE_INTEGER *umd_version
-    );
-}
-
-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)")
-cpp_quote("#define DXGI_PRESENT_USE_DURATION           __MSABI_LONG(0x00000100U)")
-cpp_quote("#define DXGI_PRESENT_ALLOW_TEARING          __MSABI_LONG(0x00000200U)")
-
-[
-    object,
-    local,
-    uuid(310d36a0-d2e7-4c0a-aa04-6a9d23b8886a)
-]
-interface IDXGISwapChain : IDXGIDeviceSubObject
-{
-    HRESULT Present(
-        [in] UINT sync_interval,
-        [in] UINT flags
-    );
-    HRESULT GetBuffer(
-        [in] UINT buffer_idx,
-        [in] REFIID riid,
-        [in, out] void **surface
-    );
-    HRESULT SetFullscreenState(
-        [in] BOOL fullscreen,
-        [in] IDXGIOutput *target
-    );
-    HRESULT GetFullscreenState(
-        [out] BOOL *fullscreen,
-        [out] IDXGIOutput **target
-    );
-    HRESULT GetDesc(
-        [out] DXGI_SWAP_CHAIN_DESC *desc
-    );
-    HRESULT ResizeBuffers(
-        [in] UINT buffer_count,
-        [in] UINT width,
-        [in] UINT height,
-        [in] DXGI_FORMAT format,
-        [in] UINT flags
-    );
-    HRESULT ResizeTarget(
-        [in] const DXGI_MODE_DESC *target_mode_desc
-    );
-    HRESULT GetContainingOutput(
-        [out] IDXGIOutput **output
-    );
-    HRESULT GetFrameStatistics(
-        [out] DXGI_FRAME_STATISTICS *stats
-    );
-    HRESULT GetLastPresentCount(
-        [out] UINT *last_present_count
-    );
-}
-
-cpp_quote("#define DXGI_MWA_NO_WINDOW_CHANGES  0x1")
-cpp_quote("#define DXGI_MWA_NO_ALT_ENTER       0x2")
-cpp_quote("#define DXGI_MWA_NO_PRINT_SCREEN    0x4")
-cpp_quote("#define DXGI_MWA_VALID              0x7")
-
-[
-    object,
-    local,
-    uuid(7b7166ec-21c7-44ae-b21a-c9ae321ae369)
-]
-interface IDXGIFactory : IDXGIObject
-{
-    HRESULT EnumAdapters(
-        [in] UINT adapter_idx,
-        [out] IDXGIAdapter **adapter
-    );
-    HRESULT MakeWindowAssociation(
-        [in] HWND window,
-        [in] UINT flags
-    );
-    HRESULT GetWindowAssociation(
-        [in] HWND *window
-    );
-    HRESULT CreateSwapChain(
-        [in] IUnknown *device,
-        [in] DXGI_SWAP_CHAIN_DESC *desc,
-        [out] IDXGISwapChain **swapchain
-    );
-    HRESULT CreateSoftwareAdapter(
-        [in] HMODULE swrast,
-        [out] IDXGIAdapter **adapter
-    );
-}
-
-[local] HRESULT __stdcall CreateDXGIFactory(REFIID riid, void **factory);
-[local] HRESULT __stdcall CreateDXGIFactory1(REFIID riid, void **factory);
-
-[
-    object,
-    local,
-    uuid(54ec77fa-1377-44e6-8c32-88fd5f44c84c)
-]
-interface IDXGIDevice : IDXGIObject
-{
-    HRESULT GetAdapter(
-        [out] IDXGIAdapter **adapter
-    );
-    HRESULT CreateSurface(
-        [in] const DXGI_SURFACE_DESC *desc,
-        [in] UINT surface_count,
-        [in] DXGI_USAGE usage,
-        [in] const DXGI_SHARED_RESOURCE *shared_resource,
-        [out] IDXGISurface **surface
-    );
-    HRESULT QueryResourceResidency(
-        [in] IUnknown *const *resources,
-        [out] DXGI_RESIDENCY *residency,
-        [in] UINT resource_count
-    );
-    HRESULT SetGPUThreadPriority(
-        [in] INT priority
-    );
-    HRESULT GetGPUThreadPriority(
-        [out] INT *priority
-    );
-}
-
-typedef enum DXGI_ADAPTER_FLAG {
-    DXGI_ADAPTER_FLAG_NONE         = 0,
-    DXGI_ADAPTER_FLAG_REMOTE       = 1,
-    DXGI_ADAPTER_FLAG_SOFTWARE     = 2,
-    DXGI_ADAPTER_FLAG_FORCE_DWORD  = 0xFFFFFFFF
-} DXGI_ADAPTER_FLAG;
-
-typedef struct DXGI_ADAPTER_DESC1 {
-    WCHAR  Description[128];
-    UINT   VendorId;
-    UINT   DeviceId;
-    UINT   SubSysId;
-    UINT   Revision;
-    SIZE_T DedicatedVideoMemory;
-    SIZE_T DedicatedSystemMemory;
-    SIZE_T SharedSystemMemory;
-    LUID   AdapterLuid;
-    UINT   Flags;
-} DXGI_ADAPTER_DESC1;
-
-typedef struct DXGI_DISPLAY_COLOR_SPACE {
-    FLOAT PrimaryCoordinates[8][2];
-    FLOAT WhitePoints[16][2];
-} DXGI_DISPLAY_COLOR_SPACE;
-
-[
-    object,
-    uuid(29038f61-3839-4626-91fd-086879011a05),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIAdapter1 : IDXGIAdapter
-{
-    HRESULT GetDesc1([out] DXGI_ADAPTER_DESC1 *pDesc);
-}
-
-[
-    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)
- ]
-interface IDXGIFactory1 : IDXGIFactory
-{
-    HRESULT EnumAdapters1([in] UINT Adapter, [out] IDXGIAdapter1 **ppAdapter);
-    BOOL IsCurrent();
-}
lib/libc/include/any-windows-any/dxgi1_2.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dxgi1_2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxgi1_2.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_2.idl
@@ -1,423 +0,0 @@
-/*
- * Copyright 2014 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 "dxgi.idl";
-
-const UINT DXGI_ENUM_MODES_STEREO = 0x4;
-const UINT DXGI_ENUM_MODES_DISABLED_STEREO = 0x8;
-
-const DWORD DXGI_SHARED_RESOURCE_READ = 0x80000000;
-const DWORD DXGI_SHARED_RESOURCE_WRITE = 0x00000001;
-
-typedef enum _DXGI_OFFER_RESOURCE_PRIORITY {
-    DXGI_OFFER_RESOURCE_PRIORITY_LOW = 1,
-    DXGI_OFFER_RESOURCE_PRIORITY_NORMAL,
-    DXGI_OFFER_RESOURCE_PRIORITY_HIGH
-} DXGI_OFFER_RESOURCE_PRIORITY;
-
-typedef enum DXGI_ALPHA_MODE {
-    DXGI_ALPHA_MODE_UNSPECIFIED = 0,
-    DXGI_ALPHA_MODE_PREMULTIPLIED = 1,
-    DXGI_ALPHA_MODE_STRAIGHT = 2,
-    DXGI_ALPHA_MODE_IGNORE = 3,
-    DXGI_ALPHA_MODE_FORCE_DWORD = 0xffffffff
-} DXGI_ALPHA_MODE;
-
-typedef struct DXGI_OUTDUPL_MOVE_RECT
-{
-    POINT SourcePoint;
-    RECT DestinationRect;
-} DXGI_OUTDUPL_MOVE_RECT;
-
-typedef struct DXGI_OUTDUPL_DESC
-{
-    DXGI_MODE_DESC ModeDesc;
-    DXGI_MODE_ROTATION Rotation;
-    BOOL DesktopImageInSystemMemory;
-} DXGI_OUTDUPL_DESC;
-
-typedef struct DXGI_OUTDUPL_POINTER_POSITION
-{
-    POINT Position;
-    BOOL Visible;
-} DXGI_OUTDUPL_POINTER_POSITION;
-
-typedef enum DXGI_OUTDUPL_POINTER_SHAPE_TYPE
-{
-    DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MONOCHROME = 0x00000001,
-    DXGI_OUTDUPL_POINTER_SHAPE_TYPE_COLOR = 0x00000002,
-    DXGI_OUTDUPL_POINTER_SHAPE_TYPE_MASKED_COLOR = 0x00000004
-} DXGI_OUTDUPL_POINTER_SHAPE_TYPE;
-
-typedef struct DXGI_OUTDUPL_POINTER_SHAPE_INFO
-{
-    UINT Type;
-    UINT Width;
-    UINT Height;
-    UINT Pitch;
-    POINT HotSpot;
-} DXGI_OUTDUPL_POINTER_SHAPE_INFO;
-
-typedef struct DXGI_OUTDUPL_FRAME_INFO
-{
-    LARGE_INTEGER LastPresentTime;
-    LARGE_INTEGER LastMouseUpdateTime;
-    UINT AccumulatedFrames;
-    BOOL RectsCoalesced;
-    BOOL ProtectedContentMaskedOut;
-    DXGI_OUTDUPL_POINTER_POSITION PointerPosition;
-    UINT TotalMetadataBufferSize;
-    UINT PointerShapeBufferSize;
-} DXGI_OUTDUPL_FRAME_INFO;
-
-typedef struct DXGI_MODE_DESC1
-{
-    UINT Width;
-    UINT Height;
-    DXGI_RATIONAL RefreshRate;
-    DXGI_FORMAT Format;
-    DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
-    DXGI_MODE_SCALING Scaling;
-    BOOL Stereo;
-} DXGI_MODE_DESC1;
-
-[
-    object,
-    uuid(191cfac3-a341-470d-b26e-a864f428319c),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIOutputDuplication : IDXGIObject
-{
-    void GetDesc(
-        [out] DXGI_OUTDUPL_DESC *desc
-    );
-
-    HRESULT AcquireNextFrame(
-        [in] UINT timeout_in_milliseconds,
-        [out] DXGI_OUTDUPL_FRAME_INFO *frame_info,
-        [out] IDXGIResource **desktop_resource
-    );
-
-    HRESULT GetFrameDirtyRects(
-        [in] UINT dirty_rects_buffer_size,
-        [out] RECT *dirty_rects_buffer,
-        [out] UINT *dirty_rects_buffer_size_required
-    );
-
-    HRESULT GetFrameMoveRects(
-        [in] UINT move_rects_buffer_size,
-        [out] DXGI_OUTDUPL_MOVE_RECT *move_rect_buffer,
-        [out] UINT *move_rects_buffer_size_required
-    );
-
-    HRESULT GetFramePointerShape(
-        [in] UINT pointer_shape_buffer_size,
-        [out] void *pointer_shape_buffer,
-        [out] UINT *pointer_shape_buffer_size_required,
-        [out] DXGI_OUTDUPL_POINTER_SHAPE_INFO *pointer_shape_info
-    );
-
-    HRESULT MapDesktopSurface(
-        [out] DXGI_MAPPED_RECT *locked_rect
-    );
-
-    HRESULT UnMapDesktopSurface();
-
-    HRESULT ReleaseFrame();
-}
-
-[
-    object,
-    uuid(aba496dd-b617-4cb8-a866-bc44d7eb1fa2),
-    local,
-    pointer_default(unique)
-]
-interface IDXGISurface2 : IDXGISurface1
-{
-    HRESULT GetResource(
-        [in] REFIID iid,
-        [out] void **parent_resource,
-        [out] UINT *subresource_idx
-    );
-}
-
-[
-    object,
-    uuid(30961379-4609-4a41-998e-54fe567ee0c1),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIResource1 : IDXGIResource
-{
-    HRESULT CreateSubresourceSurface(
-        UINT index,
-        [out] IDXGISurface2 **surface
-    );
-    HRESULT CreateSharedHandle(
-        [in] const SECURITY_ATTRIBUTES *attributes,
-        [in] DWORD access,
-        [in] const WCHAR *name,
-        [out] HANDLE *handle
-    );
-}
-
-[
-    object,
-    uuid(ea9dbf1a-c88e-4486-854a-98aa0138f30c),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIDisplayControl : IUnknown
-{
-    BOOL IsStereoEnabled();
-    void SetStereoEnabled(BOOL enabled);
-}
-
-[
-    object,
-    uuid(05008617-fbfd-4051-a790-144884b4f6a9),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIDevice2 : IDXGIDevice1
-{
-    HRESULT OfferResources(
-            [in] UINT NumResources,
-            [in, size_is(NumResources)] IDXGIResource *const *ppResources,
-            [in] DXGI_OFFER_RESOURCE_PRIORITY Priority);
-
-    HRESULT ReclaimResources(
-            [in] UINT NumResources,
-            [in, size_is(NumResources)] IDXGIResource *const *ppResources,
-            [out, size_is(NumResources)] BOOL *pDiscarded);
-
-    HRESULT EnqueueSetEvent(
-            [in] HANDLE hEvent);
-}
-
-typedef enum DXGI_SCALING {
-    DXGI_SCALING_STRETCH = 0,
-    DXGI_SCALING_NONE = 1,
-    DXGI_SCALING_ASPECT_RATIO_STRETCH = 2,
-} DXGI_SCALING;
-
-typedef struct DXGI_SWAP_CHAIN_DESC1 {
-    UINT Width;
-    UINT Height;
-    DXGI_FORMAT Format;
-    BOOL Stereo;
-    DXGI_SAMPLE_DESC SampleDesc;
-    DXGI_USAGE BufferUsage;
-    UINT BufferCount;
-    DXGI_SCALING Scaling;
-    DXGI_SWAP_EFFECT SwapEffect;
-    DXGI_ALPHA_MODE AlphaMode;
-    UINT Flags;
-} DXGI_SWAP_CHAIN_DESC1;
-
-typedef struct DXGI_SWAP_CHAIN_FULLSCREEN_DESC {
-    DXGI_RATIONAL RefreshRate;
-    DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
-    DXGI_MODE_SCALING Scaling;
-    BOOL Windowed;
-} DXGI_SWAP_CHAIN_FULLSCREEN_DESC;
-
-typedef struct DXGI_PRESENT_PARAMETERS {
-    UINT DirtyRectsCount;
-    RECT *pDirtyRects;
-    RECT *pScrollRect;
-    POINT *pScrollOffset;
-} DXGI_PRESENT_PARAMETERS;
-
-[
-    object,
-    uuid(790a45f7-0d42-4876-983a-0a55cfe6f4aa),
-    local,
-    pointer_default(unique)
-]
-interface IDXGISwapChain1 : IDXGISwapChain
-{
-    HRESULT GetDesc1(
-            [out] DXGI_SWAP_CHAIN_DESC1 *pDesc);
-
-    HRESULT GetFullscreenDesc(
-            [out] DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pDesc);
-
-    HRESULT GetHwnd(
-            [out] HWND *pHwnd);
-
-    HRESULT GetCoreWindow(
-            [in] REFIID refiid,
-            [out] void **ppUnk);
-
-    HRESULT Present1(
-            [in] UINT SyncInterval,
-            [in] UINT PresentFlags,
-            [in] const DXGI_PRESENT_PARAMETERS *pPresentParameters);
-
-    BOOL IsTemporaryMonoSupported();
-
-    HRESULT GetRestrictToOutput(
-            [out] IDXGIOutput **ppRestrictToOutput);
-
-    HRESULT SetBackgroundColor(
-            [in] const DXGI_RGBA *pColor);
-
-    HRESULT GetBackgroundColor(
-            [out] DXGI_RGBA *pColor);
-
-    HRESULT SetRotation(
-            [in] DXGI_MODE_ROTATION Rotation);
-
-    HRESULT GetRotation(
-            [out] DXGI_MODE_ROTATION *pRotation);
-}
-
-[
-    object,
-    uuid(50c83a1c-e072-4c48-87b0-3630fa36a6d0),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIFactory2 : IDXGIFactory1
-{
-    BOOL IsWindowedStereoEnabled();
-
-    HRESULT CreateSwapChainForHwnd(
-            [in]  IUnknown *pDevice,
-            [in]  HWND hWnd,
-            [in]  const DXGI_SWAP_CHAIN_DESC1 *pDesc,
-            [in]  const DXGI_SWAP_CHAIN_FULLSCREEN_DESC *pFullscreenDesc,
-            [in]  IDXGIOutput *pRestrictToOutput,
-            [out] IDXGISwapChain1 **ppSwapChain);
-
-    HRESULT CreateSwapChainForCoreWindow(
-            [in]  IUnknown *pDevice,
-            [in]  IUnknown *pWindow,
-            [in]  const DXGI_SWAP_CHAIN_DESC1 *pDesc,
-            [in]  IDXGIOutput *pRestrictToOutput,
-            [out] IDXGISwapChain1 **ppSwapChain);
-
-    HRESULT GetSharedResourceAdapterLuid(
-            [in]  HANDLE hResource,
-            [out] LUID *pLuid);
-
-    HRESULT RegisterStereoStatusWindow(
-            [in]  HWND WindowHandle,
-            [in]  UINT wMsg,
-            [out] DWORD *pdwCookie);
-
-    HRESULT RegisterStereoStatusEvent(
-            [in]  HANDLE hEvent,
-            [out] DWORD *pdwCookie);
-
-    void UnregisterStereoStatus(
-            [in]  DWORD dwCookie);
-
-    HRESULT RegisterOcclusionStatusWindow(
-            [in]  HWND WindowHandle,
-            [in]  UINT wMsg,
-            [out] DWORD *pdwCookie);
-
-    HRESULT RegisterOcclusionStatusEvent(
-            [in]  HANDLE hEvent,
-            [out] DWORD *pdwCookie);
-
-    void UnregisterOcclusionStatus(
-            [in]  DWORD dwCookie);
-
-    HRESULT CreateSwapChainForComposition(
-            [in]  IUnknown *pDevice,
-            [in]  const DXGI_SWAP_CHAIN_DESC1 *pDesc,
-            [in]  IDXGIOutput *pRestrictToOutput,
-            [out] IDXGISwapChain1 **ppSwapChain);
-}
-
-typedef enum DXGI_GRAPHICS_PREEMPTION_GRANULARITY {
-    DXGI_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY,
-    DXGI_GRAPHICS_PREEMPTION_PRIMITIVE_BOUNDARY,
-    DXGI_GRAPHICS_PREEMPTION_TRIANGLE_BOUNDARY,
-    DXGI_GRAPHICS_PREEMPTION_PIXEL_BOUNDARY,
-    DXGI_GRAPHICS_PREEMPTION_INSTRUCTION_BOUNDARY
-} DXGI_GRAPHICS_PREEMPTION_GRANULARITY;
-
-typedef enum DXGI_COMPUTE_PREEMPTION_GRANULARITY {
-    DXGI_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY,
-    DXGI_COMPUTE_PREEMPTION_DISPATCH_BOUNDARY,
-    DXGI_COMPUTE_PREEMPTION_THREAD_GROUP_BOUNDARY,
-    DXGI_COMPUTE_PREEMPTION_THREAD_BOUNDARY,
-    DXGI_COMPUTE_PREEMPTION_INSTRUCTION_BOUNDARY
-} DXGI_COMPUTE_PREEMPTION_GRANULARITY;
-
-typedef struct DXGI_ADAPTER_DESC2 {
-    WCHAR Description[128];
-    UINT VendorId;
-    UINT DeviceId;
-    UINT SubSysId;
-    UINT Revision;
-    SIZE_T DedicatedVideoMemory;
-    SIZE_T DedicatedSystemMemory;
-    SIZE_T SharedSystemMemory;
-    LUID AdapterLuid;
-    UINT Flags;
-    DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
-    DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
-} DXGI_ADAPTER_DESC2;
-
-[
-    object,
-    uuid(0aa1ae0a-fa0e-4b84-8644-e05ff8e5acb5),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIAdapter2 : IDXGIAdapter1
-{
-    HRESULT GetDesc2([out] DXGI_ADAPTER_DESC2 *pDesc);
-}
-
-[
-    object,
-    uuid(00cddea8-939b-4b83-a340-a685226666cc),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIOutput1 : IDXGIOutput
-{
-    HRESULT GetDisplayModeList1(
-        [in] DXGI_FORMAT enum_format,
-        [in] UINT flags,
-        [in, out] UINT *num_modes,
-        [out] DXGI_MODE_DESC1 *desc
-    );
-
-    HRESULT FindClosestMatchingMode1(
-        [in] const DXGI_MODE_DESC1 *mode_to_match,
-        [out] DXGI_MODE_DESC1 *closest_match,
-        [in] IUnknown *concerned_device
-    );
-
-    HRESULT GetDisplaySurfaceData1(
-        [in] IDXGIResource *destination
-    );
-
-    HRESULT DuplicateOutput(
-        [in] IUnknown *device,
-        [out] IDXGIOutputDuplication **output_duplication
-    );
-}
lib/libc/include/any-windows-any/dxgi1_3.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dxgi1_3.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxgi1_3.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_3.idl
@@ -1,231 +0,0 @@
-/*
- * Copyright 2017 Ihsan Akmal
- *
- * 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 "dxgi1_2.idl";
-
-typedef struct DXGI_MATRIX_3X2_F
-{
-    float _11;
-    float _12;
-    float _21;
-    float _22;
-    float _31;
-    float _32;
-} DXGI_MATRIX_3X2_F;
-
-typedef struct DXGI_DECODE_SWAP_CHAIN_DESC
-{
-    UINT Flags;
-} DXGI_DECODE_SWAP_CHAIN_DESC;
-
-typedef enum DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS
-{
-    DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_NOMINAL_RANGE = 0x1,
-    DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_BT709 = 0x2,
-    DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAG_xvYCC = 0x4,
-} DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS;
-
-typedef enum DXGI_FRAME_PRESENTATION_MODE
-{
-    DXGI_FRAME_PRESENTATION_MODE_COMPOSED = 0,
-    DXGI_FRAME_PRESENTATION_MODE_OVERLAY = 1,
-    DXGI_FRAME_PRESENTATION_MODE_NONE = 2,
-    DXGI_FRAME_PRESENTATION_MODE_COMPOSITION_FAILURE = 3,
-} DXGI_FRAME_PRESENTATION_MODE;
-
-typedef struct DXGI_FRAME_STATISTICS_MEDIA
-{
-    UINT PresentCount;
-    UINT PresentRefreshCount;
-    UINT SyncRefreshCount;
-    LARGE_INTEGER SyncQPCTime;
-    LARGE_INTEGER SyncGPUTime;
-    DXGI_FRAME_PRESENTATION_MODE CompositionMode;
-    UINT ApprovedPresentDuration;
-} DXGI_FRAME_STATISTICS_MEDIA;
-
-typedef enum DXGI_OVERLAY_SUPPORT_FLAG
-{
-    DXGI_OVERLAY_SUPPORT_FLAG_DIRECT = 0x1,
-    DXGI_OVERLAY_SUPPORT_FLAG_SCALING = 0x2,
-} DXGI_OVERLAY_SUPPORT_FLAG;
-
-[
-    object,
-    uuid(6007896c-3244-4afd-bf18-a6d3beda5023),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIDevice3 : IDXGIDevice2
-{
-    void Trim();
-}
-
-[
-    object,
-    uuid(a8be2ac4-199f-4946-b331-79599fb98de7),
-    local,
-    pointer_default(unique)
-]
-interface IDXGISwapChain2 : IDXGISwapChain1
-{
-    HRESULT SetSourceSize(UINT width, UINT height);
-
-    HRESULT GetSourceSize(
-        [out] UINT *width,
-        [out] UINT *height
-    );
-
-    HRESULT SetMaximumFrameLatency(UINT max_latency);
-
-    HRESULT GetMaximumFrameLatency(
-        [out] UINT *max_latency
-    );
-
-    HANDLE  GetFrameLatencyWaitableObject();
-
-    HRESULT SetMatrixTransform(const DXGI_MATRIX_3X2_F *matrix);
-
-    HRESULT GetMatrixTransform(
-        [out] DXGI_MATRIX_3X2_F *matrix
-    );
-}
-
-[
-    object,
-    uuid(595e39d1-2724-4663-99b1-da969de28364),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIOutput2 : IDXGIOutput1
-{
-    BOOL SupportsOverlays();
-}
-
-[
-    object,
-    uuid(25483823-cd46-4c7d-86ca-47aa95b837bd),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIFactory3 : IDXGIFactory2
-{
-    UINT GetCreationFlags();
-}
-
-[
-    object,
-    uuid(2633066b-4514-4c7a-8fd8-12ea98059d18),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIDecodeSwapChain : IUnknown
-{
-    HRESULT PresentBuffer(UINT buffer_to_present, UINT sync_interval, UINT flags);
-
-    HRESULT SetSourceRect(const RECT *rect);
-
-    HRESULT SetTargetRect(const RECT *rect);
-
-    HRESULT SetDestSize(UINT width, UINT height);
-
-    HRESULT GetSourceRect(
-        [out] RECT *rect
-    );
-
-    HRESULT GetTargetRect(
-        [out] RECT *rect
-    );
-
-    HRESULT GetDestSize(
-        [out] UINT *width,
-        [out] UINT *height
-    );
-
-    HRESULT SetColorSpace(DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS colorspace);
-
-    DXGI_MULTIPLANE_OVERLAY_YCbCr_FLAGS GetColorSpace();
-}
-
-[
-    object,
-    uuid(41e7d1f2-a591-4f7b-a2e5-fa9c843e1c12),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIFactoryMedia : IUnknown
-{
-    HRESULT CreateSwapChainForCompositionSurfaceHandle(
-        [in] IUnknown *device,
-        [in] HANDLE surface,
-        [in] const DXGI_SWAP_CHAIN_DESC1 *desc,
-        [in] IDXGIOutput *restrict_to_output,
-        [out] IDXGISwapChain1 **swapchain
-    );
-
-    HRESULT CreateDecodeSwapChainForCompositionSurfaceHandle(
-        [in] IUnknown *device,
-        [in] HANDLE surface,
-        [in] DXGI_DECODE_SWAP_CHAIN_DESC *desc,
-        [in] IDXGIResource *yuv_decode_buffers,
-        [in] IDXGIOutput *restrict_to_output,
-        [out] IDXGIDecodeSwapChain **swapchain
-    );
-}
-
-[
-    object,
-    uuid(dd95b90b-f05f-4f6a-bd65-25bfb264bd84),
-    local,
-    pointer_default(unique)
-]
-interface IDXGISwapChainMedia : IUnknown
-{
-    HRESULT GetFrameStatisticsMedia(
-        [out] DXGI_FRAME_STATISTICS_MEDIA *stats
-    );
-
-    HRESULT SetPresentDuration(UINT duration);
-
-    HRESULT CheckPresentDurationSupport(
-        UINT desired_present_duration,
-        [out] UINT *closest_smaller_present_duration,
-        [out] UINT *closest_larger_present_duration
-    );
-}
-
-[
-    object,
-    uuid(8a6bb301-7e7e-41F4-a8e0-5b32f7f99b18),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIOutput3 : IDXGIOutput2
-{
-    HRESULT CheckOverlaySupport(
-        [in] DXGI_FORMAT enum_format,
-        [out] IUnknown *concerned_device,
-        [out] UINT *flags
-    );
-}
-
-const UINT DXGI_CREATE_FACTORY_DEBUG = 0x1;
-
-[local] HRESULT __stdcall CreateDXGIFactory2(UINT flags, REFIID iid, void **factory);
-
-[local] HRESULT __stdcall DXGIGetDebugInterface1(UINT flags, REFIID iid, void **debug);
lib/libc/include/any-windows-any/dxgi1_4.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dxgi1_4.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxgi1_4.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_4.idl
@@ -1,140 +0,0 @@
-/*
- * Copyright 2017 Ihsan Akmal
- *
- * 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 "dxgi1_3.idl";
-
-typedef enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG
-{
-    DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1,
-    DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2,
-} DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG;
-
-typedef enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG
-{
-    DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1,
-} DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG;
-
-typedef enum DXGI_MEMORY_SEGMENT_GROUP
-{
-    DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0x0,
-    DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 0x1,
-} DXGI_MEMORY_SEGMENT_GROUP;
-
-typedef struct DXGI_QUERY_VIDEO_MEMORY_INFO
-{
-    UINT64 Budget;
-    UINT64 CurrentUsage;
-    UINT64 AvailableForReservation;
-    UINT64 CurrentReservation;
-} DXGI_QUERY_VIDEO_MEMORY_INFO;
-
-[
-    object,
-    uuid(94d99bdb-f1f8-4ab0-b236-7da0170edab1),
-    local,
-    pointer_default(unique)
-]
-interface IDXGISwapChain3 : IDXGISwapChain2
-{
-    UINT GetCurrentBackBufferIndex();
-    HRESULT CheckColorSpaceSupport(
-        [in] DXGI_COLOR_SPACE_TYPE colour_space,
-        [out] UINT *colour_space_support
-    );
-    HRESULT SetColorSpace1(
-        [in] DXGI_COLOR_SPACE_TYPE colour_space
-    );
-    HRESULT ResizeBuffers1(
-        [in] UINT buffer_count,
-        [in] UINT width,
-        [in] UINT height,
-        [in] DXGI_FORMAT format,
-        [in] UINT flags,
-        [in] const UINT *node_mask,
-        [in] IUnknown *const *present_queue
-    );
-}
-
-[
-    object,
-    uuid(dc7dca35-2196-414d-9F53-617884032a60),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIOutput4 : IDXGIOutput3
-{
-    HRESULT CheckOverlayColorSpaceSupport(
-        [in] DXGI_FORMAT format,
-        [in] DXGI_COLOR_SPACE_TYPE colour_space,
-        [in] IUnknown *device,
-        [out] UINT *flags
-    );
-}
-
-[
-    object,
-    uuid(1bc6ea02-ef36-464f-bf0c-21ca39e5168a),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIFactory4 : IDXGIFactory3
-{
-    HRESULT EnumAdapterByLuid(
-        [in] LUID luid,
-        [in] REFIID iid,
-        [out] void **adapter
-    );
-    HRESULT EnumWarpAdapter(
-        [in] REFIID iid,
-        [out] void **adapter
-    );
-}
-
-[
-    object,
-    uuid(645967a4-1392-4310-a798-8053ce3e93fd),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIAdapter3 : IDXGIAdapter2
-{
-    HRESULT RegisterHardwareContentProtectionTeardownStatusEvent(
-        [in] HANDLE event,
-        [out] DWORD *cookie
-    );
-    void UnregisterHardwareContentProtectionTeardownStatus(
-        [in] DWORD cookie
-    );
-    HRESULT QueryVideoMemoryInfo(
-        [in] UINT node_index,
-        [in] DXGI_MEMORY_SEGMENT_GROUP segment_group,
-        [out] DXGI_QUERY_VIDEO_MEMORY_INFO *memory_info
-    );
-    HRESULT SetVideoMemoryReservation(
-        [in] UINT node_index,
-        [in] DXGI_MEMORY_SEGMENT_GROUP segment_group,
-        [in] UINT64 reservation
-    );
-    HRESULT RegisterVideoMemoryBudgetChangeNotificationEvent(
-        [in] HANDLE event,
-        [out] DWORD *cookie
-    );
-    void UnregisterVideoMemoryBudgetChangeNotification(
-        [in] DWORD cookie
-    );
-}
lib/libc/include/any-windows-any/dxgi1_5.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dxgi1_5.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxgi1_5.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_5.idl
@@ -1,133 +0,0 @@
-/*
- * Copyright 2017 Ihsan Akmal
- *
- * 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 "dxgi1_4.idl";
-
-typedef enum DXGI_OUTDUPL_FLAG
-{
-    DXGI_OUTDUPL_COMPOSITED_UI_CAPTURE_ONLY = 0x1,
-} DXGI_OUTDUPL_FLAG;
-
-typedef enum DXGI_HDR_METADATA_TYPE
-{
-    DXGI_HDR_METADATA_TYPE_NONE = 0x0,
-    DXGI_HDR_METADATA_TYPE_HDR10 = 0x1,
-    DXGI_HDR_METADATA_TYPE_HDR10PLUS = 0x2,
-} DXGI_HDR_METADATA_TYPE;
-
-typedef enum _DXGI_OFFER_RESOURCE_FLAGS
-{
-    DXGI_OFFER_RESOURCE_FLAG_ALLOW_DECOMMIT = 0x1,
-} DXGI_OFFER_RESOURCE_FLAGS;
-
-typedef enum _DXGI_RECLAIM_RESOURCE_RESULTS
-{
-    DXGI_RECLAIM_RESOURCE_RESULT_OK = 0x0,
-    DXGI_RECLAIM_RESOURCE_RESULT_DISCARDED = 0x1,
-    DXGI_RECLAIM_RESOURCE_RESULT_NOT_COMMITTED = 0x2,
-} DXGI_RECLAIM_RESOURCE_RESULTS;
-
-typedef enum DXGI_FEATURE
-{
-       DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0x0,
-} DXGI_FEATURE;
-
-typedef struct DXGI_HDR_METADATA_HDR10
-{
-    UINT16 RedPrimary[2];
-    UINT16 GreenPrimary[2];
-    UINT16 BluePrimary[2];
-    UINT16 WhitePoint[2];
-    UINT MaxMasteringLuminance;
-    UINT MinMasteringLuminance;
-    UINT16 MaxContentLightLevel;
-    UINT16 MaxFrameAverageLightLevel;
-} DXGI_HDR_METADATA_HDR10;
-
-typedef struct DXGI_HDR_METADATA_HDR10PLUS
-{
-    BYTE Data[72];
-} DXGI_HDR_METADATA_HDR10PLUS;
-
-[
-    object,
-    uuid(80a07424-ab52-42eb-833c-0c42fd282d98),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIOutput5 : IDXGIOutput4
-{
-    HRESULT DuplicateOutput1(
-        [in] IUnknown *device,
-        [in] UINT flags,
-        [in] UINT format_count,
-        [in] const DXGI_FORMAT *formats,
-        [out] IDXGIOutputDuplication **duplication
-    );
-}
-
-[
-    object,
-    uuid(3d585d5a-bd4a-489e-b1f4-3dbcb6452ffb),
-    local,
-    pointer_default(unique)
-]
-interface IDXGISwapChain4 : IDXGISwapChain3
-{
-    HRESULT SetHDRMetaData(
-        [in] DXGI_HDR_METADATA_TYPE type,
-        [in] UINT size,
-        [in] void *metadata
-    );
-}
-
-[
-    object,
-    uuid(95b4f95f-d8da-4ca4-9ee6-3b76d5968a10),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIDevice4 : IDXGIDevice3
-{
-    HRESULT OfferResources1(
-        [in] UINT resource_count,
-        [in] IDXGIResource *const *resources,
-        [in] DXGI_OFFER_RESOURCE_PRIORITY priority,
-        [in] UINT flags
-    );
-    HRESULT ReclaimResources1(
-        [in] UINT resource_count,
-        [in] IDXGIResource *const *resources,
-        [out] DXGI_RECLAIM_RESOURCE_RESULTS *results
-    );
-}
-
-[
-    object,
-    uuid(7632e1f5-ee65-4dca-87fd-84cd75f8838d),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIFactory5 : IDXGIFactory4
-{
-    HRESULT CheckFeatureSupport(
-        DXGI_FEATURE feature,
-        [in, out] void *support_data,
-        UINT support_data_size
-    );
-}
lib/libc/include/any-windows-any/dxgi1_6.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dxgi1_6.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxgi1_6.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_6.idl
@@ -1,141 +0,0 @@
-/*
- * Copyright 2017 Ihsan Akmal
- *
- * 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 "dxgi1_5.idl";
-
-typedef enum DXGI_ADAPTER_FLAG3
-{
-    DXGI_ADAPTER_FLAG3_NONE = 0x0,
-    DXGI_ADAPTER_FLAG3_REMOTE = 0x1,
-    DXGI_ADAPTER_FLAG3_SOFTWARE = 0x2,
-    DXGI_ADAPTER_FLAG3_ACG_COMPATIBLE = 0x4,
-    DXGI_ADAPTER_FLAG3_SUPPORT_MONITORED_FENCES = 0x8,
-    DXGI_ADAPTER_FLAG3_SUPPORT_NON_MONITORED_FENCES = 0x10,
-    DXGI_ADAPTER_FLAG3_KEYED_MUTEX_CONFORMANCE = 0x20,
-    DXGI_ADAPTER_FLAG3_FORCE_DWORD = 0xffffffff,
-} DXGI_ADAPTER_FLAG3;
-
-typedef enum DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS
-{
-    DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_FULLSCREEN = 0x1,
-    DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_WINDOWED = 0x2,
-    DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAG_CURSOR_STRETCHED = 0x4,
-} DXGI_HARDWARE_COMPOSITION_SUPPORT_FLAGS;
-
-typedef enum DXGI_GPU_PREFERENCE
-{
-    DXGI_GPU_PREFERENCE_UNSPECIFIED = 0x0,
-    DXGI_GPU_PREFERENCE_MINIMUM_POWER = 0x1,
-    DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = 0x2,
-} DXGI_GPU_PREFERENCE;
-
-typedef struct DXGI_ADAPTER_DESC3
-{
-    WCHAR Description[128];
-    UINT VendorId;
-    UINT DeviceId;
-    UINT SubSysId;
-    UINT Revision;
-    SIZE_T DedicatedVideoMemory;
-    SIZE_T DedicatedSystemMemory;
-    SIZE_T SharedSystemMemory;
-    LUID AdapterLuid;
-    DXGI_ADAPTER_FLAG3 Flags;
-    DXGI_GRAPHICS_PREEMPTION_GRANULARITY GraphicsPreemptionGranularity;
-    DXGI_COMPUTE_PREEMPTION_GRANULARITY ComputePreemptionGranularity;
-} DXGI_ADAPTER_DESC3;
-
-typedef struct DXGI_OUTPUT_DESC1
-{
-    WCHAR DeviceName[32];
-    RECT DesktopCoordinates;
-    BOOL AttachedToDesktop;
-    DXGI_MODE_ROTATION Rotation;
-    HMONITOR Monitor;
-    UINT BitsPerColor;
-    DXGI_COLOR_SPACE_TYPE ColorSpace;
-    FLOAT RedPrimary[2];
-    FLOAT GreenPrimary[2];
-    FLOAT BluePrimary[2];
-    FLOAT WhitePoint[2];
-    FLOAT MinLuminance;
-    FLOAT MaxLuminance;
-    FLOAT MaxFullFrameLuminance;
-} DXGI_OUTPUT_DESC1;
-
-[
-    object,
-    uuid(3c8d99d1-4fbf-4181-a82c-af66bf7bd24e),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIAdapter4 : IDXGIAdapter3
-{
-    HRESULT GetDesc3(
-        [out] DXGI_ADAPTER_DESC3 *desc
-    );
-}
-
-[
-    object,
-    uuid(068346e8-aaec-4b84-add7-137f513f77a1),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIOutput6 : IDXGIOutput5
-{
-    HRESULT GetDesc1(
-        [out] DXGI_OUTPUT_DESC1 *desc
-    );
-    HRESULT CheckHardwareCompositionSupport(
-        [out] UINT *flags
-    );
-}
-
-[
-    object,
-    uuid(c1b6694f-ff09-44a9-b03c-77900a0a1d17),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIFactory6 : IDXGIFactory5
-{
-    HRESULT EnumAdapterByGpuPreference(
-        [in] UINT adapter_idx,
-        [in] DXGI_GPU_PREFERENCE gpu_preference,
-        [in] REFIID iid,
-        [out] void **adapter
-    );
-}
-
-[
-    object,
-    uuid(a4966eed-76db-44da-84c1-ee9a7afb20a8),
-    local,
-    pointer_default(unique)
-]
-interface IDXGIFactory7 : IDXGIFactory6
-{
-    HRESULT RegisterAdaptersChangedEvent(
-        [in] HANDLE event,
-        [out] DWORD *cookie
-    );
-    HRESULT UnregisterAdaptersChangedEvent(
-        [in] DWORD cookie
-    );
-}
lib/libc/include/any-windows-any/dxgicommon.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dxgicommon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxgicommon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgicommon.idl
@@ -1,61 +0,0 @@
-/*
- * Copyright 2017 Ihsan Akmal
- *
- * 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
- */
-
-cpp_quote("#if 0")
-typedef unsigned int UINT;
-cpp_quote("#endif")
-
-const UINT DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN = 0xffffffff;
-const UINT DXGI_CENTER_MULTISAMPLE_QUALITY_PATTERN = 0xfffffffe;
-
-typedef enum DXGI_COLOR_SPACE_TYPE
-{
-    DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709             = 0x00,
-    DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709             = 0x01,
-    DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P709           = 0x02,
-    DXGI_COLOR_SPACE_RGB_STUDIO_G22_NONE_P2020          = 0x03,
-    DXGI_COLOR_SPACE_RESERVED                           = 0x04,
-    DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601      = 0x05,
-    DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601         = 0x06,
-    DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601           = 0x07,
-    DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709         = 0x08,
-    DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709           = 0x09,
-    DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020        = 0x0a,
-    DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020          = 0x0b,
-    DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020          = 0x0c,
-    DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_LEFT_P2020      = 0x0d,
-    DXGI_COLOR_SPACE_RGB_STUDIO_G2084_NONE_P2020        = 0x0e,
-    DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_TOPLEFT_P2020     = 0x0f,
-    DXGI_COLOR_SPACE_YCBCR_STUDIO_G2084_TOPLEFT_P2020   = 0x10,
-    DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P2020            = 0x11,
-    DXGI_COLOR_SPACE_YCBCR_STUDIO_GHLG_TOPLEFT_P2020    = 0x12,
-    DXGI_COLOR_SPACE_YCBCR_FULL_GHLG_TOPLEFT_P2020      = 0x13,
-    DXGI_COLOR_SPACE_CUSTOM                             = 0xffffffff,
-} DXGI_COLOR_SPACE_TYPE;
-
-typedef struct DXGI_SAMPLE_DESC
-{
-    UINT Count;
-    UINT Quality;
-} DXGI_SAMPLE_DESC;
-
-typedef struct DXGI_RATIONAL
-{
-    UINT Numerator;
-    UINT Denominator;
-} DXGI_RATIONAL;
lib/libc/include/any-windows-any/dxgidebug.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dxgidebug.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxgidebug.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgiformat.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dxgiformat.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxgiformat.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgiformat.idl
@@ -1,145 +0,0 @@
-/*
- * Copyright 2016 Jรณzef Kucia 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
- */
-
-const unsigned int DXGI_FORMAT_DEFINED = 1;
-
-typedef enum DXGI_FORMAT
-{
-    DXGI_FORMAT_UNKNOWN                     = 0x00,
-    DXGI_FORMAT_R32G32B32A32_TYPELESS       = 0x01,
-    DXGI_FORMAT_R32G32B32A32_FLOAT          = 0x02,
-    DXGI_FORMAT_R32G32B32A32_UINT           = 0x03,
-    DXGI_FORMAT_R32G32B32A32_SINT           = 0x04,
-    DXGI_FORMAT_R32G32B32_TYPELESS          = 0x05,
-    DXGI_FORMAT_R32G32B32_FLOAT             = 0x06,
-    DXGI_FORMAT_R32G32B32_UINT              = 0x07,
-    DXGI_FORMAT_R32G32B32_SINT              = 0x08,
-    DXGI_FORMAT_R16G16B16A16_TYPELESS       = 0x09,
-    DXGI_FORMAT_R16G16B16A16_FLOAT          = 0x0a,
-    DXGI_FORMAT_R16G16B16A16_UNORM          = 0x0b,
-    DXGI_FORMAT_R16G16B16A16_UINT           = 0x0c,
-    DXGI_FORMAT_R16G16B16A16_SNORM          = 0x0d,
-    DXGI_FORMAT_R16G16B16A16_SINT           = 0x0e,
-    DXGI_FORMAT_R32G32_TYPELESS             = 0x0f,
-    DXGI_FORMAT_R32G32_FLOAT                = 0x10,
-    DXGI_FORMAT_R32G32_UINT                 = 0x11,
-    DXGI_FORMAT_R32G32_SINT                 = 0x12,
-    DXGI_FORMAT_R32G8X24_TYPELESS           = 0x13,
-    DXGI_FORMAT_D32_FLOAT_S8X24_UINT        = 0x14,
-    DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS    = 0x15,
-    DXGI_FORMAT_X32_TYPELESS_G8X24_UINT     = 0x16,
-    DXGI_FORMAT_R10G10B10A2_TYPELESS        = 0x17,
-    DXGI_FORMAT_R10G10B10A2_UNORM           = 0x18,
-    DXGI_FORMAT_R10G10B10A2_UINT            = 0x19,
-    DXGI_FORMAT_R11G11B10_FLOAT             = 0x1a,
-    DXGI_FORMAT_R8G8B8A8_TYPELESS           = 0x1b,
-    DXGI_FORMAT_R8G8B8A8_UNORM              = 0x1c,
-    DXGI_FORMAT_R8G8B8A8_UNORM_SRGB         = 0x1d,
-    DXGI_FORMAT_R8G8B8A8_UINT               = 0x1e,
-    DXGI_FORMAT_R8G8B8A8_SNORM              = 0x1f,
-    DXGI_FORMAT_R8G8B8A8_SINT               = 0x20,
-    DXGI_FORMAT_R16G16_TYPELESS             = 0x21,
-    DXGI_FORMAT_R16G16_FLOAT                = 0x22,
-    DXGI_FORMAT_R16G16_UNORM                = 0x23,
-    DXGI_FORMAT_R16G16_UINT                 = 0x24,
-    DXGI_FORMAT_R16G16_SNORM                = 0x25,
-    DXGI_FORMAT_R16G16_SINT                 = 0x26,
-    DXGI_FORMAT_R32_TYPELESS                = 0x27,
-    DXGI_FORMAT_D32_FLOAT                   = 0x28,
-    DXGI_FORMAT_R32_FLOAT                   = 0x29,
-    DXGI_FORMAT_R32_UINT                    = 0x2a,
-    DXGI_FORMAT_R32_SINT                    = 0x2b,
-    DXGI_FORMAT_R24G8_TYPELESS              = 0x2c,
-    DXGI_FORMAT_D24_UNORM_S8_UINT           = 0x2d,
-    DXGI_FORMAT_R24_UNORM_X8_TYPELESS       = 0x2e,
-    DXGI_FORMAT_X24_TYPELESS_G8_UINT        = 0x2f,
-    DXGI_FORMAT_R8G8_TYPELESS               = 0x30,
-    DXGI_FORMAT_R8G8_UNORM                  = 0x31,
-    DXGI_FORMAT_R8G8_UINT                   = 0x32,
-    DXGI_FORMAT_R8G8_SNORM                  = 0x33,
-    DXGI_FORMAT_R8G8_SINT                   = 0x34,
-    DXGI_FORMAT_R16_TYPELESS                = 0x35,
-    DXGI_FORMAT_R16_FLOAT                   = 0x36,
-    DXGI_FORMAT_D16_UNORM                   = 0x37,
-    DXGI_FORMAT_R16_UNORM                   = 0x38,
-    DXGI_FORMAT_R16_UINT                    = 0x39,
-    DXGI_FORMAT_R16_SNORM                   = 0x3a,
-    DXGI_FORMAT_R16_SINT                    = 0x3b,
-    DXGI_FORMAT_R8_TYPELESS                 = 0x3c,
-    DXGI_FORMAT_R8_UNORM                    = 0x3d,
-    DXGI_FORMAT_R8_UINT                     = 0x3e,
-    DXGI_FORMAT_R8_SNORM                    = 0x3f,
-    DXGI_FORMAT_R8_SINT                     = 0x40,
-    DXGI_FORMAT_A8_UNORM                    = 0x41,
-    DXGI_FORMAT_R1_UNORM                    = 0x42,
-    DXGI_FORMAT_R9G9B9E5_SHAREDEXP          = 0x43,
-    DXGI_FORMAT_R8G8_B8G8_UNORM             = 0x44,
-    DXGI_FORMAT_G8R8_G8B8_UNORM             = 0x45,
-    DXGI_FORMAT_BC1_TYPELESS                = 0x46,
-    DXGI_FORMAT_BC1_UNORM                   = 0x47,
-    DXGI_FORMAT_BC1_UNORM_SRGB              = 0x48,
-    DXGI_FORMAT_BC2_TYPELESS                = 0x49,
-    DXGI_FORMAT_BC2_UNORM                   = 0x4a,
-    DXGI_FORMAT_BC2_UNORM_SRGB              = 0x4b,
-    DXGI_FORMAT_BC3_TYPELESS                = 0x4c,
-    DXGI_FORMAT_BC3_UNORM                   = 0x4d,
-    DXGI_FORMAT_BC3_UNORM_SRGB              = 0x4e,
-    DXGI_FORMAT_BC4_TYPELESS                = 0x4f,
-    DXGI_FORMAT_BC4_UNORM                   = 0x50,
-    DXGI_FORMAT_BC4_SNORM                   = 0x51,
-    DXGI_FORMAT_BC5_TYPELESS                = 0x52,
-    DXGI_FORMAT_BC5_UNORM                   = 0x53,
-    DXGI_FORMAT_BC5_SNORM                   = 0x54,
-    DXGI_FORMAT_B5G6R5_UNORM                = 0x55,
-    DXGI_FORMAT_B5G5R5A1_UNORM              = 0x56,
-    DXGI_FORMAT_B8G8R8A8_UNORM              = 0x57,
-    DXGI_FORMAT_B8G8R8X8_UNORM              = 0x58,
-    DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM  = 0x59,
-    DXGI_FORMAT_B8G8R8A8_TYPELESS           = 0x5a,
-    DXGI_FORMAT_B8G8R8A8_UNORM_SRGB         = 0x5b,
-    DXGI_FORMAT_B8G8R8X8_TYPELESS           = 0x5c,
-    DXGI_FORMAT_B8G8R8X8_UNORM_SRGB         = 0x5d,
-    DXGI_FORMAT_BC6H_TYPELESS               = 0x5e,
-    DXGI_FORMAT_BC6H_UF16                   = 0x5f,
-    DXGI_FORMAT_BC6H_SF16                   = 0x60,
-    DXGI_FORMAT_BC7_TYPELESS                = 0x61,
-    DXGI_FORMAT_BC7_UNORM                   = 0x62,
-    DXGI_FORMAT_BC7_UNORM_SRGB              = 0x63,
-    DXGI_FORMAT_AYUV                        = 0x64,
-    DXGI_FORMAT_Y410                        = 0x65,
-    DXGI_FORMAT_Y416                        = 0x66,
-    DXGI_FORMAT_NV12                        = 0x67,
-    DXGI_FORMAT_P010                        = 0x68,
-    DXGI_FORMAT_P016                        = 0x69,
-    DXGI_FORMAT_420_OPAQUE                  = 0x6a,
-    DXGI_FORMAT_YUY2                        = 0x6b,
-    DXGI_FORMAT_Y210                        = 0x6c,
-    DXGI_FORMAT_Y216                        = 0x6d,
-    DXGI_FORMAT_NV11                        = 0x6e,
-    DXGI_FORMAT_AI44                        = 0x6f,
-    DXGI_FORMAT_IA44                        = 0x70,
-    DXGI_FORMAT_P8                          = 0x71,
-    DXGI_FORMAT_A8P8                        = 0x72,
-    DXGI_FORMAT_B4G4R4A4_UNORM              = 0x73,
-
-    DXGI_FORMAT_P208                        = 0x82,
-    DXGI_FORMAT_V208                        = 0x83,
-    DXGI_FORMAT_V408                        = 0x84,
-
-    DXGI_FORMAT_FORCE_UINT                  = 0xffffffff,
-} DXGI_FORMAT;
lib/libc/include/any-windows-any/dxgitype.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/dxgitype.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxgitype.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgitype.idl
@@ -1,94 +0,0 @@
-/*
- * Copyright 2007 Andras Kovacs
- *
- * 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 "dxgicommon.idl";
-import "dxgiformat.idl";
-
-cpp_quote("#if 0")
-typedef unsigned int UINT;
-typedef long BOOL;
-cpp_quote("#endif")
-
-typedef enum DXGI_MODE_ROTATION
-{
-    DXGI_MODE_ROTATION_UNSPECIFIED  = 0x0,
-    DXGI_MODE_ROTATION_IDENTITY     = 0x1,
-    DXGI_MODE_ROTATION_ROTATE90     = 0x2,
-    DXGI_MODE_ROTATION_ROTATE180    = 0x3,
-    DXGI_MODE_ROTATION_ROTATE270    = 0x4,
-} DXGI_MODE_ROTATION;
-
-typedef enum DXGI_MODE_SCANLINE_ORDER
-{
-    DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED        = 0x0,
-    DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE        = 0x1,
-    DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST  = 0x2,
-    DXGI_MODE_SCANLINE_ORDER_LOWER_FIELD_FIRST  = 0x3,
-} DXGI_MODE_SCANLINE_ORDER;
-
-typedef enum DXGI_MODE_SCALING
-{
-    DXGI_MODE_SCALING_UNSPECIFIED   = 0x0,
-    DXGI_MODE_SCALING_CENTERED      = 0x1,
-    DXGI_MODE_SCALING_STRETCHED     = 0x2,
-} DXGI_MODE_SCALING;
-
-cpp_quote("#ifndef D3DCOLORVALUE_DEFINED")
-cpp_quote("#define D3DCOLORVALUE_DEFINED")
-typedef struct _D3DCOLORVALUE
-{
-    float r;
-    float g;
-    float b;
-    float a;
-} D3DCOLORVALUE;
-cpp_quote("#endif")
-typedef D3DCOLORVALUE DXGI_RGBA;
-
-typedef struct DXGI_MODE_DESC
-{
-    UINT Width;
-    UINT Height;
-    DXGI_RATIONAL RefreshRate;
-    DXGI_FORMAT Format;
-    DXGI_MODE_SCANLINE_ORDER ScanlineOrdering;
-    DXGI_MODE_SCALING Scaling;
-} DXGI_MODE_DESC;
-
-typedef struct DXGI_GAMMA_CONTROL_CAPABILITIES
-{
-    BOOL ScaleAndOffsetSupported;
-    float MaxConvertedValue;
-    float MinConvertedValue;
-    UINT NumGammaControlPoints;
-    float ControlPointPositions[1025];
-} DXGI_GAMMA_CONTROL_CAPABILITIES;
-
-typedef struct DXGI_RGB
-{
-    float Red;
-    float Green;
-    float Blue;
-} DXGI_RGB;
-
-typedef struct DXGI_GAMMA_CONTROL
-{
-    DXGI_RGB Scale;
-    DXGI_RGB Offset;
-    DXGI_RGB GammaCurve[1025];
-} DXGI_GAMMA_CONTROL;
lib/libc/include/any-windows-any/dxva.h
@@ -565,6 +565,88 @@ typedef struct _DXVA_Status_VPx
 
 #include <poppack.h>
 
+typedef enum _DXVA_VideoChromaSubsampling
+{
+    DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes  = 0x1,
+    DXVA_VideoChromaSubsampling_Vertically_Cosited              = 0x2,
+    DXVA_VideoChromaSubsampling_Horizontally_Cosited            = 0x4,
+    DXVA_VideoChromaSubsampling_ProgressiveChroma               = 0x8,
+
+    DXVA_VideoChromaSubsampling_Unknown = 0,
+    DXVA_VideoChromaSubsampling_Cosited = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes
+            | DXVA_VideoChromaSubsampling_Vertically_Cosited
+            | DXVA_VideoChromaSubsampling_Horizontally_Cosited,
+    DXVA_VideoChromaSubsampling_DV_PAL = DXVA_VideoChromaSubsampling_Vertically_Cosited
+            | DXVA_VideoChromaSubsampling_Horizontally_Cosited,
+    DXVA_VideoChromaSubsampling_MPEG1 = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,
+    DXVA_VideoChromaSubsampling_MPEG2 = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes
+            | DXVA_VideoChromaSubsampling_Horizontally_Cosited,
+} DXVA_VideoChromaSubsampling;
+
+typedef enum _DXVA_NominalRange
+{
+    DXVA_NominalRange_Unknown = 0,
+    DXVA_NominalRange_0_255 = 1,
+    DXVA_NominalRange_16_235 = 2,
+    DXVA_NominalRange_48_208 = 3,
+    DXVA_NominalRange_Normal = DXVA_NominalRange_0_255,
+    DXVA_NominalRange_Wide = DXVA_NominalRange_16_235,
+} DXVA_NominalRange;
+
+typedef enum _DXVA_VideoTransferMatrix
+{
+    DXVA_VideoTransferMatrix_Unknown = 0,
+    DXVA_VideoTransferMatrix_BT709 = 1,
+    DXVA_VideoTransferMatrix_BT601 = 2,
+    DXVA_VideoTransferMatrix_SMPTE240M = 3,
+} DXVA_VideoTransferMatrix;
+
+typedef enum _DXVA_VideoLighting
+{
+    DXVA_VideoLighting_Unknown = 0,
+    DXVA_VideoLighting_bright = 1,
+    DXVA_VideoLighting_office = 2,
+    DXVA_VideoLighting_dim = 3,
+    DXVA_VideoLighting_dark = 4,
+} DXVA_VideoLighting;
+
+typedef enum _DXVA_VideoPrimaries
+{
+    DXVA_VideoPrimaries_Unknown = 0,
+    DXVA_VideoPrimaries_reserved = 1,
+    DXVA_VideoPrimaries_BT709 = 2,
+    DXVA_VideoPrimaries_BT470_2_SysM = 3,
+    DXVA_VideoPrimaries_BT470_2_SysBG = 4,
+    DXVA_VideoPrimaries_SMPTE170M = 5,
+    DXVA_VideoPrimaries_SMPTE420M = 6,
+    DXVA_VideoPrimaries_EBU3213 = 7,
+    DXVA_VideoPrimaries_SMPTE_C = 8,
+} DXVA_VideoPrimaries;
+
+typedef enum _DXVA_VideoTransferFunction
+{
+    DXVA_VideoTransFunc_Unknown = 0,
+    DXVA_VideoTransFunc_10 = 1,
+    DXVA_VideoTransFunc_18 = 2,
+    DXVA_VideoTransFunc_20 = 3,
+    DXVA_VideoTransFunc_22 = 4,
+    DXVA_VideoTransFunc_22_709 = 5,
+    DXVA_VideoTransFunc_22_240M = 6,
+    DXVA_VideoTransFunc_22_8bit_sRGB = 7,
+    DXVA_VideoTransFunc_28 = 8,
+} DXVA_VideoTransferFunction;
+
+typedef struct _DXVA_ExtendedFormat
+{
+    UINT SampleFormat : 8;
+    UINT VideoChromaSubsampling : 4;
+    DXVA_NominalRange NominalRange : 3;
+    DXVA_VideoTransferMatrix VideoTransferMatrix : 3;
+    DXVA_VideoLighting VideoLighting : 4;
+    DXVA_VideoPrimaries VideoPrimaries : 5;
+    DXVA_VideoTransferFunction VideoTransferFunction : 5;
+} DXVA_ExtendedFormat;
+
 #ifdef __cplusplus
 }
 #endif
lib/libc/include/any-windows-any/dxva2api.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from dxva2api.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxva2api.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1348,7 +1348,7 @@ IDirectXVideoProcessor : public IUnknown
         const DXVA2_VideoProcessBltParams *pBltParams,
         const DXVA2_VideoSample *pSamples,
         UINT NumSamples,
-        HANDLE *pHandleCompleteIDirect3DDeviceManager9) = 0;
+        HANDLE *pHandleComplete) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
@@ -1402,7 +1402,7 @@ typedef struct IDirectXVideoProcessorVtbl {
         const DXVA2_VideoProcessBltParams *pBltParams,
         const DXVA2_VideoSample *pSamples,
         UINT NumSamples,
-        HANDLE *pHandleCompleteIDirect3DDeviceManager9);
+        HANDLE *pHandleComplete);
 
     END_INTERFACE
 } IDirectXVideoProcessorVtbl;
@@ -1423,7 +1423,7 @@ interface IDirectXVideoProcessor {
 #define IDirectXVideoProcessor_GetVideoProcessorCaps(This,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,pCaps)
 #define IDirectXVideoProcessor_GetProcAmpRange(This,ProcAmpCap,pRange) (This)->lpVtbl->GetProcAmpRange(This,ProcAmpCap,pRange)
 #define IDirectXVideoProcessor_GetFilterPropertyRange(This,FilterSetting,pRange) (This)->lpVtbl->GetFilterPropertyRange(This,FilterSetting,pRange)
-#define IDirectXVideoProcessor_VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleCompleteIDirect3DDeviceManager9) (This)->lpVtbl->VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleCompleteIDirect3DDeviceManager9)
+#define IDirectXVideoProcessor_VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete) (This)->lpVtbl->VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete)
 #else
 /*** IUnknown methods ***/
 static FORCEINLINE HRESULT IDirectXVideoProcessor_QueryInterface(IDirectXVideoProcessor* This,REFIID riid,void **ppvObject) {
@@ -1451,8 +1451,8 @@ static FORCEINLINE HRESULT IDirectXVideoProcessor_GetProcAmpRange(IDirectXVideoP
 static FORCEINLINE HRESULT IDirectXVideoProcessor_GetFilterPropertyRange(IDirectXVideoProcessor* This,UINT FilterSetting,DXVA2_ValueRange *pRange) {
     return This->lpVtbl->GetFilterPropertyRange(This,FilterSetting,pRange);
 }
-static FORCEINLINE HRESULT IDirectXVideoProcessor_VideoProcessBlt(IDirectXVideoProcessor* This,IDirect3DSurface9 *pRenderTarget,const DXVA2_VideoProcessBltParams *pBltParams,const DXVA2_VideoSample *pSamples,UINT NumSamples,HANDLE *pHandleCompleteIDirect3DDeviceManager9) {
-    return This->lpVtbl->VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleCompleteIDirect3DDeviceManager9);
+static FORCEINLINE HRESULT IDirectXVideoProcessor_VideoProcessBlt(IDirectXVideoProcessor* This,IDirect3DSurface9 *pRenderTarget,const DXVA2_VideoProcessBltParams *pBltParams,const DXVA2_VideoSample *pSamples,UINT NumSamples,HANDLE *pHandleComplete) {
+    return This->lpVtbl->VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete);
 }
 #endif
 #endif
@@ -1557,27 +1557,24 @@ HRESULT WINAPI DXVA2CreateVideoService(IDirect3DDevice9 *pDD,REFIID riid,void **
 #endif
 static inline DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha(void) {
   DXVA2_Fixed32 f32;
-  *(LONG *)&f32 = 0 + (1 << 16);
+  f32.ll = 0 + (1 << 16);
   return f32;
 }
 
 static inline DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha(void) {
-  DXVA2_Fixed32 f32 = {{{ 0 }}};
+  DXVA2_Fixed32 f32;
+  f32.ll = 0;
   return f32;
 }
 
 static inline float DXVA2FixedToFloat(DXVA2_Fixed32 f32) {
-  typedef struct { USHORT Fraction; SHORT Value; } fields;
-  fields *_f32 = (fields *)(void *)&f32;
-  return (float)_f32->Value + (float)_f32->Fraction / (1 << 16);
+  return (float)f32.Value + (float)f32.Fraction / (1 << 16);
 }
 
 static inline DXVA2_Fixed32 DXVA2FloatToFixed(float f) {
   DXVA2_Fixed32 f32;
-  typedef struct { USHORT Fraction; SHORT Value; } fields;
-  fields *_f32 = (fields *)(void *)&f32;
-  _f32->Value    = ((ULONG) (f * (1 << 16))) >> 16;
-  _f32->Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;
+  f32.Value    = ((ULONG) (f * (1 << 16))) >> 16;
+  f32.Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;
   return f32;
 }
 /* Begin additional prototypes for all interfaces */
lib/libc/include/any-windows-any/dxvahd.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from include/dxvahd.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/dxvahd.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/elscore.h
@@ -8,6 +8,10 @@
 
 #include <objbase.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #ifndef ELSCOREAPI
 #define ELSCOREAPI DECLSPEC_IMPORT
 #endif
@@ -16,6 +20,16 @@
 #define CALLBACK WINAPI
 #endif
 
+/* MAPPING_ENUM_OPTIONS.ServiceType */
+#define ALL_SERVICE_TYPES 0
+#define HIGHLEVEL_SERVICE_TYPES 1
+#define LOWLEVEL_SERVICE_TYPES 2
+
+/* MAPPING_ENUM_OPTIONS.OnlineService */
+#define ALL_SERVICES 0
+#define ONLINE_SERVICES 1
+#define OFFLINE_SERVICES 2
+
 typedef struct _MAPPING_DATA_RANGE {
   DWORD  dwStartIndex;
   DWORD  dwEndIndex;
@@ -140,4 +154,8 @@ ELSCOREAPI HRESULT WINAPI MappingGetServices(
   DWORD *pdwServicesCount
 );
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif /*__INC_ELSCORE__*/
lib/libc/include/any-windows-any/elssrvc.h
@@ -0,0 +1,24 @@
+/**
+ * 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 __ELS_SRVC__
+#define __ELS_SRVC__
+
+#include <windef.h>
+
+/* https://docs.microsoft.com/en-us/windows/win32/intl/transliteration-services */
+
+static const GUID ELS_GUID_LANGUAGE_DETECTION = { 0xcf7e00b1, 0x909b, 0x4d95, { 0xa8, 0xf4, 0x61, 0x1f, 0x7c, 0x37, 0x77, 0x02 } };
+static const GUID ELS_GUID_SCRIPT_DETECTION = { 0x2d64b439, 0x6caf, 0x4f6b, { 0xb6, 0x88, 0xe5, 0xd0, 0xf4, 0xfa, 0xa7, 0xd7 } };
+static const GUID ELS_GUID_TRANSLITERATION_HANT_TO_HANS = { 0xa3a8333b, 0xf4fc, 0x42f6, { 0xa0, 0xc4, 0x04, 0x62, 0xfe, 0x73, 0x17, 0xcb } };
+static const GUID ELS_GUID_TRANSLITERATION_HANS_TO_HANT = { 0x3caccdc8, 0x5590, 0x42dc, { 0x9a, 0x7b, 0xb5, 0xa6, 0xb5, 0xb3, 0xb6, 0x3b } };
+static const GUID ELS_GUID_TRANSLITERATION_MALAYALAM_TO_LATIN = { 0xd8b983b1, 0xf8bf, 0x4a2b, { 0xbc, 0xd5, 0x5b, 0x5e, 0xa2, 0x06, 0x13, 0xe1 } };
+static const GUID ELS_GUID_TRANSLITERATION_DEVANAGARI_TO_LATIN = { 0xc4a4dcfe, 0x2661, 0x4d02, { 0x98, 0x35, 0xf4, 0x81, 0x87, 0x10, 0x98, 0x03 } };
+static const GUID ELS_GUID_TRANSLITERATION_CYRILLIC_TO_LATIN = { 0x3dd12a98, 0x5afd, 0x4903, { 0xa1, 0x3f, 0xe1, 0x7e, 0x6c, 0x0b, 0xfe, 0x01 } };
+static const GUID ELS_GUID_TRANSLITERATION_BENGALI_TO_LATIN = { 0xf4dfd825, 0x91a4, 0x489f, { 0x85, 0x5e, 0x9a, 0xd9, 0xbe, 0xe5, 0x57, 0x27 } };
+static const GUID ELS_GUID_TRANSLITERATION_HANGUL_DECOMPOSITION = { 0x4ba2a721, 0xe43d, 0x41b7, { 0xb3, 0x30, 0x53, 0x6a, 0xe1, 0xe4, 0x88, 0x63 } };
+
+#endif /* __ELS_SRVC__ */
lib/libc/include/any-windows-any/endpointvolume.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/endpointvolume.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/endpointvolume.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/eventtoken.h
@@ -0,0 +1,41 @@
+/*** Autogenerated by WIDL 6.4 from include/eventtoken.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __eventtoken_h__
+#define __eventtoken_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct EventRegistrationToken {
+    INT64 value;
+};
+typedef struct EventRegistrationToken EventRegistrationToken;
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __eventtoken_h__ */
lib/libc/include/any-windows-any/evr.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/evr.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/evr.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/exdisp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/exdisp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/exdisp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -281,6 +281,8 @@ extern "C" {
 #ifdef WINE_NO_UNICODE_MACROS
 #undef FindText
 #endif
+#ifndef __SHDocVw_LIBRARY_DEFINED__
+#define __SHDocVw_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_SHDocVw, 0xeab22ac0, 0x30c1, 0x11cf, 0xa7,0xeb, 0x00,0x00,0xc0,0x5b,0xae,0x0b);
 
@@ -6054,6 +6056,7 @@ __CRT_UUID_DECL(SearchAssistantOC, 0xb45ff030, 0x4447, 0x11d2, 0x85,0xde, 0x00,0
 #endif
 #endif
 
+#endif /* __SHDocVw_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
lib/libc/include/any-windows-any/filter.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/filter.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/filter.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/float.h
@@ -140,7 +140,6 @@
 /*
  * Functions and definitions for controlling the FPU.
  */
-#ifndef	__STRICT_ANSI__
 
 /* TODO: These constants are only valid for x86 machines */
 
@@ -234,17 +233,19 @@
 #define _FPE_STACKUNDERFLOW	0x8b
 #define _FPE_EXPLICITGEN	0x8c    /* raise( SIGFPE ); */
 
+#ifndef	__STRICT_ANSI__
 #define CW_DEFAULT _CW_DEFAULT
 #define MCW_PC  _MCW_PC
 #define PC_24   _PC_24
 #define PC_53   _PC_53
 #define PC_64   _PC_64
+#endif	/* Not __STRICT_ANSI__ */
 
-#if defined(_M_IX86)
+#if defined(__i386__)
 #define _CW_DEFAULT (_RC_NEAR+_PC_53+_EM_INVALID+_EM_ZERODIVIDE+_EM_OVERFLOW+_EM_UNDERFLOW+_EM_INEXACT+_EM_DENORMAL)
-#elif defined(_M_IA64)
+#elif defined(__ia64__)
 #define _CW_DEFAULT (_RC_NEAR+_PC_64+_EM_INVALID+_EM_ZERODIVIDE+_EM_OVERFLOW+_EM_UNDERFLOW+_EM_INEXACT+_EM_DENORMAL)
-#elif defined(_M_AMD64)
+#elif defined(__x86_64__)
 #define _CW_DEFAULT (_RC_NEAR+_EM_INVALID+_EM_ZERODIVIDE+_EM_OVERFLOW+_EM_UNDERFLOW+_EM_INEXACT+_EM_DENORMAL)
 #endif
 
@@ -257,9 +258,9 @@ extern "C" {
 /* Set the FPU control word as cw = (cw & ~unMask) | (unNew & unMask),
  * i.e. change the bits in unMask to have the values they have in unNew,
  * leaving other bits unchanged. */
-_CRTIMP unsigned int __cdecl __MINGW_NOTHROW _controlfp (unsigned int unNew, unsigned int unMask) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
+_CRTIMP unsigned int __cdecl __MINGW_NOTHROW _controlfp (unsigned int _NewValue, unsigned int _Mask) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
 _SECIMP errno_t __cdecl _controlfp_s(unsigned int *_CurrentState, unsigned int _NewValue, unsigned int _Mask);
-_CRTIMP unsigned int __cdecl __MINGW_NOTHROW _control87 (unsigned int unNew, unsigned int unMask);
+_CRTIMP unsigned int __cdecl __MINGW_NOTHROW _control87 (unsigned int _NewValue, unsigned int _Mask);
 
 
 _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _clearfp (void);	/* Clear the FPU status word */
@@ -278,7 +279,9 @@ _CRTIMP unsigned int __cdecl __MINGW_NOTHROW _statusfp (void);	/* Report the FPU
    building your application.	 
 */
 void __cdecl __MINGW_NOTHROW _fpreset (void);
+#ifndef __STRICT_ANSI__
 void __cdecl __MINGW_NOTHROW fpreset (void);
+#endif	/* Not __STRICT_ANSI__ */
 
 /* Global 'variable' for the current floating point error code. */
 _CRTIMP int * __cdecl __MINGW_NOTHROW __fpecode(void);
@@ -311,7 +314,5 @@ extern long double __cdecl _chgsignl (long double);
 
 #endif	/* Not RC_INVOKED */
 
-#endif	/* Not __STRICT_ANSI__ */
-
 #endif /* _MINGW_FLOAT_H_ */
 
lib/libc/include/any-windows-any/fsrm.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/fsrm.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/fsrm.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fsrmenums.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/fsrmenums.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/fsrmenums.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fsrmquota.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/fsrmquota.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/fsrmquota.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fsrmreports.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/fsrmreports.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/fsrmreports.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fsrmscreen.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/fsrmscreen.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/fsrmscreen.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/functiondiscoverykeys_devpkey.h
@@ -9,5 +9,7 @@
 #include <propkeydef.h>
 
 DEFINE_PROPERTYKEY(PKEY_Device_FriendlyName, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14);
+DEFINE_PROPERTYKEY(PKEY_Device_DeviceDesc, 0xa45c254e,0xdf1c,0x4efd,0x80,0x20,0x67,0xd1,0x46,0xa8,0x50,0xe0, 2);
+DEFINE_PROPERTYKEY(PKEY_DeviceInterface_FriendlyName, 0x026e516e,0xb814,0x414b,0x83,0xcd,0x85,0x6d,0x6f,0xef,0x48,0x22, 2);
 
 #endif /* _INC_FUNCTIONDISCOVERYKEYS */
lib/libc/include/any-windows-any/fusion.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/fusion.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/fusion.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fwptypes.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/fwptypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/fwptypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/handleapi.h
@@ -18,6 +18,9 @@ extern "C" {
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
   WINBASEAPI WINBOOL WINAPI CloseHandle (HANDLE hObject);
   WINBASEAPI WINBOOL WINAPI DuplicateHandle (HANDLE hSourceProcessHandle, HANDLE hSourceHandle, HANDLE hTargetProcessHandle, LPHANDLE lpTargetHandle, DWORD dwDesiredAccess, WINBOOL bInheritHandle, DWORD dwOptions);
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10
+  WINBASEAPI WINBOOL WINAPI CompareObjectHandles (HANDLE hFirstObjectHandle, HANDLE hSecondObjectHandle);
+#endif
 #endif
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
lib/libc/include/any-windows-any/hstring.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/hstring.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/hstring.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/icftypes.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/icftypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/icftypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/icodecapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/icodecapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/icodecapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/iketypes.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/iketypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/iketypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/inputscope.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from inputscope.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/inputscope.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/inspectable.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/inspectable.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/inspectable.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/intrin.h
@@ -47,7 +47,7 @@
  * C++ linkage (when GCC headers are explicitly included before intrin.h), but at least their
  * guards will prevent duplicated declarations and avoid conflicts.
  *
- * On GCC 4.9 we may always include those headers. On older GCCs, we may do it only if CPU
+ * On GCC 4.9 and Clang we may always include those headers. On older GCCs, we may do it only if CPU
  * features used by them are enabled, so we need to check macros like __SSE__ or __MMX__ first.
  */
 #if __MINGW_GNUC_PREREQ(4, 9) || defined(__clang__)
@@ -56,11 +56,7 @@
 
 #if defined(__GNUC__) && \
    (defined(__i386__) || defined(__x86_64__))
-  extern unsigned int __builtin_ia32_crc32qi (unsigned int, unsigned char);
-  extern unsigned int __builtin_ia32_crc32hi (unsigned int, unsigned short);
-  extern unsigned int __builtin_ia32_crc32si (unsigned int, unsigned int);
 #ifndef _MM_MALLOC_H_INCLUDED
-#define _MM_MALLOC_H_INCLUDED
 #include <stdlib.h>
 #include <errno.h>
 /* Make sure _mm_malloc and _mm_free are defined.  */
@@ -229,7 +225,7 @@ extern "C" {
 #define __MACHINEX86X_NOWIN64 __MACHINEZ
 #endif
 
-#if !(_M_ARM)
+#if !(defined(__arm__))
 #undef __MACHINESA
 #undef __MACHINEARMX
 #undef __MACHINECC
lib/libc/include/any-windows-any/inttypes.h
@@ -249,7 +249,7 @@ typedef struct {
  #define SCNuPTR "u"
 #endif
 
-#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
+#if defined(_UCRT) || __USE_MINGW_ANSI_STDIO
 /*
  * no length modifier for char types prior to C9x
  * MS runtime  scanf appears to treat "hh" as "h" 
lib/libc/include/any-windows-any/locale.h
@@ -61,6 +61,16 @@ extern "C" {
     char n_sep_by_space;
     char p_sign_posn;
     char n_sign_posn;
+#if __MSVCRT_VERSION__ >= 0xA00 || _WIN32_WINNT >= 0x601
+    wchar_t* _W_decimal_point;
+    wchar_t* _W_thousands_sep;
+    wchar_t* _W_int_curr_symbol;
+    wchar_t* _W_currency_symbol;
+    wchar_t* _W_mon_decimal_point;
+    wchar_t* _W_mon_thousands_sep;
+    wchar_t* _W_positive_sign;
+    wchar_t* _W_negative_sign;
+#endif
   };
 #endif
 
@@ -86,6 +96,8 @@ extern "C" {
   _locale_t __cdecl __create_locale(int _Category,const char *_Locale);
   void __cdecl __free_locale(_locale_t _Locale);
 
+  _CRTIMP unsigned int __cdecl ___lc_codepage_func(void);
+
 #ifndef _WLOCALE_DEFINED
 #define _WLOCALE_DEFINED
   _CRTIMP wchar_t *__cdecl _wsetlocale(int _Category,const wchar_t *_Locale);
lib/libc/include/any-windows-any/locationapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/locationapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/locationapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/malloc.h
@@ -52,25 +52,6 @@ extern "C" {
 
   extern unsigned int _amblksiz;
 
-/* Make sure that X86intrin.h doesn't produce here collisions.  */
-#if (!defined (_XMMINTRIN_H_INCLUDED) && !defined (_MM_MALLOC_H_INCLUDED)) || defined(_aligned_malloc)
-#define __DO_ALIGN_DEFINES
-#endif
-
-#ifndef _MM_MALLOC_H_INCLUDED
-#define _MM_MALLOC_H_INCLUDED
-#endif
-
-#ifdef __DO_ALIGN_DEFINES
-#pragma push_macro("_aligned_free")
-#pragma push_macro("_aligned_malloc")
-#undef _aligned_free
-#undef _aligned_malloc
-#endif
-
-#define _mm_free(a) _aligned_free(a)
-#define _mm_malloc(a,b) _aligned_malloc(a,b)
-
 #ifndef _CRT_ALLOCATION_DEFINED
 #define _CRT_ALLOCATION_DEFINED
   void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);
@@ -79,10 +60,8 @@ extern "C" {
   void *__cdecl realloc(void *_Memory,size_t _NewSize);
   _CRTIMP void *__cdecl _recalloc(void *_Memory,size_t _Count,size_t _Size);
 
-#ifdef __DO_ALIGN_DEFINES
   _CRTIMP void __cdecl _aligned_free(void *_Memory);
   _CRTIMP void *__cdecl _aligned_malloc(size_t _Size,size_t _Alignment);
-#endif
 
   _CRTIMP void *__cdecl _aligned_offset_malloc(size_t _Size,size_t _Alignment,size_t _Offset);
   _CRTIMP void *__cdecl _aligned_realloc(void *_Memory,size_t _Size,size_t _Alignment);
@@ -91,20 +70,15 @@ extern "C" {
   _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset);
 #endif
 
-#ifdef __DO_ALIGN_DEFINES
-#undef __DO_ALIGN_DEFINES
-
-#pragma pop_macro("_aligned_malloc")
-#pragma pop_macro("_aligned_free")
-
-#endif
-
 /* Users should really use MS provided versions */
 void * __mingw_aligned_malloc (size_t _Size, size_t _Alignment);
 void __mingw_aligned_free (void *_Memory);
 void * __mingw_aligned_offset_realloc (void *_Memory, size_t _Size, size_t _Alignment, size_t _Offset);
 void * __mingw_aligned_realloc (void *_Memory, size_t _Size, size_t _Offset);
 
+/* Get the compiler's definition of _mm_malloc and _mm_free. */
+#include <mm_malloc.h>
+
 #define _MAX_WAIT_MALLOC_CRT 60000
 
 #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
lib/libc/include/any-windows-any/math.h
@@ -143,8 +143,13 @@ extern "C" {
 #endif
 
 #ifndef _HUGE
+#ifdef _UCRT
+  extern double const _HUGE;
+#define _HUGE _HUGE
+#else
   extern double * __MINGW_IMP_SYMBOL(_HUGE);
 #define _HUGE	(* __MINGW_IMP_SYMBOL(_HUGE))
+#endif /* _UCRT */
 #endif
 
 #ifdef __GNUC__
lib/libc/include/any-windows-any/mediaobj.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/mediaobj.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mediaobj.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mediaobj.idl
@@ -1,303 +0,0 @@
-/*
- * Copyright (C) 2002 Alexandre Julliard
- * Copyright (C) 2004 Vincent Bรฉron
- *
- * 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 "unknwn.idl";
-import "objidl.idl";
-import "strmif.idl";
-
-typedef struct _DMOMediaType
-{
-    GUID majortype;
-    GUID subtype;
-    BOOL bFixedSizeSamples;
-    BOOL bTemporalCompression;
-    ULONG lSampleSize;
-    GUID formattype;
-    IUnknown *pUnk;
-    ULONG cbFormat;
-    BYTE *pbFormat;
-} DMO_MEDIA_TYPE;
-
-/*****************************************************************************
- * IEnumDMO interface
- */
-[
-    object,
-    uuid(2C3CD98A-2BFA-4A53-9C27-5249BA64BA0F),
-    pointer_default(unique)
-]
-interface IEnumDMO : IUnknown
-{
-    [local]
-    HRESULT Next(
-        [in] DWORD cItemsToFetch,
-        [out] CLSID *pCLSID,
-        [out] WCHAR **Names,
-        [out] DWORD *pcItemsFetched
-    );
-
-    HRESULT Skip(
-        [in] DWORD cItemsToSkip
-    );
-
-    HRESULT Reset();
-
-    HRESULT Clone(
-        [out] IEnumDMO **ppEnum
-    );
-}
-
-/*****************************************************************************
- * IMediaBuffer interface
- */
-[
-    object,
-    uuid(59eff8b9-938c-4a26-82f2-95cb84cdc837),
-    local
-]
-interface IMediaBuffer : IUnknown
-{
-    HRESULT SetLength(
-       DWORD cbLength
-    );
-
-    HRESULT GetMaxLength(
-       [out] DWORD *pcbMaxLength
-    );
-
-    HRESULT GetBufferAndLength(
-       [out] BYTE **ppBuffer,
-       [out] DWORD *pcbLength
-    );
-}
-
-enum _DMO_INPUT_STATUS_FLAGS
-{
-    DMO_INPUT_STATUSF_ACCEPT_DATA = 0x00000001,
-};
-
-enum _DMO_INPUT_DATA_BUFFER_FLAGS
-{
-    DMO_INPUT_DATA_BUFFERF_SYNCPOINT    = 0x00000001,
-    DMO_INPUT_DATA_BUFFERF_TIME         = 0x00000002,
-    DMO_INPUT_DATA_BUFFERF_TIMELENGTH   = 0x00000004,
-};
-
-enum _DMO_PROCESS_OUTPUT_FLAGS
-{
-    DMO_PROCESS_OUTPUT_DISCARD_WHEN_NO_BUFFER = 0x00000001,
-};
-
-typedef struct _DMO_OUTPUT_DATA_BUFFER {
-    IMediaBuffer *pBuffer;
-    DWORD dwStatus;
-    REFERENCE_TIME rtTimestamp;
-    REFERENCE_TIME rtTimelength;
-} DMO_OUTPUT_DATA_BUFFER, *PDMO_OUTPUT_DATA_BUFFER;
-
-enum _DMO_INPLACE_PROCESS_FLAGS {
-    DMO_INPLACE_NORMAL = 0x00000000,
-    DMO_INPLACE_ZERO   = 0x00000001
-};
-
-enum _DMO_SET_TYPE_FLAGS {
-    DMO_SET_TYPEF_TEST_ONLY = 0x00000001,
-    DMO_SET_TYPEF_CLEAR     = 0x00000002,
-};
-
-enum _DMO_OUTPUT_DATA_BUFFERF_FLAGS {
-    DMO_OUTPUT_DATA_BUFFERF_SYNCPOINT   = 0x00000001,
-    DMO_OUTPUT_DATA_BUFFERF_TIME        = 0x00000002,
-    DMO_OUTPUT_DATA_BUFFERF_TIMELENGTH  = 0x00000004,
-    DMO_OUTPUT_DATA_BUFFERF_INCOMPLETE  = 0x01000000,
-};
-
-/*****************************************************************************
- * IMediaObject interface
- */
-[
-    object,
-    uuid(d8ad0f58-5494-4102-97c5-ec798e59bcf4),
-    local
-]
-interface IMediaObject : IUnknown
-{
-    HRESULT GetStreamCount(
-        [out] DWORD *pcInputStreams,
-        [out] DWORD *pcOutputStreams
-    );
-
-    HRESULT GetInputStreamInfo(
-        DWORD dwInputStreamIndex,
-        [out] DWORD *pdwFlags
-    );
-
-    HRESULT GetOutputStreamInfo(
-        DWORD dwOutputStreamIndex,
-        [out] DWORD *pdwFlags
-    );
-
-    HRESULT GetInputType(
-        DWORD dwInputStreamIndex,
-        DWORD dwTypeIndex,
-        [out] DMO_MEDIA_TYPE *pmt
-    );
-
-    HRESULT GetOutputType(
-        DWORD dwOutputStreamIndex,
-        DWORD dwTypeIndex,
-        [out] DMO_MEDIA_TYPE *pmt
-    );
-
-    HRESULT SetInputType(
-        DWORD dwInputStreamIndex,
-        [in] const DMO_MEDIA_TYPE *pmt,
-        DWORD dwFlags
-    );
-
-    HRESULT SetOutputType(
-        DWORD dwOutputStreamIndex,
-        [in] const DMO_MEDIA_TYPE *pmt,
-        DWORD dwFlags
-    );
-
-    HRESULT GetInputCurrentType(
-        DWORD dwInputStreamIndex,
-        [out] DMO_MEDIA_TYPE *pmt
-    );
-
-    HRESULT GetOutputCurrentType(
-        DWORD dwOutputStreamIndex,
-        [out] DMO_MEDIA_TYPE *pmt
-    );
-
-    HRESULT GetInputSizeInfo(
-        DWORD dwInputStreamIndex,
-        [out] DWORD *pcbSize,
-        [out] DWORD *pcbMaxLookahead,
-        [out] DWORD *pcbAlignment
-    );
-
-    HRESULT GetOutputSizeInfo(
-        DWORD dwOutputStreamIndex,
-        [out] DWORD *pcbSize,
-        [out] DWORD *pcbAlignment
-    );
-
-    HRESULT GetInputMaxLatency(
-        DWORD dwInputStreamIndex,
-        [out] REFERENCE_TIME *prtMaxLatency
-    );
-
-    HRESULT SetInputMaxLatency(
-        DWORD dwInputStreamIndex,
-        REFERENCE_TIME rtMaxLatency
-    );
-
-    HRESULT Flush();
-
-    HRESULT Discontinuity(DWORD dwInputStreamIndex);
-
-    HRESULT AllocateStreamingResources();
-
-    HRESULT FreeStreamingResources();
-
-    HRESULT GetInputStatus(
-        DWORD dwInputStreamIndex,
-        [out] DWORD *dwFlags
-    );
-
-    HRESULT ProcessInput(
-        DWORD dwInputStreamIndex,
-        IMediaBuffer *pBuffer,
-        DWORD dwFlags,
-        REFERENCE_TIME rtTimestamp,
-        REFERENCE_TIME rtTimelength
-    );
-
-    HRESULT ProcessOutput(
-        DWORD dwFlags,
-        DWORD cOutputBufferCount,
-        [in,out] DMO_OUTPUT_DATA_BUFFER *pOutputBuffers,
-        [out] DWORD *pdwStatus
-    );
-
-    HRESULT Lock(LONG bLock);
-}
-
-/*****************************************************************************
- * IMediaObjectInPlace interface
- */
-
-[
-    object,
-    uuid(651b9ad0-0fc7-4aa9-9538-d89931010741),
-    local
-]
-interface IMediaObjectInPlace : IUnknown {
-    HRESULT Process(
-        [in] ULONG ulSize,
-        [in,out] BYTE* pData,
-        [in] REFERENCE_TIME refTimeStart,
-        [in] DWORD dwFlags
-    );
-
-    HRESULT Clone(
-        [out] IMediaObjectInPlace **ppMediaObject
-    );
-
-    HRESULT GetLatency(
-        [out] REFERENCE_TIME *pLatencyTime
-    );
-}
-
-enum _DMO_QUALITY_STATUS_FLAGS
-{
-    DMO_QUALITY_STATUS_ENABLED = 0x00000001,
-};
-
-[
-    object,
-    uuid(65abea96-cf36-453f-af8a-705e98f16260),
-    local
-]
-interface IDMOQualityControl : IUnknown
-{
-    HRESULT SetNow([in] REFERENCE_TIME now);
-    HRESULT SetStatus([in] DWORD flags);
-    HRESULT GetStatus([out] DWORD *flags);
-}
-
-enum _DMO_VIDEO_OUTPUT_STREAM_FLAGS
-{
-    DMO_VOSF_NEEDS_PREVIOUS_SAMPLE = 0x00000001,
-};
-
-[
-    object,
-    uuid(be8f4f4e-5b16-4d29-b350-7f6b5d9298ac),
-    local
-]
-interface IDMOVideoOutputOptimizations : IUnknown
-{
-    HRESULT QueryOperationModePreferences(ULONG index, DWORD *flags);
-    HRESULT SetOperationMode(ULONG index, DWORD flags);
-    HRESULT GetCurrentOperationMode(ULONG index, DWORD *flags);
-    HRESULT GetCurrentSampleRequirements(ULONG index, DWORD *flags);
-}
lib/libc/include/any-windows-any/medparam.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from direct-x/include/medparam.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/medparam.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/medparam.idl
@@ -1,136 +0,0 @@
-/* This file is part of the KDE project
-   Copyright (C) 2007 Shane King
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public
-   License as published by the Free Software Foundation; either
-   version 2 of the License, or (at your option) any later version.
-
-   This program 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public License
-   along with this program; see the file COPYING.  If not, write to
-   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.
-*/
-
-import "unknwn.idl";
-import "strmif.idl";
-
-typedef DWORD MP_TIMEDATA;
-typedef DWORD MP_CAPS;
-typedef DWORD MP_FLAGS;
-typedef float MP_DATA;
-
-typedef enum _MP_Type {
-    MPT_INT,
-    MPT_FLOAT,
-    MPT_BOOL,
-    MPT_ENUM,
-    MPT_MAX,
-} MP_TYPE;
-
-typedef enum _MP_CURVE_TYPE {
-    MP_CURVE_JUMP       = 0x0001, 
-    MP_CURVE_LINEAR     = 0x0002, 
-    MP_CURVE_SQUARE     = 0x0004, 
-    MP_CURVE_INVSQUARE  = 0x0008, 
-    MP_CURVE_SINE       = 0x0010, 
-} MP_CURVE_TYPE;
-
-typedef struct _MP_PARAMINFO {
-    MP_TYPE    mpType;
-    MP_CAPS    mopCaps;
-    MP_DATA    mpdMinValue;
-    MP_DATA    mpdMaxValue;
-    MP_DATA    mpdNeutralValue;
-    WCHAR      szUnitText[32];
-    WCHAR      szLabel[32]; 
-} MP_PARAMINFO;
-
-typedef struct _MP_ENVELOPE_SEGMENT {
-    REFERENCE_TIME   rtStart;
-    REFERENCE_TIME   rtEnd;
-    MP_DATA          valStart;
-    MP_DATA          valEnd;
-    MP_CURVE_TYPE    iCurve;
-    MP_FLAGS         flags;
-} MP_ENVELOPE_SEGMENT;
-
-const MP_CAPS MP_CAPS_CURVE_JUMP        = MP_CURVE_JUMP;
-const MP_CAPS MP_CAPS_CURVE_LINEAR      = MP_CURVE_LINEAR;
-const MP_CAPS MP_CAPS_CURVE_SQUARE      = MP_CURVE_SQUARE;
-const MP_CAPS MP_CAPS_CURVE_INVSQUARE   = MP_CURVE_INVSQUARE;
-const MP_CAPS MP_CAPS_CURVE_SINE        = MP_CURVE_SINE;
-
-[
-    object,
-    uuid(6d6cbb61-a223-44aa-842f-a2f06750be6e)
-]
-interface IMediaParams : IUnknown
-{
-    HRESULT AddEnvelope(
-        DWORD dwParamIndex,
-        DWORD cPoints,
-        MP_ENVELOPE_SEGMENT *pEnvelope
-    );
-
-    HRESULT FlushEnvelope(
-        DWORD dwParamIndex,
-        REFERENCE_TIME refTimeStart,
-        REFERENCE_TIME refTimeEnd
-    );
-
-    HRESULT GetParam(
-        DWORD dwParamIndex,
-        MP_DATA *pValue
-    );
-
-    HRESULT SetParam(
-        DWORD dwParamIndex,
-        MP_DATA value
-    );
-
-    HRESULT SetTimeFormat(
-        GUID guidTimeFormat,
-        MP_TIMEDATA mpTimeData
-    );
-}
-
-[
-    object,
-    uuid(6d6cbb60-a223-44aa-842f-a2f06750be6d)
-]
-interface IMediaParamInfo : IUnknown
-{
-    HRESULT GetParamCount(
-        DWORD *pdwParams
-    );
-    
-    HRESULT GetParamInfo(
-        DWORD dwParamIndex,
-        MP_PARAMINFO *pInfo
-    );
-    
-    HRESULT GetParamText(
-        DWORD dwParamIndex,
-        WCHAR **ppwchText
-    );   
-   
-    HRESULT GetNumTimeFormats(
-        DWORD *pdwNumTimeFormats
-    );
- 
-    HRESULT GetSupportedTimeFormat(
-        DWORD dwFormatIndex,
-        GUID *pguidTimeFormat
-    );
-    
-    HRESULT GetCurrentTimeFormat(
-        GUID *pguidTimeFormat,
-        MP_TIMEDATA *pTimeData
-    );    
-}
lib/libc/include/any-windows-any/mferror.h
@@ -64,6 +64,158 @@
 #define MF_E_INVALID_POSITION          _HRESULT_TYPEDEF_(0xc00d36e5)
 #define MF_E_ATTRIBUTENOTFOUND         _HRESULT_TYPEDEF_(0xc00d36e6)
 #define MF_E_PROPERTY_TYPE_NOT_ALLOWED _HRESULT_TYPEDEF_(0xc00d36e7)
+#define MF_E_PROPERTY_TYPE_NOT_SUPPORTED _HRESULT_TYPEDEF_(0xc00d36e8)
+#define MF_E_PROPERTY_EMPTY              _HRESULT_TYPEDEF_(0xc00d36e9)
+#define MF_E_PROPERTY_NOT_EMPTY          _HRESULT_TYPEDEF_(0xc00d36ea)
+#define MF_E_PROPERTY_VECTOR_NOT_ALLOWED _HRESULT_TYPEDEF_(0xc00d36eb)
+#define MF_E_PROPERTY_VECTOR_REQUIRED    _HRESULT_TYPEDEF_(0xc00d36ec)
+#define MF_E_OPERATION_CANCELLED         _HRESULT_TYPEDEF_(0xc00d36ed)
+#define MF_E_BYTESTREAM_NOT_SEEKABLE     _HRESULT_TYPEDEF_(0xc00d36ee)
+#define MF_E_DISABLED_IN_SAFEMODE        _HRESULT_TYPEDEF_(0xc00d36ef)
+#define MF_E_CANNOT_PARSE_BYTESTREAM     _HRESULT_TYPEDEF_(0xc00d36f0)
+#define MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS _HRESULT_TYPEDEF_(0xc00d36f1)
+#define MF_E_MEDIAPROC_WRONGSTATE        _HRESULT_TYPEDEF_(0xc00d36f2)
+#define MF_E_RT_THROUGHPUT_NOT_AVAILABLE _HRESULT_TYPEDEF_(0xc00d36f3)
+#define MF_E_RT_TOO_MANY_CLASSES         _HRESULT_TYPEDEF_(0xc00d36f4)
+#define MF_E_RT_WOULDBLOCK               _HRESULT_TYPEDEF_(0xc00d36f5)
+#define MF_E_NO_BITPUMP                  _HRESULT_TYPEDEF_(0xc00d36f6)
+#define MF_E_RT_OUTOFMEMORY              _HRESULT_TYPEDEF_(0xc00d36f7)
+#define MF_E_RT_WORKQUEUE_CLASS_NOT_SPECIFIED _HRESULT_TYPEDEF_(0xc00d36f8)
+#define MF_E_INSUFFICIENT_BUFFER         _HRESULT_TYPEDEF_(0xc00d7170)
+#define MF_E_CANNOT_CREATE_SINK          _HRESULT_TYPEDEF_(0xc00d36fa)
+#define MF_E_BYTESTREAM_UNKNOWN_LENGTH   _HRESULT_TYPEDEF_(0xc00d36fb)
+#define MF_E_SESSION_PAUSEWHILESTOPPED   _HRESULT_TYPEDEF_(0xc00d36fc)
+#define MF_S_ACTIVATE_REPLACED           _HRESULT_TYPEDEF_(0x000d36fd)
+#define MF_E_FORMAT_CHANGE_NOT_SUPPORTED _HRESULT_TYPEDEF_(0xc00d36fe)
+#define MF_E_INVALID_WORKQUEUE           _HRESULT_TYPEDEF_(0xc00d36ff)
+#define MF_E_DRM_UNSUPPORTED             _HRESULT_TYPEDEF_(0xc00d3700)
+#define MF_E_UNAUTHORIZED                _HRESULT_TYPEDEF_(0xc00d3701)
+#define MF_E_OUT_OF_RANGE                _HRESULT_TYPEDEF_(0xc00d3702)
+#define MF_E_INVALID_CODEC_MERIT         _HRESULT_TYPEDEF_(0xc00d3703)
+#define MF_E_HW_MFT_FAILED_START_STREAMING _HRESULT_TYPEDEF_(0xc00d3704)
+#define MF_E_OPERATION_IN_PROGRESS       _HRESULT_TYPEDEF_(0xc00d3705)
+#define MF_E_HARDWARE_DRM_UNSUPPORTED    _HRESULT_TYPEDEF_(0xc00d3706)
+#define MF_E_DURATION_TOO_LONG           _HRESULT_TYPEDEF_(0xc00d3707)
+#define MF_E_OPERATION_UNSUPPORTED_AT_D3D_FEATURE_LEVEL _HRESULT_TYPEDEF_(0xc00d3708)
+#define MF_E_UNSUPPORTED_MEDIATYPE_AT_D3D_FEATURE_LEVEL _HRESULT_TYPEDEF_(0xc00d3709)
+#define MF_S_ASF_PARSEINPROGRESS         _HRESULT_TYPEDEF_(0x400d3a98)
+#define MF_E_ASF_PARSINGINCOMPLETE       _HRESULT_TYPEDEF_(0xc00d3a98)
+#define MF_E_ASF_MISSINGDATA             _HRESULT_TYPEDEF_(0xc00d3a99)
+#define MF_E_ASF_INVALIDDATA             _HRESULT_TYPEDEF_(0xc00d3a9a)
+#define MF_E_ASF_OPAQUEPACKET            _HRESULT_TYPEDEF_(0xc00d3a9b)
+#define MF_E_ASF_NOINDEX                 _HRESULT_TYPEDEF_(0xc00d3a9c)
+#define MF_E_ASF_OUTOFRANGE              _HRESULT_TYPEDEF_(0xc00d3a9d)
+#define MF_E_ASF_INDEXNOTLOADED          _HRESULT_TYPEDEF_(0xc00d3a9e)
+#define MF_E_ASF_TOO_MANY_PAYLOADS       _HRESULT_TYPEDEF_(0xc00d3a9f)
+#define MF_E_ASF_UNSUPPORTED_STREAM_TYPE _HRESULT_TYPEDEF_(0xc00d3aa0)
+#define MF_E_ASF_DROPPED_PACKET          _HRESULT_TYPEDEF_(0xc00d3aa1)
+#define MF_E_NO_EVENTS_AVAILABLE         _HRESULT_TYPEDEF_(0xc00d3e80)
+#define MF_E_INVALID_STATE_TRANSITION    _HRESULT_TYPEDEF_(0xc00d3e82)
+#define MF_E_END_OF_STREAM               _HRESULT_TYPEDEF_(0xc00d3e84)
+#define MF_E_SHUTDOWN                    _HRESULT_TYPEDEF_(0xc00d3e85)
+#define MF_E_MP3_NOTFOUND                _HRESULT_TYPEDEF_(0xc00d3e86)
+#define MF_E_MP3_OUTOFDATA               _HRESULT_TYPEDEF_(0xc00d3e87)
+#define MF_E_MP3_NOTMP3                  _HRESULT_TYPEDEF_(0xc00d3e88)
+#define MF_E_MP3_NOTSUPPORTED            _HRESULT_TYPEDEF_(0xc00d3e89)
+#define MF_E_NO_DURATION                 _HRESULT_TYPEDEF_(0xc00d3e8a)
+#define MF_E_INVALID_FORMAT              _HRESULT_TYPEDEF_(0xc00d3e8c)
+#define MF_E_PROPERTY_NOT_FOUND          _HRESULT_TYPEDEF_(0xc00d3e8d)
+#define MF_E_PROPERTY_READ_ONLY          _HRESULT_TYPEDEF_(0xc00d3e8e)
+#define MF_E_PROPERTY_NOT_ALLOWED        _HRESULT_TYPEDEF_(0xc00d3e8f)
+#define MF_E_MEDIA_SOURCE_NOT_STARTED    _HRESULT_TYPEDEF_(0xc00d3e91)
+#define MF_E_UNSUPPORTED_FORMAT          _HRESULT_TYPEDEF_(0xc00d3e98)
+#define MF_E_MP3_BAD_CRC                 _HRESULT_TYPEDEF_(0xc00d3e99)
+#define MF_E_NOT_PROTECTED               _HRESULT_TYPEDEF_(0xc00d3e9a)
+#define MF_E_MEDIA_SOURCE_WRONGSTATE     _HRESULT_TYPEDEF_(0xc00d3e9b)
+#define MF_E_MEDIA_SOURCE_NO_STREAMS_SELECTED _HRESULT_TYPEDEF_(0xc00d3e9c)
+#define MF_E_CANNOT_FIND_KEYFRAME_SAMPLE _HRESULT_TYPEDEF_(0xc00d3e9d)
+#define MF_E_UNSUPPORTED_CHARACTERISTICS _HRESULT_TYPEDEF_(0xc00d3e9e)
+#define MF_E_NO_AUDIO_RECORDING_DEVICE   _HRESULT_TYPEDEF_(0xc00d3e9f)
+#define MF_E_AUDIO_RECORDING_DEVICE_IN_USE _HRESULT_TYPEDEF_(0xc00d3ea0)
+#define MF_E_AUDIO_RECORDING_DEVICE_INVALIDATED _HRESULT_TYPEDEF_(0xc00d3ea1)
+#define MF_E_VIDEO_RECORDING_DEVICE_INVALIDATED _HRESULT_TYPEDEF_(0xc00d3ea2)
+#define MF_E_VIDEO_RECORDING_DEVICE_PREEMPTED _HRESULT_TYPEDEF_(0xc00d3ea3)
+#define MF_E_NETWORK_RESOURCE_FAILURE    _HRESULT_TYPEDEF_(0xc00d4268)
+#define MF_E_NET_WRITE                   _HRESULT_TYPEDEF_(0xc00d4269)
+#define MF_E_NET_READ                    _HRESULT_TYPEDEF_(0xc00d426a)
+#define MF_E_NET_REQUIRE_NETWORK         _HRESULT_TYPEDEF_(0xc00d426b)
+#define MF_E_NET_REQUIRE_ASYNC           _HRESULT_TYPEDEF_(0xc00d426c)
+#define MF_E_NET_BWLEVEL_NOT_SUPPORTED   _HRESULT_TYPEDEF_(0xc00d426d)
+#define MF_E_NET_STREAMGROUPS_NOT_SUPPORTED _HRESULT_TYPEDEF_(0xc00d426e)
+#define MF_E_NET_MANUALSS_NOT_SUPPORTED  _HRESULT_TYPEDEF_(0xc00d426f)
+#define MF_E_NET_INVALID_PRESENTATION_DESCRIPTOR _HRESULT_TYPEDEF_(0xc00d4270)
+#define MF_E_NET_CACHESTREAM_NOT_FOUND   _HRESULT_TYPEDEF_(0xc00d4271)
+#define MF_I_MANUAL_PROXY                _HRESULT_TYPEDEF_(0x400d4272)
+#define MF_E_NET_REQUIRE_INPUT           _HRESULT_TYPEDEF_(0xc00d4274)
+#define MF_E_NET_REDIRECT                _HRESULT_TYPEDEF_(0xc00d4275)
+#define MF_E_NET_REDIRECT_TO_PROXY       _HRESULT_TYPEDEF_(0xc00d4276)
+#define MF_E_NET_TOO_MANY_REDIRECTS      _HRESULT_TYPEDEF_(0xc00d4277)
+#define MF_E_NET_TIMEOUT                 _HRESULT_TYPEDEF_(0xc00d4278)
+#define MF_E_NET_CLIENT_CLOSE            _HRESULT_TYPEDEF_(0xc00d4279)
+#define MF_E_NET_BAD_CONTROL_DATA        _HRESULT_TYPEDEF_(0xc00d427a)
+#define MF_E_NET_INCOMPATIBLE_SERVER     _HRESULT_TYPEDEF_(0xc00d427b)
+#define MF_E_NET_UNSAFE_URL              _HRESULT_TYPEDEF_(0xc00d427c)
+#define MF_E_NET_CACHE_NO_DATA           _HRESULT_TYPEDEF_(0xc00d427d)
+#define MF_E_NET_EOL                     _HRESULT_TYPEDEF_(0xc00d427e)
+#define MF_E_NET_BAD_REQUEST             _HRESULT_TYPEDEF_(0xc00d427f)
+#define MF_E_NET_INTERNAL_SERVER_ERROR   _HRESULT_TYPEDEF_(0xc00d4280)
+#define MF_E_NET_SESSION_NOT_FOUND       _HRESULT_TYPEDEF_(0xc00d4281)
+#define MF_E_NET_NOCONNECTION            _HRESULT_TYPEDEF_(0xc00d4282)
+#define MF_E_NET_CONNECTION_FAILURE      _HRESULT_TYPEDEF_(0xc00d4283)
+#define MF_E_NET_INCOMPATIBLE_PUSHSERVER _HRESULT_TYPEDEF_(0xc00d4284)
+#define MF_E_NET_SERVER_ACCESSDENIED     _HRESULT_TYPEDEF_(0xc00d4285)
+#define MF_E_NET_PROXY_ACCESSDENIED      _HRESULT_TYPEDEF_(0xc00d4286)
+#define MF_E_NET_CANNOTCONNECT           _HRESULT_TYPEDEF_(0xc00d4287)
+#define MF_E_NET_INVALID_PUSH_TEMPLATE   _HRESULT_TYPEDEF_(0xc00d4288)
+#define MF_E_NET_INVALID_PUSH_PUBLISHING_POINT _HRESULT_TYPEDEF_(0xc00d4289)
+#define MF_E_NET_BUSY                    _HRESULT_TYPEDEF_(0xc00d428a)
+#define MF_E_NET_RESOURCE_GONE           _HRESULT_TYPEDEF_(0xc00d428b)
+#define MF_E_NET_ERROR_FROM_PROXY        _HRESULT_TYPEDEF_(0xc00d428c)
+#define MF_E_NET_PROXY_TIMEOUT           _HRESULT_TYPEDEF_(0xc00d428d)
+#define MF_E_NET_SERVER_UNAVAILABLE      _HRESULT_TYPEDEF_(0xc00d428e)
+#define MF_E_NET_TOO_MUCH_DATA           _HRESULT_TYPEDEF_(0xc00d428f)
+#define MF_E_NET_SESSION_INVALID         _HRESULT_TYPEDEF_(0xc00d4290)
+#define MF_E_OFFLINE_MODE                _HRESULT_TYPEDEF_(0xc00d4291)
+#define MF_E_NET_UDP_BLOCKED             _HRESULT_TYPEDEF_(0xc00d4292)
+#define MF_E_NET_UNSUPPORTED_CONFIGURATION _HRESULT_TYPEDEF_(0xc00d4293)
+#define MF_E_NET_PROTOCOL_DISABLED       _HRESULT_TYPEDEF_(0xc00d4294)
+#define MF_E_NET_COMPANION_DRIVER_DISCONNECT _HRESULT_TYPEDEF_(0xc00d4295)
+#define MF_E_ALREADY_INITIALIZED         _HRESULT_TYPEDEF_(0xc00d4650)
+#define MF_E_BANDWIDTH_OVERRUN           _HRESULT_TYPEDEF_(0xc00d4651)
+#define MF_E_LATE_SAMPLE                 _HRESULT_TYPEDEF_(0xc00d4652)
+#define MF_E_FLUSH_NEEDED                _HRESULT_TYPEDEF_(0xc00d4653)
+#define MF_E_INVALID_PROFILE             _HRESULT_TYPEDEF_(0xc00d4654)
+#define MF_E_INDEX_NOT_COMMITTED         _HRESULT_TYPEDEF_(0xc00d4655)
+#define MF_E_NO_INDEX                    _HRESULT_TYPEDEF_(0xc00d4656)
+#define MF_E_CANNOT_INDEX_IN_PLACE       _HRESULT_TYPEDEF_(0xc00d4657)
+#define MF_E_MISSING_ASF_LEAKYBUCKET     _HRESULT_TYPEDEF_(0xc00d4658)
+#define MF_E_INVALID_ASF_STREAMID        _HRESULT_TYPEDEF_(0xc00d4659)
+#define MF_E_STREAMSINK_REMOVED          _HRESULT_TYPEDEF_(0xc00d4a38)
+#define MF_E_STREAMSINKS_OUT_OF_SYNC     _HRESULT_TYPEDEF_(0xc00d4a3a)
+#define MF_E_STREAMSINKS_FIXED           _HRESULT_TYPEDEF_(0xc00d4a3b)
+#define MF_E_STREAMSINK_EXISTS           _HRESULT_TYPEDEF_(0xc00d4a3c)
+#define MF_E_SAMPLEALLOCATOR_CANCELED    _HRESULT_TYPEDEF_(0xc00d4a3d)
+#define MF_E_SAMPLEALLOCATOR_EMPTY       _HRESULT_TYPEDEF_(0xc00d4a3e)
+#define MF_E_SINK_ALREADYSTOPPED         _HRESULT_TYPEDEF_(0xc00d4a3f)
+#define MF_E_ASF_FILESINK_BITRATE_UNKNOWN _HRESULT_TYPEDEF_(0xc00d4a40)
+#define MF_E_SINK_NO_STREAMS             _HRESULT_TYPEDEF_(0xc00d4a41)
+#define MF_S_SINK_NOT_FINALIZED          _HRESULT_TYPEDEF_(0x000d4a42)
+#define MF_E_METADATA_TOO_LONG           _HRESULT_TYPEDEF_(0xc00d4a43)
+#define MF_E_SINK_NO_SAMPLES_PROCESSED   _HRESULT_TYPEDEF_(0xc00d4a44)
+#define MF_E_SINK_HEADERS_NOT_FOUND      _HRESULT_TYPEDEF_(0xc00d4a45)
+#define MF_E_VIDEO_REN_NO_PROCAMP_HW     _HRESULT_TYPEDEF_(0xc00d4e20)
+#define MF_E_VIDEO_REN_NO_DEINTERLACE_HW _HRESULT_TYPEDEF_(0xc00d4e21)
+#define MF_E_VIDEO_REN_COPYPROT_FAILED   _HRESULT_TYPEDEF_(0xc00d4e22)
+#define MF_E_VIDEO_REN_SURFACE_NOT_SHARED _HRESULT_TYPEDEF_(0xc00d4e23)
+#define MF_E_VIDEO_DEVICE_LOCKED         _HRESULT_TYPEDEF_(0xc00d4e24)
+#define MF_E_NEW_VIDEO_DEVICE            _HRESULT_TYPEDEF_(0xc00d4e25)
+#define MF_E_NO_VIDEO_SAMPLE_AVAILABLE   _HRESULT_TYPEDEF_(0xc00d4e26)
+#define MF_E_NO_AUDIO_PLAYBACK_DEVICE    _HRESULT_TYPEDEF_(0xc00d4e84)
+#define MF_E_AUDIO_PLAYBACK_DEVICE_IN_USE _HRESULT_TYPEDEF_(0xc00d4e85)
+#define MF_E_AUDIO_PLAYBACK_DEVICE_INVALIDATED _HRESULT_TYPEDEF_(0xc00d4e86)
+#define MF_E_AUDIO_SERVICE_NOT_RUNNING   _HRESULT_TYPEDEF_(0xc00d4e87)
+#define MF_E_AUDIO_BUFFER_SIZE_ERROR     _HRESULT_TYPEDEF_(0xc00d4e88)
+#define MF_E_AUDIO_CLIENT_WRAPPER_SPOOF_ERROR _HRESULT_TYPEDEF_(0xc00d4e89)
 
 #define MF_E_TOPO_INVALID_OPTIONAL_NODE    _HRESULT_TYPEDEF_(0xc00d520e)
 #define MF_E_TOPO_CANNOT_FIND_DECRYPTOR    _HRESULT_TYPEDEF_(0xc00d5211)
@@ -77,6 +229,11 @@
 #define MF_E_TOPO_STREAM_DESCRIPTOR_NOT_SELECTED   _HRESULT_TYPEDEF_(0xc00d5219)
 #define MF_E_TOPO_MISSING_SOURCE       _HRESULT_TYPEDEF_(0xc00d521a)
 #define MF_E_TOPO_SINK_ACTIVATES_UNSUPPORTED       _HRESULT_TYPEDEF_(0xc00d521b)
+#define MF_E_SEQUENCER_UNKNOWN_SEGMENT_ID _HRESULT_TYPEDEF_(0xc00d61ac)
+#define MF_E_SEQUENCER_UNKNOWN_SEGMENT_ID _HRESULT_TYPEDEF_(0xc00d61ac)
+#define MF_S_SEQUENCER_CONTEXT_CANCELED   _HRESULT_TYPEDEF_(0x000d61ad)
+#define MF_E_NO_SOURCE_IN_CACHE           _HRESULT_TYPEDEF_(0xc00d61ae)
+#define MF_S_SEQUENCER_SEGMENT_AT_END_OF_STREAM _HRESULT_TYPEDEF_(0x000d61af)
 #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)
@@ -101,5 +258,125 @@
 #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)
+#define MF_E_TRANSFORM_STREAM_INVALID_RESOLUTION _HRESULT_TYPEDEF_(0xc00d6d79)
+#define MF_E_TRANSFORM_ASYNC_MFT_NOT_SUPPORTED _HRESULT_TYPEDEF_(0xc00d6d7a)
+#define MF_E_TRANSFORM_EXATTRIBUTE_NOT_SUPPORTED _HRESULT_TYPEDEF_(0xc00d6d7c)
+#define MF_E_LICENSE_INCORRECT_RIGHTS    _HRESULT_TYPEDEF_(0xc00d7148)
+#define MF_E_LICENSE_OUTOFDATE           _HRESULT_TYPEDEF_(0xc00d7149)
+#define MF_E_LICENSE_REQUIRED            _HRESULT_TYPEDEF_(0xc00d714a)
+#define MF_E_DRM_HARDWARE_INCONSISTENT   _HRESULT_TYPEDEF_(0xc00d714b)
+#define MF_E_NO_CONTENT_PROTECTION_MANAGER _HRESULT_TYPEDEF_(0xc00d714c)
+#define MF_E_LICENSE_RESTORE_NO_RIGHTS   _HRESULT_TYPEDEF_(0xc00d714d)
+#define MF_E_BACKUP_RESTRICTED_LICENSE   _HRESULT_TYPEDEF_(0xc00d714e)
+#define MF_E_LICENSE_RESTORE_NEEDS_INDIVIDUALIZATION _HRESULT_TYPEDEF_(0xc00d714f)
+#define MF_S_PROTECTION_NOT_REQUIRED     _HRESULT_TYPEDEF_(0x000d7150)
+#define MF_E_COMPONENT_REVOKED           _HRESULT_TYPEDEF_(0xc00d7151)
+#define MF_E_TRUST_DISABLED              _HRESULT_TYPEDEF_(0xc00d7152)
+#define MF_E_WMDRMOTA_NO_ACTION          _HRESULT_TYPEDEF_(0xc00d7153)
+#define MF_E_WMDRMOTA_ACTION_ALREADY_SET _HRESULT_TYPEDEF_(0xc00d7154)
+#define MF_E_WMDRMOTA_DRM_HEADER_NOT_AVAILABLE _HRESULT_TYPEDEF_(0xc00d7155)
+#define MF_E_WMDRMOTA_DRM_ENCRYPTION_SCHEME_NOT_SUPPORTED _HRESULT_TYPEDEF_(0xc00d7156)
+#define MF_E_WMDRMOTA_ACTION_MISMATCH    _HRESULT_TYPEDEF_(0xc00d7157)
+#define MF_E_WMDRMOTA_INVALID_POLICY     _HRESULT_TYPEDEF_(0xc00d7158)
+#define MF_E_POLICY_UNSUPPORTED          _HRESULT_TYPEDEF_(0xc00d7159)
+#define MF_E_OPL_NOT_SUPPORTED           _HRESULT_TYPEDEF_(0xc00d715a)
+#define MF_E_TOPOLOGY_VERIFICATION_FAILED _HRESULT_TYPEDEF_(0xc00d715b)
+#define MF_E_SIGNATURE_VERIFICATION_FAILED _HRESULT_TYPEDEF_(0xc00d715c)
+#define MF_E_DEBUGGING_NOT_ALLOWED       _HRESULT_TYPEDEF_(0xc00d715d)
+#define MF_E_CODE_EXPIRED                _HRESULT_TYPEDEF_(0xc00d715e)
+#define MF_E_GRL_VERSION_TOO_LOW         _HRESULT_TYPEDEF_(0xc00d715f)
+#define MF_E_GRL_RENEWAL_NOT_FOUND       _HRESULT_TYPEDEF_(0xc00d7160)
+#define MF_E_GRL_EXTENSIBLE_ENTRY_NOT_FOUND _HRESULT_TYPEDEF_(0xc00d7161)
+#define MF_E_KERNEL_UNTRUSTED            _HRESULT_TYPEDEF_(0xc00d7162)
+#define MF_E_PEAUTH_UNTRUSTED            _HRESULT_TYPEDEF_(0xc00d7163)
+#define MF_E_NON_PE_PROCESS              _HRESULT_TYPEDEF_(0xc00d7165)
+#define MF_E_REBOOT_REQUIRED             _HRESULT_TYPEDEF_(0xc00d7167)
+#define MF_S_WAIT_FOR_POLICY_SET         _HRESULT_TYPEDEF_(0x000d7168)
+#define MF_S_VIDEO_DISABLED_WITH_UNKNOWN_SOFTWARE_OUTPUT _HRESULT_TYPEDEF_(0x000d7169)
+#define MF_E_GRL_INVALID_FORMAT          _HRESULT_TYPEDEF_(0xc00d716a)
+#define MF_E_GRL_UNRECOGNIZED_FORMAT     _HRESULT_TYPEDEF_(0xc00d716b)
+#define MF_E_ALL_PROCESS_RESTART_REQUIRED _HRESULT_TYPEDEF_(0xc00d716c)
+#define MF_E_PROCESS_RESTART_REQUIRED    _HRESULT_TYPEDEF_(0xc00d716d)
+#define MF_E_USERMODE_UNTRUSTED          _HRESULT_TYPEDEF_(0xc00d716e)
+#define MF_E_PEAUTH_SESSION_NOT_STARTED  _HRESULT_TYPEDEF_(0xc00d716f)
+#define MF_E_PEAUTH_PUBLICKEY_REVOKED    _HRESULT_TYPEDEF_(0xc00d7171)
+#define MF_E_GRL_ABSENT                  _HRESULT_TYPEDEF_(0xc00d7172)
+#define MF_S_PE_TRUSTED                  _HRESULT_TYPEDEF_(0x000d7173)
+#define MF_E_PE_UNTRUSTED                _HRESULT_TYPEDEF_(0xc00d7174)
+#define MF_E_PEAUTH_NOT_STARTED          _HRESULT_TYPEDEF_(0xc00d7175)
+#define MF_E_INCOMPATIBLE_SAMPLE_PROTECTION _HRESULT_TYPEDEF_(0xc00d7176)
+#define MF_E_PE_SESSIONS_MAXED           _HRESULT_TYPEDEF_(0xc00d7177)
+#define MF_E_HIGH_SECURITY_LEVEL_CONTENT_NOT_ALLOWED _HRESULT_TYPEDEF_(0xc00d7178)
+#define MF_E_TEST_SIGNED_COMPONENTS_NOT_ALLOWED _HRESULT_TYPEDEF_(0xc00d7179)
+#define MF_E_ITA_UNSUPPORTED_ACTION      _HRESULT_TYPEDEF_(0xC00D717A)
+#define MF_E_ITA_ERROR_PARSING_SAP_PARAMETERS _HRESULT_TYPEDEF_(0xc00d717b)
+#define MF_E_POLICY_MGR_ACTION_OUTOFBOUNDS _HRESULT_TYPEDEF_(0xc00d717c)
+#define MF_E_BAD_OPL_STRUCTURE_FORMAT    _HRESULT_TYPEDEF_(0xc00d717d)
+#define MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_PROTECTION_GUID _HRESULT_TYPEDEF_(0xc00d717e)
+#define MF_E_NO_PMP_HOST                 _HRESULT_TYPEDEF_(0xc00d717f)
+#define MF_E_ITA_OPL_DATA_NOT_INITIALIZED _HRESULT_TYPEDEF_(0xc00d7180)
+#define MF_E_ITA_UNRECOGNIZED_ANALOG_VIDEO_OUTPUT _HRESULT_TYPEDEF_(0xc00d7181)
+#define MF_E_ITA_UNRECOGNIZED_DIGITAL_VIDEO_OUTPUT _HRESULT_TYPEDEF_(0xc00d7182)
+#define MF_E_RESOLUTION_REQUIRES_PMP_CREATION_CALLBACK _HRESULT_TYPEDEF_(0xc00d7183)
+#define MF_E_INVALID_AKE_CHANNEL_PARAMETERS _HRESULT_TYPEDEF_(0xc00d7184)
+#define MF_E_CONTENT_PROTECTION_SYSTEM_NOT_ENABLED _HRESULT_TYPEDEF_(0xc00d7185)
+#define MF_E_UNSUPPORTED_CONTENT_PROTECTION_SYSTEM _HRESULT_TYPEDEF_(0xc00d7186)
+#define MF_E_DRM_MIGRATION_NOT_SUPPORTED _HRESULT_TYPEDEF_(0xc00d7187)
+#define MF_E_HDCP_AUTHENTICATION_FAILURE _HRESULT_TYPEDEF_(0xc00d7188)
+#define MF_E_HDCP_LINK_FAILURE           _HRESULT_TYPEDEF_(0xc00d7189)
+#define MF_E_CLOCK_INVALID_CONTINUITY_KEY _HRESULT_TYPEDEF_(0xc00d9c40)
+#define MF_E_CLOCK_NO_TIME_SOURCE        _HRESULT_TYPEDEF_(0xc00d9c41)
+#define MF_E_CLOCK_STATE_ALREADY_SET     _HRESULT_TYPEDEF_(0xc00d9c42)
+#define MF_E_CLOCK_NOT_SIMPLE            _HRESULT_TYPEDEF_(0xc00d9c43)
+#define MF_S_CLOCK_STOPPED               _HRESULT_TYPEDEF_(0x000d9c44)
+#define MF_E_CLOCK_AUDIO_DEVICE_POSITION_UNEXPECTED _HRESULT_TYPEDEF_(0x000d9c45)
+#define MF_E_CLOCK_AUDIO_RENDER_POSITION_UNEXPECTED _HRESULT_TYPEDEF_(0x000d9c46)
+#define MF_E_CLOCK_AUDIO_RENDER_TIME_UNEXPECTED _HRESULT_TYPEDEF_(0x000d9c47)
+#define MF_E_NO_MORE_DROP_MODES          _HRESULT_TYPEDEF_(0xc00da028)
+#define MF_E_NO_MORE_QUALITY_LEVELS      _HRESULT_TYPEDEF_(0xc00da029)
+#define MF_E_DROPTIME_NOT_SUPPORTED      _HRESULT_TYPEDEF_(0xc00da02a)
+#define MF_E_QUALITYKNOB_WAIT_LONGER     _HRESULT_TYPEDEF_(0xc00da02b)
+#define MF_E_QM_INVALIDSTATE             _HRESULT_TYPEDEF_(0xc00da02c)
+#define MF_E_TRANSCODE_NO_CONTAINERTYPE  _HRESULT_TYPEDEF_(0xc00da410)
+#define MF_E_TRANSCODE_PROFILE_NO_MATCHING_STREAMS _HRESULT_TYPEDEF_(0xc00da411)
+#define MF_E_TRANSCODE_NO_MATCHING_ENCODER _HRESULT_TYPEDEF_(0xc00da412)
+#define MF_E_TRANSCODE_INVALID_PROFILE   _HRESULT_TYPEDEF_(0xc00da413)
+#define MF_E_ALLOCATOR_NOT_INITIALIZED   _HRESULT_TYPEDEF_(0xc00da7f8)
+#define MF_E_ALLOCATOR_NOT_COMMITED      _HRESULT_TYPEDEF_(0xc00da7f9)
+#define MF_E_ALLOCATOR_ALREADY_COMMITED  _HRESULT_TYPEDEF_(0xc00da7fa)
+#define MF_E_STREAM_ERROR                _HRESULT_TYPEDEF_(0xc00da7fb)
+#define MF_E_INVALID_STREAM_STATE        _HRESULT_TYPEDEF_(0xc00da7fc)
+#define MF_E_HW_STREAM_NOT_CONNECTED     _HRESULT_TYPEDEF_(0xc00da7fd)
+#define MF_E_NO_CAPTURE_DEVICES_AVAILABLE _HRESULT_TYPEDEF_(0xc00dabe0)
+#define MF_E_CAPTURE_SINK_OUTPUT_NOT_SET _HRESULT_TYPEDEF_(0xc00dabe1)
+#define MF_E_CAPTURE_SINK_MIRROR_ERROR   _HRESULT_TYPEDEF_(0xc00dabe2)
+#define MF_E_CAPTURE_SINK_ROTATE_ERROR   _HRESULT_TYPEDEF_(0xc00dabe3)
+#define MF_E_CAPTURE_ENGINE_INVALID_OP   _HRESULT_TYPEDEF_(0xc00dabe4)
+#define MF_E_CAPTURE_ENGINE_ALL_EFFECTS_REMOVED _HRESULT_TYPEDEF_(0xc00dabe5)
+#define MF_E_CAPTURE_SOURCE_NO_INDEPENDENT_PHOTO_STREAM_PRESENT _HRESULT_TYPEDEF_(0xc00dabe6)
+#define MF_E_CAPTURE_SOURCE_NO_VIDEO_STREAM_PRESENT _HRESULT_TYPEDEF_(0xc00dabe7)
+#define MF_E_CAPTURE_SOURCE_NO_AUDIO_STREAM_PRESENT _HRESULT_TYPEDEF_(0xc00dabe8)
+#define MF_E_CAPTURE_SOURCE_DEVICE_EXTENDEDPROP_OP_IN_PROGRESS _HRESULT_TYPEDEF_(0xc00dabe9)
+#define MF_E_CAPTURE_PROPERTY_SET_DURING_PHOTO _HRESULT_TYPEDEF_(0xc00dabea)
+#define MF_E_CAPTURE_NO_SAMPLES_IN_QUEUE _HRESULT_TYPEDEF_(0xc00dabeb)
+#define MF_E_HW_ACCELERATED_THUMBNAIL_NOT_SUPPORTED _HRESULT_TYPEDEF_(0xc00dabec)
+#define MF_E_UNSUPPORTED_CAPTURE_DEVICE_PRESENT _HRESULT_TYPEDEF_(0xc00dabed)
+#define MF_E_TIMELINECONTROLLER_UNSUPPORTED_SOURCE_TYPE _HRESULT_TYPEDEF_(0xc00dafc8)
+#define MF_E_TIMELINECONTROLLER_NOT_ALLOWED _HRESULT_TYPEDEF_(0xc00dafc9)
+#define MF_E_TIMELINECONTROLLER_CANNOT_ATTACH _HRESULT_TYPEDEF_(0xc00dafca)
+#define MF_E_MEDIA_EXTENSION_APPSERVICE_CONNECTION_FAILED _HRESULT_TYPEDEF_(0xc00db3b0)
+#define MF_E_MEDIA_EXTENSION_APPSERVICE_REQUEST_FAILED _HRESULT_TYPEDEF_(0xc00db3b1)
+#define MF_E_MEDIA_EXTENSION_PACKAGE_INTEGRITY_CHECK_FAILED _HRESULT_TYPEDEF_(0xc00db3b2)
+#define MF_E_MEDIA_EXTENSION_PACKAGE_LICENSE_INVALID _HRESULT_TYPEDEF_(0xc00db3b3)
+
+#define MF_INDEX_SIZE_ERR      0x80700001
+#define MF_NOT_FOUND_ERR       0x80700008
+#define MF_NOT_SUPPORTED_ERR   0x80700009
+#define MF_INVALID_STATE_ERR   0x8070000b
+#define MF_SYNTAX_ERR          0x8070000c
+#define MF_INVALID_ACCESS_ERR  0x8070000f
+#define MF_QUOTA_EXCEEDED_ERR  0x80700016
+#define MF_PARSE_ERR           0x80700051
+#define MF_TYPE_ERR            0x80704005
 
 #endif /* _MFERROR_H */
lib/libc/include/any-windows-any/mfidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from mfidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mfidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -34,6 +34,14 @@ interface IMFTopology;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IMFGetService_FWD_DEFINED__
+#define __IMFGetService_FWD_DEFINED__
+typedef interface IMFGetService IMFGetService;
+#ifdef __cplusplus
+interface IMFGetService;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IMFClock_FWD_DEFINED__
 #define __IMFClock_FWD_DEFINED__
 typedef interface IMFClock IMFClock;
@@ -98,6 +106,126 @@ interface IMFClockStateSink;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IMFAudioStreamVolume_FWD_DEFINED__
+#define __IMFAudioStreamVolume_FWD_DEFINED__
+typedef interface IMFAudioStreamVolume IMFAudioStreamVolume;
+#ifdef __cplusplus
+interface IMFAudioStreamVolume;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFMediaSink_FWD_DEFINED__
+#define __IMFMediaSink_FWD_DEFINED__
+typedef interface IMFMediaSink IMFMediaSink;
+#ifdef __cplusplus
+interface IMFMediaSink;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFFinalizableMediaSink_FWD_DEFINED__
+#define __IMFFinalizableMediaSink_FWD_DEFINED__
+typedef interface IMFFinalizableMediaSink IMFFinalizableMediaSink;
+#ifdef __cplusplus
+interface IMFFinalizableMediaSink;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFMediaSinkPreroll_FWD_DEFINED__
+#define __IMFMediaSinkPreroll_FWD_DEFINED__
+typedef interface IMFMediaSinkPreroll IMFMediaSinkPreroll;
+#ifdef __cplusplus
+interface IMFMediaSinkPreroll;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFMediaStream_FWD_DEFINED__
+#define __IMFMediaStream_FWD_DEFINED__
+typedef interface IMFMediaStream IMFMediaStream;
+#ifdef __cplusplus
+interface IMFMediaStream;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFMetadata_FWD_DEFINED__
+#define __IMFMetadata_FWD_DEFINED__
+typedef interface IMFMetadata IMFMetadata;
+#ifdef __cplusplus
+interface IMFMetadata;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFMetadataProvider_FWD_DEFINED__
+#define __IMFMetadataProvider_FWD_DEFINED__
+typedef interface IMFMetadataProvider IMFMetadataProvider;
+#ifdef __cplusplus
+interface IMFMetadataProvider;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFPresentationTimeSource_FWD_DEFINED__
+#define __IMFPresentationTimeSource_FWD_DEFINED__
+typedef interface IMFPresentationTimeSource IMFPresentationTimeSource;
+#ifdef __cplusplus
+interface IMFPresentationTimeSource;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFPresentationClock_FWD_DEFINED__
+#define __IMFPresentationClock_FWD_DEFINED__
+typedef interface IMFPresentationClock IMFPresentationClock;
+#ifdef __cplusplus
+interface IMFPresentationClock;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFRateControl_FWD_DEFINED__
+#define __IMFRateControl_FWD_DEFINED__
+typedef interface IMFRateControl IMFRateControl;
+#ifdef __cplusplus
+interface IMFRateControl;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFRateSupport_FWD_DEFINED__
+#define __IMFRateSupport_FWD_DEFINED__
+typedef interface IMFRateSupport IMFRateSupport;
+#ifdef __cplusplus
+interface IMFRateSupport;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFSampleGrabberSinkCallback_FWD_DEFINED__
+#define __IMFSampleGrabberSinkCallback_FWD_DEFINED__
+typedef interface IMFSampleGrabberSinkCallback IMFSampleGrabberSinkCallback;
+#ifdef __cplusplus
+interface IMFSampleGrabberSinkCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFSourceResolver_FWD_DEFINED__
+#define __IMFSourceResolver_FWD_DEFINED__
+typedef interface IMFSourceResolver IMFSourceResolver;
+#ifdef __cplusplus
+interface IMFSourceResolver;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFStreamSink_FWD_DEFINED__
+#define __IMFStreamSink_FWD_DEFINED__
+typedef interface IMFStreamSink IMFStreamSink;
+#ifdef __cplusplus
+interface IMFStreamSink;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFTopoLoader_FWD_DEFINED__
+#define __IMFTopoLoader_FWD_DEFINED__
+typedef interface IMFTopoLoader IMFTopoLoader;
+#ifdef __cplusplus
+interface IMFTopoLoader;
+#endif /* __cplusplus */
+#endif
+
 /* Headers for imported files */
 
 #include <mfobjects.h>
@@ -1156,6 +1284,87 @@ static FORCEINLINE HRESULT IMFTopology_GetOutputNodeCollection(IMFTopology* This
 
 #endif  /* __IMFTopology_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IMFGetService interface
+ */
+#ifndef __IMFGetService_INTERFACE_DEFINED__
+#define __IMFGetService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFGetService, 0xfa993888, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fa993888-4383-415a-a930-dd472a8cf6f7")
+IMFGetService : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetService(
+        REFGUID guidService,
+        REFIID riid,
+        LPVOID *ppvObject) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFGetService, 0xfa993888, 0x4383, 0x415a, 0xa9,0x30, 0xdd,0x47,0x2a,0x8c,0xf6,0xf7)
+#endif
+#else
+typedef struct IMFGetServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFGetService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFGetService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFGetService *This);
+
+    /*** IMFGetService methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetService)(
+        IMFGetService *This,
+        REFGUID guidService,
+        REFIID riid,
+        LPVOID *ppvObject);
+
+    END_INTERFACE
+} IMFGetServiceVtbl;
+
+interface IMFGetService {
+    CONST_VTBL IMFGetServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFGetService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFGetService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFGetService_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFGetService methods ***/
+#define IMFGetService_GetService(This,guidService,riid,ppvObject) (This)->lpVtbl->GetService(This,guidService,riid,ppvObject)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFGetService_QueryInterface(IMFGetService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFGetService_AddRef(IMFGetService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFGetService_Release(IMFGetService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFGetService methods ***/
+static FORCEINLINE HRESULT IMFGetService_GetService(IMFGetService* This,REFGUID guidService,REFIID riid,LPVOID *ppvObject) {
+    return This->lpVtbl->GetService(This,guidService,riid,ppvObject);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFGetService_INTERFACE_DEFINED__ */
+
 typedef LONGLONG MFTIME;
 typedef enum _MF_CLOCK_STATE {
     MFCLOCK_STATE_INVALID = 0,
@@ -3128,14 +3337,6 @@ enum {
     MF_RESOLUTION_READ = 0x10000,
     MF_RESOLUTION_WRITE = 0x20000
 };
-#ifndef __IMFMediaSink_FWD_DEFINED__
-#define __IMFMediaSink_FWD_DEFINED__
-typedef interface IMFMediaSink IMFMediaSink;
-#ifdef __cplusplus
-interface IMFMediaSink;
-#endif /* __cplusplus */
-#endif
-
 #ifndef __IMFASFContentInfo_FWD_DEFINED__
 #define __IMFASFContentInfo_FWD_DEFINED__
 typedef interface IMFASFContentInfo IMFASFContentInfo;
@@ -3216,14 +3417,6 @@ interface IMFTransform;
 #endif /* __cplusplus */
 #endif
 
-#ifndef __IMFSampleGrabberSinkCallback_FWD_DEFINED__
-#define __IMFSampleGrabberSinkCallback_FWD_DEFINED__
-typedef interface IMFSampleGrabberSinkCallback IMFSampleGrabberSinkCallback;
-#ifdef __cplusplus
-interface IMFSampleGrabberSinkCallback;
-#endif /* __cplusplus */
-#endif
-
 #ifndef __IMFSequencerSource_FWD_DEFINED__
 #define __IMFSequencerSource_FWD_DEFINED__
 typedef interface IMFSequencerSource IMFSequencerSource;
@@ -3232,6 +3425,14 @@ interface IMFSequencerSource;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IMFStreamSink_FWD_DEFINED__
+#define __IMFStreamSink_FWD_DEFINED__
+typedef interface IMFStreamSink IMFStreamSink;
+#ifdef __cplusplus
+interface IMFStreamSink;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IMFQualityManager_FWD_DEFINED__
 #define __IMFQualityManager_FWD_DEFINED__
 typedef interface IMFQualityManager IMFQualityManager;
@@ -3240,38 +3441,2160 @@ interface IMFQualityManager;
 #endif /* __cplusplus */
 #endif
 
-#ifndef __IMFSourceResolver_FWD_DEFINED__
-#define __IMFSourceResolver_FWD_DEFINED__
-typedef interface IMFSourceResolver IMFSourceResolver;
+#ifndef __IMFTranscodeProfile_FWD_DEFINED__
+#define __IMFTranscodeProfile_FWD_DEFINED__
+typedef interface IMFTranscodeProfile IMFTranscodeProfile;
 #ifdef __cplusplus
-interface IMFSourceResolver;
+interface IMFTranscodeProfile;
 #endif /* __cplusplus */
 #endif
 
-#ifndef __IMFPresentationTimeSource_FWD_DEFINED__
-#define __IMFPresentationTimeSource_FWD_DEFINED__
-typedef interface IMFPresentationTimeSource IMFPresentationTimeSource;
-#ifdef __cplusplus
-interface IMFPresentationTimeSource;
-#endif /* __cplusplus */
+/*****************************************************************************
+ * IMFAudioStreamVolume interface
+ */
+#ifndef __IMFAudioStreamVolume_INTERFACE_DEFINED__
+#define __IMFAudioStreamVolume_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFAudioStreamVolume, 0x76b1bbdb, 0x4ec8, 0x4f36, 0xb1,0x06, 0x70,0xa9,0x31,0x6d,0xf5,0x93);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("76b1bbdb-4ec8-4f36-b106-70a9316df593")
+IMFAudioStreamVolume : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
+        UINT32 *pdwCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
+        UINT32 dwIndex,
+        const float fLevel) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
+        UINT32 dwIndex,
+        float *pfLevel) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
+        UINT32 dwCount,
+        const float *pfVolumes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
+        UINT32 dwCount,
+        float *pfVolumes) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFAudioStreamVolume, 0x76b1bbdb, 0x4ec8, 0x4f36, 0xb1,0x06, 0x70,0xa9,0x31,0x6d,0xf5,0x93)
 #endif
+#else
+typedef struct IMFAudioStreamVolumeVtbl {
+    BEGIN_INTERFACE
 
-#ifndef __IMFTopoLoader_FWD_DEFINED__
-#define __IMFTopoLoader_FWD_DEFINED__
-typedef interface IMFTopoLoader IMFTopoLoader;
-#ifdef __cplusplus
-interface IMFTopoLoader;
-#endif /* __cplusplus */
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFAudioStreamVolume *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFAudioStreamVolume *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFAudioStreamVolume *This);
+
+    /*** IMFAudioStreamVolume methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
+        IMFAudioStreamVolume *This,
+        UINT32 *pdwCount);
+
+    HRESULT (STDMETHODCALLTYPE *SetChannelVolume)(
+        IMFAudioStreamVolume *This,
+        UINT32 dwIndex,
+        const float fLevel);
+
+    HRESULT (STDMETHODCALLTYPE *GetChannelVolume)(
+        IMFAudioStreamVolume *This,
+        UINT32 dwIndex,
+        float *pfLevel);
+
+    HRESULT (STDMETHODCALLTYPE *SetAllVolumes)(
+        IMFAudioStreamVolume *This,
+        UINT32 dwCount,
+        const float *pfVolumes);
+
+    HRESULT (STDMETHODCALLTYPE *GetAllVolumes)(
+        IMFAudioStreamVolume *This,
+        UINT32 dwCount,
+        float *pfVolumes);
+
+    END_INTERFACE
+} IMFAudioStreamVolumeVtbl;
+
+interface IMFAudioStreamVolume {
+    CONST_VTBL IMFAudioStreamVolumeVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFAudioStreamVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFAudioStreamVolume_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFAudioStreamVolume_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFAudioStreamVolume methods ***/
+#define IMFAudioStreamVolume_GetChannelCount(This,pdwCount) (This)->lpVtbl->GetChannelCount(This,pdwCount)
+#define IMFAudioStreamVolume_SetChannelVolume(This,dwIndex,fLevel) (This)->lpVtbl->SetChannelVolume(This,dwIndex,fLevel)
+#define IMFAudioStreamVolume_GetChannelVolume(This,dwIndex,pfLevel) (This)->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel)
+#define IMFAudioStreamVolume_SetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes)
+#define IMFAudioStreamVolume_GetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFAudioStreamVolume_QueryInterface(IMFAudioStreamVolume* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFAudioStreamVolume_AddRef(IMFAudioStreamVolume* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFAudioStreamVolume_Release(IMFAudioStreamVolume* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFAudioStreamVolume methods ***/
+static FORCEINLINE HRESULT IMFAudioStreamVolume_GetChannelCount(IMFAudioStreamVolume* This,UINT32 *pdwCount) {
+    return This->lpVtbl->GetChannelCount(This,pdwCount);
+}
+static FORCEINLINE HRESULT IMFAudioStreamVolume_SetChannelVolume(IMFAudioStreamVolume* This,UINT32 dwIndex,const float fLevel) {
+    return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel);
+}
+static FORCEINLINE HRESULT IMFAudioStreamVolume_GetChannelVolume(IMFAudioStreamVolume* This,UINT32 dwIndex,float *pfLevel) {
+    return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel);
+}
+static FORCEINLINE HRESULT IMFAudioStreamVolume_SetAllVolumes(IMFAudioStreamVolume* This,UINT32 dwCount,const float *pfVolumes) {
+    return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes);
+}
+static FORCEINLINE HRESULT IMFAudioStreamVolume_GetAllVolumes(IMFAudioStreamVolume* This,UINT32 dwCount,float *pfVolumes) {
+    return This->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes);
+}
+#endif
 #endif
 
-#ifndef __IMFTranscodeProfile_FWD_DEFINED__
-#define __IMFTranscodeProfile_FWD_DEFINED__
-typedef interface IMFTranscodeProfile IMFTranscodeProfile;
-#ifdef __cplusplus
-interface IMFTranscodeProfile;
-#endif /* __cplusplus */
 #endif
 
+
+#endif  /* __IMFAudioStreamVolume_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFMediaSink interface
+ */
+#ifndef __IMFMediaSink_INTERFACE_DEFINED__
+#define __IMFMediaSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFMediaSink, 0x6ef2a660, 0x47c0, 0x4666, 0xb1,0x3d, 0xcb,0xb7,0x17,0xf2,0xfa,0x2c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6ef2a660-47c0-4666-b13d-cbb717f2fa2c")
+IMFMediaSink : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
+        DWORD *pdwCharacteristics) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddStreamSink(
+        DWORD dwStreamSinkIdentifier,
+        IMFMediaType *pMediaType,
+        IMFStreamSink **ppStreamSink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveStreamSink(
+        DWORD dwStreamSinkIdentifier) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStreamSinkCount(
+        DWORD *pcStreamSinkCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStreamSinkByIndex(
+        DWORD dwIndex,
+        IMFStreamSink **ppStreamSink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStreamSinkById(
+        DWORD dwStreamSinkIdentifier,
+        IMFStreamSink **ppStreamSink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetPresentationClock(
+        IMFPresentationClock *pPresentationClock) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPresentationClock(
+        IMFPresentationClock **ppPresentationClock) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Shutdown(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFMediaSink, 0x6ef2a660, 0x47c0, 0x4666, 0xb1,0x3d, 0xcb,0xb7,0x17,0xf2,0xfa,0x2c)
+#endif
+#else
+typedef struct IMFMediaSinkVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFMediaSink *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFMediaSink *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFMediaSink *This);
+
+    /*** IMFMediaSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
+        IMFMediaSink *This,
+        DWORD *pdwCharacteristics);
+
+    HRESULT (STDMETHODCALLTYPE *AddStreamSink)(
+        IMFMediaSink *This,
+        DWORD dwStreamSinkIdentifier,
+        IMFMediaType *pMediaType,
+        IMFStreamSink **ppStreamSink);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveStreamSink)(
+        IMFMediaSink *This,
+        DWORD dwStreamSinkIdentifier);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamSinkCount)(
+        IMFMediaSink *This,
+        DWORD *pcStreamSinkCount);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamSinkByIndex)(
+        IMFMediaSink *This,
+        DWORD dwIndex,
+        IMFStreamSink **ppStreamSink);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamSinkById)(
+        IMFMediaSink *This,
+        DWORD dwStreamSinkIdentifier,
+        IMFStreamSink **ppStreamSink);
+
+    HRESULT (STDMETHODCALLTYPE *SetPresentationClock)(
+        IMFMediaSink *This,
+        IMFPresentationClock *pPresentationClock);
+
+    HRESULT (STDMETHODCALLTYPE *GetPresentationClock)(
+        IMFMediaSink *This,
+        IMFPresentationClock **ppPresentationClock);
+
+    HRESULT (STDMETHODCALLTYPE *Shutdown)(
+        IMFMediaSink *This);
+
+    END_INTERFACE
+} IMFMediaSinkVtbl;
+
+interface IMFMediaSink {
+    CONST_VTBL IMFMediaSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFMediaSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFMediaSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFMediaSink methods ***/
+#define IMFMediaSink_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
+#define IMFMediaSink_AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink) (This)->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink)
+#define IMFMediaSink_RemoveStreamSink(This,dwStreamSinkIdentifier) (This)->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier)
+#define IMFMediaSink_GetStreamSinkCount(This,pcStreamSinkCount) (This)->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount)
+#define IMFMediaSink_GetStreamSinkByIndex(This,dwIndex,ppStreamSink) (This)->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink)
+#define IMFMediaSink_GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink) (This)->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink)
+#define IMFMediaSink_SetPresentationClock(This,pPresentationClock) (This)->lpVtbl->SetPresentationClock(This,pPresentationClock)
+#define IMFMediaSink_GetPresentationClock(This,ppPresentationClock) (This)->lpVtbl->GetPresentationClock(This,ppPresentationClock)
+#define IMFMediaSink_Shutdown(This) (This)->lpVtbl->Shutdown(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFMediaSink_QueryInterface(IMFMediaSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFMediaSink_AddRef(IMFMediaSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFMediaSink_Release(IMFMediaSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFMediaSink methods ***/
+static FORCEINLINE HRESULT IMFMediaSink_GetCharacteristics(IMFMediaSink* This,DWORD *pdwCharacteristics) {
+    return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
+}
+static FORCEINLINE HRESULT IMFMediaSink_AddStreamSink(IMFMediaSink* This,DWORD dwStreamSinkIdentifier,IMFMediaType *pMediaType,IMFStreamSink **ppStreamSink) {
+    return This->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink);
+}
+static FORCEINLINE HRESULT IMFMediaSink_RemoveStreamSink(IMFMediaSink* This,DWORD dwStreamSinkIdentifier) {
+    return This->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier);
+}
+static FORCEINLINE HRESULT IMFMediaSink_GetStreamSinkCount(IMFMediaSink* This,DWORD *pcStreamSinkCount) {
+    return This->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount);
+}
+static FORCEINLINE HRESULT IMFMediaSink_GetStreamSinkByIndex(IMFMediaSink* This,DWORD dwIndex,IMFStreamSink **ppStreamSink) {
+    return This->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink);
+}
+static FORCEINLINE HRESULT IMFMediaSink_GetStreamSinkById(IMFMediaSink* This,DWORD dwStreamSinkIdentifier,IMFStreamSink **ppStreamSink) {
+    return This->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink);
+}
+static FORCEINLINE HRESULT IMFMediaSink_SetPresentationClock(IMFMediaSink* This,IMFPresentationClock *pPresentationClock) {
+    return This->lpVtbl->SetPresentationClock(This,pPresentationClock);
+}
+static FORCEINLINE HRESULT IMFMediaSink_GetPresentationClock(IMFMediaSink* This,IMFPresentationClock **ppPresentationClock) {
+    return This->lpVtbl->GetPresentationClock(This,ppPresentationClock);
+}
+static FORCEINLINE HRESULT IMFMediaSink_Shutdown(IMFMediaSink* This) {
+    return This->lpVtbl->Shutdown(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFMediaSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFFinalizableMediaSink interface
+ */
+#ifndef __IMFFinalizableMediaSink_INTERFACE_DEFINED__
+#define __IMFFinalizableMediaSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFFinalizableMediaSink, 0xeaecb74a, 0x9a50, 0x42ce, 0x95,0x41, 0x6a,0x7f,0x57,0xaa,0x4a,0xd7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("eaecb74a-9a50-42ce-9541-6a7f57aa4ad7")
+IMFFinalizableMediaSink : public IMFMediaSink
+{
+    virtual HRESULT STDMETHODCALLTYPE BeginFinalize(
+        IMFAsyncCallback *pCallback,
+        IUnknown *punkState) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndFinalize(
+        IMFAsyncResult *pResult) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFFinalizableMediaSink, 0xeaecb74a, 0x9a50, 0x42ce, 0x95,0x41, 0x6a,0x7f,0x57,0xaa,0x4a,0xd7)
+#endif
+#else
+typedef struct IMFFinalizableMediaSinkVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFFinalizableMediaSink *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFFinalizableMediaSink *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFFinalizableMediaSink *This);
+
+    /*** IMFMediaSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
+        IMFFinalizableMediaSink *This,
+        DWORD *pdwCharacteristics);
+
+    HRESULT (STDMETHODCALLTYPE *AddStreamSink)(
+        IMFFinalizableMediaSink *This,
+        DWORD dwStreamSinkIdentifier,
+        IMFMediaType *pMediaType,
+        IMFStreamSink **ppStreamSink);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveStreamSink)(
+        IMFFinalizableMediaSink *This,
+        DWORD dwStreamSinkIdentifier);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamSinkCount)(
+        IMFFinalizableMediaSink *This,
+        DWORD *pcStreamSinkCount);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamSinkByIndex)(
+        IMFFinalizableMediaSink *This,
+        DWORD dwIndex,
+        IMFStreamSink **ppStreamSink);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamSinkById)(
+        IMFFinalizableMediaSink *This,
+        DWORD dwStreamSinkIdentifier,
+        IMFStreamSink **ppStreamSink);
+
+    HRESULT (STDMETHODCALLTYPE *SetPresentationClock)(
+        IMFFinalizableMediaSink *This,
+        IMFPresentationClock *pPresentationClock);
+
+    HRESULT (STDMETHODCALLTYPE *GetPresentationClock)(
+        IMFFinalizableMediaSink *This,
+        IMFPresentationClock **ppPresentationClock);
+
+    HRESULT (STDMETHODCALLTYPE *Shutdown)(
+        IMFFinalizableMediaSink *This);
+
+    /*** IMFFinalizableMediaSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *BeginFinalize)(
+        IMFFinalizableMediaSink *This,
+        IMFAsyncCallback *pCallback,
+        IUnknown *punkState);
+
+    HRESULT (STDMETHODCALLTYPE *EndFinalize)(
+        IMFFinalizableMediaSink *This,
+        IMFAsyncResult *pResult);
+
+    END_INTERFACE
+} IMFFinalizableMediaSinkVtbl;
+
+interface IMFFinalizableMediaSink {
+    CONST_VTBL IMFFinalizableMediaSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFFinalizableMediaSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFFinalizableMediaSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFFinalizableMediaSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFMediaSink methods ***/
+#define IMFFinalizableMediaSink_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
+#define IMFFinalizableMediaSink_AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink) (This)->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink)
+#define IMFFinalizableMediaSink_RemoveStreamSink(This,dwStreamSinkIdentifier) (This)->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier)
+#define IMFFinalizableMediaSink_GetStreamSinkCount(This,pcStreamSinkCount) (This)->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount)
+#define IMFFinalizableMediaSink_GetStreamSinkByIndex(This,dwIndex,ppStreamSink) (This)->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink)
+#define IMFFinalizableMediaSink_GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink) (This)->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink)
+#define IMFFinalizableMediaSink_SetPresentationClock(This,pPresentationClock) (This)->lpVtbl->SetPresentationClock(This,pPresentationClock)
+#define IMFFinalizableMediaSink_GetPresentationClock(This,ppPresentationClock) (This)->lpVtbl->GetPresentationClock(This,ppPresentationClock)
+#define IMFFinalizableMediaSink_Shutdown(This) (This)->lpVtbl->Shutdown(This)
+/*** IMFFinalizableMediaSink methods ***/
+#define IMFFinalizableMediaSink_BeginFinalize(This,pCallback,punkState) (This)->lpVtbl->BeginFinalize(This,pCallback,punkState)
+#define IMFFinalizableMediaSink_EndFinalize(This,pResult) (This)->lpVtbl->EndFinalize(This,pResult)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_QueryInterface(IMFFinalizableMediaSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFFinalizableMediaSink_AddRef(IMFFinalizableMediaSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFFinalizableMediaSink_Release(IMFFinalizableMediaSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFMediaSink methods ***/
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetCharacteristics(IMFFinalizableMediaSink* This,DWORD *pdwCharacteristics) {
+    return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
+}
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_AddStreamSink(IMFFinalizableMediaSink* This,DWORD dwStreamSinkIdentifier,IMFMediaType *pMediaType,IMFStreamSink **ppStreamSink) {
+    return This->lpVtbl->AddStreamSink(This,dwStreamSinkIdentifier,pMediaType,ppStreamSink);
+}
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_RemoveStreamSink(IMFFinalizableMediaSink* This,DWORD dwStreamSinkIdentifier) {
+    return This->lpVtbl->RemoveStreamSink(This,dwStreamSinkIdentifier);
+}
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetStreamSinkCount(IMFFinalizableMediaSink* This,DWORD *pcStreamSinkCount) {
+    return This->lpVtbl->GetStreamSinkCount(This,pcStreamSinkCount);
+}
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetStreamSinkByIndex(IMFFinalizableMediaSink* This,DWORD dwIndex,IMFStreamSink **ppStreamSink) {
+    return This->lpVtbl->GetStreamSinkByIndex(This,dwIndex,ppStreamSink);
+}
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetStreamSinkById(IMFFinalizableMediaSink* This,DWORD dwStreamSinkIdentifier,IMFStreamSink **ppStreamSink) {
+    return This->lpVtbl->GetStreamSinkById(This,dwStreamSinkIdentifier,ppStreamSink);
+}
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_SetPresentationClock(IMFFinalizableMediaSink* This,IMFPresentationClock *pPresentationClock) {
+    return This->lpVtbl->SetPresentationClock(This,pPresentationClock);
+}
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_GetPresentationClock(IMFFinalizableMediaSink* This,IMFPresentationClock **ppPresentationClock) {
+    return This->lpVtbl->GetPresentationClock(This,ppPresentationClock);
+}
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_Shutdown(IMFFinalizableMediaSink* This) {
+    return This->lpVtbl->Shutdown(This);
+}
+/*** IMFFinalizableMediaSink methods ***/
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_BeginFinalize(IMFFinalizableMediaSink* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
+    return This->lpVtbl->BeginFinalize(This,pCallback,punkState);
+}
+static FORCEINLINE HRESULT IMFFinalizableMediaSink_EndFinalize(IMFFinalizableMediaSink* This,IMFAsyncResult *pResult) {
+    return This->lpVtbl->EndFinalize(This,pResult);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFFinalizableMediaSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFMediaSinkPreroll interface
+ */
+#ifndef __IMFMediaSinkPreroll_INTERFACE_DEFINED__
+#define __IMFMediaSinkPreroll_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFMediaSinkPreroll, 0x5dfd4b2a, 0x7674, 0x4110, 0xa4,0xe6, 0x8a,0x68,0xfd,0x5f,0x36,0x88);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5dfd4b2a-7674-4110-a4e6-8a68fd5f3688")
+IMFMediaSinkPreroll : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE NotifyPreroll(
+        MFTIME hnsUpcomingStartTime) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFMediaSinkPreroll, 0x5dfd4b2a, 0x7674, 0x4110, 0xa4,0xe6, 0x8a,0x68,0xfd,0x5f,0x36,0x88)
+#endif
+#else
+typedef struct IMFMediaSinkPrerollVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFMediaSinkPreroll *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFMediaSinkPreroll *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFMediaSinkPreroll *This);
+
+    /*** IMFMediaSinkPreroll methods ***/
+    HRESULT (STDMETHODCALLTYPE *NotifyPreroll)(
+        IMFMediaSinkPreroll *This,
+        MFTIME hnsUpcomingStartTime);
+
+    END_INTERFACE
+} IMFMediaSinkPrerollVtbl;
+
+interface IMFMediaSinkPreroll {
+    CONST_VTBL IMFMediaSinkPrerollVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFMediaSinkPreroll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaSinkPreroll_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFMediaSinkPreroll_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFMediaSinkPreroll methods ***/
+#define IMFMediaSinkPreroll_NotifyPreroll(This,hnsUpcomingStartTime) (This)->lpVtbl->NotifyPreroll(This,hnsUpcomingStartTime)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFMediaSinkPreroll_QueryInterface(IMFMediaSinkPreroll* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFMediaSinkPreroll_AddRef(IMFMediaSinkPreroll* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFMediaSinkPreroll_Release(IMFMediaSinkPreroll* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFMediaSinkPreroll methods ***/
+static FORCEINLINE HRESULT IMFMediaSinkPreroll_NotifyPreroll(IMFMediaSinkPreroll* This,MFTIME hnsUpcomingStartTime) {
+    return This->lpVtbl->NotifyPreroll(This,hnsUpcomingStartTime);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFMediaSinkPreroll_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFMediaStream interface
+ */
+#ifndef __IMFMediaStream_INTERFACE_DEFINED__
+#define __IMFMediaStream_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFMediaStream, 0xd182108f, 0x4ec6, 0x443f, 0xaa,0x42, 0xa7,0x11,0x06,0xec,0x82,0x5f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d182108f-4ec6-443f-aa42-a71106ec825f")
+IMFMediaStream : public IMFMediaEventGenerator
+{
+    virtual HRESULT STDMETHODCALLTYPE GetMediaSource(
+        IMFMediaSource **ppMediaSource) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStreamDescriptor(
+        IMFStreamDescriptor **ppStreamDescriptor) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RequestSample(
+        IUnknown *pToken) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFMediaStream, 0xd182108f, 0x4ec6, 0x443f, 0xaa,0x42, 0xa7,0x11,0x06,0xec,0x82,0x5f)
+#endif
+#else
+typedef struct IMFMediaStreamVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFMediaStream *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFMediaStream *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFMediaStream *This);
+
+    /*** IMFMediaEventGenerator methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetEvent)(
+        IMFMediaStream *This,
+        DWORD dwFlags,
+        IMFMediaEvent **ppEvent);
+
+    HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
+        IMFMediaStream *This,
+        IMFAsyncCallback *pCallback,
+        IUnknown *punkState);
+
+    HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
+        IMFMediaStream *This,
+        IMFAsyncResult *pResult,
+        IMFMediaEvent **ppEvent);
+
+    HRESULT (STDMETHODCALLTYPE *QueueEvent)(
+        IMFMediaStream *This,
+        MediaEventType met,
+        REFGUID guidExtendedType,
+        HRESULT hrStatus,
+        const PROPVARIANT *pvValue);
+
+    /*** IMFMediaStream methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetMediaSource)(
+        IMFMediaStream *This,
+        IMFMediaSource **ppMediaSource);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamDescriptor)(
+        IMFMediaStream *This,
+        IMFStreamDescriptor **ppStreamDescriptor);
+
+    HRESULT (STDMETHODCALLTYPE *RequestSample)(
+        IMFMediaStream *This,
+        IUnknown *pToken);
+
+    END_INTERFACE
+} IMFMediaStreamVtbl;
+
+interface IMFMediaStream {
+    CONST_VTBL IMFMediaStreamVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFMediaStream_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFMediaEventGenerator methods ***/
+#define IMFMediaStream_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
+#define IMFMediaStream_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
+#define IMFMediaStream_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
+#define IMFMediaStream_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
+/*** IMFMediaStream methods ***/
+#define IMFMediaStream_GetMediaSource(This,ppMediaSource) (This)->lpVtbl->GetMediaSource(This,ppMediaSource)
+#define IMFMediaStream_GetStreamDescriptor(This,ppStreamDescriptor) (This)->lpVtbl->GetStreamDescriptor(This,ppStreamDescriptor)
+#define IMFMediaStream_RequestSample(This,pToken) (This)->lpVtbl->RequestSample(This,pToken)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFMediaStream_QueryInterface(IMFMediaStream* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFMediaStream_AddRef(IMFMediaStream* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFMediaStream_Release(IMFMediaStream* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFMediaEventGenerator methods ***/
+static FORCEINLINE HRESULT IMFMediaStream_GetEvent(IMFMediaStream* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
+    return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
+}
+static FORCEINLINE HRESULT IMFMediaStream_BeginGetEvent(IMFMediaStream* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
+    return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
+}
+static FORCEINLINE HRESULT IMFMediaStream_EndGetEvent(IMFMediaStream* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
+    return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
+}
+static FORCEINLINE HRESULT IMFMediaStream_QueueEvent(IMFMediaStream* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
+    return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue);
+}
+/*** IMFMediaStream methods ***/
+static FORCEINLINE HRESULT IMFMediaStream_GetMediaSource(IMFMediaStream* This,IMFMediaSource **ppMediaSource) {
+    return This->lpVtbl->GetMediaSource(This,ppMediaSource);
+}
+static FORCEINLINE HRESULT IMFMediaStream_GetStreamDescriptor(IMFMediaStream* This,IMFStreamDescriptor **ppStreamDescriptor) {
+    return This->lpVtbl->GetStreamDescriptor(This,ppStreamDescriptor);
+}
+static FORCEINLINE HRESULT IMFMediaStream_RequestSample(IMFMediaStream* This,IUnknown *pToken) {
+    return This->lpVtbl->RequestSample(This,pToken);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IMFMediaStream_RemoteRequestSample_Proxy(
+    IMFMediaStream* This);
+void __RPC_STUB IMFMediaStream_RemoteRequestSample_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IMFMediaStream_RequestSample_Proxy(
+    IMFMediaStream* This,
+    IUnknown *pToken);
+HRESULT __RPC_STUB IMFMediaStream_RequestSample_Stub(
+    IMFMediaStream* This);
+
+#endif  /* __IMFMediaStream_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFMetadata interface
+ */
+#ifndef __IMFMetadata_INTERFACE_DEFINED__
+#define __IMFMetadata_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFMetadata, 0xf88cfb8c, 0xef16, 0x4991, 0xb4,0x50, 0xcb,0x8c,0x69,0xe5,0x17,0x04);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f88cfb8c-ef16-4991-b450-cb8c69e51704")
+IMFMetadata : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetLanguage(
+        LPCWSTR pwszRFC1766) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetLanguage(
+        LPWSTR *ppwszRFC1766) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAllLanguages(
+        PROPVARIANT *ppvLanguages) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetProperty(
+        LPCWSTR pwszName,
+        const PROPVARIANT *ppvValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetProperty(
+        LPCWSTR pwszName,
+        PROPVARIANT *ppvValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteProperty(
+        LPCWSTR pwszName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAllPropertyNames(
+        PROPVARIANT *ppvNames) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFMetadata, 0xf88cfb8c, 0xef16, 0x4991, 0xb4,0x50, 0xcb,0x8c,0x69,0xe5,0x17,0x04)
+#endif
+#else
+typedef struct IMFMetadataVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFMetadata *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFMetadata *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFMetadata *This);
+
+    /*** IMFMetadata methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetLanguage)(
+        IMFMetadata *This,
+        LPCWSTR pwszRFC1766);
+
+    HRESULT (STDMETHODCALLTYPE *GetLanguage)(
+        IMFMetadata *This,
+        LPWSTR *ppwszRFC1766);
+
+    HRESULT (STDMETHODCALLTYPE *GetAllLanguages)(
+        IMFMetadata *This,
+        PROPVARIANT *ppvLanguages);
+
+    HRESULT (STDMETHODCALLTYPE *SetProperty)(
+        IMFMetadata *This,
+        LPCWSTR pwszName,
+        const PROPVARIANT *ppvValue);
+
+    HRESULT (STDMETHODCALLTYPE *GetProperty)(
+        IMFMetadata *This,
+        LPCWSTR pwszName,
+        PROPVARIANT *ppvValue);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteProperty)(
+        IMFMetadata *This,
+        LPCWSTR pwszName);
+
+    HRESULT (STDMETHODCALLTYPE *GetAllPropertyNames)(
+        IMFMetadata *This,
+        PROPVARIANT *ppvNames);
+
+    END_INTERFACE
+} IMFMetadataVtbl;
+
+interface IMFMetadata {
+    CONST_VTBL IMFMetadataVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFMetadata_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMetadata_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFMetadata_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFMetadata methods ***/
+#define IMFMetadata_SetLanguage(This,pwszRFC1766) (This)->lpVtbl->SetLanguage(This,pwszRFC1766)
+#define IMFMetadata_GetLanguage(This,ppwszRFC1766) (This)->lpVtbl->GetLanguage(This,ppwszRFC1766)
+#define IMFMetadata_GetAllLanguages(This,ppvLanguages) (This)->lpVtbl->GetAllLanguages(This,ppvLanguages)
+#define IMFMetadata_SetProperty(This,pwszName,ppvValue) (This)->lpVtbl->SetProperty(This,pwszName,ppvValue)
+#define IMFMetadata_GetProperty(This,pwszName,ppvValue) (This)->lpVtbl->GetProperty(This,pwszName,ppvValue)
+#define IMFMetadata_DeleteProperty(This,pwszName) (This)->lpVtbl->DeleteProperty(This,pwszName)
+#define IMFMetadata_GetAllPropertyNames(This,ppvNames) (This)->lpVtbl->GetAllPropertyNames(This,ppvNames)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFMetadata_QueryInterface(IMFMetadata* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFMetadata_AddRef(IMFMetadata* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFMetadata_Release(IMFMetadata* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFMetadata methods ***/
+static FORCEINLINE HRESULT IMFMetadata_SetLanguage(IMFMetadata* This,LPCWSTR pwszRFC1766) {
+    return This->lpVtbl->SetLanguage(This,pwszRFC1766);
+}
+static FORCEINLINE HRESULT IMFMetadata_GetLanguage(IMFMetadata* This,LPWSTR *ppwszRFC1766) {
+    return This->lpVtbl->GetLanguage(This,ppwszRFC1766);
+}
+static FORCEINLINE HRESULT IMFMetadata_GetAllLanguages(IMFMetadata* This,PROPVARIANT *ppvLanguages) {
+    return This->lpVtbl->GetAllLanguages(This,ppvLanguages);
+}
+static FORCEINLINE HRESULT IMFMetadata_SetProperty(IMFMetadata* This,LPCWSTR pwszName,const PROPVARIANT *ppvValue) {
+    return This->lpVtbl->SetProperty(This,pwszName,ppvValue);
+}
+static FORCEINLINE HRESULT IMFMetadata_GetProperty(IMFMetadata* This,LPCWSTR pwszName,PROPVARIANT *ppvValue) {
+    return This->lpVtbl->GetProperty(This,pwszName,ppvValue);
+}
+static FORCEINLINE HRESULT IMFMetadata_DeleteProperty(IMFMetadata* This,LPCWSTR pwszName) {
+    return This->lpVtbl->DeleteProperty(This,pwszName);
+}
+static FORCEINLINE HRESULT IMFMetadata_GetAllPropertyNames(IMFMetadata* This,PROPVARIANT *ppvNames) {
+    return This->lpVtbl->GetAllPropertyNames(This,ppvNames);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFMetadata_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFMetadataProvider interface
+ */
+#ifndef __IMFMetadataProvider_INTERFACE_DEFINED__
+#define __IMFMetadataProvider_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFMetadataProvider, 0x56181d2d, 0xe221, 0x4adb, 0xb1,0xc8, 0x3c,0xee,0x6a,0x53,0xf7,0x6f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("56181d2d-e221-4adb-b1c8-3cee6a53f76f")
+IMFMetadataProvider : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetMFMetadata(
+        IMFPresentationDescriptor *pPresentationDescriptor,
+        DWORD dwStreamIdentifier,
+        DWORD dwFlags,
+        IMFMetadata **ppMFMetadata) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFMetadataProvider, 0x56181d2d, 0xe221, 0x4adb, 0xb1,0xc8, 0x3c,0xee,0x6a,0x53,0xf7,0x6f)
+#endif
+#else
+typedef struct IMFMetadataProviderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFMetadataProvider *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFMetadataProvider *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFMetadataProvider *This);
+
+    /*** IMFMetadataProvider methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetMFMetadata)(
+        IMFMetadataProvider *This,
+        IMFPresentationDescriptor *pPresentationDescriptor,
+        DWORD dwStreamIdentifier,
+        DWORD dwFlags,
+        IMFMetadata **ppMFMetadata);
+
+    END_INTERFACE
+} IMFMetadataProviderVtbl;
+
+interface IMFMetadataProvider {
+    CONST_VTBL IMFMetadataProviderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFMetadataProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFMetadataProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFMetadataProvider_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFMetadataProvider methods ***/
+#define IMFMetadataProvider_GetMFMetadata(This,pPresentationDescriptor,dwStreamIdentifier,dwFlags,ppMFMetadata) (This)->lpVtbl->GetMFMetadata(This,pPresentationDescriptor,dwStreamIdentifier,dwFlags,ppMFMetadata)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFMetadataProvider_QueryInterface(IMFMetadataProvider* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFMetadataProvider_AddRef(IMFMetadataProvider* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFMetadataProvider_Release(IMFMetadataProvider* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFMetadataProvider methods ***/
+static FORCEINLINE HRESULT IMFMetadataProvider_GetMFMetadata(IMFMetadataProvider* This,IMFPresentationDescriptor *pPresentationDescriptor,DWORD dwStreamIdentifier,DWORD dwFlags,IMFMetadata **ppMFMetadata) {
+    return This->lpVtbl->GetMFMetadata(This,pPresentationDescriptor,dwStreamIdentifier,dwFlags,ppMFMetadata);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFMetadataProvider_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFPresentationTimeSource interface
+ */
+#ifndef __IMFPresentationTimeSource_INTERFACE_DEFINED__
+#define __IMFPresentationTimeSource_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFPresentationTimeSource, 0x7ff12cce, 0xf76f, 0x41c2, 0x86,0x3b, 0x16,0x66,0xc8,0xe5,0xe1,0x39);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7ff12cce-f76f-41c2-863b-1666c8e5e139")
+IMFPresentationTimeSource : public IMFClock
+{
+    virtual HRESULT STDMETHODCALLTYPE GetUnderlyingClock(
+        IMFClock **ppClock) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFPresentationTimeSource, 0x7ff12cce, 0xf76f, 0x41c2, 0x86,0x3b, 0x16,0x66,0xc8,0xe5,0xe1,0x39)
+#endif
+#else
+typedef struct IMFPresentationTimeSourceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFPresentationTimeSource *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFPresentationTimeSource *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFPresentationTimeSource *This);
+
+    /*** IMFClock methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetClockCharacteristics)(
+        IMFPresentationTimeSource *This,
+        DWORD *pdwCharacteristics);
+
+    HRESULT (STDMETHODCALLTYPE *GetCorrelatedTime)(
+        IMFPresentationTimeSource *This,
+        DWORD dwReserved,
+        LONGLONG *pllClockTime,
+        MFTIME *phnsSystemTime);
+
+    HRESULT (STDMETHODCALLTYPE *GetContinuityKey)(
+        IMFPresentationTimeSource *This,
+        DWORD *pdwContinuityKey);
+
+    HRESULT (STDMETHODCALLTYPE *GetState)(
+        IMFPresentationTimeSource *This,
+        DWORD dwReserved,
+        MFCLOCK_STATE *peClockState);
+
+    HRESULT (STDMETHODCALLTYPE *GetProperties)(
+        IMFPresentationTimeSource *This,
+        MFCLOCK_PROPERTIES *pClockProperties);
+
+    /*** IMFPresentationTimeSource methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetUnderlyingClock)(
+        IMFPresentationTimeSource *This,
+        IMFClock **ppClock);
+
+    END_INTERFACE
+} IMFPresentationTimeSourceVtbl;
+
+interface IMFPresentationTimeSource {
+    CONST_VTBL IMFPresentationTimeSourceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFPresentationTimeSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFPresentationTimeSource_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFPresentationTimeSource_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFClock methods ***/
+#define IMFPresentationTimeSource_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics)
+#define IMFPresentationTimeSource_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime)
+#define IMFPresentationTimeSource_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey)
+#define IMFPresentationTimeSource_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState)
+#define IMFPresentationTimeSource_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties)
+/*** IMFPresentationTimeSource methods ***/
+#define IMFPresentationTimeSource_GetUnderlyingClock(This,ppClock) (This)->lpVtbl->GetUnderlyingClock(This,ppClock)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFPresentationTimeSource_QueryInterface(IMFPresentationTimeSource* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFPresentationTimeSource_AddRef(IMFPresentationTimeSource* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFPresentationTimeSource_Release(IMFPresentationTimeSource* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFClock methods ***/
+static FORCEINLINE HRESULT IMFPresentationTimeSource_GetClockCharacteristics(IMFPresentationTimeSource* This,DWORD *pdwCharacteristics) {
+    return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics);
+}
+static FORCEINLINE HRESULT IMFPresentationTimeSource_GetCorrelatedTime(IMFPresentationTimeSource* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) {
+    return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime);
+}
+static FORCEINLINE HRESULT IMFPresentationTimeSource_GetContinuityKey(IMFPresentationTimeSource* This,DWORD *pdwContinuityKey) {
+    return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey);
+}
+static FORCEINLINE HRESULT IMFPresentationTimeSource_GetState(IMFPresentationTimeSource* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) {
+    return This->lpVtbl->GetState(This,dwReserved,peClockState);
+}
+static FORCEINLINE HRESULT IMFPresentationTimeSource_GetProperties(IMFPresentationTimeSource* This,MFCLOCK_PROPERTIES *pClockProperties) {
+    return This->lpVtbl->GetProperties(This,pClockProperties);
+}
+/*** IMFPresentationTimeSource methods ***/
+static FORCEINLINE HRESULT IMFPresentationTimeSource_GetUnderlyingClock(IMFPresentationTimeSource* This,IMFClock **ppClock) {
+    return This->lpVtbl->GetUnderlyingClock(This,ppClock);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFPresentationTimeSource_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFPresentationClock interface
+ */
+#ifndef __IMFPresentationClock_INTERFACE_DEFINED__
+#define __IMFPresentationClock_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFPresentationClock, 0x868ce85c, 0x8ea9, 0x4f55, 0xab,0x82, 0xb0,0x09,0xa9,0x10,0xa8,0x05);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("868ce85c-8ea9-4f55-ab82-b009a910a805")
+IMFPresentationClock : public IMFClock
+{
+    virtual HRESULT STDMETHODCALLTYPE SetTimeSource(
+        IMFPresentationTimeSource *pTimeSource) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetTimeSource(
+        IMFPresentationTimeSource **ppTimeSource) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetTime(
+        MFTIME *phnsClockTime) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddClockStateSink(
+        IMFClockStateSink *pStateSink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveClockStateSink(
+        IMFClockStateSink *pStateSink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Start(
+        LONGLONG llClockStartOffset) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Stop(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Pause(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFPresentationClock, 0x868ce85c, 0x8ea9, 0x4f55, 0xab,0x82, 0xb0,0x09,0xa9,0x10,0xa8,0x05)
+#endif
+#else
+typedef struct IMFPresentationClockVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFPresentationClock *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFPresentationClock *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFPresentationClock *This);
+
+    /*** IMFClock methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetClockCharacteristics)(
+        IMFPresentationClock *This,
+        DWORD *pdwCharacteristics);
+
+    HRESULT (STDMETHODCALLTYPE *GetCorrelatedTime)(
+        IMFPresentationClock *This,
+        DWORD dwReserved,
+        LONGLONG *pllClockTime,
+        MFTIME *phnsSystemTime);
+
+    HRESULT (STDMETHODCALLTYPE *GetContinuityKey)(
+        IMFPresentationClock *This,
+        DWORD *pdwContinuityKey);
+
+    HRESULT (STDMETHODCALLTYPE *GetState)(
+        IMFPresentationClock *This,
+        DWORD dwReserved,
+        MFCLOCK_STATE *peClockState);
+
+    HRESULT (STDMETHODCALLTYPE *GetProperties)(
+        IMFPresentationClock *This,
+        MFCLOCK_PROPERTIES *pClockProperties);
+
+    /*** IMFPresentationClock methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetTimeSource)(
+        IMFPresentationClock *This,
+        IMFPresentationTimeSource *pTimeSource);
+
+    HRESULT (STDMETHODCALLTYPE *GetTimeSource)(
+        IMFPresentationClock *This,
+        IMFPresentationTimeSource **ppTimeSource);
+
+    HRESULT (STDMETHODCALLTYPE *GetTime)(
+        IMFPresentationClock *This,
+        MFTIME *phnsClockTime);
+
+    HRESULT (STDMETHODCALLTYPE *AddClockStateSink)(
+        IMFPresentationClock *This,
+        IMFClockStateSink *pStateSink);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveClockStateSink)(
+        IMFPresentationClock *This,
+        IMFClockStateSink *pStateSink);
+
+    HRESULT (STDMETHODCALLTYPE *Start)(
+        IMFPresentationClock *This,
+        LONGLONG llClockStartOffset);
+
+    HRESULT (STDMETHODCALLTYPE *Stop)(
+        IMFPresentationClock *This);
+
+    HRESULT (STDMETHODCALLTYPE *Pause)(
+        IMFPresentationClock *This);
+
+    END_INTERFACE
+} IMFPresentationClockVtbl;
+
+interface IMFPresentationClock {
+    CONST_VTBL IMFPresentationClockVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFPresentationClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFPresentationClock_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFPresentationClock_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFClock methods ***/
+#define IMFPresentationClock_GetClockCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics)
+#define IMFPresentationClock_GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime) (This)->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime)
+#define IMFPresentationClock_GetContinuityKey(This,pdwContinuityKey) (This)->lpVtbl->GetContinuityKey(This,pdwContinuityKey)
+#define IMFPresentationClock_GetState(This,dwReserved,peClockState) (This)->lpVtbl->GetState(This,dwReserved,peClockState)
+#define IMFPresentationClock_GetProperties(This,pClockProperties) (This)->lpVtbl->GetProperties(This,pClockProperties)
+/*** IMFPresentationClock methods ***/
+#define IMFPresentationClock_SetTimeSource(This,pTimeSource) (This)->lpVtbl->SetTimeSource(This,pTimeSource)
+#define IMFPresentationClock_GetTimeSource(This,ppTimeSource) (This)->lpVtbl->GetTimeSource(This,ppTimeSource)
+#define IMFPresentationClock_GetTime(This,phnsClockTime) (This)->lpVtbl->GetTime(This,phnsClockTime)
+#define IMFPresentationClock_AddClockStateSink(This,pStateSink) (This)->lpVtbl->AddClockStateSink(This,pStateSink)
+#define IMFPresentationClock_RemoveClockStateSink(This,pStateSink) (This)->lpVtbl->RemoveClockStateSink(This,pStateSink)
+#define IMFPresentationClock_Start(This,llClockStartOffset) (This)->lpVtbl->Start(This,llClockStartOffset)
+#define IMFPresentationClock_Stop(This) (This)->lpVtbl->Stop(This)
+#define IMFPresentationClock_Pause(This) (This)->lpVtbl->Pause(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFPresentationClock_QueryInterface(IMFPresentationClock* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFPresentationClock_AddRef(IMFPresentationClock* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFPresentationClock_Release(IMFPresentationClock* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFClock methods ***/
+static FORCEINLINE HRESULT IMFPresentationClock_GetClockCharacteristics(IMFPresentationClock* This,DWORD *pdwCharacteristics) {
+    return This->lpVtbl->GetClockCharacteristics(This,pdwCharacteristics);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_GetCorrelatedTime(IMFPresentationClock* This,DWORD dwReserved,LONGLONG *pllClockTime,MFTIME *phnsSystemTime) {
+    return This->lpVtbl->GetCorrelatedTime(This,dwReserved,pllClockTime,phnsSystemTime);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_GetContinuityKey(IMFPresentationClock* This,DWORD *pdwContinuityKey) {
+    return This->lpVtbl->GetContinuityKey(This,pdwContinuityKey);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_GetState(IMFPresentationClock* This,DWORD dwReserved,MFCLOCK_STATE *peClockState) {
+    return This->lpVtbl->GetState(This,dwReserved,peClockState);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_GetProperties(IMFPresentationClock* This,MFCLOCK_PROPERTIES *pClockProperties) {
+    return This->lpVtbl->GetProperties(This,pClockProperties);
+}
+/*** IMFPresentationClock methods ***/
+static FORCEINLINE HRESULT IMFPresentationClock_SetTimeSource(IMFPresentationClock* This,IMFPresentationTimeSource *pTimeSource) {
+    return This->lpVtbl->SetTimeSource(This,pTimeSource);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_GetTimeSource(IMFPresentationClock* This,IMFPresentationTimeSource **ppTimeSource) {
+    return This->lpVtbl->GetTimeSource(This,ppTimeSource);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_GetTime(IMFPresentationClock* This,MFTIME *phnsClockTime) {
+    return This->lpVtbl->GetTime(This,phnsClockTime);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_AddClockStateSink(IMFPresentationClock* This,IMFClockStateSink *pStateSink) {
+    return This->lpVtbl->AddClockStateSink(This,pStateSink);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_RemoveClockStateSink(IMFPresentationClock* This,IMFClockStateSink *pStateSink) {
+    return This->lpVtbl->RemoveClockStateSink(This,pStateSink);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_Start(IMFPresentationClock* This,LONGLONG llClockStartOffset) {
+    return This->lpVtbl->Start(This,llClockStartOffset);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_Stop(IMFPresentationClock* This) {
+    return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT IMFPresentationClock_Pause(IMFPresentationClock* This) {
+    return This->lpVtbl->Pause(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFPresentationClock_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFRateControl interface
+ */
+#ifndef __IMFRateControl_INTERFACE_DEFINED__
+#define __IMFRateControl_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFRateControl, 0x88ddcd21, 0x03c3, 0x4275, 0x91,0xed, 0x55,0xee,0x39,0x29,0x32,0x8f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("88ddcd21-03c3-4275-91ed-55ee3929328f")
+IMFRateControl : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetRate(
+        WINBOOL fThin,
+        float flRate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRate(
+        WINBOOL *pfThin,
+        float *pflRate) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFRateControl, 0x88ddcd21, 0x03c3, 0x4275, 0x91,0xed, 0x55,0xee,0x39,0x29,0x32,0x8f)
+#endif
+#else
+typedef struct IMFRateControlVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFRateControl *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFRateControl *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFRateControl *This);
+
+    /*** IMFRateControl methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetRate)(
+        IMFRateControl *This,
+        WINBOOL fThin,
+        float flRate);
+
+    HRESULT (STDMETHODCALLTYPE *GetRate)(
+        IMFRateControl *This,
+        WINBOOL *pfThin,
+        float *pflRate);
+
+    END_INTERFACE
+} IMFRateControlVtbl;
+
+interface IMFRateControl {
+    CONST_VTBL IMFRateControlVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFRateControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFRateControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFRateControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFRateControl methods ***/
+#define IMFRateControl_SetRate(This,fThin,flRate) (This)->lpVtbl->SetRate(This,fThin,flRate)
+#define IMFRateControl_GetRate(This,pfThin,pflRate) (This)->lpVtbl->GetRate(This,pfThin,pflRate)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFRateControl_QueryInterface(IMFRateControl* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFRateControl_AddRef(IMFRateControl* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFRateControl_Release(IMFRateControl* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFRateControl methods ***/
+static FORCEINLINE HRESULT IMFRateControl_SetRate(IMFRateControl* This,WINBOOL fThin,float flRate) {
+    return This->lpVtbl->SetRate(This,fThin,flRate);
+}
+static FORCEINLINE HRESULT IMFRateControl_GetRate(IMFRateControl* This,WINBOOL *pfThin,float *pflRate) {
+    return This->lpVtbl->GetRate(This,pfThin,pflRate);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFRateControl_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFRateSupport interface
+ */
+#ifndef __IMFRateSupport_INTERFACE_DEFINED__
+#define __IMFRateSupport_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFRateSupport, 0x0a9ccdbc, 0xd797, 0x4563, 0x96,0x67, 0x94,0xec,0x5d,0x79,0x29,0x2d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0a9ccdbc-d797-4563-9667-94ec5d79292d")
+IMFRateSupport : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetSlowestRate(
+        MFRATE_DIRECTION eDirection,
+        WINBOOL fThin,
+        float *pflRate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFastestRate(
+        MFRATE_DIRECTION eDirection,
+        WINBOOL fThin,
+        float *pflRate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsRateSupported(
+        WINBOOL fThin,
+        float flRate,
+        float *pflNearestSupportedRate) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFRateSupport, 0x0a9ccdbc, 0xd797, 0x4563, 0x96,0x67, 0x94,0xec,0x5d,0x79,0x29,0x2d)
+#endif
+#else
+typedef struct IMFRateSupportVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFRateSupport *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFRateSupport *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFRateSupport *This);
+
+    /*** IMFRateSupport methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSlowestRate)(
+        IMFRateSupport *This,
+        MFRATE_DIRECTION eDirection,
+        WINBOOL fThin,
+        float *pflRate);
+
+    HRESULT (STDMETHODCALLTYPE *GetFastestRate)(
+        IMFRateSupport *This,
+        MFRATE_DIRECTION eDirection,
+        WINBOOL fThin,
+        float *pflRate);
+
+    HRESULT (STDMETHODCALLTYPE *IsRateSupported)(
+        IMFRateSupport *This,
+        WINBOOL fThin,
+        float flRate,
+        float *pflNearestSupportedRate);
+
+    END_INTERFACE
+} IMFRateSupportVtbl;
+
+interface IMFRateSupport {
+    CONST_VTBL IMFRateSupportVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFRateSupport_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFRateSupport_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFRateSupport_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFRateSupport methods ***/
+#define IMFRateSupport_GetSlowestRate(This,eDirection,fThin,pflRate) (This)->lpVtbl->GetSlowestRate(This,eDirection,fThin,pflRate)
+#define IMFRateSupport_GetFastestRate(This,eDirection,fThin,pflRate) (This)->lpVtbl->GetFastestRate(This,eDirection,fThin,pflRate)
+#define IMFRateSupport_IsRateSupported(This,fThin,flRate,pflNearestSupportedRate) (This)->lpVtbl->IsRateSupported(This,fThin,flRate,pflNearestSupportedRate)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFRateSupport_QueryInterface(IMFRateSupport* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFRateSupport_AddRef(IMFRateSupport* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFRateSupport_Release(IMFRateSupport* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFRateSupport methods ***/
+static FORCEINLINE HRESULT IMFRateSupport_GetSlowestRate(IMFRateSupport* This,MFRATE_DIRECTION eDirection,WINBOOL fThin,float *pflRate) {
+    return This->lpVtbl->GetSlowestRate(This,eDirection,fThin,pflRate);
+}
+static FORCEINLINE HRESULT IMFRateSupport_GetFastestRate(IMFRateSupport* This,MFRATE_DIRECTION eDirection,WINBOOL fThin,float *pflRate) {
+    return This->lpVtbl->GetFastestRate(This,eDirection,fThin,pflRate);
+}
+static FORCEINLINE HRESULT IMFRateSupport_IsRateSupported(IMFRateSupport* This,WINBOOL fThin,float flRate,float *pflNearestSupportedRate) {
+    return This->lpVtbl->IsRateSupported(This,fThin,flRate,pflNearestSupportedRate);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFRateSupport_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFSampleGrabberSinkCallback interface
+ */
+#ifndef __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__
+#define __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFSampleGrabberSinkCallback, 0x8c7b80bf, 0xee42, 0x4b59, 0xb1,0xdf, 0x55,0x66,0x8e,0x1b,0xdc,0xa8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8c7b80bf-ee42-4b59-b1df-55668e1bdca8")
+IMFSampleGrabberSinkCallback : public IMFClockStateSink
+{
+    virtual HRESULT STDMETHODCALLTYPE OnSetPresentationClock(
+        IMFPresentationClock *pPresentationClock) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnProcessSample(
+        REFGUID guidMajorMediaType,
+        DWORD dwSampleFlags,
+        LONGLONG llSampleTime,
+        LONGLONG llSampleDuration,
+        const BYTE *pSampleBuffer,
+        DWORD dwSampleSize) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnShutdown(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFSampleGrabberSinkCallback, 0x8c7b80bf, 0xee42, 0x4b59, 0xb1,0xdf, 0x55,0x66,0x8e,0x1b,0xdc,0xa8)
+#endif
+#else
+typedef struct IMFSampleGrabberSinkCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFSampleGrabberSinkCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFSampleGrabberSinkCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFSampleGrabberSinkCallback *This);
+
+    /*** IMFClockStateSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnClockStart)(
+        IMFSampleGrabberSinkCallback *This,
+        MFTIME hnsSystemTime,
+        LONGLONG llClockStartOffset);
+
+    HRESULT (STDMETHODCALLTYPE *OnClockStop)(
+        IMFSampleGrabberSinkCallback *This,
+        MFTIME hnsSystemTime);
+
+    HRESULT (STDMETHODCALLTYPE *OnClockPause)(
+        IMFSampleGrabberSinkCallback *This,
+        MFTIME hnsSystemTime);
+
+    HRESULT (STDMETHODCALLTYPE *OnClockRestart)(
+        IMFSampleGrabberSinkCallback *This,
+        MFTIME hnsSystemTime);
+
+    HRESULT (STDMETHODCALLTYPE *OnClockSetRate)(
+        IMFSampleGrabberSinkCallback *This,
+        MFTIME hnsSystemTime,
+        float flRate);
+
+    /*** IMFSampleGrabberSinkCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnSetPresentationClock)(
+        IMFSampleGrabberSinkCallback *This,
+        IMFPresentationClock *pPresentationClock);
+
+    HRESULT (STDMETHODCALLTYPE *OnProcessSample)(
+        IMFSampleGrabberSinkCallback *This,
+        REFGUID guidMajorMediaType,
+        DWORD dwSampleFlags,
+        LONGLONG llSampleTime,
+        LONGLONG llSampleDuration,
+        const BYTE *pSampleBuffer,
+        DWORD dwSampleSize);
+
+    HRESULT (STDMETHODCALLTYPE *OnShutdown)(
+        IMFSampleGrabberSinkCallback *This);
+
+    END_INTERFACE
+} IMFSampleGrabberSinkCallbackVtbl;
+
+interface IMFSampleGrabberSinkCallback {
+    CONST_VTBL IMFSampleGrabberSinkCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFSampleGrabberSinkCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSampleGrabberSinkCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFSampleGrabberSinkCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFClockStateSink methods ***/
+#define IMFSampleGrabberSinkCallback_OnClockStart(This,hnsSystemTime,llClockStartOffset) (This)->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset)
+#define IMFSampleGrabberSinkCallback_OnClockStop(This,hnsSystemTime) (This)->lpVtbl->OnClockStop(This,hnsSystemTime)
+#define IMFSampleGrabberSinkCallback_OnClockPause(This,hnsSystemTime) (This)->lpVtbl->OnClockPause(This,hnsSystemTime)
+#define IMFSampleGrabberSinkCallback_OnClockRestart(This,hnsSystemTime) (This)->lpVtbl->OnClockRestart(This,hnsSystemTime)
+#define IMFSampleGrabberSinkCallback_OnClockSetRate(This,hnsSystemTime,flRate) (This)->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate)
+/*** IMFSampleGrabberSinkCallback methods ***/
+#define IMFSampleGrabberSinkCallback_OnSetPresentationClock(This,pPresentationClock) (This)->lpVtbl->OnSetPresentationClock(This,pPresentationClock)
+#define IMFSampleGrabberSinkCallback_OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize) (This)->lpVtbl->OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize)
+#define IMFSampleGrabberSinkCallback_OnShutdown(This) (This)->lpVtbl->OnShutdown(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_QueryInterface(IMFSampleGrabberSinkCallback* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFSampleGrabberSinkCallback_AddRef(IMFSampleGrabberSinkCallback* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFSampleGrabberSinkCallback_Release(IMFSampleGrabberSinkCallback* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFClockStateSink methods ***/
+static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockStart(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime,LONGLONG llClockStartOffset) {
+    return This->lpVtbl->OnClockStart(This,hnsSystemTime,llClockStartOffset);
+}
+static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockStop(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime) {
+    return This->lpVtbl->OnClockStop(This,hnsSystemTime);
+}
+static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockPause(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime) {
+    return This->lpVtbl->OnClockPause(This,hnsSystemTime);
+}
+static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockRestart(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime) {
+    return This->lpVtbl->OnClockRestart(This,hnsSystemTime);
+}
+static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnClockSetRate(IMFSampleGrabberSinkCallback* This,MFTIME hnsSystemTime,float flRate) {
+    return This->lpVtbl->OnClockSetRate(This,hnsSystemTime,flRate);
+}
+/*** IMFSampleGrabberSinkCallback methods ***/
+static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnSetPresentationClock(IMFSampleGrabberSinkCallback* This,IMFPresentationClock *pPresentationClock) {
+    return This->lpVtbl->OnSetPresentationClock(This,pPresentationClock);
+}
+static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnProcessSample(IMFSampleGrabberSinkCallback* This,REFGUID guidMajorMediaType,DWORD dwSampleFlags,LONGLONG llSampleTime,LONGLONG llSampleDuration,const BYTE *pSampleBuffer,DWORD dwSampleSize) {
+    return This->lpVtbl->OnProcessSample(This,guidMajorMediaType,dwSampleFlags,llSampleTime,llSampleDuration,pSampleBuffer,dwSampleSize);
+}
+static FORCEINLINE HRESULT IMFSampleGrabberSinkCallback_OnShutdown(IMFSampleGrabberSinkCallback* This) {
+    return This->lpVtbl->OnShutdown(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFSampleGrabberSinkCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFSourceResolver interface
+ */
+#ifndef __IMFSourceResolver_INTERFACE_DEFINED__
+#define __IMFSourceResolver_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFSourceResolver, 0xfbe5a32d, 0xa497, 0x4b61, 0xbb,0x85, 0x97,0xb1,0xa8,0x48,0xa6,0xe3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fbe5a32d-a497-4b61-bb85-97b1a848a6e3")
+IMFSourceResolver : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateObjectFromURL(
+        LPCWSTR pwszURL,
+        DWORD dwFlags,
+        IPropertyStore *pProps,
+        MF_OBJECT_TYPE *pObjectType,
+        IUnknown **ppObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateObjectFromByteStream(
+        IMFByteStream *pByteStream,
+        LPCWSTR pwszURL,
+        DWORD dwFlags,
+        IPropertyStore *pProps,
+        MF_OBJECT_TYPE *pObjectType,
+        IUnknown **ppObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginCreateObjectFromURL(
+        LPCWSTR pwszURL,
+        DWORD dwFlags,
+        IPropertyStore *pProps,
+        IUnknown **ppIUnknownCancelCookie,
+        IMFAsyncCallback *pCallback,
+        IUnknown *punkState) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndCreateObjectFromURL(
+        IMFAsyncResult *pResult,
+        MF_OBJECT_TYPE *pObjectType,
+        IUnknown **ppObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginCreateObjectFromByteStream(
+        IMFByteStream *pByteStream,
+        LPCWSTR pwszURL,
+        DWORD dwFlags,
+        IPropertyStore *pProps,
+        IUnknown **ppIUnknownCancelCookie,
+        IMFAsyncCallback *pCallback,
+        IUnknown *punkState) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndCreateObjectFromByteStream(
+        IMFAsyncResult *pResult,
+        MF_OBJECT_TYPE *pObjectType,
+        IUnknown **ppObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CancelObjectCreation(
+        IUnknown *pIUnknownCancelCookie) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFSourceResolver, 0xfbe5a32d, 0xa497, 0x4b61, 0xbb,0x85, 0x97,0xb1,0xa8,0x48,0xa6,0xe3)
+#endif
+#else
+typedef struct IMFSourceResolverVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFSourceResolver *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFSourceResolver *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFSourceResolver *This);
+
+    /*** IMFSourceResolver methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateObjectFromURL)(
+        IMFSourceResolver *This,
+        LPCWSTR pwszURL,
+        DWORD dwFlags,
+        IPropertyStore *pProps,
+        MF_OBJECT_TYPE *pObjectType,
+        IUnknown **ppObject);
+
+    HRESULT (STDMETHODCALLTYPE *CreateObjectFromByteStream)(
+        IMFSourceResolver *This,
+        IMFByteStream *pByteStream,
+        LPCWSTR pwszURL,
+        DWORD dwFlags,
+        IPropertyStore *pProps,
+        MF_OBJECT_TYPE *pObjectType,
+        IUnknown **ppObject);
+
+    HRESULT (STDMETHODCALLTYPE *BeginCreateObjectFromURL)(
+        IMFSourceResolver *This,
+        LPCWSTR pwszURL,
+        DWORD dwFlags,
+        IPropertyStore *pProps,
+        IUnknown **ppIUnknownCancelCookie,
+        IMFAsyncCallback *pCallback,
+        IUnknown *punkState);
+
+    HRESULT (STDMETHODCALLTYPE *EndCreateObjectFromURL)(
+        IMFSourceResolver *This,
+        IMFAsyncResult *pResult,
+        MF_OBJECT_TYPE *pObjectType,
+        IUnknown **ppObject);
+
+    HRESULT (STDMETHODCALLTYPE *BeginCreateObjectFromByteStream)(
+        IMFSourceResolver *This,
+        IMFByteStream *pByteStream,
+        LPCWSTR pwszURL,
+        DWORD dwFlags,
+        IPropertyStore *pProps,
+        IUnknown **ppIUnknownCancelCookie,
+        IMFAsyncCallback *pCallback,
+        IUnknown *punkState);
+
+    HRESULT (STDMETHODCALLTYPE *EndCreateObjectFromByteStream)(
+        IMFSourceResolver *This,
+        IMFAsyncResult *pResult,
+        MF_OBJECT_TYPE *pObjectType,
+        IUnknown **ppObject);
+
+    HRESULT (STDMETHODCALLTYPE *CancelObjectCreation)(
+        IMFSourceResolver *This,
+        IUnknown *pIUnknownCancelCookie);
+
+    END_INTERFACE
+} IMFSourceResolverVtbl;
+
+interface IMFSourceResolver {
+    CONST_VTBL IMFSourceResolverVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFSourceResolver_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSourceResolver_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFSourceResolver_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFSourceResolver methods ***/
+#define IMFSourceResolver_CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject) (This)->lpVtbl->CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject)
+#define IMFSourceResolver_CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject) (This)->lpVtbl->CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject)
+#define IMFSourceResolver_BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) (This)->lpVtbl->BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState)
+#define IMFSourceResolver_EndCreateObjectFromURL(This,pResult,pObjectType,ppObject) (This)->lpVtbl->EndCreateObjectFromURL(This,pResult,pObjectType,ppObject)
+#define IMFSourceResolver_BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState) (This)->lpVtbl->BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState)
+#define IMFSourceResolver_EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject) (This)->lpVtbl->EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject)
+#define IMFSourceResolver_CancelObjectCreation(This,pIUnknownCancelCookie) (This)->lpVtbl->CancelObjectCreation(This,pIUnknownCancelCookie)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFSourceResolver_QueryInterface(IMFSourceResolver* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFSourceResolver_AddRef(IMFSourceResolver* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFSourceResolver_Release(IMFSourceResolver* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFSourceResolver methods ***/
+static FORCEINLINE HRESULT IMFSourceResolver_CreateObjectFromURL(IMFSourceResolver* This,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) {
+    return This->lpVtbl->CreateObjectFromURL(This,pwszURL,dwFlags,pProps,pObjectType,ppObject);
+}
+static FORCEINLINE HRESULT IMFSourceResolver_CreateObjectFromByteStream(IMFSourceResolver* This,IMFByteStream *pByteStream,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) {
+    return This->lpVtbl->CreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,pObjectType,ppObject);
+}
+static FORCEINLINE HRESULT IMFSourceResolver_BeginCreateObjectFromURL(IMFSourceResolver* This,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,IUnknown **ppIUnknownCancelCookie,IMFAsyncCallback *pCallback,IUnknown *punkState) {
+    return This->lpVtbl->BeginCreateObjectFromURL(This,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState);
+}
+static FORCEINLINE HRESULT IMFSourceResolver_EndCreateObjectFromURL(IMFSourceResolver* This,IMFAsyncResult *pResult,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) {
+    return This->lpVtbl->EndCreateObjectFromURL(This,pResult,pObjectType,ppObject);
+}
+static FORCEINLINE HRESULT IMFSourceResolver_BeginCreateObjectFromByteStream(IMFSourceResolver* This,IMFByteStream *pByteStream,LPCWSTR pwszURL,DWORD dwFlags,IPropertyStore *pProps,IUnknown **ppIUnknownCancelCookie,IMFAsyncCallback *pCallback,IUnknown *punkState) {
+    return This->lpVtbl->BeginCreateObjectFromByteStream(This,pByteStream,pwszURL,dwFlags,pProps,ppIUnknownCancelCookie,pCallback,punkState);
+}
+static FORCEINLINE HRESULT IMFSourceResolver_EndCreateObjectFromByteStream(IMFSourceResolver* This,IMFAsyncResult *pResult,MF_OBJECT_TYPE *pObjectType,IUnknown **ppObject) {
+    return This->lpVtbl->EndCreateObjectFromByteStream(This,pResult,pObjectType,ppObject);
+}
+static FORCEINLINE HRESULT IMFSourceResolver_CancelObjectCreation(IMFSourceResolver* This,IUnknown *pIUnknownCancelCookie) {
+    return This->lpVtbl->CancelObjectCreation(This,pIUnknownCancelCookie);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteBeginCreateObjectFromURL_Proxy(
+    IMFSourceResolver* This,
+    LPCWSTR pwszURL,
+    DWORD dwFlags,
+    IPropertyStore *pProps,
+    IMFRemoteAsyncCallback *pCallback);
+void __RPC_STUB IMFSourceResolver_RemoteBeginCreateObjectFromURL_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteEndCreateObjectFromURL_Proxy(
+    IMFSourceResolver* This,
+    IUnknown *pResult,
+    MF_OBJECT_TYPE *pObjectType,
+    IUnknown **ppObject);
+void __RPC_STUB IMFSourceResolver_RemoteEndCreateObjectFromURL_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteBeginCreateObjectFromByteStream_Proxy(
+    IMFSourceResolver* This,
+    IMFByteStream *pByteStream,
+    LPCWSTR pwszURL,
+    DWORD dwFlags,
+    IPropertyStore *pProps,
+    IMFRemoteAsyncCallback *pCallback);
+void __RPC_STUB IMFSourceResolver_RemoteBeginCreateObjectFromByteStream_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IMFSourceResolver_RemoteEndCreateObjectFromByteStream_Proxy(
+    IMFSourceResolver* This,
+    IUnknown *pResult,
+    MF_OBJECT_TYPE *pObjectType,
+    IUnknown **ppObject);
+void __RPC_STUB IMFSourceResolver_RemoteEndCreateObjectFromByteStream_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IMFSourceResolver_BeginCreateObjectFromURL_Proxy(
+    IMFSourceResolver* This,
+    LPCWSTR pwszURL,
+    DWORD dwFlags,
+    IPropertyStore *pProps,
+    IUnknown **ppIUnknownCancelCookie,
+    IMFAsyncCallback *pCallback,
+    IUnknown *punkState);
+HRESULT __RPC_STUB IMFSourceResolver_BeginCreateObjectFromURL_Stub(
+    IMFSourceResolver* This,
+    LPCWSTR pwszURL,
+    DWORD dwFlags,
+    IPropertyStore *pProps,
+    IMFRemoteAsyncCallback *pCallback);
+HRESULT CALLBACK IMFSourceResolver_EndCreateObjectFromURL_Proxy(
+    IMFSourceResolver* This,
+    IMFAsyncResult *pResult,
+    MF_OBJECT_TYPE *pObjectType,
+    IUnknown **ppObject);
+HRESULT __RPC_STUB IMFSourceResolver_EndCreateObjectFromURL_Stub(
+    IMFSourceResolver* This,
+    IUnknown *pResult,
+    MF_OBJECT_TYPE *pObjectType,
+    IUnknown **ppObject);
+HRESULT CALLBACK IMFSourceResolver_BeginCreateObjectFromByteStream_Proxy(
+    IMFSourceResolver* This,
+    IMFByteStream *pByteStream,
+    LPCWSTR pwszURL,
+    DWORD dwFlags,
+    IPropertyStore *pProps,
+    IUnknown **ppIUnknownCancelCookie,
+    IMFAsyncCallback *pCallback,
+    IUnknown *punkState);
+HRESULT __RPC_STUB IMFSourceResolver_BeginCreateObjectFromByteStream_Stub(
+    IMFSourceResolver* This,
+    IMFByteStream *pByteStream,
+    LPCWSTR pwszURL,
+    DWORD dwFlags,
+    IPropertyStore *pProps,
+    IMFRemoteAsyncCallback *pCallback);
+HRESULT CALLBACK IMFSourceResolver_EndCreateObjectFromByteStream_Proxy(
+    IMFSourceResolver* This,
+    IMFAsyncResult *pResult,
+    MF_OBJECT_TYPE *pObjectType,
+    IUnknown **ppObject);
+HRESULT __RPC_STUB IMFSourceResolver_EndCreateObjectFromByteStream_Stub(
+    IMFSourceResolver* This,
+    IUnknown *pResult,
+    MF_OBJECT_TYPE *pObjectType,
+    IUnknown **ppObject);
+
+#endif  /* __IMFSourceResolver_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFStreamSink interface
+ */
+#ifndef __IMFStreamSink_INTERFACE_DEFINED__
+#define __IMFStreamSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFStreamSink, 0x0a97b3cf, 0x8e7c, 0x4a3d, 0x8f,0x8c, 0x0c,0x84,0x3d,0xc2,0x47,0xfb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0a97b3cf-8e7c-4a3d-8f8c-0c843dc247fb")
+IMFStreamSink : public IMFMediaEventGenerator
+{
+    virtual HRESULT STDMETHODCALLTYPE GetMediaSink(
+        IMFMediaSink **ppMediaSink) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetIdentifier(
+        DWORD *pdwIdentifier) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMediaTypeHandler(
+        IMFMediaTypeHandler **ppHandler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ProcessSample(
+        IMFSample *pSample) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PlaceMarker(
+        MFSTREAMSINK_MARKER_TYPE eMarkerType,
+        const PROPVARIANT *pvarMarkerValue,
+        const PROPVARIANT *pvarContextValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Flush(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFStreamSink, 0x0a97b3cf, 0x8e7c, 0x4a3d, 0x8f,0x8c, 0x0c,0x84,0x3d,0xc2,0x47,0xfb)
+#endif
+#else
+typedef struct IMFStreamSinkVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFStreamSink *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFStreamSink *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFStreamSink *This);
+
+    /*** IMFMediaEventGenerator methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetEvent)(
+        IMFStreamSink *This,
+        DWORD dwFlags,
+        IMFMediaEvent **ppEvent);
+
+    HRESULT (STDMETHODCALLTYPE *BeginGetEvent)(
+        IMFStreamSink *This,
+        IMFAsyncCallback *pCallback,
+        IUnknown *punkState);
+
+    HRESULT (STDMETHODCALLTYPE *EndGetEvent)(
+        IMFStreamSink *This,
+        IMFAsyncResult *pResult,
+        IMFMediaEvent **ppEvent);
+
+    HRESULT (STDMETHODCALLTYPE *QueueEvent)(
+        IMFStreamSink *This,
+        MediaEventType met,
+        REFGUID guidExtendedType,
+        HRESULT hrStatus,
+        const PROPVARIANT *pvValue);
+
+    /*** IMFStreamSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetMediaSink)(
+        IMFStreamSink *This,
+        IMFMediaSink **ppMediaSink);
+
+    HRESULT (STDMETHODCALLTYPE *GetIdentifier)(
+        IMFStreamSink *This,
+        DWORD *pdwIdentifier);
+
+    HRESULT (STDMETHODCALLTYPE *GetMediaTypeHandler)(
+        IMFStreamSink *This,
+        IMFMediaTypeHandler **ppHandler);
+
+    HRESULT (STDMETHODCALLTYPE *ProcessSample)(
+        IMFStreamSink *This,
+        IMFSample *pSample);
+
+    HRESULT (STDMETHODCALLTYPE *PlaceMarker)(
+        IMFStreamSink *This,
+        MFSTREAMSINK_MARKER_TYPE eMarkerType,
+        const PROPVARIANT *pvarMarkerValue,
+        const PROPVARIANT *pvarContextValue);
+
+    HRESULT (STDMETHODCALLTYPE *Flush)(
+        IMFStreamSink *This);
+
+    END_INTERFACE
+} IMFStreamSinkVtbl;
+
+interface IMFStreamSink {
+    CONST_VTBL IMFStreamSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFStreamSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFStreamSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFStreamSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFMediaEventGenerator methods ***/
+#define IMFStreamSink_GetEvent(This,dwFlags,ppEvent) (This)->lpVtbl->GetEvent(This,dwFlags,ppEvent)
+#define IMFStreamSink_BeginGetEvent(This,pCallback,punkState) (This)->lpVtbl->BeginGetEvent(This,pCallback,punkState)
+#define IMFStreamSink_EndGetEvent(This,pResult,ppEvent) (This)->lpVtbl->EndGetEvent(This,pResult,ppEvent)
+#define IMFStreamSink_QueueEvent(This,met,guidExtendedType,hrStatus,pvValue) (This)->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue)
+/*** IMFStreamSink methods ***/
+#define IMFStreamSink_GetMediaSink(This,ppMediaSink) (This)->lpVtbl->GetMediaSink(This,ppMediaSink)
+#define IMFStreamSink_GetIdentifier(This,pdwIdentifier) (This)->lpVtbl->GetIdentifier(This,pdwIdentifier)
+#define IMFStreamSink_GetMediaTypeHandler(This,ppHandler) (This)->lpVtbl->GetMediaTypeHandler(This,ppHandler)
+#define IMFStreamSink_ProcessSample(This,pSample) (This)->lpVtbl->ProcessSample(This,pSample)
+#define IMFStreamSink_PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue) (This)->lpVtbl->PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue)
+#define IMFStreamSink_Flush(This) (This)->lpVtbl->Flush(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFStreamSink_QueryInterface(IMFStreamSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFStreamSink_AddRef(IMFStreamSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFStreamSink_Release(IMFStreamSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFMediaEventGenerator methods ***/
+static FORCEINLINE HRESULT IMFStreamSink_GetEvent(IMFStreamSink* This,DWORD dwFlags,IMFMediaEvent **ppEvent) {
+    return This->lpVtbl->GetEvent(This,dwFlags,ppEvent);
+}
+static FORCEINLINE HRESULT IMFStreamSink_BeginGetEvent(IMFStreamSink* This,IMFAsyncCallback *pCallback,IUnknown *punkState) {
+    return This->lpVtbl->BeginGetEvent(This,pCallback,punkState);
+}
+static FORCEINLINE HRESULT IMFStreamSink_EndGetEvent(IMFStreamSink* This,IMFAsyncResult *pResult,IMFMediaEvent **ppEvent) {
+    return This->lpVtbl->EndGetEvent(This,pResult,ppEvent);
+}
+static FORCEINLINE HRESULT IMFStreamSink_QueueEvent(IMFStreamSink* This,MediaEventType met,REFGUID guidExtendedType,HRESULT hrStatus,const PROPVARIANT *pvValue) {
+    return This->lpVtbl->QueueEvent(This,met,guidExtendedType,hrStatus,pvValue);
+}
+/*** IMFStreamSink methods ***/
+static FORCEINLINE HRESULT IMFStreamSink_GetMediaSink(IMFStreamSink* This,IMFMediaSink **ppMediaSink) {
+    return This->lpVtbl->GetMediaSink(This,ppMediaSink);
+}
+static FORCEINLINE HRESULT IMFStreamSink_GetIdentifier(IMFStreamSink* This,DWORD *pdwIdentifier) {
+    return This->lpVtbl->GetIdentifier(This,pdwIdentifier);
+}
+static FORCEINLINE HRESULT IMFStreamSink_GetMediaTypeHandler(IMFStreamSink* This,IMFMediaTypeHandler **ppHandler) {
+    return This->lpVtbl->GetMediaTypeHandler(This,ppHandler);
+}
+static FORCEINLINE HRESULT IMFStreamSink_ProcessSample(IMFStreamSink* This,IMFSample *pSample) {
+    return This->lpVtbl->ProcessSample(This,pSample);
+}
+static FORCEINLINE HRESULT IMFStreamSink_PlaceMarker(IMFStreamSink* This,MFSTREAMSINK_MARKER_TYPE eMarkerType,const PROPVARIANT *pvarMarkerValue,const PROPVARIANT *pvarContextValue) {
+    return This->lpVtbl->PlaceMarker(This,eMarkerType,pvarMarkerValue,pvarContextValue);
+}
+static FORCEINLINE HRESULT IMFStreamSink_Flush(IMFStreamSink* This) {
+    return This->lpVtbl->Flush(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFStreamSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFTopoLoader interface
+ */
+#ifndef __IMFTopoLoader_INTERFACE_DEFINED__
+#define __IMFTopoLoader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFTopoLoader, 0xde9a6157, 0xf660, 0x4643, 0xb5,0x6a, 0xdf,0x9f,0x79,0x98,0xc7,0xcd);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("de9a6157-f660-4643-b56a-df9f7998c7cd")
+IMFTopoLoader : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Load(
+        IMFTopology *pInputTopo,
+        IMFTopology **ppOutputTopo,
+        IMFTopology *pCurrentTopo) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFTopoLoader, 0xde9a6157, 0xf660, 0x4643, 0xb5,0x6a, 0xdf,0x9f,0x79,0x98,0xc7,0xcd)
+#endif
+#else
+typedef struct IMFTopoLoaderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFTopoLoader *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFTopoLoader *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFTopoLoader *This);
+
+    /*** IMFTopoLoader methods ***/
+    HRESULT (STDMETHODCALLTYPE *Load)(
+        IMFTopoLoader *This,
+        IMFTopology *pInputTopo,
+        IMFTopology **ppOutputTopo,
+        IMFTopology *pCurrentTopo);
+
+    END_INTERFACE
+} IMFTopoLoaderVtbl;
+
+interface IMFTopoLoader {
+    CONST_VTBL IMFTopoLoaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFTopoLoader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFTopoLoader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFTopoLoader_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFTopoLoader methods ***/
+#define IMFTopoLoader_Load(This,pInputTopo,ppOutputTopo,pCurrentTopo) (This)->lpVtbl->Load(This,pInputTopo,ppOutputTopo,pCurrentTopo)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFTopoLoader_QueryInterface(IMFTopoLoader* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFTopoLoader_AddRef(IMFTopoLoader* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFTopoLoader_Release(IMFTopoLoader* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFTopoLoader methods ***/
+static FORCEINLINE HRESULT IMFTopoLoader_Load(IMFTopoLoader* This,IMFTopology *pInputTopo,IMFTopology **ppOutputTopo,IMFTopology *pCurrentTopo) {
+    return This->lpVtbl->Load(This,pInputTopo,ppOutputTopo,pCurrentTopo);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFTopoLoader_INTERFACE_DEFINED__ */
+
 HRESULT MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);
 HRESULT MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource);
 
@@ -3285,6 +5608,8 @@ HRESULT WINAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);
 HRESULT WINAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);
 HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD,IMFASFProfile **ppIProfile);
 HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);
+HRESULT WINAPI MFCreateAudioRenderer(IMFAttributes *pAudioAttributes, IMFMediaSink **ppSink);
+HRESULT WINAPI MFCreateAudioRendererActivate(IMFActivate **ppActivate);
 HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS);
 HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink);
 HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);
@@ -3327,6 +5652,18 @@ HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *pAttributes,IMFActivate ***ppp
 HRESULT WINAPI MFGetTopoNodeCurrentType(IMFTopologyNode *pNode,DWORD dwStreamIndex,WINBOOL fOutput,IMFMediaType **ppType);
 HRESULT WINAPI MFTranscodeGetAudioOutputAvailableTypes(REFGUID guidSubType,DWORD dwMFTFlags,IMFAttributes *pCodecConfig,IMFCollection **ppAvailableTypes);
 #endif
+EXTERN_GUID(MFNETSOURCE_STATISTICS, 0x3cb1f274, 0x0505, 0x4c5d, 0xae, 0x71, 0x0a, 0x55, 0x63, 0x44, 0xef, 0xa1);
+EXTERN_GUID(MFNETSOURCE_STATISTICS_SERVICE, 0x3cb1f275, 0x0505, 0x4c5d, 0xae, 0x71, 0x0a, 0x55, 0x63, 0x44, 0xef, 0xa1);
+EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_CLSID, 0xba491360, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
+EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_ACTIVATE, 0xba491361, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
+EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_MIXER_FLAGS, 0xba491362, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
+EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_CLSID, 0xba491364, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
+EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_ACTIVATE, 0xba491365, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
+EXTERN_GUID(MF_ACTIVATE_CUSTOM_VIDEO_PRESENTER_FLAGS, 0xba491366, 0xbe50, 0x451e, 0x95, 0xab, 0x6d, 0x4a, 0xcc, 0xc7, 0xda, 0xd8 );
+EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_SESSION_ID, 0xede4b5e3, 0xf805, 0x4d6c, 0x99, 0xb3, 0xdb, 0x01, 0xbf, 0x95, 0xdf, 0xab);
+EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ID, 0xb10aaec3, 0xef71, 0x4cc3, 0xb8, 0x73, 0x5, 0xa9, 0xa0, 0x8b, 0x9f, 0x8e);
+EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_ENDPOINT_ROLE, 0x6ba644ff, 0x27c5, 0x4d02, 0x98, 0x87, 0xc2, 0x86, 0x19, 0xfd, 0xb9, 0x1b);
+EXTERN_GUID(MF_AUDIO_RENDERER_ATTRIBUTE_STREAM_CATEGORY, 0xa9770471, 0x92ec, 0x4df4, 0x94, 0xfe, 0x81, 0xc3, 0x6f, 0xc, 0x3a, 0x7a);
 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, 0x60d0e559,0x52f8,0x4fa2,0xbb,0xce,0xac,0xdb,0x34,0xa8,0xec,0x1);
 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE, 0x56a819ca,0xc78,0x4de4,0xa0,0xa7,0x3d,0xda,0xba,0xf,0x24,0xd4);
 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID, 0x30da9258,0xfeb9,0x47a7,0xa4,0x53,0x76,0x3a,0x7a,0x8e,0x1c,0x5f);
@@ -3337,6 +5674,41 @@ EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS, 0x7dd9b730,0x
 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, 0x58f0aad8,0x22bf,0x4f8a,0xbb,0x3d,0xd2,0xc4,0x97,0x8c,0x6e,0x2f);
 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe,0x252a,0x478f,0xa0,0xef,0xbc,0x8f,0xa5,0xf7,0xca,0xd3);
 EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a,0x4ae7,0x42d8,0x99,0xe0,0x0a,0x60,0x13,0xee,0xf9,0x0f);
+EXTERN_GUID(MF_METADATA_PROVIDER_SERVICE, 0xdb214084, 0x58a4, 0x4d2e, 0xb8, 0x4f, 0x6f, 0x75, 0x5b, 0x2f, 0x7a, 0xd);
+EXTERN_GUID(MF_PROPERTY_HANDLER_SERVICE, 0xa3face02, 0x32b8, 0x41dd, 0x90, 0xe7, 0x5f, 0xef, 0x7c, 0x89, 0x91, 0xb5);
+EXTERN_GUID(MF_RATE_CONTROL_SERVICE, 0x866fa297, 0xb802, 0x4bf8, 0x9d, 0xc9, 0x5e, 0x3b, 0x6a, 0x9f, 0x53, 0xc9);
+EXTERN_GUID(MF_SAMPLEGRABBERSINK_IGNORE_CLOCK, 0x0efda2c0, 0x2b69, 0x4e2e, 0xab, 0x8d, 0x46, 0xdc, 0xbf, 0xf7, 0xd2, 0x5d);
+EXTERN_GUID(MF_TOPONODE_DRAIN, 0x494bbce9, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_D3DAWARE, 0x494bbced, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPOLOGY_RESOLUTION_STATUS, 0x494bbcde, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_ERRORCODE, 0x494bbcee, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_CONNECT_METHOD, 0x494bbcf1, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_LOCKED, 0x494bbcf7, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_WORKQUEUE_ID, 0x494bbcf8, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_CLASS, 0x494bbcf9, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_DECRYPTOR, 0x494bbcfa, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_DISCARDABLE, 0x494bbcfb, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_ERROR_MAJORTYPE, 0x494bbcfd, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_ERROR_SUBTYPE, 0x494bbcfe, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_TASKID, 0x494bbcff, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_WORKQUEUE_MMCSS_PRIORITY, 0x5001f840, 0x2816, 0x48f4, 0x93, 0x64, 0xad, 0x1e, 0xf6, 0x61, 0xa1, 0x23);
+EXTERN_GUID(MF_TOPONODE_WORKQUEUE_ITEM_PRIORITY, 0xa1ff99be, 0x5e97, 0x4a53, 0xb4, 0x94, 0x56, 0x8c, 0x64, 0x2c, 0x0f, 0xf3);
+EXTERN_GUID(MF_TOPONODE_MARKIN_HERE, 0x494bbd00, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_MARKOUT_HERE, 0x494bbd01, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_DECODER, 0x494bbd02, 0xb031, 0x4e38, 0x97, 0xc4, 0xd5, 0x42, 0x2d, 0xd6, 0x18, 0xdc);
+EXTERN_GUID(MF_TOPONODE_MEDIASTART, 0x835c58ea, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
+EXTERN_GUID(MF_TOPONODE_MEDIASTOP, 0x835c58eb, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
+EXTERN_GUID(MF_TOPONODE_SOURCE, 0x835c58ec, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
+EXTERN_GUID(MF_TOPONODE_PRESENTATION_DESCRIPTOR, 0x835c58ed, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
+EXTERN_GUID(MF_TOPONODE_STREAM_DESCRIPTOR, 0x835c58ee, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
+EXTERN_GUID(MF_TOPONODE_SEQUENCE_ELEMENTID, 0x835c58ef, 0xe075, 0x4bc7, 0xbc, 0xba, 0x4d, 0xe0, 0x00, 0xdf, 0x9a, 0xe6);
+EXTERN_GUID(MF_TOPONODE_TRANSFORM_OBJECTID, 0x88dcc0c9, 0x293e, 0x4e8b, 0x9a, 0xeb, 0xa, 0xd6, 0x4c, 0xc0, 0x16, 0xb0);
+EXTERN_GUID(MF_TOPONODE_STREAMID, 0x14932f9b, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);
+EXTERN_GUID(MF_TOPONODE_NOSHUTDOWN_ON_REMOVE, 0x14932f9c, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);
+EXTERN_GUID(MF_TOPONODE_RATELESS, 0x14932f9d, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);
+EXTERN_GUID(MF_TOPONODE_DISABLE_PREROLL, 0x14932f9e, 0x9087, 0x4bb4, 0x84, 0x12, 0x51, 0x67, 0x14, 0x5c, 0xbe, 0x04);
+EXTERN_GUID(MF_TOPONODE_PRIMARYOUTPUT, 0x6304ef99, 0x16b2, 0x4ebe, 0x9d, 0x67, 0xe4, 0xc5, 0x39, 0xb3, 0xa2, 0x59);
+EXTERN_GUID(MR_STREAM_VOLUME_SERVICE, 0xf8b5fa2f, 0x32ef, 0x46f5, 0xb1, 0x72, 0x13, 0x21, 0x21, 0x2f, 0xb2, 0xc4);
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
lib/libc/include/any-windows-any/mfidl.idl
@@ -1,681 +0,0 @@
-/**
- * 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.
- */
-
-import "mfobjects.idl";
-
-cpp_quote("#include <mftransform.h>") // FIXME: import "mftransform.idl";
-
-cpp_quote("#include <windef.h>")
-
-typedef enum MFSESSION_SETTOPOLOGY_FLAGS {
-    MFSESSION_SETTOPOLOGY_IMMEDIATE     = 0x1,
-    MFSESSION_SETTOPOLOGY_NORESOLUTION  = 0x2,
-    MFSESSION_SETTOPOLOGY_CLEAR_CURRENT = 0x4
-} MFSESSION_SETTOPOLOGY_FLAGS;
-
-typedef enum MFSESSION_GETFULLTOPOLOGY_FLAGS {
-    MFSESSION_GETFULLTOPOLOGY_CURRENT
-} MFSESSION_GETFULLTOPOLOGY_FLAGS;
-
-typedef enum MFPMPSESSION_CREATION_FLAGS {
-    MFPMPSESSION_UNPROTECTED_PROCESS = 0x1
-} MFPMPSESSION_CREATION_FLAGS;
-
-typedef unsigned __int64 TOPOID;
-
-typedef enum MF_TOPOLOGY_TYPE {
-    MF_TOPOLOGY_OUTPUT_NODE,
-    MF_TOPOLOGY_SOURCESTREAM_NODE,
-    MF_TOPOLOGY_TRANSFORM_NODE,
-    MF_TOPOLOGY_TEE_NODE,
-    MF_TOPOLOGY_MAX = 0xffffffff
-} MF_TOPOLOGY_TYPE;
-
-[
-    object,
-    uuid(83cf873a-f6da-4bc8-823f-bacfd55dc430),
-]
-interface IMFTopologyNode : IMFAttributes
-{
-    HRESULT SetObject([in] IUnknown *pObject);
-    HRESULT GetObject([out] IUnknown **ppObject);
-    HRESULT GetNodeType([out] MF_TOPOLOGY_TYPE *pType);
-    HRESULT GetTopoNodeID([out] TOPOID *pID);
-    HRESULT SetTopoNodeID([in] TOPOID ullTopoID);
-    HRESULT GetInputCount([out] DWORD *pcInputs);
-    HRESULT GetOutputCount([out] DWORD *pcOutputs);
-
-    [local]
-    HRESULT ConnectOutput([in] DWORD dwOutputIndex, [in] IMFTopologyNode* pDownstreamNode,
-            [in] DWORD dwInputIndexOnDownstreamNode);
-    [local] HRESULT DisconnectOutput([in] DWORD dwOutputIndex);
-    HRESULT GetInput([in] DWORD dwInputIndex, [out] IMFTopologyNode** ppUpstreamNode,
-            [out] DWORD *pdwOutputIndexOnUpstreamNode);
-    HRESULT GetOutput([in] DWORD dwOutputIndex, [out] IMFTopologyNode** ppDownstreamNode,
-            [out] DWORD* pdwInputIndexOnDownstreamNode);
-    [local] HRESULT SetOutputPrefType([in] DWORD dwOutputIndex, [in] IMFMediaType *pType);
-
-    [local] HRESULT GetOutputPrefType([in] DWORD dwOutputIndex, [out] IMFMediaType **ppType);
-    [call_as(GetOutputPrefType)] HRESULT RemoteGetOutputPrefType([in] DWORD dwOutputIndex,
-                                         [out] DWORD *pcbData, [out, size_is(,*pcbData)] BYTE **ppbData);
-
-    [local] HRESULT SetInputPrefType([in] DWORD dwInputIndex, [in] IMFMediaType *pType);
-
-    [local] HRESULT GetInputPrefType([in] DWORD dwInputIndex, [out] IMFMediaType **ppType);
-    [call_as(GetInputPrefType)] HRESULT RemoteGetInputPrefType( [in] DWORD dwInputIndex,
-                                        [out] DWORD *pcbData, [out, size_is(,*pcbData)] BYTE **ppbData);
-
-    HRESULT CloneFrom([in] IMFTopologyNode *pNode);
-}
-
-[
-    object,
-    uuid(83cf873a-f6da-4bc8-823f-bacfd55dc433),
-]
-interface IMFTopology : IMFAttributes
-{
-    HRESULT GetTopologyID([out] TOPOID *pID);
-    [local] HRESULT AddNode([in] IMFTopologyNode *pNode);
-    [local] HRESULT RemoveNode([in] IMFTopologyNode *pNode);
-    HRESULT GetNodeCount([out] WORD *pwNodes);
-    HRESULT GetNode([in] WORD wIndex, [out] IMFTopologyNode **ppNode);
-    [local] HRESULT Clear();
-    HRESULT CloneFrom([in] IMFTopology *pTopology);
-    HRESULT GetNodeByID([in] TOPOID qwTopoNodeID, [out] IMFTopologyNode **ppNode);
-    HRESULT GetSourceNodeCollection([out] IMFCollection **ppCollection);
-    HRESULT GetOutputNodeCollection([out] IMFCollection **ppCollection);
-}
-
-typedef LONGLONG MFTIME;
-
-typedef enum _MF_CLOCK_STATE {
-    MFCLOCK_STATE_INVALID,
-    MFCLOCK_STATE_RUNNING,
-    MFCLOCK_STATE_STOPPED,
-    MFCLOCK_STATE_PAUSED
-} MF_CLOCK_STATE, MFCLOCK_STATE;
-
-typedef struct _MFCLOCK_PROPERTIES {
-    unsigned __int64 qwCorrelationRate;
-    GUID             guidClockId;
-    DWORD            dwClockFlags;
-    unsigned __int64 qwClockFrequency;
-    DWORD            dwClockTolerance;
-    DWORD            dwClockJitter;
-} MFCLOCK_PROPERTIES;
-
-[
-    object,
-    uuid(2eb1e945-18b8-4139-9b1a-d5d584818530),
-]
-interface IMFClock : IUnknown
-{
-    HRESULT GetClockCharacteristics([out] DWORD *pdwCharacteristics);
-    HRESULT GetCorrelatedTime([in] DWORD dwReserved, [out] LONGLONG *pllClockTime, [out] MFTIME *phnsSystemTime);
-    HRESULT GetContinuityKey([out] DWORD *pdwContinuityKey);
-    HRESULT GetState([in] DWORD dwReserved, [out] MFCLOCK_STATE *peClockState);
-    HRESULT GetProperties([out] MFCLOCK_PROPERTIES *pClockProperties);
-}
-
-cpp_quote("#define SHA_HASH_LEN 20")
-cpp_quote("#define STR_HASH_LEN (SHA_HASH_LEN*2+3)")
-
-cpp_quote("typedef struct _MFRR_COMPONENT_HASH_INFO {")
-cpp_quote("  DWORD ulReason;")
-cpp_quote("  WCHAR rgHeaderHash[STR_HASH_LEN];")
-cpp_quote("  WCHAR rgPublicKeyHash[STR_HASH_LEN];")
-cpp_quote("  WCHAR wszName[MAX_PATH];")
-cpp_quote("} MFRR_COMPONENT_HASH_INFO, *PMFRR_COMPONENT_HASH_INFO;")
-
-cpp_quote("EXTERN_GUID(MF_PD_DURATION, 0x6c990d33,0xbb8e,0x477a,0x85,0x98,0xd,0x5d,0x96,0xfc,0xd8,0x8a);")
-
-typedef enum _MF_CONNECT_METHOD {
-    MF_CONNECT_DIRECT                            = 0x00000000,
-    MF_CONNECT_ALLOW_CONVERTER                   = 0x00000001,
-    MF_CONNECT_ALLOW_DECODER                     = 0x00000003,
-    MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES   = 0x00000004,
-    MF_CONNECT_AS_OPTIONAL                       = 0x00010000,
-    MF_CONNECT_AS_OPTIONAL_BRANCH                = 0x00020000
-} MF_CONNECT_METHOD;
-
-[
-    object,
-    uuid(90377834-21d0-4dee-8214-ba2e3e6c1127),
-]
-interface IMFMediaSession : IMFMediaEventGenerator
-{
-    HRESULT SetTopology([in] DWORD dwSetTopologyFlags, [in] IMFTopology *pTopology);
-    HRESULT ClearTopologies();
-    HRESULT Start([in, unique] const GUID *pguidTimeFormat, [in, unique] const PROPVARIANT *pvarStartPosition);
-    HRESULT Pause();
-    HRESULT Stop();
-    HRESULT Close();
-    HRESULT Shutdown();
-    HRESULT GetClock([out] IMFClock **ppClock);
-    HRESULT GetSessionCapabilities([out] DWORD *pdwCaps);
-    HRESULT GetFullTopology([in] DWORD dwGetFullTopologyFlags, [in] TOPOID TopoId, [out] IMFTopology **ppFullTopology);
-}
-
-[
-    object,
-    uuid(e93dcf6c-4b07-4e1e-8123-aa16ed6eadf5),
-]
-interface IMFMediaTypeHandler : IUnknown
-{
-    [local] HRESULT IsMediaTypeSupported([in] IMFMediaType *pMediaType, [out] IMFMediaType **ppMediaType);
-    [local] HRESULT GetMediaTypeCount([out] DWORD *pdwTypeCount);
-    [local] HRESULT GetMediaTypeByIndex([in] DWORD dwIndex, [out] IMFMediaType **ppType);
-    [local] HRESULT SetCurrentMediaType([in] IMFMediaType *pMediaType);
-
-    [local]
-    HRESULT GetCurrentMediaType([out] IMFMediaType **ppMediaType);
-    [call_as(GetCurrentMediaType)]
-    HRESULT RemoteGetCurrentMediaType([out, size_is(,*pcbData)] BYTE **ppbData, [out] DWORD *pcbData);
-
-    HRESULT GetMajorType([out] GUID *pguidMajorType);
-}
-
-[
-    object,
-    uuid(56c03d9c-9dbb-45f5-ab4b-d80f47c05938),
-]
-interface IMFStreamDescriptor : IMFAttributes
-{
-    HRESULT GetStreamIdentifier([out] DWORD *pdwStreamIdentifier);
-    HRESULT GetMediaTypeHandler([out] IMFMediaTypeHandler **ppMediaTypeHandler);
-}
-
-[
-    object,
-    uuid(03cb2711-24d7-4db6-a17f-f3a7a479a536),
-]
-interface IMFPresentationDescriptor : IMFAttributes
-{
-    HRESULT GetStreamDescriptorCount([out] DWORD *pdwDescriptorCount);
-    HRESULT GetStreamDescriptorByIndex([in] DWORD dwIndex, [out] BOOL *pfSelected, [out] IMFStreamDescriptor **ppDescriptor);
-    HRESULT SelectStream([in] DWORD dwDescriptorIndex);
-    HRESULT DeselectStream([in] DWORD dwDescriptorIndex);
-    HRESULT Clone([out] IMFPresentationDescriptor **ppPresentationDescriptor);
-}
-
-[
-    object,
-    uuid(279a808d-aec7-40c8-9c6b-a6b492c78a66),
-]
-interface IMFMediaSource : IMFMediaEventGenerator
-{
-    HRESULT GetCharacteristics([out] DWORD *pdwCharacteristics);
-
-    [local]
-    HRESULT CreatePresentationDescriptor([out] IMFPresentationDescriptor **ppPresentationDescriptor);
-    [call_as(CreatePresentationDescriptor)]
-    HRESULT RemoteCreatePresentationDescriptor(
-            [out] DWORD *pcbPD,
-            [out, size_is(,*pcbPD)] BYTE **pbPD,
-            [out] IMFPresentationDescriptor **ppRemotePD);
-
-    HRESULT Start(
-            [in] IMFPresentationDescriptor *pPresentationDescriptor,
-            [in, unique] const GUID *pguidTimeFormat,
-            [in, unique] const PROPVARIANT *pvarStartPosition);
-
-    HRESULT Stop();
-    HRESULT Pause();
-    HRESULT Shutdown();
-}
-
-typedef [public] struct _MF_LEAKY_BUCKET_PAIR {
-    DWORD dwBitrate;
-    DWORD msBufferWindow;
-} MF_LEAKY_BUCKET_PAIR;
-
-typedef [public] struct _MFBYTESTREAM_BUFFERING_PARAMS {
-    QWORD                cbTotalFileSize;
-    QWORD                cbPlayableDataSize;
-    MF_LEAKY_BUCKET_PAIR *prgBuckets;
-    DWORD                cBuckets;
-    QWORD                qwNetBufferingTime;
-    QWORD                qwExtraBufferingTimeDuringSeek;
-    QWORD                qwPlayDuration;
-    float                dRate;
-} MFBYTESTREAM_BUFFERING_PARAMS;
-
-[
-    object,
-    uuid(6d66d782-1d4f-4db7-8c63-cb8c77f1ef5e),
-    local
-]
-interface IMFByteStreamBuffering : IUnknown
-{
-    HRESULT SetBufferingParams([in] MFBYTESTREAM_BUFFERING_PARAMS *pParams);
-    HRESULT EnableBuffering([in] BOOL fEnable);
-    HRESULT StopBuffering();
-}
-
-[
-    object,
-    uuid(F6696E82-74F7-4f3d-A178-8A5E09C3659F),
-]
-interface IMFClockStateSink : IUnknown
-{
-    HRESULT OnClockStart([in] MFTIME hnsSystemTime,[in] LONGLONG llClockStartOffset);
-    HRESULT OnClockStop([in] MFTIME hnsSystemTime);
-    HRESULT OnClockPause([in] MFTIME hnsSystemTime);
-    HRESULT OnClockRestart([in] MFTIME hnsSystemTime);
-    HRESULT OnClockSetRate([in] MFTIME hnsSystemTime, [in] float flRate);
-}
-
-cpp_quote("HRESULT WINAPI MFRequireProtectedEnvironment(IMFPresentationDescriptor *pPresentationDescriptor);")
-cpp_quote("HRESULT WINAPI MFSerializePresentationDescriptor(IMFPresentationDescriptor *pPD,DWORD *pcbData,BYTE **ppbData);")
-
-typedef DWORD MFSequencerElementId;
-
-typedef enum _MFCLOCK_CHARACTERISTICS_FLAGS
-{
-    MFCLOCK_CHARACTERISTICS_FLAG_FREQUENCY_10MHZ   = 0x2,
-    MFCLOCK_CHARACTERISTICS_FLAG_ALWAYS_RUNNING    = 0x4,
-    MFCLOCK_CHARACTERISTICS_FLAG_IS_SYSTEM_CLOCK   = 0x8
-} MFCLOCK_CHARACTERISTICS_FLAGS;
-
-cpp_quote("#if (WINVER >= 0x0601)")
-
-typedef enum _MF_QUALITY_ADVISE_FLAGS
-{
-    MF_QUALITY_CANNOT_KEEP_UP = 0x1
-} MF_QUALITY_ADVISE_FLAGS;
-
-cpp_quote("#endif /*(WINVER >= 0x0601)*/")
-
-typedef enum _MF_QUALITY_DROP_MODE
-{
-    MF_DROP_MODE_NONE = 0x0,
-    MF_DROP_MODE_1    = 0x1,
-    MF_DROP_MODE_2    = 0x2,
-    MF_DROP_MODE_3    = 0x3,
-    MF_DROP_MODE_4    = 0x4,
-    MF_DROP_MODE_5    = 0x5,
-    MF_NUM_DROP_MODES = 0x6
-} MF_QUALITY_DROP_MODE;
-
-typedef enum _MF_QUALITY_LEVEL
-{
-    MF_QUALITY_NORMAL         = 0x0,
-    MF_QUALITY_NORMAL_MINUS_1 = 0x1,
-    MF_QUALITY_NORMAL_MINUS_2 = 0x2,
-    MF_QUALITY_NORMAL_MINUS_3 = 0x3,
-    MF_QUALITY_NORMAL_MINUS_4 = 0x4,
-    MF_QUALITY_NORMAL_MINUS_5 = 0x5,
-    MF_NUM_QUALITY_LEVELS     = 0x6
-} MF_QUALITY_LEVEL;
-
-typedef enum _MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS
-{
-    MF_TOPOLOGY_RESOLUTION_SUCCEEDED            = 0x00000000,
-    MF_OPTIONAL_NODE_REJECTED_MEDIA_TYPE        = 0x00000001,
-    MF_OPTIONAL_NODE_REJECTED_PROTECTED_PROCESS = 0x00000002
-} MF_TOPOLOGY_RESOLUTION_STATUS_FLAGS;
-
-typedef enum _MF_TOPONODE_DRAIN_MODE
-{
-    MF_TOPONODE_DRAIN_DEFAULT,
-    MF_TOPONODE_DRAIN_ALWAYS,
-    MF_TOPONODE_DRAIN_NEVER
-} MF_TOPONODE_DRAIN_MODE;
-
-typedef enum _MF_TOPONODE_FLUSH_MODE
-{
-    MF_TOPONODE_FLUSH_ALWAYS,
-    MF_TOPONODE_FLUSH_SEEK,
-    MF_TOPONODE_FLUSH_NEVER
-} MF_TOPONODE_FLUSH_MODE;
-
-cpp_quote("#if (WINVER >= 0x0601)")
-
-typedef enum _MF_TRANSCODE_TOPOLOGY_MODE_FLAGS
-{
-  MF_TRANSCODE_TOPOLOGYMODE_SOFTWARE_ONLY    = 0,
-  MF_TRANSCODE_TOPOLOGYMODE_HARDWARE_ALLOWED = 1
-} MF_TRANSCODE_TOPOLOGYMODE_FLAGS;
-
-cpp_quote("#endif")
-
-typedef enum
-{
-    MF_LICENSE_URL_UNTRUSTED,
-    MF_LICENSE_URL_TRUSTED,
-    MF_LICENSE_URL_TAMPERED
-} MF_URL_TRUST_STATUS;
-
-typedef enum _MFCLOCK_RELATIONAL_FLAGS
-{
-    MFCLOCK_RELATIONAL_FLAG_JITTER_NEVER_AHEAD = 0x1
-} MFCLOCK_RELATIONAL_FLAGS;
-
-typedef enum _MFMEDIASOURCE_CHARACTERISTICS
-{
-    MFMEDIASOURCE_IS_LIVE                    = 0x1,
-    MFMEDIASOURCE_CAN_SEEK                   = 0x2,
-    MFMEDIASOURCE_CAN_PAUSE                  = 0x4,
-    MFMEDIASOURCE_HAS_SLOW_SEEK              = 0x8,
-    MFMEDIASOURCE_HAS_MULTIPLE_PRESENTATIONS = 0x10,
-    MFMEDIASOURCE_CAN_SKIPFORWARD            = 0x20,
-    MFMEDIASOURCE_CAN_SKIPBACKWARD           = 0x40
-} MFMEDIASOURCE_CHARACTERISTICS;
-
-typedef enum _MFNET_PROXYSETTINGS
-{
-    MFNET_PROXYSETTING_NONE    = 0,
-    MFNET_PROXYSETTING_MANUAL  = 1,
-    MFNET_PROXYSETTING_AUTO    = 2,
-    MFNET_PROXYSETTING_BROWSER = 3
-} MFNET_PROXYSETTINGS;
-
-typedef enum _MFNetAuthenticationFlags
-{
-    MFNET_AUTHENTICATION_PROXY          = 0x00000001,
-    MFNET_AUTHENTICATION_CLEAR_TEXT     = 0x00000002,
-    MFNET_AUTHENTICATION_LOGGED_ON_USER = 0x00000004
-} MFNetAuthenticationFlags;
-
-typedef enum _MFNetCredentialOptions
-{
-    MFNET_CREDENTIAL_SAVE             = 0x00000001,
-    MFNET_CREDENTIAL_DONT_CACHE       = 0x00000002,
-    MFNET_CREDENTIAL_ALLOW_CLEAR_TEXT = 0x00000004
-} MFNetCredentialOptions;
-
-typedef enum _MFNetCredentialRequirements {
-    REQUIRE_PROMPT        = 0x00000001,
-    REQUIRE_SAVE_SELECTED = 0x00000002
-} MFNetCredentialRequirements;
-
-typedef enum _MFNETSOURCE_CACHE_STATE
-{
-    MFNETSOURCE_CACHE_UNAVAILABLE,
-    MFNETSOURCE_CACHE_ACTIVE_WRITING,
-    MFNETSOURCE_CACHE_ACTIVE_COMPLETE
-} MFNETSOURCE_CACHE_STATE;
-
-typedef enum _MFNETSOURCE_PROTOCOL_TYPE
-{
-    MFNETSOURCE_UNDEFINED = 0x0,
-    MFNETSOURCE_HTTP      = 0x1,
-    MFNETSOURCE_RTSP      = 0x2,
-    MFNETSOURCE_FILE      = 0x3,
-    MFNETSOURCE_MULTICAST = 0x4
-} MFNETSOURCE_PROTOCOL_TYPE;
-
-typedef enum _MFNETSOURCE_STATISTICS_IDS
-{
-    MFNETSOURCE_RECVPACKETS_ID = 0,
-    MFNETSOURCE_LOSTPACKETS_ID,
-    MFNETSOURCE_RESENDSREQUESTED_ID,
-    MFNETSOURCE_RESENDSRECEIVED_ID,
-    MFNETSOURCE_RECOVEREDBYECCPACKETS_ID,
-    MFNETSOURCE_RECOVEREDBYRTXPACKETS_ID,
-    MFNETSOURCE_OUTPACKETS_ID,
-    MFNETSOURCE_RECVRATE_ID,
-    MFNETSOURCE_AVGBANDWIDTHBPS_ID,
-    MFNETSOURCE_BYTESRECEIVED_ID,
-    MFNETSOURCE_PROTOCOL_ID,
-    MFNETSOURCE_TRANSPORT_ID,
-    MFNETSOURCE_CACHE_STATE_ID,
-    MFNETSOURCE_LINKBANDWIDTH_ID,
-    MFNETSOURCE_CONTENTBITRATE_ID,
-    MFNETSOURCE_SPEEDFACTOR_ID,
-    MFNETSOURCE_BUFFERSIZE_ID,
-    MFNETSOURCE_BUFFERPROGRESS_ID,
-    MFNETSOURCE_LASTBWSWITCHTS_ID,
-    MFNETSOURCE_SEEKRANGESTART_ID,
-    MFNETSOURCE_SEEKRANGEEND_ID,
-    MFNETSOURCE_BUFFERINGCOUNT_ID,
-    MFNETSOURCE_INCORRECTLYSIGNEDPACKETS_ID,
-    MFNETSOURCE_SIGNEDSESSION_ID,
-    MFNETSOURCE_MAXBITRATE_ID,
-    MFNETSOURCE_RECEPTION_QUALITY_ID,
-    MFNETSOURCE_RECOVEREDPACKETS_ID,
-    MFNETSOURCE_VBR_ID,
-    MFNETSOURCE_DOWNLOADPROGRESS_ID
-} MFNETSOURCE_STATISTICS_IDS;
-
-typedef enum _MFNETSOURCE_TRANSPORT_TYPE
-{
-    MFNETSOURCE_UDP,
-    MFNETSOURCE_TCP
-} MFNETSOURCE_TRANSPORT_TYPE;
-
-typedef enum MF_OBJECT_TYPE
-{
-    MF_OBJECT_MEDIASOURCE,
-    MF_OBJECT_BYTESTREAM,
-    MF_OBJECT_INVALID
-} MF_OBJECT_TYPE;
-
-typedef enum _MFPOLICYMANAGER_ACTION
-{
-    PEACTION_NO        = 0,
-    PEACTION_PLAY      = 1,
-    PEACTION_COPY      = 2,
-    PEACTION_EXPORT    = 3,
-    PEACTION_EXTRACT   = 4,
-    PEACTION_RESERVED1 = 5,
-    PEACTION_RESERVED2 = 6,
-    PEACTION_RESERVED3 = 7,
-    PEACTION_LAST      = 7
-} MFPOLICYMANAGER_ACTION;
-
-typedef enum _MFRATE_DIRECTION
-{
-    MFRATE_FORWARD,
-    MFRATE_REVERSE
-} MFRATE_DIRECTION;
-
-typedef enum _MFSequencerTopologyFlags
-{
-    SequencerTopologyFlags_Last = 0x00000001
-} MFSequencerTopologyFlags;
-
-typedef enum _MFSHUTDOWN_STATUS
-{
-    MFSHUTDOWN_INITIATED,
-    MFSHUTDOWN_COMPLETED
-} MFSHUTDOWN_STATUS;
-
-typedef enum MFSTREAMSINK_MARKER_TYPE
-{
-    MFSTREAMSINK_MARKER_DEFAULT,
-    MFSTREAMSINK_MARKER_ENDOFSEGMENT,
-    MFSTREAMSINK_MARKER_TICK,
-    MFSTREAMSINK_MARKER_EVENT
-} MFSTREAMSINK_MARKER_TYPE;
-
-typedef enum MFTIMER_FLAGS
-{
-    MFTIMER_RELATIVE = 0x00000001
-} MFTIMER_FLAGS;
-
-cpp_quote("#if (WINVER >= 0x0601)")
-
-typedef enum MFTOPOLOGY_DXVA_MODE
-{
-    MFTOPOLOGY_DXVA_DEFAULT = 0,
-    MFTOPOLOGY_DXVA_NONE    = 1,
-    MFTOPOLOGY_DXVA_FULL    = 2
-} MFTOPOLOGY_DXVA_MODE;
-
-typedef enum MFTOPOLOGY_HARDWARE_MODE
-{
-    MFTOPOLOGY_HWMODE_SOFTWARE_ONLY = 0,
-    MFTOPOLOGY_HWMODE_USE_HARDWARE  = 1
-} MFTOPOLOGY_HARDWARE_MODE;
-
-typedef struct _MFT_REGISTRATION_INFO
-{
-    CLSID clsid;
-    GUID guidCategory;
-    UINT32 uiFlags;
-    LPCWSTR pszName;
-    DWORD cInTypes;
-    [size_is(cInTypes)] MFT_REGISTER_TYPE_INFO *pInTypes;
-    DWORD cOutTypes;
-    [size_is(cOutTypes)] MFT_REGISTER_TYPE_INFO *pOutTypes;
-} MFT_REGISTRATION_INFO;
-
-cpp_quote("#endif /*(WINVER >= 0x0601)*/")
-
-cpp_quote("typedef struct _ASFFlatPicture {")
-cpp_quote("  BYTE  bPictureType;")
-cpp_quote("  DWORD dwDataLen;")
-cpp_quote("} ASF_FLAT_PICTURE;")
-cpp_quote("")
-cpp_quote("typedef struct _ASFFlatSynchronisedLyrics {")
-cpp_quote("  BYTE  bTimeStampFormat;")
-cpp_quote("  BYTE  bContentType;")
-cpp_quote("  DWORD dwLyricsLen;")
-cpp_quote("} ASF_FLAT_SYNCHRONISED_LYRICS;")
-
-typedef enum SAMPLE_PROTECTION_VERSION
-{
-    SAMPLE_PROTECTION_VERSION_NO         = 0,
-    SAMPLE_PROTECTION_VERSION_BASIC_LOKI = 1,
-    SAMPLE_PROTECTION_VERSION_SCATTER    = 2,
-    SAMPLE_PROTECTION_VERSION_RC4        = 3
-} SAMPLE_PROTECTION_VERSION;
-
-typedef struct _MFINPUTTRUSTAUTHORITY_ACTION
-{
-    MFPOLICYMANAGER_ACTION Action;
-    BYTE                   *pbTicket;
-    DWORD                  cbTicket;
-} MFINPUTTRUSTAUTHORITY_ACCESS_ACTION;
-
-typedef struct _MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS
-{
-    DWORD                               dwSize;
-    DWORD                               dwVer;
-    DWORD                               cbSignatureOffset;
-    DWORD                               cbSignatureSize;
-    DWORD                               cbExtensionOffset;
-    DWORD                               cbExtensionSize;
-    DWORD                               cActions;
-    MFINPUTTRUSTAUTHORITY_ACCESS_ACTION rgOutputActions[1];
-} MFINPUTTRUSTAUTHORITY_ACCESS_PARAMS;
-
-typedef struct _MFNetCredentialManagerGetParam
-{
-    HRESULT hrOp;
-    WINBOOL fAllowLoggedOnUser;
-    WINBOOL fClearTextPackage;
-    LPCWSTR pszUrl;
-    LPCWSTR pszSite;
-    LPCWSTR pszRealm;
-    LPCWSTR pszPackage;
-    LONG    nRetries;
-} MFNetCredentialManagerGetParam;
-
-cpp_quote("#define MEDIASINK_FIXED_STREAMS                 0x00000001")
-cpp_quote("#define MEDIASINK_CANNOT_MATCH_CLOCK            0x00000002")
-cpp_quote("#define MEDIASINK_RATELESS                      0x00000004")
-cpp_quote("#define MEDIASINK_CLOCK_REQUIRED                0x00000008")
-cpp_quote("#define MEDIASINK_CAN_PREROLL                   0x00000010")
-cpp_quote("#define MEDIASINK_REQUIRE_REFERENCE_MEDIATYPE   0x00000020")
-
-enum
-{
-    MF_RESOLUTION_MEDIASOURCE                                           = 0x00000001,
-    MF_RESOLUTION_BYTESTREAM                                            = 0x00000002,
-    MF_RESOLUTION_CONTENT_DOES_NOT_HAVE_TO_MATCH_EXTENSION_OR_MIME_TYPE = 0x00000010,
-    MF_RESOLUTION_KEEP_BYTE_STREAM_ALIVE_ON_FAIL                        = 0x00000020,
-    MF_RESOLUTION_READ                                                  = 0x00010000,
-    MF_RESOLUTION_WRITE                                                 = 0x00020000
-};
-
-/* FIXME: Properly declare followinf interfaces: */
-interface IMFMediaSink;
-interface IMFASFContentInfo;
-interface IMFASFIndexer;
-interface IMFASFMultiplexer;
-interface IMFASFProfile;
-interface IMFASFSplitter;
-interface IMFPMPServer;
-interface IMFPresentationClock;
-interface IMFNetProxyLocator;
-interface IMFRemoteDesktopPlugin;
-interface IMFTransform;
-interface IMFSampleGrabberSinkCallback;
-interface IMFSequencerSource;
-interface IMFQualityManager;
-interface IMFSourceResolver;
-interface IMFPresentationTimeSource;
-interface IMFTopoLoader;
-interface IMFTranscodeProfile;
-
-cpp_quote("HRESULT MFCreate3GPMediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);")
-cpp_quote("HRESULT MFCreateAggregateSource(IMFCollection *pSourceCollection,IMFMediaSource **ppAggSource);")
-cpp_quote("")
-cpp_quote("HRESULT WINAPI MFCreateAlignedMemoryBuffer(DWORD cbMaxLength,DWORD fAlignmentFlags,IMFMediaBuffer **ppBuffer);")
-cpp_quote("HRESULT WINAPI MFCreateASFContentInfo(IMFASFContentInfo **ppIContentInfo);")
-cpp_quote("HRESULT WINAPI MFCreateASFIndexer(IMFASFIndexer **ppIIndexer);")
-cpp_quote("HRESULT WINAPI MFCreateASFIndexerByteStream(IMFByteStream *pIContentByteStream,QWORD cbIndexStartOffset,IMFByteStream **pIIndexByteStream);")
-cpp_quote("HRESULT WINAPI MFCreateASFMediaSink(IMFByteStream *pIByteStream,IMFMediaSink **ppIMediaSink);")
-cpp_quote("HRESULT WINAPI MFCreateASFMediaSinkActivate(LPCWSTR pwszFileName,IMFASFContentInfo *pContentInfo,IMFActivate **ppIActivate);")
-cpp_quote("HRESULT WINAPI MFCreateASFMultiplexer(IMFASFMultiplexer **ppIMultiplexer);")
-cpp_quote("HRESULT WINAPI MFCreateASFProfile(IMFASFProfile **ppIProfile);")
-cpp_quote("HRESULT WINAPI MFCreateASFProfileFromPresentationDescriptor(IMFPresentationDescriptor *pIPD,IMFASFProfile **ppIProfile);")
-cpp_quote("HRESULT WINAPI MFCreateASFSplitter(IMFASFSplitter **ppISplitter);")
-cpp_quote("HRESULT WINAPI MFCreateMediaSession(IMFAttributes *pConfiguration,IMFMediaSession **ppMS);")
-cpp_quote("HRESULT WINAPI MFCreateMP3MediaSink(IMFByteStream *pTargetByteStream,IMFMediaSink **ppMediaSink);")
-cpp_quote("HRESULT WINAPI MFCreateMPEG4MediaSink(IMFByteStream *pIByteStream,IMFMediaType *pVideoMediaType,IMFMediaType *pAudioMediaType,IMFMediaSink **ppIMediaSink);")
-cpp_quote("HRESULT WINAPI MFCreateNetSchemePlugin(REFIID riid,LPVOID *ppvHandler);")
-cpp_quote("HRESULT WINAPI MFCreatePMPServer(DWORD dwCreationFlags,IMFPMPServer **ppPMPServer);")
-cpp_quote("HRESULT WINAPI MFCreatePMPMediaSession(DWORD dwCreationFlags,IMFAttributes *pConfiguration,IMFMediaSession **ppMediaSession,IMFActivate **ppEnablerActivate);")
-cpp_quote("HRESULT WINAPI MFCreatePathFromURL(LPCWSTR pwszFileURL,LPWSTR *ppwszFilePath);")
-cpp_quote("HRESULT WINAPI MFCreatePresentationClock(IMFPresentationClock **ppPresentationClock);")
-cpp_quote("HRESULT WINAPI MFCreatePresentationDescriptor(DWORD cStreamDescriptors,IMFStreamDescriptor **apStreamDescriptors,IMFPresentationDescriptor **ppPresentationDescriptor);")
-cpp_quote("HRESULT WINAPI MFCreatePresentationDescriptorFromASFProfile(IMFASFProfile *pIProfile,IMFPresentationDescriptor **ppIPD);")
-cpp_quote("HRESULT WINAPI MFCreateProxyLocator(LPCWSTR pszProtocol,IPropertyStore *pProxyConfig,IMFNetProxyLocator **ppProxyLocator);")
-cpp_quote("HRESULT WINAPI MFCreateRemoteDesktopPlugin(IMFRemoteDesktopPlugin **ppPlugin);")
-cpp_quote("HRESULT WINAPI MFCreateSample(IMFSample **ppIMFSample);")
-cpp_quote("HRESULT WINAPI MFCreateSampleCopierMFT(IMFTransform **ppCopierMFT);")
-cpp_quote("HRESULT WINAPI MFCreateSampleGrabberSinkActivate(IMFMediaType *pIMFMediaType,IMFSampleGrabberSinkCallback *pIMFSampleGrabberSinkCallback,IMFActivate **ppIActivate);")
-cpp_quote("HRESULT WINAPI MFCreateSequencerSource(IUnknown *pReserved,IMFSequencerSource **ppSequencerSource);")
-cpp_quote("HRESULT WINAPI MFCreateSimpleTypeHandler(IMFMediaTypeHandler **ppHandler);")
-cpp_quote("HRESULT WINAPI MFCreateStandardQualityManager(IMFQualityManager **ppQualityManager);")
-cpp_quote("HRESULT WINAPI MFCreateStreamDescriptor(DWORD dwStreamIdentifier,DWORD cMediaTypes,IMFMediaType **apMediaTypes,IMFStreamDescriptor **ppDescriptor);")
-cpp_quote("HRESULT WINAPI MFCreateSourceResolver(IMFSourceResolver **ppISourceResolver);")
-cpp_quote("HRESULT WINAPI MFCreateSystemTimeSource(IMFPresentationTimeSource **ppSystemTimeSource);")
-cpp_quote("HRESULT WINAPI MFCreateTopoLoader(IMFTopoLoader **ppObj);")
-cpp_quote("HRESULT WINAPI MFCreateTopology(IMFTopology **ppTopo);")
-cpp_quote("HRESULT WINAPI MFCreateTopologyNode(MF_TOPOLOGY_TYPE NodeType,IMFTopologyNode **ppNode);")
-cpp_quote("HRESULT WINAPI MFCreateVideoRenderer(REFIID riidRenderer,void **ppVideoRenderer);")
-cpp_quote("HRESULT WINAPI MFCreateVideoRendererActivate(HWND hwndVideo,IMFActivate **ppActivate);")
-cpp_quote("HRESULT WINAPI MFGetService(IUnknown *punkObject,REFGUID guidService,REFIID riid,LPVOID *ppvObject);")
-cpp_quote("HRESULT WINAPI MFGetSupportedMimeTypes(PROPVARIANT *pPropVarMimeTypeArray);")
-cpp_quote("HRESULT WINAPI MFGetSupportedSchemes(PROPVARIANT *pPropVarSchemeArray);")
-cpp_quote("MFTIME WINAPI MFGetSystemTime(void);")
-cpp_quote("HRESULT WINAPI MFShutdownObject(IUnknown *pUnk);")
-cpp_quote("HRESULT WINAPI CreateNamedPropertyStore(INamedPropertyStore **ppStore);")
-cpp_quote("HRESULT WINAPI CreatePropertyStore(IPropertyStore **ppStore);")
-cpp_quote("#if (WINVER >= 0x0601)")
-cpp_quote("")
-cpp_quote("HRESULT WINAPI MFCreateTranscodeProfile(IMFTranscodeProfile **ppTranscodeProfile);")
-cpp_quote("HRESULT WINAPI MFCreateTranscodeSinkActivate(IMFActivate **ppActivate);")
-cpp_quote("HRESULT WINAPI MFCreateTranscodeTopology(IMFMediaSource *pSrc,LPCWSTR pwszOutputFilePath,IMFTranscodeProfile *pProfile,IMFTopology **ppTranscodeTopo);")
-cpp_quote("HRESULT WINAPI MFEnumDeviceSources(IMFAttributes *pAttributes,IMFActivate ***pppSourceActivate,UINT32 *pcSourceActivate);")
-cpp_quote("HRESULT WINAPI MFGetTopoNodeCurrentType(IMFTopologyNode *pNode,DWORD dwStreamIndex,WINBOOL fOutput,IMFMediaType **ppType);")
-cpp_quote("HRESULT WINAPI MFTranscodeGetAudioOutputAvailableTypes(REFGUID guidSubType,DWORD dwMFTFlags,IMFAttributes *pCodecConfig,IMFCollection **ppAvailableTypes);")
-cpp_quote("#endif")
-
-cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_FRIENDLY_NAME, 0x60d0e559,0x52f8,0x4fa2,0xbb,0xce,0xac,0xdb,0x34,0xa8,0xec,0x1);")
-cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_MEDIA_TYPE, 0x56a819ca,0xc78,0x4de4,0xa0,0xa7,0x3d,0xda,0xba,0xf,0x24,0xd4);")
-cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ENDPOINT_ID, 0x30da9258,0xfeb9,0x47a7,0xa4,0x53,0x76,0x3a,0x7a,0x8e,0x1c,0x5f);")
-cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_AUDCAP_ROLE, 0xbc9d118e,0x8c67,0x4a18,0x85,0xd4,0x12,0xd3,0x0,0x40,0x5,0x52);")
-cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_CATEGORY, 0x77f0ae69,0xc3bd,0x4509,0x94,0x1d,0x46,0x7e,0x4d,0x24,0x89,0x9e);")
-cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_HW_SOURCE, 0xde7046ba,0x54d6,0x4487,0xa2,0xa4,0xec,0x7c,0xd,0x1b,0xd1,0x63);")
-cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_MAX_BUFFERS, 0x7dd9b730,0x4f2d,0x41d5,0x8f,0x95,0xc,0xc9,0xa9,0x12,0xba,0x26);")
-cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_SYMBOLIC_LINK, 0x58f0aad8,0x22bf,0x4f8a,0xbb,0x3d,0xd2,0xc4,0x97,0x8c,0x6e,0x2f);")
-cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE, 0xc60ac5fe,0x252a,0x478f,0xa0,0xef,0xbc,0x8f,0xa5,0xf7,0xca,0xd3);")
-cpp_quote("EXTERN_GUID(MF_DEVSOURCE_ATTRIBUTE_SOURCE_TYPE_VIDCAP_GUID, 0x8ac3587a,0x4ae7,0x42d8,0x99,0xe0,0x0a,0x60,0x13,0xee,0xf9,0x0f);")
lib/libc/include/any-windows-any/mfobjects.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.19 from mfobjects.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mfobjects.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfplay.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/mfplay.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mfplay.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfreadwrite.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from mfreadwrite.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mfreadwrite.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -18,6 +18,22 @@
 
 /* Forward declarations */
 
+#ifndef __IMFSourceReaderCallback_FWD_DEFINED__
+#define __IMFSourceReaderCallback_FWD_DEFINED__
+typedef interface IMFSourceReaderCallback IMFSourceReaderCallback;
+#ifdef __cplusplus
+interface IMFSourceReaderCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFSourceReaderCallback2_FWD_DEFINED__
+#define __IMFSourceReaderCallback2_FWD_DEFINED__
+typedef interface IMFSourceReaderCallback2 IMFSourceReaderCallback2;
+#ifdef __cplusplus
+interface IMFSourceReaderCallback2;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IMFSourceReader_FWD_DEFINED__
 #define __IMFSourceReader_FWD_DEFINED__
 typedef interface IMFSourceReader IMFSourceReader;
@@ -26,6 +42,14 @@ interface IMFSourceReader;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IMFSourceReaderEx_FWD_DEFINED__
+#define __IMFSourceReaderEx_FWD_DEFINED__
+typedef interface IMFSourceReaderEx IMFSourceReaderEx;
+#ifdef __cplusplus
+interface IMFSourceReaderEx;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IMFSinkWriter_FWD_DEFINED__
 #define __IMFSinkWriter_FWD_DEFINED__
 typedef interface IMFSinkWriter IMFSinkWriter;
@@ -34,40 +58,83 @@ interface IMFSinkWriter;
 #endif /* __cplusplus */
 #endif
 
-#ifndef __IMFSourceReaderCallback_FWD_DEFINED__
-#define __IMFSourceReaderCallback_FWD_DEFINED__
-typedef interface IMFSourceReaderCallback IMFSourceReaderCallback;
+#ifndef __IMFSinkWriterEx_FWD_DEFINED__
+#define __IMFSinkWriterEx_FWD_DEFINED__
+typedef interface IMFSinkWriterEx IMFSinkWriterEx;
 #ifdef __cplusplus
-interface IMFSourceReaderCallback;
+interface IMFSinkWriterEx;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFSinkWriterEncoderConfig_FWD_DEFINED__
+#define __IMFSinkWriterEncoderConfig_FWD_DEFINED__
+typedef interface IMFSinkWriterEncoderConfig IMFSinkWriterEncoderConfig;
+#ifdef __cplusplus
+interface IMFSinkWriterEncoderConfig;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFSinkWriterCallback_FWD_DEFINED__
+#define __IMFSinkWriterCallback_FWD_DEFINED__
+typedef interface IMFSinkWriterCallback IMFSinkWriterCallback;
+#ifdef __cplusplus
+interface IMFSinkWriterCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFSinkWriterCallback2_FWD_DEFINED__
+#define __IMFSinkWriterCallback2_FWD_DEFINED__
+typedef interface IMFSinkWriterCallback2 IMFSinkWriterCallback2;
+#ifdef __cplusplus
+interface IMFSinkWriterCallback2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IMFReadWriteClassFactory_FWD_DEFINED__
+#define __IMFReadWriteClassFactory_FWD_DEFINED__
+typedef interface IMFReadWriteClassFactory IMFReadWriteClassFactory;
+#ifdef __cplusplus
+interface IMFReadWriteClassFactory;
 #endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
 
 #include <mfobjects.h>
+#include <mftransform.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-EXTERN_GUID(MF_SOURCE_READER_ASYNC_CALLBACK, 0x1e3dbeac,0xbb43,0x4c35,0xb5,0x07,0xcd,0x64,0x44,0x64,0xc9,0x65);
-EXTERN_GUID(MF_SOURCE_READER_D3D_MANAGER, 0xec822da2,0xe1e9,0x4b29,0xa0,0xd8,0x56,0x3c,0x71,0x9f,0x52,0x69);
-EXTERN_GUID(MF_SOURCE_READER_DISABLE_DXVA, 0xaa456cfd,0x3943,0x4a1e,0xa7,0x7d,0x18,0x38,0xc0,0xea,0x2e,0x35);
-EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CONFIG, 0x9085abeb,0x0354,0x48f9,0xab,0xb5,0x20,0x0d,0xf8,0x38,0xc6,0x8e);
-EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS, 0x6d23f5c8,0xc5d7,0x4a9b,0x99,0x71,0x5d,0x11,0xf8,0xbc,0xa8,0x80);
-EXTERN_GUID(MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING, 0xfb394f3d,0xccf1,0x42ee,0xbb,0xb3,0xf9,0xb8,0x45,0xd5,0x68,0x1d);
-EXTERN_GUID(MF_SOURCE_READER_DISCONNECT_MEDIASOURCE_ON_SHUTDOWN, 0x56b67165,0x219e,0x456d,0xa2,0x2e,0x2d,0x30,0x04,0xc7,0xfe,0x56);
 typedef enum MF_SOURCE_READER_CONTROL_FLAG {
     MF_SOURCE_READER_CONTROLF_DRAIN = 0x1
 } MF_SOURCE_READER_CONTROL_FLAG;
+DEFINE_ENUM_FLAG_OPERATORS(MF_SOURCE_READER_CONTROL_FLAG)
+enum {
+    MF_SOURCE_READER_INVALID_STREAM_INDEX = 0xffffffff,
+    MF_SOURCE_READER_ALL_STREAMS = 0xfffffffe,
+    MF_SOURCE_READER_ANY_STREAM = 0xfffffffe,
+    MF_SOURCE_READER_FIRST_AUDIO_STREAM = 0xfffffffd,
+    MF_SOURCE_READER_FIRST_VIDEO_STREAM = 0xfffffffc,
+    MF_SOURCE_READER_MEDIASOURCE = 0xffffffff,
+    MF_SOURCE_READER_CURRENT_TYPE_INDEX = 0xffffffff
+};
 typedef enum MF_SOURCE_READER_FLAG {
     MF_SOURCE_READERF_ERROR = 0x1,
     MF_SOURCE_READERF_ENDOFSTREAM = 0x2,
     MF_SOURCE_READERF_NEWSTREAM = 0x4,
     MF_SOURCE_READERF_NATIVEMEDIATYPECHANGED = 0x10,
     MF_SOURCE_READERF_CURRENTMEDIATYPECHANGED = 0x20,
-    MF_SOURCE_READERF_STREAMTICK = 0x100
+    MF_SOURCE_READERF_STREAMTICK = 0x100,
+    MF_SOURCE_READERF_ALLEFFECTSREMOVED = 0x200
 } MF_SOURCE_READER_FLAG;
+DEFINE_ENUM_FLAG_OPERATORS(MF_SOURCE_READER_FLAG)
+enum {
+    MF_SINK_WRITER_INVALID_STREAM_INDEX = 0xffffffff,
+    MF_SINK_WRITER_ALL_STREAMS = 0xfffffffe,
+    MF_SINK_WRITER_MEDIASINK = 0xffffffff
+};
 typedef struct _MF_SINK_WRITER_STATISTICS {
     DWORD cb;
     LONGLONG llLastTimestampReceived;
@@ -86,14 +153,272 @@ typedef struct _MF_SINK_WRITER_STATISTICS {
     DWORD dwAverageSampleRateEncoded;
     DWORD dwAverageSampleRateProcessed;
 } MF_SINK_WRITER_STATISTICS;
-enum {
-    MF_SOURCE_READER_INVALID_STREAM_INDEX = 0xffffffff,
-    MF_SOURCE_READER_ALL_STREAMS = 0xfffffffe,
-    MF_SOURCE_READER_ANY_STREAM = 0xfffffffe,
-    MF_SOURCE_READER_FIRST_AUDIO_STREAM = 0xfffffffd,
-    MF_SOURCE_READER_FIRST_VIDEO_STREAM = 0xfffffffc,
-    MF_SOURCE_READER_MEDIASOURCE = 0xffffffff
+EXTERN_GUID(CLSID_MFReadWriteClassFactory,           0x48e2ed0f, 0x98c2, 0x4a37, 0xbe, 0xd5, 0x16, 0x63, 0x12, 0xdd, 0xd8, 0x3f);
+EXTERN_GUID(CLSID_MFSourceReader,                    0x1777133c, 0x0881, 0x411b, 0xa5, 0x77, 0xad, 0x54, 0x5f, 0x07, 0x14, 0xc4);
+EXTERN_GUID(CLSID_MFSinkWriter,                      0xa3bbfb17, 0x8273, 0x4e52, 0x9e, 0x0e, 0x97, 0x39, 0xdc, 0x88, 0x79, 0x90);
+EXTERN_GUID(MF_MEDIASINK_AUTOFINALIZE_SUPPORTED,     0x48c131be, 0x135a, 0x41cb, 0x82, 0x90, 0x03, 0x65, 0x25, 0x09, 0xc9, 0x99);
+EXTERN_GUID(MF_MEDIASINK_ENABLE_AUTOFINALIZE,        0x34014265, 0xcb7e, 0x4cde, 0xac, 0x7c, 0xef, 0xfd, 0x3b, 0x3c, 0x25, 0x30);
+EXTERN_GUID(MF_SINK_WRITER_ASYNC_CALLBACK,           0x48cb183e, 0x7b0b, 0x46f4, 0x82, 0x2e, 0x5e, 0x1d, 0x2d, 0xda, 0x43, 0x54);
+EXTERN_GUID(MF_SINK_WRITER_DISABLE_THROTTLING,       0x08b845d8, 0x2b74, 0x4afe, 0x9d, 0x53, 0xbe, 0x16, 0xd2, 0xd5, 0xae, 0x4f);
+EXTERN_GUID(MF_SINK_WRITER_D3D_MANAGER,              0xec822da2, 0xe1e9, 0x4b29, 0xa0, 0xd8, 0x56, 0x3c, 0x71, 0x9f, 0x52, 0x69);
+EXTERN_GUID(MF_SINK_WRITER_ENCODER_CONFIG,           0xad91cd04, 0xa7cc, 0x4ac7, 0x99, 0xb6, 0xa5, 0x7b, 0x9a, 0x4a, 0x7c, 0x70);
+EXTERN_GUID(MF_READWRITE_DISABLE_CONVERTERS,         0x98d5b065, 0x1374, 0x4847, 0x8d, 0x5d, 0x31, 0x52, 0x0f, 0xee, 0x71, 0x56);
+EXTERN_GUID(MF_READWRITE_ENABLE_AUTOFINALIZE,        0xdd7ca129, 0x8cd1, 0x4dc5, 0x9d, 0xde, 0xce, 0x16, 0x86, 0x75, 0xde, 0x61);
+EXTERN_GUID(MF_READWRITE_ENABLE_HARDWARE_TRANSFORMS, 0xa634a91c, 0x822b, 0x41b9, 0xa4, 0x94, 0x4d, 0xe4, 0x64, 0x36, 0x12, 0xb0);
+EXTERN_GUID(MF_READWRITE_MMCSS_CLASS,                0x39384300, 0xd0eb, 0x40b1, 0x87, 0xa0, 0x33, 0x18, 0x87, 0x1b, 0x5a, 0x53);
+EXTERN_GUID(MF_READWRITE_MMCSS_PRIORITY,             0x43ad19ce, 0xf33f, 0x4ba9, 0xa5, 0x80, 0xe4, 0xcd, 0x12, 0xf2, 0xd1, 0x44);
+EXTERN_GUID(MF_READWRITE_MMCSS_CLASS_AUDIO,          0x430847da, 0x0890, 0x4b0e, 0x93, 0x8c, 0x05, 0x43, 0x32, 0xc5, 0x47, 0xe1);
+EXTERN_GUID(MF_READWRITE_MMCSS_PRIORITY_AUDIO,       0x273db885, 0x2de2, 0x4db2, 0xa6, 0xa7, 0xfd, 0xb6, 0x6f, 0xb4, 0x0b, 0x61);
+EXTERN_GUID(MF_READWRITE_D3D_OPTIONAL,               0x216479d9, 0x3071, 0x42ca, 0xbb, 0x6c, 0x4c, 0x22, 0x10, 0x2e, 0x1d, 0x18);
+EXTERN_GUID(MF_SOURCE_READER_ASYNC_CALLBACK,                     0x1e3dbeac, 0xbb43, 0x4c35, 0xb5, 0x07, 0xcd, 0x64, 0x44, 0x64, 0xc9, 0x65);
+EXTERN_GUID(MF_SOURCE_READER_D3D_MANAGER,                        0xec822da2, 0xe1e9, 0x4b29, 0xa0, 0xd8, 0x56, 0x3c, 0x71, 0x9f, 0x52, 0x69);
+EXTERN_GUID(MF_SOURCE_READER_D3D11_BIND_FLAGS,                   0x33f3197b, 0xf73a, 0x4e14, 0x8d, 0x85, 0x0e, 0x4c, 0x43, 0x68, 0x78, 0x8d);
+EXTERN_GUID(MF_SOURCE_READER_DISABLE_CAMERA_PLUGINS,             0x9d3365dd, 0x058f, 0x4cfb, 0x9f, 0x97, 0xb3, 0x14, 0xcc, 0x99, 0xc8, 0xad);
+EXTERN_GUID(MF_SOURCE_READER_DISABLE_DXVA,                       0xaa456cfd, 0x3943, 0x4a1e, 0xa7, 0x7d, 0x18, 0x38, 0xc0, 0xea, 0x2e, 0x35);
+EXTERN_GUID(MF_SOURCE_READER_DISCONNECT_MEDIASOURCE_ON_SHUTDOWN, 0x56b67165, 0x219e, 0x456d, 0xa2, 0x2e, 0x2d, 0x30, 0x04, 0xc7, 0xfe, 0x56);
+EXTERN_GUID(MF_SOURCE_READER_ENABLE_ADVANCED_VIDEO_PROCESSING,   0x0f81da2c, 0xb537, 0x4672, 0xa8, 0xb2, 0xa6, 0x81, 0xb1, 0x73, 0x07, 0xa3);
+EXTERN_GUID(MF_SOURCE_READER_ENABLE_TRANSCODE_ONLY_TRANSFORMS,   0xdfd4f008, 0xb5fd, 0x4e78, 0xae, 0x44, 0x62, 0xa1, 0xe6, 0x7b, 0xbe, 0x27);
+EXTERN_GUID(MF_SOURCE_READER_ENABLE_VIDEO_PROCESSING,            0xfb394f3d, 0xccf1, 0x42ee, 0xbb, 0xb3, 0xf9, 0xb8, 0x45, 0xd5, 0x68, 0x1d);
+EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CHARACTERISTICS,        0x6d23f5c8, 0xc5d7, 0x4a9b, 0x99, 0x71, 0x5d, 0x11, 0xf8, 0xbc, 0xa8, 0x80);
+EXTERN_GUID(MF_SOURCE_READER_MEDIASOURCE_CONFIG,                 0x9085abeb, 0x0354, 0x48f9, 0xab, 0xb5, 0x20, 0x0d, 0xf8, 0x38, 0xc6, 0x8e);
+/*****************************************************************************
+ * IMFSourceReaderCallback interface
+ */
+#ifndef __IMFSourceReaderCallback_INTERFACE_DEFINED__
+#define __IMFSourceReaderCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("deec8d99-fa1d-4d82-84c2-2c8969944867")
+IMFSourceReaderCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnReadSample(
+        HRESULT hr,
+        DWORD stream_index,
+        DWORD stream_flags,
+        LONGLONG timestamp,
+        IMFSample *sample) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnFlush(
+        DWORD stream_index) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnEvent(
+        DWORD stream_index,
+        IMFMediaEvent *event) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67)
+#endif
+#else
+typedef struct IMFSourceReaderCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFSourceReaderCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFSourceReaderCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFSourceReaderCallback *This);
+
+    /*** IMFSourceReaderCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnReadSample)(
+        IMFSourceReaderCallback *This,
+        HRESULT hr,
+        DWORD stream_index,
+        DWORD stream_flags,
+        LONGLONG timestamp,
+        IMFSample *sample);
+
+    HRESULT (STDMETHODCALLTYPE *OnFlush)(
+        IMFSourceReaderCallback *This,
+        DWORD stream_index);
+
+    HRESULT (STDMETHODCALLTYPE *OnEvent)(
+        IMFSourceReaderCallback *This,
+        DWORD stream_index,
+        IMFMediaEvent *event);
+
+    END_INTERFACE
+} IMFSourceReaderCallbackVtbl;
+
+interface IMFSourceReaderCallback {
+    CONST_VTBL IMFSourceReaderCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFSourceReaderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSourceReaderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFSourceReaderCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFSourceReaderCallback methods ***/
+#define IMFSourceReaderCallback_OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample) (This)->lpVtbl->OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample)
+#define IMFSourceReaderCallback_OnFlush(This,stream_index) (This)->lpVtbl->OnFlush(This,stream_index)
+#define IMFSourceReaderCallback_OnEvent(This,stream_index,event) (This)->lpVtbl->OnEvent(This,stream_index,event)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFSourceReaderCallback_QueryInterface(IMFSourceReaderCallback* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFSourceReaderCallback_AddRef(IMFSourceReaderCallback* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFSourceReaderCallback_Release(IMFSourceReaderCallback* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFSourceReaderCallback methods ***/
+static FORCEINLINE HRESULT IMFSourceReaderCallback_OnReadSample(IMFSourceReaderCallback* This,HRESULT hr,DWORD stream_index,DWORD stream_flags,LONGLONG timestamp,IMFSample *sample) {
+    return This->lpVtbl->OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample);
+}
+static FORCEINLINE HRESULT IMFSourceReaderCallback_OnFlush(IMFSourceReaderCallback* This,DWORD stream_index) {
+    return This->lpVtbl->OnFlush(This,stream_index);
+}
+static FORCEINLINE HRESULT IMFSourceReaderCallback_OnEvent(IMFSourceReaderCallback* This,DWORD stream_index,IMFMediaEvent *event) {
+    return This->lpVtbl->OnEvent(This,stream_index,event);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFSourceReaderCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFSourceReaderCallback2 interface
+ */
+#ifndef __IMFSourceReaderCallback2_INTERFACE_DEFINED__
+#define __IMFSourceReaderCallback2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFSourceReaderCallback2, 0xcf839fe6, 0x8c2a, 0x4dd2, 0xb6,0xea, 0xc2,0x2d,0x69,0x61,0xaf,0x05);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cf839fe6-8c2a-4dd2-b6ea-c22d6961af05")
+IMFSourceReaderCallback2 : public IMFSourceReaderCallback
+{
+    virtual HRESULT STDMETHODCALLTYPE OnTransformChange(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnStreamError(
+        DWORD stream_index,
+        HRESULT status) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFSourceReaderCallback2, 0xcf839fe6, 0x8c2a, 0x4dd2, 0xb6,0xea, 0xc2,0x2d,0x69,0x61,0xaf,0x05)
+#endif
+#else
+typedef struct IMFSourceReaderCallback2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFSourceReaderCallback2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFSourceReaderCallback2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFSourceReaderCallback2 *This);
+
+    /*** IMFSourceReaderCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnReadSample)(
+        IMFSourceReaderCallback2 *This,
+        HRESULT hr,
+        DWORD stream_index,
+        DWORD stream_flags,
+        LONGLONG timestamp,
+        IMFSample *sample);
+
+    HRESULT (STDMETHODCALLTYPE *OnFlush)(
+        IMFSourceReaderCallback2 *This,
+        DWORD stream_index);
+
+    HRESULT (STDMETHODCALLTYPE *OnEvent)(
+        IMFSourceReaderCallback2 *This,
+        DWORD stream_index,
+        IMFMediaEvent *event);
+
+    /*** IMFSourceReaderCallback2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnTransformChange)(
+        IMFSourceReaderCallback2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *OnStreamError)(
+        IMFSourceReaderCallback2 *This,
+        DWORD stream_index,
+        HRESULT status);
+
+    END_INTERFACE
+} IMFSourceReaderCallback2Vtbl;
+
+interface IMFSourceReaderCallback2 {
+    CONST_VTBL IMFSourceReaderCallback2Vtbl* lpVtbl;
 };
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFSourceReaderCallback2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSourceReaderCallback2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFSourceReaderCallback2_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFSourceReaderCallback methods ***/
+#define IMFSourceReaderCallback2_OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample) (This)->lpVtbl->OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample)
+#define IMFSourceReaderCallback2_OnFlush(This,stream_index) (This)->lpVtbl->OnFlush(This,stream_index)
+#define IMFSourceReaderCallback2_OnEvent(This,stream_index,event) (This)->lpVtbl->OnEvent(This,stream_index,event)
+/*** IMFSourceReaderCallback2 methods ***/
+#define IMFSourceReaderCallback2_OnTransformChange(This) (This)->lpVtbl->OnTransformChange(This)
+#define IMFSourceReaderCallback2_OnStreamError(This,stream_index,status) (This)->lpVtbl->OnStreamError(This,stream_index,status)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFSourceReaderCallback2_QueryInterface(IMFSourceReaderCallback2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFSourceReaderCallback2_AddRef(IMFSourceReaderCallback2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFSourceReaderCallback2_Release(IMFSourceReaderCallback2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFSourceReaderCallback methods ***/
+static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnReadSample(IMFSourceReaderCallback2* This,HRESULT hr,DWORD stream_index,DWORD stream_flags,LONGLONG timestamp,IMFSample *sample) {
+    return This->lpVtbl->OnReadSample(This,hr,stream_index,stream_flags,timestamp,sample);
+}
+static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnFlush(IMFSourceReaderCallback2* This,DWORD stream_index) {
+    return This->lpVtbl->OnFlush(This,stream_index);
+}
+static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnEvent(IMFSourceReaderCallback2* This,DWORD stream_index,IMFMediaEvent *event) {
+    return This->lpVtbl->OnEvent(This,stream_index,event);
+}
+/*** IMFSourceReaderCallback2 methods ***/
+static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnTransformChange(IMFSourceReaderCallback2* This) {
+    return This->lpVtbl->OnTransformChange(This);
+}
+static FORCEINLINE HRESULT IMFSourceReaderCallback2_OnStreamError(IMFSourceReaderCallback2* This,DWORD stream_index,HRESULT status) {
+    return This->lpVtbl->OnStreamError(This,stream_index,status);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFSourceReaderCallback2_INTERFACE_DEFINED__ */
+
+#ifndef __IMFMediaSource_FWD_DEFINED__
+#define __IMFMediaSource_FWD_DEFINED__
+typedef interface IMFMediaSource IMFMediaSource;
+#ifdef __cplusplus
+interface IMFMediaSource;
+#endif /* __cplusplus */
+#endif
+
 /*****************************************************************************
  * IMFSourceReader interface
  */
@@ -106,52 +431,52 @@ MIDL_INTERFACE("70ae66f2-c809-4e4f-8915-bdcb406b7993")
 IMFSourceReader : public IUnknown
 {
     virtual HRESULT STDMETHODCALLTYPE GetStreamSelection(
-        DWORD dwStreamIndex,
-        WINBOOL *pfSelected) = 0;
+        DWORD index,
+        WINBOOL *selected) = 0;
 
     virtual HRESULT STDMETHODCALLTYPE SetStreamSelection(
-        DWORD dwStreamIndex,
-        WINBOOL fSelected) = 0;
+        DWORD index,
+        WINBOOL selected) = 0;
 
     virtual HRESULT STDMETHODCALLTYPE GetNativeMediaType(
-        DWORD dwStreamIndex,
-        DWORD dwMediaTypeIndex,
-        IMFMediaType **ppMediaType) = 0;
+        DWORD index,
+        DWORD typeindex,
+        IMFMediaType **type) = 0;
 
     virtual HRESULT STDMETHODCALLTYPE GetCurrentMediaType(
-        DWORD dwStreamIndex,
-        IMFMediaType **ppMediaType) = 0;
+        DWORD index,
+        IMFMediaType **type) = 0;
 
     virtual HRESULT STDMETHODCALLTYPE SetCurrentMediaType(
-        DWORD dwStreamIndex,
-        DWORD *pdwReserved,
-        IMFMediaType *pMediaType) = 0;
+        DWORD index,
+        DWORD *reserved,
+        IMFMediaType *type) = 0;
 
     virtual HRESULT STDMETHODCALLTYPE SetCurrentPosition(
-        REFGUID guidTimeFormat,
-        REFPROPVARIANT varPosition) = 0;
+        REFGUID format,
+        REFPROPVARIANT position) = 0;
 
     virtual HRESULT STDMETHODCALLTYPE ReadSample(
-        DWORD dwStreamIndex,
-        DWORD dwControlFlags,
-        DWORD *pdwActualStreamIndex,
-        DWORD *pdwStreamFlags,
-        LONGLONG *pllTimestamp,
-        IMFSample **ppSample) = 0;
+        DWORD index,
+        DWORD flags,
+        DWORD *actualindex,
+        DWORD *sampleflags,
+        LONGLONG *timestamp,
+        IMFSample **sample) = 0;
 
     virtual HRESULT STDMETHODCALLTYPE Flush(
-        DWORD dwStreamIndex) = 0;
+        DWORD index) = 0;
 
     virtual HRESULT STDMETHODCALLTYPE GetServiceForStream(
-        DWORD dwStreamIndex,
-        REFGUID guidService,
+        DWORD index,
+        REFGUID service,
         REFIID riid,
-        LPVOID *ppvObject) = 0;
+        void **object) = 0;
 
     virtual HRESULT STDMETHODCALLTYPE GetPresentationAttribute(
-        DWORD dwStreamIndex,
-        REFGUID guidAttribute,
-        PROPVARIANT *pvarAttribute) = 0;
+        DWORD index,
+        REFGUID guid,
+        PROPVARIANT *attr) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
@@ -176,61 +501,61 @@ typedef struct IMFSourceReaderVtbl {
     /*** IMFSourceReader methods ***/
     HRESULT (STDMETHODCALLTYPE *GetStreamSelection)(
         IMFSourceReader *This,
-        DWORD dwStreamIndex,
-        WINBOOL *pfSelected);
+        DWORD index,
+        WINBOOL *selected);
 
     HRESULT (STDMETHODCALLTYPE *SetStreamSelection)(
         IMFSourceReader *This,
-        DWORD dwStreamIndex,
-        WINBOOL fSelected);
+        DWORD index,
+        WINBOOL selected);
 
     HRESULT (STDMETHODCALLTYPE *GetNativeMediaType)(
         IMFSourceReader *This,
-        DWORD dwStreamIndex,
-        DWORD dwMediaTypeIndex,
-        IMFMediaType **ppMediaType);
+        DWORD index,
+        DWORD typeindex,
+        IMFMediaType **type);
 
     HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)(
         IMFSourceReader *This,
-        DWORD dwStreamIndex,
-        IMFMediaType **ppMediaType);
+        DWORD index,
+        IMFMediaType **type);
 
     HRESULT (STDMETHODCALLTYPE *SetCurrentMediaType)(
         IMFSourceReader *This,
-        DWORD dwStreamIndex,
-        DWORD *pdwReserved,
-        IMFMediaType *pMediaType);
+        DWORD index,
+        DWORD *reserved,
+        IMFMediaType *type);
 
     HRESULT (STDMETHODCALLTYPE *SetCurrentPosition)(
         IMFSourceReader *This,
-        REFGUID guidTimeFormat,
-        REFPROPVARIANT varPosition);
+        REFGUID format,
+        REFPROPVARIANT position);
 
     HRESULT (STDMETHODCALLTYPE *ReadSample)(
         IMFSourceReader *This,
-        DWORD dwStreamIndex,
-        DWORD dwControlFlags,
-        DWORD *pdwActualStreamIndex,
-        DWORD *pdwStreamFlags,
-        LONGLONG *pllTimestamp,
-        IMFSample **ppSample);
+        DWORD index,
+        DWORD flags,
+        DWORD *actualindex,
+        DWORD *sampleflags,
+        LONGLONG *timestamp,
+        IMFSample **sample);
 
     HRESULT (STDMETHODCALLTYPE *Flush)(
         IMFSourceReader *This,
-        DWORD dwStreamIndex);
+        DWORD index);
 
     HRESULT (STDMETHODCALLTYPE *GetServiceForStream)(
         IMFSourceReader *This,
-        DWORD dwStreamIndex,
-        REFGUID guidService,
+        DWORD index,
+        REFGUID service,
         REFIID riid,
-        LPVOID *ppvObject);
+        void **object);
 
     HRESULT (STDMETHODCALLTYPE *GetPresentationAttribute)(
         IMFSourceReader *This,
-        DWORD dwStreamIndex,
-        REFGUID guidAttribute,
-        PROPVARIANT *pvarAttribute);
+        DWORD index,
+        REFGUID guid,
+        PROPVARIANT *attr);
 
     END_INTERFACE
 } IMFSourceReaderVtbl;
@@ -246,16 +571,16 @@ interface IMFSourceReader {
 #define IMFSourceReader_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IMFSourceReader_Release(This) (This)->lpVtbl->Release(This)
 /*** IMFSourceReader methods ***/
-#define IMFSourceReader_GetStreamSelection(This,dwStreamIndex,pfSelected) (This)->lpVtbl->GetStreamSelection(This,dwStreamIndex,pfSelected)
-#define IMFSourceReader_SetStreamSelection(This,dwStreamIndex,fSelected) (This)->lpVtbl->SetStreamSelection(This,dwStreamIndex,fSelected)
-#define IMFSourceReader_GetNativeMediaType(This,dwStreamIndex,dwMediaTypeIndex,ppMediaType) (This)->lpVtbl->GetNativeMediaType(This,dwStreamIndex,dwMediaTypeIndex,ppMediaType)
-#define IMFSourceReader_GetCurrentMediaType(This,dwStreamIndex,ppMediaType) (This)->lpVtbl->GetCurrentMediaType(This,dwStreamIndex,ppMediaType)
-#define IMFSourceReader_SetCurrentMediaType(This,dwStreamIndex,pdwReserved,pMediaType) (This)->lpVtbl->SetCurrentMediaType(This,dwStreamIndex,pdwReserved,pMediaType)
-#define IMFSourceReader_SetCurrentPosition(This,guidTimeFormat,varPosition) (This)->lpVtbl->SetCurrentPosition(This,guidTimeFormat,varPosition)
-#define IMFSourceReader_ReadSample(This,dwStreamIndex,dwControlFlags,pdwActualStreamIndex,pdwStreamFlags,pllTimestamp,ppSample) (This)->lpVtbl->ReadSample(This,dwStreamIndex,dwControlFlags,pdwActualStreamIndex,pdwStreamFlags,pllTimestamp,ppSample)
-#define IMFSourceReader_Flush(This,dwStreamIndex) (This)->lpVtbl->Flush(This,dwStreamIndex)
-#define IMFSourceReader_GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject) (This)->lpVtbl->GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject)
-#define IMFSourceReader_GetPresentationAttribute(This,dwStreamIndex,guidAttribute,pvarAttribute) (This)->lpVtbl->GetPresentationAttribute(This,dwStreamIndex,guidAttribute,pvarAttribute)
+#define IMFSourceReader_GetStreamSelection(This,index,selected) (This)->lpVtbl->GetStreamSelection(This,index,selected)
+#define IMFSourceReader_SetStreamSelection(This,index,selected) (This)->lpVtbl->SetStreamSelection(This,index,selected)
+#define IMFSourceReader_GetNativeMediaType(This,index,typeindex,type) (This)->lpVtbl->GetNativeMediaType(This,index,typeindex,type)
+#define IMFSourceReader_GetCurrentMediaType(This,index,type) (This)->lpVtbl->GetCurrentMediaType(This,index,type)
+#define IMFSourceReader_SetCurrentMediaType(This,index,reserved,type) (This)->lpVtbl->SetCurrentMediaType(This,index,reserved,type)
+#define IMFSourceReader_SetCurrentPosition(This,format,position) (This)->lpVtbl->SetCurrentPosition(This,format,position)
+#define IMFSourceReader_ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample) (This)->lpVtbl->ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample)
+#define IMFSourceReader_Flush(This,index) (This)->lpVtbl->Flush(This,index)
+#define IMFSourceReader_GetServiceForStream(This,index,service,riid,object) (This)->lpVtbl->GetServiceForStream(This,index,service,riid,object)
+#define IMFSourceReader_GetPresentationAttribute(This,index,guid,attr) (This)->lpVtbl->GetPresentationAttribute(This,index,guid,attr)
 #else
 /*** IUnknown methods ***/
 static FORCEINLINE HRESULT IMFSourceReader_QueryInterface(IMFSourceReader* This,REFIID riid,void **ppvObject) {
@@ -268,35 +593,35 @@ static FORCEINLINE ULONG IMFSourceReader_Release(IMFSourceReader* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IMFSourceReader methods ***/
-static FORCEINLINE HRESULT IMFSourceReader_GetStreamSelection(IMFSourceReader* This,DWORD dwStreamIndex,WINBOOL *pfSelected) {
-    return This->lpVtbl->GetStreamSelection(This,dwStreamIndex,pfSelected);
+static FORCEINLINE HRESULT IMFSourceReader_GetStreamSelection(IMFSourceReader* This,DWORD index,WINBOOL *selected) {
+    return This->lpVtbl->GetStreamSelection(This,index,selected);
 }
-static FORCEINLINE HRESULT IMFSourceReader_SetStreamSelection(IMFSourceReader* This,DWORD dwStreamIndex,WINBOOL fSelected) {
-    return This->lpVtbl->SetStreamSelection(This,dwStreamIndex,fSelected);
+static FORCEINLINE HRESULT IMFSourceReader_SetStreamSelection(IMFSourceReader* This,DWORD index,WINBOOL selected) {
+    return This->lpVtbl->SetStreamSelection(This,index,selected);
 }
-static FORCEINLINE HRESULT IMFSourceReader_GetNativeMediaType(IMFSourceReader* This,DWORD dwStreamIndex,DWORD dwMediaTypeIndex,IMFMediaType **ppMediaType) {
-    return This->lpVtbl->GetNativeMediaType(This,dwStreamIndex,dwMediaTypeIndex,ppMediaType);
+static FORCEINLINE HRESULT IMFSourceReader_GetNativeMediaType(IMFSourceReader* This,DWORD index,DWORD typeindex,IMFMediaType **type) {
+    return This->lpVtbl->GetNativeMediaType(This,index,typeindex,type);
 }
-static FORCEINLINE HRESULT IMFSourceReader_GetCurrentMediaType(IMFSourceReader* This,DWORD dwStreamIndex,IMFMediaType **ppMediaType) {
-    return This->lpVtbl->GetCurrentMediaType(This,dwStreamIndex,ppMediaType);
+static FORCEINLINE HRESULT IMFSourceReader_GetCurrentMediaType(IMFSourceReader* This,DWORD index,IMFMediaType **type) {
+    return This->lpVtbl->GetCurrentMediaType(This,index,type);
 }
-static FORCEINLINE HRESULT IMFSourceReader_SetCurrentMediaType(IMFSourceReader* This,DWORD dwStreamIndex,DWORD *pdwReserved,IMFMediaType *pMediaType) {
-    return This->lpVtbl->SetCurrentMediaType(This,dwStreamIndex,pdwReserved,pMediaType);
+static FORCEINLINE HRESULT IMFSourceReader_SetCurrentMediaType(IMFSourceReader* This,DWORD index,DWORD *reserved,IMFMediaType *type) {
+    return This->lpVtbl->SetCurrentMediaType(This,index,reserved,type);
 }
-static FORCEINLINE HRESULT IMFSourceReader_SetCurrentPosition(IMFSourceReader* This,REFGUID guidTimeFormat,REFPROPVARIANT varPosition) {
-    return This->lpVtbl->SetCurrentPosition(This,guidTimeFormat,varPosition);
+static FORCEINLINE HRESULT IMFSourceReader_SetCurrentPosition(IMFSourceReader* This,REFGUID format,REFPROPVARIANT position) {
+    return This->lpVtbl->SetCurrentPosition(This,format,position);
 }
-static FORCEINLINE HRESULT IMFSourceReader_ReadSample(IMFSourceReader* This,DWORD dwStreamIndex,DWORD dwControlFlags,DWORD *pdwActualStreamIndex,DWORD *pdwStreamFlags,LONGLONG *pllTimestamp,IMFSample **ppSample) {
-    return This->lpVtbl->ReadSample(This,dwStreamIndex,dwControlFlags,pdwActualStreamIndex,pdwStreamFlags,pllTimestamp,ppSample);
+static FORCEINLINE HRESULT IMFSourceReader_ReadSample(IMFSourceReader* This,DWORD index,DWORD flags,DWORD *actualindex,DWORD *sampleflags,LONGLONG *timestamp,IMFSample **sample) {
+    return This->lpVtbl->ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample);
 }
-static FORCEINLINE HRESULT IMFSourceReader_Flush(IMFSourceReader* This,DWORD dwStreamIndex) {
-    return This->lpVtbl->Flush(This,dwStreamIndex);
+static FORCEINLINE HRESULT IMFSourceReader_Flush(IMFSourceReader* This,DWORD index) {
+    return This->lpVtbl->Flush(This,index);
 }
-static FORCEINLINE HRESULT IMFSourceReader_GetServiceForStream(IMFSourceReader* This,DWORD dwStreamIndex,REFGUID guidService,REFIID riid,LPVOID *ppvObject) {
-    return This->lpVtbl->GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject);
+static FORCEINLINE HRESULT IMFSourceReader_GetServiceForStream(IMFSourceReader* This,DWORD index,REFGUID service,REFIID riid,void **object) {
+    return This->lpVtbl->GetServiceForStream(This,index,service,riid,object);
 }
-static FORCEINLINE HRESULT IMFSourceReader_GetPresentationAttribute(IMFSourceReader* This,DWORD dwStreamIndex,REFGUID guidAttribute,PROPVARIANT *pvarAttribute) {
-    return This->lpVtbl->GetPresentationAttribute(This,dwStreamIndex,guidAttribute,pvarAttribute);
+static FORCEINLINE HRESULT IMFSourceReader_GetPresentationAttribute(IMFSourceReader* This,DWORD index,REFGUID guid,PROPVARIANT *attr) {
+    return This->lpVtbl->GetPresentationAttribute(This,index,guid,attr);
 }
 #endif
 #endif
@@ -307,131 +632,354 @@ static FORCEINLINE HRESULT IMFSourceReader_GetPresentationAttribute(IMFSourceRea
 #endif  /* __IMFSourceReader_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * IMFSinkWriter interface
+ * IMFSourceReaderEx interface
  */
-#ifndef __IMFSinkWriter_INTERFACE_DEFINED__
-#define __IMFSinkWriter_INTERFACE_DEFINED__
+#ifndef __IMFSourceReaderEx_INTERFACE_DEFINED__
+#define __IMFSourceReaderEx_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IMFSinkWriter, 0x3137f1cd, 0xfe5e, 0x4805, 0xa5,0xd8, 0xfb,0x47,0x74,0x48,0xcb,0x3d);
+DEFINE_GUID(IID_IMFSourceReaderEx, 0x7b981cf0, 0x560e, 0x4116, 0x98,0x75, 0xb0,0x99,0x89,0x5f,0x23,0xd7);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("3137f1cd-fe5e-4805-a5d8-fb477448cb3d")
-IMFSinkWriter : public IUnknown
+MIDL_INTERFACE("7b981cf0-560e-4116-9875-b099895f23d7")
+IMFSourceReaderEx : public IMFSourceReader
 {
-    virtual HRESULT STDMETHODCALLTYPE AddStream(
-        IMFMediaType *pTargetMediaType,
-        DWORD *pdwStreamIndex) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetInputMediaType(
-        DWORD dwStreamIndex,
-        IMFMediaType *pInputMediaType,
-        IMFAttributes *pEncodingParameters) = 0;
+    virtual HRESULT STDMETHODCALLTYPE SetNativeMediaType(
+        DWORD stream_index,
+        IMFMediaType *media_type,
+        DWORD *stream_flags) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE BeginWriting(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE WriteSample(
-        DWORD dwStreamIndex,
-        IMFSample *pSample) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SendStreamTick(
-        DWORD dwStreamIndex,
-        LONGLONG llTimestamp) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE PlaceMarker(
-        DWORD dwStreamIndex,
-        LPVOID pvContext) = 0;
+    virtual HRESULT STDMETHODCALLTYPE AddTransformForStream(
+        DWORD stream_index,
+        IUnknown *transform) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE NotifyEndOfSegment(
-        DWORD dwStreamIndex) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Flush(
-        DWORD dwStreamIndex) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Finalize(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetServiceForStream(
-        DWORD dwStreamIndex,
-        REFGUID guidService,
-        REFIID riid,
-        LPVOID *ppvObject) = 0;
+    virtual HRESULT STDMETHODCALLTYPE RemoveAllTransformsForStream(
+        DWORD stream_index) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE GetStatistics(
-        DWORD dwStreamIndex,
-        MF_SINK_WRITER_STATISTICS *pStats) = 0;
+    virtual HRESULT STDMETHODCALLTYPE GetTransformForStream(
+        DWORD stream_index,
+        DWORD transform_index,
+        GUID *category,
+        IMFTransform **transform) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IMFSinkWriter, 0x3137f1cd, 0xfe5e, 0x4805, 0xa5,0xd8, 0xfb,0x47,0x74,0x48,0xcb,0x3d)
+__CRT_UUID_DECL(IMFSourceReaderEx, 0x7b981cf0, 0x560e, 0x4116, 0x98,0x75, 0xb0,0x99,0x89,0x5f,0x23,0xd7)
 #endif
 #else
-typedef struct IMFSinkWriterVtbl {
+typedef struct IMFSourceReaderExVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMFSinkWriter *This,
+        IMFSourceReaderEx *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMFSinkWriter *This);
+        IMFSourceReaderEx *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMFSinkWriter *This);
+        IMFSourceReaderEx *This);
 
-    /*** IMFSinkWriter methods ***/
-    HRESULT (STDMETHODCALLTYPE *AddStream)(
-        IMFSinkWriter *This,
-        IMFMediaType *pTargetMediaType,
-        DWORD *pdwStreamIndex);
+    /*** IMFSourceReader methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetStreamSelection)(
+        IMFSourceReaderEx *This,
+        DWORD index,
+        WINBOOL *selected);
 
-    HRESULT (STDMETHODCALLTYPE *SetInputMediaType)(
-        IMFSinkWriter *This,
-        DWORD dwStreamIndex,
-        IMFMediaType *pInputMediaType,
-        IMFAttributes *pEncodingParameters);
+    HRESULT (STDMETHODCALLTYPE *SetStreamSelection)(
+        IMFSourceReaderEx *This,
+        DWORD index,
+        WINBOOL selected);
 
-    HRESULT (STDMETHODCALLTYPE *BeginWriting)(
-        IMFSinkWriter *This);
+    HRESULT (STDMETHODCALLTYPE *GetNativeMediaType)(
+        IMFSourceReaderEx *This,
+        DWORD index,
+        DWORD typeindex,
+        IMFMediaType **type);
 
-    HRESULT (STDMETHODCALLTYPE *WriteSample)(
-        IMFSinkWriter *This,
-        DWORD dwStreamIndex,
-        IMFSample *pSample);
+    HRESULT (STDMETHODCALLTYPE *GetCurrentMediaType)(
+        IMFSourceReaderEx *This,
+        DWORD index,
+        IMFMediaType **type);
 
-    HRESULT (STDMETHODCALLTYPE *SendStreamTick)(
-        IMFSinkWriter *This,
-        DWORD dwStreamIndex,
-        LONGLONG llTimestamp);
+    HRESULT (STDMETHODCALLTYPE *SetCurrentMediaType)(
+        IMFSourceReaderEx *This,
+        DWORD index,
+        DWORD *reserved,
+        IMFMediaType *type);
 
-    HRESULT (STDMETHODCALLTYPE *PlaceMarker)(
-        IMFSinkWriter *This,
-        DWORD dwStreamIndex,
-        LPVOID pvContext);
+    HRESULT (STDMETHODCALLTYPE *SetCurrentPosition)(
+        IMFSourceReaderEx *This,
+        REFGUID format,
+        REFPROPVARIANT position);
 
-    HRESULT (STDMETHODCALLTYPE *NotifyEndOfSegment)(
-        IMFSinkWriter *This,
-        DWORD dwStreamIndex);
+    HRESULT (STDMETHODCALLTYPE *ReadSample)(
+        IMFSourceReaderEx *This,
+        DWORD index,
+        DWORD flags,
+        DWORD *actualindex,
+        DWORD *sampleflags,
+        LONGLONG *timestamp,
+        IMFSample **sample);
 
     HRESULT (STDMETHODCALLTYPE *Flush)(
-        IMFSinkWriter *This,
-        DWORD dwStreamIndex);
+        IMFSourceReaderEx *This,
+        DWORD index);
 
-    HRESULT (STDMETHODCALLTYPE *Finalize)(
+    HRESULT (STDMETHODCALLTYPE *GetServiceForStream)(
+        IMFSourceReaderEx *This,
+        DWORD index,
+        REFGUID service,
+        REFIID riid,
+        void **object);
+
+    HRESULT (STDMETHODCALLTYPE *GetPresentationAttribute)(
+        IMFSourceReaderEx *This,
+        DWORD index,
+        REFGUID guid,
+        PROPVARIANT *attr);
+
+    /*** IMFSourceReaderEx methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetNativeMediaType)(
+        IMFSourceReaderEx *This,
+        DWORD stream_index,
+        IMFMediaType *media_type,
+        DWORD *stream_flags);
+
+    HRESULT (STDMETHODCALLTYPE *AddTransformForStream)(
+        IMFSourceReaderEx *This,
+        DWORD stream_index,
+        IUnknown *transform);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveAllTransformsForStream)(
+        IMFSourceReaderEx *This,
+        DWORD stream_index);
+
+    HRESULT (STDMETHODCALLTYPE *GetTransformForStream)(
+        IMFSourceReaderEx *This,
+        DWORD stream_index,
+        DWORD transform_index,
+        GUID *category,
+        IMFTransform **transform);
+
+    END_INTERFACE
+} IMFSourceReaderExVtbl;
+
+interface IMFSourceReaderEx {
+    CONST_VTBL IMFSourceReaderExVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFSourceReaderEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSourceReaderEx_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFSourceReaderEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFSourceReader methods ***/
+#define IMFSourceReaderEx_GetStreamSelection(This,index,selected) (This)->lpVtbl->GetStreamSelection(This,index,selected)
+#define IMFSourceReaderEx_SetStreamSelection(This,index,selected) (This)->lpVtbl->SetStreamSelection(This,index,selected)
+#define IMFSourceReaderEx_GetNativeMediaType(This,index,typeindex,type) (This)->lpVtbl->GetNativeMediaType(This,index,typeindex,type)
+#define IMFSourceReaderEx_GetCurrentMediaType(This,index,type) (This)->lpVtbl->GetCurrentMediaType(This,index,type)
+#define IMFSourceReaderEx_SetCurrentMediaType(This,index,reserved,type) (This)->lpVtbl->SetCurrentMediaType(This,index,reserved,type)
+#define IMFSourceReaderEx_SetCurrentPosition(This,format,position) (This)->lpVtbl->SetCurrentPosition(This,format,position)
+#define IMFSourceReaderEx_ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample) (This)->lpVtbl->ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample)
+#define IMFSourceReaderEx_Flush(This,index) (This)->lpVtbl->Flush(This,index)
+#define IMFSourceReaderEx_GetServiceForStream(This,index,service,riid,object) (This)->lpVtbl->GetServiceForStream(This,index,service,riid,object)
+#define IMFSourceReaderEx_GetPresentationAttribute(This,index,guid,attr) (This)->lpVtbl->GetPresentationAttribute(This,index,guid,attr)
+/*** IMFSourceReaderEx methods ***/
+#define IMFSourceReaderEx_SetNativeMediaType(This,stream_index,media_type,stream_flags) (This)->lpVtbl->SetNativeMediaType(This,stream_index,media_type,stream_flags)
+#define IMFSourceReaderEx_AddTransformForStream(This,stream_index,transform) (This)->lpVtbl->AddTransformForStream(This,stream_index,transform)
+#define IMFSourceReaderEx_RemoveAllTransformsForStream(This,stream_index) (This)->lpVtbl->RemoveAllTransformsForStream(This,stream_index)
+#define IMFSourceReaderEx_GetTransformForStream(This,stream_index,transform_index,category,transform) (This)->lpVtbl->GetTransformForStream(This,stream_index,transform_index,category,transform)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFSourceReaderEx_QueryInterface(IMFSourceReaderEx* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFSourceReaderEx_AddRef(IMFSourceReaderEx* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFSourceReaderEx_Release(IMFSourceReaderEx* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFSourceReader methods ***/
+static FORCEINLINE HRESULT IMFSourceReaderEx_GetStreamSelection(IMFSourceReaderEx* This,DWORD index,WINBOOL *selected) {
+    return This->lpVtbl->GetStreamSelection(This,index,selected);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_SetStreamSelection(IMFSourceReaderEx* This,DWORD index,WINBOOL selected) {
+    return This->lpVtbl->SetStreamSelection(This,index,selected);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_GetNativeMediaType(IMFSourceReaderEx* This,DWORD index,DWORD typeindex,IMFMediaType **type) {
+    return This->lpVtbl->GetNativeMediaType(This,index,typeindex,type);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_GetCurrentMediaType(IMFSourceReaderEx* This,DWORD index,IMFMediaType **type) {
+    return This->lpVtbl->GetCurrentMediaType(This,index,type);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_SetCurrentMediaType(IMFSourceReaderEx* This,DWORD index,DWORD *reserved,IMFMediaType *type) {
+    return This->lpVtbl->SetCurrentMediaType(This,index,reserved,type);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_SetCurrentPosition(IMFSourceReaderEx* This,REFGUID format,REFPROPVARIANT position) {
+    return This->lpVtbl->SetCurrentPosition(This,format,position);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_ReadSample(IMFSourceReaderEx* This,DWORD index,DWORD flags,DWORD *actualindex,DWORD *sampleflags,LONGLONG *timestamp,IMFSample **sample) {
+    return This->lpVtbl->ReadSample(This,index,flags,actualindex,sampleflags,timestamp,sample);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_Flush(IMFSourceReaderEx* This,DWORD index) {
+    return This->lpVtbl->Flush(This,index);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_GetServiceForStream(IMFSourceReaderEx* This,DWORD index,REFGUID service,REFIID riid,void **object) {
+    return This->lpVtbl->GetServiceForStream(This,index,service,riid,object);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_GetPresentationAttribute(IMFSourceReaderEx* This,DWORD index,REFGUID guid,PROPVARIANT *attr) {
+    return This->lpVtbl->GetPresentationAttribute(This,index,guid,attr);
+}
+/*** IMFSourceReaderEx methods ***/
+static FORCEINLINE HRESULT IMFSourceReaderEx_SetNativeMediaType(IMFSourceReaderEx* This,DWORD stream_index,IMFMediaType *media_type,DWORD *stream_flags) {
+    return This->lpVtbl->SetNativeMediaType(This,stream_index,media_type,stream_flags);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_AddTransformForStream(IMFSourceReaderEx* This,DWORD stream_index,IUnknown *transform) {
+    return This->lpVtbl->AddTransformForStream(This,stream_index,transform);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_RemoveAllTransformsForStream(IMFSourceReaderEx* This,DWORD stream_index) {
+    return This->lpVtbl->RemoveAllTransformsForStream(This,stream_index);
+}
+static FORCEINLINE HRESULT IMFSourceReaderEx_GetTransformForStream(IMFSourceReaderEx* This,DWORD stream_index,DWORD transform_index,GUID *category,IMFTransform **transform) {
+    return This->lpVtbl->GetTransformForStream(This,stream_index,transform_index,category,transform);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFSourceReaderEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFSinkWriter interface
+ */
+#ifndef __IMFSinkWriter_INTERFACE_DEFINED__
+#define __IMFSinkWriter_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFSinkWriter, 0x3137f1cd, 0xfe5e, 0x4805, 0xa5,0xd8, 0xfb,0x47,0x74,0x48,0xcb,0x3d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3137f1cd-fe5e-4805-a5d8-fb477448cb3d")
+IMFSinkWriter : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AddStream(
+        IMFMediaType *type,
+        DWORD *index) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetInputMediaType(
+        DWORD index,
+        IMFMediaType *type,
+        IMFAttributes *parameters) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginWriting(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WriteSample(
+        DWORD index,
+        IMFSample *sample) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SendStreamTick(
+        DWORD index,
+        LONGLONG timestamp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PlaceMarker(
+        DWORD index,
+        void *context) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NotifyEndOfSegment(
+        DWORD index) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Flush(
+        DWORD index) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Finalize(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetServiceForStream(
+        DWORD index,
+        REFGUID service,
+        REFIID riid,
+        void **object) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStatistics(
+        DWORD index,
+        MF_SINK_WRITER_STATISTICS *stats) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFSinkWriter, 0x3137f1cd, 0xfe5e, 0x4805, 0xa5,0xd8, 0xfb,0x47,0x74,0x48,0xcb,0x3d)
+#endif
+#else
+typedef struct IMFSinkWriterVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFSinkWriter *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFSinkWriter *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFSinkWriter *This);
+
+    /*** IMFSinkWriter methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddStream)(
+        IMFSinkWriter *This,
+        IMFMediaType *type,
+        DWORD *index);
+
+    HRESULT (STDMETHODCALLTYPE *SetInputMediaType)(
+        IMFSinkWriter *This,
+        DWORD index,
+        IMFMediaType *type,
+        IMFAttributes *parameters);
+
+    HRESULT (STDMETHODCALLTYPE *BeginWriting)(
+        IMFSinkWriter *This);
+
+    HRESULT (STDMETHODCALLTYPE *WriteSample)(
+        IMFSinkWriter *This,
+        DWORD index,
+        IMFSample *sample);
+
+    HRESULT (STDMETHODCALLTYPE *SendStreamTick)(
+        IMFSinkWriter *This,
+        DWORD index,
+        LONGLONG timestamp);
+
+    HRESULT (STDMETHODCALLTYPE *PlaceMarker)(
+        IMFSinkWriter *This,
+        DWORD index,
+        void *context);
+
+    HRESULT (STDMETHODCALLTYPE *NotifyEndOfSegment)(
+        IMFSinkWriter *This,
+        DWORD index);
+
+    HRESULT (STDMETHODCALLTYPE *Flush)(
+        IMFSinkWriter *This,
+        DWORD index);
+
+    HRESULT (STDMETHODCALLTYPE *Finalize)(
         IMFSinkWriter *This);
 
     HRESULT (STDMETHODCALLTYPE *GetServiceForStream)(
         IMFSinkWriter *This,
-        DWORD dwStreamIndex,
-        REFGUID guidService,
+        DWORD index,
+        REFGUID service,
         REFIID riid,
-        LPVOID *ppvObject);
+        void **object);
 
     HRESULT (STDMETHODCALLTYPE *GetStatistics)(
         IMFSinkWriter *This,
-        DWORD dwStreamIndex,
-        MF_SINK_WRITER_STATISTICS *pStats);
+        DWORD index,
+        MF_SINK_WRITER_STATISTICS *stats);
 
     END_INTERFACE
 } IMFSinkWriterVtbl;
@@ -447,17 +995,17 @@ interface IMFSinkWriter {
 #define IMFSinkWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define IMFSinkWriter_Release(This) (This)->lpVtbl->Release(This)
 /*** IMFSinkWriter methods ***/
-#define IMFSinkWriter_AddStream(This,pTargetMediaType,pdwStreamIndex) (This)->lpVtbl->AddStream(This,pTargetMediaType,pdwStreamIndex)
-#define IMFSinkWriter_SetInputMediaType(This,dwStreamIndex,pInputMediaType,pEncodingParameters) (This)->lpVtbl->SetInputMediaType(This,dwStreamIndex,pInputMediaType,pEncodingParameters)
+#define IMFSinkWriter_AddStream(This,type,index) (This)->lpVtbl->AddStream(This,type,index)
+#define IMFSinkWriter_SetInputMediaType(This,index,type,parameters) (This)->lpVtbl->SetInputMediaType(This,index,type,parameters)
 #define IMFSinkWriter_BeginWriting(This) (This)->lpVtbl->BeginWriting(This)
-#define IMFSinkWriter_WriteSample(This,dwStreamIndex,pSample) (This)->lpVtbl->WriteSample(This,dwStreamIndex,pSample)
-#define IMFSinkWriter_SendStreamTick(This,dwStreamIndex,llTimestamp) (This)->lpVtbl->SendStreamTick(This,dwStreamIndex,llTimestamp)
-#define IMFSinkWriter_PlaceMarker(This,dwStreamIndex,pvContext) (This)->lpVtbl->PlaceMarker(This,dwStreamIndex,pvContext)
-#define IMFSinkWriter_NotifyEndOfSegment(This,dwStreamIndex) (This)->lpVtbl->NotifyEndOfSegment(This,dwStreamIndex)
-#define IMFSinkWriter_Flush(This,dwStreamIndex) (This)->lpVtbl->Flush(This,dwStreamIndex)
+#define IMFSinkWriter_WriteSample(This,index,sample) (This)->lpVtbl->WriteSample(This,index,sample)
+#define IMFSinkWriter_SendStreamTick(This,index,timestamp) (This)->lpVtbl->SendStreamTick(This,index,timestamp)
+#define IMFSinkWriter_PlaceMarker(This,index,context) (This)->lpVtbl->PlaceMarker(This,index,context)
+#define IMFSinkWriter_NotifyEndOfSegment(This,index) (This)->lpVtbl->NotifyEndOfSegment(This,index)
+#define IMFSinkWriter_Flush(This,index) (This)->lpVtbl->Flush(This,index)
 #define IMFSinkWriter_Finalize(This) (This)->lpVtbl->Finalize(This)
-#define IMFSinkWriter_GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject) (This)->lpVtbl->GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject)
-#define IMFSinkWriter_GetStatistics(This,dwStreamIndex,pStats) (This)->lpVtbl->GetStatistics(This,dwStreamIndex,pStats)
+#define IMFSinkWriter_GetServiceForStream(This,index,service,riid,object) (This)->lpVtbl->GetServiceForStream(This,index,service,riid,object)
+#define IMFSinkWriter_GetStatistics(This,index,stats) (This)->lpVtbl->GetStatistics(This,index,stats)
 #else
 /*** IUnknown methods ***/
 static FORCEINLINE HRESULT IMFSinkWriter_QueryInterface(IMFSinkWriter* This,REFIID riid,void **ppvObject) {
@@ -470,38 +1018,38 @@ static FORCEINLINE ULONG IMFSinkWriter_Release(IMFSinkWriter* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IMFSinkWriter methods ***/
-static FORCEINLINE HRESULT IMFSinkWriter_AddStream(IMFSinkWriter* This,IMFMediaType *pTargetMediaType,DWORD *pdwStreamIndex) {
-    return This->lpVtbl->AddStream(This,pTargetMediaType,pdwStreamIndex);
+static FORCEINLINE HRESULT IMFSinkWriter_AddStream(IMFSinkWriter* This,IMFMediaType *type,DWORD *index) {
+    return This->lpVtbl->AddStream(This,type,index);
 }
-static FORCEINLINE HRESULT IMFSinkWriter_SetInputMediaType(IMFSinkWriter* This,DWORD dwStreamIndex,IMFMediaType *pInputMediaType,IMFAttributes *pEncodingParameters) {
-    return This->lpVtbl->SetInputMediaType(This,dwStreamIndex,pInputMediaType,pEncodingParameters);
+static FORCEINLINE HRESULT IMFSinkWriter_SetInputMediaType(IMFSinkWriter* This,DWORD index,IMFMediaType *type,IMFAttributes *parameters) {
+    return This->lpVtbl->SetInputMediaType(This,index,type,parameters);
 }
 static FORCEINLINE HRESULT IMFSinkWriter_BeginWriting(IMFSinkWriter* This) {
     return This->lpVtbl->BeginWriting(This);
 }
-static FORCEINLINE HRESULT IMFSinkWriter_WriteSample(IMFSinkWriter* This,DWORD dwStreamIndex,IMFSample *pSample) {
-    return This->lpVtbl->WriteSample(This,dwStreamIndex,pSample);
+static FORCEINLINE HRESULT IMFSinkWriter_WriteSample(IMFSinkWriter* This,DWORD index,IMFSample *sample) {
+    return This->lpVtbl->WriteSample(This,index,sample);
 }
-static FORCEINLINE HRESULT IMFSinkWriter_SendStreamTick(IMFSinkWriter* This,DWORD dwStreamIndex,LONGLONG llTimestamp) {
-    return This->lpVtbl->SendStreamTick(This,dwStreamIndex,llTimestamp);
+static FORCEINLINE HRESULT IMFSinkWriter_SendStreamTick(IMFSinkWriter* This,DWORD index,LONGLONG timestamp) {
+    return This->lpVtbl->SendStreamTick(This,index,timestamp);
 }
-static FORCEINLINE HRESULT IMFSinkWriter_PlaceMarker(IMFSinkWriter* This,DWORD dwStreamIndex,LPVOID pvContext) {
-    return This->lpVtbl->PlaceMarker(This,dwStreamIndex,pvContext);
+static FORCEINLINE HRESULT IMFSinkWriter_PlaceMarker(IMFSinkWriter* This,DWORD index,void *context) {
+    return This->lpVtbl->PlaceMarker(This,index,context);
 }
-static FORCEINLINE HRESULT IMFSinkWriter_NotifyEndOfSegment(IMFSinkWriter* This,DWORD dwStreamIndex) {
-    return This->lpVtbl->NotifyEndOfSegment(This,dwStreamIndex);
+static FORCEINLINE HRESULT IMFSinkWriter_NotifyEndOfSegment(IMFSinkWriter* This,DWORD index) {
+    return This->lpVtbl->NotifyEndOfSegment(This,index);
 }
-static FORCEINLINE HRESULT IMFSinkWriter_Flush(IMFSinkWriter* This,DWORD dwStreamIndex) {
-    return This->lpVtbl->Flush(This,dwStreamIndex);
+static FORCEINLINE HRESULT IMFSinkWriter_Flush(IMFSinkWriter* This,DWORD index) {
+    return This->lpVtbl->Flush(This,index);
 }
 static FORCEINLINE HRESULT IMFSinkWriter_Finalize(IMFSinkWriter* This) {
     return This->lpVtbl->Finalize(This);
 }
-static FORCEINLINE HRESULT IMFSinkWriter_GetServiceForStream(IMFSinkWriter* This,DWORD dwStreamIndex,REFGUID guidService,REFIID riid,LPVOID *ppvObject) {
-    return This->lpVtbl->GetServiceForStream(This,dwStreamIndex,guidService,riid,ppvObject);
+static FORCEINLINE HRESULT IMFSinkWriter_GetServiceForStream(IMFSinkWriter* This,DWORD index,REFGUID service,REFIID riid,void **object) {
+    return This->lpVtbl->GetServiceForStream(This,index,service,riid,object);
 }
-static FORCEINLINE HRESULT IMFSinkWriter_GetStatistics(IMFSinkWriter* This,DWORD dwStreamIndex,MF_SINK_WRITER_STATISTICS *pStats) {
-    return This->lpVtbl->GetStatistics(This,dwStreamIndex,pStats);
+static FORCEINLINE HRESULT IMFSinkWriter_GetStatistics(IMFSinkWriter* This,DWORD index,MF_SINK_WRITER_STATISTICS *stats) {
+    return This->lpVtbl->GetStatistics(This,index,stats);
 }
 #endif
 #endif
@@ -512,105 +1060,471 @@ static FORCEINLINE HRESULT IMFSinkWriter_GetStatistics(IMFSinkWriter* This,DWORD
 #endif  /* __IMFSinkWriter_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * IMFSourceReaderCallback interface
+ * IMFSinkWriterEx interface
  */
-#ifndef __IMFSourceReaderCallback_INTERFACE_DEFINED__
-#define __IMFSourceReaderCallback_INTERFACE_DEFINED__
+#ifndef __IMFSinkWriterEx_INTERFACE_DEFINED__
+#define __IMFSinkWriterEx_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67);
+DEFINE_GUID(IID_IMFSinkWriterEx, 0x588d72ab, 0x5bc1, 0x496a, 0x87,0x14, 0xb7,0x06,0x17,0x14,0x1b,0x25);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("deec8d99-fa1d-4d82-84c2-2c8969944867")
-IMFSourceReaderCallback : public IUnknown
+MIDL_INTERFACE("588d72ab-5bc1-496a-8714-b70617141b25")
+IMFSinkWriterEx : public IMFSinkWriter
 {
-    virtual HRESULT STDMETHODCALLTYPE OnReadSample(
-        HRESULT hrStatus,
-        DWORD dwStreamIndex,
-        DWORD dwStreamFlags,
-        LONGLONG llTimestamp,
-        IMFSample *pSample) = 0;
+    virtual HRESULT STDMETHODCALLTYPE GetTransformForStream(
+        DWORD index,
+        DWORD tindex,
+        GUID *category,
+        IMFTransform **transform) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE OnFlush(
-        DWORD dwStreamIndex) = 0;
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFSinkWriterEx, 0x588d72ab, 0x5bc1, 0x496a, 0x87,0x14, 0xb7,0x06,0x17,0x14,0x1b,0x25)
+#endif
+#else
+typedef struct IMFSinkWriterExVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFSinkWriterEx *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFSinkWriterEx *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFSinkWriterEx *This);
+
+    /*** IMFSinkWriter methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddStream)(
+        IMFSinkWriterEx *This,
+        IMFMediaType *type,
+        DWORD *index);
+
+    HRESULT (STDMETHODCALLTYPE *SetInputMediaType)(
+        IMFSinkWriterEx *This,
+        DWORD index,
+        IMFMediaType *type,
+        IMFAttributes *parameters);
+
+    HRESULT (STDMETHODCALLTYPE *BeginWriting)(
+        IMFSinkWriterEx *This);
+
+    HRESULT (STDMETHODCALLTYPE *WriteSample)(
+        IMFSinkWriterEx *This,
+        DWORD index,
+        IMFSample *sample);
+
+    HRESULT (STDMETHODCALLTYPE *SendStreamTick)(
+        IMFSinkWriterEx *This,
+        DWORD index,
+        LONGLONG timestamp);
+
+    HRESULT (STDMETHODCALLTYPE *PlaceMarker)(
+        IMFSinkWriterEx *This,
+        DWORD index,
+        void *context);
+
+    HRESULT (STDMETHODCALLTYPE *NotifyEndOfSegment)(
+        IMFSinkWriterEx *This,
+        DWORD index);
+
+    HRESULT (STDMETHODCALLTYPE *Flush)(
+        IMFSinkWriterEx *This,
+        DWORD index);
+
+    HRESULT (STDMETHODCALLTYPE *Finalize)(
+        IMFSinkWriterEx *This);
+
+    HRESULT (STDMETHODCALLTYPE *GetServiceForStream)(
+        IMFSinkWriterEx *This,
+        DWORD index,
+        REFGUID service,
+        REFIID riid,
+        void **object);
+
+    HRESULT (STDMETHODCALLTYPE *GetStatistics)(
+        IMFSinkWriterEx *This,
+        DWORD index,
+        MF_SINK_WRITER_STATISTICS *stats);
+
+    /*** IMFSinkWriterEx methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTransformForStream)(
+        IMFSinkWriterEx *This,
+        DWORD index,
+        DWORD tindex,
+        GUID *category,
+        IMFTransform **transform);
+
+    END_INTERFACE
+} IMFSinkWriterExVtbl;
+
+interface IMFSinkWriterEx {
+    CONST_VTBL IMFSinkWriterExVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFSinkWriterEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSinkWriterEx_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFSinkWriterEx_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFSinkWriter methods ***/
+#define IMFSinkWriterEx_AddStream(This,type,index) (This)->lpVtbl->AddStream(This,type,index)
+#define IMFSinkWriterEx_SetInputMediaType(This,index,type,parameters) (This)->lpVtbl->SetInputMediaType(This,index,type,parameters)
+#define IMFSinkWriterEx_BeginWriting(This) (This)->lpVtbl->BeginWriting(This)
+#define IMFSinkWriterEx_WriteSample(This,index,sample) (This)->lpVtbl->WriteSample(This,index,sample)
+#define IMFSinkWriterEx_SendStreamTick(This,index,timestamp) (This)->lpVtbl->SendStreamTick(This,index,timestamp)
+#define IMFSinkWriterEx_PlaceMarker(This,index,context) (This)->lpVtbl->PlaceMarker(This,index,context)
+#define IMFSinkWriterEx_NotifyEndOfSegment(This,index) (This)->lpVtbl->NotifyEndOfSegment(This,index)
+#define IMFSinkWriterEx_Flush(This,index) (This)->lpVtbl->Flush(This,index)
+#define IMFSinkWriterEx_Finalize(This) (This)->lpVtbl->Finalize(This)
+#define IMFSinkWriterEx_GetServiceForStream(This,index,service,riid,object) (This)->lpVtbl->GetServiceForStream(This,index,service,riid,object)
+#define IMFSinkWriterEx_GetStatistics(This,index,stats) (This)->lpVtbl->GetStatistics(This,index,stats)
+/*** IMFSinkWriterEx methods ***/
+#define IMFSinkWriterEx_GetTransformForStream(This,index,tindex,category,transform) (This)->lpVtbl->GetTransformForStream(This,index,tindex,category,transform)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFSinkWriterEx_QueryInterface(IMFSinkWriterEx* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFSinkWriterEx_AddRef(IMFSinkWriterEx* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFSinkWriterEx_Release(IMFSinkWriterEx* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFSinkWriter methods ***/
+static FORCEINLINE HRESULT IMFSinkWriterEx_AddStream(IMFSinkWriterEx* This,IMFMediaType *type,DWORD *index) {
+    return This->lpVtbl->AddStream(This,type,index);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEx_SetInputMediaType(IMFSinkWriterEx* This,DWORD index,IMFMediaType *type,IMFAttributes *parameters) {
+    return This->lpVtbl->SetInputMediaType(This,index,type,parameters);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEx_BeginWriting(IMFSinkWriterEx* This) {
+    return This->lpVtbl->BeginWriting(This);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEx_WriteSample(IMFSinkWriterEx* This,DWORD index,IMFSample *sample) {
+    return This->lpVtbl->WriteSample(This,index,sample);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEx_SendStreamTick(IMFSinkWriterEx* This,DWORD index,LONGLONG timestamp) {
+    return This->lpVtbl->SendStreamTick(This,index,timestamp);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEx_PlaceMarker(IMFSinkWriterEx* This,DWORD index,void *context) {
+    return This->lpVtbl->PlaceMarker(This,index,context);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEx_NotifyEndOfSegment(IMFSinkWriterEx* This,DWORD index) {
+    return This->lpVtbl->NotifyEndOfSegment(This,index);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEx_Flush(IMFSinkWriterEx* This,DWORD index) {
+    return This->lpVtbl->Flush(This,index);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEx_Finalize(IMFSinkWriterEx* This) {
+    return This->lpVtbl->Finalize(This);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEx_GetServiceForStream(IMFSinkWriterEx* This,DWORD index,REFGUID service,REFIID riid,void **object) {
+    return This->lpVtbl->GetServiceForStream(This,index,service,riid,object);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEx_GetStatistics(IMFSinkWriterEx* This,DWORD index,MF_SINK_WRITER_STATISTICS *stats) {
+    return This->lpVtbl->GetStatistics(This,index,stats);
+}
+/*** IMFSinkWriterEx methods ***/
+static FORCEINLINE HRESULT IMFSinkWriterEx_GetTransformForStream(IMFSinkWriterEx* This,DWORD index,DWORD tindex,GUID *category,IMFTransform **transform) {
+    return This->lpVtbl->GetTransformForStream(This,index,tindex,category,transform);
+}
+#endif
+#endif
+
+#endif
 
-    virtual HRESULT STDMETHODCALLTYPE OnEvent(
-        DWORD dwStreamIndex,
-        IMFMediaEvent *pEvent) = 0;
+
+#endif  /* __IMFSinkWriterEx_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFSinkWriterEncoderConfig interface
+ */
+#ifndef __IMFSinkWriterEncoderConfig_INTERFACE_DEFINED__
+#define __IMFSinkWriterEncoderConfig_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFSinkWriterEncoderConfig, 0x17c3779e, 0x3cde, 0x4ede, 0x8c,0x60, 0x38,0x99,0xf5,0xf5,0x3a,0xd6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("17c3779e-3cde-4ede-8c60-3899f5f53ad6")
+IMFSinkWriterEncoderConfig : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetTargetMediaType(
+        DWORD stream_index,
+        IMFMediaType *media_type,
+        IMFAttributes *encoding_parameters) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PlaceEncodingParameters(
+        DWORD stream_index,
+        IMFAttributes *encoding_parameters) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IMFSourceReaderCallback, 0xdeec8d99, 0xfa1d, 0x4d82, 0x84,0xc2, 0x2c,0x89,0x69,0x94,0x48,0x67)
+__CRT_UUID_DECL(IMFSinkWriterEncoderConfig, 0x17c3779e, 0x3cde, 0x4ede, 0x8c,0x60, 0x38,0x99,0xf5,0xf5,0x3a,0xd6)
 #endif
 #else
-typedef struct IMFSourceReaderCallbackVtbl {
+typedef struct IMFSinkWriterEncoderConfigVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMFSourceReaderCallback *This,
+        IMFSinkWriterEncoderConfig *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMFSourceReaderCallback *This);
+        IMFSinkWriterEncoderConfig *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMFSourceReaderCallback *This);
+        IMFSinkWriterEncoderConfig *This);
 
-    /*** IMFSourceReaderCallback methods ***/
-    HRESULT (STDMETHODCALLTYPE *OnReadSample)(
-        IMFSourceReaderCallback *This,
-        HRESULT hrStatus,
-        DWORD dwStreamIndex,
-        DWORD dwStreamFlags,
-        LONGLONG llTimestamp,
-        IMFSample *pSample);
+    /*** IMFSinkWriterEncoderConfig methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetTargetMediaType)(
+        IMFSinkWriterEncoderConfig *This,
+        DWORD stream_index,
+        IMFMediaType *media_type,
+        IMFAttributes *encoding_parameters);
 
-    HRESULT (STDMETHODCALLTYPE *OnFlush)(
-        IMFSourceReaderCallback *This,
-        DWORD dwStreamIndex);
+    HRESULT (STDMETHODCALLTYPE *PlaceEncodingParameters)(
+        IMFSinkWriterEncoderConfig *This,
+        DWORD stream_index,
+        IMFAttributes *encoding_parameters);
 
-    HRESULT (STDMETHODCALLTYPE *OnEvent)(
-        IMFSourceReaderCallback *This,
-        DWORD dwStreamIndex,
-        IMFMediaEvent *pEvent);
+    END_INTERFACE
+} IMFSinkWriterEncoderConfigVtbl;
+
+interface IMFSinkWriterEncoderConfig {
+    CONST_VTBL IMFSinkWriterEncoderConfigVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFSinkWriterEncoderConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSinkWriterEncoderConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFSinkWriterEncoderConfig_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFSinkWriterEncoderConfig methods ***/
+#define IMFSinkWriterEncoderConfig_SetTargetMediaType(This,stream_index,media_type,encoding_parameters) (This)->lpVtbl->SetTargetMediaType(This,stream_index,media_type,encoding_parameters)
+#define IMFSinkWriterEncoderConfig_PlaceEncodingParameters(This,stream_index,encoding_parameters) (This)->lpVtbl->PlaceEncodingParameters(This,stream_index,encoding_parameters)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFSinkWriterEncoderConfig_QueryInterface(IMFSinkWriterEncoderConfig* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFSinkWriterEncoderConfig_AddRef(IMFSinkWriterEncoderConfig* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFSinkWriterEncoderConfig_Release(IMFSinkWriterEncoderConfig* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFSinkWriterEncoderConfig methods ***/
+static FORCEINLINE HRESULT IMFSinkWriterEncoderConfig_SetTargetMediaType(IMFSinkWriterEncoderConfig* This,DWORD stream_index,IMFMediaType *media_type,IMFAttributes *encoding_parameters) {
+    return This->lpVtbl->SetTargetMediaType(This,stream_index,media_type,encoding_parameters);
+}
+static FORCEINLINE HRESULT IMFSinkWriterEncoderConfig_PlaceEncodingParameters(IMFSinkWriterEncoderConfig* This,DWORD stream_index,IMFAttributes *encoding_parameters) {
+    return This->lpVtbl->PlaceEncodingParameters(This,stream_index,encoding_parameters);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFSinkWriterEncoderConfig_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFSinkWriterCallback interface
+ */
+#ifndef __IMFSinkWriterCallback_INTERFACE_DEFINED__
+#define __IMFSinkWriterCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFSinkWriterCallback, 0x666f76de, 0x33d2, 0x41b9, 0xa4,0x58, 0x29,0xed,0x0a,0x97,0x2c,0x58);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("666f76de-33d2-41b9-a458-29ed0a972c58")
+IMFSinkWriterCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnFinalize(
+        HRESULT status) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnMarker(
+        DWORD stream_index,
+        void *context) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFSinkWriterCallback, 0x666f76de, 0x33d2, 0x41b9, 0xa4,0x58, 0x29,0xed,0x0a,0x97,0x2c,0x58)
+#endif
+#else
+typedef struct IMFSinkWriterCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFSinkWriterCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFSinkWriterCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFSinkWriterCallback *This);
+
+    /*** IMFSinkWriterCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnFinalize)(
+        IMFSinkWriterCallback *This,
+        HRESULT status);
+
+    HRESULT (STDMETHODCALLTYPE *OnMarker)(
+        IMFSinkWriterCallback *This,
+        DWORD stream_index,
+        void *context);
 
     END_INTERFACE
-} IMFSourceReaderCallbackVtbl;
+} IMFSinkWriterCallbackVtbl;
 
-interface IMFSourceReaderCallback {
-    CONST_VTBL IMFSourceReaderCallbackVtbl* lpVtbl;
+interface IMFSinkWriterCallback {
+    CONST_VTBL IMFSinkWriterCallbackVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IMFSourceReaderCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IMFSourceReaderCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IMFSourceReaderCallback_Release(This) (This)->lpVtbl->Release(This)
-/*** IMFSourceReaderCallback methods ***/
-#define IMFSourceReaderCallback_OnReadSample(This,hrStatus,dwStreamIndex,dwStreamFlags,llTimestamp,pSample) (This)->lpVtbl->OnReadSample(This,hrStatus,dwStreamIndex,dwStreamFlags,llTimestamp,pSample)
-#define IMFSourceReaderCallback_OnFlush(This,dwStreamIndex) (This)->lpVtbl->OnFlush(This,dwStreamIndex)
-#define IMFSourceReaderCallback_OnEvent(This,dwStreamIndex,pEvent) (This)->lpVtbl->OnEvent(This,dwStreamIndex,pEvent)
+#define IMFSinkWriterCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSinkWriterCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFSinkWriterCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFSinkWriterCallback methods ***/
+#define IMFSinkWriterCallback_OnFinalize(This,status) (This)->lpVtbl->OnFinalize(This,status)
+#define IMFSinkWriterCallback_OnMarker(This,stream_index,context) (This)->lpVtbl->OnMarker(This,stream_index,context)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IMFSourceReaderCallback_QueryInterface(IMFSourceReaderCallback* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT IMFSinkWriterCallback_QueryInterface(IMFSinkWriterCallback* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IMFSourceReaderCallback_AddRef(IMFSourceReaderCallback* This) {
+static FORCEINLINE ULONG IMFSinkWriterCallback_AddRef(IMFSinkWriterCallback* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IMFSourceReaderCallback_Release(IMFSourceReaderCallback* This) {
+static FORCEINLINE ULONG IMFSinkWriterCallback_Release(IMFSinkWriterCallback* This) {
     return This->lpVtbl->Release(This);
 }
-/*** IMFSourceReaderCallback methods ***/
-static FORCEINLINE HRESULT IMFSourceReaderCallback_OnReadSample(IMFSourceReaderCallback* This,HRESULT hrStatus,DWORD dwStreamIndex,DWORD dwStreamFlags,LONGLONG llTimestamp,IMFSample *pSample) {
-    return This->lpVtbl->OnReadSample(This,hrStatus,dwStreamIndex,dwStreamFlags,llTimestamp,pSample);
+/*** IMFSinkWriterCallback methods ***/
+static FORCEINLINE HRESULT IMFSinkWriterCallback_OnFinalize(IMFSinkWriterCallback* This,HRESULT status) {
+    return This->lpVtbl->OnFinalize(This,status);
 }
-static FORCEINLINE HRESULT IMFSourceReaderCallback_OnFlush(IMFSourceReaderCallback* This,DWORD dwStreamIndex) {
-    return This->lpVtbl->OnFlush(This,dwStreamIndex);
+static FORCEINLINE HRESULT IMFSinkWriterCallback_OnMarker(IMFSinkWriterCallback* This,DWORD stream_index,void *context) {
+    return This->lpVtbl->OnMarker(This,stream_index,context);
 }
-static FORCEINLINE HRESULT IMFSourceReaderCallback_OnEvent(IMFSourceReaderCallback* This,DWORD dwStreamIndex,IMFMediaEvent *pEvent) {
-    return This->lpVtbl->OnEvent(This,dwStreamIndex,pEvent);
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFSinkWriterCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFSinkWriterCallback2 interface
+ */
+#ifndef __IMFSinkWriterCallback2_INTERFACE_DEFINED__
+#define __IMFSinkWriterCallback2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFSinkWriterCallback2, 0x2456bd58, 0xc067, 0x4513, 0x84,0xfe, 0x8d,0x0c,0x88,0xff,0xdc,0x61);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2456bd58-c067-4513-84fe-8d0c88ffdc61")
+IMFSinkWriterCallback2 : public IMFSinkWriterCallback
+{
+    virtual HRESULT STDMETHODCALLTYPE OnTransformChange(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnStreamError(
+        DWORD stream_index,
+        HRESULT status) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFSinkWriterCallback2, 0x2456bd58, 0xc067, 0x4513, 0x84,0xfe, 0x8d,0x0c,0x88,0xff,0xdc,0x61)
+#endif
+#else
+typedef struct IMFSinkWriterCallback2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFSinkWriterCallback2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFSinkWriterCallback2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFSinkWriterCallback2 *This);
+
+    /*** IMFSinkWriterCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnFinalize)(
+        IMFSinkWriterCallback2 *This,
+        HRESULT status);
+
+    HRESULT (STDMETHODCALLTYPE *OnMarker)(
+        IMFSinkWriterCallback2 *This,
+        DWORD stream_index,
+        void *context);
+
+    /*** IMFSinkWriterCallback2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnTransformChange)(
+        IMFSinkWriterCallback2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *OnStreamError)(
+        IMFSinkWriterCallback2 *This,
+        DWORD stream_index,
+        HRESULT status);
+
+    END_INTERFACE
+} IMFSinkWriterCallback2Vtbl;
+
+interface IMFSinkWriterCallback2 {
+    CONST_VTBL IMFSinkWriterCallback2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFSinkWriterCallback2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFSinkWriterCallback2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFSinkWriterCallback2_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFSinkWriterCallback methods ***/
+#define IMFSinkWriterCallback2_OnFinalize(This,status) (This)->lpVtbl->OnFinalize(This,status)
+#define IMFSinkWriterCallback2_OnMarker(This,stream_index,context) (This)->lpVtbl->OnMarker(This,stream_index,context)
+/*** IMFSinkWriterCallback2 methods ***/
+#define IMFSinkWriterCallback2_OnTransformChange(This) (This)->lpVtbl->OnTransformChange(This)
+#define IMFSinkWriterCallback2_OnStreamError(This,stream_index,status) (This)->lpVtbl->OnStreamError(This,stream_index,status)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFSinkWriterCallback2_QueryInterface(IMFSinkWriterCallback2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFSinkWriterCallback2_AddRef(IMFSinkWriterCallback2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFSinkWriterCallback2_Release(IMFSinkWriterCallback2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFSinkWriterCallback methods ***/
+static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnFinalize(IMFSinkWriterCallback2* This,HRESULT status) {
+    return This->lpVtbl->OnFinalize(This,status);
+}
+static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnMarker(IMFSinkWriterCallback2* This,DWORD stream_index,void *context) {
+    return This->lpVtbl->OnMarker(This,stream_index,context);
+}
+/*** IMFSinkWriterCallback2 methods ***/
+static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnTransformChange(IMFSinkWriterCallback2* This) {
+    return This->lpVtbl->OnTransformChange(This);
+}
+static FORCEINLINE HRESULT IMFSinkWriterCallback2_OnStreamError(IMFSinkWriterCallback2* This,DWORD stream_index,HRESULT status) {
+    return This->lpVtbl->OnStreamError(This,stream_index,status);
 }
 #endif
 #endif
@@ -618,13 +1532,121 @@ static FORCEINLINE HRESULT IMFSourceReaderCallback_OnEvent(IMFSourceReaderCallba
 #endif
 
 
-#endif  /* __IMFSourceReaderCallback_INTERFACE_DEFINED__ */
+#endif  /* __IMFSinkWriterCallback2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IMFReadWriteClassFactory interface
+ */
+#ifndef __IMFReadWriteClassFactory_INTERFACE_DEFINED__
+#define __IMFReadWriteClassFactory_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IMFReadWriteClassFactory, 0xe7fe2e12, 0x661c, 0x40da, 0x92,0xf9, 0x4f,0x00,0x2a,0xb6,0x76,0x27);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e7fe2e12-661c-40da-92f9-4f002ab67627")
+IMFReadWriteClassFactory : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateInstanceFromURL(
+        REFCLSID clsid,
+        LPCWSTR url,
+        IMFAttributes *attributes,
+        REFIID riid,
+        void **object) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateInstanceFromObject(
+        REFCLSID clsid,
+        IUnknown *unk,
+        IMFAttributes *attributes,
+        REFIID riid,
+        void **object) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IMFReadWriteClassFactory, 0xe7fe2e12, 0x661c, 0x40da, 0x92,0xf9, 0x4f,0x00,0x2a,0xb6,0x76,0x27)
+#endif
+#else
+typedef struct IMFReadWriteClassFactoryVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IMFReadWriteClassFactory *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IMFReadWriteClassFactory *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IMFReadWriteClassFactory *This);
+
+    /*** IMFReadWriteClassFactory methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateInstanceFromURL)(
+        IMFReadWriteClassFactory *This,
+        REFCLSID clsid,
+        LPCWSTR url,
+        IMFAttributes *attributes,
+        REFIID riid,
+        void **object);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInstanceFromObject)(
+        IMFReadWriteClassFactory *This,
+        REFCLSID clsid,
+        IUnknown *unk,
+        IMFAttributes *attributes,
+        REFIID riid,
+        void **object);
+
+    END_INTERFACE
+} IMFReadWriteClassFactoryVtbl;
+
+interface IMFReadWriteClassFactory {
+    CONST_VTBL IMFReadWriteClassFactoryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IMFReadWriteClassFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IMFReadWriteClassFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IMFReadWriteClassFactory_Release(This) (This)->lpVtbl->Release(This)
+/*** IMFReadWriteClassFactory methods ***/
+#define IMFReadWriteClassFactory_CreateInstanceFromURL(This,clsid,url,attributes,riid,object) (This)->lpVtbl->CreateInstanceFromURL(This,clsid,url,attributes,riid,object)
+#define IMFReadWriteClassFactory_CreateInstanceFromObject(This,clsid,unk,attributes,riid,object) (This)->lpVtbl->CreateInstanceFromObject(This,clsid,unk,attributes,riid,object)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IMFReadWriteClassFactory_QueryInterface(IMFReadWriteClassFactory* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IMFReadWriteClassFactory_AddRef(IMFReadWriteClassFactory* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IMFReadWriteClassFactory_Release(IMFReadWriteClassFactory* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IMFReadWriteClassFactory methods ***/
+static FORCEINLINE HRESULT IMFReadWriteClassFactory_CreateInstanceFromURL(IMFReadWriteClassFactory* This,REFCLSID clsid,LPCWSTR url,IMFAttributes *attributes,REFIID riid,void **object) {
+    return This->lpVtbl->CreateInstanceFromURL(This,clsid,url,attributes,riid,object);
+}
+static FORCEINLINE HRESULT IMFReadWriteClassFactory_CreateInstanceFromObject(IMFReadWriteClassFactory* This,REFCLSID clsid,IUnknown *unk,IMFAttributes *attributes,REFIID riid,void **object) {
+    return This->lpVtbl->CreateInstanceFromObject(This,clsid,unk,attributes,riid,object);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IMFReadWriteClassFactory_INTERFACE_DEFINED__ */
 
-HRESULT WINAPI MFCreateSinkWriterFromMediaSink(IMFMediaSink *pMediaSink,IMFAttributes *pAttributes,IMFSinkWriter **ppSinkWriter);
-HRESULT WINAPI MFCreateSinkWriterFromURL(LPCWSTR pwszOutputURL,IMFByteStream *pByteStream,IMFAttributes *pAttributes,IMFSinkWriter **ppSinkWriter);
-HRESULT WINAPI MFCreateSourceReaderFromByteStream(IMFByteStream *pByteStream,IMFAttributes *pAttributes,IMFSourceReader **ppSourceReader);
-HRESULT WINAPI MFCreateSourceReaderFromMediaSource(IMFMediaSource *pMediaSource,IMFAttributes *pAttributes,IMFSourceReader **ppSourceReader);
-HRESULT WINAPI MFCreateSourceReaderFromURL(LPCWSTR pwszURL,IMFAttributes *pAttributes,IMFSourceReader **ppSourceReader);
+HRESULT WINAPI MFCreateSinkWriterFromMediaSink(IMFMediaSink *sink, IMFAttributes *attributes,
+        IMFSinkWriter **writer);
+HRESULT WINAPI MFCreateSinkWriterFromURL(const WCHAR *url, IMFByteStream *bytestream,
+        IMFAttributes *attributes, IMFSinkWriter **writer);
+HRESULT WINAPI MFCreateSourceReaderFromByteStream(IMFByteStream *stream, IMFAttributes *attributes,
+                                                  IMFSourceReader **reader);
+HRESULT WINAPI MFCreateSourceReaderFromMediaSource(IMFMediaSource *source, IMFAttributes *attributes,
+                                                   IMFSourceReader **reader);
+HRESULT WINAPI MFCreateSourceReaderFromURL(const WCHAR *url, IMFAttributes *attributes, IMFSourceReader **reader);
 /* Begin additional prototypes for all interfaces */
 
 
lib/libc/include/any-windows-any/mftransform.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from mftransform.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mftransform.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mmddk.h
@@ -0,0 +1,544 @@
+/**
+ * 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 _INC_MMDDK
+#define _INC_MMDDK
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#include "pshpack1.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef MMNOTIMER
+#define MMNOTIMERDEV
+#endif
+#ifdef MMNOWAVE
+#define MMNOWAVEDEV
+#endif
+#ifdef MMNOMIDI
+#define MMNOMIDIDEV
+#endif
+#ifdef MMNOAUX
+#define MMNOAUXDEV
+#endif
+#ifdef MMNOJOY
+#define MMNOJOYDEV
+#endif
+#ifdef MMNOMMIO
+#define MMNOMMIODEV
+#endif
+#ifdef MMNOMCI
+#define MMNOMCIDEV
+#endif
+
+#ifndef NODRIVERS
+
+#define DRV_LOAD 0x0001
+#define DRV_ENABLE 0x0002
+#define DRV_OPEN 0x0003
+#define DRV_CLOSE 0x0004
+#define DRV_DISABLE 0x0005
+#define DRV_FREE 0x0006
+#define DRV_CONFIGURE 0x0007
+#define DRV_QUERYCONFIGURE 0x0008
+#define DRV_INSTALL 0x0009
+#define DRV_REMOVE 0x000a
+
+#define DRV_RESERVED 0x0800
+#define DRV_USER 0x4000
+
+#define DRIVERS_SECTION TEXT("DRIVERS32")
+#define MCI_SECTION TEXT("MCI32")
+
+#endif /* !NODRIVERS */
+
+#define DCB_NULL 0x0000
+#define DCB_WINDOW 0x0001
+#define DCB_TASK 0x0002
+#define DCB_FUNCTION 0x0003
+#define DCB_EVENT 0x0005
+#define DCB_TYPEMASK 0x0007
+#define DCB_NOSWITCH 0x0008
+
+#define DRVM_INIT 100
+#define DRVM_EXIT 101
+#define DRVM_DISABLE 102
+#define DRVM_ENABLE 103
+#define DRVM_INIT_EX 104
+
+#ifndef DRVM_MAPPER
+#define DRVM_MAPPER 0x2000
+#endif
+#define DRVM_USER 0x4000
+#define DRVM_MAPPER_STATUS (DRVM_MAPPER+0)
+#define DRVM_MAPPER_RECONFIGURE (DRVM_MAPPER+1)
+#define DRVM_MAPPER_PREFERRED_GET (DRVM_MAPPER+21)
+#define DRVM_MAPPER_CONSOLEVOICECOM_GET (DRVM_MAPPER+23)
+
+#define DRV_QUERYDEVNODE (DRV_RESERVED + 2)
+#define DRV_QUERYMAPPABLE (DRV_RESERVED + 5)
+#define DRV_QUERYMODULE (DRV_RESERVED + 9)
+#define DRV_PNPINSTALL (DRV_RESERVED + 11)
+#define DRV_QUERYDEVICEINTERFACE (DRV_RESERVED + 12)
+#define DRV_QUERYDEVICEINTERFACESIZE (DRV_RESERVED + 13)
+#define DRV_QUERYSTRINGID (DRV_RESERVED + 14)
+#define DRV_QUERYSTRINGIDSIZE (DRV_RESERVED + 15)
+#define DRV_QUERYIDFROMSTRINGID (DRV_RESERVED + 16)
+#define DRV_QUERYFUNCTIONINSTANCEID (DRV_RESERVED + 17)
+#define DRV_QUERYFUNCTIONINSTANCEIDSIZE (DRV_RESERVED + 18)
+
+#define DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY 0x00000001
+
+#define DRVM_IOCTL 0x100
+#define DRVM_ADD_THRU (DRVM_IOCTL+1)
+#define DRVM_REMOVE_THRU (DRVM_IOCTL+2)
+#define DRVM_IOCTL_LAST (DRVM_IOCTL+5)
+
+typedef struct {
+  DWORD dwSize;
+  DWORD dwCmd;
+} DRVM_IOCTL_DATA, *LPDRVM_IOCTL_DATA;
+
+#define DRVM_IOCTL_CMD_USER __MSABI_LONG(0x00000000)
+#define DRVM_IOCTL_CMD_SYSTEM __MSABI_LONG(0x80000000)
+
+#define VADMAD_Device_ID 0X0444
+
+typedef struct {
+  DWORD cbSize;
+  LPVOID pCaps;
+} MDEVICECAPSEX;
+
+#ifndef MMNOWAVEDEV
+
+#define WODM_INIT DRVM_INIT
+#define WIDM_INIT DRVM_INIT
+#define WODM_INIT_EX DRVM_INIT_EX
+#define WIDM_INIT_EX DRVM_INIT_EX
+
+typedef struct waveopendesc_tag {
+  HWAVE hWave;
+  LPWAVEFORMAT lpFormat;
+  DWORD_PTR dwCallback;
+  DWORD_PTR dwInstance;
+  UINT uMappedDeviceID;
+  DWORD_PTR dnDevNode;
+} WAVEOPENDESC, *LPWAVEOPENDESC;
+
+#define WODM_GETNUMDEVS 3
+#define WODM_GETDEVCAPS 4
+#define WODM_OPEN 5
+#define WODM_CLOSE 6
+#define WODM_PREPARE 7
+#define WODM_UNPREPARE 8
+#define WODM_WRITE 9
+#define WODM_PAUSE 10
+#define WODM_RESTART 11
+#define WODM_RESET 12
+#define WODM_GETPOS 13
+#define WODM_GETPITCH 14
+#define WODM_SETPITCH 15
+#define WODM_GETVOLUME 16
+#define WODM_SETVOLUME 17
+#define WODM_GETPLAYBACKRATE 18
+#define WODM_SETPLAYBACKRATE 19
+#define WODM_BREAKLOOP 20
+#define WODM_PREFERRED 21
+
+#define WODM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0)
+#define WAVEOUT_MAPPER_STATUS_DEVICE 0
+#define WAVEOUT_MAPPER_STATUS_MAPPED 1
+#define WAVEOUT_MAPPER_STATUS_FORMAT 2
+
+#define WODM_BUSY 21
+
+#define WIDM_GETNUMDEVS 50
+#define WIDM_GETDEVCAPS 51
+#define WIDM_OPEN 52
+#define WIDM_CLOSE 53
+#define WIDM_PREPARE 54
+#define WIDM_UNPREPARE 55
+#define WIDM_ADDBUFFER 56
+#define WIDM_START 57
+#define WIDM_STOP 58
+#define WIDM_RESET 59
+#define WIDM_GETPOS 60
+#define WIDM_PREFERRED 61
+
+#define WIDM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0)
+#define WAVEIN_MAPPER_STATUS_DEVICE 0
+#define WAVEIN_MAPPER_STATUS_MAPPED 1
+#define WAVEIN_MAPPER_STATUS_FORMAT 2
+
+#endif /* !MMNOWAVEDEV */
+
+#ifndef MMNOMIDIDEV
+
+#define MODM_USER DRVM_USER
+#define MIDM_USER DRVM_USER
+#define MODM_MAPPER DRVM_MAPPER
+#define MIDM_MAPPER DRVM_MAPPER
+
+#define MODM_INIT DRVM_INIT
+#define MIDM_INIT DRVM_INIT
+#define MODM_INIT_EX DRVM_INIT_EX
+#define MIDM_INIT_EX DRVM_INIT_EX
+
+#ifndef MMNOMIDI
+
+typedef struct midiopenstrmid_tag {
+  DWORD dwStreamID;
+  UINT uDeviceID;
+} MIDIOPENSTRMID;
+
+typedef struct midiopendesc_tag {
+  HMIDI hMidi;
+  DWORD_PTR dwCallback;
+  DWORD_PTR dwInstance;
+  DWORD_PTR dnDevNode;
+  DWORD cIds;
+  MIDIOPENSTRMID rgIds[1];
+} MIDIOPENDESC, *LPMIDIOPENDESC;
+
+#endif /* MMNOMIDI */
+
+#define MIDI_IO_PACKED __MSABI_LONG(0x00000000)
+#define MIDI_IO_COOKED __MSABI_LONG(0x00000002)
+
+#define MODM_GETNUMDEVS 1
+#define MODM_GETDEVCAPS 2
+#define MODM_OPEN 3
+#define MODM_CLOSE 4
+#define MODM_PREPARE 5
+#define MODM_UNPREPARE 6
+#define MODM_DATA 7
+#define MODM_LONGDATA 8
+#define MODM_RESET 9
+#define MODM_GETVOLUME 10
+#define MODM_SETVOLUME 11
+#define MODM_CACHEPATCHES 12
+#define MODM_CACHEDRUMPATCHES 13
+
+#if WINVER >= 0x400
+#define MODM_STRMDATA 14
+#define MODM_GETPOS 17
+#define MODM_PAUSE 18
+#define MODM_RESTART 19
+#define MODM_STOP 20
+#define MODM_PROPERTIES 21
+#define MODM_PREFERRED 22
+#define MODM_RECONFIGURE (MODM_USER + 0x0768)
+#endif
+
+#define MIDM_GETNUMDEVS 53
+#define MIDM_GETDEVCAPS 54
+#define MIDM_OPEN 55
+#define MIDM_CLOSE 56
+#define MIDM_PREPARE 57
+#define MIDM_UNPREPARE 58
+#define MIDM_ADDBUFFER 59
+#define MIDM_START 60
+#define MIDM_STOP 61
+#define MIDM_RESET 62
+
+#endif /* !MMNOMIDIDEV */
+
+#ifndef MMNOAUXDEV
+
+#define AUXM_INIT DRVM_INIT
+#define AUXM_INIT_EX DRVM_INIT_EX
+
+#define AUXDM_GETNUMDEVS 3
+#define AUXDM_GETDEVCAPS 4
+#define AUXDM_GETVOLUME 5
+#define AUXDM_SETVOLUME 6
+
+#endif /* !MMNOAUXDEV */
+
+#ifndef MMNOMIXERDEV
+
+typedef struct tMIXEROPENDESC {
+  HMIXER hmx;
+  LPVOID pReserved0;
+  DWORD_PTR dwCallback;
+  DWORD_PTR dwInstance;
+  DWORD_PTR dnDevNode;
+} MIXEROPENDESC, *PMIXEROPENDESC, *LPMIXEROPENDESC;
+
+#define MXDM_INIT DRVM_INIT
+#define MXDM_INIT_EX DRVM_INIT_EX
+#define MXDM_USER DRV_USER
+
+#define MXDM_BASE (1)
+#define MXDM_GETNUMDEVS (MXDM_BASE + 0)
+#define MXDM_GETDEVCAPS (MXDM_BASE + 1)
+#define MXDM_OPEN (MXDM_BASE + 2)
+#define MXDM_CLOSE (MXDM_BASE + 3)
+#define MXDM_GETLINEINFO (MXDM_BASE + 4)
+#define MXDM_GETLINECONTROLS (MXDM_BASE + 5)
+#define MXDM_GETCONTROLDETAILS (MXDM_BASE + 6)
+#define MXDM_SETCONTROLDETAILS (MXDM_BASE + 7)
+
+#endif /* !MMNOMIXERDEV */
+
+#ifndef MMNOTIMERDEV
+
+typedef struct timerevent_tag {
+  WORD wDelay;
+  WORD wResolution;
+  LPTIMECALLBACK lpFunction;
+  DWORD dwUser;
+  WORD wFlags;
+  WORD wReserved1;
+} TIMEREVENT, *LPTIMEREVENT;
+
+#define TDD_KILLTIMEREVENT (DRV_RESERVED + 0)
+#define TDD_SETTIMEREVENT (DRV_RESERVED + 4)
+#define TDD_GETSYSTEMTIME (DRV_RESERVED + 8)
+#define TDD_GETDEVCAPS (DRV_RESERVED + 12)
+#define TDD_BEGINMINPERIOD (DRV_RESERVED + 16)
+#define TDD_ENDMINPERIOD (DRV_RESERVED + 20)
+
+#endif /* !MMNOTIMERDEV */
+
+#ifndef MMNOJOYDEV
+
+#define JOY_CONFIGCHANGED_MSGSTRING "MSJSTICK_VJOYD_MSGSTR"
+
+#define JOY_HW_NONE 0
+#define JOY_HW_CUSTOM 1
+#define JOY_HW_2A_2B_GENERIC 2
+#define JOY_HW_2A_4B_GENERIC 3
+#define JOY_HW_2B_GAMEPAD 4
+#define JOY_HW_2B_FLIGHTYOKE 5
+#define JOY_HW_2B_FLIGHTYOKETHROTTLE 6
+#define JOY_HW_3A_2B_GENERIC 7
+#define JOY_HW_3A_4B_GENERIC 8
+#define JOY_HW_4B_GAMEPAD 9
+#define JOY_HW_4B_FLIGHTYOKE 10
+#define JOY_HW_4B_FLIGHTYOKETHROTTLE 11
+#define JOY_HW_LASTENTRY 12
+
+#define JOY_ISCAL_XY 0x00000001
+#define JOY_ISCAL_Z 0x00000002
+#define JOY_ISCAL_R 0x00000004
+#define JOY_ISCAL_U 0x00000008
+#define JOY_ISCAL_V 0x00000010
+#define JOY_ISCAL_POV 0x00000020
+
+#define JOY_POV_NUMDIRS 4
+#define JOY_POVVAL_FORWARD 0
+#define JOY_POVVAL_BACKWARD 1
+#define JOY_POVVAL_LEFT 2
+#define JOY_POVVAL_RIGHT 3
+
+#define JOY_HWS_HASZ 0x00000001
+#define JOY_HWS_HASPOV 0x00000002
+#define JOY_HWS_POVISBUTTONCOMBOS 0x00000004
+#define JOY_HWS_POVISPOLL 0x00000008
+#define JOY_HWS_ISYOKE 0x00000010
+#define JOY_HWS_ISGAMEPAD 0x00000020
+#define JOY_HWS_ISCARCTRL 0x00000040
+
+#define JOY_HWS_XISJ1Y 0x00000080
+#define JOY_HWS_XISJ2X 0x00000100
+#define JOY_HWS_XISJ2Y 0x00000200
+
+#define JOY_HWS_YISJ1X 0x00000400
+#define JOY_HWS_YISJ2X 0x00000800
+#define JOY_HWS_YISJ2Y 0x00001000
+
+#define JOY_HWS_ZISJ1X 0x00002000
+#define JOY_HWS_ZISJ1Y 0x00004000
+#define JOY_HWS_ZISJ2X 0x00008000
+
+#define JOY_HWS_POVISJ1X 0x00010000
+#define JOY_HWS_POVISJ1Y 0x00020000
+#define JOY_HWS_POVISJ2X 0x00040000
+
+#define JOY_HWS_HASR 0x00080000
+#define JOY_HWS_RISJ1X 0x00100000
+#define JOY_HWS_RISJ1Y 0x00200000
+#define JOY_HWS_RISJ2Y 0x00400000
+
+#define JOY_HWS_HASU 0x00800000
+#define JOY_HWS_HASV 0x01000000
+
+#define JOY_US_HASRUDDER 0x00000001
+#define JOY_US_PRESENT 0x00000002
+#define JOY_US_ISOEM 0x00000004
+
+typedef struct joypos_tag {
+  DWORD dwX;
+  DWORD dwY;
+  DWORD dwZ;
+  DWORD dwR;
+  DWORD dwU;
+  DWORD dwV;
+} JOYPOS, *LPJOYPOS;
+
+typedef struct joyrange_tag {
+  JOYPOS jpMin;
+  JOYPOS jpMax;
+  JOYPOS jpCenter;
+} JOYRANGE, *LPJOYRANGE;
+
+typedef struct joyreguservalues_tag {
+  DWORD dwTimeOut;
+  JOYRANGE jrvRanges;
+  JOYPOS jpDeadZone;
+} JOYREGUSERVALUES, *LPJOYREGUSERVALUES;
+
+typedef struct joyreghwsettings_tag {
+  DWORD dwFlags;
+  DWORD dwNumButtons;
+} JOYREGHWSETTINGS, *LPJOYHWSETTINGS;
+
+typedef struct joyreghwvalues_tag {
+  JOYRANGE jrvHardware;
+  DWORD dwPOVValues[JOY_POV_NUMDIRS];
+  DWORD dwCalFlags;
+} JOYREGHWVALUES, *LPJOYREGHWVALUES;
+
+typedef struct joyreghwconfig_tag {
+  JOYREGHWSETTINGS hws;
+  DWORD dwUsageSettings;
+  JOYREGHWVALUES hwv;
+  DWORD dwType;
+  DWORD dwReserved;
+} JOYREGHWCONFIG, *LPJOYREGHWCONFIG;
+
+typedef struct joycalibrate_tag {
+  WORD wXbase;
+  WORD wXdelta;
+  WORD wYbase;
+  WORD wYdelta;
+  WORD wZbase;
+  WORD wZdelta;
+} JOYCALIBRATE, *LPJOYCALIBRATE;
+
+typedef DWORD (JOYDEVMSGPROC)(DWORD, UINT, LONG, LONG);
+typedef JOYDEVMSGPROC *LPJOYDEVMSGPROC;
+
+#define JDD_GETNUMDEVS (DRV_RESERVED + 0x0001)
+#define JDD_GETDEVCAPS (DRV_RESERVED + 0x0002)
+#define JDD_GETPOS (DRV_RESERVED + 0x0101)
+#define JDD_SETCALIBRATION (DRV_RESERVED + 0x0102)
+#define JDD_CONFIGCHANGED (DRV_RESERVED + 0x0103)
+#define JDD_GETPOSEX (DRV_RESERVED + 0x0104)
+
+#endif /* !MMNOJOYDEV */
+
+#ifndef MAKELRESULT
+#define MAKELRESULT(low, high) ((LRESULT)MAKELONG(low, high))
+#endif
+
+#ifndef MMNOMCIDEV
+
+#define MCI_OPEN_DRIVER 0x0801
+#define MCI_CLOSE_DRIVER 0x0802
+
+#define MAKEMCIRESOURCE(wRet, wRes) MAKELRESULT((wRet), (wRes))
+
+#define MCI_FALSE (MCI_STRING_OFFSET + 19)
+#define MCI_TRUE (MCI_STRING_OFFSET + 20)
+
+#define MCI_FORMAT_RETURN_BASE MCI_FORMAT_MILLISECONDS_S
+#define MCI_FORMAT_MILLISECONDS_S (MCI_STRING_OFFSET + 21)
+#define MCI_FORMAT_HMS_S (MCI_STRING_OFFSET + 22)
+#define MCI_FORMAT_MSF_S (MCI_STRING_OFFSET + 23)
+#define MCI_FORMAT_FRAMES_S (MCI_STRING_OFFSET + 24)
+#define MCI_FORMAT_SMPTE_24_S (MCI_STRING_OFFSET + 25)
+#define MCI_FORMAT_SMPTE_25_S (MCI_STRING_OFFSET + 26)
+#define MCI_FORMAT_SMPTE_30_S (MCI_STRING_OFFSET + 27)
+#define MCI_FORMAT_SMPTE_30DROP_S (MCI_STRING_OFFSET + 28)
+#define MCI_FORMAT_BYTES_S (MCI_STRING_OFFSET + 29)
+#define MCI_FORMAT_SAMPLES_S (MCI_STRING_OFFSET + 30)
+#define MCI_FORMAT_TMSF_S (MCI_STRING_OFFSET + 31)
+
+#define MCI_VD_FORMAT_TRACK_S (MCI_VD_OFFSET + 5)
+
+#define WAVE_FORMAT_PCM_S (MCI_WAVE_OFFSET + 0)
+#define WAVE_MAPPER_S (MCI_WAVE_OFFSET + 1)
+
+#define MCI_SEQ_MAPPER_S (MCI_SEQ_OFFSET + 5)
+#define MCI_SEQ_FILE_S (MCI_SEQ_OFFSET + 6)
+#define MCI_SEQ_MIDI_S (MCI_SEQ_OFFSET + 7)
+#define MCI_SEQ_SMPTE_S (MCI_SEQ_OFFSET + 8)
+#define MCI_SEQ_FORMAT_SONGPTR_S (MCI_SEQ_OFFSET + 9)
+#define MCI_SEQ_NONE_S (MCI_SEQ_OFFSET + 10)
+#define MIDIMAPPER_S (MCI_SEQ_OFFSET + 11)
+
+#define MCI_TABLE_NOT_PRESENT ((UINT)-1)
+
+typedef struct {
+  MCIDEVICEID wDeviceID;
+  LPCWSTR lpstrParams;
+  UINT wCustomCommandTable;
+  UINT wType;
+} MCI_OPEN_DRIVER_PARMS, *LPMCI_OPEN_DRIVER_PARMS;
+
+#define MCI_MAX_DEVICE_TYPE_LENGTH 80
+
+#define MCI_RESOURCE_RETURNED 0x00010000
+#define MCI_COLONIZED3_RETURN 0x00020000
+#define MCI_COLONIZED4_RETURN 0x00040000
+#define MCI_INTEGER_RETURNED 0x00080000
+#define MCI_RESOURCE_DRIVER 0x00100000
+
+#define MCI_NO_COMMAND_TABLE ((UINT)(-1))
+
+#define MCI_COMMAND_HEAD 0
+#define MCI_STRING 1
+#define MCI_INTEGER 2
+#define MCI_END_COMMAND 3
+#define MCI_RETURN 4
+#define MCI_FLAG 5
+#define MCI_END_COMMAND_LIST 6
+#define MCI_RECT 7
+#define MCI_CONSTANT 8
+#define MCI_END_CONSTANT 9
+#define MCI_HWND 10
+#define MCI_HPAL 11
+#define MCI_HDC 12
+#ifdef _WIN64
+#define MCI_INTEGER64 13
+#endif
+
+#endif /* !MMNOMCIDEV */
+
+#ifndef MMNOTASKDEV
+
+#define TASKERR_NOTASKSUPPORT 1
+#define TASKERR_OUTOFMEMORY 2
+
+typedef VOID (TASKCALLBACK) (DWORD_PTR dwInst);
+typedef TASKCALLBACK *LPTASKCALLBACK;
+
+UINT APIENTRY mmTaskCreate(LPTASKCALLBACK lpfn, HANDLE *lph, DWORD_PTR dwInst);
+VOID APIENTRY mmTaskBlock(DWORD h);
+WINBOOL APIENTRY mmTaskSignal(DWORD h);
+VOID APIENTRY mmTaskYield(VOID);
+DWORD APIENTRY mmGetCurrentTask(VOID);
+
+#endif /* MMNOTASKDEV */
+
+#define MMDDKINC
+
+#ifdef __cplusplus
+}
+#endif
+
+#include "poppack.h"
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+
+#endif /* _INC_MMDDK */
lib/libc/include/any-windows-any/mmdeviceapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/mmdeviceapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mmdeviceapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -66,6 +66,22 @@ interface IMMDeviceActivator;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IActivateAudioInterfaceAsyncOperation_FWD_DEFINED__
+#define __IActivateAudioInterfaceAsyncOperation_FWD_DEFINED__
+typedef interface IActivateAudioInterfaceAsyncOperation IActivateAudioInterfaceAsyncOperation;
+#ifdef __cplusplus
+interface IActivateAudioInterfaceAsyncOperation;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IActivateAudioInterfaceCompletionHandler_FWD_DEFINED__
+#define __IActivateAudioInterfaceCompletionHandler_FWD_DEFINED__
+typedef interface IActivateAudioInterfaceCompletionHandler IActivateAudioInterfaceCompletionHandler;
+#ifdef __cplusplus
+interface IActivateAudioInterfaceCompletionHandler;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __MMDeviceEnumerator_FWD_DEFINED__
 #define __MMDeviceEnumerator_FWD_DEFINED__
 #ifdef __cplusplus
@@ -90,6 +106,8 @@ extern "C" {
 #ifndef E_UNSUPPORTED_TYPE
 #define E_UNSUPPORTED_TYPE HRESULT_FROM_WIN32(ERROR_UNSUPPORTED_TYPE)
 #endif
+DEFINE_GUID(DEVINTERFACE_AUDIO_RENDER, 0xe6327cad,0xdcec,0x4949,0xae,0x8a,0x99,0x1e,0x97,0x6a,0x79,0xd2);
+DEFINE_GUID(DEVINTERFACE_AUDIO_CAPTURE, 0x2eef81be,0x33fa,0x4800,0x96,0x70,0x1c,0xd4,0x74,0x97,0x2c,0x3f);
 #define DEVICE_STATE_ACTIVE 0x1
 #define DEVICE_STATE_DISABLED 0x2
 #define DEVICE_STATE_NOTPRESENT 0x4
@@ -775,6 +793,168 @@ typedef struct _AudioExtensionParams {
     IMMDevice *pPnpInterface;
     IMMDevice *pPnpDevnode;
 } AudioExtensionParams;
+/*****************************************************************************
+ * IActivateAudioInterfaceAsyncOperation interface
+ */
+#ifndef __IActivateAudioInterfaceAsyncOperation_INTERFACE_DEFINED__
+#define __IActivateAudioInterfaceAsyncOperation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActivateAudioInterfaceAsyncOperation, 0x72a22d78, 0xcde4, 0x431d, 0xb8,0xcc, 0x84,0x3a,0x71,0x19,0x9b,0x6d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("72a22d78-cde4-431d-b8cc-843a71199b6d")
+IActivateAudioInterfaceAsyncOperation : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetActivateResult(
+        HRESULT *result,
+        IUnknown **iface) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActivateAudioInterfaceAsyncOperation, 0x72a22d78, 0xcde4, 0x431d, 0xb8,0xcc, 0x84,0x3a,0x71,0x19,0x9b,0x6d)
+#endif
+#else
+typedef struct IActivateAudioInterfaceAsyncOperationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActivateAudioInterfaceAsyncOperation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActivateAudioInterfaceAsyncOperation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActivateAudioInterfaceAsyncOperation *This);
+
+    /*** IActivateAudioInterfaceAsyncOperation methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetActivateResult)(
+        IActivateAudioInterfaceAsyncOperation *This,
+        HRESULT *result,
+        IUnknown **iface);
+
+    END_INTERFACE
+} IActivateAudioInterfaceAsyncOperationVtbl;
+
+interface IActivateAudioInterfaceAsyncOperation {
+    CONST_VTBL IActivateAudioInterfaceAsyncOperationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActivateAudioInterfaceAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActivateAudioInterfaceAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActivateAudioInterfaceAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
+/*** IActivateAudioInterfaceAsyncOperation methods ***/
+#define IActivateAudioInterfaceAsyncOperation_GetActivateResult(This,result,iface) (This)->lpVtbl->GetActivateResult(This,result,iface)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActivateAudioInterfaceAsyncOperation_QueryInterface(IActivateAudioInterfaceAsyncOperation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActivateAudioInterfaceAsyncOperation_AddRef(IActivateAudioInterfaceAsyncOperation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActivateAudioInterfaceAsyncOperation_Release(IActivateAudioInterfaceAsyncOperation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActivateAudioInterfaceAsyncOperation methods ***/
+static FORCEINLINE HRESULT IActivateAudioInterfaceAsyncOperation_GetActivateResult(IActivateAudioInterfaceAsyncOperation* This,HRESULT *result,IUnknown **iface) {
+    return This->lpVtbl->GetActivateResult(This,result,iface);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IActivateAudioInterfaceAsyncOperation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IActivateAudioInterfaceCompletionHandler interface
+ */
+#ifndef __IActivateAudioInterfaceCompletionHandler_INTERFACE_DEFINED__
+#define __IActivateAudioInterfaceCompletionHandler_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActivateAudioInterfaceCompletionHandler, 0x41d949ab, 0x9862, 0x444a, 0x80,0xf6, 0xc2,0x61,0x33,0x4d,0xa5,0xeb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("41d949ab-9862-444a-80f6-c261334da5eb")
+IActivateAudioInterfaceCompletionHandler : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ActivateCompleted(
+        IActivateAudioInterfaceAsyncOperation *op) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActivateAudioInterfaceCompletionHandler, 0x41d949ab, 0x9862, 0x444a, 0x80,0xf6, 0xc2,0x61,0x33,0x4d,0xa5,0xeb)
+#endif
+#else
+typedef struct IActivateAudioInterfaceCompletionHandlerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActivateAudioInterfaceCompletionHandler *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActivateAudioInterfaceCompletionHandler *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActivateAudioInterfaceCompletionHandler *This);
+
+    /*** IActivateAudioInterfaceCompletionHandler methods ***/
+    HRESULT (STDMETHODCALLTYPE *ActivateCompleted)(
+        IActivateAudioInterfaceCompletionHandler *This,
+        IActivateAudioInterfaceAsyncOperation *op);
+
+    END_INTERFACE
+} IActivateAudioInterfaceCompletionHandlerVtbl;
+
+interface IActivateAudioInterfaceCompletionHandler {
+    CONST_VTBL IActivateAudioInterfaceCompletionHandlerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActivateAudioInterfaceCompletionHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActivateAudioInterfaceCompletionHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActivateAudioInterfaceCompletionHandler_Release(This) (This)->lpVtbl->Release(This)
+/*** IActivateAudioInterfaceCompletionHandler methods ***/
+#define IActivateAudioInterfaceCompletionHandler_ActivateCompleted(This,op) (This)->lpVtbl->ActivateCompleted(This,op)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActivateAudioInterfaceCompletionHandler_QueryInterface(IActivateAudioInterfaceCompletionHandler* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActivateAudioInterfaceCompletionHandler_AddRef(IActivateAudioInterfaceCompletionHandler* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActivateAudioInterfaceCompletionHandler_Release(IActivateAudioInterfaceCompletionHandler* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActivateAudioInterfaceCompletionHandler methods ***/
+static FORCEINLINE HRESULT IActivateAudioInterfaceCompletionHandler_ActivateCompleted(IActivateAudioInterfaceCompletionHandler* This,IActivateAudioInterfaceAsyncOperation *op) {
+    return This->lpVtbl->ActivateCompleted(This,op);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IActivateAudioInterfaceCompletionHandler_INTERFACE_DEFINED__ */
+
+HRESULT WINAPI ActivateAudioInterfaceAsync(
+        const WCHAR *path, REFIID riid, PROPVARIANT *params,
+        IActivateAudioInterfaceCompletionHandler *done_handler,
+        IActivateAudioInterfaceAsyncOperation **op);
+#ifndef __MMDeviceAPILib_LIBRARY_DEFINED__
+#define __MMDeviceAPILib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_MMDeviceAPILib, 0x2fdaafa3, 0x7523, 0x4f66, 0x99,0x57, 0x9d,0x5e,0x7f,0xe6,0x98,0xf6);
 
@@ -791,6 +971,7 @@ __CRT_UUID_DECL(MMDeviceEnumerator, 0xbcde0395, 0xe52f, 0x467c, 0x8e,0x3d, 0xc4,
 #endif
 #endif
 
+#endif /* __MMDeviceAPILib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 
lib/libc/include/any-windows-any/mmstream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/mmstream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mmstream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mmstream.idl
@@ -1,184 +0,0 @@
-/*
- * Copyright 2004 Christian Costa
- *
- * 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 "unknwn.idl";
-
-cpp_quote("#define MS_ERROR_CODE(x)                  MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)")
-cpp_quote("#define MS_SUCCESS_CODE(x)                MAKE_HRESULT(0, FACILITY_ITF, x)")
-cpp_quote("#define MS_S_PENDING                      MS_SUCCESS_CODE(1)")
-cpp_quote("#define MS_S_NOUPDATE                     MS_SUCCESS_CODE(2)")
-cpp_quote("#define MS_S_ENDOFSTREAM                  MS_SUCCESS_CODE(3)")
-
-cpp_quote("#define MS_E_SAMPLEALLOC                  MS_ERROR_CODE(1)")
-cpp_quote("#define MS_E_PURPOSEID                    MS_ERROR_CODE(2)")
-cpp_quote("#define MS_E_NOSTREAM                     MS_ERROR_CODE(3)")
-cpp_quote("#define MS_E_NOSEEKING                    MS_ERROR_CODE(4)")
-cpp_quote("#define MS_E_INCOMPATIBLE                 MS_ERROR_CODE(5)")
-cpp_quote("#define MS_E_BUSY                         MS_ERROR_CODE(6)")
-cpp_quote("#define MS_E_NOTINIT                      MS_ERROR_CODE(7)")
-cpp_quote("#define MS_E_SOURCEALREADYDEFINED         MS_ERROR_CODE(8)")
-cpp_quote("#define MS_E_INVALIDSTREAMTYPE            MS_ERROR_CODE(9)")
-cpp_quote("#define MS_E_NOTRUNNING                   MS_ERROR_CODE(10)")
-
-cpp_quote("DEFINE_GUID(MSPID_PrimaryVideo,  0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
-cpp_quote("DEFINE_GUID(MSPID_PrimaryAudio,  0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);")
-
-cpp_quote("#if 0")
-typedef void* PAPCFUNC;
-cpp_quote("#endif")
-
-typedef LONGLONG STREAM_TIME;
-
-typedef GUID MSPID;
-typedef REFGUID REFMSPID;
-
-typedef enum {
-	STREAMTYPE_READ         = 0,
-	STREAMTYPE_WRITE        = 1,
-	STREAMTYPE_TRANSFORM    = 2
-} STREAM_TYPE;
-
-typedef enum {
-	STREAMSTATE_STOP        = 0,
-	STREAMSTATE_RUN         = 1
-} STREAM_STATE;
-
-
-typedef enum {
-	COMPSTAT_NOUPDATEOK                             = 0x00000001,
-	COMPSTAT_WAIT                                   = 0x00000002,
-	COMPSTAT_ABORT                                  = 0x00000004
-} COMPLETION_STATUS_FLAGS;
-
-enum {
-	MMSSF_HASCLOCK                                  = 0x00000001,
-	MMSSF_SUPPORTSEEK                               = 0x00000002,
-	MMSSF_ASYNCHRONOUS                              = 0x00000004
-};
-
-enum {
-	SSUPDATE_ASYNC                                  = 0x00000001,
-	SSUPDATE_CONTINUOUS                             = 0x00000002
-};
-
-interface IMultiMediaStream;
-interface IMediaStream;
-interface IStreamSample;
-
-
-[
-object,
-local,
-uuid(B502D1BC-9A57-11d0-8FDE-00C04FD9189D),
-pointer_default(unique)
-]
-interface IMultiMediaStream : IUnknown {
-
-	HRESULT GetInformation(
-		[out, optional] DWORD *pdwFlags,
-		[out, optional] STREAM_TYPE *pStreamType);
-
-	HRESULT GetMediaStream(
-		[in] REFMSPID idPurpose,
-		[out] IMediaStream **ppMediaStream);
-
-	HRESULT EnumMediaStreams(
-		[in] long Index,
-		[out] IMediaStream **ppMediaStream);
-
-	HRESULT GetState(
-		[out] STREAM_STATE *pCurrentState);
-
-	HRESULT SetState(
-		[in] STREAM_STATE NewState);
-
-	HRESULT GetTime(
-		[out] STREAM_TIME *pCurrentTime);
-
-	HRESULT GetDuration(
-		[out] STREAM_TIME *pDuration);
-
-	HRESULT Seek(
-		[in] STREAM_TIME SeekTime);
-
-	HRESULT GetEndOfStreamEventHandle(
-		[out] HANDLE *phEOS);
-}
-
-
-[
-object,
-uuid(B502D1BD-9A57-11d0-8FDE-00C04FD9189D),
-pointer_default(unique)
-]
-interface IMediaStream : IUnknown {
-	
-	HRESULT GetMultiMediaStream(
-		[out] IMultiMediaStream **ppMultiMediaStream);
-
-	HRESULT GetInformation(
-		[out, optional] MSPID *pPurposeId,
-		[out, optional] STREAM_TYPE *pType);
-
-	HRESULT SetSameFormat(
-		[in] IMediaStream *pStreamThatHasDesiredFormat,
-		[in] DWORD dwFlags);
-
-	HRESULT AllocateSample(
-		[in]  DWORD dwFlags,
-		[out] IStreamSample **ppSample);
-
-	HRESULT CreateSharedSample(
-		[in]  IStreamSample *pExistingSample,
-		[in]  DWORD dwFlags,
-		[out] IStreamSample **ppNewSample);
-
-	HRESULT SendEndOfStream(DWORD dwFlags);
-}
-
-
-[
-object,
-local,
-uuid(B502D1BE-9A57-11d0-8FDE-00C04FD9189D),
-pointer_default(unique)
-]
-interface IStreamSample : IUnknown {
-	
-	HRESULT GetMediaStream(
-		[in] IMediaStream **ppMediaStream);
-
-	HRESULT GetSampleTimes(
-		[out, optional] STREAM_TIME * pStartTime,
-		[out, optional] STREAM_TIME * pEndTime,
-		[out, optional] STREAM_TIME * pCurrentTime);
-
-	HRESULT SetSampleTimes(
-		[in, optional] const STREAM_TIME *pStartTime,
-		[in, optional] const STREAM_TIME *pEndTime);
-
-	HRESULT Update(
-		[in] DWORD dwFlags,
-		[in, optional] HANDLE hEvent,
-		[in, optional] PAPCFUNC pfnAPC,
-		[in, optional] DWORD dwAPCData);
-
-	HRESULT CompletionStatus(
-		[in] DWORD dwFlags,
-		[in, optional] DWORD dwMilliseconds);
-}
lib/libc/include/any-windows-any/mscat.h
@@ -28,6 +28,15 @@ typedef HANDLE HCATINFO;
 extern "C" {
 #endif
 
+#define CRYPTCAT_ATTR_NAMEASCII             0x00000001
+#define CRYPTCAT_ATTR_NAMEOBJID             0x00000002
+#define CRYPTCAT_ATTR_DATAASCII             0x00010000
+#define CRYPTCAT_ATTR_DATAOBJID             0x00020000
+#define CRYPTCAT_ATTR_DATAREPLACE           0x00040000
+#define CRYPTCAT_ATTR_NO_AUTO_COMPAT_ENTRY  0x01000000
+#define CRYPTCAT_ATTR_AUTHENTICATED         0x10000000
+#define CRYPTCAT_ATTR_UNAUTHENTICATED       0x20000000
+
 #define CRYPTCAT_OPEN_CREATENEW             0x00000001
 #define CRYPTCAT_OPEN_ALWAYS                0x00000002
 #define CRYPTCAT_OPEN_EXISTING              0x00000004
@@ -54,6 +63,9 @@ extern "C" {
 #define CRYPTCAT_E_CDF_ATTR_TOOFEWVALUES    0x00020002
 #define CRYPTCAT_E_CDF_ATTR_TYPECOMBO       0x00020004
 
+#define CRYPTCAT_VERSION_1  0x100
+#define CRYPTCAT_VERSION_2  0x200
+
 #include <pshpack8.h>
 
 typedef struct CRYPTCATATTRIBUTE_
@@ -128,6 +140,10 @@ CRYPTCATATTRIBUTE * WINAPI CryptCATGetAttrInfo(HANDLE, CRYPTCATMEMBER *, LPWSTR)
 CRYPTCATATTRIBUTE * WINAPI CryptCATGetCatAttrInfo(HANDLE, LPWSTR);
 CRYPTCATMEMBER    * WINAPI CryptCATGetMemberInfo(HANDLE, LPWSTR);
 HANDLE    WINAPI CryptCATOpen(LPWSTR,DWORD,HCRYPTPROV,DWORD,DWORD);
+WINBOOL   WINAPI CryptCATPersistStore(HANDLE catalog);
+CRYPTCATATTRIBUTE * WINAPI CryptCATPutAttrInfo(HANDLE catalog, CRYPTCATMEMBER *member, WCHAR *name, DWORD flags, DWORD size, BYTE *data);
+CRYPTCATATTRIBUTE * WINAPI CryptCATPutCatAttrInfo(HANDLE catalog, WCHAR *name, DWORD flags, DWORD size, BYTE *data);
+CRYPTCATMEMBER    * WINAPI CryptCATPutMemberInfo(HANDLE catalog, WCHAR *filename, WCHAR *member, GUID *subject, DWORD version, DWORD size, BYTE *data);
 
 #ifdef __cplusplus
 }
lib/libc/include/any-windows-any/mscoree.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/mscoree.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mscoree.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msctf.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/msctf.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/msctf.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mshtmhst.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/mshtmhst.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mshtmhst.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mshtml.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.19 from include/mshtml.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/mshtml.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -10196,6 +10196,8 @@ static FORCEINLINE HRESULT IIE80DispatchEx_GetNameSpaceParent(IIE80DispatchEx* T
 
 #endif  /* __IIE80DispatchEx_INTERFACE_DEFINED__ */
 
+#ifndef __MSHTML_LIBRARY_DEFINED__
+#define __MSHTML_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_MSHTML, 0x3050f1c5, 0x98b5, 0x11cf, 0xbb,0x82, 0x00,0xaa,0x00,0xbd,0xce,0x0b);
 
@@ -179856,6 +179858,7 @@ static FORCEINLINE HRESULT ITrackingProtection_GetEnabled(ITrackingProtection* T
 
 #endif  /* __ITrackingProtection_INTERFACE_DEFINED__ */
 
+#endif /* __MSHTML_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/msinkaut.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/msinkaut.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/msinkaut.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msinkaut_i.c
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 1.6 from include/msinkaut.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/msinkaut.idl - Do not edit ***/
 
 #include <rpc.h>
 #include <rpcndr.h>
@@ -16,10 +16,15 @@
 #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
     DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)
 
+#elif defined(__cplusplus)
+
+#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
+    EXTERN_C const type DECLSPEC_SELECTANY name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+
 #else
 
 #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \
-    const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
+    const type DECLSPEC_SELECTANY name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}
 
 #endif
 
lib/libc/include/any-windows-any/msopc.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/msopc.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/msopc.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1064,6 +1064,8 @@ static FORCEINLINE HRESULT IOpcPartUri_IsRelationshipsPartUri(IOpcPartUri* This,
 #define OPC_E_ZIP_FILE_HEADER_TOO_LARGE MAKE_HRESULT(1, FACILITY_OPC, 0x100e)
 #define OPC_E_ZIP_MISSING_END_OF_CENTRAL_DIRECTORY MAKE_HRESULT(1, FACILITY_OPC, 0x100f)
 #define OPC_E_ZIP_REQUIRES_64_BIT MAKE_HRESULT(1, FACILITY_OPC, 0x1010)
+#ifndef __MSOPC_LIBRARY_DEFINED__
+#define __MSOPC_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_MSOPC, 0x3d8d6062, 0x2749, 0x442b, 0x9e,0x32, 0xe4,0x0e,0xf8,0x01,0xa7,0x66);
 
@@ -1307,33 +1309,33 @@ interface IOpcUri;
 #endif /* __cplusplus */
 #endif
 
-typedef enum __WIDL_msopc_generated_name_00000016 {
+typedef enum __WIDL_msopc_generated_name_00000025 {
     OPC_CANONICALIZATION_NONE = 0,
     OPC_CANONICALIZATION_C14N = 1,
     OPC_CANONICALIZATION_C14N_WITH_COMMENTS = 2
 } OPC_CANONICALIZATION_METHOD;
-typedef enum __WIDL_msopc_generated_name_00000017 {
+typedef enum __WIDL_msopc_generated_name_00000026 {
     OPC_CERTIFICATE_IN_CERTIFICATE_PART = 0,
     OPC_CERTIFICATE_IN_SIGNATURE_PART = 1,
     OPC_CERTIFICATE_NOT_EMBEDDED = 2
 } OPC_CERTIFICATE_EMBEDDING_OPTION;
-typedef enum __WIDL_msopc_generated_name_00000018 {
+typedef enum __WIDL_msopc_generated_name_00000027 {
     OPC_COMPRESSION_NONE = -1,
     OPC_COMPRESSION_NORMAL = 0,
     OPC_COMPRESSION_MAXIMUM = 1,
     OPC_COMPRESSION_FAST = 2,
     OPC_COMPRESSION_SUPERFAST = 3
 } OPC_COMPRESSION_OPTIONS;
-typedef enum __WIDL_msopc_generated_name_00000019 {
+typedef enum __WIDL_msopc_generated_name_00000028 {
     OPC_READ_DEFAULT = 0x0,
     OPC_VALIDATE_ON_LOAD = 0x1,
     OPC_CACHE_ON_ACCESS = 0x2
 } OPC_READ_FLAGS;
-typedef enum __WIDL_msopc_generated_name_0000001A {
+typedef enum __WIDL_msopc_generated_name_00000029 {
     OPC_RELATIONSHIP_SELECT_BY_ID = 0,
     OPC_RELATIONSHIP_SELECT_BY_TYPE = 1
 } OPC_RELATIONSHIP_SELECTOR;
-typedef enum __WIDL_msopc_generated_name_0000001B {
+typedef enum __WIDL_msopc_generated_name_0000002A {
     OPC_RELATIONSHIP_SIGN_USING_SELECTORS = 0,
     OPC_RELATIONSHIP_SIGN_PART = 1
 } OPC_RELATIONSHIPS_SIGNING_OPTION;
@@ -1341,7 +1343,7 @@ typedef enum OPC_SIGNATURE_VALIDATION_RESULT {
     OPC_SIGNATURE_VALID = 0,
     OPC_SIGNATURE_INVALID = -1
 } OPC_SIGNATURE_VALIDATION_RESULT;
-typedef enum __WIDL_msopc_generated_name_0000001C {
+typedef enum __WIDL_msopc_generated_name_0000002B {
     OPC_SIGNATURE_TIME_FORMAT_MILLISECONDS = 0,
     OPC_SIGNATURE_TIME_FORMAT_SECONDS = 1,
     OPC_SIGNATURE_TIME_FORMAT_MINUTES = 2,
@@ -1349,15 +1351,15 @@ typedef enum __WIDL_msopc_generated_name_0000001C {
     OPC_SIGNATURE_TIME_FORMAT_MONTHS = 4,
     OPC_SIGNATURE_TIME_FORMAT_YEARS = 5
 } OPC_SIGNATURE_TIME_FORMAT;
-typedef enum __WIDL_msopc_generated_name_0000001D {
+typedef enum __WIDL_msopc_generated_name_0000002C {
     OPC_STREAM_IO_READ = 1,
     OPC_STREAM_IO_WRITE = 2
 } OPC_STREAM_IO_MODE;
-typedef enum __WIDL_msopc_generated_name_0000001E {
+typedef enum __WIDL_msopc_generated_name_0000002D {
     OPC_URI_TARGET_MODE_INTERNAL = 0,
     OPC_URI_TARGET_MODE_EXTERNAL = 1
 } OPC_URI_TARGET_MODE;
-typedef enum __WIDL_msopc_generated_name_0000001F {
+typedef enum __WIDL_msopc_generated_name_0000002E {
     OPC_WRITE_DEFAULT = 0x0,
     OPC_WRITE_FORCE_ZIP32 = 0x1
 } OPC_WRITE_FLAGS;
@@ -5004,6 +5006,7 @@ __CRT_UUID_DECL(OpcFactory, 0x6b2d6ba0, 0x9f3e, 0x4f27, 0x92,0x0b, 0x31,0x3c,0xc
 #endif
 #endif
 
+#endif /* __MSOPC_LIBRARY_DEFINED__ */
 #endif
 #endif
 /* Begin additional prototypes for all interfaces */
lib/libc/include/any-windows-any/msxml.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/msxml.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/msxml.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napcertrelyingparty.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/napcertrelyingparty.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/napcertrelyingparty.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napcommon.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/napcommon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/napcommon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napenforcementclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/napenforcementclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/napenforcementclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napmanagement.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/napmanagement.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/napmanagement.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napprotocol.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/napprotocol.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/napprotocol.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napservermanagement.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/napservermanagement.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/napservermanagement.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napsystemhealthagent.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/napsystemhealthagent.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/napsystemhealthagent.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/napsystemhealthvalidator.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/napsystemhealthvalidator.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/napsystemhealthvalidator.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/naptypes.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/naptypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/naptypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ncrypt.h
@@ -396,6 +396,10 @@ typedef struct __NCRYPT_UI_POLICY {
 #if NTDDI_VERSION >= 0x06020000
   SECURITY_STATUS WINAPI NCryptKeyDerivation (NCRYPT_KEY_HANDLE hKey, NCryptBufferDesc *pParameterList, PUCHAR pbDerivedKey, DWORD cbDerivedKey, DWORD *pcbResult, ULONG dwFlags);
 #endif
+#if NTDDI_VERSION >= NTDDI_WINTHRESHOLD
+SECURITY_STATUS WINAPI NCryptCreateClaim (NCRYPT_KEY_HANDLE hSubjectKey, NCRYPT_KEY_HANDLE hAuthorityKey, DWORD dwClaimType, NCryptBufferDesc *pParameterList, PBYTE pbClaimBlob, DWORD cbClaimBlob, DWORD *pcbResult, DWORD dwFlags);
+SECURITY_STATUS WINAPI NCryptVerifyClaim (NCRYPT_KEY_HANDLE hSubjectKey, NCRYPT_KEY_HANDLE hAuthorityKey, DWORD dwClaimType, NCryptBufferDesc *pParameterList, PBYTE pbClaimBlob, DWORD cbClaimBlob, NCryptBufferDesc *pOutput, DWORD dwFlags);
+#endif
 #endif
 
 #ifdef __cplusplus
lib/libc/include/any-windows-any/netcfgn.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from netcfgn.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/netcfgn.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/netcfgx.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from netcfgx.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/netcfgx.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/netfw.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/netfw.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/netfw.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -5183,6 +5183,8 @@ static FORCEINLINE HRESULT INetFwProducts_get__NewEnum(INetFwProducts* This,IUnk
 
 #endif  /* __INetFwProducts_INTERFACE_DEFINED__ */
 
+#ifndef __NetFwPublicTypeLib_LIBRARY_DEFINED__
+#define __NetFwPublicTypeLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_NetFwPublicTypeLib, 0xdb4f3345, 0x3ef8, 0x45ed, 0xb9,0x76, 0x25,0xa6,0xd3,0xb8,0x1b,0x71);
 
@@ -5413,6 +5415,7 @@ __CRT_UUID_DECL(NetFwProducts, 0xcc19079b, 0x8272, 0x4d73, 0xbb,0x70, 0xcd,0xb5,
 #endif
 #endif
 
+#endif /* __NetFwPublicTypeLib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
lib/libc/include/any-windows-any/netlistmgr.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/netlistmgr.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/netlistmgr.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -107,6 +107,14 @@ interface INetwork;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __INetworkEvents_FWD_DEFINED__
+#define __INetworkEvents_FWD_DEFINED__
+typedef interface INetworkEvents INetworkEvents;
+#ifdef __cplusplus
+interface INetworkEvents;
+#endif /* __cplusplus */
+#endif
+
 /* Headers for imported files */
 
 #include <oaidl.h>
@@ -148,6 +156,14 @@ interface INetworkConnection;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __INetworkConnectionEvents_FWD_DEFINED__
+#define __INetworkConnectionEvents_FWD_DEFINED__
+typedef interface INetworkConnectionEvents INetworkConnectionEvents;
+#ifdef __cplusplus
+interface INetworkConnectionEvents;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __INetworkCostManager_FWD_DEFINED__
 #define __INetworkCostManager_FWD_DEFINED__
 typedef interface INetworkCostManager INetworkCostManager;
@@ -156,6 +172,14 @@ interface INetworkCostManager;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __INetworkEvents_FWD_DEFINED__
+#define __INetworkEvents_FWD_DEFINED__
+typedef interface INetworkEvents INetworkEvents;
+#ifdef __cplusplus
+interface INetworkEvents;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __INetworkListManager_FWD_DEFINED__
 #define __INetworkListManager_FWD_DEFINED__
 typedef interface INetworkListManager INetworkListManager;
@@ -172,6 +196,16 @@ interface INetworkListManagerEvents;
 #endif /* __cplusplus */
 #endif
 
+typedef enum NLM_NETWORK_CLASS {
+    NLM_NETWORK_IDENTIFYING = 0x1,
+    NLM_NETWORK_IDENTIFIED = 0x2,
+    NLM_NETWORK_UNIDENTIFIED = 0x3
+} NLM_NETWORK_CLASS;
+typedef enum NLM_INTERNET_CONNECTIVITY {
+    NLM_INTERNET_CONNECTIVITY_WEBHIJACK = 0x1,
+    NLM_INTERNET_CONNECTIVITY_PROXIED = 0x2,
+    NLM_INTERNET_CONNECTIVITY_CORPORATE = 0x4
+} NLM_INTERNET_CONNECTIVITY;
 typedef enum NLM_CONNECTIVITY {
     NLM_CONNECTIVITY_DISCONNECTED = 0x0,
     NLM_CONNECTIVITY_IPV4_NOTRAFFIC = 0x1,
@@ -1692,6 +1726,127 @@ static FORCEINLINE HRESULT INetwork_SetCategory(INetwork* This,NLM_NETWORK_CATEG
 
 #endif  /* __INetwork_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * INetworkEvents interface
+ */
+#ifndef __INetworkEvents_INTERFACE_DEFINED__
+#define __INetworkEvents_INTERFACE_DEFINED__
+
+typedef enum NLM_NETWORK_PROPERTY_CHANGE {
+    NLM_NETWORK_PROPERTY_CHANGE_CONNECTION = 0x1,
+    NLM_NETWORK_PROPERTY_CHANGE_DESCRIPTION = 0x2,
+    NLM_NETWORK_PROPERTY_CHANGE_NAME = 0x4,
+    NLM_NETWORK_PROPERTY_CHANGE_ICON = 0x8,
+    NLM_NETWORK_PROPERTY_CHANGE_CATEGORY_VALUE = 0x10
+} NLM_NETWORK_PROPERTY_CHANGE;
+DEFINE_GUID(IID_INetworkEvents, 0xdcb00004, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dcb00004-570f-4a9b-8d69-199fdba5723b")
+INetworkEvents : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE NetworkAdded(
+        GUID networkId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NetworkDeleted(
+        GUID networkId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NetworkConnectivityChanged(
+        GUID networkId,
+        NLM_CONNECTIVITY newConnectivity) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE NetworkPropertyChanged(
+        GUID networkId,
+        NLM_NETWORK_PROPERTY_CHANGE flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(INetworkEvents, 0xdcb00004, 0x570f, 0x4a9b, 0x8d,0x69, 0x19,0x9f,0xdb,0xa5,0x72,0x3b)
+#endif
+#else
+typedef struct INetworkEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        INetworkEvents *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        INetworkEvents *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        INetworkEvents *This);
+
+    /*** INetworkEvents methods ***/
+    HRESULT (STDMETHODCALLTYPE *NetworkAdded)(
+        INetworkEvents *This,
+        GUID networkId);
+
+    HRESULT (STDMETHODCALLTYPE *NetworkDeleted)(
+        INetworkEvents *This,
+        GUID networkId);
+
+    HRESULT (STDMETHODCALLTYPE *NetworkConnectivityChanged)(
+        INetworkEvents *This,
+        GUID networkId,
+        NLM_CONNECTIVITY newConnectivity);
+
+    HRESULT (STDMETHODCALLTYPE *NetworkPropertyChanged)(
+        INetworkEvents *This,
+        GUID networkId,
+        NLM_NETWORK_PROPERTY_CHANGE flags);
+
+    END_INTERFACE
+} INetworkEventsVtbl;
+
+interface INetworkEvents {
+    CONST_VTBL INetworkEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define INetworkEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define INetworkEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define INetworkEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** INetworkEvents methods ***/
+#define INetworkEvents_NetworkAdded(This,networkId) (This)->lpVtbl->NetworkAdded(This,networkId)
+#define INetworkEvents_NetworkDeleted(This,networkId) (This)->lpVtbl->NetworkDeleted(This,networkId)
+#define INetworkEvents_NetworkConnectivityChanged(This,networkId,newConnectivity) (This)->lpVtbl->NetworkConnectivityChanged(This,networkId,newConnectivity)
+#define INetworkEvents_NetworkPropertyChanged(This,networkId,flags) (This)->lpVtbl->NetworkPropertyChanged(This,networkId,flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT INetworkEvents_QueryInterface(INetworkEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG INetworkEvents_AddRef(INetworkEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG INetworkEvents_Release(INetworkEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** INetworkEvents methods ***/
+static FORCEINLINE HRESULT INetworkEvents_NetworkAdded(INetworkEvents* This,GUID networkId) {
+    return This->lpVtbl->NetworkAdded(This,networkId);
+}
+static FORCEINLINE HRESULT INetworkEvents_NetworkDeleted(INetworkEvents* This,GUID networkId) {
+    return This->lpVtbl->NetworkDeleted(This,networkId);
+}
+static FORCEINLINE HRESULT INetworkEvents_NetworkConnectivityChanged(INetworkEvents* This,GUID networkId,NLM_CONNECTIVITY newConnectivity) {
+    return This->lpVtbl->NetworkConnectivityChanged(This,networkId,newConnectivity);
+}
+static FORCEINLINE HRESULT INetworkEvents_NetworkPropertyChanged(INetworkEvents* This,GUID networkId,NLM_NETWORK_PROPERTY_CHANGE flags) {
+    return This->lpVtbl->NetworkPropertyChanged(This,networkId,flags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __INetworkEvents_INTERFACE_DEFINED__ */
+
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
lib/libc/include/any-windows-any/ntddstor.h
@@ -59,9 +59,21 @@ DEFINE_GUID(GUID_DEVINTERFACE_CDCHANGER,
 DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,
   0x2accfe60, 0xc130, 0x11d2, 0xb0, 0x82, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b);
 
+DEFINE_GUID(GUID_DEVINTERFACE_VMLUN,
+  0x6f416619, 0x9f29, 0x42a5, 0xb2, 0x0b, 0x37, 0xe2, 0x19, 0xca, 0x02, 0xb0);
+
+DEFINE_GUID(GUID_DEVINTERFACE_SES,
+  0x1790c9ec, 0x47d5, 0x4df3, 0xb5, 0xaf, 0x9a, 0xdf, 0x3c, 0xf2, 0x3e, 0x48);
+
 DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,
   0x7f108a28, 0x9833, 0x4b3b, 0xb7, 0x80, 0x2c, 0x6b, 0x5f, 0xa5, 0xc0, 0x62);
 
+DEFINE_GUID(GUID_DEVICEDUMP_STORAGE_DEVICE,
+  0xd8e2592f, 0x1aab, 0x4d56, 0xa7, 0x46, 0x1f, 0x75, 0x85, 0xdf, 0x40, 0xf4);
+
+DEFINE_GUID(GUID_DEVICEDUMP_DRIVER_STORAGE_PORT,
+  0xda82441d, 0x7142, 0x4bc1, 0xb8, 0x44, 0x08, 0x07, 0xc5, 0xa4, 0xb6, 0x7f);
+
 #define WDI_STORAGE_PREDICT_FAILURE_DPS_GUID \
   {0xe9f2d03a, 0x747c, 0x41c2, {0xbb, 0x9a, 0x02, 0xc6, 0x2b, 0x6d, 0x5f, 0xcb}};
 
@@ -80,6 +92,19 @@ DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,
 
 #endif /* defined(DEFINE_GUID) */
 
+#ifdef DEFINE_DEVPROPKEY
+
+DEFINE_DEVPROPKEY(DEVPKEY_Storage_Portable,
+  0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 2);
+
+DEFINE_DEVPROPKEY(DEVPKEY_Storage_Removable_Media,
+  0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 3);
+
+DEFINE_DEVPROPKEY(DEVPKEY_Storage_System_Critical,
+  0x4d1ebee8, 0x803, 0x4774, 0x98, 0x42, 0xb7, 0x7d, 0xb5, 0x2, 0x65, 0xe9, 4);
+
+#endif /* #ifdef DEFINE_DEVPROPKEY */
+
 #ifndef _WINIOCTL_
 
 #define IOCTL_STORAGE_BASE                FILE_DEVICE_MASS_STORAGE
@@ -164,12 +189,27 @@ DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,
 #define IOCTL_STORAGE_READ_CAPACITY \
   CTL_CODE(IOCTL_STORAGE_BASE, 0x0450, METHOD_BUFFERED, FILE_READ_ACCESS)
 
+#define IOCTL_STORAGE_GET_DEVICE_TELEMETRY \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0470, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_DEVICE_TELEMETRY_NOTIFY \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0471, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_DEVICE_TELEMETRY_QUERY_CAPS \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0472, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_GET_DEVICE_TELEMETRY_RAW \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0473, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
 #define IOCTL_STORAGE_QUERY_PROPERTY \
   CTL_CODE(IOCTL_STORAGE_BASE, 0x0500, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
 #define IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES \
   CTL_CODE(IOCTL_STORAGE_BASE, 0x0501, METHOD_BUFFERED, FILE_WRITE_ACCESS)
 
+#define IOCTL_STORAGE_GET_LB_PROVISIONING_MAP_RESOURCES \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0502, METHOD_BUFFERED, FILE_READ_ACCESS)
+
 #define IOCTL_STORAGE_GET_BC_PROPERTIES \
   CTL_CODE(IOCTL_STORAGE_BASE, 0x0600, METHOD_BUFFERED, FILE_READ_ACCESS)
 
@@ -182,6 +222,27 @@ DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,
 #define IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT \
   CTL_CODE(IOCTL_STORAGE_BASE, 0x0620, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
+#define IOCTL_STORAGE_START_DATA_INTEGRITY_CHECK \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0621, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_STOP_DATA_INTEGRITY_CHECK \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0622, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+
+#define IOCTL_STORAGE_ENABLE_IDLE_POWER \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0720, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_GET_IDLE_POWERUP_REASON \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0721, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_POWER_ACTIVE \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0722, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_POWER_IDLE \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0723, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
+#define IOCTL_STORAGE_EVENT_NOTIFICATION \
+  CTL_CODE(IOCTL_STORAGE_BASE, 0x0724, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
 #define RECOVERED_WRITES_VALID         0x00000001
 #define UNRECOVERED_WRITES_VALID       0x00000002
 #define RECOVERED_READS_VALID          0x00000004
@@ -211,7 +272,19 @@ DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,
 #define DeviceDsmAction_Trim            1
 #define DeviceDsmAction_Notification   (2 | DeviceDsmActionFlag_NonDestructive)
 
-#define DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE    0x00000001
+#define DeviceDsmAction_OffloadRead    (3 | DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_OffloadWrite    4
+#define DeviceDsmAction_Allocation     (5 | DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_Repair         (6 | DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_Scrub          (7 | DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_DrtQuery       (8 | DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_DrtClear       (9 | DeviceDsmActionFlag_NonDestructive)
+#define DeviceDsmAction_DrtDisable    (10 | DeviceDsmActionFlag_NonDestructive)
+
+#define DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE             0x00000001
+#define DEVICE_DSM_FLAG_SCRUB_SKIP_IN_SYNC                0x10000000
+#define DEVICE_DSM_FLAG_ALLOCATION_CONSOLIDATEABLE_ONLY   0x40000000
+#define DEVICE_DSM_FLAG_TRIM_NOT_FS_ALLOCATED             0x80000000
 
 #define DEVICE_DSM_NOTIFY_FLAG_BEGIN             0x00000001
 #define DEVICE_DSM_NOTIFY_FLAG_END               0x00000002
@@ -359,10 +432,14 @@ typedef enum _STORAGE_BUS_TYPE {
   BusTypeMmc,
   BusTypeVirtual,
   BusTypeFileBackedVirtual,
+  BusTypeSpaces,
   BusTypeMax,
   BusTypeMaxReserved = 0x7F
 } STORAGE_BUS_TYPE, *PSTORAGE_BUS_TYPE;
 
+#define SupportsDeviceSharing(type) (type == BusTypeScsi || type == BusTypeFibre ||type == BusTypeiScsi || \
+                                     type == BusTypeSas || type == BusTypeSpaces)
+
 typedef struct _DEVICE_MEDIA_INFO {
   union {
     struct {
@@ -426,7 +503,12 @@ typedef enum _STORAGE_PROPERTY_ID {
   StorageAccessAlignmentProperty,
   StorageDeviceSeekPenaltyProperty,
   StorageDeviceTrimProperty,
-  StorageDeviceWriteAggregationProperty
+  StorageDeviceWriteAggregationProperty,
+  StorageDeviceDeviceTelemetryProperty,
+  StorageDeviceLBProvisioningProperty,
+  StorageDevicePowerProperty,
+  StorageDeviceCopyOffloadProperty,
+  StorageDeviceResiliencyProperty
 } STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;
 
 typedef struct _STORAGE_PROPERTY_QUERY {
@@ -473,6 +555,10 @@ typedef struct _STORAGE_ADAPTER_DESCRIPTOR {
 #endif
   USHORT BusMajorVersion;
   USHORT BusMinorVersion;
+#if (NTDDI_VERSION >= NTDDI_WIN8)
+  UCHAR SrbType;
+  UCHAR AddressType;
+#endif
 } STORAGE_ADAPTER_DESCRIPTOR, *PSTORAGE_ADAPTER_DESCRIPTOR;
 
 typedef struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {
@@ -488,7 +574,12 @@ typedef struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {
 typedef enum _STORAGE_PORT_CODE_SET {
   StoragePortCodeSetReserved = 0,
   StoragePortCodeSetStorport = 1,
-  StoragePortCodeSetSCSIport = 2
+  StoragePortCodeSetSCSIport = 2,
+  StoragePortCodeSetSpaceport = 3,
+  StoragePortCodeSetATAport = 4,
+  StoragePortCodeSetUSBport = 5,
+  StoragePortCodeSetSBP2port = 6,
+  StoragePortCodeSetSDport = 7
 } STORAGE_PORT_CODE_SET, *PSTORAGE_PORT_CODE_SET;
 
 typedef struct _STORAGE_MINIPORT_DESCRIPTOR {
@@ -497,6 +588,9 @@ typedef struct _STORAGE_MINIPORT_DESCRIPTOR {
   STORAGE_PORT_CODE_SET Portdriver;
   BOOLEAN LUNResetSupported;
   BOOLEAN TargetResetSupported;
+#if (NTDDI_VERSION >= NTDDI_WIN8)
+  USHORT IoTimeoutValue;
+#endif
 } STORAGE_MINIPORT_DESCRIPTOR, *PSTORAGE_MINIPORT_DESCRIPTOR;
 
 typedef enum _STORAGE_IDENTIFIER_CODE_SET {
@@ -691,6 +785,352 @@ typedef struct _STORAGE_WRITE_CACHE_PROPERTY {
   BOOLEAN NVCacheEnabled;
 } STORAGE_WRITE_CACHE_PROPERTY, *PSTORAGE_WRITE_CACHE_PROPERTY;
 
+#define STORAGE_OFFLOAD_MAX_TOKEN_LENGTH         0x200
+#define STORAGE_OFFLOAD_TOKEN_ID_LENGTH          0x1f8
+#define STORAGE_OFFLOAD_TOKEN_TYPE_ZERO_DATA     0xffff0001
+
+#if defined(_MSC_EXTENSIONS) || defined(__GNUC__)
+
+typedef struct _STORAGE_OFFLOAD_TOKEN {
+  UCHAR TokenType[4];
+  UCHAR Reserved[2];
+  UCHAR TokenIdLength[2];
+  __C89_NAMELESS union {
+    struct {
+      UCHAR Reserved2[STORAGE_OFFLOAD_TOKEN_ID_LENGTH];
+    } StorageOffloadZeroDataToken;
+    UCHAR Token[STORAGE_OFFLOAD_TOKEN_ID_LENGTH];
+  };
+} STORAGE_OFFLOAD_TOKEN, *PSTORAGE_OFFLOAD_TOKEN;
+
+#endif /* defined(_MSC_EXTENSIONS) */
+
+#define MAKE_ZERO_TOKEN(T) (((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[0] = 0xff, \
+                            ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[1] = 0xff, \
+                            ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[2] = 0x00, \
+                            ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[3] = 0x01, \
+                            ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[0] = 0x01, \
+                            ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[1] = 0xf8)
+
+#define IS_ZERO_TOKEN(T) (((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[0] == 0xff && \
+                          ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[1] == 0xff && \
+                          ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[2] == 0x00 && \
+                          ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenType[3] == 0x01 && \
+                          ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[0] == 0x01 && \
+                          ((PSTORAGE_OFFLOAD_TOKEN)T)->TokenIdLength[1] == 0xf8)
+
+typedef struct _STORAGE_OFFLOAD_READ_OUTPUT {
+  ULONG OffloadReadFlags;
+  ULONG Reserved;
+  ULONGLONG LengthProtected;
+  ULONG TokenLength;
+  STORAGE_OFFLOAD_TOKEN Token;
+} STORAGE_OFFLOAD_READ_OUTPUT, *PSTORAGE_OFFLOAD_READ_OUTPUT;
+
+#define STORAGE_OFFLOAD_READ_RANGE_TRUNCATED    0x0001
+
+typedef struct _STORAGE_OFFLOAD_WRITE_OUTPUT {
+  ULONG OffloadWriteFlags;
+  ULONG Reserved;
+  ULONGLONG LengthCopied;
+} STORAGE_OFFLOAD_WRITE_OUTPUT, *PSTORAGE_OFFLOAD_WRITE_OUTPUT;
+
+#define STORAGE_OFFLOAD_WRITE_RANGE_TRUNCATED   0x0001
+#define STORAGE_OFFLOAD_TOKEN_INVALID           0x0002
+
+#define STORAGE_CRASH_TELEMETRY_REGKEY          L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\CrashControl\\StorageTelemetry"
+#define STORAGE_DEVICE_TELEMETRY_REGKEY         L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Storage\\StorageTelemetry"
+#define DDUMP_FLAG_DATA_READ_FROM_DEVICE        0x0001
+#define FW_ISSUEID_NO_ISSUE                     0x00000000
+#define FW_ISSUEID_UNKNOWN                      0xffffffff
+#define TC_PUBLIC_DEVICEDUMP_CONTENT_SMART      1
+#define TC_PUBLIC_DEVICEDUMP_CONTENT_GPLOG      2
+#define TC_PUBLIC_DATA_TYPE_ATAGP               "ATAGPLogPages"
+#define TC_PUBLIC_DATA_TYPE_ATASMART            "ATASMARTPages"
+#define DEVICEDUMP_CAP_PRIVATE_SECTION          0x00000001
+#define DEVICEDUMP_CAP_RESTRICTED_SECTION       0x00000002
+
+#define TCRecordStorportSrbFunction             Command[0]
+
+typedef enum _DEVICEDUMP_COLLECTION_TYPE {
+  TCCollectionBugCheck = 1,
+  TCCollectionApplicationRequested,
+  TCCollectionDeviceRequested
+} DEVICEDUMP_COLLECTION_TYPEIDE_NOTIFICATION_TYPE, *PDEVICEDUMP_COLLECTION_TYPE;
+
+typedef struct _DEVICEDUMP_SUBSECTION_POINTER {
+  ULONG dwSize;
+  ULONG dwFlags;
+  ULONG dwOffset;
+} DEVICEDUMP_SUBSECTION_POINTER, *PDEVICEDUMP_SUBSECTION_POINTER;
+
+#define DEVICEDUMP_STRUCTURE_VERSION_V1         1
+
+typedef struct _DEVICEDUMP_STRUCTURE_VERSION {
+  ULONG dwSignature;
+  ULONG dwVersion;
+  ULONG dwSize;
+} DEVICEDUMP_STRUCTURE_VERSION, *PDEVICEDUMP_STRUCTURE_VERSION;
+
+#define DEVICEDUMP_MAX_IDSTRING                 32
+#define MAX_FW_BUCKET_ID_LENGTH                 132
+
+typedef struct _DEVICEDUMP_SECTION_HEADER {
+  GUID guidDeviceDataId;
+  UCHAR sOrganizationID[16];
+  ULONG dwFirmwareRevision;
+  UCHAR sModelNumber[DEVICEDUMP_MAX_IDSTRING];
+  UCHAR szDeviceManufacturingID[DEVICEDUMP_MAX_IDSTRING];
+  ULONG dwFlags;
+  ULONG bRestrictedPrivateDataVersion;
+  ULONG dwFirmwareIssueId;
+  UCHAR szIssueDescriptionString[MAX_FW_BUCKET_ID_LENGTH];
+} DEVICEDUMP_SECTION_HEADER, *PDEVICEDUMP_SECTION_HEADER;
+
+#define TC_PUBLIC_DEVICEDUMP_CONTENT_GPLOG_MAX  16
+#define TC_DEVICEDUMP_SUBSECTION_DESC_LENGTH    16
+
+typedef struct _GP_LOG_PAGE_DESCRIPTOR {
+  USHORT LogAddress;
+  USHORT LogSectors;
+} GP_LOG_PAGE_DESCRIPTOR, *PGP_LOG_PAGE_DESCRIPTOR;
+
+typedef struct _DEVICEDUMP_PUBLIC_SUBSECTION {
+  ULONG dwFlags;
+  GP_LOG_PAGE_DESCRIPTOR GPLogTable[TC_PUBLIC_DEVICEDUMP_CONTENT_GPLOG_MAX];
+  CHAR szDescription[TC_DEVICEDUMP_SUBSECTION_DESC_LENGTH];
+  UCHAR bData[1];
+} DEVICEDUMP_PUBLIC_SUBSECTION, *PDEVICEDUMP_PUBLIC_SUBSECTION;
+
+typedef struct _DEVICEDUMP_PRIVATE_SUBSECTION {
+  ULONG dwFlags;
+  GP_LOG_PAGE_DESCRIPTOR GPLogId;
+  UCHAR bData[1];
+} DEVICEDUMP_PRIVATE_SUBSECTION, *PDEVICEDUMP_PRIVATE_SUBSECTION;
+
+#define CDB_SIZE                                16
+#define TELEMETRY_COMMAND_SIZE                  16
+
+typedef struct _DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD {
+  UCHAR Cdb[CDB_SIZE];
+  UCHAR Command[TELEMETRY_COMMAND_SIZE];
+  ULONGLONG StartTime;
+  ULONGLONG EndTime;
+  ULONG OperationStatus;
+  ULONG OperationError;
+
+  union {
+    struct {
+      ULONG dwReserved;
+    } ExternalStack;
+
+    struct {
+      ULONG dwAtaPortSpecific;
+    } AtaPort;
+
+    struct {
+      ULONG SrbTag;
+    } StorPort;
+  } StackSpecific;
+} DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD, *PDEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD;
+
+typedef struct _DEVICEDUMP_RESTRICTED_SUBSECTION {
+  UCHAR bData[1];
+} DEVICEDUMP_RESTRICTED_SUBSECTION, *PDEVICEDUMP_RESTRICTED_SUBSECTION;
+
+typedef struct _DEVICEDUMP_STORAGEDEVICE_DATA {
+  DEVICEDUMP_STRUCTURE_VERSION Descriptor;
+  DEVICEDUMP_SECTION_HEADER SectionHeader;
+  ULONG dwBufferSize;
+  ULONG dwReasonForCollection;
+  DEVICEDUMP_SUBSECTION_POINTER PublicData;
+  DEVICEDUMP_SUBSECTION_POINTER RestrictedData;
+  DEVICEDUMP_SUBSECTION_POINTER PrivateData;
+} DEVICEDUMP_STORAGEDEVICE_DATA, *PDEVICEDUMP_STORAGEDEVICE_DATA;
+
+typedef struct _DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP {
+  DEVICEDUMP_STRUCTURE_VERSION Descriptor;
+  ULONG dwReasonForCollection;
+  UCHAR cDriverName[16];
+  ULONG uiNumRecords;
+  DEVICEDUMP_STORAGESTACK_PUBLIC_STATE_RECORD RecordArray[1];
+} DEVICEDUMP_STORAGESTACK_PUBLIC_DUMP, *PDEVICEDUMP_STORAGESTACK_PUBLIC_DUMP;
+
+typedef struct _DEVICE_LB_PROVISIONING_DESCRIPTOR {
+  ULONG Version;
+  ULONG Size;
+  UCHAR ThinProvisioningEnabled : 1;
+  UCHAR ThinProvisioningReadZeros : 1;
+  UCHAR AnchorSupported : 3;
+  UCHAR UnmapGranularityAlignmentValid : 1;
+  UCHAR Reserved0 : 2;
+  UCHAR Reserved1[7];
+  ULONGLONG OptimalUnmapGranularity;
+  ULONGLONG UnmapGranularityAlignment;
+} DEVICE_LB_PROVISIONING_DESCRIPTOR, *PDEVICE_LB_PROVISIONING_DESCRIPTOR;
+
+typedef struct _STORAGE_LB_PROVISIONING_MAP_RESOURCES {
+  ULONG Size;
+  ULONG Version;
+  UCHAR AvailableMappingResourcesValid : 1;
+  UCHAR UsedMappingResourcesValid : 1;
+  UCHAR Reserved0 : 6;
+  UCHAR Reserved1[3];
+  UCHAR MappingResourcesScope : 2;
+  UCHAR UsedMappingResourcesScope : 2;
+  UCHAR Reserved2 : 4;
+  UCHAR Reserved3[3];
+  ULONGLONG AvailableMappingResources;
+  ULONGLONG UsedMappingResources;
+} STORAGE_LB_PROVISIONING_MAP_RESOURCES, *PSTORAGE_LB_PROVISIONING_MAP_RESOURCES;
+
+typedef struct _DEVICE_POWER_DESCRIPTOR {
+  ULONG Version;
+  ULONG Size;
+  BOOLEAN DeviceAttentionSupported;
+  BOOLEAN AsynchronousNotificationSupported;
+  BOOLEAN IdlePowerManagementEnabled;
+  BOOLEAN D3ColdEnabled;
+  BOOLEAN D3ColdSupported;
+  BOOLEAN NoVerifyDuringIdlePower;
+  UCHAR Reserved[2];
+  ULONG IdleTimeoutInMS;
+} DEVICE_POWER_DESCRIPTOR, *PDEVICE_POWER_DESCRIPTOR;
+
+typedef struct _DEVICE_COPY_OFFLOAD_DESCRIPTOR {
+  ULONG Version;
+  ULONG Size;
+  ULONG MaximumTokenLifetime;
+  ULONG DefaultTokenLifetime;
+  ULONGLONG MaximumTransferSize;
+  ULONGLONG OptimalTransferCount;
+  ULONG MaximumDataDescriptors;
+  ULONG MaximumTransferLengthPerDescriptor;
+  ULONG OptimalTransferLengthPerDescriptor;
+  USHORT OptimalTransferLengthGranularity;
+  UCHAR Reserved[2];
+} DEVICE_COPY_OFFLOAD_DESCRIPTOR, *PDEVICE_COPY_OFFLOAD_DESCRIPTOR;
+
+typedef struct _STORAGE_DEVICE_RESILIENCY_DESCRIPTOR {
+  ULONG Version;
+  ULONG Size;
+  ULONG NameOffset;
+  ULONG NumberOfLogicalCopies;
+  ULONG NumberOfPhysicalCopies;
+  ULONG PhysicalDiskRedundancy;
+  ULONG NumberOfColumns;
+  ULONG Interleave;
+} STORAGE_DEVICE_RESILIENCY_DESCRIPTOR, *PSTORAGE_DEVICE_RESILIENCY_DESCRIPTOR;
+
+typedef struct _STORAGE_IDLE_POWER {
+  ULONG Version;
+  ULONG Size;
+  ULONG WakeCapableHint : 1;
+  ULONG D3ColdSupported : 1;
+  ULONG Reserved : 30;
+  ULONG D3IdleTimeout;
+} STORAGE_IDLE_POWER, *PSTORAGE_IDLE_POWER;
+
+typedef enum _STORAGE_POWERUP_REASON_TYPE {
+  StoragePowerupUnknown,
+  StoragePowerupIO,
+  StoragePowerupDeviceAttention
+} STORAGE_POWERUP_REASON_TYPE, *PSTORAGE_POWERUP_REASON_TYPE;
+
+typedef struct _STORAGE_IDLE_POWERUP_REASON {
+  ULONG Version;
+  ULONG Size;
+  STORAGE_POWERUP_REASON_TYPE PowerupReason;
+} STORAGE_IDLE_POWERUP_REASON, *PSTORAGE_IDLE_POWERUP_REASON;
+
+#define STORAGE_IDLE_POWERUP_REASON_VERSION_V1    1
+
+typedef struct _STORAGE_EVENT_NOTIFICATION {
+  ULONG Version;
+  ULONG Size;
+  ULONGLONG Events;
+} STORAGE_EVENT_NOTIFICATION, *PSTORAGE_EVENT_NOTIFICATION;
+
+#define STORAGE_EVENT_NOTIFICATION_VERSION_V1     1
+
+#define STORAGE_EVENT_MEDIA_STATUS                1
+#define STORAGE_EVENT_DEVICE_STATUS               2
+#define STORAGE_EVENT_DEVICE_OPERATION            4
+
+#define STORAGE_EVENT_ALL \
+  (STORAGE_EVENT_MEDIA_STATUS | STORAGE_EVENT_DEVICE_STATUS | STORAGE_EVENT_DEVICE_OPERATION)
+
+#define READ_COPY_NUMBER_KEY                      0x52434e00
+
+#define IsKeyReadCopyNumber(k)                 (((k) & 0xffffff00) == READ_COPY_NUMBER_KEY)
+#define ReadCopyNumberToKey(c)                 (READ_COPY_NUMBER_KEY | (UCHAR)(c))
+#define ReadCopyNumberFromKey(k)               (UCHAR)((k) & 0x000000ff)
+
+typedef struct _DEVICE_DSM_OFFLOAD_READ_PARAMETERS {
+  ULONG Flags;
+  ULONG TimeToLive;
+  ULONG Reserved[2];
+} DEVICE_DSM_OFFLOAD_READ_PARAMETERS, *PDEVICE_DSM_OFFLOAD_READ_PARAMETERS;
+
+typedef struct _DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS {
+  ULONG Flags;
+  ULONG Reserved;
+  ULONGLONG TokenOffset;
+  STORAGE_OFFLOAD_TOKEN Token;
+} DEVICE_DSM_OFFLOAD_WRITE_PARAMETERS, *PDEVICE_DSM_OFFLOAD_WRITE_PARAMETERS;
+
+typedef struct _DEVICE_DATA_SET_REPAIR_PARAMETERS {
+  ULONG NumberOfRepairCopies;
+  ULONG SourceCopy;
+  ULONG RepairCopies[1];
+} DEVICE_DATA_SET_REPAIR_PARAMETERS, *PDEVICE_DATA_SET_REPAIR_PARAMETERS;
+
+typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT {
+  ULONG Size;
+  DEVICE_DATA_MANAGEMENT_SET_ACTION Action;
+  ULONG Flags;
+  ULONG OperationStatus;
+  ULONG ExtendedError;
+  ULONG TargetDetailedError;
+  ULONG ReservedStatus;
+  ULONG OutputBlockOffset;
+  ULONG OutputBlockLength;
+} DEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES_OUTPUT;
+
+typedef struct _DEVICE_DATA_SET_LB_PROVISIONING_STATE {
+  ULONG Size;
+  ULONG Version;
+  ULONGLONG SlabSizeInBytes;
+  ULONG SlabOffsetDeltaInBytes;
+  ULONG SlabAllocationBitMapBitCount;
+  ULONG SlabAllocationBitMapLength;
+  ULONG SlabAllocationBitMap[1];
+} DEVICE_DATA_SET_LB_PROVISIONING_STATE, *PDEVICE_DATA_SET_LB_PROVISIONING_STATE;
+
+typedef struct _DEVICE_DATA_SET_SCRUB_OUTPUT {
+  ULONGLONG BytesProcessed;
+  ULONGLONG BytesRepaired;
+  ULONGLONG BytesFailed;
+} DEVICE_DATA_SET_SCRUB_OUTPUT, *PDEVICE_DATA_SET_SCRUB_OUTPUT;
+
+#if NTDDI_VERSION >= NTDDI_WIN8
+
+#define NO_SRBTYPE_ADAPTER_DESCRIPTOR_SIZE FIELD_OFFSET(STORAGE_ADAPTER_DESCRIPTOR, SrbType)
+
+#ifndef SRB_TYPE_SCSI_REQUEST_BLOCK
+#define SRB_TYPE_SCSI_REQUEST_BLOCK         0
+#endif
+
+#ifndef SRB_TYPE_STORAGE_REQUEST_BLOCK
+#define SRB_TYPE_STORAGE_REQUEST_BLOCK      1
+#endif
+
+#ifndef STORAGE_ADDRESS_TYPE_BTL8
+#define STORAGE_ADDRESS_TYPE_BTL8           0
+#endif
+
+#endif
+
 #ifdef __cplusplus
 }
 #endif
lib/libc/include/any-windows-any/ntsecapi.h
@@ -26,9 +26,25 @@ extern "C" {
 
 #ifndef _NTLSA_IFS_
   typedef enum _SECURITY_LOGON_TYPE {
-    Interactive = 2,Network,Batch,Service,Proxy,Unlock,NetworkCleartext,NewCredentials,RemoteInteractive,CachedInteractive,
-    CachedRemoteInteractive,CachedUnlock
-  } SECURITY_LOGON_TYPE,*PSECURITY_LOGON_TYPE;
+    UndefinedLogonType = 0,
+    Interactive = 2,
+    Network,
+    Batch,
+    Service,
+    Proxy,
+    Unlock,
+    NetworkCleartext,
+    NewCredentials
+#if _WIN32_WINNT >= 0x0501
+    ,RemoteInteractive
+    ,CachedInteractive
+#endif
+#if _WIN32_WINNT >= 0x0502
+    ,CachedRemoteInteractive
+    ,CachedUnlock
+#endif
+  } SECURITY_LOGON_TYPE, *PSECURITY_LOGON_TYPE;
+
 #endif
 
 #ifndef _NTLSA_IFS_
@@ -36,12 +52,44 @@ extern "C" {
 #ifndef _NTLSA_AUDIT_
 #define _NTLSA_AUDIT_
 
-  typedef enum _SE_ADT_PARAMETER_TYPE {
-    SeAdtParmTypeNone = 0,SeAdtParmTypeString,SeAdtParmTypeFileSpec,SeAdtParmTypeUlong,SeAdtParmTypeSid,SeAdtParmTypeLogonId,
-    SeAdtParmTypeNoLogonId,SeAdtParmTypeAccessMask,SeAdtParmTypePrivs,SeAdtParmTypeObjectTypes,SeAdtParmTypeHexUlong,SeAdtParmTypePtr,
-    SeAdtParmTypeTime,SeAdtParmTypeGuid,SeAdtParmTypeLuid,SeAdtParmTypeHexInt64,SeAdtParmTypeStringList,SeAdtParmTypeSidList,
-    SeAdtParmTypeDuration,SeAdtParmTypeUserAccountControl,SeAdtParmTypeNoUac,SeAdtParmTypeMessage,SeAdtParmTypeDateTime,SeAdtParmTypeSockAddr
-  } SE_ADT_PARAMETER_TYPE,*PSE_ADT_PARAMETER_TYPE;
+typedef enum _SE_ADT_PARAMETER_TYPE {
+    SeAdtParmTypeNone = 0,
+    SeAdtParmTypeString,
+    SeAdtParmTypeFileSpec,
+    SeAdtParmTypeUlong,
+    SeAdtParmTypeSid,
+    SeAdtParmTypeLogonId,
+    SeAdtParmTypeNoLogonId,
+    SeAdtParmTypeAccessMask,
+    SeAdtParmTypePrivs,
+    SeAdtParmTypeObjectTypes,
+    SeAdtParmTypeHexUlong,
+    SeAdtParmTypePtr,
+    SeAdtParmTypeTime,
+    SeAdtParmTypeGuid,
+    SeAdtParmTypeLuid,
+    SeAdtParmTypeHexInt64,
+    SeAdtParmTypeStringList,
+    SeAdtParmTypeSidList,
+    SeAdtParmTypeDuration,
+    SeAdtParmTypeUserAccountControl,
+    SeAdtParmTypeNoUac,
+    SeAdtParmTypeMessage,
+    SeAdtParmTypeDateTime,
+    SeAdtParmTypeSockAddr,
+    SeAdtParmTypeSD,
+    SeAdtParmTypeLogonHours,
+    SeAdtParmTypeLogonIdNoSid,
+    SeAdtParmTypeUlongNoConv,
+    SeAdtParmTypeSockAddrNoPort,
+    SeAdtParmTypeAccessReason,
+    SeAdtParmTypeStagingReason,
+    SeAdtParmTypeResourceAttribute,
+    SeAdtParmTypeClaims,
+    SeAdtParmTypeLogonIdAsSid,
+    SeAdtParmTypeMultiSzString,
+    SeAdtParmTypeLogonIdEx
+  } SE_ADT_PARAMETER_TYPE, *PSE_ADT_PARAMETER_TYPE;
 
 #include <guiddef.h>
 
@@ -61,6 +109,19 @@ extern "C" {
     PVOID Address;
   } SE_ADT_PARAMETER_ARRAY_ENTRY,*PSE_ADT_PARAMETER_ARRAY_ENTRY;
 
+  typedef struct _SE_ADT_ACCESS_REASON {
+    ACCESS_MASK AccessMask;
+    ULONG AccessReasons[32];
+    ULONG ObjectTypeIndex;
+    ULONG AccessGranted;
+    PSECURITY_DESCRIPTOR SecurityDescriptor;
+  } SE_ADT_ACCESS_REASON, *PSE_ADT_ACCESS_REASON;
+
+  typedef struct _SE_ADT_CLAIMS {
+    ULONG Length;
+    PCLAIMS_BLOB Claims;
+  } SE_ADT_CLAIMS, *PSE_ADT_CLAIMS;
+
 #define SE_MAX_AUDIT_PARAMETERS 32
 #define SE_MAX_GENERIC_AUDIT_PARAMETERS 28
 
@@ -71,12 +132,31 @@ extern "C" {
     ULONG Length;
     USHORT Type;
     ULONG Flags;
-    SE_ADT_PARAMETER_ARRAY_ENTRY Parameters[SE_MAX_AUDIT_PARAMETERS ];
+    SE_ADT_PARAMETER_ARRAY_ENTRY Parameters[SE_MAX_AUDIT_PARAMETERS];
   } SE_ADT_PARAMETER_ARRAY,*PSE_ADT_PARAMETER_ARRAY;
 
+  typedef struct _SE_ADT_PARAMETER_ARRAY_EX {
+    ULONG CategoryId;
+    ULONG AuditId;
+    ULONG Version;
+    ULONG ParameterCount;
+    ULONG Length;
+    USHORT FlatSubCategoryId;
+    USHORT Type;
+    ULONG Flags;
+    SE_ADT_PARAMETER_ARRAY_ENTRY Parameters[SE_MAX_AUDIT_PARAMETERS];
+  } SE_ADT_PARAMETER_ARRAY_EX, *PSE_ADT_PARAMETER_ARRAY_EX;
+
 #define SE_ADT_PARAMETERS_SELF_RELATIVE 0x00000001
-#endif
-#endif
+#define SE_ADT_PARAMETERS_SEND_TO_LSA 0x00000002
+#define SE_ADT_PARAMETER_EXTENSIBLE_AUDIT 0x00000004
+#define SE_ADT_PARAMETER_GENERIC_AUDIT 0x00000008
+#define SE_ADT_PARAMETER_WRITE_SYNCHRONOUS 0x00000010
+
+#define LSAP_SE_ADT_PARAMETER_ARRAY_TRUE_SIZE(AuditParameters) (sizeof(SE_ADT_PARAMETER_ARRAY) - sizeof(SE_ADT_PARAMETER_ARRAY_ENTRY) * (SE_MAX_AUDIT_PARAMETERS - AuditParameters->ParameterCount))
+
+#endif /* _NTLSA_AUDIT_ */
+#endif /* _NTLSA_IFS_ */
 
   typedef enum _POLICY_AUDIT_EVENT_TYPE {
     AuditCategorySystem = 0,AuditCategoryLogon,AuditCategoryObjectAccess,AuditCategoryPrivilegeUse,AuditCategoryDetailedTracking,
@@ -139,6 +219,8 @@ extern "C" {
   NTSTATUS NTAPI LsaCallAuthenticationPackage(HANDLE LsaHandle,ULONG AuthenticationPackage,PVOID ProtocolSubmitBuffer,ULONG SubmitBufferLength,PVOID *ProtocolReturnBuffer,PULONG ReturnBufferLength,PNTSTATUS ProtocolStatus);
   NTSTATUS NTAPI LsaDeregisterLogonProcess(HANDLE LsaHandle);
   NTSTATUS NTAPI LsaConnectUntrusted(PHANDLE LsaHandle);
+  NTSTATUS NTAPI LsaInsertProtectedProcessAddress(PVOID BufferAddress,ULONG BufferSize);
+  NTSTATUS NTAPI LsaRemoveProtectedProcessAddress(PVOID BufferAddress,ULONG BufferSize);
 #endif
 
 #define POLICY_VIEW_LOCAL_INFORMATION __MSABI_LONG(0x00000001)
@@ -196,11 +278,23 @@ extern "C" {
   typedef ULONG POLICY_AUDIT_EVENT_OPTIONS,*PPOLICY_AUDIT_EVENT_OPTIONS;
 
   typedef enum _POLICY_INFORMATION_CLASS {
-    PolicyAuditLogInformation = 1,PolicyAuditEventsInformation,PolicyPrimaryDomainInformation,PolicyPdAccountInformation,
-    PolicyAccountDomainInformation,PolicyLsaServerRoleInformation,PolicyReplicaSourceInformation,PolicyDefaultQuotaInformation,
-    PolicyModificationInformation,PolicyAuditFullSetInformation,PolicyAuditFullQueryInformation,PolicyDnsDomainInformation,
-    PolicyDnsDomainInformationInt
-  } POLICY_INFORMATION_CLASS,*PPOLICY_INFORMATION_CLASS;
+    PolicyAuditLogInformation = 1,
+    PolicyAuditEventsInformation,
+    PolicyPrimaryDomainInformation,
+    PolicyPdAccountInformation,
+    PolicyAccountDomainInformation,
+    PolicyLsaServerRoleInformation,
+    PolicyReplicaSourceInformation,
+    PolicyDefaultQuotaInformation,
+    PolicyModificationInformation,
+    PolicyAuditFullSetInformation,
+    PolicyAuditFullQueryInformation,
+    PolicyDnsDomainInformation,
+    PolicyDnsDomainInformationInt,
+    PolicyLocalAccountDomainInformation,
+    PolicyMachineAccountInformation,
+    PolicyLastEntry
+  } POLICY_INFORMATION_CLASS, *PPOLICY_INFORMATION_CLASS;
 
   typedef struct _POLICY_AUDIT_LOG_INFO {
     ULONG AuditLogPercentFull;
@@ -217,6 +311,16 @@ extern "C" {
     ULONG MaximumAuditEventCount;
   } POLICY_AUDIT_EVENTS_INFO,*PPOLICY_AUDIT_EVENTS_INFO;
 
+  typedef struct _POLICY_AUDIT_SUBCATEGORIES_INFO {
+    ULONG MaximumSubCategoryCount;
+    PPOLICY_AUDIT_EVENT_OPTIONS EventAuditingOptions;
+  } POLICY_AUDIT_SUBCATEGORIES_INFO, *PPOLICY_AUDIT_SUBCATEGORIES_INFO;
+
+  typedef struct _POLICY_AUDIT_CATEGORIES_INFO {
+    ULONG MaximumCategoryCount;
+    PPOLICY_AUDIT_SUBCATEGORIES_INFO SubCategoriesInfo;
+  } POLICY_AUDIT_CATEGORIES_INFO, *PPOLICY_AUDIT_CATEGORIES_INFO;
+
   typedef struct _POLICY_ACCOUNT_DOMAIN_INFO {
     LSA_UNICODE_STRING DomainName;
     PSID DomainSid;
@@ -267,8 +371,12 @@ extern "C" {
   } POLICY_AUDIT_FULL_QUERY_INFO,*PPOLICY_AUDIT_FULL_QUERY_INFO;
 
   typedef enum _POLICY_DOMAIN_INFORMATION_CLASS {
-    PolicyDomainEfsInformation = 2,PolicyDomainKerberosTicketInformation
-  } POLICY_DOMAIN_INFORMATION_CLASS,*PPOLICY_DOMAIN_INFORMATION_CLASS;
+#if _WIN32_WINNT <= 0x0500
+    PolicyDomainQualityOfServiceInformation = 1,
+#endif
+    PolicyDomainEfsInformation = 2
+    ,PolicyDomainKerberosTicketInformation
+  } POLICY_DOMAIN_INFORMATION_CLASS, *PPOLICY_DOMAIN_INFORMATION_CLASS;
 
   typedef struct _POLICY_DOMAIN_EFS_INFO {
     ULONG InfoLength;
@@ -286,10 +394,22 @@ extern "C" {
     LARGE_INTEGER Reserved;
   } POLICY_DOMAIN_KERBEROS_TICKET_INFO,*PPOLICY_DOMAIN_KERBEROS_TICKET_INFO;
 
+  typedef struct _POLICY_MACHINE_ACCT_INFO {
+    ULONG Rid;
+    PSID Sid;
+  } POLICY_MACHINE_ACCT_INFO, *PPOLICY_MACHINE_ACCT_INFO;
+
   typedef enum _POLICY_NOTIFICATION_INFORMATION_CLASS {
-    PolicyNotifyAuditEventsInformation = 1,PolicyNotifyAccountDomainInformation,PolicyNotifyServerRoleInformation,PolicyNotifyDnsDomainInformation,
-    PolicyNotifyDomainEfsInformation,PolicyNotifyDomainKerberosTicketInformation,PolicyNotifyMachineAccountPasswordInformation
-  } POLICY_NOTIFICATION_INFORMATION_CLASS,*PPOLICY_NOTIFICATION_INFORMATION_CLASS;
+    PolicyNotifyAuditEventsInformation = 1,
+    PolicyNotifyAccountDomainInformation,
+    PolicyNotifyServerRoleInformation,
+    PolicyNotifyDnsDomainInformation,
+    PolicyNotifyDomainEfsInformation,
+    PolicyNotifyDomainKerberosTicketInformation,
+    PolicyNotifyMachineAccountPasswordInformation,
+    PolicyNotifyGlobalSaclInformation,
+    PolicyNotifyMax
+  } POLICY_NOTIFICATION_INFORMATION_CLASS, *PPOLICY_NOTIFICATION_INFORMATION_CLASS;
 
   typedef PVOID LSA_HANDLE,*PLSA_HANDLE;
 
@@ -784,7 +904,21 @@ extern "C" {
 #define MSV1_0_NTLM3_MIN_NT_RESPONSE_LENGTH RTL_SIZEOF_THROUGH_FIELD(MSV1_0_NTLM3_RESPONSE,AvPairsOff)
 
   typedef enum {
-    MsvAvEOL,MsvAvNbComputerName,MsvAvNbDomainName,MsvAvDnsComputerName,MsvAvDnsDomainName,MsvAvDnsTreeName,MsvAvFlags
+    MsvAvEOL,
+    MsvAvNbComputerName,
+    MsvAvNbDomainName,
+    MsvAvDnsComputerName,
+    MsvAvDnsDomainName
+#if _WIN32_WINNT >= 0x0501
+    ,MsvAvDnsTreeName
+    ,MsvAvFlags
+#if _WIN32_WINNT >= 0x0600
+    ,MsvAvTimestamp
+    ,MsvAvRestrictions
+    ,MsvAvTargetName
+    ,MsvAvChannelBindings
+#endif
+#endif
   } MSV1_0_AVID;
 
   typedef struct _MSV1_0_AV_PAIR {
@@ -1335,11 +1469,14 @@ extern "C" {
 #define PER_USER_AUDIT_FAILURE_EXCLUDE 0x08
 #define PER_USER_AUDIT_NONE 0x10
 
+#define VALID_PER_USER_AUDIT_POLICY_FLAG (PER_USER_AUDIT_SUCCESS_INCLUDE | PER_USER_AUDIT_SUCCESS_EXCLUDE | PER_USER_AUDIT_FAILURE_INCLUDE | PER_USER_AUDIT_FAILURE_EXCLUDE | PER_USER_AUDIT_NONE)
+
   typedef struct _AUDIT_POLICY_INFORMATION {
     GUID  AuditSubCategoryGuid;
     ULONG AuditingInformation;
     GUID  AuditCategoryGuid;
-  } AUDIT_POLICY_INFORMATION, *PAUDIT_POLICY_INFORMATION, *PCAUDIT_POLICY_INFORMATION;
+  } AUDIT_POLICY_INFORMATION, *PAUDIT_POLICY_INFORMATION;
+  typedef const PAUDIT_POLICY_INFORMATION PCAUDIT_POLICY_INFORMATION, LPCAUDIT_POLICY_INFORMATION;
 
   typedef struct _POLICY_AUDIT_SID_ARRAY {
     ULONG UsersCount;
lib/libc/include/any-windows-any/oaidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/oaidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/oaidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -412,7 +412,7 @@ typedef enum tagSF_TYPE {
 
 typedef struct _wireSAFEARRAY_UNION {
     ULONG sfType;
-    union {
+    union __WIDL_oaidl_generated_name_0000000E {
         SAFEARR_BSTR BstrStr;
         SAFEARR_UNKNOWN UnknownStr;
         SAFEARR_DISPATCH DispatchStr;
lib/libc/include/any-windows-any/objectarray.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/objectarray.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/objectarray.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/objidl.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.6 from include/objidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/objidl.idl - Do not edit ***/
 
+#ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
-
 #include <rpc.h>
 #include <rpcndr.h>
+#endif
 
 #ifndef COM_NO_WINDOWS_H
 #include <windows.h>
@@ -20,456 +21,737 @@
 #ifndef __IMarshal_FWD_DEFINED__
 #define __IMarshal_FWD_DEFINED__
 typedef interface IMarshal IMarshal;
+#ifdef __cplusplus
+interface IMarshal;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __INoMarshal_FWD_DEFINED__
 #define __INoMarshal_FWD_DEFINED__
 typedef interface INoMarshal INoMarshal;
+#ifdef __cplusplus
+interface INoMarshal;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAgileObject_FWD_DEFINED__
 #define __IAgileObject_FWD_DEFINED__
 typedef interface IAgileObject IAgileObject;
+#ifdef __cplusplus
+interface IAgileObject;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAgileReference_FWD_DEFINED__
+#define __IAgileReference_FWD_DEFINED__
+typedef interface IAgileReference IAgileReference;
+#ifdef __cplusplus
+interface IAgileReference;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMarshal2_FWD_DEFINED__
 #define __IMarshal2_FWD_DEFINED__
 typedef interface IMarshal2 IMarshal2;
+#ifdef __cplusplus
+interface IMarshal2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMalloc_FWD_DEFINED__
 #define __IMalloc_FWD_DEFINED__
 typedef interface IMalloc IMalloc;
+#ifdef __cplusplus
+interface IMalloc;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IStdMarshalInfo_FWD_DEFINED__
 #define __IStdMarshalInfo_FWD_DEFINED__
 typedef interface IStdMarshalInfo IStdMarshalInfo;
+#ifdef __cplusplus
+interface IStdMarshalInfo;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IExternalConnection_FWD_DEFINED__
 #define __IExternalConnection_FWD_DEFINED__
 typedef interface IExternalConnection IExternalConnection;
+#ifdef __cplusplus
+interface IExternalConnection;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMultiQI_FWD_DEFINED__
 #define __IMultiQI_FWD_DEFINED__
 typedef interface IMultiQI IMultiQI;
+#ifdef __cplusplus
+interface IMultiQI;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __AsyncIMultiQI_FWD_DEFINED__
 #define __AsyncIMultiQI_FWD_DEFINED__
 typedef interface AsyncIMultiQI AsyncIMultiQI;
+#ifdef __cplusplus
+interface AsyncIMultiQI;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IInternalUnknown_FWD_DEFINED__
 #define __IInternalUnknown_FWD_DEFINED__
 typedef interface IInternalUnknown IInternalUnknown;
+#ifdef __cplusplus
+interface IInternalUnknown;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumUnknown_FWD_DEFINED__
 #define __IEnumUnknown_FWD_DEFINED__
 typedef interface IEnumUnknown IEnumUnknown;
+#ifdef __cplusplus
+interface IEnumUnknown;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumString_FWD_DEFINED__
 #define __IEnumString_FWD_DEFINED__
 typedef interface IEnumString IEnumString;
+#ifdef __cplusplus
+interface IEnumString;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ISequentialStream_FWD_DEFINED__
 #define __ISequentialStream_FWD_DEFINED__
 typedef interface ISequentialStream ISequentialStream;
+#ifdef __cplusplus
+interface ISequentialStream;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IStream_FWD_DEFINED__
 #define __IStream_FWD_DEFINED__
 typedef interface IStream IStream;
+#ifdef __cplusplus
+interface IStream;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRpcChannelBuffer_FWD_DEFINED__
 #define __IRpcChannelBuffer_FWD_DEFINED__
 typedef interface IRpcChannelBuffer IRpcChannelBuffer;
+#ifdef __cplusplus
+interface IRpcChannelBuffer;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRpcChannelBuffer2_FWD_DEFINED__
 #define __IRpcChannelBuffer2_FWD_DEFINED__
 typedef interface IRpcChannelBuffer2 IRpcChannelBuffer2;
+#ifdef __cplusplus
+interface IRpcChannelBuffer2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAsyncRpcChannelBuffer_FWD_DEFINED__
 #define __IAsyncRpcChannelBuffer_FWD_DEFINED__
 typedef interface IAsyncRpcChannelBuffer IAsyncRpcChannelBuffer;
+#ifdef __cplusplus
+interface IAsyncRpcChannelBuffer;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRpcChannelBuffer3_FWD_DEFINED__
 #define __IRpcChannelBuffer3_FWD_DEFINED__
 typedef interface IRpcChannelBuffer3 IRpcChannelBuffer3;
+#ifdef __cplusplus
+interface IRpcChannelBuffer3;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRpcSyntaxNegotiate_FWD_DEFINED__
 #define __IRpcSyntaxNegotiate_FWD_DEFINED__
 typedef interface IRpcSyntaxNegotiate IRpcSyntaxNegotiate;
+#ifdef __cplusplus
+interface IRpcSyntaxNegotiate;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRpcProxyBuffer_FWD_DEFINED__
 #define __IRpcProxyBuffer_FWD_DEFINED__
 typedef interface IRpcProxyBuffer IRpcProxyBuffer;
+#ifdef __cplusplus
+interface IRpcProxyBuffer;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRpcStubBuffer_FWD_DEFINED__
 #define __IRpcStubBuffer_FWD_DEFINED__
 typedef interface IRpcStubBuffer IRpcStubBuffer;
+#ifdef __cplusplus
+interface IRpcStubBuffer;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPSFactoryBuffer_FWD_DEFINED__
 #define __IPSFactoryBuffer_FWD_DEFINED__
 typedef interface IPSFactoryBuffer IPSFactoryBuffer;
+#ifdef __cplusplus
+interface IPSFactoryBuffer;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IChannelHook_FWD_DEFINED__
 #define __IChannelHook_FWD_DEFINED__
 typedef interface IChannelHook IChannelHook;
+#ifdef __cplusplus
+interface IChannelHook;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IClientSecurity_FWD_DEFINED__
 #define __IClientSecurity_FWD_DEFINED__
 typedef interface IClientSecurity IClientSecurity;
+#ifdef __cplusplus
+interface IClientSecurity;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IServerSecurity_FWD_DEFINED__
 #define __IServerSecurity_FWD_DEFINED__
 typedef interface IServerSecurity IServerSecurity;
+#ifdef __cplusplus
+interface IServerSecurity;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRpcOptions_FWD_DEFINED__
 #define __IRpcOptions_FWD_DEFINED__
 typedef interface IRpcOptions IRpcOptions;
+#ifdef __cplusplus
+interface IRpcOptions;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IGlobalOptions_FWD_DEFINED__
 #define __IGlobalOptions_FWD_DEFINED__
 typedef interface IGlobalOptions IGlobalOptions;
+#ifdef __cplusplus
+interface IGlobalOptions;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ISurrogate_FWD_DEFINED__
 #define __ISurrogate_FWD_DEFINED__
 typedef interface ISurrogate ISurrogate;
+#ifdef __cplusplus
+interface ISurrogate;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IGlobalInterfaceTable_FWD_DEFINED__
 #define __IGlobalInterfaceTable_FWD_DEFINED__
 typedef interface IGlobalInterfaceTable IGlobalInterfaceTable;
+#ifdef __cplusplus
+interface IGlobalInterfaceTable;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ISynchronize_FWD_DEFINED__
 #define __ISynchronize_FWD_DEFINED__
 typedef interface ISynchronize ISynchronize;
+#ifdef __cplusplus
+interface ISynchronize;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ISynchronizeHandle_FWD_DEFINED__
 #define __ISynchronizeHandle_FWD_DEFINED__
 typedef interface ISynchronizeHandle ISynchronizeHandle;
+#ifdef __cplusplus
+interface ISynchronizeHandle;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ISynchronizeEvent_FWD_DEFINED__
 #define __ISynchronizeEvent_FWD_DEFINED__
 typedef interface ISynchronizeEvent ISynchronizeEvent;
+#ifdef __cplusplus
+interface ISynchronizeEvent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ISynchronizeContainer_FWD_DEFINED__
 #define __ISynchronizeContainer_FWD_DEFINED__
 typedef interface ISynchronizeContainer ISynchronizeContainer;
+#ifdef __cplusplus
+interface ISynchronizeContainer;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ISynchronizeMutex_FWD_DEFINED__
 #define __ISynchronizeMutex_FWD_DEFINED__
 typedef interface ISynchronizeMutex ISynchronizeMutex;
+#ifdef __cplusplus
+interface ISynchronizeMutex;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ICancelMethodCalls_FWD_DEFINED__
 #define __ICancelMethodCalls_FWD_DEFINED__
 typedef interface ICancelMethodCalls ICancelMethodCalls;
+#ifdef __cplusplus
+interface ICancelMethodCalls;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAsyncManager_FWD_DEFINED__
 #define __IAsyncManager_FWD_DEFINED__
 typedef interface IAsyncManager IAsyncManager;
+#ifdef __cplusplus
+interface IAsyncManager;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ICallFactory_FWD_DEFINED__
 #define __ICallFactory_FWD_DEFINED__
 typedef interface ICallFactory ICallFactory;
+#ifdef __cplusplus
+interface ICallFactory;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRpcHelper_FWD_DEFINED__
 #define __IRpcHelper_FWD_DEFINED__
 typedef interface IRpcHelper IRpcHelper;
+#ifdef __cplusplus
+interface IRpcHelper;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IReleaseMarshalBuffers_FWD_DEFINED__
 #define __IReleaseMarshalBuffers_FWD_DEFINED__
 typedef interface IReleaseMarshalBuffers IReleaseMarshalBuffers;
+#ifdef __cplusplus
+interface IReleaseMarshalBuffers;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IWaitMultiple_FWD_DEFINED__
 #define __IWaitMultiple_FWD_DEFINED__
 typedef interface IWaitMultiple IWaitMultiple;
+#ifdef __cplusplus
+interface IWaitMultiple;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAddrTrackingControl_FWD_DEFINED__
 #define __IAddrTrackingControl_FWD_DEFINED__
 typedef interface IAddrTrackingControl IAddrTrackingControl;
+#ifdef __cplusplus
+interface IAddrTrackingControl;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAddrExclusionControl_FWD_DEFINED__
 #define __IAddrExclusionControl_FWD_DEFINED__
 typedef interface IAddrExclusionControl IAddrExclusionControl;
+#ifdef __cplusplus
+interface IAddrExclusionControl;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPipeByte_FWD_DEFINED__
 #define __IPipeByte_FWD_DEFINED__
 typedef interface IPipeByte IPipeByte;
+#ifdef __cplusplus
+interface IPipeByte;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPipeLong_FWD_DEFINED__
 #define __IPipeLong_FWD_DEFINED__
 typedef interface IPipeLong IPipeLong;
+#ifdef __cplusplus
+interface IPipeLong;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPipeDouble_FWD_DEFINED__
 #define __IPipeDouble_FWD_DEFINED__
 typedef interface IPipeDouble IPipeDouble;
+#ifdef __cplusplus
+interface IPipeDouble;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumContextProps_FWD_DEFINED__
 #define __IEnumContextProps_FWD_DEFINED__
 typedef interface IEnumContextProps IEnumContextProps;
+#ifdef __cplusplus
+interface IEnumContextProps;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IContext_FWD_DEFINED__
 #define __IContext_FWD_DEFINED__
 typedef interface IContext IContext;
+#ifdef __cplusplus
+interface IContext;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IComThreadingInfo_FWD_DEFINED__
 #define __IComThreadingInfo_FWD_DEFINED__
 typedef interface IComThreadingInfo IComThreadingInfo;
+#ifdef __cplusplus
+interface IComThreadingInfo;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IProcessInitControl_FWD_DEFINED__
 #define __IProcessInitControl_FWD_DEFINED__
 typedef interface IProcessInitControl IProcessInitControl;
+#ifdef __cplusplus
+interface IProcessInitControl;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IFastRundown_FWD_DEFINED__
 #define __IFastRundown_FWD_DEFINED__
 typedef interface IFastRundown IFastRundown;
+#ifdef __cplusplus
+interface IFastRundown;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMarshalingStream_FWD_DEFINED__
 #define __IMarshalingStream_FWD_DEFINED__
 typedef interface IMarshalingStream IMarshalingStream;
+#ifdef __cplusplus
+interface IMarshalingStream;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMallocSpy_FWD_DEFINED__
 #define __IMallocSpy_FWD_DEFINED__
 typedef interface IMallocSpy IMallocSpy;
+#ifdef __cplusplus
+interface IMallocSpy;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBindCtx_FWD_DEFINED__
 #define __IBindCtx_FWD_DEFINED__
 typedef interface IBindCtx IBindCtx;
+#ifdef __cplusplus
+interface IBindCtx;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumMoniker_FWD_DEFINED__
 #define __IEnumMoniker_FWD_DEFINED__
 typedef interface IEnumMoniker IEnumMoniker;
+#ifdef __cplusplus
+interface IEnumMoniker;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRunnableObject_FWD_DEFINED__
 #define __IRunnableObject_FWD_DEFINED__
 typedef interface IRunnableObject IRunnableObject;
+#ifdef __cplusplus
+interface IRunnableObject;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRunningObjectTable_FWD_DEFINED__
 #define __IRunningObjectTable_FWD_DEFINED__
 typedef interface IRunningObjectTable IRunningObjectTable;
+#ifdef __cplusplus
+interface IRunningObjectTable;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPersist_FWD_DEFINED__
 #define __IPersist_FWD_DEFINED__
 typedef interface IPersist IPersist;
+#ifdef __cplusplus
+interface IPersist;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPersistStream_FWD_DEFINED__
 #define __IPersistStream_FWD_DEFINED__
 typedef interface IPersistStream IPersistStream;
+#ifdef __cplusplus
+interface IPersistStream;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMoniker_FWD_DEFINED__
 #define __IMoniker_FWD_DEFINED__
 typedef interface IMoniker IMoniker;
+#ifdef __cplusplus
+interface IMoniker;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IROTData_FWD_DEFINED__
 #define __IROTData_FWD_DEFINED__
 typedef interface IROTData IROTData;
+#ifdef __cplusplus
+interface IROTData;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumSTATSTG_FWD_DEFINED__
 #define __IEnumSTATSTG_FWD_DEFINED__
 typedef interface IEnumSTATSTG IEnumSTATSTG;
+#ifdef __cplusplus
+interface IEnumSTATSTG;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IStorage_FWD_DEFINED__
 #define __IStorage_FWD_DEFINED__
 typedef interface IStorage IStorage;
+#ifdef __cplusplus
+interface IStorage;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPersistFile_FWD_DEFINED__
 #define __IPersistFile_FWD_DEFINED__
 typedef interface IPersistFile IPersistFile;
+#ifdef __cplusplus
+interface IPersistFile;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPersistStorage_FWD_DEFINED__
 #define __IPersistStorage_FWD_DEFINED__
 typedef interface IPersistStorage IPersistStorage;
+#ifdef __cplusplus
+interface IPersistStorage;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ILockBytes_FWD_DEFINED__
 #define __ILockBytes_FWD_DEFINED__
 typedef interface ILockBytes ILockBytes;
+#ifdef __cplusplus
+interface ILockBytes;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumFORMATETC_FWD_DEFINED__
 #define __IEnumFORMATETC_FWD_DEFINED__
 typedef interface IEnumFORMATETC IEnumFORMATETC;
+#ifdef __cplusplus
+interface IEnumFORMATETC;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumSTATDATA_FWD_DEFINED__
 #define __IEnumSTATDATA_FWD_DEFINED__
 typedef interface IEnumSTATDATA IEnumSTATDATA;
+#ifdef __cplusplus
+interface IEnumSTATDATA;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRootStorage_FWD_DEFINED__
 #define __IRootStorage_FWD_DEFINED__
 typedef interface IRootStorage IRootStorage;
+#ifdef __cplusplus
+interface IRootStorage;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAdviseSink_FWD_DEFINED__
 #define __IAdviseSink_FWD_DEFINED__
 typedef interface IAdviseSink IAdviseSink;
+#ifdef __cplusplus
+interface IAdviseSink;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __AsyncIAdviseSink_FWD_DEFINED__
 #define __AsyncIAdviseSink_FWD_DEFINED__
 typedef interface AsyncIAdviseSink AsyncIAdviseSink;
+#ifdef __cplusplus
+interface AsyncIAdviseSink;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAdviseSink2_FWD_DEFINED__
 #define __IAdviseSink2_FWD_DEFINED__
 typedef interface IAdviseSink2 IAdviseSink2;
+#ifdef __cplusplus
+interface IAdviseSink2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __AsyncIAdviseSink2_FWD_DEFINED__
 #define __AsyncIAdviseSink2_FWD_DEFINED__
 typedef interface AsyncIAdviseSink2 AsyncIAdviseSink2;
+#ifdef __cplusplus
+interface AsyncIAdviseSink2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDataObject_FWD_DEFINED__
 #define __IDataObject_FWD_DEFINED__
 typedef interface IDataObject IDataObject;
+#ifdef __cplusplus
+interface IDataObject;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDataAdviseHolder_FWD_DEFINED__
 #define __IDataAdviseHolder_FWD_DEFINED__
 typedef interface IDataAdviseHolder IDataAdviseHolder;
+#ifdef __cplusplus
+interface IDataAdviseHolder;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMessageFilter_FWD_DEFINED__
 #define __IMessageFilter_FWD_DEFINED__
 typedef interface IMessageFilter IMessageFilter;
+#ifdef __cplusplus
+interface IMessageFilter;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IClassActivator_FWD_DEFINED__
 #define __IClassActivator_FWD_DEFINED__
 typedef interface IClassActivator IClassActivator;
+#ifdef __cplusplus
+interface IClassActivator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IFillLockBytes_FWD_DEFINED__
 #define __IFillLockBytes_FWD_DEFINED__
 typedef interface IFillLockBytes IFillLockBytes;
+#ifdef __cplusplus
+interface IFillLockBytes;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IProgressNotify_FWD_DEFINED__
 #define __IProgressNotify_FWD_DEFINED__
 typedef interface IProgressNotify IProgressNotify;
+#ifdef __cplusplus
+interface IProgressNotify;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ILayoutStorage_FWD_DEFINED__
 #define __ILayoutStorage_FWD_DEFINED__
 typedef interface ILayoutStorage ILayoutStorage;
+#ifdef __cplusplus
+interface ILayoutStorage;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBlockingLock_FWD_DEFINED__
 #define __IBlockingLock_FWD_DEFINED__
 typedef interface IBlockingLock IBlockingLock;
+#ifdef __cplusplus
+interface IBlockingLock;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITimeAndNoticeControl_FWD_DEFINED__
 #define __ITimeAndNoticeControl_FWD_DEFINED__
 typedef interface ITimeAndNoticeControl ITimeAndNoticeControl;
+#ifdef __cplusplus
+interface ITimeAndNoticeControl;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IOplockStorage_FWD_DEFINED__
 #define __IOplockStorage_FWD_DEFINED__
 typedef interface IOplockStorage IOplockStorage;
+#ifdef __cplusplus
+interface IOplockStorage;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDirectWriterLock_FWD_DEFINED__
 #define __IDirectWriterLock_FWD_DEFINED__
 typedef interface IDirectWriterLock IDirectWriterLock;
+#ifdef __cplusplus
+interface IDirectWriterLock;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IUrlMon_FWD_DEFINED__
 #define __IUrlMon_FWD_DEFINED__
 typedef interface IUrlMon IUrlMon;
+#ifdef __cplusplus
+interface IUrlMon;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IForegroundTransfer_FWD_DEFINED__
 #define __IForegroundTransfer_FWD_DEFINED__
 typedef interface IForegroundTransfer IForegroundTransfer;
+#ifdef __cplusplus
+interface IForegroundTransfer;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IThumbnailExtractor_FWD_DEFINED__
 #define __IThumbnailExtractor_FWD_DEFINED__
 typedef interface IThumbnailExtractor IThumbnailExtractor;
+#ifdef __cplusplus
+interface IThumbnailExtractor;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDummyHICONIncluder_FWD_DEFINED__
 #define __IDummyHICONIncluder_FWD_DEFINED__
 typedef interface IDummyHICONIncluder IDummyHICONIncluder;
+#ifdef __cplusplus
+interface IDummyHICONIncluder;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IProcessLock_FWD_DEFINED__
 #define __IProcessLock_FWD_DEFINED__
 typedef interface IProcessLock IProcessLock;
+#ifdef __cplusplus
+interface IProcessLock;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ISurrogateService_FWD_DEFINED__
 #define __ISurrogateService_FWD_DEFINED__
 typedef interface ISurrogateService ISurrogateService;
+#ifdef __cplusplus
+interface ISurrogateService;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IInitializeSpy_FWD_DEFINED__
 #define __IInitializeSpy_FWD_DEFINED__
 typedef interface IInitializeSpy IInitializeSpy;
+#ifdef __cplusplus
+interface IInitializeSpy;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IApartmentShutdown_FWD_DEFINED__
 #define __IApartmentShutdown_FWD_DEFINED__
 typedef interface IApartmentShutdown IApartmentShutdown;
+#ifdef __cplusplus
+interface IApartmentShutdown;
+#endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
@@ -521,21 +803,25 @@ extern "C" {
 #ifndef __IStream_FWD_DEFINED__
 #define __IStream_FWD_DEFINED__
 typedef interface IStream IStream;
+#ifdef __cplusplus
+interface IStream;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumString_FWD_DEFINED__
 #define __IEnumString_FWD_DEFINED__
 typedef interface IEnumString IEnumString;
+#ifdef __cplusplus
+interface IEnumString;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMultiQI_FWD_DEFINED__
 #define __IMultiQI_FWD_DEFINED__
 typedef interface IMultiQI IMultiQI;
-#endif
-
-#ifndef __AsyncIMultiQI_FWD_DEFINED__
-#define __AsyncIMultiQI_FWD_DEFINED__
-typedef interface AsyncIMultiQI AsyncIMultiQI;
+#ifdef __cplusplus
+interface IMultiQI;
+#endif /* __cplusplus */
 #endif
 
 #endif
@@ -544,16 +830,25 @@ typedef interface AsyncIMultiQI AsyncIMultiQI;
 #ifndef __IAsyncManager_FWD_DEFINED__
 #define __IAsyncManager_FWD_DEFINED__
 typedef interface IAsyncManager IAsyncManager;
+#ifdef __cplusplus
+interface IAsyncManager;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ICallFactory_FWD_DEFINED__
 #define __ICallFactory_FWD_DEFINED__
 typedef interface ICallFactory ICallFactory;
+#ifdef __cplusplus
+interface ICallFactory;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ISynchronize_FWD_DEFINED__
 #define __ISynchronize_FWD_DEFINED__
 typedef interface ISynchronize ISynchronize;
+#ifdef __cplusplus
+interface ISynchronize;
+#endif /* __cplusplus */
 #endif
 
 #endif
@@ -623,19 +918,19 @@ typedef struct IMarshalVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMarshal* This,
+        IMarshal *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMarshal* This);
+        IMarshal *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMarshal* This);
+        IMarshal *This);
 
     /*** IMarshal methods ***/
     HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
-        IMarshal* This,
+        IMarshal *This,
         REFIID riid,
         void *pv,
         DWORD dwDestContext,
@@ -644,7 +939,7 @@ typedef struct IMarshalVtbl {
         CLSID *pCid);
 
     HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
-        IMarshal* This,
+        IMarshal *This,
         REFIID riid,
         void *pv,
         DWORD dwDestContext,
@@ -653,7 +948,7 @@ typedef struct IMarshalVtbl {
         DWORD *pSize);
 
     HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
-        IMarshal* This,
+        IMarshal *This,
         IStream *pStm,
         REFIID riid,
         void *pv,
@@ -662,21 +957,22 @@ typedef struct IMarshalVtbl {
         DWORD mshlflags);
 
     HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
-        IMarshal* This,
+        IMarshal *This,
         IStream *pStm,
         REFIID riid,
         void **ppv);
 
     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
-        IMarshal* This,
+        IMarshal *This,
         IStream *pStm);
 
     HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
-        IMarshal* This,
+        IMarshal *This,
         DWORD dwReserved);
 
     END_INTERFACE
 } IMarshalVtbl;
+
 interface IMarshal {
     CONST_VTBL IMarshalVtbl* lpVtbl;
 };
@@ -729,71 +1025,6 @@ static FORCEINLINE HRESULT IMarshal_DisconnectObject(IMarshal* This,DWORD dwRese
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IMarshal_GetUnmarshalClass_Proxy(
-    IMarshal* This,
-    REFIID riid,
-    void *pv,
-    DWORD dwDestContext,
-    void *pvDestContext,
-    DWORD mshlflags,
-    CLSID *pCid);
-void __RPC_STUB IMarshal_GetUnmarshalClass_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMarshal_GetMarshalSizeMax_Proxy(
-    IMarshal* This,
-    REFIID riid,
-    void *pv,
-    DWORD dwDestContext,
-    void *pvDestContext,
-    DWORD mshlflags,
-    DWORD *pSize);
-void __RPC_STUB IMarshal_GetMarshalSizeMax_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMarshal_MarshalInterface_Proxy(
-    IMarshal* This,
-    IStream *pStm,
-    REFIID riid,
-    void *pv,
-    DWORD dwDestContext,
-    void *pvDestContext,
-    DWORD mshlflags);
-void __RPC_STUB IMarshal_MarshalInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMarshal_UnmarshalInterface_Proxy(
-    IMarshal* This,
-    IStream *pStm,
-    REFIID riid,
-    void **ppv);
-void __RPC_STUB IMarshal_UnmarshalInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMarshal_ReleaseMarshalData_Proxy(
-    IMarshal* This,
-    IStream *pStm);
-void __RPC_STUB IMarshal_ReleaseMarshalData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMarshal_DisconnectObject_Proxy(
-    IMarshal* This,
-    DWORD dwReserved);
-void __RPC_STUB IMarshal_DisconnectObject_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMarshal_INTERFACE_DEFINED__ */
 
@@ -819,18 +1050,19 @@ typedef struct INoMarshalVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        INoMarshal* This,
+        INoMarshal *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        INoMarshal* This);
+        INoMarshal *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        INoMarshal* This);
+        INoMarshal *This);
 
     END_INTERFACE
 } INoMarshalVtbl;
+
 interface INoMarshal {
     CONST_VTBL INoMarshalVtbl* lpVtbl;
 };
@@ -882,18 +1114,19 @@ typedef struct IAgileObjectVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAgileObject* This,
+        IAgileObject *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAgileObject* This);
+        IAgileObject *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAgileObject* This);
+        IAgileObject *This);
 
     END_INTERFACE
 } IAgileObjectVtbl;
+
 interface IAgileObject {
     CONST_VTBL IAgileObjectVtbl* lpVtbl;
 };
@@ -923,6 +1156,85 @@ static FORCEINLINE ULONG IAgileObject_Release(IAgileObject* This) {
 
 #endif  /* __IAgileObject_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IAgileReference interface
+ */
+#ifndef __IAgileReference_INTERFACE_DEFINED__
+#define __IAgileReference_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAgileReference, 0xc03f6a43, 0x65a4, 0x9818, 0x98,0x7e, 0xe0,0xb8,0x10,0xd2,0xa6,0xf2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c03f6a43-65a4-9818-987e-e0b810d2a6f2")
+IAgileReference : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Resolve(
+        REFIID riid,
+        void **ppv) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAgileReference, 0xc03f6a43, 0x65a4, 0x9818, 0x98,0x7e, 0xe0,0xb8,0x10,0xd2,0xa6,0xf2)
+#endif
+#else
+typedef struct IAgileReferenceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAgileReference *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAgileReference *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAgileReference *This);
+
+    /*** IAgileReference methods ***/
+    HRESULT (STDMETHODCALLTYPE *Resolve)(
+        IAgileReference *This,
+        REFIID riid,
+        void **ppv);
+
+    END_INTERFACE
+} IAgileReferenceVtbl;
+
+interface IAgileReference {
+    CONST_VTBL IAgileReferenceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAgileReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAgileReference_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAgileReference_Release(This) (This)->lpVtbl->Release(This)
+/*** IAgileReference methods ***/
+#define IAgileReference_Resolve(This,riid,ppv) (This)->lpVtbl->Resolve(This,riid,ppv)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAgileReference_QueryInterface(IAgileReference* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAgileReference_AddRef(IAgileReference* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAgileReference_Release(IAgileReference* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAgileReference methods ***/
+static FORCEINLINE HRESULT IAgileReference_Resolve(IAgileReference* This,REFIID riid,void **ppv) {
+    return This->lpVtbl->Resolve(This,riid,ppv);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAgileReference_INTERFACE_DEFINED__ */
+
 #endif
 
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
@@ -948,19 +1260,19 @@ typedef struct IMarshal2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMarshal2* This,
+        IMarshal2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMarshal2* This);
+        IMarshal2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMarshal2* This);
+        IMarshal2 *This);
 
     /*** IMarshal methods ***/
     HRESULT (STDMETHODCALLTYPE *GetUnmarshalClass)(
-        IMarshal2* This,
+        IMarshal2 *This,
         REFIID riid,
         void *pv,
         DWORD dwDestContext,
@@ -969,7 +1281,7 @@ typedef struct IMarshal2Vtbl {
         CLSID *pCid);
 
     HRESULT (STDMETHODCALLTYPE *GetMarshalSizeMax)(
-        IMarshal2* This,
+        IMarshal2 *This,
         REFIID riid,
         void *pv,
         DWORD dwDestContext,
@@ -978,7 +1290,7 @@ typedef struct IMarshal2Vtbl {
         DWORD *pSize);
 
     HRESULT (STDMETHODCALLTYPE *MarshalInterface)(
-        IMarshal2* This,
+        IMarshal2 *This,
         IStream *pStm,
         REFIID riid,
         void *pv,
@@ -987,21 +1299,22 @@ typedef struct IMarshal2Vtbl {
         DWORD mshlflags);
 
     HRESULT (STDMETHODCALLTYPE *UnmarshalInterface)(
-        IMarshal2* This,
+        IMarshal2 *This,
         IStream *pStm,
         REFIID riid,
         void **ppv);
 
     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalData)(
-        IMarshal2* This,
+        IMarshal2 *This,
         IStream *pStm);
 
     HRESULT (STDMETHODCALLTYPE *DisconnectObject)(
-        IMarshal2* This,
+        IMarshal2 *This,
         DWORD dwReserved);
 
     END_INTERFACE
 } IMarshal2Vtbl;
+
 interface IMarshal2 {
     CONST_VTBL IMarshal2Vtbl* lpVtbl;
 };
@@ -1100,43 +1413,44 @@ typedef struct IMallocVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMalloc* This,
+        IMalloc *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMalloc* This);
+        IMalloc *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMalloc* This);
+        IMalloc *This);
 
     /*** IMalloc methods ***/
     void * (STDMETHODCALLTYPE *Alloc)(
-        IMalloc* This,
+        IMalloc *This,
         SIZE_T cb);
 
     void * (STDMETHODCALLTYPE *Realloc)(
-        IMalloc* This,
+        IMalloc *This,
         void *pv,
         SIZE_T cb);
 
     void (STDMETHODCALLTYPE *Free)(
-        IMalloc* This,
+        IMalloc *This,
         void *pv);
 
     SIZE_T (STDMETHODCALLTYPE *GetSize)(
-        IMalloc* This,
+        IMalloc *This,
         void *pv);
 
     int (STDMETHODCALLTYPE *DidAlloc)(
-        IMalloc* This,
+        IMalloc *This,
         void *pv);
 
     void (STDMETHODCALLTYPE *HeapMinimize)(
-        IMalloc* This);
+        IMalloc *This);
 
     END_INTERFACE
 } IMallocVtbl;
+
 interface IMalloc {
     CONST_VTBL IMallocVtbl* lpVtbl;
 };
@@ -1189,54 +1503,6 @@ static FORCEINLINE void IMalloc_HeapMinimize(IMalloc* This) {
 
 #endif
 
-void * STDMETHODCALLTYPE IMalloc_Alloc_Proxy(
-    IMalloc* This,
-    SIZE_T cb);
-void __RPC_STUB IMalloc_Alloc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void * STDMETHODCALLTYPE IMalloc_Realloc_Proxy(
-    IMalloc* This,
-    void *pv,
-    SIZE_T cb);
-void __RPC_STUB IMalloc_Realloc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IMalloc_Free_Proxy(
-    IMalloc* This,
-    void *pv);
-void __RPC_STUB IMalloc_Free_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-SIZE_T STDMETHODCALLTYPE IMalloc_GetSize_Proxy(
-    IMalloc* This,
-    void *pv);
-void __RPC_STUB IMalloc_GetSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-int STDMETHODCALLTYPE IMalloc_DidAlloc_Proxy(
-    IMalloc* This,
-    void *pv);
-void __RPC_STUB IMalloc_DidAlloc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IMalloc_HeapMinimize_Proxy(
-    IMalloc* This);
-void __RPC_STUB IMalloc_HeapMinimize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMalloc_INTERFACE_DEFINED__ */
 
@@ -1269,25 +1535,26 @@ typedef struct IStdMarshalInfoVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IStdMarshalInfo* This,
+        IStdMarshalInfo *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IStdMarshalInfo* This);
+        IStdMarshalInfo *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IStdMarshalInfo* This);
+        IStdMarshalInfo *This);
 
     /*** IStdMarshalInfo methods ***/
     HRESULT (STDMETHODCALLTYPE *GetClassForHandler)(
-        IStdMarshalInfo* This,
+        IStdMarshalInfo *This,
         DWORD dwDestContext,
         void *pvDestContext,
         CLSID *pClsid);
 
     END_INTERFACE
 } IStdMarshalInfoVtbl;
+
 interface IStdMarshalInfo {
     CONST_VTBL IStdMarshalInfoVtbl* lpVtbl;
 };
@@ -1320,16 +1587,6 @@ static FORCEINLINE HRESULT IStdMarshalInfo_GetClassForHandler(IStdMarshalInfo* T
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IStdMarshalInfo_GetClassForHandler_Proxy(
-    IStdMarshalInfo* This,
-    DWORD dwDestContext,
-    void *pvDestContext,
-    CLSID *pClsid);
-void __RPC_STUB IStdMarshalInfo_GetClassForHandler_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IStdMarshalInfo_INTERFACE_DEFINED__ */
 
@@ -1372,30 +1629,31 @@ typedef struct IExternalConnectionVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IExternalConnection* This,
+        IExternalConnection *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IExternalConnection* This);
+        IExternalConnection *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IExternalConnection* This);
+        IExternalConnection *This);
 
     /*** IExternalConnection methods ***/
     DWORD (STDMETHODCALLTYPE *AddConnection)(
-        IExternalConnection* This,
+        IExternalConnection *This,
         DWORD extconn,
         DWORD reserved);
 
     DWORD (STDMETHODCALLTYPE *ReleaseConnection)(
-        IExternalConnection* This,
+        IExternalConnection *This,
         DWORD extconn,
         DWORD reserved,
         WINBOOL fLastReleaseCloses);
 
     END_INTERFACE
 } IExternalConnectionVtbl;
+
 interface IExternalConnection {
     CONST_VTBL IExternalConnectionVtbl* lpVtbl;
 };
@@ -1432,25 +1690,6 @@ static FORCEINLINE DWORD IExternalConnection_ReleaseConnection(IExternalConnecti
 
 #endif
 
-DWORD STDMETHODCALLTYPE IExternalConnection_AddConnection_Proxy(
-    IExternalConnection* This,
-    DWORD extconn,
-    DWORD reserved);
-void __RPC_STUB IExternalConnection_AddConnection_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-DWORD STDMETHODCALLTYPE IExternalConnection_ReleaseConnection_Proxy(
-    IExternalConnection* This,
-    DWORD extconn,
-    DWORD reserved,
-    WINBOOL fLastReleaseCloses);
-void __RPC_STUB IExternalConnection_ReleaseConnection_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IExternalConnection_INTERFACE_DEFINED__ */
 
@@ -1490,24 +1729,25 @@ typedef struct IMultiQIVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMultiQI* This,
+        IMultiQI *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMultiQI* This);
+        IMultiQI *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMultiQI* This);
+        IMultiQI *This);
 
     /*** IMultiQI methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryMultipleInterfaces)(
-        IMultiQI* This,
+        IMultiQI *This,
         ULONG cMQIs,
         MULTI_QI *pMQIs);
 
     END_INTERFACE
 } IMultiQIVtbl;
+
 interface IMultiQI {
     CONST_VTBL IMultiQIVtbl* lpVtbl;
 };
@@ -1540,15 +1780,6 @@ static FORCEINLINE HRESULT IMultiQI_QueryMultipleInterfaces(IMultiQI* This,ULONG
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IMultiQI_QueryMultipleInterfaces_Proxy(
-    IMultiQI* This,
-    ULONG cMQIs,
-    MULTI_QI *pMQIs);
-void __RPC_STUB IMultiQI_QueryMultipleInterfaces_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMultiQI_INTERFACE_DEFINED__ */
 
@@ -1563,7 +1794,7 @@ DEFINE_GUID(IID_AsyncIMultiQI, 0x000e0020, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,
 MIDL_INTERFACE("000e0020-0000-0000-c000-000000000046")
 AsyncIMultiQI : public IUnknown
 {
-    virtual void STDMETHODCALLTYPE Begin_QueryMultipleInterfaces(
+    virtual HRESULT STDMETHODCALLTYPE Begin_QueryMultipleInterfaces(
         ULONG cMQIs,
         MULTI_QI *pMQIs) = 0;
 
@@ -1580,28 +1811,29 @@ typedef struct AsyncIMultiQIVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        AsyncIMultiQI* This,
+        AsyncIMultiQI *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        AsyncIMultiQI* This);
+        AsyncIMultiQI *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        AsyncIMultiQI* This);
+        AsyncIMultiQI *This);
 
-    /*** IMultiQI methods ***/
-    void (STDMETHODCALLTYPE *Begin_QueryMultipleInterfaces)(
-        AsyncIMultiQI* This,
+    /*** AsyncIMultiQI methods ***/
+    HRESULT (STDMETHODCALLTYPE *Begin_QueryMultipleInterfaces)(
+        AsyncIMultiQI *This,
         ULONG cMQIs,
         MULTI_QI *pMQIs);
 
     HRESULT (STDMETHODCALLTYPE *Finish_QueryMultipleInterfaces)(
-        AsyncIMultiQI* This,
+        AsyncIMultiQI *This,
         MULTI_QI *pMQIs);
 
     END_INTERFACE
 } AsyncIMultiQIVtbl;
+
 interface AsyncIMultiQI {
     CONST_VTBL AsyncIMultiQIVtbl* lpVtbl;
 };
@@ -1612,7 +1844,7 @@ interface AsyncIMultiQI {
 #define AsyncIMultiQI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define AsyncIMultiQI_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define AsyncIMultiQI_Release(This) (This)->lpVtbl->Release(This)
-/*** IMultiQI methods ***/
+/*** AsyncIMultiQI methods ***/
 #define AsyncIMultiQI_Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs) (This)->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs)
 #define AsyncIMultiQI_Finish_QueryMultipleInterfaces(This,pMQIs) (This)->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs)
 #else
@@ -1626,36 +1858,18 @@ static FORCEINLINE ULONG AsyncIMultiQI_AddRef(AsyncIMultiQI* This) {
 static FORCEINLINE ULONG AsyncIMultiQI_Release(AsyncIMultiQI* This) {
     return This->lpVtbl->Release(This);
 }
-/*** IMultiQI methods ***/
-static FORCEINLINE void Begin_AsyncIMultiQI_QueryMultipleInterfaces(AsyncIMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
-    This->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs);
+/*** AsyncIMultiQI methods ***/
+static FORCEINLINE HRESULT AsyncIMultiQI_Begin_QueryMultipleInterfaces(AsyncIMultiQI* This,ULONG cMQIs,MULTI_QI *pMQIs) {
+    return This->lpVtbl->Begin_QueryMultipleInterfaces(This,cMQIs,pMQIs);
 }
-static FORCEINLINE HRESULT Finish_AsyncIMultiQI_QueryMultipleInterfaces(AsyncIMultiQI* This,MULTI_QI *pMQIs) {
-    return This->lpVtbl->Finish_QueryMultipleInterfaces(This);
+static FORCEINLINE HRESULT AsyncIMultiQI_Finish_QueryMultipleInterfaces(AsyncIMultiQI* This,MULTI_QI *pMQIs) {
+    return This->lpVtbl->Finish_QueryMultipleInterfaces(This,pMQIs);
 }
 #endif
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE AsyncIMultiQI_Begin_QueryMultipleInterfaces_Proxy(
-    IMultiQI* This,
-    ULONG cMQIs,
-    MULTI_QI *pMQIs);
-void __RPC_STUB AsyncIMultiQI_Begin_QueryMultipleInterfaces_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIMultiQI_Finish_QueryMultipleInterfaces_Proxy(
-    IMultiQI* This,
-    ULONG cMQIs,
-    MULTI_QI *pMQIs);
-void __RPC_STUB AsyncIMultiQI_Finish_QueryMultipleInterfaces_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __AsyncIMultiQI_INTERFACE_DEFINED__ */
 
@@ -1687,24 +1901,25 @@ typedef struct IInternalUnknownVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IInternalUnknown* This,
+        IInternalUnknown *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IInternalUnknown* This);
+        IInternalUnknown *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IInternalUnknown* This);
+        IInternalUnknown *This);
 
     /*** IInternalUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInternalInterface)(
-        IInternalUnknown* This,
+        IInternalUnknown *This,
         REFIID riid,
         void **ppv);
 
     END_INTERFACE
 } IInternalUnknownVtbl;
+
 interface IInternalUnknown {
     CONST_VTBL IInternalUnknownVtbl* lpVtbl;
 };
@@ -1737,15 +1952,6 @@ static FORCEINLINE HRESULT IInternalUnknown_QueryInternalInterface(IInternalUnkn
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IInternalUnknown_QueryInternalInterface_Proxy(
-    IInternalUnknown* This,
-    REFIID riid,
-    void **ppv);
-void __RPC_STUB IInternalUnknown_QueryInternalInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IInternalUnknown_INTERFACE_DEFINED__ */
 
@@ -1789,36 +1995,37 @@ typedef struct IEnumUnknownVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumUnknown* This,
+        IEnumUnknown *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumUnknown* This);
+        IEnumUnknown *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumUnknown* This);
+        IEnumUnknown *This);
 
     /*** IEnumUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumUnknown* This,
+        IEnumUnknown *This,
         ULONG celt,
         IUnknown **rgelt,
         ULONG *pceltFetched);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumUnknown* This,
+        IEnumUnknown *This,
         ULONG celt);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumUnknown* This);
+        IEnumUnknown *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumUnknown* This,
+        IEnumUnknown *This,
         IEnumUnknown **ppenum);
 
     END_INTERFACE
 } IEnumUnknownVtbl;
+
 interface IEnumUnknown {
     CONST_VTBL IEnumUnknownVtbl* lpVtbl;
 };
@@ -1873,30 +2080,7 @@ void __RPC_STUB IEnumUnknown_RemoteNext_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumUnknown_Skip_Proxy(
-    IEnumUnknown* This,
-    ULONG celt);
-void __RPC_STUB IEnumUnknown_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumUnknown_Reset_Proxy(
-    IEnumUnknown* This);
-void __RPC_STUB IEnumUnknown_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumUnknown_Clone_Proxy(
-    IEnumUnknown* This,
-    IEnumUnknown **ppenum);
-void __RPC_STUB IEnumUnknown_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT CALLBACK IEnumUnknown_Next_Proxy(
+HRESULT CALLBACK IEnumUnknown_Next_Proxy(
     IEnumUnknown* This,
     ULONG celt,
     IUnknown **rgelt,
@@ -1947,36 +2131,37 @@ typedef struct IEnumStringVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumString* This,
+        IEnumString *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumString* This);
+        IEnumString *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumString* This);
+        IEnumString *This);
 
     /*** IEnumString methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumString* This,
+        IEnumString *This,
         ULONG celt,
         LPOLESTR *rgelt,
         ULONG *pceltFetched);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumString* This,
+        IEnumString *This,
         ULONG celt);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumString* This);
+        IEnumString *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumString* This,
+        IEnumString *This,
         IEnumString **ppenum);
 
     END_INTERFACE
 } IEnumStringVtbl;
+
 interface IEnumString {
     CONST_VTBL IEnumStringVtbl* lpVtbl;
 };
@@ -2031,29 +2216,6 @@ void __RPC_STUB IEnumString_RemoteNext_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumString_Skip_Proxy(
-    IEnumString* This,
-    ULONG celt);
-void __RPC_STUB IEnumString_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumString_Reset_Proxy(
-    IEnumString* This);
-void __RPC_STUB IEnumString_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumString_Clone_Proxy(
-    IEnumString* This,
-    IEnumString **ppenum);
-void __RPC_STUB IEnumString_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IEnumString_Next_Proxy(
     IEnumString* This,
     ULONG celt,
@@ -2099,31 +2261,32 @@ typedef struct ISequentialStreamVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ISequentialStream* This,
+        ISequentialStream *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ISequentialStream* This);
+        ISequentialStream *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ISequentialStream* This);
+        ISequentialStream *This);
 
     /*** ISequentialStream methods ***/
     HRESULT (STDMETHODCALLTYPE *Read)(
-        ISequentialStream* This,
+        ISequentialStream *This,
         void *pv,
         ULONG cb,
         ULONG *pcbRead);
 
     HRESULT (STDMETHODCALLTYPE *Write)(
-        ISequentialStream* This,
+        ISequentialStream *This,
         const void *pv,
         ULONG cb,
         ULONG *pcbWritten);
 
     END_INTERFACE
 } ISequentialStreamVtbl;
+
 interface ISequentialStream {
     CONST_VTBL ISequentialStreamVtbl* lpVtbl;
 };
@@ -2297,77 +2460,78 @@ typedef struct IStreamVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IStream* This,
+        IStream *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IStream* This);
+        IStream *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IStream* This);
+        IStream *This);
 
     /*** ISequentialStream methods ***/
     HRESULT (STDMETHODCALLTYPE *Read)(
-        IStream* This,
+        IStream *This,
         void *pv,
         ULONG cb,
         ULONG *pcbRead);
 
     HRESULT (STDMETHODCALLTYPE *Write)(
-        IStream* This,
+        IStream *This,
         const void *pv,
         ULONG cb,
         ULONG *pcbWritten);
 
     /*** IStream methods ***/
     HRESULT (STDMETHODCALLTYPE *Seek)(
-        IStream* This,
+        IStream *This,
         LARGE_INTEGER dlibMove,
         DWORD dwOrigin,
         ULARGE_INTEGER *plibNewPosition);
 
     HRESULT (STDMETHODCALLTYPE *SetSize)(
-        IStream* This,
+        IStream *This,
         ULARGE_INTEGER libNewSize);
 
     HRESULT (STDMETHODCALLTYPE *CopyTo)(
-        IStream* This,
+        IStream *This,
         IStream *pstm,
         ULARGE_INTEGER cb,
         ULARGE_INTEGER *pcbRead,
         ULARGE_INTEGER *pcbWritten);
 
     HRESULT (STDMETHODCALLTYPE *Commit)(
-        IStream* This,
+        IStream *This,
         DWORD grfCommitFlags);
 
     HRESULT (STDMETHODCALLTYPE *Revert)(
-        IStream* This);
+        IStream *This);
 
     HRESULT (STDMETHODCALLTYPE *LockRegion)(
-        IStream* This,
+        IStream *This,
         ULARGE_INTEGER libOffset,
         ULARGE_INTEGER cb,
         DWORD dwLockType);
 
     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
-        IStream* This,
+        IStream *This,
         ULARGE_INTEGER libOffset,
         ULARGE_INTEGER cb,
         DWORD dwLockType);
 
     HRESULT (STDMETHODCALLTYPE *Stat)(
-        IStream* This,
+        IStream *This,
         STATSTG *pstatstg,
         DWORD grfStatFlag);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IStream* This,
+        IStream *This,
         IStream **ppstm);
 
     END_INTERFACE
 } IStreamVtbl;
+
 interface IStream {
     CONST_VTBL IStreamVtbl* lpVtbl;
 };
@@ -2452,14 +2616,6 @@ void __RPC_STUB IStream_RemoteSeek_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStream_SetSize_Proxy(
-    IStream* This,
-    ULARGE_INTEGER libNewSize);
-void __RPC_STUB IStream_SetSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT STDMETHODCALLTYPE IStream_RemoteCopyTo_Proxy(
     IStream* This,
     IStream *pstm,
@@ -2471,58 +2627,6 @@ void __RPC_STUB IStream_RemoteCopyTo_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStream_Commit_Proxy(
-    IStream* This,
-    DWORD grfCommitFlags);
-void __RPC_STUB IStream_Commit_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStream_Revert_Proxy(
-    IStream* This);
-void __RPC_STUB IStream_Revert_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStream_LockRegion_Proxy(
-    IStream* This,
-    ULARGE_INTEGER libOffset,
-    ULARGE_INTEGER cb,
-    DWORD dwLockType);
-void __RPC_STUB IStream_LockRegion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStream_UnlockRegion_Proxy(
-    IStream* This,
-    ULARGE_INTEGER libOffset,
-    ULARGE_INTEGER cb,
-    DWORD dwLockType);
-void __RPC_STUB IStream_UnlockRegion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStream_Stat_Proxy(
-    IStream* This,
-    STATSTG *pstatstg,
-    DWORD grfStatFlag);
-void __RPC_STUB IStream_Stat_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStream_Clone_Proxy(
-    IStream* This,
-    IStream **ppstm);
-void __RPC_STUB IStream_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IStream_Seek_Proxy(
     IStream* This,
     LARGE_INTEGER dlibMove,
@@ -2602,41 +2706,42 @@ typedef struct IRpcChannelBufferVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRpcChannelBuffer* This,
+        IRpcChannelBuffer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRpcChannelBuffer* This);
+        IRpcChannelBuffer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRpcChannelBuffer* This);
+        IRpcChannelBuffer *This);
 
     /*** IRpcChannelBuffer methods ***/
     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
-        IRpcChannelBuffer* This,
+        IRpcChannelBuffer *This,
         RPCOLEMESSAGE *pMessage,
         REFIID riid);
 
     HRESULT (STDMETHODCALLTYPE *SendReceive)(
-        IRpcChannelBuffer* This,
+        IRpcChannelBuffer *This,
         RPCOLEMESSAGE *pMessage,
         ULONG *pStatus);
 
     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
-        IRpcChannelBuffer* This,
+        IRpcChannelBuffer *This,
         RPCOLEMESSAGE *pMessage);
 
     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
-        IRpcChannelBuffer* This,
+        IRpcChannelBuffer *This,
         DWORD *pdwDestContext,
         void **ppvDestContext);
 
     HRESULT (STDMETHODCALLTYPE *IsConnected)(
-        IRpcChannelBuffer* This);
+        IRpcChannelBuffer *This);
 
     END_INTERFACE
 } IRpcChannelBufferVtbl;
+
 interface IRpcChannelBuffer {
     CONST_VTBL IRpcChannelBufferVtbl* lpVtbl;
 };
@@ -2685,48 +2790,6 @@ static FORCEINLINE HRESULT IRpcChannelBuffer_IsConnected(IRpcChannelBuffer* This
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_GetBuffer_Proxy(
-    IRpcChannelBuffer* This,
-    RPCOLEMESSAGE *pMessage,
-    REFIID riid);
-void __RPC_STUB IRpcChannelBuffer_GetBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_SendReceive_Proxy(
-    IRpcChannelBuffer* This,
-    RPCOLEMESSAGE *pMessage,
-    ULONG *pStatus);
-void __RPC_STUB IRpcChannelBuffer_SendReceive_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_FreeBuffer_Proxy(
-    IRpcChannelBuffer* This,
-    RPCOLEMESSAGE *pMessage);
-void __RPC_STUB IRpcChannelBuffer_FreeBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_GetDestCtx_Proxy(
-    IRpcChannelBuffer* This,
-    DWORD *pdwDestContext,
-    void **ppvDestContext);
-void __RPC_STUB IRpcChannelBuffer_GetDestCtx_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer_IsConnected_Proxy(
-    IRpcChannelBuffer* This);
-void __RPC_STUB IRpcChannelBuffer_IsConnected_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRpcChannelBuffer_INTERFACE_DEFINED__ */
 
@@ -2757,46 +2820,47 @@ typedef struct IRpcChannelBuffer2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRpcChannelBuffer2* This,
+        IRpcChannelBuffer2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRpcChannelBuffer2* This);
+        IRpcChannelBuffer2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRpcChannelBuffer2* This);
+        IRpcChannelBuffer2 *This);
 
     /*** IRpcChannelBuffer methods ***/
     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
-        IRpcChannelBuffer2* This,
+        IRpcChannelBuffer2 *This,
         RPCOLEMESSAGE *pMessage,
         REFIID riid);
 
     HRESULT (STDMETHODCALLTYPE *SendReceive)(
-        IRpcChannelBuffer2* This,
+        IRpcChannelBuffer2 *This,
         RPCOLEMESSAGE *pMessage,
         ULONG *pStatus);
 
     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
-        IRpcChannelBuffer2* This,
+        IRpcChannelBuffer2 *This,
         RPCOLEMESSAGE *pMessage);
 
     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
-        IRpcChannelBuffer2* This,
+        IRpcChannelBuffer2 *This,
         DWORD *pdwDestContext,
         void **ppvDestContext);
 
     HRESULT (STDMETHODCALLTYPE *IsConnected)(
-        IRpcChannelBuffer2* This);
+        IRpcChannelBuffer2 *This);
 
     /*** IRpcChannelBuffer2 methods ***/
     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
-        IRpcChannelBuffer2* This,
+        IRpcChannelBuffer2 *This,
         DWORD *pdwVersion);
 
     END_INTERFACE
 } IRpcChannelBuffer2Vtbl;
+
 interface IRpcChannelBuffer2 {
     CONST_VTBL IRpcChannelBuffer2Vtbl* lpVtbl;
 };
@@ -2851,14 +2915,6 @@ static FORCEINLINE HRESULT IRpcChannelBuffer2_GetProtocolVersion(IRpcChannelBuff
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer2_GetProtocolVersion_Proxy(
-    IRpcChannelBuffer2* This,
-    DWORD *pdwVersion);
-void __RPC_STUB IRpcChannelBuffer2_GetProtocolVersion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRpcChannelBuffer2_INTERFACE_DEFINED__ */
 
@@ -2898,64 +2954,65 @@ typedef struct IAsyncRpcChannelBufferVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAsyncRpcChannelBuffer* This,
+        IAsyncRpcChannelBuffer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAsyncRpcChannelBuffer* This);
+        IAsyncRpcChannelBuffer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAsyncRpcChannelBuffer* This);
+        IAsyncRpcChannelBuffer *This);
 
     /*** IRpcChannelBuffer methods ***/
     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
-        IAsyncRpcChannelBuffer* This,
+        IAsyncRpcChannelBuffer *This,
         RPCOLEMESSAGE *pMessage,
         REFIID riid);
 
     HRESULT (STDMETHODCALLTYPE *SendReceive)(
-        IAsyncRpcChannelBuffer* This,
+        IAsyncRpcChannelBuffer *This,
         RPCOLEMESSAGE *pMessage,
         ULONG *pStatus);
 
     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
-        IAsyncRpcChannelBuffer* This,
+        IAsyncRpcChannelBuffer *This,
         RPCOLEMESSAGE *pMessage);
 
     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
-        IAsyncRpcChannelBuffer* This,
+        IAsyncRpcChannelBuffer *This,
         DWORD *pdwDestContext,
         void **ppvDestContext);
 
     HRESULT (STDMETHODCALLTYPE *IsConnected)(
-        IAsyncRpcChannelBuffer* This);
+        IAsyncRpcChannelBuffer *This);
 
     /*** IRpcChannelBuffer2 methods ***/
     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
-        IAsyncRpcChannelBuffer* This,
+        IAsyncRpcChannelBuffer *This,
         DWORD *pdwVersion);
 
     /*** IAsyncRpcChannelBuffer methods ***/
     HRESULT (STDMETHODCALLTYPE *Send)(
-        IAsyncRpcChannelBuffer* This,
+        IAsyncRpcChannelBuffer *This,
         RPCOLEMESSAGE *pMsg,
         ISynchronize *pSync,
         ULONG *pulStatus);
 
     HRESULT (STDMETHODCALLTYPE *Receive)(
-        IAsyncRpcChannelBuffer* This,
+        IAsyncRpcChannelBuffer *This,
         RPCOLEMESSAGE *pMsg,
         ULONG *pulStatus);
 
     HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
-        IAsyncRpcChannelBuffer* This,
+        IAsyncRpcChannelBuffer *This,
         RPCOLEMESSAGE *pMsg,
         DWORD *pdwDestContext,
         void **ppvDestContext);
 
     END_INTERFACE
 } IAsyncRpcChannelBufferVtbl;
+
 interface IAsyncRpcChannelBuffer {
     CONST_VTBL IAsyncRpcChannelBufferVtbl* lpVtbl;
 };
@@ -3024,35 +3081,6 @@ static FORCEINLINE HRESULT IAsyncRpcChannelBuffer_GetDestCtxEx(IAsyncRpcChannelB
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_Send_Proxy(
-    IAsyncRpcChannelBuffer* This,
-    RPCOLEMESSAGE *pMsg,
-    ISynchronize *pSync,
-    ULONG *pulStatus);
-void __RPC_STUB IAsyncRpcChannelBuffer_Send_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_Receive_Proxy(
-    IAsyncRpcChannelBuffer* This,
-    RPCOLEMESSAGE *pMsg,
-    ULONG *pulStatus);
-void __RPC_STUB IAsyncRpcChannelBuffer_Receive_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncRpcChannelBuffer_GetDestCtxEx_Proxy(
-    IAsyncRpcChannelBuffer* This,
-    RPCOLEMESSAGE *pMsg,
-    DWORD *pdwDestContext,
-    void **ppvDestContext);
-void __RPC_STUB IAsyncRpcChannelBuffer_GetDestCtxEx_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IAsyncRpcChannelBuffer_INTERFACE_DEFINED__ */
 
@@ -3108,84 +3136,85 @@ typedef struct IRpcChannelBuffer3Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRpcChannelBuffer3* This);
+        IRpcChannelBuffer3 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRpcChannelBuffer3* This);
+        IRpcChannelBuffer3 *This);
 
     /*** IRpcChannelBuffer methods ***/
     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         RPCOLEMESSAGE *pMessage,
         REFIID riid);
 
     HRESULT (STDMETHODCALLTYPE *SendReceive)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         RPCOLEMESSAGE *pMessage,
         ULONG *pStatus);
 
     HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         RPCOLEMESSAGE *pMessage);
 
     HRESULT (STDMETHODCALLTYPE *GetDestCtx)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         DWORD *pdwDestContext,
         void **ppvDestContext);
 
     HRESULT (STDMETHODCALLTYPE *IsConnected)(
-        IRpcChannelBuffer3* This);
+        IRpcChannelBuffer3 *This);
 
     /*** IRpcChannelBuffer2 methods ***/
     HRESULT (STDMETHODCALLTYPE *GetProtocolVersion)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         DWORD *pdwVersion);
 
     /*** IRpcChannelBuffer3 methods ***/
     HRESULT (STDMETHODCALLTYPE *Send)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         RPCOLEMESSAGE *pMsg,
         ULONG *pulStatus);
 
     HRESULT (STDMETHODCALLTYPE *Receive)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         RPCOLEMESSAGE *pMsg,
         ULONG ulSize,
         ULONG *pulStatus);
 
     HRESULT (STDMETHODCALLTYPE *Cancel)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         RPCOLEMESSAGE *pMsg);
 
     HRESULT (STDMETHODCALLTYPE *GetCallContext)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         RPCOLEMESSAGE *pMsg,
         REFIID riid,
         void **pInterface);
 
     HRESULT (STDMETHODCALLTYPE *GetDestCtxEx)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         RPCOLEMESSAGE *pMsg,
         DWORD *pdwDestContext,
         void **ppvDestContext);
 
     HRESULT (STDMETHODCALLTYPE *GetState)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         RPCOLEMESSAGE *pMsg,
         DWORD *pState);
 
     HRESULT (STDMETHODCALLTYPE *RegisterAsync)(
-        IRpcChannelBuffer3* This,
+        IRpcChannelBuffer3 *This,
         RPCOLEMESSAGE *pMsg,
         IAsyncManager *pAsyncMgr);
 
     END_INTERFACE
 } IRpcChannelBuffer3Vtbl;
+
 interface IRpcChannelBuffer3 {
     CONST_VTBL IRpcChannelBuffer3Vtbl* lpVtbl;
 };
@@ -3270,71 +3299,6 @@ static FORCEINLINE HRESULT IRpcChannelBuffer3_RegisterAsync(IRpcChannelBuffer3*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Send_Proxy(
-    IRpcChannelBuffer3* This,
-    RPCOLEMESSAGE *pMsg,
-    ULONG *pulStatus);
-void __RPC_STUB IRpcChannelBuffer3_Send_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Receive_Proxy(
-    IRpcChannelBuffer3* This,
-    RPCOLEMESSAGE *pMsg,
-    ULONG ulSize,
-    ULONG *pulStatus);
-void __RPC_STUB IRpcChannelBuffer3_Receive_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_Cancel_Proxy(
-    IRpcChannelBuffer3* This,
-    RPCOLEMESSAGE *pMsg);
-void __RPC_STUB IRpcChannelBuffer3_Cancel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetCallContext_Proxy(
-    IRpcChannelBuffer3* This,
-    RPCOLEMESSAGE *pMsg,
-    REFIID riid,
-    void **pInterface);
-void __RPC_STUB IRpcChannelBuffer3_GetCallContext_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetDestCtxEx_Proxy(
-    IRpcChannelBuffer3* This,
-    RPCOLEMESSAGE *pMsg,
-    DWORD *pdwDestContext,
-    void **ppvDestContext);
-void __RPC_STUB IRpcChannelBuffer3_GetDestCtxEx_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_GetState_Proxy(
-    IRpcChannelBuffer3* This,
-    RPCOLEMESSAGE *pMsg,
-    DWORD *pState);
-void __RPC_STUB IRpcChannelBuffer3_GetState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcChannelBuffer3_RegisterAsync_Proxy(
-    IRpcChannelBuffer3* This,
-    RPCOLEMESSAGE *pMsg,
-    IAsyncManager *pAsyncMgr);
-void __RPC_STUB IRpcChannelBuffer3_RegisterAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRpcChannelBuffer3_INTERFACE_DEFINED__ */
 
@@ -3363,23 +3327,24 @@ typedef struct IRpcSyntaxNegotiateVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRpcSyntaxNegotiate* This,
+        IRpcSyntaxNegotiate *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRpcSyntaxNegotiate* This);
+        IRpcSyntaxNegotiate *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRpcSyntaxNegotiate* This);
+        IRpcSyntaxNegotiate *This);
 
     /*** IRpcSyntaxNegotiate methods ***/
     HRESULT (STDMETHODCALLTYPE *NegotiateSyntax)(
-        IRpcSyntaxNegotiate* This,
+        IRpcSyntaxNegotiate *This,
         RPCOLEMESSAGE *pMsg);
 
     END_INTERFACE
 } IRpcSyntaxNegotiateVtbl;
+
 interface IRpcSyntaxNegotiate {
     CONST_VTBL IRpcSyntaxNegotiateVtbl* lpVtbl;
 };
@@ -3412,14 +3377,6 @@ static FORCEINLINE HRESULT IRpcSyntaxNegotiate_NegotiateSyntax(IRpcSyntaxNegotia
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRpcSyntaxNegotiate_NegotiateSyntax_Proxy(
-    IRpcSyntaxNegotiate* This,
-    RPCOLEMESSAGE *pMsg);
-void __RPC_STUB IRpcSyntaxNegotiate_NegotiateSyntax_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRpcSyntaxNegotiate_INTERFACE_DEFINED__ */
 
@@ -3451,26 +3408,27 @@ typedef struct IRpcProxyBufferVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRpcProxyBuffer* This,
+        IRpcProxyBuffer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRpcProxyBuffer* This);
+        IRpcProxyBuffer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRpcProxyBuffer* This);
+        IRpcProxyBuffer *This);
 
     /*** IRpcProxyBuffer methods ***/
     HRESULT (STDMETHODCALLTYPE *Connect)(
-        IRpcProxyBuffer* This,
+        IRpcProxyBuffer *This,
         IRpcChannelBuffer *pRpcChannelBuffer);
 
     void (STDMETHODCALLTYPE *Disconnect)(
-        IRpcProxyBuffer* This);
+        IRpcProxyBuffer *This);
 
     END_INTERFACE
 } IRpcProxyBufferVtbl;
+
 interface IRpcProxyBuffer {
     CONST_VTBL IRpcProxyBufferVtbl* lpVtbl;
 };
@@ -3507,21 +3465,6 @@ static FORCEINLINE void IRpcProxyBuffer_Disconnect(IRpcProxyBuffer* This) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRpcProxyBuffer_Connect_Proxy(
-    IRpcProxyBuffer* This,
-    IRpcChannelBuffer *pRpcChannelBuffer);
-void __RPC_STUB IRpcProxyBuffer_Connect_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IRpcProxyBuffer_Disconnect_Proxy(
-    IRpcProxyBuffer* This);
-void __RPC_STUB IRpcProxyBuffer_Disconnect_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRpcProxyBuffer_INTERFACE_DEFINED__ */
 
@@ -3571,46 +3514,47 @@ typedef struct IRpcStubBufferVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRpcStubBuffer* This,
+        IRpcStubBuffer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRpcStubBuffer* This);
+        IRpcStubBuffer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRpcStubBuffer* This);
+        IRpcStubBuffer *This);
 
     /*** IRpcStubBuffer methods ***/
     HRESULT (STDMETHODCALLTYPE *Connect)(
-        IRpcStubBuffer* This,
+        IRpcStubBuffer *This,
         IUnknown *pUnkServer);
 
     void (STDMETHODCALLTYPE *Disconnect)(
-        IRpcStubBuffer* This);
+        IRpcStubBuffer *This);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IRpcStubBuffer* This,
+        IRpcStubBuffer *This,
         RPCOLEMESSAGE *_prpcmsg,
         IRpcChannelBuffer *_pRpcChannelBuffer);
 
     IRpcStubBuffer * (STDMETHODCALLTYPE *IsIIDSupported)(
-        IRpcStubBuffer* This,
+        IRpcStubBuffer *This,
         REFIID riid);
 
     ULONG (STDMETHODCALLTYPE *CountRefs)(
-        IRpcStubBuffer* This);
+        IRpcStubBuffer *This);
 
     HRESULT (STDMETHODCALLTYPE *DebugServerQueryInterface)(
-        IRpcStubBuffer* This,
+        IRpcStubBuffer *This,
         void **ppv);
 
     void (STDMETHODCALLTYPE *DebugServerRelease)(
-        IRpcStubBuffer* This,
+        IRpcStubBuffer *This,
         void *pv);
 
     END_INTERFACE
 } IRpcStubBufferVtbl;
+
 interface IRpcStubBuffer {
     CONST_VTBL IRpcStubBufferVtbl* lpVtbl;
 };
@@ -3667,61 +3611,6 @@ static FORCEINLINE void IRpcStubBuffer_DebugServerRelease(IRpcStubBuffer* This,v
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRpcStubBuffer_Connect_Proxy(
-    IRpcStubBuffer* This,
-    IUnknown *pUnkServer);
-void __RPC_STUB IRpcStubBuffer_Connect_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IRpcStubBuffer_Disconnect_Proxy(
-    IRpcStubBuffer* This);
-void __RPC_STUB IRpcStubBuffer_Disconnect_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcStubBuffer_Invoke_Proxy(
-    IRpcStubBuffer* This,
-    RPCOLEMESSAGE *_prpcmsg,
-    IRpcChannelBuffer *_pRpcChannelBuffer);
-void __RPC_STUB IRpcStubBuffer_Invoke_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-IRpcStubBuffer * STDMETHODCALLTYPE IRpcStubBuffer_IsIIDSupported_Proxy(
-    IRpcStubBuffer* This,
-    REFIID riid);
-void __RPC_STUB IRpcStubBuffer_IsIIDSupported_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-ULONG STDMETHODCALLTYPE IRpcStubBuffer_CountRefs_Proxy(
-    IRpcStubBuffer* This);
-void __RPC_STUB IRpcStubBuffer_CountRefs_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcStubBuffer_DebugServerQueryInterface_Proxy(
-    IRpcStubBuffer* This,
-    void **ppv);
-void __RPC_STUB IRpcStubBuffer_DebugServerQueryInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IRpcStubBuffer_DebugServerRelease_Proxy(
-    IRpcStubBuffer* This,
-    void *pv);
-void __RPC_STUB IRpcStubBuffer_DebugServerRelease_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRpcStubBuffer_INTERFACE_DEFINED__ */
 
@@ -3758,32 +3647,33 @@ typedef struct IPSFactoryBufferVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPSFactoryBuffer* This,
+        IPSFactoryBuffer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPSFactoryBuffer* This);
+        IPSFactoryBuffer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPSFactoryBuffer* This);
+        IPSFactoryBuffer *This);
 
     /*** IPSFactoryBuffer methods ***/
     HRESULT (STDMETHODCALLTYPE *CreateProxy)(
-        IPSFactoryBuffer* This,
+        IPSFactoryBuffer *This,
         IUnknown *pUnkOuter,
         REFIID riid,
         IRpcProxyBuffer **ppProxy,
         void **ppv);
 
     HRESULT (STDMETHODCALLTYPE *CreateStub)(
-        IPSFactoryBuffer* This,
+        IPSFactoryBuffer *This,
         REFIID riid,
         IUnknown *pUnkServer,
         IRpcStubBuffer **ppStub);
 
     END_INTERFACE
 } IPSFactoryBufferVtbl;
+
 interface IPSFactoryBuffer {
     CONST_VTBL IPSFactoryBufferVtbl* lpVtbl;
 };
@@ -3820,27 +3710,6 @@ static FORCEINLINE HRESULT IPSFactoryBuffer_CreateStub(IPSFactoryBuffer* This,RE
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPSFactoryBuffer_CreateProxy_Proxy(
-    IPSFactoryBuffer* This,
-    IUnknown *pUnkOuter,
-    REFIID riid,
-    IRpcProxyBuffer **ppProxy,
-    void **ppv);
-void __RPC_STUB IPSFactoryBuffer_CreateProxy_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPSFactoryBuffer_CreateStub_Proxy(
-    IPSFactoryBuffer* This,
-    REFIID riid,
-    IUnknown *pUnkServer,
-    IRpcStubBuffer **ppStub);
-void __RPC_STUB IPSFactoryBuffer_CreateStub_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPSFactoryBuffer_INTERFACE_DEFINED__ */
 
@@ -3917,32 +3786,32 @@ typedef struct IChannelHookVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IChannelHook* This,
+        IChannelHook *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IChannelHook* This);
+        IChannelHook *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IChannelHook* This);
+        IChannelHook *This);
 
     /*** IChannelHook methods ***/
     void (STDMETHODCALLTYPE *ClientGetSize)(
-        IChannelHook* This,
+        IChannelHook *This,
         REFGUID uExtent,
         REFIID riid,
         ULONG *pDataSize);
 
     void (STDMETHODCALLTYPE *ClientFillBuffer)(
-        IChannelHook* This,
+        IChannelHook *This,
         REFGUID uExtent,
         REFIID riid,
         ULONG *pDataSize,
         void *pDataBuffer);
 
     void (STDMETHODCALLTYPE *ClientNotify)(
-        IChannelHook* This,
+        IChannelHook *This,
         REFGUID uExtent,
         REFIID riid,
         ULONG cbDataSize,
@@ -3951,7 +3820,7 @@ typedef struct IChannelHookVtbl {
         HRESULT hrFault);
 
     void (STDMETHODCALLTYPE *ServerNotify)(
-        IChannelHook* This,
+        IChannelHook *This,
         REFGUID uExtent,
         REFIID riid,
         ULONG cbDataSize,
@@ -3959,14 +3828,14 @@ typedef struct IChannelHookVtbl {
         DWORD lDataRep);
 
     void (STDMETHODCALLTYPE *ServerGetSize)(
-        IChannelHook* This,
+        IChannelHook *This,
         REFGUID uExtent,
         REFIID riid,
         HRESULT hrFault,
         ULONG *pDataSize);
 
     void (STDMETHODCALLTYPE *ServerFillBuffer)(
-        IChannelHook* This,
+        IChannelHook *This,
         REFGUID uExtent,
         REFIID riid,
         ULONG *pDataSize,
@@ -3975,6 +3844,7 @@ typedef struct IChannelHookVtbl {
 
     END_INTERFACE
 } IChannelHookVtbl;
+
 interface IChannelHook {
     CONST_VTBL IChannelHookVtbl* lpVtbl;
 };
@@ -4027,75 +3897,6 @@ static FORCEINLINE void IChannelHook_ServerFillBuffer(IChannelHook* This,REFGUID
 
 #endif
 
-void STDMETHODCALLTYPE IChannelHook_ClientGetSize_Proxy(
-    IChannelHook* This,
-    REFGUID uExtent,
-    REFIID riid,
-    ULONG *pDataSize);
-void __RPC_STUB IChannelHook_ClientGetSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IChannelHook_ClientFillBuffer_Proxy(
-    IChannelHook* This,
-    REFGUID uExtent,
-    REFIID riid,
-    ULONG *pDataSize,
-    void *pDataBuffer);
-void __RPC_STUB IChannelHook_ClientFillBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IChannelHook_ClientNotify_Proxy(
-    IChannelHook* This,
-    REFGUID uExtent,
-    REFIID riid,
-    ULONG cbDataSize,
-    void *pDataBuffer,
-    DWORD lDataRep,
-    HRESULT hrFault);
-void __RPC_STUB IChannelHook_ClientNotify_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IChannelHook_ServerNotify_Proxy(
-    IChannelHook* This,
-    REFGUID uExtent,
-    REFIID riid,
-    ULONG cbDataSize,
-    void *pDataBuffer,
-    DWORD lDataRep);
-void __RPC_STUB IChannelHook_ServerNotify_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IChannelHook_ServerGetSize_Proxy(
-    IChannelHook* This,
-    REFGUID uExtent,
-    REFIID riid,
-    HRESULT hrFault,
-    ULONG *pDataSize);
-void __RPC_STUB IChannelHook_ServerGetSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IChannelHook_ServerFillBuffer_Proxy(
-    IChannelHook* This,
-    REFGUID uExtent,
-    REFIID riid,
-    ULONG *pDataSize,
-    void *pDataBuffer,
-    HRESULT hrFault);
-void __RPC_STUB IChannelHook_ServerFillBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IChannelHook_INTERFACE_DEFINED__ */
 
@@ -4194,19 +3995,19 @@ typedef struct IClientSecurityVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IClientSecurity* This,
+        IClientSecurity *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IClientSecurity* This);
+        IClientSecurity *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IClientSecurity* This);
+        IClientSecurity *This);
 
     /*** IClientSecurity methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
-        IClientSecurity* This,
+        IClientSecurity *This,
         IUnknown *pProxy,
         DWORD *pAuthnSvc,
         DWORD *pAuthzSvc,
@@ -4217,7 +4018,7 @@ typedef struct IClientSecurityVtbl {
         DWORD *pCapabilites);
 
     HRESULT (STDMETHODCALLTYPE *SetBlanket)(
-        IClientSecurity* This,
+        IClientSecurity *This,
         IUnknown *pProxy,
         DWORD dwAuthnSvc,
         DWORD dwAuthzSvc,
@@ -4228,12 +4029,13 @@ typedef struct IClientSecurityVtbl {
         DWORD dwCapabilities);
 
     HRESULT (STDMETHODCALLTYPE *CopyProxy)(
-        IClientSecurity* This,
+        IClientSecurity *This,
         IUnknown *pProxy,
         IUnknown **ppCopy);
 
     END_INTERFACE
 } IClientSecurityVtbl;
+
 interface IClientSecurity {
     CONST_VTBL IClientSecurityVtbl* lpVtbl;
 };
@@ -4274,45 +4076,6 @@ static FORCEINLINE HRESULT IClientSecurity_CopyProxy(IClientSecurity* This,IUnkn
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IClientSecurity_QueryBlanket_Proxy(
-    IClientSecurity* This,
-    IUnknown *pProxy,
-    DWORD *pAuthnSvc,
-    DWORD *pAuthzSvc,
-    OLECHAR **pServerPrincName,
-    DWORD *pAuthnLevel,
-    DWORD *pImpLevel,
-    void **pAuthInfo,
-    DWORD *pCapabilites);
-void __RPC_STUB IClientSecurity_QueryBlanket_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IClientSecurity_SetBlanket_Proxy(
-    IClientSecurity* This,
-    IUnknown *pProxy,
-    DWORD dwAuthnSvc,
-    DWORD dwAuthzSvc,
-    OLECHAR *pServerPrincName,
-    DWORD dwAuthnLevel,
-    DWORD dwImpLevel,
-    void *pAuthInfo,
-    DWORD dwCapabilities);
-void __RPC_STUB IClientSecurity_SetBlanket_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IClientSecurity_CopyProxy_Proxy(
-    IClientSecurity* This,
-    IUnknown *pProxy,
-    IUnknown **ppCopy);
-void __RPC_STUB IClientSecurity_CopyProxy_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IClientSecurity_INTERFACE_DEFINED__ */
 
@@ -4358,19 +4121,19 @@ typedef struct IServerSecurityVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IServerSecurity* This,
+        IServerSecurity *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IServerSecurity* This);
+        IServerSecurity *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IServerSecurity* This);
+        IServerSecurity *This);
 
     /*** IServerSecurity methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryBlanket)(
-        IServerSecurity* This,
+        IServerSecurity *This,
         DWORD *pAuthnSvc,
         DWORD *pAuthzSvc,
         OLECHAR **pServerPrincName,
@@ -4380,16 +4143,17 @@ typedef struct IServerSecurityVtbl {
         DWORD *pCapabilities);
 
     HRESULT (STDMETHODCALLTYPE *ImpersonateClient)(
-        IServerSecurity* This);
+        IServerSecurity *This);
 
     HRESULT (STDMETHODCALLTYPE *RevertToSelf)(
-        IServerSecurity* This);
+        IServerSecurity *This);
 
     WINBOOL (STDMETHODCALLTYPE *IsImpersonating)(
-        IServerSecurity* This);
+        IServerSecurity *This);
 
     END_INTERFACE
 } IServerSecurityVtbl;
+
 interface IServerSecurity {
     CONST_VTBL IServerSecurityVtbl* lpVtbl;
 };
@@ -4434,41 +4198,6 @@ static FORCEINLINE WINBOOL IServerSecurity_IsImpersonating(IServerSecurity* This
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IServerSecurity_QueryBlanket_Proxy(
-    IServerSecurity* This,
-    DWORD *pAuthnSvc,
-    DWORD *pAuthzSvc,
-    OLECHAR **pServerPrincName,
-    DWORD *pAuthnLevel,
-    DWORD *pImpLevel,
-    void **pPrivs,
-    DWORD *pCapabilities);
-void __RPC_STUB IServerSecurity_QueryBlanket_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IServerSecurity_ImpersonateClient_Proxy(
-    IServerSecurity* This);
-void __RPC_STUB IServerSecurity_ImpersonateClient_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IServerSecurity_RevertToSelf_Proxy(
-    IServerSecurity* This);
-void __RPC_STUB IServerSecurity_RevertToSelf_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-WINBOOL STDMETHODCALLTYPE IServerSecurity_IsImpersonating_Proxy(
-    IServerSecurity* This);
-void __RPC_STUB IServerSecurity_IsImpersonating_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IServerSecurity_INTERFACE_DEFINED__ */
 
@@ -4516,31 +4245,32 @@ typedef struct IRpcOptionsVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRpcOptions* This,
+        IRpcOptions *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRpcOptions* This);
+        IRpcOptions *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRpcOptions* This);
+        IRpcOptions *This);
 
     /*** IRpcOptions methods ***/
     HRESULT (STDMETHODCALLTYPE *Set)(
-        IRpcOptions* This,
+        IRpcOptions *This,
         IUnknown *pPrx,
         RPCOPT_PROPERTIES dwProperty,
         ULONG_PTR dwValue);
 
     HRESULT (STDMETHODCALLTYPE *Query)(
-        IRpcOptions* This,
+        IRpcOptions *This,
         IUnknown *pPrx,
         RPCOPT_PROPERTIES dwProperty,
         ULONG_PTR *pdwValue);
 
     END_INTERFACE
 } IRpcOptionsVtbl;
+
 interface IRpcOptions {
     CONST_VTBL IRpcOptionsVtbl* lpVtbl;
 };
@@ -4577,26 +4307,6 @@ static FORCEINLINE HRESULT IRpcOptions_Query(IRpcOptions* This,IUnknown *pPrx,RP
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRpcOptions_Set_Proxy(
-    IRpcOptions* This,
-    IUnknown *pPrx,
-    RPCOPT_PROPERTIES dwProperty,
-    ULONG_PTR dwValue);
-void __RPC_STUB IRpcOptions_Set_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcOptions_Query_Proxy(
-    IRpcOptions* This,
-    IUnknown *pPrx,
-    RPCOPT_PROPERTIES dwProperty,
-    ULONG_PTR *pdwValue);
-void __RPC_STUB IRpcOptions_Query_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRpcOptions_INTERFACE_DEFINED__ */
 
@@ -4669,29 +4379,30 @@ typedef struct IGlobalOptionsVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IGlobalOptions* This,
+        IGlobalOptions *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IGlobalOptions* This);
+        IGlobalOptions *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IGlobalOptions* This);
+        IGlobalOptions *This);
 
     /*** IGlobalOptions methods ***/
     HRESULT (STDMETHODCALLTYPE *Set)(
-        IGlobalOptions* This,
+        IGlobalOptions *This,
         GLOBALOPT_PROPERTIES dwProperty,
         ULONG_PTR dwValue);
 
     HRESULT (STDMETHODCALLTYPE *Query)(
-        IGlobalOptions* This,
+        IGlobalOptions *This,
         GLOBALOPT_PROPERTIES dwProperty,
         ULONG_PTR *pdwValue);
 
     END_INTERFACE
 } IGlobalOptionsVtbl;
+
 interface IGlobalOptions {
     CONST_VTBL IGlobalOptionsVtbl* lpVtbl;
 };
@@ -4728,24 +4439,6 @@ static FORCEINLINE HRESULT IGlobalOptions_Query(IGlobalOptions* This,GLOBALOPT_P
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IGlobalOptions_Set_Proxy(
-    IGlobalOptions* This,
-    GLOBALOPT_PROPERTIES dwProperty,
-    ULONG_PTR dwValue);
-void __RPC_STUB IGlobalOptions_Set_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IGlobalOptions_Query_Proxy(
-    IGlobalOptions* This,
-    GLOBALOPT_PROPERTIES dwProperty,
-    ULONG_PTR *pdwValue);
-void __RPC_STUB IGlobalOptions_Query_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IGlobalOptions_INTERFACE_DEFINED__ */
 
@@ -4782,26 +4475,27 @@ typedef struct ISurrogateVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ISurrogate* This,
+        ISurrogate *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ISurrogate* This);
+        ISurrogate *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ISurrogate* This);
+        ISurrogate *This);
 
     /*** ISurrogate methods ***/
     HRESULT (STDMETHODCALLTYPE *LoadDllServer)(
-        ISurrogate* This,
+        ISurrogate *This,
         REFCLSID Clsid);
 
     HRESULT (STDMETHODCALLTYPE *FreeSurrogate)(
-        ISurrogate* This);
+        ISurrogate *This);
 
     END_INTERFACE
 } ISurrogateVtbl;
+
 interface ISurrogate {
     CONST_VTBL ISurrogateVtbl* lpVtbl;
 };
@@ -4838,21 +4532,6 @@ static FORCEINLINE HRESULT ISurrogate_FreeSurrogate(ISurrogate* This) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ISurrogate_LoadDllServer_Proxy(
-    ISurrogate* This,
-    REFCLSID Clsid);
-void __RPC_STUB ISurrogate_LoadDllServer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ISurrogate_FreeSurrogate_Proxy(
-    ISurrogate* This);
-void __RPC_STUB ISurrogate_FreeSurrogate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ISurrogate_INTERFACE_DEFINED__ */
 
@@ -4893,35 +4572,36 @@ typedef struct IGlobalInterfaceTableVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IGlobalInterfaceTable* This,
+        IGlobalInterfaceTable *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IGlobalInterfaceTable* This);
+        IGlobalInterfaceTable *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IGlobalInterfaceTable* This);
+        IGlobalInterfaceTable *This);
 
     /*** IGlobalInterfaceTable methods ***/
     HRESULT (STDMETHODCALLTYPE *RegisterInterfaceInGlobal)(
-        IGlobalInterfaceTable* This,
+        IGlobalInterfaceTable *This,
         IUnknown *pUnk,
         REFIID riid,
         DWORD *pdwCookie);
 
     HRESULT (STDMETHODCALLTYPE *RevokeInterfaceFromGlobal)(
-        IGlobalInterfaceTable* This,
+        IGlobalInterfaceTable *This,
         DWORD dwCookie);
 
     HRESULT (STDMETHODCALLTYPE *GetInterfaceFromGlobal)(
-        IGlobalInterfaceTable* This,
+        IGlobalInterfaceTable *This,
         DWORD dwCookie,
         REFIID riid,
         void **ppv);
 
     END_INTERFACE
 } IGlobalInterfaceTableVtbl;
+
 interface IGlobalInterfaceTable {
     CONST_VTBL IGlobalInterfaceTableVtbl* lpVtbl;
 };
@@ -4962,34 +4642,6 @@ static FORCEINLINE HRESULT IGlobalInterfaceTable_GetInterfaceFromGlobal(IGlobalI
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_RegisterInterfaceInGlobal_Proxy(
-    IGlobalInterfaceTable* This,
-    IUnknown *pUnk,
-    REFIID riid,
-    DWORD *pdwCookie);
-void __RPC_STUB IGlobalInterfaceTable_RegisterInterfaceInGlobal_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Proxy(
-    IGlobalInterfaceTable* This,
-    DWORD dwCookie);
-void __RPC_STUB IGlobalInterfaceTable_RevokeInterfaceFromGlobal_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IGlobalInterfaceTable_GetInterfaceFromGlobal_Proxy(
-    IGlobalInterfaceTable* This,
-    DWORD dwCookie,
-    REFIID riid,
-    void **ppv);
-void __RPC_STUB IGlobalInterfaceTable_GetInterfaceFromGlobal_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IGlobalInterfaceTable_INTERFACE_DEFINED__ */
 
@@ -5027,30 +4679,31 @@ typedef struct ISynchronizeVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ISynchronize* This,
+        ISynchronize *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ISynchronize* This);
+        ISynchronize *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ISynchronize* This);
+        ISynchronize *This);
 
     /*** ISynchronize methods ***/
     HRESULT (STDMETHODCALLTYPE *Wait)(
-        ISynchronize* This,
+        ISynchronize *This,
         DWORD dwFlags,
         DWORD dwMilliseconds);
 
     HRESULT (STDMETHODCALLTYPE *Signal)(
-        ISynchronize* This);
+        ISynchronize *This);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        ISynchronize* This);
+        ISynchronize *This);
 
     END_INTERFACE
 } ISynchronizeVtbl;
+
 interface ISynchronize {
     CONST_VTBL ISynchronizeVtbl* lpVtbl;
 };
@@ -5091,29 +4744,6 @@ static FORCEINLINE HRESULT ISynchronize_Reset(ISynchronize* This) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ISynchronize_Wait_Proxy(
-    ISynchronize* This,
-    DWORD dwFlags,
-    DWORD dwMilliseconds);
-void __RPC_STUB ISynchronize_Wait_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ISynchronize_Signal_Proxy(
-    ISynchronize* This);
-void __RPC_STUB ISynchronize_Signal_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ISynchronize_Reset_Proxy(
-    ISynchronize* This);
-void __RPC_STUB ISynchronize_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ISynchronize_INTERFACE_DEFINED__ */
 
@@ -5142,23 +4772,24 @@ typedef struct ISynchronizeHandleVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ISynchronizeHandle* This,
+        ISynchronizeHandle *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ISynchronizeHandle* This);
+        ISynchronizeHandle *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ISynchronizeHandle* This);
+        ISynchronizeHandle *This);
 
     /*** ISynchronizeHandle methods ***/
     HRESULT (STDMETHODCALLTYPE *GetHandle)(
-        ISynchronizeHandle* This,
+        ISynchronizeHandle *This,
         HANDLE *ph);
 
     END_INTERFACE
 } ISynchronizeHandleVtbl;
+
 interface ISynchronizeHandle {
     CONST_VTBL ISynchronizeHandleVtbl* lpVtbl;
 };
@@ -5191,14 +4822,6 @@ static FORCEINLINE HRESULT ISynchronizeHandle_GetHandle(ISynchronizeHandle* This
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ISynchronizeHandle_GetHandle_Proxy(
-    ISynchronizeHandle* This,
-    HANDLE *ph);
-void __RPC_STUB ISynchronizeHandle_GetHandle_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ISynchronizeHandle_INTERFACE_DEFINED__ */
 
@@ -5227,28 +4850,29 @@ typedef struct ISynchronizeEventVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ISynchronizeEvent* This,
+        ISynchronizeEvent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ISynchronizeEvent* This);
+        ISynchronizeEvent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ISynchronizeEvent* This);
+        ISynchronizeEvent *This);
 
     /*** ISynchronizeHandle methods ***/
     HRESULT (STDMETHODCALLTYPE *GetHandle)(
-        ISynchronizeEvent* This,
+        ISynchronizeEvent *This,
         HANDLE *ph);
 
     /*** ISynchronizeEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
-        ISynchronizeEvent* This,
+        ISynchronizeEvent *This,
         HANDLE *ph);
 
     END_INTERFACE
 } ISynchronizeEventVtbl;
+
 interface ISynchronizeEvent {
     CONST_VTBL ISynchronizeEventVtbl* lpVtbl;
 };
@@ -5287,14 +4911,6 @@ static FORCEINLINE HRESULT ISynchronizeEvent_SetEventHandle(ISynchronizeEvent* T
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ISynchronizeEvent_SetEventHandle_Proxy(
-    ISynchronizeEvent* This,
-    HANDLE *ph);
-void __RPC_STUB ISynchronizeEvent_SetEventHandle_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ISynchronizeEvent_INTERFACE_DEFINED__ */
 
@@ -5328,29 +4944,30 @@ typedef struct ISynchronizeContainerVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ISynchronizeContainer* This,
+        ISynchronizeContainer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ISynchronizeContainer* This);
+        ISynchronizeContainer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ISynchronizeContainer* This);
+        ISynchronizeContainer *This);
 
     /*** ISynchronizeContainer methods ***/
     HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
-        ISynchronizeContainer* This,
+        ISynchronizeContainer *This,
         ISynchronize *pSync);
 
     HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
-        ISynchronizeContainer* This,
+        ISynchronizeContainer *This,
         DWORD dwFlags,
         DWORD dwTimeOut,
         ISynchronize **ppSync);
 
     END_INTERFACE
 } ISynchronizeContainerVtbl;
+
 interface ISynchronizeContainer {
     CONST_VTBL ISynchronizeContainerVtbl* lpVtbl;
 };
@@ -5387,24 +5004,6 @@ static FORCEINLINE HRESULT ISynchronizeContainer_WaitMultiple(ISynchronizeContai
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ISynchronizeContainer_AddSynchronize_Proxy(
-    ISynchronizeContainer* This,
-    ISynchronize *pSync);
-void __RPC_STUB ISynchronizeContainer_AddSynchronize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ISynchronizeContainer_WaitMultiple_Proxy(
-    ISynchronizeContainer* This,
-    DWORD dwFlags,
-    DWORD dwTimeOut,
-    ISynchronize **ppSync);
-void __RPC_STUB ISynchronizeContainer_WaitMultiple_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ISynchronizeContainer_INTERFACE_DEFINED__ */
 
@@ -5433,34 +5032,35 @@ typedef struct ISynchronizeMutexVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ISynchronizeMutex* This,
+        ISynchronizeMutex *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ISynchronizeMutex* This);
+        ISynchronizeMutex *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ISynchronizeMutex* This);
+        ISynchronizeMutex *This);
 
     /*** ISynchronize methods ***/
     HRESULT (STDMETHODCALLTYPE *Wait)(
-        ISynchronizeMutex* This,
+        ISynchronizeMutex *This,
         DWORD dwFlags,
         DWORD dwMilliseconds);
 
     HRESULT (STDMETHODCALLTYPE *Signal)(
-        ISynchronizeMutex* This);
+        ISynchronizeMutex *This);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        ISynchronizeMutex* This);
+        ISynchronizeMutex *This);
 
     /*** ISynchronizeMutex methods ***/
     HRESULT (STDMETHODCALLTYPE *ReleaseMutex)(
-        ISynchronizeMutex* This);
+        ISynchronizeMutex *This);
 
     END_INTERFACE
 } ISynchronizeMutexVtbl;
+
 interface ISynchronizeMutex {
     CONST_VTBL ISynchronizeMutexVtbl* lpVtbl;
 };
@@ -5507,13 +5107,6 @@ static FORCEINLINE HRESULT ISynchronizeMutex_ReleaseMutex(ISynchronizeMutex* Thi
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ISynchronizeMutex_ReleaseMutex_Proxy(
-    ISynchronizeMutex* This);
-void __RPC_STUB ISynchronizeMutex_ReleaseMutex_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ISynchronizeMutex_INTERFACE_DEFINED__ */
 
@@ -5547,26 +5140,27 @@ typedef struct ICancelMethodCallsVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ICancelMethodCalls* This,
+        ICancelMethodCalls *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ICancelMethodCalls* This);
+        ICancelMethodCalls *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ICancelMethodCalls* This);
+        ICancelMethodCalls *This);
 
     /*** ICancelMethodCalls methods ***/
     HRESULT (STDMETHODCALLTYPE *Cancel)(
-        ICancelMethodCalls* This,
+        ICancelMethodCalls *This,
         ULONG ulSeconds);
 
     HRESULT (STDMETHODCALLTYPE *TestCancel)(
-        ICancelMethodCalls* This);
+        ICancelMethodCalls *This);
 
     END_INTERFACE
 } ICancelMethodCallsVtbl;
+
 interface ICancelMethodCalls {
     CONST_VTBL ICancelMethodCallsVtbl* lpVtbl;
 };
@@ -5603,21 +5197,6 @@ static FORCEINLINE HRESULT ICancelMethodCalls_TestCancel(ICancelMethodCalls* Thi
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ICancelMethodCalls_Cancel_Proxy(
-    ICancelMethodCalls* This,
-    ULONG ulSeconds);
-void __RPC_STUB ICancelMethodCalls_Cancel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICancelMethodCalls_TestCancel_Proxy(
-    ICancelMethodCalls* This);
-void __RPC_STUB ICancelMethodCalls_TestCancel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ICancelMethodCalls_INTERFACE_DEFINED__ */
 
@@ -5659,32 +5238,33 @@ typedef struct IAsyncManagerVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAsyncManager* This,
+        IAsyncManager *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAsyncManager* This);
+        IAsyncManager *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAsyncManager* This);
+        IAsyncManager *This);
 
     /*** IAsyncManager methods ***/
     HRESULT (STDMETHODCALLTYPE *CompleteCall)(
-        IAsyncManager* This,
+        IAsyncManager *This,
         HRESULT Result);
 
     HRESULT (STDMETHODCALLTYPE *GetCallContext)(
-        IAsyncManager* This,
+        IAsyncManager *This,
         REFIID riid,
         void **pInterface);
 
     HRESULT (STDMETHODCALLTYPE *GetState)(
-        IAsyncManager* This,
+        IAsyncManager *This,
         ULONG *pulStateFlags);
 
     END_INTERFACE
 } IAsyncManagerVtbl;
+
 interface IAsyncManager {
     CONST_VTBL IAsyncManagerVtbl* lpVtbl;
 };
@@ -5725,31 +5305,6 @@ static FORCEINLINE HRESULT IAsyncManager_GetState(IAsyncManager* This,ULONG *pul
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAsyncManager_CompleteCall_Proxy(
-    IAsyncManager* This,
-    HRESULT Result);
-void __RPC_STUB IAsyncManager_CompleteCall_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncManager_GetCallContext_Proxy(
-    IAsyncManager* This,
-    REFIID riid,
-    void **pInterface);
-void __RPC_STUB IAsyncManager_GetCallContext_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncManager_GetState_Proxy(
-    IAsyncManager* This,
-    ULONG *pulStateFlags);
-void __RPC_STUB IAsyncManager_GetState_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IAsyncManager_INTERFACE_DEFINED__ */
 
@@ -5781,19 +5336,19 @@ typedef struct ICallFactoryVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ICallFactory* This,
+        ICallFactory *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ICallFactory* This);
+        ICallFactory *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ICallFactory* This);
+        ICallFactory *This);
 
     /*** ICallFactory methods ***/
     HRESULT (STDMETHODCALLTYPE *CreateCall)(
-        ICallFactory* This,
+        ICallFactory *This,
         REFIID riid,
         IUnknown *pCtrlUnk,
         REFIID riid2,
@@ -5801,6 +5356,7 @@ typedef struct ICallFactoryVtbl {
 
     END_INTERFACE
 } ICallFactoryVtbl;
+
 interface ICallFactory {
     CONST_VTBL ICallFactoryVtbl* lpVtbl;
 };
@@ -5833,17 +5389,6 @@ static FORCEINLINE HRESULT ICallFactory_CreateCall(ICallFactory* This,REFIID rii
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ICallFactory_CreateCall_Proxy(
-    ICallFactory* This,
-    REFIID riid,
-    IUnknown *pCtrlUnk,
-    REFIID riid2,
-    IUnknown **ppv);
-void __RPC_STUB ICallFactory_CreateCall_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ICallFactory_INTERFACE_DEFINED__ */
 
@@ -5876,28 +5421,29 @@ typedef struct IRpcHelperVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRpcHelper* This,
+        IRpcHelper *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRpcHelper* This);
+        IRpcHelper *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRpcHelper* This);
+        IRpcHelper *This);
 
     /*** IRpcHelper methods ***/
     HRESULT (STDMETHODCALLTYPE *GetDCOMProtocolVersion)(
-        IRpcHelper* This,
+        IRpcHelper *This,
         DWORD *pComVersion);
 
     HRESULT (STDMETHODCALLTYPE *GetIIDFromOBJREF)(
-        IRpcHelper* This,
+        IRpcHelper *This,
         void *pObjRef,
         IID **piid);
 
     END_INTERFACE
 } IRpcHelperVtbl;
+
 interface IRpcHelper {
     CONST_VTBL IRpcHelperVtbl* lpVtbl;
 };
@@ -5934,23 +5480,6 @@ static FORCEINLINE HRESULT IRpcHelper_GetIIDFromOBJREF(IRpcHelper* This,void *pO
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRpcHelper_GetDCOMProtocolVersion_Proxy(
-    IRpcHelper* This,
-    DWORD *pComVersion);
-void __RPC_STUB IRpcHelper_GetDCOMProtocolVersion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRpcHelper_GetIIDFromOBJREF_Proxy(
-    IRpcHelper* This,
-    void *pObjRef,
-    IID **piid);
-void __RPC_STUB IRpcHelper_GetIIDFromOBJREF_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRpcHelper_INTERFACE_DEFINED__ */
 
@@ -5981,25 +5510,26 @@ typedef struct IReleaseMarshalBuffersVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IReleaseMarshalBuffers* This,
+        IReleaseMarshalBuffers *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IReleaseMarshalBuffers* This);
+        IReleaseMarshalBuffers *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IReleaseMarshalBuffers* This);
+        IReleaseMarshalBuffers *This);
 
     /*** IReleaseMarshalBuffers methods ***/
     HRESULT (STDMETHODCALLTYPE *ReleaseMarshalBuffer)(
-        IReleaseMarshalBuffers* This,
+        IReleaseMarshalBuffers *This,
         RPCOLEMESSAGE *pMsg,
         DWORD dwFlags,
         IUnknown *pChnl);
 
     END_INTERFACE
 } IReleaseMarshalBuffersVtbl;
+
 interface IReleaseMarshalBuffers {
     CONST_VTBL IReleaseMarshalBuffersVtbl* lpVtbl;
 };
@@ -6032,16 +5562,6 @@ static FORCEINLINE HRESULT IReleaseMarshalBuffers_ReleaseMarshalBuffer(IReleaseM
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IReleaseMarshalBuffers_ReleaseMarshalBuffer_Proxy(
-    IReleaseMarshalBuffers* This,
-    RPCOLEMESSAGE *pMsg,
-    DWORD dwFlags,
-    IUnknown *pChnl);
-void __RPC_STUB IReleaseMarshalBuffers_ReleaseMarshalBuffer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IReleaseMarshalBuffers_INTERFACE_DEFINED__ */
 
@@ -6074,28 +5594,29 @@ typedef struct IWaitMultipleVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IWaitMultiple* This,
+        IWaitMultiple *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IWaitMultiple* This);
+        IWaitMultiple *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IWaitMultiple* This);
+        IWaitMultiple *This);
 
     /*** IWaitMultiple methods ***/
     HRESULT (STDMETHODCALLTYPE *WaitMultiple)(
-        IWaitMultiple* This,
+        IWaitMultiple *This,
         DWORD timeout,
         ISynchronize **pSync);
 
     HRESULT (STDMETHODCALLTYPE *AddSynchronize)(
-        IWaitMultiple* This,
+        IWaitMultiple *This,
         ISynchronize *pSync);
 
     END_INTERFACE
 } IWaitMultipleVtbl;
+
 interface IWaitMultiple {
     CONST_VTBL IWaitMultipleVtbl* lpVtbl;
 };
@@ -6132,23 +5653,6 @@ static FORCEINLINE HRESULT IWaitMultiple_AddSynchronize(IWaitMultiple* This,ISyn
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IWaitMultiple_WaitMultiple_Proxy(
-    IWaitMultiple* This,
-    DWORD timeout,
-    ISynchronize **pSync);
-void __RPC_STUB IWaitMultiple_WaitMultiple_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IWaitMultiple_AddSynchronize_Proxy(
-    IWaitMultiple* This,
-    ISynchronize *pSync);
-void __RPC_STUB IWaitMultiple_AddSynchronize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IWaitMultiple_INTERFACE_DEFINED__ */
 
@@ -6181,25 +5685,26 @@ typedef struct IAddrTrackingControlVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAddrTrackingControl* This,
+        IAddrTrackingControl *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAddrTrackingControl* This);
+        IAddrTrackingControl *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAddrTrackingControl* This);
+        IAddrTrackingControl *This);
 
     /*** IAddrTrackingControl methods ***/
     HRESULT (STDMETHODCALLTYPE *EnableCOMDynamicAddrTracking)(
-        IAddrTrackingControl* This);
+        IAddrTrackingControl *This);
 
     HRESULT (STDMETHODCALLTYPE *DisableCOMDynamicAddrTracking)(
-        IAddrTrackingControl* This);
+        IAddrTrackingControl *This);
 
     END_INTERFACE
 } IAddrTrackingControlVtbl;
+
 interface IAddrTrackingControl {
     CONST_VTBL IAddrTrackingControlVtbl* lpVtbl;
 };
@@ -6236,20 +5741,6 @@ static FORCEINLINE HRESULT IAddrTrackingControl_DisableCOMDynamicAddrTracking(IA
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAddrTrackingControl_EnableCOMDynamicAddrTracking_Proxy(
-    IAddrTrackingControl* This);
-void __RPC_STUB IAddrTrackingControl_EnableCOMDynamicAddrTracking_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAddrTrackingControl_DisableCOMDynamicAddrTracking_Proxy(
-    IAddrTrackingControl* This);
-void __RPC_STUB IAddrTrackingControl_DisableCOMDynamicAddrTracking_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IAddrTrackingControl_INTERFACE_DEFINED__ */
 
@@ -6283,28 +5774,29 @@ typedef struct IAddrExclusionControlVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAddrExclusionControl* This,
+        IAddrExclusionControl *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAddrExclusionControl* This);
+        IAddrExclusionControl *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAddrExclusionControl* This);
+        IAddrExclusionControl *This);
 
     /*** IAddrExclusionControl methods ***/
     HRESULT (STDMETHODCALLTYPE *GetCurrentAddrExclusionList)(
-        IAddrExclusionControl* This,
+        IAddrExclusionControl *This,
         REFIID riid,
         void **ppEnumerator);
 
     HRESULT (STDMETHODCALLTYPE *UpdateAddrExclusionList)(
-        IAddrExclusionControl* This,
+        IAddrExclusionControl *This,
         IUnknown *pEnumerator);
 
     END_INTERFACE
 } IAddrExclusionControlVtbl;
+
 interface IAddrExclusionControl {
     CONST_VTBL IAddrExclusionControlVtbl* lpVtbl;
 };
@@ -6341,23 +5833,6 @@ static FORCEINLINE HRESULT IAddrExclusionControl_UpdateAddrExclusionList(IAddrEx
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAddrExclusionControl_GetCurrentAddrExclusionList_Proxy(
-    IAddrExclusionControl* This,
-    REFIID riid,
-    void **ppEnumerator);
-void __RPC_STUB IAddrExclusionControl_GetCurrentAddrExclusionList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAddrExclusionControl_UpdateAddrExclusionList_Proxy(
-    IAddrExclusionControl* This,
-    IUnknown *pEnumerator);
-void __RPC_STUB IAddrExclusionControl_UpdateAddrExclusionList_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IAddrExclusionControl_INTERFACE_DEFINED__ */
 
@@ -6392,30 +5867,31 @@ typedef struct IPipeByteVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPipeByte* This,
+        IPipeByte *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPipeByte* This);
+        IPipeByte *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPipeByte* This);
+        IPipeByte *This);
 
     /*** IPipeByte methods ***/
     HRESULT (STDMETHODCALLTYPE *Pull)(
-        IPipeByte* This,
+        IPipeByte *This,
         BYTE *buf,
         ULONG cRequest,
         ULONG *pcReturned);
 
     HRESULT (STDMETHODCALLTYPE *Push)(
-        IPipeByte* This,
+        IPipeByte *This,
         BYTE *buf,
         ULONG cSent);
 
     END_INTERFACE
 } IPipeByteVtbl;
+
 interface IPipeByte {
     CONST_VTBL IPipeByteVtbl* lpVtbl;
 };
@@ -6452,25 +5928,6 @@ static FORCEINLINE HRESULT IPipeByte_Push(IPipeByte* This,BYTE *buf,ULONG cSent)
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPipeByte_Pull_Proxy(
-    IPipeByte* This,
-    BYTE *buf,
-    ULONG cRequest,
-    ULONG *pcReturned);
-void __RPC_STUB IPipeByte_Pull_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPipeByte_Push_Proxy(
-    IPipeByte* This,
-    BYTE *buf,
-    ULONG cSent);
-void __RPC_STUB IPipeByte_Push_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPipeByte_INTERFACE_DEFINED__ */
 
@@ -6505,30 +5962,31 @@ typedef struct IPipeLongVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPipeLong* This,
+        IPipeLong *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPipeLong* This);
+        IPipeLong *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPipeLong* This);
+        IPipeLong *This);
 
     /*** IPipeLong methods ***/
     HRESULT (STDMETHODCALLTYPE *Pull)(
-        IPipeLong* This,
+        IPipeLong *This,
         LONG *buf,
         ULONG cRequest,
         ULONG *pcReturned);
 
     HRESULT (STDMETHODCALLTYPE *Push)(
-        IPipeLong* This,
+        IPipeLong *This,
         LONG *buf,
         ULONG cSent);
 
     END_INTERFACE
 } IPipeLongVtbl;
+
 interface IPipeLong {
     CONST_VTBL IPipeLongVtbl* lpVtbl;
 };
@@ -6565,25 +6023,6 @@ static FORCEINLINE HRESULT IPipeLong_Push(IPipeLong* This,LONG *buf,ULONG cSent)
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPipeLong_Pull_Proxy(
-    IPipeLong* This,
-    LONG *buf,
-    ULONG cRequest,
-    ULONG *pcReturned);
-void __RPC_STUB IPipeLong_Pull_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPipeLong_Push_Proxy(
-    IPipeLong* This,
-    LONG *buf,
-    ULONG cSent);
-void __RPC_STUB IPipeLong_Push_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPipeLong_INTERFACE_DEFINED__ */
 
@@ -6618,30 +6057,31 @@ typedef struct IPipeDoubleVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPipeDouble* This,
+        IPipeDouble *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPipeDouble* This);
+        IPipeDouble *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPipeDouble* This);
+        IPipeDouble *This);
 
     /*** IPipeDouble methods ***/
     HRESULT (STDMETHODCALLTYPE *Pull)(
-        IPipeDouble* This,
+        IPipeDouble *This,
         DOUBLE *buf,
         ULONG cRequest,
         ULONG *pcReturned);
 
     HRESULT (STDMETHODCALLTYPE *Push)(
-        IPipeDouble* This,
+        IPipeDouble *This,
         DOUBLE *buf,
         ULONG cSent);
 
     END_INTERFACE
 } IPipeDoubleVtbl;
+
 interface IPipeDouble {
     CONST_VTBL IPipeDoubleVtbl* lpVtbl;
 };
@@ -6678,25 +6118,6 @@ static FORCEINLINE HRESULT IPipeDouble_Push(IPipeDouble* This,DOUBLE *buf,ULONG
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPipeDouble_Pull_Proxy(
-    IPipeDouble* This,
-    DOUBLE *buf,
-    ULONG cRequest,
-    ULONG *pcReturned);
-void __RPC_STUB IPipeDouble_Pull_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPipeDouble_Push_Proxy(
-    IPipeDouble* This,
-    DOUBLE *buf,
-    ULONG cSent);
-void __RPC_STUB IPipeDouble_Push_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPipeDouble_INTERFACE_DEFINED__ */
 
@@ -6751,40 +6172,41 @@ typedef struct IEnumContextPropsVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumContextProps* This,
+        IEnumContextProps *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumContextProps* This);
+        IEnumContextProps *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumContextProps* This);
+        IEnumContextProps *This);
 
     /*** IEnumContextProps methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumContextProps* This,
+        IEnumContextProps *This,
         ULONG celt,
         ContextProperty *pContextProperties,
         ULONG *pceltFetched);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumContextProps* This,
+        IEnumContextProps *This,
         ULONG celt);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumContextProps* This);
+        IEnumContextProps *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumContextProps* This,
+        IEnumContextProps *This,
         IEnumContextProps **ppEnumContextProps);
 
     HRESULT (STDMETHODCALLTYPE *Count)(
-        IEnumContextProps* This,
+        IEnumContextProps *This,
         ULONG *pcelt);
 
     END_INTERFACE
 } IEnumContextPropsVtbl;
+
 interface IEnumContextProps {
     CONST_VTBL IEnumContextPropsVtbl* lpVtbl;
 };
@@ -6833,47 +6255,6 @@ static FORCEINLINE HRESULT IEnumContextProps_Count(IEnumContextProps* This,ULONG
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IEnumContextProps_Next_Proxy(
-    IEnumContextProps* This,
-    ULONG celt,
-    ContextProperty *pContextProperties,
-    ULONG *pceltFetched);
-void __RPC_STUB IEnumContextProps_Next_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumContextProps_Skip_Proxy(
-    IEnumContextProps* This,
-    ULONG celt);
-void __RPC_STUB IEnumContextProps_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumContextProps_Reset_Proxy(
-    IEnumContextProps* This);
-void __RPC_STUB IEnumContextProps_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumContextProps_Clone_Proxy(
-    IEnumContextProps* This,
-    IEnumContextProps **ppEnumContextProps);
-void __RPC_STUB IEnumContextProps_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumContextProps_Count_Proxy(
-    IEnumContextProps* This,
-    ULONG *pcelt);
-void __RPC_STUB IEnumContextProps_Count_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IEnumContextProps_INTERFACE_DEFINED__ */
 
@@ -6915,39 +6296,40 @@ typedef struct IContextVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IContext* This,
+        IContext *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IContext* This);
+        IContext *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IContext* This);
+        IContext *This);
 
     /*** IContext methods ***/
     HRESULT (STDMETHODCALLTYPE *SetProperty)(
-        IContext* This,
+        IContext *This,
         REFGUID rpolicyId,
         CPFLAGS flags,
         IUnknown *pUnk);
 
     HRESULT (STDMETHODCALLTYPE *RemoveProperty)(
-        IContext* This,
+        IContext *This,
         REFGUID rPolicyId);
 
     HRESULT (STDMETHODCALLTYPE *GetProperty)(
-        IContext* This,
+        IContext *This,
         REFGUID rGuid,
         CPFLAGS *pFlags,
         IUnknown **ppUnk);
 
     HRESULT (STDMETHODCALLTYPE *EnumContextProps)(
-        IContext* This,
+        IContext *This,
         IEnumContextProps **ppEnumContextProps);
 
     END_INTERFACE
 } IContextVtbl;
+
 interface IContext {
     CONST_VTBL IContextVtbl* lpVtbl;
 };
@@ -6992,42 +6374,6 @@ static FORCEINLINE HRESULT IContext_EnumContextProps(IContext* This,IEnumContext
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IContext_SetProperty_Proxy(
-    IContext* This,
-    REFGUID rpolicyId,
-    CPFLAGS flags,
-    IUnknown *pUnk);
-void __RPC_STUB IContext_SetProperty_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IContext_RemoveProperty_Proxy(
-    IContext* This,
-    REFGUID rPolicyId);
-void __RPC_STUB IContext_RemoveProperty_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IContext_GetProperty_Proxy(
-    IContext* This,
-    REFGUID rGuid,
-    CPFLAGS *pFlags,
-    IUnknown **ppUnk);
-void __RPC_STUB IContext_GetProperty_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IContext_EnumContextProps_Proxy(
-    IContext* This,
-    IEnumContextProps **ppEnumContextProps);
-void __RPC_STUB IContext_EnumContextProps_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IContext_INTERFACE_DEFINED__ */
 
@@ -7095,35 +6441,36 @@ typedef struct IComThreadingInfoVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IComThreadingInfo* This,
+        IComThreadingInfo *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IComThreadingInfo* This);
+        IComThreadingInfo *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IComThreadingInfo* This);
+        IComThreadingInfo *This);
 
     /*** IComThreadingInfo methods ***/
     HRESULT (STDMETHODCALLTYPE *GetCurrentApartmentType)(
-        IComThreadingInfo* This,
+        IComThreadingInfo *This,
         APTTYPE *pAptType);
 
     HRESULT (STDMETHODCALLTYPE *GetCurrentThreadType)(
-        IComThreadingInfo* This,
+        IComThreadingInfo *This,
         THDTYPE *pThreadType);
 
     HRESULT (STDMETHODCALLTYPE *GetCurrentLogicalThreadId)(
-        IComThreadingInfo* This,
+        IComThreadingInfo *This,
         GUID *pguidLogicalThreadId);
 
     HRESULT (STDMETHODCALLTYPE *SetCurrentLogicalThreadId)(
-        IComThreadingInfo* This,
+        IComThreadingInfo *This,
         REFGUID rguid);
 
     END_INTERFACE
 } IComThreadingInfoVtbl;
+
 interface IComThreadingInfo {
     CONST_VTBL IComThreadingInfoVtbl* lpVtbl;
 };
@@ -7168,38 +6515,6 @@ static FORCEINLINE HRESULT IComThreadingInfo_SetCurrentLogicalThreadId(IComThrea
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentApartmentType_Proxy(
-    IComThreadingInfo* This,
-    APTTYPE *pAptType);
-void __RPC_STUB IComThreadingInfo_GetCurrentApartmentType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentThreadType_Proxy(
-    IComThreadingInfo* This,
-    THDTYPE *pThreadType);
-void __RPC_STUB IComThreadingInfo_GetCurrentThreadType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComThreadingInfo_GetCurrentLogicalThreadId_Proxy(
-    IComThreadingInfo* This,
-    GUID *pguidLogicalThreadId);
-void __RPC_STUB IComThreadingInfo_GetCurrentLogicalThreadId_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComThreadingInfo_SetCurrentLogicalThreadId_Proxy(
-    IComThreadingInfo* This,
-    REFGUID rguid);
-void __RPC_STUB IComThreadingInfo_SetCurrentLogicalThreadId_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IComThreadingInfo_INTERFACE_DEFINED__ */
 
@@ -7228,23 +6543,24 @@ typedef struct IProcessInitControlVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IProcessInitControl* This,
+        IProcessInitControl *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IProcessInitControl* This);
+        IProcessInitControl *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IProcessInitControl* This);
+        IProcessInitControl *This);
 
     /*** IProcessInitControl methods ***/
     HRESULT (STDMETHODCALLTYPE *ResetInitializerTimeout)(
-        IProcessInitControl* This,
+        IProcessInitControl *This,
         DWORD dwSecondsRemaining);
 
     END_INTERFACE
 } IProcessInitControlVtbl;
+
 interface IProcessInitControl {
     CONST_VTBL IProcessInitControlVtbl* lpVtbl;
 };
@@ -7277,14 +6593,6 @@ static FORCEINLINE HRESULT IProcessInitControl_ResetInitializerTimeout(IProcessI
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IProcessInitControl_ResetInitializerTimeout_Proxy(
-    IProcessInitControl* This,
-    DWORD dwSecondsRemaining);
-void __RPC_STUB IProcessInitControl_ResetInitializerTimeout_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IProcessInitControl_INTERFACE_DEFINED__ */
 
@@ -7310,18 +6618,19 @@ typedef struct IFastRundownVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IFastRundown* This,
+        IFastRundown *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IFastRundown* This);
+        IFastRundown *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IFastRundown* This);
+        IFastRundown *This);
 
     END_INTERFACE
 } IFastRundownVtbl;
+
 interface IFastRundown {
     CONST_VTBL IFastRundownVtbl* lpVtbl;
 };
@@ -7381,83 +6690,84 @@ typedef struct IMarshalingStreamVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMarshalingStream* This);
+        IMarshalingStream *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMarshalingStream* This);
+        IMarshalingStream *This);
 
     /*** ISequentialStream methods ***/
     HRESULT (STDMETHODCALLTYPE *Read)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         void *pv,
         ULONG cb,
         ULONG *pcbRead);
 
     HRESULT (STDMETHODCALLTYPE *Write)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         const void *pv,
         ULONG cb,
         ULONG *pcbWritten);
 
     /*** IStream methods ***/
     HRESULT (STDMETHODCALLTYPE *Seek)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         LARGE_INTEGER dlibMove,
         DWORD dwOrigin,
         ULARGE_INTEGER *plibNewPosition);
 
     HRESULT (STDMETHODCALLTYPE *SetSize)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         ULARGE_INTEGER libNewSize);
 
     HRESULT (STDMETHODCALLTYPE *CopyTo)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         IStream *pstm,
         ULARGE_INTEGER cb,
         ULARGE_INTEGER *pcbRead,
         ULARGE_INTEGER *pcbWritten);
 
     HRESULT (STDMETHODCALLTYPE *Commit)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         DWORD grfCommitFlags);
 
     HRESULT (STDMETHODCALLTYPE *Revert)(
-        IMarshalingStream* This);
+        IMarshalingStream *This);
 
     HRESULT (STDMETHODCALLTYPE *LockRegion)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         ULARGE_INTEGER libOffset,
         ULARGE_INTEGER cb,
         DWORD dwLockType);
 
     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         ULARGE_INTEGER libOffset,
         ULARGE_INTEGER cb,
         DWORD dwLockType);
 
     HRESULT (STDMETHODCALLTYPE *Stat)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         STATSTG *pstatstg,
         DWORD grfStatFlag);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         IStream **ppstm);
 
     /*** IMarshalingStream methods ***/
     HRESULT (STDMETHODCALLTYPE *GetMarshalingContextAttribute)(
-        IMarshalingStream* This,
+        IMarshalingStream *This,
         CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
         ULONG_PTR *pAttributeValue);
 
     END_INTERFACE
 } IMarshalingStreamVtbl;
+
 interface IMarshalingStream {
     CONST_VTBL IMarshalingStreamVtbl* lpVtbl;
 };
@@ -7538,15 +6848,6 @@ static FORCEINLINE HRESULT IMarshalingStream_GetMarshalingContextAttribute(IMars
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IMarshalingStream_GetMarshalingContextAttribute_Proxy(
-    IMarshalingStream* This,
-    CO_MARSHALING_CONTEXT_ATTRIBUTES attribute,
-    ULONG_PTR *pAttributeValue);
-void __RPC_STUB IMarshalingStream_GetMarshalingContextAttribute_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMarshalingStream_INTERFACE_DEFINED__ */
 
@@ -7560,46 +6861,65 @@ EXTERN_C const GUID  IID_ICallbackWithNoReentrancyToApplicationSTA;
 #ifndef __IMoniker_FWD_DEFINED__
 #define __IMoniker_FWD_DEFINED__
 typedef interface IMoniker IMoniker;
+#ifdef __cplusplus
+interface IMoniker;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumMoniker_FWD_DEFINED__
 #define __IEnumMoniker_FWD_DEFINED__
 typedef interface IEnumMoniker IEnumMoniker;
+#ifdef __cplusplus
+interface IEnumMoniker;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRunningObjectTable_FWD_DEFINED__
 #define __IRunningObjectTable_FWD_DEFINED__
 typedef interface IRunningObjectTable IRunningObjectTable;
+#ifdef __cplusplus
+interface IRunningObjectTable;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IStorage_FWD_DEFINED__
 #define __IStorage_FWD_DEFINED__
 typedef interface IStorage IStorage;
+#ifdef __cplusplus
+interface IStorage;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumSTATSTG_FWD_DEFINED__
 #define __IEnumSTATSTG_FWD_DEFINED__
 typedef interface IEnumSTATSTG IEnumSTATSTG;
+#ifdef __cplusplus
+interface IEnumSTATSTG;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAdviseSink_FWD_DEFINED__
 #define __IAdviseSink_FWD_DEFINED__
 typedef interface IAdviseSink IAdviseSink;
-#endif
-
-#ifndef __AsyncIAdviseSink_FWD_DEFINED__
-#define __AsyncIAdviseSink_FWD_DEFINED__
-typedef interface AsyncIAdviseSink AsyncIAdviseSink;
+#ifdef __cplusplus
+interface IAdviseSink;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBindCtx_FWD_DEFINED__
 #define __IBindCtx_FWD_DEFINED__
 typedef interface IBindCtx IBindCtx;
+#ifdef __cplusplus
+interface IBindCtx;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumMoniker_FWD_DEFINED__
 #define __IEnumMoniker_FWD_DEFINED__
 typedef interface IEnumMoniker IEnumMoniker;
+#ifdef __cplusplus
+interface IEnumMoniker;
+#endif /* __cplusplus */
 #endif
 
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
@@ -7671,75 +6991,76 @@ typedef struct IMallocSpyVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMallocSpy* This);
+        IMallocSpy *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMallocSpy* This);
+        IMallocSpy *This);
 
     /*** IMallocSpy methods ***/
     SIZE_T (STDMETHODCALLTYPE *PreAlloc)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         SIZE_T cbRequest);
 
     void * (STDMETHODCALLTYPE *PostAlloc)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         void *pActual);
 
     void * (STDMETHODCALLTYPE *PreFree)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         void *pRequest,
         WINBOOL fSpyed);
 
     void (STDMETHODCALLTYPE *PostFree)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         WINBOOL fSpyed);
 
     SIZE_T (STDMETHODCALLTYPE *PreRealloc)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         void *pRequest,
         SIZE_T cbRequest,
         void **ppNewRequest,
         WINBOOL fSpyed);
 
     void * (STDMETHODCALLTYPE *PostRealloc)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         void *pActual,
         WINBOOL fSpyed);
 
     void * (STDMETHODCALLTYPE *PreGetSize)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         void *pRequest,
         WINBOOL fSpyed);
 
     SIZE_T (STDMETHODCALLTYPE *PostGetSize)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         SIZE_T cbActual,
         WINBOOL fSpyed);
 
     void * (STDMETHODCALLTYPE *PreDidAlloc)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         void *pRequest,
         WINBOOL fSpyed);
 
     int (STDMETHODCALLTYPE *PostDidAlloc)(
-        IMallocSpy* This,
+        IMallocSpy *This,
         void *pRequest,
         WINBOOL fSpyed,
         int fActual);
 
     void (STDMETHODCALLTYPE *PreHeapMinimize)(
-        IMallocSpy* This);
+        IMallocSpy *This);
 
     void (STDMETHODCALLTYPE *PostHeapMinimize)(
-        IMallocSpy* This);
+        IMallocSpy *This);
 
     END_INTERFACE
 } IMallocSpyVtbl;
+
 interface IMallocSpy {
     CONST_VTBL IMallocSpyVtbl* lpVtbl;
 };
@@ -7816,110 +7137,6 @@ static FORCEINLINE void IMallocSpy_PostHeapMinimize(IMallocSpy* This) {
 
 #endif
 
-SIZE_T STDMETHODCALLTYPE IMallocSpy_PreAlloc_Proxy(
-    IMallocSpy* This,
-    SIZE_T cbRequest);
-void __RPC_STUB IMallocSpy_PreAlloc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void * STDMETHODCALLTYPE IMallocSpy_PostAlloc_Proxy(
-    IMallocSpy* This,
-    void *pActual);
-void __RPC_STUB IMallocSpy_PostAlloc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void * STDMETHODCALLTYPE IMallocSpy_PreFree_Proxy(
-    IMallocSpy* This,
-    void *pRequest,
-    WINBOOL fSpyed);
-void __RPC_STUB IMallocSpy_PreFree_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IMallocSpy_PostFree_Proxy(
-    IMallocSpy* This,
-    WINBOOL fSpyed);
-void __RPC_STUB IMallocSpy_PostFree_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-SIZE_T STDMETHODCALLTYPE IMallocSpy_PreRealloc_Proxy(
-    IMallocSpy* This,
-    void *pRequest,
-    SIZE_T cbRequest,
-    void **ppNewRequest,
-    WINBOOL fSpyed);
-void __RPC_STUB IMallocSpy_PreRealloc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void * STDMETHODCALLTYPE IMallocSpy_PostRealloc_Proxy(
-    IMallocSpy* This,
-    void *pActual,
-    WINBOOL fSpyed);
-void __RPC_STUB IMallocSpy_PostRealloc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void * STDMETHODCALLTYPE IMallocSpy_PreGetSize_Proxy(
-    IMallocSpy* This,
-    void *pRequest,
-    WINBOOL fSpyed);
-void __RPC_STUB IMallocSpy_PreGetSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-SIZE_T STDMETHODCALLTYPE IMallocSpy_PostGetSize_Proxy(
-    IMallocSpy* This,
-    SIZE_T cbActual,
-    WINBOOL fSpyed);
-void __RPC_STUB IMallocSpy_PostGetSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void * STDMETHODCALLTYPE IMallocSpy_PreDidAlloc_Proxy(
-    IMallocSpy* This,
-    void *pRequest,
-    WINBOOL fSpyed);
-void __RPC_STUB IMallocSpy_PreDidAlloc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-int STDMETHODCALLTYPE IMallocSpy_PostDidAlloc_Proxy(
-    IMallocSpy* This,
-    void *pRequest,
-    WINBOOL fSpyed,
-    int fActual);
-void __RPC_STUB IMallocSpy_PostDidAlloc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IMallocSpy_PreHeapMinimize_Proxy(
-    IMallocSpy* This);
-void __RPC_STUB IMallocSpy_PreHeapMinimize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void STDMETHODCALLTYPE IMallocSpy_PostHeapMinimize_Proxy(
-    IMallocSpy* This);
-void __RPC_STUB IMallocSpy_PostHeapMinimize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMallocSpy_INTERFACE_DEFINED__ */
 
@@ -8038,60 +7255,61 @@ typedef struct IBindCtxVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBindCtx* This,
+        IBindCtx *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBindCtx* This);
+        IBindCtx *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBindCtx* This);
+        IBindCtx *This);
 
     /*** IBindCtx methods ***/
     HRESULT (STDMETHODCALLTYPE *RegisterObjectBound)(
-        IBindCtx* This,
+        IBindCtx *This,
         IUnknown *punk);
 
     HRESULT (STDMETHODCALLTYPE *RevokeObjectBound)(
-        IBindCtx* This,
+        IBindCtx *This,
         IUnknown *punk);
 
     HRESULT (STDMETHODCALLTYPE *ReleaseBoundObjects)(
-        IBindCtx* This);
+        IBindCtx *This);
 
     HRESULT (STDMETHODCALLTYPE *SetBindOptions)(
-        IBindCtx* This,
+        IBindCtx *This,
         BIND_OPTS *pbindopts);
 
     HRESULT (STDMETHODCALLTYPE *GetBindOptions)(
-        IBindCtx* This,
+        IBindCtx *This,
         BIND_OPTS *pbindopts);
 
     HRESULT (STDMETHODCALLTYPE *GetRunningObjectTable)(
-        IBindCtx* This,
+        IBindCtx *This,
         IRunningObjectTable **pprot);
 
     HRESULT (STDMETHODCALLTYPE *RegisterObjectParam)(
-        IBindCtx* This,
+        IBindCtx *This,
         LPOLESTR pszKey,
         IUnknown *punk);
 
     HRESULT (STDMETHODCALLTYPE *GetObjectParam)(
-        IBindCtx* This,
+        IBindCtx *This,
         LPOLESTR pszKey,
         IUnknown **ppunk);
 
     HRESULT (STDMETHODCALLTYPE *EnumObjectParam)(
-        IBindCtx* This,
+        IBindCtx *This,
         IEnumString **ppenum);
 
     HRESULT (STDMETHODCALLTYPE *RevokeObjectParam)(
-        IBindCtx* This,
+        IBindCtx *This,
         LPOLESTR pszKey);
 
     END_INTERFACE
 } IBindCtxVtbl;
+
 interface IBindCtx {
     CONST_VTBL IBindCtxVtbl* lpVtbl;
 };
@@ -8160,29 +7378,6 @@ static FORCEINLINE HRESULT IBindCtx_RevokeObjectParam(IBindCtx* This,LPOLESTR ps
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBindCtx_RegisterObjectBound_Proxy(
-    IBindCtx* This,
-    IUnknown *punk);
-void __RPC_STUB IBindCtx_RegisterObjectBound_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBindCtx_RevokeObjectBound_Proxy(
-    IBindCtx* This,
-    IUnknown *punk);
-void __RPC_STUB IBindCtx_RevokeObjectBound_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBindCtx_ReleaseBoundObjects_Proxy(
-    IBindCtx* This);
-void __RPC_STUB IBindCtx_ReleaseBoundObjects_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT STDMETHODCALLTYPE IBindCtx_RemoteSetBindOptions_Proxy(
     IBindCtx* This,
     BIND_OPTS2 *pbindopts);
@@ -8199,48 +7394,6 @@ void __RPC_STUB IBindCtx_RemoteGetBindOptions_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBindCtx_GetRunningObjectTable_Proxy(
-    IBindCtx* This,
-    IRunningObjectTable **pprot);
-void __RPC_STUB IBindCtx_GetRunningObjectTable_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBindCtx_RegisterObjectParam_Proxy(
-    IBindCtx* This,
-    LPOLESTR pszKey,
-    IUnknown *punk);
-void __RPC_STUB IBindCtx_RegisterObjectParam_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBindCtx_GetObjectParam_Proxy(
-    IBindCtx* This,
-    LPOLESTR pszKey,
-    IUnknown **ppunk);
-void __RPC_STUB IBindCtx_GetObjectParam_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBindCtx_EnumObjectParam_Proxy(
-    IBindCtx* This,
-    IEnumString **ppenum);
-void __RPC_STUB IBindCtx_EnumObjectParam_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBindCtx_RevokeObjectParam_Proxy(
-    IBindCtx* This,
-    LPOLESTR pszKey);
-void __RPC_STUB IBindCtx_RevokeObjectParam_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IBindCtx_SetBindOptions_Proxy(
     IBindCtx* This,
     BIND_OPTS *pbindopts);
@@ -8292,36 +7445,37 @@ typedef struct IEnumMonikerVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumMoniker* This,
+        IEnumMoniker *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumMoniker* This);
+        IEnumMoniker *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumMoniker* This);
+        IEnumMoniker *This);
 
     /*** IEnumMoniker methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumMoniker* This,
+        IEnumMoniker *This,
         ULONG celt,
         IMoniker **rgelt,
         ULONG *pceltFetched);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumMoniker* This,
+        IEnumMoniker *This,
         ULONG celt);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumMoniker* This);
+        IEnumMoniker *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumMoniker* This,
+        IEnumMoniker *This,
         IEnumMoniker **ppenum);
 
     END_INTERFACE
 } IEnumMonikerVtbl;
+
 interface IEnumMoniker {
     CONST_VTBL IEnumMonikerVtbl* lpVtbl;
 };
@@ -8376,29 +7530,6 @@ void __RPC_STUB IEnumMoniker_RemoteNext_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumMoniker_Skip_Proxy(
-    IEnumMoniker* This,
-    ULONG celt);
-void __RPC_STUB IEnumMoniker_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumMoniker_Reset_Proxy(
-    IEnumMoniker* This);
-void __RPC_STUB IEnumMoniker_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumMoniker_Clone_Proxy(
-    IEnumMoniker* This,
-    IEnumMoniker **ppenum);
-void __RPC_STUB IEnumMoniker_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IEnumMoniker_Next_Proxy(
     IEnumMoniker* This,
     ULONG celt,
@@ -8452,39 +7583,40 @@ typedef struct IRunnableObjectVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRunnableObject* This,
+        IRunnableObject *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRunnableObject* This);
+        IRunnableObject *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRunnableObject* This);
+        IRunnableObject *This);
 
     /*** IRunnableObject methods ***/
     HRESULT (STDMETHODCALLTYPE *GetRunningClass)(
-        IRunnableObject* This,
+        IRunnableObject *This,
         LPCLSID lpClsid);
 
     HRESULT (STDMETHODCALLTYPE *Run)(
-        IRunnableObject* This,
+        IRunnableObject *This,
         LPBINDCTX pbc);
 
     WINBOOL (STDMETHODCALLTYPE *IsRunning)(
-        IRunnableObject* This);
+        IRunnableObject *This);
 
     HRESULT (STDMETHODCALLTYPE *LockRunning)(
-        IRunnableObject* This,
+        IRunnableObject *This,
         WINBOOL fLock,
         WINBOOL fLastUnlockCloses);
 
     HRESULT (STDMETHODCALLTYPE *SetContainedObject)(
-        IRunnableObject* This,
+        IRunnableObject *This,
         WINBOOL fContained);
 
     END_INTERFACE
 } IRunnableObjectVtbl;
+
 interface IRunnableObject {
     CONST_VTBL IRunnableObjectVtbl* lpVtbl;
 };
@@ -8533,22 +7665,6 @@ static FORCEINLINE HRESULT IRunnableObject_SetContainedObject(IRunnableObject* T
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRunnableObject_GetRunningClass_Proxy(
-    IRunnableObject* This,
-    LPCLSID lpClsid);
-void __RPC_STUB IRunnableObject_GetRunningClass_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRunnableObject_Run_Proxy(
-    IRunnableObject* This,
-    LPBINDCTX pbc);
-void __RPC_STUB IRunnableObject_Run_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT STDMETHODCALLTYPE IRunnableObject_RemoteIsRunning_Proxy(
     IRunnableObject* This);
 void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
@@ -8556,23 +7672,6 @@ void __RPC_STUB IRunnableObject_RemoteIsRunning_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRunnableObject_LockRunning_Proxy(
-    IRunnableObject* This,
-    WINBOOL fLock,
-    WINBOOL fLastUnlockCloses);
-void __RPC_STUB IRunnableObject_LockRunning_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRunnableObject_SetContainedObject_Proxy(
-    IRunnableObject* This,
-    WINBOOL fContained);
-void __RPC_STUB IRunnableObject_SetContainedObject_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 WINBOOL CALLBACK IRunnableObject_IsRunning_Proxy(
     IRunnableObject* This);
 HRESULT __RPC_STUB IRunnableObject_IsRunning_Stub(
@@ -8629,53 +7728,54 @@ typedef struct IRunningObjectTableVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRunningObjectTable* This,
+        IRunningObjectTable *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRunningObjectTable* This);
+        IRunningObjectTable *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRunningObjectTable* This);
+        IRunningObjectTable *This);
 
     /*** IRunningObjectTable methods ***/
     HRESULT (STDMETHODCALLTYPE *Register)(
-        IRunningObjectTable* This,
+        IRunningObjectTable *This,
         DWORD grfFlags,
         IUnknown *punkObject,
         IMoniker *pmkObjectName,
         DWORD *pdwRegister);
 
     HRESULT (STDMETHODCALLTYPE *Revoke)(
-        IRunningObjectTable* This,
+        IRunningObjectTable *This,
         DWORD dwRegister);
 
     HRESULT (STDMETHODCALLTYPE *IsRunning)(
-        IRunningObjectTable* This,
+        IRunningObjectTable *This,
         IMoniker *pmkObjectName);
 
     HRESULT (STDMETHODCALLTYPE *GetObject)(
-        IRunningObjectTable* This,
+        IRunningObjectTable *This,
         IMoniker *pmkObjectName,
         IUnknown **ppunkObject);
 
     HRESULT (STDMETHODCALLTYPE *NoteChangeTime)(
-        IRunningObjectTable* This,
+        IRunningObjectTable *This,
         DWORD dwRegister,
         FILETIME *pfiletime);
 
     HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
-        IRunningObjectTable* This,
+        IRunningObjectTable *This,
         IMoniker *pmkObjectName,
         FILETIME *pfiletime);
 
     HRESULT (STDMETHODCALLTYPE *EnumRunning)(
-        IRunningObjectTable* This,
+        IRunningObjectTable *This,
         IEnumMoniker **ppenumMoniker);
 
     END_INTERFACE
 } IRunningObjectTableVtbl;
+
 interface IRunningObjectTable {
     CONST_VTBL IRunningObjectTableVtbl* lpVtbl;
 };
@@ -8732,68 +7832,6 @@ static FORCEINLINE HRESULT IRunningObjectTable_EnumRunning(IRunningObjectTable*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRunningObjectTable_Register_Proxy(
-    IRunningObjectTable* This,
-    DWORD grfFlags,
-    IUnknown *punkObject,
-    IMoniker *pmkObjectName,
-    DWORD *pdwRegister);
-void __RPC_STUB IRunningObjectTable_Register_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRunningObjectTable_Revoke_Proxy(
-    IRunningObjectTable* This,
-    DWORD dwRegister);
-void __RPC_STUB IRunningObjectTable_Revoke_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRunningObjectTable_IsRunning_Proxy(
-    IRunningObjectTable* This,
-    IMoniker *pmkObjectName);
-void __RPC_STUB IRunningObjectTable_IsRunning_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRunningObjectTable_GetObject_Proxy(
-    IRunningObjectTable* This,
-    IMoniker *pmkObjectName,
-    IUnknown **ppunkObject);
-void __RPC_STUB IRunningObjectTable_GetObject_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRunningObjectTable_NoteChangeTime_Proxy(
-    IRunningObjectTable* This,
-    DWORD dwRegister,
-    FILETIME *pfiletime);
-void __RPC_STUB IRunningObjectTable_NoteChangeTime_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRunningObjectTable_GetTimeOfLastChange_Proxy(
-    IRunningObjectTable* This,
-    IMoniker *pmkObjectName,
-    FILETIME *pfiletime);
-void __RPC_STUB IRunningObjectTable_GetTimeOfLastChange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRunningObjectTable_EnumRunning_Proxy(
-    IRunningObjectTable* This,
-    IEnumMoniker **ppenumMoniker);
-void __RPC_STUB IRunningObjectTable_EnumRunning_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRunningObjectTable_INTERFACE_DEFINED__ */
 
@@ -8824,23 +7862,24 @@ typedef struct IPersistVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPersist* This,
+        IPersist *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPersist* This);
+        IPersist *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPersist* This);
+        IPersist *This);
 
     /*** IPersist methods ***/
     HRESULT (STDMETHODCALLTYPE *GetClassID)(
-        IPersist* This,
+        IPersist *This,
         CLSID *pClassID);
 
     END_INTERFACE
 } IPersistVtbl;
+
 interface IPersist {
     CONST_VTBL IPersistVtbl* lpVtbl;
 };
@@ -8873,14 +7912,6 @@ static FORCEINLINE HRESULT IPersist_GetClassID(IPersist* This,CLSID *pClassID) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPersist_GetClassID_Proxy(
-    IPersist* This,
-    CLSID *pClassID);
-void __RPC_STUB IPersist_GetClassID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPersist_INTERFACE_DEFINED__ */
 
@@ -8919,40 +7950,41 @@ typedef struct IPersistStreamVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPersistStream* This,
+        IPersistStream *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPersistStream* This);
+        IPersistStream *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPersistStream* This);
+        IPersistStream *This);
 
     /*** IPersist methods ***/
     HRESULT (STDMETHODCALLTYPE *GetClassID)(
-        IPersistStream* This,
+        IPersistStream *This,
         CLSID *pClassID);
 
     /*** IPersistStream methods ***/
     HRESULT (STDMETHODCALLTYPE *IsDirty)(
-        IPersistStream* This);
+        IPersistStream *This);
 
     HRESULT (STDMETHODCALLTYPE *Load)(
-        IPersistStream* This,
+        IPersistStream *This,
         IStream *pStm);
 
     HRESULT (STDMETHODCALLTYPE *Save)(
-        IPersistStream* This,
+        IPersistStream *This,
         IStream *pStm,
         WINBOOL fClearDirty);
 
     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
-        IPersistStream* This,
+        IPersistStream *This,
         ULARGE_INTEGER *pcbSize);
 
     END_INTERFACE
 } IPersistStreamVtbl;
+
 interface IPersistStream {
     CONST_VTBL IPersistStreamVtbl* lpVtbl;
 };
@@ -9003,38 +8035,6 @@ static FORCEINLINE HRESULT IPersistStream_GetSizeMax(IPersistStream* This,ULARGE
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPersistStream_IsDirty_Proxy(
-    IPersistStream* This);
-void __RPC_STUB IPersistStream_IsDirty_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistStream_Load_Proxy(
-    IPersistStream* This,
-    IStream *pStm);
-void __RPC_STUB IPersistStream_Load_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistStream_Save_Proxy(
-    IPersistStream* This,
-    IStream *pStm,
-    WINBOOL fClearDirty);
-void __RPC_STUB IPersistStream_Save_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistStream_GetSizeMax_Proxy(
-    IPersistStream* This,
-    ULARGE_INTEGER *pcbSize);
-void __RPC_STUB IPersistStream_GetSizeMax_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPersistStream_INTERFACE_DEFINED__ */
 
@@ -9147,113 +8147,113 @@ typedef struct IMonikerVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMoniker* This,
+        IMoniker *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMoniker* This);
+        IMoniker *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMoniker* This);
+        IMoniker *This);
 
     /*** IPersist methods ***/
     HRESULT (STDMETHODCALLTYPE *GetClassID)(
-        IMoniker* This,
+        IMoniker *This,
         CLSID *pClassID);
 
     /*** IPersistStream methods ***/
     HRESULT (STDMETHODCALLTYPE *IsDirty)(
-        IMoniker* This);
+        IMoniker *This);
 
     HRESULT (STDMETHODCALLTYPE *Load)(
-        IMoniker* This,
+        IMoniker *This,
         IStream *pStm);
 
     HRESULT (STDMETHODCALLTYPE *Save)(
-        IMoniker* This,
+        IMoniker *This,
         IStream *pStm,
         WINBOOL fClearDirty);
 
     HRESULT (STDMETHODCALLTYPE *GetSizeMax)(
-        IMoniker* This,
+        IMoniker *This,
         ULARGE_INTEGER *pcbSize);
 
     /*** IMoniker methods ***/
     HRESULT (STDMETHODCALLTYPE *BindToObject)(
-        IMoniker* This,
+        IMoniker *This,
         IBindCtx *pbc,
         IMoniker *pmkToLeft,
         REFIID riidResult,
         void **ppvResult);
 
     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
-        IMoniker* This,
+        IMoniker *This,
         IBindCtx *pbc,
         IMoniker *pmkToLeft,
         REFIID riid,
         void **ppvObj);
 
     HRESULT (STDMETHODCALLTYPE *Reduce)(
-        IMoniker* This,
+        IMoniker *This,
         IBindCtx *pbc,
         DWORD dwReduceHowFar,
         IMoniker **ppmkToLeft,
         IMoniker **ppmkReduced);
 
     HRESULT (STDMETHODCALLTYPE *ComposeWith)(
-        IMoniker* This,
+        IMoniker *This,
         IMoniker *pmkRight,
         WINBOOL fOnlyIfNotGeneric,
         IMoniker **ppmkComposite);
 
     HRESULT (STDMETHODCALLTYPE *Enum)(
-        IMoniker* This,
+        IMoniker *This,
         WINBOOL fForward,
         IEnumMoniker **ppenumMoniker);
 
     HRESULT (STDMETHODCALLTYPE *IsEqual)(
-        IMoniker* This,
+        IMoniker *This,
         IMoniker *pmkOtherMoniker);
 
     HRESULT (STDMETHODCALLTYPE *Hash)(
-        IMoniker* This,
+        IMoniker *This,
         DWORD *pdwHash);
 
     HRESULT (STDMETHODCALLTYPE *IsRunning)(
-        IMoniker* This,
+        IMoniker *This,
         IBindCtx *pbc,
         IMoniker *pmkToLeft,
         IMoniker *pmkNewlyRunning);
 
     HRESULT (STDMETHODCALLTYPE *GetTimeOfLastChange)(
-        IMoniker* This,
+        IMoniker *This,
         IBindCtx *pbc,
         IMoniker *pmkToLeft,
         FILETIME *pFileTime);
 
     HRESULT (STDMETHODCALLTYPE *Inverse)(
-        IMoniker* This,
+        IMoniker *This,
         IMoniker **ppmk);
 
     HRESULT (STDMETHODCALLTYPE *CommonPrefixWith)(
-        IMoniker* This,
+        IMoniker *This,
         IMoniker *pmkOther,
         IMoniker **ppmkPrefix);
 
     HRESULT (STDMETHODCALLTYPE *RelativePathTo)(
-        IMoniker* This,
+        IMoniker *This,
         IMoniker *pmkOther,
         IMoniker **ppmkRelPath);
 
     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
-        IMoniker* This,
+        IMoniker *This,
         IBindCtx *pbc,
         IMoniker *pmkToLeft,
         LPOLESTR *ppszDisplayName);
 
     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
-        IMoniker* This,
+        IMoniker *This,
         IBindCtx *pbc,
         IMoniker *pmkToLeft,
         LPOLESTR pszDisplayName,
@@ -9261,11 +8261,12 @@ typedef struct IMonikerVtbl {
         IMoniker **ppmkOut);
 
     HRESULT (STDMETHODCALLTYPE *IsSystemMoniker)(
-        IMoniker* This,
+        IMoniker *This,
         DWORD *pdwMksys);
 
     END_INTERFACE
 } IMonikerVtbl;
+
 interface IMoniker {
     CONST_VTBL IMonikerVtbl* lpVtbl;
 };
@@ -9400,128 +8401,6 @@ void __RPC_STUB IMoniker_RemoteBindToStorage_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_Reduce_Proxy(
-    IMoniker* This,
-    IBindCtx *pbc,
-    DWORD dwReduceHowFar,
-    IMoniker **ppmkToLeft,
-    IMoniker **ppmkReduced);
-void __RPC_STUB IMoniker_Reduce_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_ComposeWith_Proxy(
-    IMoniker* This,
-    IMoniker *pmkRight,
-    WINBOOL fOnlyIfNotGeneric,
-    IMoniker **ppmkComposite);
-void __RPC_STUB IMoniker_ComposeWith_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_Enum_Proxy(
-    IMoniker* This,
-    WINBOOL fForward,
-    IEnumMoniker **ppenumMoniker);
-void __RPC_STUB IMoniker_Enum_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_IsEqual_Proxy(
-    IMoniker* This,
-    IMoniker *pmkOtherMoniker);
-void __RPC_STUB IMoniker_IsEqual_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_Hash_Proxy(
-    IMoniker* This,
-    DWORD *pdwHash);
-void __RPC_STUB IMoniker_Hash_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_IsRunning_Proxy(
-    IMoniker* This,
-    IBindCtx *pbc,
-    IMoniker *pmkToLeft,
-    IMoniker *pmkNewlyRunning);
-void __RPC_STUB IMoniker_IsRunning_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_GetTimeOfLastChange_Proxy(
-    IMoniker* This,
-    IBindCtx *pbc,
-    IMoniker *pmkToLeft,
-    FILETIME *pFileTime);
-void __RPC_STUB IMoniker_GetTimeOfLastChange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_Inverse_Proxy(
-    IMoniker* This,
-    IMoniker **ppmk);
-void __RPC_STUB IMoniker_Inverse_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_CommonPrefixWith_Proxy(
-    IMoniker* This,
-    IMoniker *pmkOther,
-    IMoniker **ppmkPrefix);
-void __RPC_STUB IMoniker_CommonPrefixWith_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_RelativePathTo_Proxy(
-    IMoniker* This,
-    IMoniker *pmkOther,
-    IMoniker **ppmkRelPath);
-void __RPC_STUB IMoniker_RelativePathTo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_GetDisplayName_Proxy(
-    IMoniker* This,
-    IBindCtx *pbc,
-    IMoniker *pmkToLeft,
-    LPOLESTR *ppszDisplayName);
-void __RPC_STUB IMoniker_GetDisplayName_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_ParseDisplayName_Proxy(
-    IMoniker* This,
-    IBindCtx *pbc,
-    IMoniker *pmkToLeft,
-    LPOLESTR pszDisplayName,
-    ULONG *pchEaten,
-    IMoniker **ppmkOut);
-void __RPC_STUB IMoniker_ParseDisplayName_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMoniker_IsSystemMoniker_Proxy(
-    IMoniker* This,
-    DWORD *pdwMksys);
-void __RPC_STUB IMoniker_IsSystemMoniker_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IMoniker_BindToObject_Proxy(
     IMoniker* This,
     IBindCtx *pbc,
@@ -9577,25 +8456,26 @@ typedef struct IROTDataVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IROTData* This,
+        IROTData *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IROTData* This);
+        IROTData *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IROTData* This);
+        IROTData *This);
 
     /*** IROTData methods ***/
     HRESULT (STDMETHODCALLTYPE *GetComparisonData)(
-        IROTData* This,
+        IROTData *This,
         byte *pbData,
         ULONG cbMax,
         ULONG *pcbData);
 
     END_INTERFACE
 } IROTDataVtbl;
+
 interface IROTData {
     CONST_VTBL IROTDataVtbl* lpVtbl;
 };
@@ -9628,16 +8508,6 @@ static FORCEINLINE HRESULT IROTData_GetComparisonData(IROTData* This,byte *pbDat
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IROTData_GetComparisonData_Proxy(
-    IROTData* This,
-    byte *pbData,
-    ULONG cbMax,
-    ULONG *pcbData);
-void __RPC_STUB IROTData_GetComparisonData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IROTData_INTERFACE_DEFINED__ */
 
@@ -9679,36 +8549,37 @@ typedef struct IEnumSTATSTGVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumSTATSTG* This,
+        IEnumSTATSTG *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumSTATSTG* This);
+        IEnumSTATSTG *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumSTATSTG* This);
+        IEnumSTATSTG *This);
 
     /*** IEnumSTATSTG methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumSTATSTG* This,
+        IEnumSTATSTG *This,
         ULONG celt,
         STATSTG *rgelt,
         ULONG *pceltFetched);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumSTATSTG* This,
+        IEnumSTATSTG *This,
         ULONG celt);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumSTATSTG* This);
+        IEnumSTATSTG *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumSTATSTG* This,
+        IEnumSTATSTG *This,
         IEnumSTATSTG **ppenum);
 
     END_INTERFACE
 } IEnumSTATSTGVtbl;
+
 interface IEnumSTATSTG {
     CONST_VTBL IEnumSTATSTGVtbl* lpVtbl;
 };
@@ -9763,29 +8634,6 @@ void __RPC_STUB IEnumSTATSTG_RemoteNext_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Skip_Proxy(
-    IEnumSTATSTG* This,
-    ULONG celt);
-void __RPC_STUB IEnumSTATSTG_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Reset_Proxy(
-    IEnumSTATSTG* This);
-void __RPC_STUB IEnumSTATSTG_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumSTATSTG_Clone_Proxy(
-    IEnumSTATSTG* This,
-    IEnumSTATSTG **ppenum);
-void __RPC_STUB IEnumSTATSTG_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IEnumSTATSTG_Next_Proxy(
     IEnumSTATSTG* This,
     ULONG celt,
@@ -9905,19 +8753,19 @@ typedef struct IStorageVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IStorage* This,
+        IStorage *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IStorage* This);
+        IStorage *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IStorage* This);
+        IStorage *This);
 
     /*** IStorage methods ***/
     HRESULT (STDMETHODCALLTYPE *CreateStream)(
-        IStorage* This,
+        IStorage *This,
         const OLECHAR *pwcsName,
         DWORD grfMode,
         DWORD reserved1,
@@ -9925,7 +8773,7 @@ typedef struct IStorageVtbl {
         IStream **ppstm);
 
     HRESULT (STDMETHODCALLTYPE *OpenStream)(
-        IStorage* This,
+        IStorage *This,
         const OLECHAR *pwcsName,
         void *reserved1,
         DWORD grfMode,
@@ -9933,7 +8781,7 @@ typedef struct IStorageVtbl {
         IStream **ppstm);
 
     HRESULT (STDMETHODCALLTYPE *CreateStorage)(
-        IStorage* This,
+        IStorage *This,
         const OLECHAR *pwcsName,
         DWORD grfMode,
         DWORD reserved1,
@@ -9941,7 +8789,7 @@ typedef struct IStorageVtbl {
         IStorage **ppstg);
 
     HRESULT (STDMETHODCALLTYPE *OpenStorage)(
-        IStorage* This,
+        IStorage *This,
         const OLECHAR *pwcsName,
         IStorage *pstgPriority,
         DWORD grfMode,
@@ -9950,65 +8798,66 @@ typedef struct IStorageVtbl {
         IStorage **ppstg);
 
     HRESULT (STDMETHODCALLTYPE *CopyTo)(
-        IStorage* This,
+        IStorage *This,
         DWORD ciidExclude,
         const IID *rgiidExclude,
         SNB snbExclude,
         IStorage *pstgDest);
 
     HRESULT (STDMETHODCALLTYPE *MoveElementTo)(
-        IStorage* This,
+        IStorage *This,
         const OLECHAR *pwcsName,
         IStorage *pstgDest,
         const OLECHAR *pwcsNewName,
         DWORD grfFlags);
 
     HRESULT (STDMETHODCALLTYPE *Commit)(
-        IStorage* This,
+        IStorage *This,
         DWORD grfCommitFlags);
 
     HRESULT (STDMETHODCALLTYPE *Revert)(
-        IStorage* This);
+        IStorage *This);
 
     HRESULT (STDMETHODCALLTYPE *EnumElements)(
-        IStorage* This,
+        IStorage *This,
         DWORD reserved1,
         void *reserved2,
         DWORD reserved3,
         IEnumSTATSTG **ppenum);
 
     HRESULT (STDMETHODCALLTYPE *DestroyElement)(
-        IStorage* This,
+        IStorage *This,
         const OLECHAR *pwcsName);
 
     HRESULT (STDMETHODCALLTYPE *RenameElement)(
-        IStorage* This,
+        IStorage *This,
         const OLECHAR *pwcsOldName,
         const OLECHAR *pwcsNewName);
 
     HRESULT (STDMETHODCALLTYPE *SetElementTimes)(
-        IStorage* This,
+        IStorage *This,
         const OLECHAR *pwcsName,
         const FILETIME *pctime,
         const FILETIME *patime,
         const FILETIME *pmtime);
 
     HRESULT (STDMETHODCALLTYPE *SetClass)(
-        IStorage* This,
+        IStorage *This,
         REFCLSID clsid);
 
     HRESULT (STDMETHODCALLTYPE *SetStateBits)(
-        IStorage* This,
+        IStorage *This,
         DWORD grfStateBits,
         DWORD grfMask);
 
     HRESULT (STDMETHODCALLTYPE *Stat)(
-        IStorage* This,
+        IStorage *This,
         STATSTG *pstatstg,
         DWORD grfStatFlag);
 
     END_INTERFACE
 } IStorageVtbl;
+
 interface IStorage {
     CONST_VTBL IStorageVtbl* lpVtbl;
 };
@@ -10097,18 +8946,6 @@ static FORCEINLINE HRESULT IStorage_Stat(IStorage* This,STATSTG *pstatstg,DWORD
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IStorage_CreateStream_Proxy(
-    IStorage* This,
-    const OLECHAR *pwcsName,
-    DWORD grfMode,
-    DWORD reserved1,
-    DWORD reserved2,
-    IStream **ppstm);
-void __RPC_STUB IStorage_CreateStream_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT STDMETHODCALLTYPE IStorage_RemoteOpenStream_Proxy(
     IStorage* This,
     const OLECHAR *pwcsName,
@@ -10122,31 +8959,6 @@ void __RPC_STUB IStorage_RemoteOpenStream_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_CreateStorage_Proxy(
-    IStorage* This,
-    const OLECHAR *pwcsName,
-    DWORD grfMode,
-    DWORD reserved1,
-    DWORD reserved2,
-    IStorage **ppstg);
-void __RPC_STUB IStorage_CreateStorage_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_OpenStorage_Proxy(
-    IStorage* This,
-    const OLECHAR *pwcsName,
-    IStorage *pstgPriority,
-    DWORD grfMode,
-    SNB snbExclude,
-    DWORD reserved,
-    IStorage **ppstg);
-void __RPC_STUB IStorage_OpenStorage_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT STDMETHODCALLTYPE IStorage_RemoteCopyTo_Proxy(
     IStorage* This,
     DWORD ciidExclude,
@@ -10158,32 +8970,6 @@ void __RPC_STUB IStorage_RemoteCopyTo_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_MoveElementTo_Proxy(
-    IStorage* This,
-    const OLECHAR *pwcsName,
-    IStorage *pstgDest,
-    const OLECHAR *pwcsNewName,
-    DWORD grfFlags);
-void __RPC_STUB IStorage_MoveElementTo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_Commit_Proxy(
-    IStorage* This,
-    DWORD grfCommitFlags);
-void __RPC_STUB IStorage_Commit_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_Revert_Proxy(
-    IStorage* This);
-void __RPC_STUB IStorage_Revert_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT STDMETHODCALLTYPE IStorage_RemoteEnumElements_Proxy(
     IStorage* This,
     DWORD reserved1,
@@ -10196,60 +8982,6 @@ void __RPC_STUB IStorage_RemoteEnumElements_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_DestroyElement_Proxy(
-    IStorage* This,
-    const OLECHAR *pwcsName);
-void __RPC_STUB IStorage_DestroyElement_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_RenameElement_Proxy(
-    IStorage* This,
-    const OLECHAR *pwcsOldName,
-    const OLECHAR *pwcsNewName);
-void __RPC_STUB IStorage_RenameElement_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_SetElementTimes_Proxy(
-    IStorage* This,
-    const OLECHAR *pwcsName,
-    const FILETIME *pctime,
-    const FILETIME *patime,
-    const FILETIME *pmtime);
-void __RPC_STUB IStorage_SetElementTimes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_SetClass_Proxy(
-    IStorage* This,
-    REFCLSID clsid);
-void __RPC_STUB IStorage_SetClass_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_SetStateBits_Proxy(
-    IStorage* This,
-    DWORD grfStateBits,
-    DWORD grfMask);
-void __RPC_STUB IStorage_SetStateBits_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorage_Stat_Proxy(
-    IStorage* This,
-    STATSTG *pstatstg,
-    DWORD grfStatFlag);
-void __RPC_STUB IStorage_Stat_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IStorage_OpenStream_Proxy(
     IStorage* This,
     const OLECHAR *pwcsName,
@@ -10334,45 +9066,46 @@ typedef struct IPersistFileVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPersistFile* This,
+        IPersistFile *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPersistFile* This);
+        IPersistFile *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPersistFile* This);
+        IPersistFile *This);
 
     /*** IPersist methods ***/
     HRESULT (STDMETHODCALLTYPE *GetClassID)(
-        IPersistFile* This,
+        IPersistFile *This,
         CLSID *pClassID);
 
     /*** IPersistFile methods ***/
     HRESULT (STDMETHODCALLTYPE *IsDirty)(
-        IPersistFile* This);
+        IPersistFile *This);
 
     HRESULT (STDMETHODCALLTYPE *Load)(
-        IPersistFile* This,
+        IPersistFile *This,
         LPCOLESTR pszFileName,
         DWORD dwMode);
 
     HRESULT (STDMETHODCALLTYPE *Save)(
-        IPersistFile* This,
+        IPersistFile *This,
         LPCOLESTR pszFileName,
         WINBOOL fRemember);
 
     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
-        IPersistFile* This,
+        IPersistFile *This,
         LPCOLESTR pszFileName);
 
     HRESULT (STDMETHODCALLTYPE *GetCurFile)(
-        IPersistFile* This,
+        IPersistFile *This,
         LPOLESTR *ppszFileName);
 
     END_INTERFACE
 } IPersistFileVtbl;
+
 interface IPersistFile {
     CONST_VTBL IPersistFileVtbl* lpVtbl;
 };
@@ -10427,47 +9160,6 @@ static FORCEINLINE HRESULT IPersistFile_GetCurFile(IPersistFile* This,LPOLESTR *
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPersistFile_IsDirty_Proxy(
-    IPersistFile* This);
-void __RPC_STUB IPersistFile_IsDirty_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistFile_Load_Proxy(
-    IPersistFile* This,
-    LPCOLESTR pszFileName,
-    DWORD dwMode);
-void __RPC_STUB IPersistFile_Load_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistFile_Save_Proxy(
-    IPersistFile* This,
-    LPCOLESTR pszFileName,
-    WINBOOL fRemember);
-void __RPC_STUB IPersistFile_Save_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistFile_SaveCompleted_Proxy(
-    IPersistFile* This,
-    LPCOLESTR pszFileName);
-void __RPC_STUB IPersistFile_SaveCompleted_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistFile_GetCurFile_Proxy(
-    IPersistFile* This,
-    LPOLESTR *ppszFileName);
-void __RPC_STUB IPersistFile_GetCurFile_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPersistFile_INTERFACE_DEFINED__ */
 
@@ -10512,47 +9204,48 @@ typedef struct IPersistStorageVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPersistStorage* This,
+        IPersistStorage *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPersistStorage* This);
+        IPersistStorage *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPersistStorage* This);
+        IPersistStorage *This);
 
     /*** IPersist methods ***/
     HRESULT (STDMETHODCALLTYPE *GetClassID)(
-        IPersistStorage* This,
+        IPersistStorage *This,
         CLSID *pClassID);
 
     /*** IPersistStorage methods ***/
     HRESULT (STDMETHODCALLTYPE *IsDirty)(
-        IPersistStorage* This);
+        IPersistStorage *This);
 
     HRESULT (STDMETHODCALLTYPE *InitNew)(
-        IPersistStorage* This,
+        IPersistStorage *This,
         IStorage *pStg);
 
     HRESULT (STDMETHODCALLTYPE *Load)(
-        IPersistStorage* This,
+        IPersistStorage *This,
         IStorage *pStg);
 
     HRESULT (STDMETHODCALLTYPE *Save)(
-        IPersistStorage* This,
+        IPersistStorage *This,
         IStorage *pStgSave,
         WINBOOL fSameAsLoad);
 
     HRESULT (STDMETHODCALLTYPE *SaveCompleted)(
-        IPersistStorage* This,
+        IPersistStorage *This,
         IStorage *pStgNew);
 
     HRESULT (STDMETHODCALLTYPE *HandsOffStorage)(
-        IPersistStorage* This);
+        IPersistStorage *This);
 
     END_INTERFACE
 } IPersistStorageVtbl;
+
 interface IPersistStorage {
     CONST_VTBL IPersistStorageVtbl* lpVtbl;
 };
@@ -10611,53 +9304,6 @@ static FORCEINLINE HRESULT IPersistStorage_HandsOffStorage(IPersistStorage* This
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPersistStorage_IsDirty_Proxy(
-    IPersistStorage* This);
-void __RPC_STUB IPersistStorage_IsDirty_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistStorage_InitNew_Proxy(
-    IPersistStorage* This,
-    IStorage *pStg);
-void __RPC_STUB IPersistStorage_InitNew_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistStorage_Load_Proxy(
-    IPersistStorage* This,
-    IStorage *pStg);
-void __RPC_STUB IPersistStorage_Load_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistStorage_Save_Proxy(
-    IPersistStorage* This,
-    IStorage *pStgSave,
-    WINBOOL fSameAsLoad);
-void __RPC_STUB IPersistStorage_Save_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistStorage_SaveCompleted_Proxy(
-    IPersistStorage* This,
-    IStorage *pStgNew);
-void __RPC_STUB IPersistStorage_SaveCompleted_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistStorage_HandsOffStorage_Proxy(
-    IPersistStorage* This);
-void __RPC_STUB IPersistStorage_HandsOffStorage_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPersistStorage_INTERFACE_DEFINED__ */
 
@@ -10717,57 +9363,58 @@ typedef struct ILockBytesVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ILockBytes* This,
+        ILockBytes *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ILockBytes* This);
+        ILockBytes *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ILockBytes* This);
+        ILockBytes *This);
 
     /*** ILockBytes methods ***/
     HRESULT (STDMETHODCALLTYPE *ReadAt)(
-        ILockBytes* This,
+        ILockBytes *This,
         ULARGE_INTEGER ulOffset,
         void *pv,
         ULONG cb,
         ULONG *pcbRead);
 
     HRESULT (STDMETHODCALLTYPE *WriteAt)(
-        ILockBytes* This,
+        ILockBytes *This,
         ULARGE_INTEGER ulOffset,
         const void *pv,
         ULONG cb,
         ULONG *pcbWritten);
 
     HRESULT (STDMETHODCALLTYPE *Flush)(
-        ILockBytes* This);
+        ILockBytes *This);
 
     HRESULT (STDMETHODCALLTYPE *SetSize)(
-        ILockBytes* This,
+        ILockBytes *This,
         ULARGE_INTEGER cb);
 
     HRESULT (STDMETHODCALLTYPE *LockRegion)(
-        ILockBytes* This,
+        ILockBytes *This,
         ULARGE_INTEGER libOffset,
         ULARGE_INTEGER cb,
         DWORD dwLockType);
 
     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
-        ILockBytes* This,
+        ILockBytes *This,
         ULARGE_INTEGER libOffset,
         ULARGE_INTEGER cb,
         DWORD dwLockType);
 
     HRESULT (STDMETHODCALLTYPE *Stat)(
-        ILockBytes* This,
+        ILockBytes *This,
         STATSTG *pstatstg,
         DWORD grfStatFlag);
 
     END_INTERFACE
 } ILockBytesVtbl;
+
 interface ILockBytes {
     CONST_VTBL ILockBytesVtbl* lpVtbl;
 };
@@ -10846,50 +9493,6 @@ void __RPC_STUB ILockBytes_RemoteWriteAt_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILockBytes_Flush_Proxy(
-    ILockBytes* This);
-void __RPC_STUB ILockBytes_Flush_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILockBytes_SetSize_Proxy(
-    ILockBytes* This,
-    ULARGE_INTEGER cb);
-void __RPC_STUB ILockBytes_SetSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILockBytes_LockRegion_Proxy(
-    ILockBytes* This,
-    ULARGE_INTEGER libOffset,
-    ULARGE_INTEGER cb,
-    DWORD dwLockType);
-void __RPC_STUB ILockBytes_LockRegion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILockBytes_UnlockRegion_Proxy(
-    ILockBytes* This,
-    ULARGE_INTEGER libOffset,
-    ULARGE_INTEGER cb,
-    DWORD dwLockType);
-void __RPC_STUB ILockBytes_UnlockRegion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILockBytes_Stat_Proxy(
-    ILockBytes* This,
-    STATSTG *pstatstg,
-    DWORD grfStatFlag);
-void __RPC_STUB ILockBytes_Stat_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK ILockBytes_ReadAt_Proxy(
     ILockBytes* This,
     ULARGE_INTEGER ulOffset,
@@ -10970,36 +9573,37 @@ typedef struct IEnumFORMATETCVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumFORMATETC* This,
+        IEnumFORMATETC *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumFORMATETC* This);
+        IEnumFORMATETC *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumFORMATETC* This);
+        IEnumFORMATETC *This);
 
     /*** IEnumFORMATETC methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumFORMATETC* This,
+        IEnumFORMATETC *This,
         ULONG celt,
         FORMATETC *rgelt,
         ULONG *pceltFetched);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumFORMATETC* This,
+        IEnumFORMATETC *This,
         ULONG celt);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumFORMATETC* This);
+        IEnumFORMATETC *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumFORMATETC* This,
+        IEnumFORMATETC *This,
         IEnumFORMATETC **ppenum);
 
     END_INTERFACE
 } IEnumFORMATETCVtbl;
+
 interface IEnumFORMATETC {
     CONST_VTBL IEnumFORMATETCVtbl* lpVtbl;
 };
@@ -11054,29 +9658,6 @@ void __RPC_STUB IEnumFORMATETC_RemoteNext_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Skip_Proxy(
-    IEnumFORMATETC* This,
-    ULONG celt);
-void __RPC_STUB IEnumFORMATETC_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Reset_Proxy(
-    IEnumFORMATETC* This);
-void __RPC_STUB IEnumFORMATETC_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumFORMATETC_Clone_Proxy(
-    IEnumFORMATETC* This,
-    IEnumFORMATETC **ppenum);
-void __RPC_STUB IEnumFORMATETC_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IEnumFORMATETC_Next_Proxy(
     IEnumFORMATETC* This,
     ULONG celt,
@@ -11142,36 +9723,37 @@ typedef struct IEnumSTATDATAVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumSTATDATA* This,
+        IEnumSTATDATA *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumSTATDATA* This);
+        IEnumSTATDATA *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumSTATDATA* This);
+        IEnumSTATDATA *This);
 
     /*** IEnumSTATDATA methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumSTATDATA* This,
+        IEnumSTATDATA *This,
         ULONG celt,
         STATDATA *rgelt,
         ULONG *pceltFetched);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumSTATDATA* This,
+        IEnumSTATDATA *This,
         ULONG celt);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumSTATDATA* This);
+        IEnumSTATDATA *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumSTATDATA* This,
+        IEnumSTATDATA *This,
         IEnumSTATDATA **ppenum);
 
     END_INTERFACE
 } IEnumSTATDATAVtbl;
+
 interface IEnumSTATDATA {
     CONST_VTBL IEnumSTATDATAVtbl* lpVtbl;
 };
@@ -11226,29 +9808,6 @@ void __RPC_STUB IEnumSTATDATA_RemoteNext_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Skip_Proxy(
-    IEnumSTATDATA* This,
-    ULONG celt);
-void __RPC_STUB IEnumSTATDATA_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Reset_Proxy(
-    IEnumSTATDATA* This);
-void __RPC_STUB IEnumSTATDATA_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumSTATDATA_Clone_Proxy(
-    IEnumSTATDATA* This,
-    IEnumSTATDATA **ppenum);
-void __RPC_STUB IEnumSTATDATA_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IEnumSTATDATA_Next_Proxy(
     IEnumSTATDATA* This,
     ULONG celt,
@@ -11287,23 +9846,24 @@ typedef struct IRootStorageVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRootStorage* This,
+        IRootStorage *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRootStorage* This);
+        IRootStorage *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRootStorage* This);
+        IRootStorage *This);
 
     /*** IRootStorage methods ***/
     HRESULT (STDMETHODCALLTYPE *SwitchToFile)(
-        IRootStorage* This,
+        IRootStorage *This,
         LPOLESTR pszFile);
 
     END_INTERFACE
 } IRootStorageVtbl;
+
 interface IRootStorage {
     CONST_VTBL IRootStorageVtbl* lpVtbl;
 };
@@ -11336,14 +9896,6 @@ static FORCEINLINE HRESULT IRootStorage_SwitchToFile(IRootStorage* This,LPOLESTR
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRootStorage_SwitchToFile_Proxy(
-    IRootStorage* This,
-    LPOLESTR pszFile);
-void __RPC_STUB IRootStorage_SwitchToFile_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRootStorage_INTERFACE_DEFINED__ */
 
@@ -11389,7 +9941,7 @@ IUnknown *pUnkForRelease;
 #else
 typedef struct tagSTGMEDIUM {
     DWORD tymed;
-    __C89_NAMELESS union {
+    union {
         HBITMAP hBitmap;
         HMETAFILEPICT hMetaFilePict;
         HENHMETAFILE hEnhMetaFile;
@@ -11403,16 +9955,16 @@ typedef struct tagSTGMEDIUM {
 #endif
 typedef struct _GDI_OBJECT {
     DWORD ObjectType;
-    union {
+    union __WIDL_objidl_generated_name_0000000C {
         wireHBITMAP hBitmap;
         wireHPALETTE hPalette;
         wireHGLOBAL hGeneric;
     } u;
 } GDI_OBJECT;
 typedef struct _userSTGMEDIUM {
-    __C89_NAMELESS struct _STGMEDIUM_UNION {
+    struct _STGMEDIUM_UNION {
         DWORD tymed;
-        union {
+        union __WIDL_objidl_generated_name_0000000D {
             wireHMETAFILEPICT hMetaFilePict;
             wireHENHMETAFILE hHEnhMetaFile;
             GDI_OBJECT *hGdiHandle;
@@ -11472,39 +10024,40 @@ typedef struct IAdviseSinkVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAdviseSink* This,
+        IAdviseSink *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAdviseSink* This);
+        IAdviseSink *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAdviseSink* This);
+        IAdviseSink *This);
 
     /*** IAdviseSink methods ***/
     void (STDMETHODCALLTYPE *OnDataChange)(
-        IAdviseSink* This,
+        IAdviseSink *This,
         FORMATETC *pFormatetc,
         STGMEDIUM *pStgmed);
 
     void (STDMETHODCALLTYPE *OnViewChange)(
-        IAdviseSink* This,
+        IAdviseSink *This,
         DWORD dwAspect,
         LONG lindex);
 
     void (STDMETHODCALLTYPE *OnRename)(
-        IAdviseSink* This,
+        IAdviseSink *This,
         IMoniker *pmk);
 
     void (STDMETHODCALLTYPE *OnSave)(
-        IAdviseSink* This);
+        IAdviseSink *This);
 
     void (STDMETHODCALLTYPE *OnClose)(
-        IAdviseSink* This);
+        IAdviseSink *This);
 
     END_INTERFACE
 } IAdviseSinkVtbl;
+
 interface IAdviseSink {
     CONST_VTBL IAdviseSinkVtbl* lpVtbl;
 };
@@ -11679,54 +10232,55 @@ typedef struct AsyncIAdviseSinkVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        AsyncIAdviseSink* This,
+        AsyncIAdviseSink *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        AsyncIAdviseSink* This);
+        AsyncIAdviseSink *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        AsyncIAdviseSink* This);
+        AsyncIAdviseSink *This);
 
-    /*** IAdviseSink methods ***/
+    /*** AsyncIAdviseSink methods ***/
     void (STDMETHODCALLTYPE *Begin_OnDataChange)(
-        AsyncIAdviseSink* This,
+        AsyncIAdviseSink *This,
         FORMATETC *pFormatetc,
         STGMEDIUM *pStgmed);
 
     void (STDMETHODCALLTYPE *Finish_OnDataChange)(
-        AsyncIAdviseSink* This);
+        AsyncIAdviseSink *This);
 
     void (STDMETHODCALLTYPE *Begin_OnViewChange)(
-        AsyncIAdviseSink* This,
+        AsyncIAdviseSink *This,
         DWORD dwAspect,
         LONG lindex);
 
     void (STDMETHODCALLTYPE *Finish_OnViewChange)(
-        AsyncIAdviseSink* This);
+        AsyncIAdviseSink *This);
 
     void (STDMETHODCALLTYPE *Begin_OnRename)(
-        AsyncIAdviseSink* This,
+        AsyncIAdviseSink *This,
         IMoniker *pmk);
 
     void (STDMETHODCALLTYPE *Finish_OnRename)(
-        AsyncIAdviseSink* This);
+        AsyncIAdviseSink *This);
 
     void (STDMETHODCALLTYPE *Begin_OnSave)(
-        AsyncIAdviseSink* This);
+        AsyncIAdviseSink *This);
 
     void (STDMETHODCALLTYPE *Finish_OnSave)(
-        AsyncIAdviseSink* This);
+        AsyncIAdviseSink *This);
 
     void (STDMETHODCALLTYPE *Begin_OnClose)(
-        AsyncIAdviseSink* This);
+        AsyncIAdviseSink *This);
 
     void (STDMETHODCALLTYPE *Finish_OnClose)(
-        AsyncIAdviseSink* This);
+        AsyncIAdviseSink *This);
 
     END_INTERFACE
 } AsyncIAdviseSinkVtbl;
+
 interface AsyncIAdviseSink {
     CONST_VTBL AsyncIAdviseSinkVtbl* lpVtbl;
 };
@@ -11737,7 +10291,7 @@ interface AsyncIAdviseSink {
 #define AsyncIAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define AsyncIAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define AsyncIAdviseSink_Release(This) (This)->lpVtbl->Release(This)
-/*** IAdviseSink methods ***/
+/*** AsyncIAdviseSink methods ***/
 #define AsyncIAdviseSink_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
 #define AsyncIAdviseSink_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
 #define AsyncIAdviseSink_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
@@ -11759,177 +10313,42 @@ static FORCEINLINE ULONG AsyncIAdviseSink_AddRef(AsyncIAdviseSink* This) {
 static FORCEINLINE ULONG AsyncIAdviseSink_Release(AsyncIAdviseSink* This) {
     return This->lpVtbl->Release(This);
 }
-/*** IAdviseSink methods ***/
-static FORCEINLINE void Begin_AsyncIAdviseSink_OnDataChange(AsyncIAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
+/*** AsyncIAdviseSink methods ***/
+static FORCEINLINE void AsyncIAdviseSink_Begin_OnDataChange(AsyncIAdviseSink* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
     This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink_OnDataChange(AsyncIAdviseSink* This) {
+static FORCEINLINE void AsyncIAdviseSink_Finish_OnDataChange(AsyncIAdviseSink* This) {
     This->lpVtbl->Finish_OnDataChange(This);
 }
-static FORCEINLINE void Begin_AsyncIAdviseSink_OnViewChange(AsyncIAdviseSink* This,DWORD dwAspect,LONG lindex) {
+static FORCEINLINE void AsyncIAdviseSink_Begin_OnViewChange(AsyncIAdviseSink* This,DWORD dwAspect,LONG lindex) {
     This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink_OnViewChange(AsyncIAdviseSink* This) {
+static FORCEINLINE void AsyncIAdviseSink_Finish_OnViewChange(AsyncIAdviseSink* This) {
     This->lpVtbl->Finish_OnViewChange(This);
 }
-static FORCEINLINE void Begin_AsyncIAdviseSink_OnRename(AsyncIAdviseSink* This,IMoniker *pmk) {
+static FORCEINLINE void AsyncIAdviseSink_Begin_OnRename(AsyncIAdviseSink* This,IMoniker *pmk) {
     This->lpVtbl->Begin_OnRename(This,pmk);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink_OnRename(AsyncIAdviseSink* This) {
+static FORCEINLINE void AsyncIAdviseSink_Finish_OnRename(AsyncIAdviseSink* This) {
     This->lpVtbl->Finish_OnRename(This);
 }
-static FORCEINLINE void Begin_AsyncIAdviseSink_OnSave(AsyncIAdviseSink* This) {
+static FORCEINLINE void AsyncIAdviseSink_Begin_OnSave(AsyncIAdviseSink* This) {
     This->lpVtbl->Begin_OnSave(This);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink_OnSave(AsyncIAdviseSink* This) {
+static FORCEINLINE void AsyncIAdviseSink_Finish_OnSave(AsyncIAdviseSink* This) {
     This->lpVtbl->Finish_OnSave(This);
 }
-static FORCEINLINE void Begin_AsyncIAdviseSink_OnClose(AsyncIAdviseSink* This) {
+static FORCEINLINE void AsyncIAdviseSink_Begin_OnClose(AsyncIAdviseSink* This) {
     This->lpVtbl->Begin_OnClose(This);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink_OnClose(AsyncIAdviseSink* This) {
-    This->lpVtbl->Finish_OnClose(This);
-}
-#endif
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnDataChange_Proxy(
-    IAdviseSink* This,
-    FORMATETC *pFormatetc,
-    ASYNC_STGMEDIUM *pStgmed);
-void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnDataChange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnDataChange_Proxy(
-    IAdviseSink* This,
-    FORMATETC *pFormatetc,
-    ASYNC_STGMEDIUM *pStgmed);
-void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnDataChange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnViewChange_Proxy(
-    IAdviseSink* This,
-    DWORD dwAspect,
-    LONG lindex);
-void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnViewChange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnViewChange_Proxy(
-    IAdviseSink* This,
-    DWORD dwAspect,
-    LONG lindex);
-void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnViewChange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnRename_Proxy(
-    IAdviseSink* This,
-    IMoniker *pmk);
-void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnRename_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnRename_Proxy(
-    IAdviseSink* This,
-    IMoniker *pmk);
-void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnRename_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnSave_Proxy(
-    IAdviseSink* This);
-void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnSave_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnSave_Proxy(
-    IAdviseSink* This);
-void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnSave_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Begin_RemoteOnClose_Proxy(
-    IAdviseSink* This);
-void __RPC_STUB AsyncIAdviseSink_Begin_RemoteOnClose_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink_Finish_RemoteOnClose_Proxy(
-    IAdviseSink* This);
-void __RPC_STUB AsyncIAdviseSink_Finish_RemoteOnClose_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void CALLBACK AsyncIAdviseSink_Begin_OnDataChange_Proxy(
-    IAdviseSink* This,
-    FORMATETC *pFormatetc,
-    STGMEDIUM *pStgmed);
-HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnDataChange_Stub(
-    IAdviseSink* This,
-    FORMATETC *pFormatetc,
-    ASYNC_STGMEDIUM *pStgmed);
-void CALLBACK AsyncIAdviseSink_Finish_OnDataChange_Proxy(
-    IAdviseSink* This);
-HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnDataChange_Stub(
-    IAdviseSink* This,
-    FORMATETC *pFormatetc,
-    ASYNC_STGMEDIUM *pStgmed);
-void CALLBACK AsyncIAdviseSink_Begin_OnViewChange_Proxy(
-    IAdviseSink* This,
-    DWORD dwAspect,
-    LONG lindex);
-HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnViewChange_Stub(
-    IAdviseSink* This,
-    DWORD dwAspect,
-    LONG lindex);
-void CALLBACK AsyncIAdviseSink_Finish_OnViewChange_Proxy(
-    IAdviseSink* This);
-HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnViewChange_Stub(
-    IAdviseSink* This,
-    DWORD dwAspect,
-    LONG lindex);
-void CALLBACK AsyncIAdviseSink_Begin_OnRename_Proxy(
-    IAdviseSink* This,
-    IMoniker *pmk);
-HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnRename_Stub(
-    IAdviseSink* This,
-    IMoniker *pmk);
-void CALLBACK AsyncIAdviseSink_Finish_OnRename_Proxy(
-    IAdviseSink* This);
-HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnRename_Stub(
-    IAdviseSink* This,
-    IMoniker *pmk);
-void CALLBACK AsyncIAdviseSink_Begin_OnSave_Proxy(
-    IAdviseSink* This);
-HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnSave_Stub(
-    IAdviseSink* This);
-void CALLBACK AsyncIAdviseSink_Finish_OnSave_Proxy(
-    IAdviseSink* This);
-HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnSave_Stub(
-    IAdviseSink* This);
-void CALLBACK AsyncIAdviseSink_Begin_OnClose_Proxy(
-    IAdviseSink* This);
-HRESULT __RPC_STUB AsyncIAdviseSink_Begin_OnClose_Stub(
-    IAdviseSink* This);
-void CALLBACK AsyncIAdviseSink_Finish_OnClose_Proxy(
-    IAdviseSink* This);
-HRESULT __RPC_STUB AsyncIAdviseSink_Finish_OnClose_Stub(
-    IAdviseSink* This);
+static FORCEINLINE void AsyncIAdviseSink_Finish_OnClose(AsyncIAdviseSink* This) {
+    This->lpVtbl->Finish_OnClose(This);
+}
+#endif
+#endif
+
+#endif
+
 
 #endif  /* __AsyncIAdviseSink_INTERFACE_DEFINED__ */
 
@@ -11960,44 +10379,45 @@ typedef struct IAdviseSink2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAdviseSink2* This,
+        IAdviseSink2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAdviseSink2* This);
+        IAdviseSink2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAdviseSink2* This);
+        IAdviseSink2 *This);
 
     /*** IAdviseSink methods ***/
     void (STDMETHODCALLTYPE *OnDataChange)(
-        IAdviseSink2* This,
+        IAdviseSink2 *This,
         FORMATETC *pFormatetc,
         STGMEDIUM *pStgmed);
 
     void (STDMETHODCALLTYPE *OnViewChange)(
-        IAdviseSink2* This,
+        IAdviseSink2 *This,
         DWORD dwAspect,
         LONG lindex);
 
     void (STDMETHODCALLTYPE *OnRename)(
-        IAdviseSink2* This,
+        IAdviseSink2 *This,
         IMoniker *pmk);
 
     void (STDMETHODCALLTYPE *OnSave)(
-        IAdviseSink2* This);
+        IAdviseSink2 *This);
 
     void (STDMETHODCALLTYPE *OnClose)(
-        IAdviseSink2* This);
+        IAdviseSink2 *This);
 
     /*** IAdviseSink2 methods ***/
     void (STDMETHODCALLTYPE *OnLinkSrcChange)(
-        IAdviseSink2* This,
+        IAdviseSink2 *This,
         IMoniker *pmk);
 
     END_INTERFACE
 } IAdviseSink2Vtbl;
+
 interface IAdviseSink2 {
     CONST_VTBL IAdviseSink2Vtbl* lpVtbl;
 };
@@ -12078,7 +10498,7 @@ HRESULT __RPC_STUB IAdviseSink2_OnLinkSrcChange_Stub(
 DEFINE_GUID(IID_AsyncIAdviseSink2, 0x00000151, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 #if defined(__cplusplus) && !defined(CINTERFACE)
 MIDL_INTERFACE("00000151-0000-0000-c000-000000000046")
-AsyncIAdviseSink2 : public IAdviseSink
+AsyncIAdviseSink2 : public AsyncIAdviseSink
 {
     virtual void STDMETHODCALLTYPE Begin_OnLinkSrcChange(
         IMoniker *pmk) = 0;
@@ -12096,62 +10516,63 @@ typedef struct AsyncIAdviseSink2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        AsyncIAdviseSink2* This,
+        AsyncIAdviseSink2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        AsyncIAdviseSink2* This);
+        AsyncIAdviseSink2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        AsyncIAdviseSink2* This);
+        AsyncIAdviseSink2 *This);
 
-    /*** IAdviseSink methods ***/
+    /*** AsyncIAdviseSink methods ***/
     void (STDMETHODCALLTYPE *Begin_OnDataChange)(
-        AsyncIAdviseSink2* This,
+        AsyncIAdviseSink2 *This,
         FORMATETC *pFormatetc,
         STGMEDIUM *pStgmed);
 
     void (STDMETHODCALLTYPE *Finish_OnDataChange)(
-        AsyncIAdviseSink2* This);
+        AsyncIAdviseSink2 *This);
 
     void (STDMETHODCALLTYPE *Begin_OnViewChange)(
-        AsyncIAdviseSink2* This,
+        AsyncIAdviseSink2 *This,
         DWORD dwAspect,
         LONG lindex);
 
     void (STDMETHODCALLTYPE *Finish_OnViewChange)(
-        AsyncIAdviseSink2* This);
+        AsyncIAdviseSink2 *This);
 
     void (STDMETHODCALLTYPE *Begin_OnRename)(
-        AsyncIAdviseSink2* This,
+        AsyncIAdviseSink2 *This,
         IMoniker *pmk);
 
     void (STDMETHODCALLTYPE *Finish_OnRename)(
-        AsyncIAdviseSink2* This);
+        AsyncIAdviseSink2 *This);
 
     void (STDMETHODCALLTYPE *Begin_OnSave)(
-        AsyncIAdviseSink2* This);
+        AsyncIAdviseSink2 *This);
 
     void (STDMETHODCALLTYPE *Finish_OnSave)(
-        AsyncIAdviseSink2* This);
+        AsyncIAdviseSink2 *This);
 
     void (STDMETHODCALLTYPE *Begin_OnClose)(
-        AsyncIAdviseSink2* This);
+        AsyncIAdviseSink2 *This);
 
     void (STDMETHODCALLTYPE *Finish_OnClose)(
-        AsyncIAdviseSink2* This);
+        AsyncIAdviseSink2 *This);
 
-    /*** IAdviseSink2 methods ***/
+    /*** AsyncIAdviseSink2 methods ***/
     void (STDMETHODCALLTYPE *Begin_OnLinkSrcChange)(
-        AsyncIAdviseSink2* This,
+        AsyncIAdviseSink2 *This,
         IMoniker *pmk);
 
     void (STDMETHODCALLTYPE *Finish_OnLinkSrcChange)(
-        AsyncIAdviseSink2* This);
+        AsyncIAdviseSink2 *This);
 
     END_INTERFACE
 } AsyncIAdviseSink2Vtbl;
+
 interface AsyncIAdviseSink2 {
     CONST_VTBL AsyncIAdviseSink2Vtbl* lpVtbl;
 };
@@ -12162,7 +10583,7 @@ interface AsyncIAdviseSink2 {
 #define AsyncIAdviseSink2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 #define AsyncIAdviseSink2_AddRef(This) (This)->lpVtbl->AddRef(This)
 #define AsyncIAdviseSink2_Release(This) (This)->lpVtbl->Release(This)
-/*** IAdviseSink methods ***/
+/*** AsyncIAdviseSink methods ***/
 #define AsyncIAdviseSink2_Begin_OnDataChange(This,pFormatetc,pStgmed) (This)->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed)
 #define AsyncIAdviseSink2_Finish_OnDataChange(This) (This)->lpVtbl->Finish_OnDataChange(This)
 #define AsyncIAdviseSink2_Begin_OnViewChange(This,dwAspect,lindex) (This)->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex)
@@ -12173,7 +10594,7 @@ interface AsyncIAdviseSink2 {
 #define AsyncIAdviseSink2_Finish_OnSave(This) (This)->lpVtbl->Finish_OnSave(This)
 #define AsyncIAdviseSink2_Begin_OnClose(This) (This)->lpVtbl->Begin_OnClose(This)
 #define AsyncIAdviseSink2_Finish_OnClose(This) (This)->lpVtbl->Finish_OnClose(This)
-/*** IAdviseSink2 methods ***/
+/*** AsyncIAdviseSink2 methods ***/
 #define AsyncIAdviseSink2_Begin_OnLinkSrcChange(This,pmk) (This)->lpVtbl->Begin_OnLinkSrcChange(This,pmk)
 #define AsyncIAdviseSink2_Finish_OnLinkSrcChange(This) (This)->lpVtbl->Finish_OnLinkSrcChange(This)
 #else
@@ -12187,42 +10608,42 @@ static FORCEINLINE ULONG AsyncIAdviseSink2_AddRef(AsyncIAdviseSink2* This) {
 static FORCEINLINE ULONG AsyncIAdviseSink2_Release(AsyncIAdviseSink2* This) {
     return This->lpVtbl->Release(This);
 }
-/*** IAdviseSink methods ***/
-static FORCEINLINE void Begin_AsyncIAdviseSink2_OnDataChange(AsyncIAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
+/*** AsyncIAdviseSink methods ***/
+static FORCEINLINE void AsyncIAdviseSink2_Begin_OnDataChange(AsyncIAdviseSink2* This,FORMATETC *pFormatetc,STGMEDIUM *pStgmed) {
     This->lpVtbl->Begin_OnDataChange(This,pFormatetc,pStgmed);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink2_OnDataChange(AsyncIAdviseSink2* This) {
+static FORCEINLINE void AsyncIAdviseSink2_Finish_OnDataChange(AsyncIAdviseSink2* This) {
     This->lpVtbl->Finish_OnDataChange(This);
 }
-static FORCEINLINE void Begin_AsyncIAdviseSink2_OnViewChange(AsyncIAdviseSink2* This,DWORD dwAspect,LONG lindex) {
+static FORCEINLINE void AsyncIAdviseSink2_Begin_OnViewChange(AsyncIAdviseSink2* This,DWORD dwAspect,LONG lindex) {
     This->lpVtbl->Begin_OnViewChange(This,dwAspect,lindex);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink2_OnViewChange(AsyncIAdviseSink2* This) {
+static FORCEINLINE void AsyncIAdviseSink2_Finish_OnViewChange(AsyncIAdviseSink2* This) {
     This->lpVtbl->Finish_OnViewChange(This);
 }
-static FORCEINLINE void Begin_AsyncIAdviseSink2_OnRename(AsyncIAdviseSink2* This,IMoniker *pmk) {
+static FORCEINLINE void AsyncIAdviseSink2_Begin_OnRename(AsyncIAdviseSink2* This,IMoniker *pmk) {
     This->lpVtbl->Begin_OnRename(This,pmk);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink2_OnRename(AsyncIAdviseSink2* This) {
+static FORCEINLINE void AsyncIAdviseSink2_Finish_OnRename(AsyncIAdviseSink2* This) {
     This->lpVtbl->Finish_OnRename(This);
 }
-static FORCEINLINE void Begin_AsyncIAdviseSink2_OnSave(AsyncIAdviseSink2* This) {
+static FORCEINLINE void AsyncIAdviseSink2_Begin_OnSave(AsyncIAdviseSink2* This) {
     This->lpVtbl->Begin_OnSave(This);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink2_OnSave(AsyncIAdviseSink2* This) {
+static FORCEINLINE void AsyncIAdviseSink2_Finish_OnSave(AsyncIAdviseSink2* This) {
     This->lpVtbl->Finish_OnSave(This);
 }
-static FORCEINLINE void Begin_AsyncIAdviseSink2_OnClose(AsyncIAdviseSink2* This) {
+static FORCEINLINE void AsyncIAdviseSink2_Begin_OnClose(AsyncIAdviseSink2* This) {
     This->lpVtbl->Begin_OnClose(This);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink2_OnClose(AsyncIAdviseSink2* This) {
+static FORCEINLINE void AsyncIAdviseSink2_Finish_OnClose(AsyncIAdviseSink2* This) {
     This->lpVtbl->Finish_OnClose(This);
 }
-/*** IAdviseSink2 methods ***/
-static FORCEINLINE void Begin_AsyncIAdviseSink2_OnLinkSrcChange(AsyncIAdviseSink2* This,IMoniker *pmk) {
+/*** AsyncIAdviseSink2 methods ***/
+static FORCEINLINE void AsyncIAdviseSink2_Begin_OnLinkSrcChange(AsyncIAdviseSink2* This,IMoniker *pmk) {
     This->lpVtbl->Begin_OnLinkSrcChange(This,pmk);
 }
-static FORCEINLINE void Finish_AsyncIAdviseSink2_OnLinkSrcChange(AsyncIAdviseSink2* This) {
+static FORCEINLINE void AsyncIAdviseSink2_Finish_OnLinkSrcChange(AsyncIAdviseSink2* This) {
     This->lpVtbl->Finish_OnLinkSrcChange(This);
 }
 #endif
@@ -12230,33 +10651,6 @@ static FORCEINLINE void Finish_AsyncIAdviseSink2_OnLinkSrcChange(AsyncIAdviseSin
 
 #endif
 
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Proxy(
-    IAdviseSink2* This,
-    IMoniker *pmk);
-void __RPC_STUB AsyncIAdviseSink2_Begin_RemoteOnLinkSrcChange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Proxy(
-    IAdviseSink2* This,
-    IMoniker *pmk);
-void __RPC_STUB AsyncIAdviseSink2_Finish_RemoteOnLinkSrcChange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-void CALLBACK AsyncIAdviseSink2_Begin_OnLinkSrcChange_Proxy(
-    IAdviseSink2* This,
-    IMoniker *pmk);
-HRESULT __RPC_STUB AsyncIAdviseSink2_Begin_OnLinkSrcChange_Stub(
-    IAdviseSink2* This,
-    IMoniker *pmk);
-void CALLBACK AsyncIAdviseSink2_Finish_OnLinkSrcChange_Proxy(
-    IAdviseSink2* This);
-HRESULT __RPC_STUB AsyncIAdviseSink2_Finish_OnLinkSrcChange_Stub(
-    IAdviseSink2* This,
-    IMoniker *pmk);
 
 #endif  /* __AsyncIAdviseSink2_INTERFACE_DEFINED__ */
 
@@ -12324,64 +10718,65 @@ typedef struct IDataObjectVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDataObject* This,
+        IDataObject *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDataObject* This);
+        IDataObject *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDataObject* This);
+        IDataObject *This);
 
     /*** IDataObject methods ***/
     HRESULT (STDMETHODCALLTYPE *GetData)(
-        IDataObject* This,
+        IDataObject *This,
         FORMATETC *pformatetcIn,
         STGMEDIUM *pmedium);
 
     HRESULT (STDMETHODCALLTYPE *GetDataHere)(
-        IDataObject* This,
+        IDataObject *This,
         FORMATETC *pformatetc,
         STGMEDIUM *pmedium);
 
     HRESULT (STDMETHODCALLTYPE *QueryGetData)(
-        IDataObject* This,
+        IDataObject *This,
         FORMATETC *pformatetc);
 
     HRESULT (STDMETHODCALLTYPE *GetCanonicalFormatEtc)(
-        IDataObject* This,
+        IDataObject *This,
         FORMATETC *pformatectIn,
         FORMATETC *pformatetcOut);
 
     HRESULT (STDMETHODCALLTYPE *SetData)(
-        IDataObject* This,
+        IDataObject *This,
         FORMATETC *pformatetc,
         STGMEDIUM *pmedium,
         WINBOOL fRelease);
 
     HRESULT (STDMETHODCALLTYPE *EnumFormatEtc)(
-        IDataObject* This,
+        IDataObject *This,
         DWORD dwDirection,
         IEnumFORMATETC **ppenumFormatEtc);
 
     HRESULT (STDMETHODCALLTYPE *DAdvise)(
-        IDataObject* This,
+        IDataObject *This,
         FORMATETC *pformatetc,
         DWORD advf,
         IAdviseSink *pAdvSink,
         DWORD *pdwConnection);
 
     HRESULT (STDMETHODCALLTYPE *DUnadvise)(
-        IDataObject* This,
+        IDataObject *This,
         DWORD dwConnection);
 
     HRESULT (STDMETHODCALLTYPE *EnumDAdvise)(
-        IDataObject* This,
+        IDataObject *This,
         IEnumSTATDATA **ppenumAdvise);
 
     END_INTERFACE
 } IDataObjectVtbl;
+
 interface IDataObject {
     CONST_VTBL IDataObjectVtbl* lpVtbl;
 };
@@ -12464,23 +10859,6 @@ void __RPC_STUB IDataObject_RemoteGetDataHere_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDataObject_QueryGetData_Proxy(
-    IDataObject* This,
-    FORMATETC *pformatetc);
-void __RPC_STUB IDataObject_QueryGetData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDataObject_GetCanonicalFormatEtc_Proxy(
-    IDataObject* This,
-    FORMATETC *pformatectIn,
-    FORMATETC *pformatetcOut);
-void __RPC_STUB IDataObject_GetCanonicalFormatEtc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT STDMETHODCALLTYPE IDataObject_RemoteSetData_Proxy(
     IDataObject* This,
     FORMATETC *pformatetc,
@@ -12491,42 +10869,6 @@ void __RPC_STUB IDataObject_RemoteSetData_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDataObject_EnumFormatEtc_Proxy(
-    IDataObject* This,
-    DWORD dwDirection,
-    IEnumFORMATETC **ppenumFormatEtc);
-void __RPC_STUB IDataObject_EnumFormatEtc_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDataObject_DAdvise_Proxy(
-    IDataObject* This,
-    FORMATETC *pformatetc,
-    DWORD advf,
-    IAdviseSink *pAdvSink,
-    DWORD *pdwConnection);
-void __RPC_STUB IDataObject_DAdvise_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDataObject_DUnadvise_Proxy(
-    IDataObject* This,
-    DWORD dwConnection);
-void __RPC_STUB IDataObject_DUnadvise_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDataObject_EnumDAdvise_Proxy(
-    IDataObject* This,
-    IEnumSTATDATA **ppenumAdvise);
-void __RPC_STUB IDataObject_EnumDAdvise_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IDataObject_GetData_Proxy(
     IDataObject* This,
     FORMATETC *pformatetcIn,
@@ -12598,19 +10940,19 @@ typedef struct IDataAdviseHolderVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDataAdviseHolder* This,
+        IDataAdviseHolder *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDataAdviseHolder* This);
+        IDataAdviseHolder *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDataAdviseHolder* This);
+        IDataAdviseHolder *This);
 
     /*** IDataAdviseHolder methods ***/
     HRESULT (STDMETHODCALLTYPE *Advise)(
-        IDataAdviseHolder* This,
+        IDataAdviseHolder *This,
         IDataObject *pDataObject,
         FORMATETC *pFetc,
         DWORD advf,
@@ -12618,21 +10960,22 @@ typedef struct IDataAdviseHolderVtbl {
         DWORD *pdwConnection);
 
     HRESULT (STDMETHODCALLTYPE *Unadvise)(
-        IDataAdviseHolder* This,
+        IDataAdviseHolder *This,
         DWORD dwConnection);
 
     HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
-        IDataAdviseHolder* This,
+        IDataAdviseHolder *This,
         IEnumSTATDATA **ppenumAdvise);
 
     HRESULT (STDMETHODCALLTYPE *SendOnDataChange)(
-        IDataAdviseHolder* This,
+        IDataAdviseHolder *This,
         IDataObject *pDataObject,
         DWORD dwReserved,
         DWORD advf);
 
     END_INTERFACE
 } IDataAdviseHolderVtbl;
+
 interface IDataAdviseHolder {
     CONST_VTBL IDataAdviseHolderVtbl* lpVtbl;
 };
@@ -12677,44 +11020,6 @@ static FORCEINLINE HRESULT IDataAdviseHolder_SendOnDataChange(IDataAdviseHolder*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDataAdviseHolder_Advise_Proxy(
-    IDataAdviseHolder* This,
-    IDataObject *pDataObject,
-    FORMATETC *pFetc,
-    DWORD advf,
-    IAdviseSink *pAdvise,
-    DWORD *pdwConnection);
-void __RPC_STUB IDataAdviseHolder_Advise_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDataAdviseHolder_Unadvise_Proxy(
-    IDataAdviseHolder* This,
-    DWORD dwConnection);
-void __RPC_STUB IDataAdviseHolder_Unadvise_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDataAdviseHolder_EnumAdvise_Proxy(
-    IDataAdviseHolder* This,
-    IEnumSTATDATA **ppenumAdvise);
-void __RPC_STUB IDataAdviseHolder_EnumAdvise_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDataAdviseHolder_SendOnDataChange_Proxy(
-    IDataAdviseHolder* This,
-    IDataObject *pDataObject,
-    DWORD dwReserved,
-    DWORD advf);
-void __RPC_STUB IDataAdviseHolder_SendOnDataChange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDataAdviseHolder_INTERFACE_DEFINED__ */
 
@@ -12783,38 +11088,39 @@ typedef struct IMessageFilterVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMessageFilter* This,
+        IMessageFilter *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMessageFilter* This);
+        IMessageFilter *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMessageFilter* This);
+        IMessageFilter *This);
 
     /*** IMessageFilter methods ***/
     DWORD (STDMETHODCALLTYPE *HandleInComingCall)(
-        IMessageFilter* This,
+        IMessageFilter *This,
         DWORD dwCallType,
         HTASK htaskCaller,
         DWORD dwTickCount,
         LPINTERFACEINFO lpInterfaceInfo);
 
     DWORD (STDMETHODCALLTYPE *RetryRejectedCall)(
-        IMessageFilter* This,
+        IMessageFilter *This,
         HTASK htaskCallee,
         DWORD dwTickCount,
         DWORD dwRejectType);
 
     DWORD (STDMETHODCALLTYPE *MessagePending)(
-        IMessageFilter* This,
+        IMessageFilter *This,
         HTASK htaskCallee,
         DWORD dwTickCount,
         DWORD dwPendingType);
 
     END_INTERFACE
 } IMessageFilterVtbl;
+
 interface IMessageFilter {
     CONST_VTBL IMessageFilterVtbl* lpVtbl;
 };
@@ -12855,37 +11161,6 @@ static FORCEINLINE DWORD IMessageFilter_MessagePending(IMessageFilter* This,HTAS
 
 #endif
 
-DWORD STDMETHODCALLTYPE IMessageFilter_HandleInComingCall_Proxy(
-    IMessageFilter* This,
-    DWORD dwCallType,
-    HTASK htaskCaller,
-    DWORD dwTickCount,
-    LPINTERFACEINFO lpInterfaceInfo);
-void __RPC_STUB IMessageFilter_HandleInComingCall_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-DWORD STDMETHODCALLTYPE IMessageFilter_RetryRejectedCall_Proxy(
-    IMessageFilter* This,
-    HTASK htaskCallee,
-    DWORD dwTickCount,
-    DWORD dwRejectType);
-void __RPC_STUB IMessageFilter_RetryRejectedCall_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-DWORD STDMETHODCALLTYPE IMessageFilter_MessagePending_Proxy(
-    IMessageFilter* This,
-    HTASK htaskCallee,
-    DWORD dwTickCount,
-    DWORD dwPendingType);
-void __RPC_STUB IMessageFilter_MessagePending_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMessageFilter_INTERFACE_DEFINED__ */
 
@@ -12934,19 +11209,19 @@ typedef struct IClassActivatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IClassActivator* This,
+        IClassActivator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IClassActivator* This);
+        IClassActivator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IClassActivator* This);
+        IClassActivator *This);
 
     /*** IClassActivator methods ***/
     HRESULT (STDMETHODCALLTYPE *GetClassObject)(
-        IClassActivator* This,
+        IClassActivator *This,
         REFCLSID rclsid,
         DWORD dwClassContext,
         LCID locale,
@@ -12955,6 +11230,7 @@ typedef struct IClassActivatorVtbl {
 
     END_INTERFACE
 } IClassActivatorVtbl;
+
 interface IClassActivator {
     CONST_VTBL IClassActivatorVtbl* lpVtbl;
 };
@@ -12987,18 +11263,6 @@ static FORCEINLINE HRESULT IClassActivator_GetClassObject(IClassActivator* This,
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IClassActivator_GetClassObject_Proxy(
-    IClassActivator* This,
-    REFCLSID rclsid,
-    DWORD dwClassContext,
-    LCID locale,
-    REFIID riid,
-    void **ppv);
-void __RPC_STUB IClassActivator_GetClassObject_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IClassActivator_INTERFACE_DEFINED__ */
 
@@ -13042,40 +11306,41 @@ typedef struct IFillLockBytesVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IFillLockBytes* This,
+        IFillLockBytes *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IFillLockBytes* This);
+        IFillLockBytes *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IFillLockBytes* This);
+        IFillLockBytes *This);
 
     /*** IFillLockBytes methods ***/
     HRESULT (STDMETHODCALLTYPE *FillAppend)(
-        IFillLockBytes* This,
+        IFillLockBytes *This,
         const void *pv,
         ULONG cb,
         ULONG *pcbWritten);
 
     HRESULT (STDMETHODCALLTYPE *FillAt)(
-        IFillLockBytes* This,
+        IFillLockBytes *This,
         ULARGE_INTEGER ulOffset,
         const void *pv,
         ULONG cb,
         ULONG *pcbWritten);
 
     HRESULT (STDMETHODCALLTYPE *SetFillSize)(
-        IFillLockBytes* This,
+        IFillLockBytes *This,
         ULARGE_INTEGER ulSize);
 
     HRESULT (STDMETHODCALLTYPE *Terminate)(
-        IFillLockBytes* This,
+        IFillLockBytes *This,
         WINBOOL bCanceled);
 
     END_INTERFACE
 } IFillLockBytesVtbl;
+
 interface IFillLockBytes {
     CONST_VTBL IFillLockBytesVtbl* lpVtbl;
 };
@@ -13141,22 +11406,6 @@ void __RPC_STUB IFillLockBytes_RemoteFillAt_Stub(
     IRpcChannelBuffer* pRpcChannelBuffer,
     PRPC_MESSAGE pRpcMessage,
     DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFillLockBytes_SetFillSize_Proxy(
-    IFillLockBytes* This,
-    ULARGE_INTEGER ulSize);
-void __RPC_STUB IFillLockBytes_SetFillSize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IFillLockBytes_Terminate_Proxy(
-    IFillLockBytes* This,
-    WINBOOL bCanceled);
-void __RPC_STUB IFillLockBytes_Terminate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 HRESULT CALLBACK IFillLockBytes_FillAppend_Proxy(
     IFillLockBytes* This,
     const void *pv,
@@ -13211,19 +11460,19 @@ typedef struct IProgressNotifyVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IProgressNotify* This,
+        IProgressNotify *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IProgressNotify* This);
+        IProgressNotify *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IProgressNotify* This);
+        IProgressNotify *This);
 
     /*** IProgressNotify methods ***/
     HRESULT (STDMETHODCALLTYPE *OnProgress)(
-        IProgressNotify* This,
+        IProgressNotify *This,
         DWORD dwProgressCurrent,
         DWORD dwProgressMaximum,
         WINBOOL fAccurate,
@@ -13231,6 +11480,7 @@ typedef struct IProgressNotifyVtbl {
 
     END_INTERFACE
 } IProgressNotifyVtbl;
+
 interface IProgressNotify {
     CONST_VTBL IProgressNotifyVtbl* lpVtbl;
 };
@@ -13263,17 +11513,6 @@ static FORCEINLINE HRESULT IProgressNotify_OnProgress(IProgressNotify* This,DWOR
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IProgressNotify_OnProgress_Proxy(
-    IProgressNotify* This,
-    DWORD dwProgressCurrent,
-    DWORD dwProgressMaximum,
-    WINBOOL fAccurate,
-    WINBOOL fOwner);
-void __RPC_STUB IProgressNotify_OnProgress_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IProgressNotify_INTERFACE_DEFINED__ */
 
@@ -13323,39 +11562,40 @@ typedef struct ILayoutStorageVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ILayoutStorage* This,
+        ILayoutStorage *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ILayoutStorage* This);
+        ILayoutStorage *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ILayoutStorage* This);
+        ILayoutStorage *This);
 
     /*** ILayoutStorage methods ***/
     HRESULT (__stdcall *LayoutScript)(
-        ILayoutStorage* This,
+        ILayoutStorage *This,
         StorageLayout *pStorageLayout,
         DWORD nEntries,
         DWORD glfInterleavedFlag);
 
     HRESULT (__stdcall *BeginMonitor)(
-        ILayoutStorage* This);
+        ILayoutStorage *This);
 
     HRESULT (__stdcall *EndMonitor)(
-        ILayoutStorage* This);
+        ILayoutStorage *This);
 
     HRESULT (__stdcall *ReLayoutDocfile)(
-        ILayoutStorage* This,
+        ILayoutStorage *This,
         OLECHAR *pwcsNewDfName);
 
     HRESULT (__stdcall *ReLayoutDocfileOnILockBytes)(
-        ILayoutStorage* This,
+        ILayoutStorage *This,
         ILockBytes *pILockBytes);
 
     END_INTERFACE
 } ILayoutStorageVtbl;
+
 interface ILayoutStorage {
     CONST_VTBL ILayoutStorageVtbl* lpVtbl;
 };
@@ -13404,46 +11644,6 @@ static FORCEINLINE HRESULT ILayoutStorage_ReLayoutDocfileOnILockBytes(ILayoutSto
 
 #endif
 
-HRESULT __stdcall ILayoutStorage_LayoutScript_Proxy(
-    ILayoutStorage* This,
-    StorageLayout *pStorageLayout,
-    DWORD nEntries,
-    DWORD glfInterleavedFlag);
-void __RPC_STUB ILayoutStorage_LayoutScript_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT __stdcall ILayoutStorage_BeginMonitor_Proxy(
-    ILayoutStorage* This);
-void __RPC_STUB ILayoutStorage_BeginMonitor_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT __stdcall ILayoutStorage_EndMonitor_Proxy(
-    ILayoutStorage* This);
-void __RPC_STUB ILayoutStorage_EndMonitor_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT __stdcall ILayoutStorage_ReLayoutDocfile_Proxy(
-    ILayoutStorage* This,
-    OLECHAR *pwcsNewDfName);
-void __RPC_STUB ILayoutStorage_ReLayoutDocfile_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT __stdcall ILayoutStorage_ReLayoutDocfileOnILockBytes_Proxy(
-    ILayoutStorage* This,
-    ILockBytes *pILockBytes);
-void __RPC_STUB ILayoutStorage_ReLayoutDocfileOnILockBytes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ILayoutStorage_INTERFACE_DEFINED__ */
 
@@ -13476,26 +11676,27 @@ typedef struct IBlockingLockVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBlockingLock* This,
+        IBlockingLock *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBlockingLock* This);
+        IBlockingLock *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBlockingLock* This);
+        IBlockingLock *This);
 
     /*** IBlockingLock methods ***/
     HRESULT (STDMETHODCALLTYPE *Lock)(
-        IBlockingLock* This,
+        IBlockingLock *This,
         DWORD dwTimeout);
 
     HRESULT (STDMETHODCALLTYPE *Unlock)(
-        IBlockingLock* This);
+        IBlockingLock *This);
 
     END_INTERFACE
 } IBlockingLockVtbl;
+
 interface IBlockingLock {
     CONST_VTBL IBlockingLockVtbl* lpVtbl;
 };
@@ -13532,21 +11733,6 @@ static FORCEINLINE HRESULT IBlockingLock_Unlock(IBlockingLock* This) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBlockingLock_Lock_Proxy(
-    IBlockingLock* This,
-    DWORD dwTimeout);
-void __RPC_STUB IBlockingLock_Lock_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBlockingLock_Unlock_Proxy(
-    IBlockingLock* This);
-void __RPC_STUB IBlockingLock_Unlock_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBlockingLock_INTERFACE_DEFINED__ */
 
@@ -13575,24 +11761,25 @@ typedef struct ITimeAndNoticeControlVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ITimeAndNoticeControl* This,
+        ITimeAndNoticeControl *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ITimeAndNoticeControl* This);
+        ITimeAndNoticeControl *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ITimeAndNoticeControl* This);
+        ITimeAndNoticeControl *This);
 
     /*** ITimeAndNoticeControl methods ***/
     HRESULT (STDMETHODCALLTYPE *SuppressChanges)(
-        ITimeAndNoticeControl* This,
+        ITimeAndNoticeControl *This,
         DWORD res1,
         DWORD res2);
 
     END_INTERFACE
 } ITimeAndNoticeControlVtbl;
+
 interface ITimeAndNoticeControl {
     CONST_VTBL ITimeAndNoticeControlVtbl* lpVtbl;
 };
@@ -13625,15 +11812,6 @@ static FORCEINLINE HRESULT ITimeAndNoticeControl_SuppressChanges(ITimeAndNoticeC
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ITimeAndNoticeControl_SuppressChanges_Proxy(
-    ITimeAndNoticeControl* This,
-    DWORD res1,
-    DWORD res2);
-void __RPC_STUB ITimeAndNoticeControl_SuppressChanges_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ITimeAndNoticeControl_INTERFACE_DEFINED__ */
 
@@ -13674,19 +11852,19 @@ typedef struct IOplockStorageVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IOplockStorage* This,
+        IOplockStorage *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IOplockStorage* This);
+        IOplockStorage *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IOplockStorage* This);
+        IOplockStorage *This);
 
     /*** IOplockStorage methods ***/
     HRESULT (STDMETHODCALLTYPE *CreateStorageEx)(
-        IOplockStorage* This,
+        IOplockStorage *This,
         LPCWSTR pwcsName,
         DWORD grfMode,
         DWORD stgfmt,
@@ -13695,7 +11873,7 @@ typedef struct IOplockStorageVtbl {
         void **ppstgOpen);
 
     HRESULT (STDMETHODCALLTYPE *OpenStorageEx)(
-        IOplockStorage* This,
+        IOplockStorage *This,
         LPCWSTR pwcsName,
         DWORD grfMode,
         DWORD stgfmt,
@@ -13705,6 +11883,7 @@ typedef struct IOplockStorageVtbl {
 
     END_INTERFACE
 } IOplockStorageVtbl;
+
 interface IOplockStorage {
     CONST_VTBL IOplockStorageVtbl* lpVtbl;
 };
@@ -13741,32 +11920,6 @@ static FORCEINLINE HRESULT IOplockStorage_OpenStorageEx(IOplockStorage* This,LPC
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IOplockStorage_CreateStorageEx_Proxy(
-    IOplockStorage* This,
-    LPCWSTR pwcsName,
-    DWORD grfMode,
-    DWORD stgfmt,
-    DWORD grfAttrs,
-    REFIID riid,
-    void **ppstgOpen);
-void __RPC_STUB IOplockStorage_CreateStorageEx_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IOplockStorage_OpenStorageEx_Proxy(
-    IOplockStorage* This,
-    LPCWSTR pwcsName,
-    DWORD grfMode,
-    DWORD stgfmt,
-    DWORD grfAttrs,
-    REFIID riid,
-    void **ppstgOpen);
-void __RPC_STUB IOplockStorage_OpenStorageEx_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IOplockStorage_INTERFACE_DEFINED__ */
 
@@ -13802,29 +11955,30 @@ typedef struct IDirectWriterLockVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDirectWriterLock* This,
+        IDirectWriterLock *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDirectWriterLock* This);
+        IDirectWriterLock *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDirectWriterLock* This);
+        IDirectWriterLock *This);
 
     /*** IDirectWriterLock methods ***/
     HRESULT (STDMETHODCALLTYPE *WaitForWriteAccess)(
-        IDirectWriterLock* This,
+        IDirectWriterLock *This,
         DWORD dwTimeout);
 
     HRESULT (STDMETHODCALLTYPE *ReleaseWriteAccess)(
-        IDirectWriterLock* This);
+        IDirectWriterLock *This);
 
     HRESULT (STDMETHODCALLTYPE *HaveWriteAccess)(
-        IDirectWriterLock* This);
+        IDirectWriterLock *This);
 
     END_INTERFACE
 } IDirectWriterLockVtbl;
+
 interface IDirectWriterLock {
     CONST_VTBL IDirectWriterLockVtbl* lpVtbl;
 };
@@ -13865,28 +12019,6 @@ static FORCEINLINE HRESULT IDirectWriterLock_HaveWriteAccess(IDirectWriterLock*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDirectWriterLock_WaitForWriteAccess_Proxy(
-    IDirectWriterLock* This,
-    DWORD dwTimeout);
-void __RPC_STUB IDirectWriterLock_WaitForWriteAccess_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectWriterLock_ReleaseWriteAccess_Proxy(
-    IDirectWriterLock* This);
-void __RPC_STUB IDirectWriterLock_ReleaseWriteAccess_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDirectWriterLock_HaveWriteAccess_Proxy(
-    IDirectWriterLock* This);
-void __RPC_STUB IDirectWriterLock_HaveWriteAccess_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDirectWriterLock_INTERFACE_DEFINED__ */
 
@@ -13925,19 +12057,19 @@ typedef struct IUrlMonVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IUrlMon* This,
+        IUrlMon *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IUrlMon* This);
+        IUrlMon *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IUrlMon* This);
+        IUrlMon *This);
 
     /*** IUrlMon methods ***/
     HRESULT (STDMETHODCALLTYPE *AsyncGetClassBits)(
-        IUrlMon* This,
+        IUrlMon *This,
         REFCLSID rclsid,
         LPCWSTR pszTYPE,
         LPCWSTR pszExt,
@@ -13951,6 +12083,7 @@ typedef struct IUrlMonVtbl {
 
     END_INTERFACE
 } IUrlMonVtbl;
+
 interface IUrlMon {
     CONST_VTBL IUrlMonVtbl* lpVtbl;
 };
@@ -13983,23 +12116,6 @@ static FORCEINLINE HRESULT IUrlMon_AsyncGetClassBits(IUrlMon* This,REFCLSID rcls
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IUrlMon_AsyncGetClassBits_Proxy(
-    IUrlMon* This,
-    REFCLSID rclsid,
-    LPCWSTR pszTYPE,
-    LPCWSTR pszExt,
-    DWORD dwFileVersionMS,
-    DWORD dwFileVersionLS,
-    LPCWSTR pszCodeBase,
-    IBindCtx *pbc,
-    DWORD dwClassContext,
-    REFIID riid,
-    DWORD flags);
-void __RPC_STUB IUrlMon_AsyncGetClassBits_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IUrlMon_INTERFACE_DEFINED__ */
 
@@ -14027,23 +12143,24 @@ typedef struct IForegroundTransferVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IForegroundTransfer* This,
+        IForegroundTransfer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IForegroundTransfer* This);
+        IForegroundTransfer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IForegroundTransfer* This);
+        IForegroundTransfer *This);
 
     /*** IForegroundTransfer methods ***/
     HRESULT (STDMETHODCALLTYPE *AllowForegroundTransfer)(
-        IForegroundTransfer* This,
+        IForegroundTransfer *This,
         void *lpvReserved);
 
     END_INTERFACE
 } IForegroundTransferVtbl;
+
 interface IForegroundTransfer {
     CONST_VTBL IForegroundTransferVtbl* lpVtbl;
 };
@@ -14076,14 +12193,6 @@ static FORCEINLINE HRESULT IForegroundTransfer_AllowForegroundTransfer(IForegrou
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IForegroundTransfer_AllowForegroundTransfer_Proxy(
-    IForegroundTransfer* This,
-    void *lpvReserved);
-void __RPC_STUB IForegroundTransfer_AllowForegroundTransfer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IForegroundTransfer_INTERFACE_DEFINED__ */
 
@@ -14119,19 +12228,19 @@ typedef struct IThumbnailExtractorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IThumbnailExtractor* This,
+        IThumbnailExtractor *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IThumbnailExtractor* This);
+        IThumbnailExtractor *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IThumbnailExtractor* This);
+        IThumbnailExtractor *This);
 
     /*** IThumbnailExtractor methods ***/
     HRESULT (STDMETHODCALLTYPE *ExtractThumbnail)(
-        IThumbnailExtractor* This,
+        IThumbnailExtractor *This,
         IStorage *pStg,
         ULONG ulLength,
         ULONG ulHeight,
@@ -14140,11 +12249,12 @@ typedef struct IThumbnailExtractorVtbl {
         HBITMAP *phOutputBitmap);
 
     HRESULT (STDMETHODCALLTYPE *OnFileUpdated)(
-        IThumbnailExtractor* This,
+        IThumbnailExtractor *This,
         IStorage *pStg);
 
     END_INTERFACE
 } IThumbnailExtractorVtbl;
+
 interface IThumbnailExtractor {
     CONST_VTBL IThumbnailExtractorVtbl* lpVtbl;
 };
@@ -14181,27 +12291,6 @@ static FORCEINLINE HRESULT IThumbnailExtractor_OnFileUpdated(IThumbnailExtractor
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IThumbnailExtractor_ExtractThumbnail_Proxy(
-    IThumbnailExtractor* This,
-    IStorage *pStg,
-    ULONG ulLength,
-    ULONG ulHeight,
-    ULONG *pulOutputLength,
-    ULONG *pulOutputHeight,
-    HBITMAP *phOutputBitmap);
-void __RPC_STUB IThumbnailExtractor_ExtractThumbnail_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IThumbnailExtractor_OnFileUpdated_Proxy(
-    IThumbnailExtractor* This,
-    IStorage *pStg);
-void __RPC_STUB IThumbnailExtractor_OnFileUpdated_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IThumbnailExtractor_INTERFACE_DEFINED__ */
 
@@ -14230,24 +12319,25 @@ typedef struct IDummyHICONIncluderVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDummyHICONIncluder* This,
+        IDummyHICONIncluder *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDummyHICONIncluder* This);
+        IDummyHICONIncluder *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDummyHICONIncluder* This);
+        IDummyHICONIncluder *This);
 
     /*** IDummyHICONIncluder methods ***/
     HRESULT (STDMETHODCALLTYPE *Dummy)(
-        IDummyHICONIncluder* This,
+        IDummyHICONIncluder *This,
         HICON h1,
         HDC h2);
 
     END_INTERFACE
 } IDummyHICONIncluderVtbl;
+
 interface IDummyHICONIncluder {
     CONST_VTBL IDummyHICONIncluderVtbl* lpVtbl;
 };
@@ -14280,15 +12370,6 @@ static FORCEINLINE HRESULT IDummyHICONIncluder_Dummy(IDummyHICONIncluder* This,H
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDummyHICONIncluder_Dummy_Proxy(
-    IDummyHICONIncluder* This,
-    HICON h1,
-    HDC h2);
-void __RPC_STUB IDummyHICONIncluder_Dummy_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDummyHICONIncluder_INTERFACE_DEFINED__ */
 
@@ -14327,25 +12408,26 @@ typedef struct IProcessLockVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IProcessLock* This,
+        IProcessLock *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IProcessLock* This);
+        IProcessLock *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IProcessLock* This);
+        IProcessLock *This);
 
     /*** IProcessLock methods ***/
     ULONG (STDMETHODCALLTYPE *AddRefOnProcess)(
-        IProcessLock* This);
+        IProcessLock *This);
 
     ULONG (STDMETHODCALLTYPE *ReleaseRefOnProcess)(
-        IProcessLock* This);
+        IProcessLock *This);
 
     END_INTERFACE
 } IProcessLockVtbl;
+
 interface IProcessLock {
     CONST_VTBL IProcessLockVtbl* lpVtbl;
 };
@@ -14382,20 +12464,6 @@ static FORCEINLINE ULONG IProcessLock_ReleaseRefOnProcess(IProcessLock* This) {
 
 #endif
 
-ULONG STDMETHODCALLTYPE IProcessLock_AddRefOnProcess_Proxy(
-    IProcessLock* This);
-void __RPC_STUB IProcessLock_AddRefOnProcess_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-ULONG STDMETHODCALLTYPE IProcessLock_ReleaseRefOnProcess_Proxy(
-    IProcessLock* This);
-void __RPC_STUB IProcessLock_ReleaseRefOnProcess_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IProcessLock_INTERFACE_DEFINED__ */
 
@@ -14438,42 +12506,43 @@ typedef struct ISurrogateServiceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ISurrogateService* This,
+        ISurrogateService *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ISurrogateService* This);
+        ISurrogateService *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ISurrogateService* This);
+        ISurrogateService *This);
 
     /*** ISurrogateService methods ***/
     HRESULT (STDMETHODCALLTYPE *Init)(
-        ISurrogateService* This,
+        ISurrogateService *This,
         REFGUID rguidProcessID,
         IProcessLock *pProcessLock,
         WINBOOL *pfApplicationAware);
 
     HRESULT (STDMETHODCALLTYPE *ApplicationLaunch)(
-        ISurrogateService* This,
+        ISurrogateService *This,
         REFGUID rguidApplID,
         ApplicationType appType);
 
     HRESULT (STDMETHODCALLTYPE *ApplicationFree)(
-        ISurrogateService* This,
+        ISurrogateService *This,
         REFGUID rguidApplID);
 
     HRESULT (STDMETHODCALLTYPE *CatalogRefresh)(
-        ISurrogateService* This,
+        ISurrogateService *This,
         ULONG ulReserved);
 
     HRESULT (STDMETHODCALLTYPE *ProcessShutdown)(
-        ISurrogateService* This,
+        ISurrogateService *This,
         ShutdownType shutdownType);
 
     END_INTERFACE
 } ISurrogateServiceVtbl;
+
 interface ISurrogateService {
     CONST_VTBL ISurrogateServiceVtbl* lpVtbl;
 };
@@ -14522,49 +12591,6 @@ static FORCEINLINE HRESULT ISurrogateService_ProcessShutdown(ISurrogateService*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ISurrogateService_Init_Proxy(
-    ISurrogateService* This,
-    REFGUID rguidProcessID,
-    IProcessLock *pProcessLock,
-    WINBOOL *pfApplicationAware);
-void __RPC_STUB ISurrogateService_Init_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ISurrogateService_ApplicationLaunch_Proxy(
-    ISurrogateService* This,
-    REFGUID rguidApplID,
-    ApplicationType appType);
-void __RPC_STUB ISurrogateService_ApplicationLaunch_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ISurrogateService_ApplicationFree_Proxy(
-    ISurrogateService* This,
-    REFGUID rguidApplID);
-void __RPC_STUB ISurrogateService_ApplicationFree_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ISurrogateService_CatalogRefresh_Proxy(
-    ISurrogateService* This,
-    ULONG ulReserved);
-void __RPC_STUB ISurrogateService_CatalogRefresh_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ISurrogateService_ProcessShutdown_Proxy(
-    ISurrogateService* This,
-    ShutdownType shutdownType);
-void __RPC_STUB ISurrogateService_ProcessShutdown_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ISurrogateService_INTERFACE_DEFINED__ */
 
@@ -14605,38 +12631,39 @@ typedef struct IInitializeSpyVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IInitializeSpy* This,
+        IInitializeSpy *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IInitializeSpy* This);
+        IInitializeSpy *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IInitializeSpy* This);
+        IInitializeSpy *This);
 
     /*** IInitializeSpy methods ***/
     HRESULT (STDMETHODCALLTYPE *PreInitialize)(
-        IInitializeSpy* This,
+        IInitializeSpy *This,
         DWORD dwCoInit,
         DWORD dwCurThreadAptRefs);
 
     HRESULT (STDMETHODCALLTYPE *PostInitialize)(
-        IInitializeSpy* This,
+        IInitializeSpy *This,
         HRESULT hrCoInit,
         DWORD dwCoInit,
         DWORD dwNewThreadAptRefs);
 
     HRESULT (STDMETHODCALLTYPE *PreUninitialize)(
-        IInitializeSpy* This,
+        IInitializeSpy *This,
         DWORD dwCurThreadAptRefs);
 
     HRESULT (STDMETHODCALLTYPE *PostUninitialize)(
-        IInitializeSpy* This,
+        IInitializeSpy *This,
         DWORD dwNewThreadAptRefs);
 
     END_INTERFACE
 } IInitializeSpyVtbl;
+
 interface IInitializeSpy {
     CONST_VTBL IInitializeSpyVtbl* lpVtbl;
 };
@@ -14681,41 +12708,6 @@ static FORCEINLINE HRESULT IInitializeSpy_PostUninitialize(IInitializeSpy* This,
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IInitializeSpy_PreInitialize_Proxy(
-    IInitializeSpy* This,
-    DWORD dwCoInit,
-    DWORD dwCurThreadAptRefs);
-void __RPC_STUB IInitializeSpy_PreInitialize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IInitializeSpy_PostInitialize_Proxy(
-    IInitializeSpy* This,
-    HRESULT hrCoInit,
-    DWORD dwCoInit,
-    DWORD dwNewThreadAptRefs);
-void __RPC_STUB IInitializeSpy_PostInitialize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IInitializeSpy_PreUninitialize_Proxy(
-    IInitializeSpy* This,
-    DWORD dwCurThreadAptRefs);
-void __RPC_STUB IInitializeSpy_PreUninitialize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IInitializeSpy_PostUninitialize_Proxy(
-    IInitializeSpy* This,
-    DWORD dwNewThreadAptRefs);
-void __RPC_STUB IInitializeSpy_PostUninitialize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IInitializeSpy_INTERFACE_DEFINED__ */
 
@@ -14745,23 +12737,24 @@ typedef struct IApartmentShutdownVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IApartmentShutdown* This,
+        IApartmentShutdown *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IApartmentShutdown* This);
+        IApartmentShutdown *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IApartmentShutdown* This);
+        IApartmentShutdown *This);
 
     /*** IApartmentShutdown methods ***/
     void (STDMETHODCALLTYPE *OnUninitialize)(
-        IApartmentShutdown* This,
+        IApartmentShutdown *This,
         UINT64 ui64ApartmentIdentifier);
 
     END_INTERFACE
 } IApartmentShutdownVtbl;
+
 interface IApartmentShutdown {
     CONST_VTBL IApartmentShutdownVtbl* lpVtbl;
 };
@@ -14794,14 +12787,6 @@ static FORCEINLINE void IApartmentShutdown_OnUninitialize(IApartmentShutdown* Th
 
 #endif
 
-void STDMETHODCALLTYPE IApartmentShutdown_OnUninitialize_Proxy(
-    IApartmentShutdown* This,
-    UINT64 ui64ApartmentIdentifier);
-void __RPC_STUB IApartmentShutdown_OnUninitialize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IApartmentShutdown_INTERFACE_DEFINED__ */
 
lib/libc/include/any-windows-any/objidlbase.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/objidlbase.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/objidlbase.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ocidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/ocidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/ocidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/oleacc.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/oleacc.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/oleacc.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/oleidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/oleidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/oleidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/optary.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/optary.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/optary.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/portabledevicetypes.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/portabledevicetypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/portabledevicetypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1062,6 +1062,8 @@ static FORCEINLINE HRESULT IPortableDeviceValuesCollection_RemoveAt(IPortableDev
 
 #endif  /* __IPortableDeviceValuesCollection_INTERFACE_DEFINED__ */
 
+#ifndef __PortableDeviceTypesLib_LIBRARY_DEFINED__
+#define __PortableDeviceTypesLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_PortableDeviceTypesLib, 0x2b00ba2f, 0xe750, 0x4beb, 0x92,0x35, 0x97,0x14,0x2e,0xde,0x1d,0x3e);
 
@@ -1078,6 +1080,7 @@ __CRT_UUID_DECL(PortableDeviceValues, 0x0c15d503, 0xd017, 0x47ce, 0x90,0x16, 0x7
 #endif
 #endif
 
+#endif /* __PortableDeviceTypesLib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
lib/libc/include/any-windows-any/process.h
@@ -41,6 +41,9 @@ extern "C" {
 #define _CRT_TERMINATE_DEFINED
   void __cdecl __MINGW_NOTHROW exit(int _Code) __MINGW_ATTRIB_NORETURN;
   void __cdecl __MINGW_NOTHROW _exit(int _Code) __MINGW_ATTRIB_NORETURN;
+#ifdef _UCRT
+  void __cdecl __MINGW_NOTHROW quick_exit(int _Code) __MINGW_ATTRIB_NORETURN;
+#endif
 
 #if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
   /* C99 function name */
lib/libc/include/any-windows-any/propidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/propidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/propidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/propkey.h
@@ -21,8 +21,15 @@
 
 #include <propkeydef.h>
 
+DEFINE_PROPERTYKEY(PKEY_Address_Country, 0xc07b4199,0xe1df,0x4493,0xb1,0xe1,0xde,0x59,0x46,0xfb,0x58,0xf8,100);
+DEFINE_PROPERTYKEY(PKEY_Address_CountryCode, 0xc07b4199,0xe1df,0x4493,0xb1,0xe1,0xde,0x59,0x46,0xfb,0x58,0xf8,101);
+DEFINE_PROPERTYKEY(PKEY_Address_Region, 0xc07b4199,0xe1df,0x4493,0xb1,0xe1,0xde,0x59,0x46,0xfb,0x58,0xf8,102);
+DEFINE_PROPERTYKEY(PKEY_Address_RegionCode, 0xc07b4199,0xe1df,0x4493,0xb1,0xe1,0xde,0x59,0x46,0xfb,0x58,0xf8,103);
+DEFINE_PROPERTYKEY(PKEY_Address_Town, 0xc07b4199,0xe1df,0x4493,0xb1,0xe1,0xde,0x59,0x46,0xfb,0x58,0xf8,104);
+
 DEFINE_PROPERTYKEY(PKEY_Audio_ChannelCount, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08, 0x00, 0x36, 0xb1, 0x1a, 0x03, 7);
 DEFINE_PROPERTYKEY(PKEY_Audio_Compression, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08, 0x00, 0x36, 0xb1, 0x1a, 0x03, 10);
+DEFINE_PROPERTYKEY(PKEY_Audio_EncodingBitrate, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x70, 0x08, 0x00, 0x36, 0xb1, 0x1a, 0x03, 4);
 DEFINE_PROPERTYKEY(PKEY_Audio_Format, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08, 0x00, 0x36, 0xb1, 0x1a, 0x03, 2);
 DEFINE_PROPERTYKEY(PKEY_Audio_IsVariableBitRate, 0xe6822fee, 0x8c17, 0x4d62, 0x82, 0x3c, 0x8e, 0x9c, 0xfc, 0xbd, 0x1d, 0x5c, 100);
 DEFINE_PROPERTYKEY(PKEY_Audio_PeakValue, 0x2579e5d0, 0x1116, 0x4084, 0xbd, 0x9a, 0x9b, 0x4f, 0x7c, 0xb4, 0xdf, 0x5e, 100);
@@ -31,6 +38,275 @@ DEFINE_PROPERTYKEY(PKEY_Audio_SampleSize, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80
 DEFINE_PROPERTYKEY(PKEY_Audio_StreamName, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08, 0x00, 0x36, 0xb1, 0x1a, 0x03, 9);
 DEFINE_PROPERTYKEY(PKEY_Audio_StreamNumber, 0x64440490, 0x4c8b, 0x11d1, 0x8b, 0x80, 0x08, 0x00, 0x36, 0xb1, 0x1a, 0x03, 8);
 
+DEFINE_PROPERTYKEY(PKEY_Calendar_Duration, 0x293ca35a,0x09aa,0x4dd2,0xb1,0x80,0x1f,0xe2,0x45,0x72,0x8a,0x52,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_IsOnline, 0xbfee9149,0xe3e2,0x49a7,0xa8,0x62,0xc0,0x59,0x88,0x14,0x5c,0xec,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_IsRecurring, 0x315b9c8d,0x80a9,0x4ef9,0xae,0x16,0x8e,0x74,0x6d,0xa5,0x1d,0x70,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_Location, 0xf6272d18,0xcecc,0x40b1,0xb2,0x6a,0x39,0x11,0x71,0x7a,0xa7,0xbd,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_OptionalAttendeeAddresses, 0xd55bae5a,0x3892,0x417a,0xa6,0x49,0xc6,0xac,0x5a,0xaa,0xea,0xb3,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_OptionalAttendeeNames, 0x09429607,0x582d,0x437f,0x84,0xc3,0xde,0x93,0xa2,0xb2,0x4c,0x3c,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_OrganizerAddress, 0x744c8242,0x4df5,0x456c,0xab,0x9e,0x01,0x4e,0xfb,0x90,0x21,0xe3,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_OrganizerName, 0xaaa660f9,0x9865,0x458e,0xb4,0x84,0x01,0xbc,0x7f,0xe3,0x97,0x3e,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_ReminderTime, 0x72fc5ba4,0x24f9,0x4011,0x9f,0x3f,0xad,0xd2,0x7a,0xfa,0xd8,0x18,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_RequiredAttendeeAddresses, 0x0ba7d6c3,0x568d,0x4159,0xab,0x91,0x78,0x1a,0x91,0xfb,0x71,0xe5,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_RequiredAttendeeNames, 0xb33af30b,0xf552,0x4584,0x93,0x6c,0xcb,0x93,0xe5,0xcd,0xa2,0x9f,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_Resources, 0x00f58a38,0xc54b,0x4c40,0x86,0x96,0x97,0x23,0x59,0x80,0xea,0xe1,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_ResponseStatus, 0x188c1f91,0x3c40,0x4132,0x9e,0xc5,0xd8,0xb0,0x3b,0x72,0xa8,0xa2,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_ShowTimeAs, 0x5bf396d4,0x5eb2,0x466f,0xbd,0xe9,0x2f,0xb3,0xf2,0x36,0x1d,0x6e,100);
+DEFINE_PROPERTYKEY(PKEY_Calendar_ShowTimeAsText, 0x53da57cf,0x62c0,0x45c4,0x81,0xde,0x76,0x10,0xbc,0xef,0xd7,0xf5,100);
+
+DEFINE_PROPERTYKEY(PKEY_Communication_AccountName, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,9);
+DEFINE_PROPERTYKEY(PKEY_Communication_DateItemExpires, 0x428040ac,0xa177,0x4c8a,0x97,0x60,0xf6,0xf7,0x61,0x22,0x7f,0x9a,100);
+DEFINE_PROPERTYKEY(PKEY_Communication_Direction, 0x8e531030,0xb960,0x4346,0xae,0x0d,0x66,0xbc,0x9a,0x86,0xfb,0x94,100);
+DEFINE_PROPERTYKEY(PKEY_Communication_FollowupIconIndex, 0x83a6347e,0x6fe4,0x4f40,0xba,0x9c,0xc4,0x86,0x52,0x40,0xd1,0xf4,100);
+DEFINE_PROPERTYKEY(PKEY_Communication_HeaderItem, 0xc9c34f84,0x2241,0x4401,0xb6,0x07,0xbd,0x20,0xed,0x75,0xae,0x7f,100);
+DEFINE_PROPERTYKEY(PKEY_Communication_PolicyTag, 0xec0b4191,0xab0b,0x4c66,0x90,0xb6,0xc6,0x63,0x7c,0xde,0xbb,0xab,100);
+DEFINE_PROPERTYKEY(PKEY_Communication_SecurityFlags, 0x8619a4b6,0x9f4d,0x4429,0x8c,0x0f,0xb9,0x96,0xca,0x59,0xe3,0x35,100);
+DEFINE_PROPERTYKEY(PKEY_Communication_Suffix, 0x807b653a,0x9e91,0x43ef,0x8f,0x97,0x11,0xce,0x04,0xee,0x20,0xc5,100);
+DEFINE_PROPERTYKEY(PKEY_Communication_TaskStatus, 0xbe1a72c6,0x9a1d,0x46b7,0xaf,0xe7,0xaf,0xaf,0x8c,0xef,0x49,0x99,100);
+DEFINE_PROPERTYKEY(PKEY_Communication_TaskStatusText, 0xa6744477,0xc237,0x475b,0xa0,0x75,0x54,0xf3,0x44,0x98,0x29,0x2a,100);
+
+DEFINE_PROPERTYKEY(PKEY_Computer_DecoratedFreeSpace, 0x9b174b35,0x40ff,0x11d2,0xa2,0x7e,0x00,0xc0,0x4f,0xc3,0x08,0x71,7);
+
+DEFINE_PROPERTYKEY(PKEY_Contact_AccountPictureDynamicVideo, 0x0b8bb018,0x2725,0x4b44,0x92,0xba,0x79,0x33,0xae,0xb2,0xdd,0xe7,2);
+DEFINE_PROPERTYKEY(PKEY_Contact_AccountPictureLarge, 0x0b8bb018,0x2725,0x4b44,0x92,0xba,0x79,0x33,0xae,0xb2,0xdd,0xe7,3);
+DEFINE_PROPERTYKEY(PKEY_Contact_AccountPictureSmall, 0x0b8bb018,0x2725,0x4b44,0x92,0xba,0x79,0x33,0xae,0xb2,0xdd,0xe7,4);
+DEFINE_PROPERTYKEY(PKEY_Contact_Anniversary, 0x9ad5badb,0xcea7,0x4470,0xa0,0x3d,0xb8,0x4e,0x51,0xb9,0x94,0x9e,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_AssistantName, 0xcd102c9c,0x5540,0x4a88,0xa6,0xf6,0x64,0xe4,0x98,0x1c,0x8c,0xd1,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_AssistantTelephone, 0x9a93244d,0xa7ad,0x4ff8,0x9b,0x99,0x45,0xee,0x4c,0xc0,0x9a,0xf6,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_Birthday, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,47);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress, 0x730fb6dd,0xcf7c,0x426b,0xa0,0x3f,0xbd,0x16,0x6c,0xc9,0xee,0x24,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress1Country, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,119);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress1Locality, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,117);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress1PostalCode, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,120);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress1Region, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,118);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress1Street, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,116);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress2Country, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,124);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress2Locality, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,122);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress2PostalCode, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,125);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress2Region, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,123);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress2Street, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,121);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress3Country, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,129);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress3Locality, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,127);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress3PostalCode, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,130);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress3Region, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,128);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddress3Street, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,126);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddressCity, 0x402b5934,0xec5a,0x48c3,0x93,0xe6,0x85,0xe8,0x6a,0x2d,0x93,0x4e,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddressCountry, 0xb0b87314,0xfcf6,0x4feb,0x8d,0xff,0xa5,0x0d,0xa6,0xaf,0x56,0x1c,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddressPostalCode, 0xe1d4a09e,0xd758,0x4cd1,0xb6,0xec,0x34,0xa8,0xb5,0xa7,0x3f,0x80,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddressPostOfficeBox, 0xbc4e71ce,0x17f9,0x48d5,0xbe,0xe9,0x02,0x1d,0xf0,0xea,0x54,0x09,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddressState, 0x446f787f,0x10c4,0x41cb,0xa6,0xc4,0x4d,0x03,0x43,0x55,0x15,0x97,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessAddressStreet, 0xddd1460f,0xc0bf,0x4553,0x8c,0xe4,0x10,0x43,0x3c,0x90,0x8f,0xb0,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessEmailAddresses, 0xf271c659,0x7e5e,0x471f,0xba,0x25,0x7f,0x77,0xb2,0x86,0xf8,0x36,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessFaxNumber, 0x91eff6f3,0x2e27,0x42ca,0x93,0x3e,0x7c,0x99,0x9f,0xbe,0x31,0x0b,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessHomePage, 0x56310920,0x2491,0x4919,0x99,0xce,0xea,0xdb,0x06,0xfa,0xfd,0xb2,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_BusinessTelephone, 0x6a15e5a0,0x0a1e,0x4cd7,0xbb,0x8c,0xd2,0xf1,0xb0,0xc9,0x29,0xbc,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_CallbackTelephone, 0xbf53d1c3,0x49e0,0x4f7f,0x85,0x67,0x5a,0x82,0x1d,0x8a,0xc5,0x42,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_CarTelephone, 0x8fdc6dea,0xb929,0x412b,0xba,0x90,0x39,0x7a,0x25,0x74,0x65,0xfe,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_Children, 0xd4729704,0x8ef1,0x43ef,0x90,0x24,0x2b,0xd3,0x81,0x18,0x7f,0xd5,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_CompanyMainTelephone, 0x8589e481,0x6040,0x473d,0xb1,0x71,0x7f,0xa8,0x9c,0x27,0x08,0xed,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_ConnectedServiceDisplayName, 0x39b77f4f,0xa104,0x4863,0xb3,0x95,0x2d,0xb2,0xad,0x8f,0x7b,0xc1,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_ConnectedServiceIdentities, 0x80f41eb8,0xafc4,0x4208,0xaa,0x5f,0xcc,0xe2,0x1a,0x62,0x72,0x81,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_ConnectedServiceName, 0xb5c84c9e,0x5927,0x46b5,0xa3,0xcc,0x93,0x3c,0x21,0xb7,0x84,0x69,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_ConnectedServiceSupportedActions, 0xa19fb7a9,0x024b,0x4371,0xa8,0xbf,0x4d,0x29,0xc3,0xe4,0xe9,0xc9,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_DataSuppliers, 0x9660c283,0xfc3a,0x4a08,0xa0,0x96,0xee,0xd3,0xaa,0xc4,0x6d,0xa2,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_Department, 0xfc9f7306,0xff8f,0x4d49,0x9f,0xb6,0x3f,0xfe,0x5c,0x09,0x51,0xec,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_DisplayBusinessPhoneNumbers, 0x364028da,0xd895,0x41fe,0xa5,0x84,0x30,0x2b,0x1b,0xb7,0x0a,0x76,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_DisplayHomePhoneNumbers, 0x5068bcdf,0xd697,0x4d85,0x8c,0x53,0x1f,0x1c,0xda,0xb0,0x17,0x63,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_DisplayMobilePhoneNumbers, 0x9cb0c358,0x9d7a,0x46b1,0xb4,0x66,0xdc,0xc6,0xf1,0xa3,0xd9,0x3d,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_DisplayOtherPhoneNumbers, 0x03089873,0x8ee8,0x4191,0xbd,0x60,0xd3,0x1f,0x72,0xb7,0x90,0x0b,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_EmailAddress, 0xf8fa7fa3,0xd12b,0x4785,0x8a,0x4e,0x69,0x1a,0x94,0xf7,0xa3,0xe7,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_EmailAddress2, 0x38965063,0xedc8,0x4268,0x84,0x91,0xb7,0x72,0x31,0x72,0xcf,0x29,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_EmailAddress3, 0x644d37b4,0xe1b3,0x4bad,0xb0,0x99,0x7e,0x7c,0x04,0x96,0x6a,0xca,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_EmailAddresses, 0x84d8f337,0x981d,0x44b3,0x96,0x15,0xc7,0x59,0x6d,0xba,0x17,0xe3,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_EmailName, 0xcc6f4f24,0x6083,0x4bd4,0x87,0x54,0x67,0x4d,0x0d,0xe8,0x7a,0xb8,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_FileAsName, 0xf1a24aa7,0x9ca7,0x40f6,0x89,0xec,0x97,0xde,0xf9,0xff,0xe8,0xdb,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_FirstName, 0x14977844,0x6b49,0x4aad,0xa7,0x14,0xa4,0x51,0x3b,0xf6,0x04,0x60,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_FullName, 0x635e9051,0x50a5,0x4ba2,0xb9,0xdb,0x4e,0xd0,0x56,0xc7,0x72,0x96,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_Gender, 0x3c8cee58,0xd4f0,0x4cf9,0xb7,0x56,0x4e,0x5d,0x24,0x44,0x7b,0xcd,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_GenderValue, 0x3c8cee58,0xd4f0,0x4cf9,0xb7,0x56,0x4e,0x5d,0x24,0x44,0x7b,0xcd,101);
+DEFINE_PROPERTYKEY(PKEY_Contact_Hobbies, 0x5dc2253f,0x5e11,0x4adf,0x9c,0xfe,0x91,0x0d,0xd0,0x1e,0x3e,0x70,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress, 0x98f98354,0x617a,0x46b8,0x85,0x60,0x5b,0x1b,0x64,0xbf,0x1f,0x89,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress1Country, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,104);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress1Locality, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,102);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress1PostalCode, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,105);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress1Region, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,103);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress1Street, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,101);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress2Country, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,109);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress2Locality, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,107);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress2PostalCode, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,110);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress2Region, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,108);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress2Street, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,106);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress3Country, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,114);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress3Locality, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,112);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress3PostalCode, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,115);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress3Region, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,113);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddress3Street, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,111);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddressCity, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,65);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddressCountry, 0x08a65aa1,0xf4c9,0x43dd,0x9d,0xdf,0xa3,0x3d,0x8e,0x7e,0xad,0x85,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddressPostalCode, 0x8afcc170,0x8a46,0x4b53,0x9e,0xee,0x90,0xba,0xe7,0x15,0x1e,0x62,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddressPostOfficeBox, 0x7b9f6399,0x0a3f,0x4b12,0x89,0xbd,0x4a,0xdc,0x51,0xc9,0x18,0xaf,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddressState, 0xc89a23d0,0x7d6d,0x4eb8,0x87,0xd4,0x77,0x6a,0x82,0xd4,0x93,0xe5,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeAddressStreet, 0x0adef160,0xdb3f,0x4308,0x9a,0x21,0x06,0x23,0x7b,0x16,0xfa,0x2a,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeEmailAddresses, 0x56c90e9d,0x9d46,0x4963,0x88,0x6f,0x2e,0x1c,0xd9,0xa6,0x94,0xef,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeFaxNumber, 0x660e04d6,0x81ab,0x4977,0xa0,0x9f,0x82,0x31,0x31,0x13,0xab,0x26,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_HomeTelephone, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,20);
+DEFINE_PROPERTYKEY(PKEY_Contact_IMAddress, 0xd68dbd8a,0x3374,0x4b81,0x99,0x72,0x3e,0xc3,0x06,0x82,0xdb,0x3d,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_Initials, 0xf3d8f40d,0x50cb,0x44a2,0x97,0x18,0x40,0xcb,0x91,0x19,0x49,0x5d,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_JA_CompanyNamePhonetic, 0x897b3694,0xfe9e,0x43e6,0x80,0x66,0x26,0x0f,0x59,0x0c,0x01,0x00,2);
+DEFINE_PROPERTYKEY(PKEY_Contact_JA_FirstNamePhonetic, 0x897b3694,0xfe9e,0x43e6,0x80,0x66,0x26,0x0f,0x59,0x0c,0x01,0x00,3);
+DEFINE_PROPERTYKEY(PKEY_Contact_JA_LastNamePhonetic, 0x897b3694,0xfe9e,0x43e6,0x80,0x66,0x26,0x0f,0x59,0x0c,0x01,0x00,4);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo1CompanyAddress, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,120);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo1CompanyName, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,102);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo1Department, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,106);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo1Manager, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,105);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo1OfficeLocation, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,104);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo1Title, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,103);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo1YomiCompanyName, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,101);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo2CompanyAddress, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,121);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo2CompanyName, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,108);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo2Department, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,113);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo2Manager, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,112);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo2OfficeLocation, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,110);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo2Title, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,109);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo2YomiCompanyName, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,107);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo3CompanyAddress, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,123);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo3CompanyName, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,115);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo3Department, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,119);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo3Manager, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,118);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo3OfficeLocation, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,117);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo3Title, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,116);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobInfo3YomiCompanyName, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,114);
+DEFINE_PROPERTYKEY(PKEY_Contact_JobTitle, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,6);
+DEFINE_PROPERTYKEY(PKEY_Contact_Label, 0x97b0ad89,0xdf49,0x49cc,0x83,0x4e,0x66,0x09,0x74,0xfd,0x75,0x5b,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_LastName, 0x8f367200,0xc270,0x457c,0xb1,0xd4,0xe0,0x7c,0x5b,0xcd,0x90,0xc7,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_MailingAddress, 0xc0ac206a,0x827e,0x4650,0x95,0xae,0x77,0xe2,0xbb,0x74,0xfc,0xc9,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_MiddleName, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,71);
+DEFINE_PROPERTYKEY(PKEY_Contact_MobileTelephone, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,35);
+DEFINE_PROPERTYKEY(PKEY_Contact_NickName, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,74);
+DEFINE_PROPERTYKEY(PKEY_Contact_OfficeLocation, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,7);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress, 0x508161fa,0x313b,0x43d5,0x83,0xa1,0xc1,0xac,0xcf,0x68,0x62,0x2c,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress1Country, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,134);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress1Locality, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,132);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress1PostalCode, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,135);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress1Region, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,133);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress1Street, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,131);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress2Country, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,139);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress2Locality, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,137);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress2PostalCode, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,140);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress2Region, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,138);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress2Street, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,136);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress3Country, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,144);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress3Locality, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,142);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress3PostalCode, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,145);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress3Region, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,143);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddress3Street, 0xa7b6f596,0xd678,0x4bc1,0xb0,0x5f,0x02,0x03,0xd2,0x7e,0x8a,0xa1,141);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddressCity, 0x6e682923,0x7f7b,0x4f0c,0xa3,0x37,0xcf,0xca,0x29,0x66,0x87,0xbf,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddressCountry, 0x8f167568,0x0aae,0x4322,0x8e,0xd9,0x60,0x55,0xb7,0xb0,0xe3,0x98,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddressPostalCode, 0x95c656c1,0x2abf,0x4148,0x9e,0xd3,0x9e,0xc6,0x02,0xe3,0xb7,0xcd,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddressPostOfficeBox, 0x8b26ea41,0x058f,0x43f6,0xae,0xcc,0x40,0x35,0x68,0x1c,0xe9,0x77,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddressState, 0x71b377d6,0xe570,0x425f,0xa1,0x70,0x80,0x9f,0xae,0x73,0xe5,0x4e,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherAddressStreet, 0xff962609,0xb7d6,0x4999,0x86,0x2d,0x95,0x18,0x0d,0x52,0x9a,0xea,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_OtherEmailAddresses, 0x11d6336b,0x38c4,0x4ec9,0x84,0xd6,0xeb,0x38,0xd0,0xb1,0x50,0xaf,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_PagerTelephone, 0xd6304e01,0xf8f5,0x4f45,0x8b,0x15,0xd0,0x24,0xa6,0x29,0x67,0x89,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_PersonalTitle, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,69);
+DEFINE_PROPERTYKEY(PKEY_Contact_PhoneNumbersCanonical, 0xd042d2a1,0x927e,0x40b5,0xa5,0x03,0x6e,0xdb,0xd4,0x2a,0x51,0x7e,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_Prefix, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,75);
+DEFINE_PROPERTYKEY(PKEY_Contact_PrimaryAddressCity, 0xc8ea94f0,0xa9e3,0x4969,0xa9,0x4b,0x9c,0x62,0xa9,0x53,0x24,0xe0,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_PrimaryAddressCountry, 0xe53d799d,0x0f3f,0x466e,0xb2,0xff,0x74,0x63,0x4a,0x3c,0xb7,0xa4,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_PrimaryAddressPostalCode, 0x18bbd425,0xecfd,0x46ef,0xb6,0x12,0x7b,0x4a,0x60,0x34,0xed,0xa0,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_PrimaryAddressPostOfficeBox, 0xde5ef3c7,0x46e1,0x484e,0x99,0x99,0x62,0xc5,0x30,0x83,0x94,0xc1,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_PrimaryAddressState, 0xf1176dfe,0x7138,0x4640,0x8b,0x4c,0xae,0x37,0x5d,0xc7,0x0a,0x6d,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_PrimaryAddressStreet, 0x63c25b20,0x96be,0x488f,0x87,0x88,0xc0,0x9c,0x40,0x7a,0xd8,0x12,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_PrimaryEmailAddress, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,48);
+DEFINE_PROPERTYKEY(PKEY_Contact_PrimaryTelephone, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,25);
+DEFINE_PROPERTYKEY(PKEY_Contact_Profession, 0x7268af55,0x1ce4,0x4f6e,0xa4,0x1f,0xb6,0xe4,0xef,0x10,0xe4,0xa9,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_SpouseName, 0x9d2408b6,0x3167,0x422b,0x82,0xb0,0xf5,0x83,0xb7,0xa7,0xcf,0xe3,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_Suffix, 0x176dc63c,0x2688,0x4e89,0x81,0x43,0xa3,0x47,0x80,0x0f,0x25,0xe9,73);
+DEFINE_PROPERTYKEY(PKEY_Contact_TelexNumber, 0xc554493c,0xc1f7,0x40c1,0xa7,0x6c,0xef,0x8c,0x06,0x14,0x00,0x3e,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_TTYTDDTelephone, 0xaaf16bac,0x2b55,0x45e6,0x9f,0x6d,0x41,0x5e,0xb9,0x49,0x10,0xdf,100);
+DEFINE_PROPERTYKEY(PKEY_Contact_WebPage, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,18);
+DEFINE_PROPERTYKEY(PKEY_Contact_Webpage2, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,124);
+DEFINE_PROPERTYKEY(PKEY_Contact_Webpage3, 0x00f63dd8,0x22bd,0x4a5d,0xba,0x34,0x5c,0xb0,0xb9,0xbd,0xcb,0x03,125);
+
+DEFINE_PROPERTYKEY(PKEY_AcquisitionID, 0x65a98875,0x3c80,0x40ab,0xab,0xbc,0xef,0xda,0xf7,0x7d,0xbe,0xe2,100);
+DEFINE_PROPERTYKEY(PKEY_ApplicationDefinedProperties, 0xcdbfc167,0x337e,0x41d8,0xaf,0x7c,0x8c,0x09,0x20,0x54,0x29,0xc7,100);
+DEFINE_PROPERTYKEY(PKEY_ApplicationName, 0xf29f85e0,0x4ff9,0x1068,0xab,0x91,0x08,0x00,0x2b,0x27,0xb3,0xd9,18);
+DEFINE_PROPERTYKEY(PKEY_AppZoneIdentifier, 0x502cfeab,0x47eb,0x459c,0xb9,0x60,0xe6,0xd8,0x72,0x8f,0x77,0x01,102);
+DEFINE_PROPERTYKEY(PKEY_Author, 0xf29f85e0,0x4ff9,0x1068,0xab,0x91,0x08,0x00,0x2b,0x27,0xb3,0xd9,4);
+DEFINE_PROPERTYKEY(PKEY_CachedFileUpdaterContentIdForConflictResolution, 0xfceff153,0xe839,0x4cf3,0xa9,0xe7,0xea,0x22,0x83,0x20,0x94,0xb8,114);
+DEFINE_PROPERTYKEY(PKEY_CachedFileUpdaterContentIdForStream, 0xfceff153,0xe839,0x4cf3,0xa9,0xe7,0xea,0x22,0x83,0x20,0x94,0xb8,113);
+DEFINE_PROPERTYKEY(PKEY_Capacity, 0x9b174b35,0x40ff,0x11d2,0xa2,0x7e,0x00,0xc0,0x4f,0xc3,0x08,0x71,3);
+DEFINE_PROPERTYKEY(PKEY_Category, 0xd5cdd502,0x2e9c,0x101b,0x93,0x97,0x08,0x00,0x2b,0x2c,0xf9,0xae,2);
+DEFINE_PROPERTYKEY(PKEY_Comment, 0xf29f85e0,0x4ff9,0x1068,0xab,0x91,0x08,0x00,0x2b,0x27,0xb3,0xd9,6);
+DEFINE_PROPERTYKEY(PKEY_Company, 0xd5cdd502,0x2e9c,0x101b,0x93,0x97,0x08,0x00,0x2b,0x2c,0xf9,0xae,15);
+DEFINE_PROPERTYKEY(PKEY_ComputerName, 0x28636aa6,0x953d,0x11d2,0xb5,0xd6,0x00,0xc0,0x4f,0xd9,0x18,0xd0,5);
+DEFINE_PROPERTYKEY(PKEY_ContainedItems, 0x28636aa6,0x953d,0x11d2,0xb5,0xd6,0x00,0xc0,0x4f,0xd9,0x18,0xd0,29);
+DEFINE_PROPERTYKEY(PKEY_ContentId, 0xfceff153,0xe839,0x4cf3,0xa9,0xe7,0xea,0x22,0x83,0x20,0x94,0xb8,132);
+DEFINE_PROPERTYKEY(PKEY_ContentStatus, 0xd5cdd502,0x2e9c,0x101b,0x93,0x97,0x08,0x00,0x2b,0x2c,0xf9,0xae,27);
+DEFINE_PROPERTYKEY(PKEY_ContentType, 0xd5cdd502,0x2e9c,0x101b,0x93,0x97,0x08,0x00,0x2b,0x2c,0xf9,0xae,26);
+DEFINE_PROPERTYKEY(PKEY_ContentUri, 0xfceff153,0xe839,0x4cf3,0xa9,0xe7,0xea,0x22,0x83,0x20,0x94,0xb8,131);
+DEFINE_PROPERTYKEY(PKEY_Copyright, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,11);
+DEFINE_PROPERTYKEY(PKEY_CreatorAppId, 0xc2ea046e,0x033c,0x4e91,0xbd,0x5b,0xd4,0x94,0x2f,0x6b,0xbe,0x49,2);
+DEFINE_PROPERTYKEY(PKEY_CreatorOpenWithUIOptions, 0xc2ea046e,0x033c,0x4e91,0xbd,0x5b,0xd4,0x94,0x2f,0x6b,0xbe,0x49,3);
+DEFINE_PROPERTYKEY(PKEY_DataObjectFormat, 0x1e81a3f8,0xa30f,0x4247,0xb9,0xee,0x1d,0x03,0x68,0xa9,0x42,0x5c,2);
+DEFINE_PROPERTYKEY(PKEY_DateAccessed, 0xb725f130,0x47ef,0x101a,0xa5,0xf1,0x02,0x60,0x8c,0x9e,0xeb,0xac,16);
+DEFINE_PROPERTYKEY(PKEY_DateAcquired, 0x2cbaa8f5,0xd81f,0x47ca,0xb1,0x7a,0xf8,0xd8,0x22,0x30,0x01,0x31,100);
+DEFINE_PROPERTYKEY(PKEY_DateArchived, 0x43f8d7b7,0xa444,0x4f87,0x93,0x83,0x52,0x27,0x1c,0x9b,0x91,0x5c,100);
+DEFINE_PROPERTYKEY(PKEY_DateCompleted, 0x72fab781,0xacda,0x43e5,0xb1,0x55,0xb2,0x43,0x4f,0x85,0xe6,0x78,100);
+DEFINE_PROPERTYKEY(PKEY_DateCreated, 0xb725f130,0x47ef,0x101a,0xa5,0xf1,0x02,0x60,0x8c,0x9e,0xeb,0xac,15);
+DEFINE_PROPERTYKEY(PKEY_DateImported, 0x14b81da1,0x0135,0x4d31,0x96,0xd9,0x6c,0xbf,0xc9,0x67,0x1a,0x99,18258);
+DEFINE_PROPERTYKEY(PKEY_DateModified, 0xb725f130,0x47ef,0x101a,0xa5,0xf1,0x02,0x60,0x8c,0x9e,0xeb,0xac,14);
+DEFINE_PROPERTYKEY(PKEY_DefaultSaveLocationDisplay, 0x5d76b67f,0x9b3d,0x44bb,0xb6,0xae,0x25,0xda,0x4f,0x63,0x8a,0x67,10);
+DEFINE_PROPERTYKEY(PKEY_DueDate, 0x3f8472b5,0xe0af,0x4db2,0x80,0x71,0xc5,0x3f,0xe7,0x6a,0xe7,0xce,100);
+DEFINE_PROPERTYKEY(PKEY_EndDate, 0xc75faa05,0x96fd,0x49e7,0x9c,0xb4,0x9f,0x60,0x10,0x82,0xd5,0x53,100);
+DEFINE_PROPERTYKEY(PKEY_ExpandoProperties, 0x6fa20de6,0xd11c,0x4d9d,0xa1,0x54,0x64,0x31,0x76,0x28,0xc1,0x2d,100);
+DEFINE_PROPERTYKEY(PKEY_FileAllocationSize, 0xb725f130,0x47ef,0x101a,0xa5,0xf1,0x02,0x60,0x8c,0x9e,0xeb,0xac,18);
+DEFINE_PROPERTYKEY(PKEY_FileAttributes, 0xb725f130,0x47ef,0x101a,0xa5,0xf1,0x02,0x60,0x8c,0x9e,0xeb,0xac,13);
+DEFINE_PROPERTYKEY(PKEY_FileCount, 0x28636aa6,0x953d,0x11d2,0xb5,0xd6,0x00,0xc0,0x4f,0xd9,0x18,0xd0,12);
+DEFINE_PROPERTYKEY(PKEY_FileDescription, 0x0cef7d53,0xfa64,0x11d1,0xa2,0x03,0x00,0x00,0xf8,0x1f,0xed,0xee,3);
+DEFINE_PROPERTYKEY(PKEY_FileExtension, 0xe4f10a3c,0x49e6,0x405d,0x82,0x88,0xa2,0x3b,0xd4,0xee,0xaa,0x6c,100);
+DEFINE_PROPERTYKEY(PKEY_FileFRN, 0xb725f130,0x47ef,0x101a,0xa5,0xf1,0x02,0x60,0x8c,0x9e,0xeb,0xac,21);
+DEFINE_PROPERTYKEY(PKEY_FileName, 0x41cf5ae0,0xf75a,0x4806,0xbd,0x87,0x59,0xc7,0xd9,0x24,0x8e,0xb9,100);
+DEFINE_PROPERTYKEY(PKEY_FileOfflineAvailabilityStatus, 0xfceff153,0xe839,0x4cf3,0xa9,0xe7,0xea,0x22,0x83,0x20,0x94,0xb8,100);
+DEFINE_PROPERTYKEY(PKEY_FileOwner, 0x9b174b34,0x40ff,0x11d2,0xa2,0x7e,0x00,0xc0,0x4f,0xc3,0x08,0x71,4);
+DEFINE_PROPERTYKEY(PKEY_FilePlaceholderStatus, 0xb2f9b9d6,0xfec4,0x4dd5,0x94,0xd7,0x89,0x57,0x48,0x8c,0x80,0x7b,2);
+DEFINE_PROPERTYKEY(PKEY_FileVersion, 0x0cef7d53,0xfa64,0x11d1,0xa2,0x03,0x00,0x00,0xf8,0x1f,0xed,0xee,4);
+DEFINE_PROPERTYKEY(PKEY_FindData, 0x28636aa6,0x953d,0x11d2,0xb5,0xd6,0x00,0xc0,0x4f,0xd9,0x18,0xd0,0);
+DEFINE_PROPERTYKEY(PKEY_FlagColor, 0x67df94de,0x0ca7,0x4d6f,0xb7,0x92,0x05,0x3a,0x3e,0x4f,0x03,0xcf,100);
+DEFINE_PROPERTYKEY(PKEY_FlagColorText, 0x45eae747,0x8e2a,0x40ae,0x8c,0xbf,0xca,0x52,0xab,0xa6,0x15,0x2a,100);
+DEFINE_PROPERTYKEY(PKEY_FlagStatus, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,12);
+DEFINE_PROPERTYKEY(PKEY_FlagStatusText, 0xdc54fd2e,0x189d,0x4871,0xaa,0x01,0x08,0xc2,0xf5,0x7a,0x4a,0xbc,100);
+DEFINE_PROPERTYKEY(PKEY_FolderKind, 0xfceff153,0xe839,0x4cf3,0xa9,0xe7,0xea,0x22,0x83,0x20,0x94,0xb8,101);
+DEFINE_PROPERTYKEY(PKEY_FolderNameDisplay, 0xb725f130,0x47ef,0x101a,0xa5,0xf1,0x02,0x60,0x8c,0x9e,0xeb,0xac,25);
+DEFINE_PROPERTYKEY(PKEY_FreeSpace, 0x9b174b35,0x40ff,0x11d2,0xa2,0x7e,0x00,0xc0,0x4f,0xc3,0x08,0x71,2);
+DEFINE_PROPERTYKEY(PKEY_FullText, 0x1e3ee840,0xbc2b,0x476c,0x82,0x37,0x2a,0xcd,0x1a,0x83,0x9b,0x22,6);
+DEFINE_PROPERTYKEY(PKEY_HighKeywords, 0xf29f85e0,0x4ff9,0x1068,0xab,0x91,0x08,0x00,0x2b,0x27,0xb3,0xd9,24);
+DEFINE_PROPERTYKEY(PKEY_Identity, 0xa26f4afc,0x7346,0x4299,0xbe,0x47,0xeb,0x1a,0xe6,0x13,0x13,0x9f,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_Blob, 0x8c3b93a4,0xbaed,0x1a83,0x9a,0x32,0x10,0x2e,0xe3,0x13,0xf6,0xeb,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_DisplayName, 0x7d683fc9,0xd155,0x45a8,0xbb,0x1f,0x89,0xd1,0x9b,0xcb,0x79,0x2f,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_InternetSid, 0x6d6d5d49,0x265d,0x4688,0x9f,0x4e,0x1f,0xdd,0x33,0xe7,0xcc,0x83,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_IsMeIdentity, 0xa4108708,0x09df,0x4377,0x9d,0xfc,0x6d,0x99,0x98,0x6d,0x5a,0x67,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_KeyProviderContext, 0xa26f4afc,0x7346,0x4299,0xbe,0x47,0xeb,0x1a,0xe6,0x13,0x13,0x9f,17);
+DEFINE_PROPERTYKEY(PKEY_Identity_KeyProviderName, 0xa26f4afc,0x7346,0x4299,0xbe,0x47,0xeb,0x1a,0xe6,0x13,0x13,0x9f,16);
+DEFINE_PROPERTYKEY(PKEY_Identity_LogonStatusString, 0xf18dedf3,0x337f,0x42c0,0x9e,0x03,0xce,0xe0,0x87,0x08,0xa8,0xc3,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_PrimaryEmailAddress, 0xfcc16823,0xbaed,0x4f24,0x9b,0x32,0xa0,0x98,0x21,0x17,0xf7,0xfa,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_PrimarySid, 0x2b1b801e,0xc0c1,0x4987,0x9e,0xc5,0x72,0xfa,0x89,0x81,0x47,0x87,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_ProviderData, 0xa8a74b92,0x361b,0x4e9a,0xb7,0x22,0x7c,0x4a,0x73,0x30,0xa3,0x12,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_ProviderID, 0x74a7de49,0xfa11,0x4d3d,0xa0,0x06,0xdb,0x7e,0x08,0x67,0x59,0x16,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_QualifiedUserName, 0xda520e51,0xf4e9,0x4739,0xac,0x82,0x02,0xe0,0xa9,0x5c,0x90,0x30,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_UniqueID, 0xe55fc3b0,0x2b60,0x4220,0x91,0x8e,0xb2,0x1e,0x8b,0xf1,0x60,0x16,100);
+DEFINE_PROPERTYKEY(PKEY_Identity_UserName, 0xc4322503,0x78ca,0x49c6,0x9a,0xcc,0xa6,0x8e,0x2a,0xfd,0x7b,0x6b,100);
+DEFINE_PROPERTYKEY(PKEY_IdentityProvider_Name, 0xb96eff7b,0x35ca,0x4a35,0x86,0x07,0x29,0xe3,0xa5,0x4c,0x46,0xea,100);
+DEFINE_PROPERTYKEY(PKEY_IdentityProvider_Picture, 0x2425166f,0x5642,0x4864,0x99,0x2f,0x98,0xfd,0x98,0xf2,0x94,0xc3,100);
+DEFINE_PROPERTYKEY(PKEY_ImageParsingName, 0xd7750ee0,0xc6a4,0x48ec,0xb5,0x3e,0xb8,0x7b,0x52,0xe6,0xd0,0x73,100);
+DEFINE_PROPERTYKEY(PKEY_Importance, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,11);
+
+DEFINE_PROPERTYKEY(PKEY_ParentalRating, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,21);
+DEFINE_PROPERTYKEY(PKEY_Rating, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,9);
+DEFINE_PROPERTYKEY(PKEY_Keywords, 0xf29f85e0,0x4ff9,0x1068,0xab,0x91,0x08,0x00,0x2b,0x27,0xb3,0xd9,5);
+DEFINE_PROPERTYKEY(PKEY_Language, 0xd5cdd502,0x2e9c,0x101b,0x93,0x97,0x08,0x00,0x2b,0x2c,0xf9,0xae,28);
+DEFINE_PROPERTYKEY(PKEY_ThumbnailStream, 0xf29f85e0,0x4ff9,0x1068,0xab,0x91,0x08,0x00,0x2b,0x27,0xb3,0xd9,27);
+
 DEFINE_PROPERTYKEY(PKEY_Title, 0xf29f85e0,0x4ff9,0x1068,0xab,0x91,0x08,0x00,0x2b,0x27,0xb3,0xd9,2);
 
 DEFINE_PROPERTYKEY(PKEY_ItemName, 0x6b8da074,0x3b5c,0x43bc,0x88,0x6f,0x0a,0x2c,0xdc,0xe0,0x0b,0x6f,100);
@@ -43,4 +319,117 @@ DEFINE_PROPERTYKEY(PKEY_AppUserModel_RelaunchCommand, 0x9f4c2855,0x9f79,0x4b39,0
 DEFINE_PROPERTYKEY(PKEY_AppUserModel_RelaunchDisplayNameResource, 0x9f4c2855,0x9f79,0x4b39,0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3,4);
 DEFINE_PROPERTYKEY(PKEY_AppUserModel_RelaunchIconResource, 0x9f4c2855,0x9f79,0x4b39,0xa8,0xd0,0xe1,0xd4,0x2d,0xe1,0xd5,0xf3,3);
 
+DEFINE_PROPERTYKEY(PKEY_Media_AuthorUrl, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,32);
+DEFINE_PROPERTYKEY(PKEY_Media_AverageLevel, 0x09edd5b6,0xb301,0x43c5,0x99,0x90,0xd0,0x03,0x02,0xef,0xfd,0x46,100);
+DEFINE_PROPERTYKEY(PKEY_Media_ClassPrimaryID, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,13);
+DEFINE_PROPERTYKEY(PKEY_Media_ClassSecondaryID, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,14);
+DEFINE_PROPERTYKEY(PKEY_Media_CollectionGroupID, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,24);
+DEFINE_PROPERTYKEY(PKEY_Media_CollectionID, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,25);
+DEFINE_PROPERTYKEY(PKEY_Media_ContentDistributor, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,18);
+DEFINE_PROPERTYKEY(PKEY_Media_ContentID, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,26);
+DEFINE_PROPERTYKEY(PKEY_Media_CreatorApplication, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,27);
+DEFINE_PROPERTYKEY(PKEY_Media_CreatorApplicationVersion, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,28);
+DEFINE_PROPERTYKEY(PKEY_Media_DateEncoded, 0x2e4b640d,0x5019,0x46d8,0x88,0x81,0x55,0x41,0x4c,0xc5,0xca,0xa0,100);
+DEFINE_PROPERTYKEY(PKEY_Media_DateReleased, 0xde41cc29,0x6971,0x4290,0xb4,0x72,0xf5,0x9f,0x2e,0x2f,0x31,0xe2,100);
+DEFINE_PROPERTYKEY(PKEY_Media_DlnaProfileID, 0xcfa31b45,0x525d,0x4998,0xbb,0x44,0x3f,0x7d,0x81,0x54,0x2f,0xa4,100);
+DEFINE_PROPERTYKEY(PKEY_Media_Duration, 0x64440490,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,3);
+DEFINE_PROPERTYKEY(PKEY_Media_DVDID, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,15);
+DEFINE_PROPERTYKEY(PKEY_Media_EncodedBy, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,36);
+DEFINE_PROPERTYKEY(PKEY_Media_EncodingSettings, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,37);
+DEFINE_PROPERTYKEY(PKEY_Media_EpisodeNumber, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,100);
+DEFINE_PROPERTYKEY(PKEY_Media_FrameCount, 0x6444048f,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,12);
+DEFINE_PROPERTYKEY(PKEY_Media_MCDI, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,16);
+DEFINE_PROPERTYKEY(PKEY_Media_MetadataContentProvider, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,17);
+DEFINE_PROPERTYKEY(PKEY_Media_Producer, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,22);
+DEFINE_PROPERTYKEY(PKEY_Media_PromotionUrl, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,33);
+DEFINE_PROPERTYKEY(PKEY_Media_ProtectionType, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,38);
+DEFINE_PROPERTYKEY(PKEY_Media_ProviderRating, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,39);
+DEFINE_PROPERTYKEY(PKEY_Media_ProviderStyle, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,40);
+DEFINE_PROPERTYKEY(PKEY_Media_Publisher, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,30);
+DEFINE_PROPERTYKEY(PKEY_Media_SeasonNumber, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,101);
+DEFINE_PROPERTYKEY(PKEY_Media_SeriesName, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,42);
+DEFINE_PROPERTYKEY(PKEY_Media_SubscriptionContentId, 0x9aebae7a,0x9644,0x487d,0xa9,0x2c,0x65,0x75,0x85,0xed,0x75,0x1a,100);
+DEFINE_PROPERTYKEY(PKEY_Media_SubTitle, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,38);
+DEFINE_PROPERTYKEY(PKEY_Media_ThumbnailLargePath, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,47);
+DEFINE_PROPERTYKEY(PKEY_Media_ThumbnailLargeUri, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,48);
+DEFINE_PROPERTYKEY(PKEY_Media_ThumbnailSmallPath, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,49);
+DEFINE_PROPERTYKEY(PKEY_Media_ThumbnailSmallUri, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,50);
+DEFINE_PROPERTYKEY(PKEY_Media_UniqueFileIdentifier, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,35);
+DEFINE_PROPERTYKEY(PKEY_Media_UserNoAutoInfo, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,41);
+DEFINE_PROPERTYKEY(PKEY_Media_UserWebUrl, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,34);
+DEFINE_PROPERTYKEY(PKEY_Media_Writer, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,23);
+DEFINE_PROPERTYKEY(PKEY_Media_Year, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,5);
+
+DEFINE_PROPERTYKEY(PKEY_Message_AttachmentContents, 0x3143bf7c,0x80a8,0x4854,0x88,0x80,0xe2,0xe4,0x01,0x89,0xbd,0xd0,100);
+DEFINE_PROPERTYKEY(PKEY_Message_AttachmentNames, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,21);
+DEFINE_PROPERTYKEY(PKEY_Message_BccAddress, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,2);
+DEFINE_PROPERTYKEY(PKEY_Message_BccName, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,3);
+DEFINE_PROPERTYKEY(PKEY_Message_CcAddress, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,4);
+DEFINE_PROPERTYKEY(PKEY_Message_CcName, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,5);
+DEFINE_PROPERTYKEY(PKEY_Message_ConversationID, 0xdc8f80bd,0xaf1e,0x4289,0x85,0xb6,0x3d,0xfc,0x1b,0x49,0x39,0x92,100);
+DEFINE_PROPERTYKEY(PKEY_Message_ConversationIndex, 0xdc8f80bd,0xaf1e,0x4289,0x85,0xb6,0x3d,0xfc,0x1b,0x49,0x39,0x92,101);
+DEFINE_PROPERTYKEY(PKEY_Message_DateReceived, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,20);
+DEFINE_PROPERTYKEY(PKEY_Message_DateSent, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,19);
+DEFINE_PROPERTYKEY(PKEY_Message_Flags, 0xa82d9ee7,0xca67,0x4312,0x96,0x5e,0x22,0x6b,0xce,0xa8,0x50,0x23,100);
+DEFINE_PROPERTYKEY(PKEY_Message_FromAddress, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,13);
+DEFINE_PROPERTYKEY(PKEY_Message_FromName, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,14);
+DEFINE_PROPERTYKEY(PKEY_Message_HasAttachments, 0x9c1fcf74,0x2d97,0x41ba,0xb4,0xae,0xcb,0x2e,0x36,0x61,0xa6,0xe4,8);
+DEFINE_PROPERTYKEY(PKEY_Message_IsFwdOrReply, 0x9a9bc088,0x4f6d,0x469e,0x99,0x19,0xe7,0x05,0x41,0x20,0x40,0xf9,100);
+DEFINE_PROPERTYKEY(PKEY_Message_MessageClass, 0xcd9ed458,0x08ce,0x418f,0xa7,0x0e,0xf9,0x12,0xc7,0xbb,0x9c,0x5c,103);
+DEFINE_PROPERTYKEY(PKEY_Message_Participants, 0x1a9ba605,0x8e7c,0x4d11,0xad,0x7d,0xa5,0x0a,0xda,0x18,0xba,0x1b,2);
+DEFINE_PROPERTYKEY(PKEY_Message_ProofInProgress, 0x9098f33c,0x9a7d,0x48a8,0x8d,0xe5,0x2e,0x12,0x27,0xa6,0x4e,0x91,100);
+DEFINE_PROPERTYKEY(PKEY_Message_SenderAddress, 0x0be1c8e7,0x1981,0x4676,0xae,0x14,0xfd,0xd7,0x8f,0x05,0xa6,0xe7,100);
+DEFINE_PROPERTYKEY(PKEY_Message_SenderName, 0x0da41cfa,0xd224,0x4a18,0xae,0x2f,0x59,0x61,0x58,0xdb,0x4b,0x3a,100);
+DEFINE_PROPERTYKEY(PKEY_Message_Store, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,15);
+DEFINE_PROPERTYKEY(PKEY_Message_ToAddress, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,16);
+DEFINE_PROPERTYKEY(PKEY_Message_ToDoFlags, 0x1f856a9f,0x6900,0x4aba,0x95,0x05,0x2d,0x5f,0x1b,0x4d,0x66,0xcb,100);
+DEFINE_PROPERTYKEY(PKEY_Message_ToDoTitle, 0xbccc8a3c,0x8cef,0x42e5,0x9b,0x1c,0xc6,0x90,0x79,0x39,0x8b,0xc7,100);
+DEFINE_PROPERTYKEY(PKEY_Message_ToName, 0xe3e0584c,0xb788,0x4a5a,0xbb,0x20,0x7f,0x5a,0x44,0xc9,0xac,0xdd,17);
+
+DEFINE_PROPERTYKEY(PKEY_Music_AlbumArtist, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,13);
+DEFINE_PROPERTYKEY(PKEY_Music_AlbumArtistSortOverride, 0xf1fdb4af,0xf78c,0x466c,0xbb,0x05,0x56,0xe9,0x2d,0xb0,0xb8,0xec,103);
+DEFINE_PROPERTYKEY(PKEY_Music_AlbumID, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,100);
+DEFINE_PROPERTYKEY(PKEY_Music_AlbumTitle, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,4);
+DEFINE_PROPERTYKEY(PKEY_Music_AlbumTitleSortOverride, 0x13eb7ffc,0xec89,0x4346,0xb1,0x9d,0xcc,0xc6,0xf1,0x78,0x42,0x23,101);
+DEFINE_PROPERTYKEY(PKEY_Music_Artist, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,2);
+DEFINE_PROPERTYKEY(PKEY_Music_ArtistSortOverride, 0xdeeb2db5,0x0696,0x4ce0,0x94,0xfe,0xa0,0x1f,0x77,0xa4,0x5f,0xb5,102);
+DEFINE_PROPERTYKEY(PKEY_Music_BeatsPerMinute, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,35);
+DEFINE_PROPERTYKEY(PKEY_Music_Composer, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,19);
+DEFINE_PROPERTYKEY(PKEY_Music_ComposerSortOverride, 0x00bc20a3,0xbd48,0x4085,0x87,0x2c,0xa8,0x8d,0x77,0xf5,0x09,0x7e,105);
+DEFINE_PROPERTYKEY(PKEY_Music_Conductor, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,36);
+DEFINE_PROPERTYKEY(PKEY_Music_ContentGroupDescription, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,33);
+DEFINE_PROPERTYKEY(PKEY_Music_DiscNumber, 0x6afe7437,0x9bcd,0x49c7,0x80,0xfe,0x4a,0x5c,0x65,0xfa,0x58,0x74,104);
+DEFINE_PROPERTYKEY(PKEY_Music_DisplayArtist, 0xfd122953,0xfa93,0x4ef7,0x92,0xc3,0x04,0xc9,0x46,0xb2,0xf7,0xc8,100);
+DEFINE_PROPERTYKEY(PKEY_Music_Genre, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,11);
+DEFINE_PROPERTYKEY(PKEY_Music_InitialKey, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,34);
+DEFINE_PROPERTYKEY(PKEY_Music_IsCompilation, 0xc449d5cb,0x9ea4,0x4809,0x82,0xe8,0xaf,0x9d,0x59,0xde,0xd6,0xd1,100);
+DEFINE_PROPERTYKEY(PKEY_Music_Lyrics, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,12);
+DEFINE_PROPERTYKEY(PKEY_Music_Mood, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,39);
+DEFINE_PROPERTYKEY(PKEY_Music_PartOfSet, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,37);
+DEFINE_PROPERTYKEY(PKEY_Music_Period, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,31);
+DEFINE_PROPERTYKEY(PKEY_Music_SynchronizedLyrics, 0x6b223b6a,0x162e,0x4aa9,0xb3,0x9f,0x05,0xd6,0x78,0xfc,0x6d,0x77,100);
+DEFINE_PROPERTYKEY(PKEY_Music_TrackNumber, 0x56a3372e,0xce9c,0x11d2,0x9f,0x0e,0x00,0x60,0x97,0xc6,0x86,0xf6,7);
+
+DEFINE_PROPERTYKEY(PKEY_Video_Compression, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,10);
+DEFINE_PROPERTYKEY(PKEY_Video_Director, 0x64440492,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,20);
+DEFINE_PROPERTYKEY(PKEY_Video_EncodingBitrate, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,8);
+DEFINE_PROPERTYKEY(PKEY_Video_FourCC, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,44);
+DEFINE_PROPERTYKEY(PKEY_Video_FrameHeight, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,4);
+DEFINE_PROPERTYKEY(PKEY_Video_FrameRate, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,6);
+DEFINE_PROPERTYKEY(PKEY_Video_FrameWidth, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,3);
+DEFINE_PROPERTYKEY(PKEY_Video_HorizontalAspectRatio, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,42);
+DEFINE_PROPERTYKEY(PKEY_Video_IsSpherical, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,100);
+DEFINE_PROPERTYKEY(PKEY_Video_IsStereo, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,98);
+DEFINE_PROPERTYKEY(PKEY_Video_Orientation, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,99);
+DEFINE_PROPERTYKEY(PKEY_Video_SampleSize, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,9);
+DEFINE_PROPERTYKEY(PKEY_Video_StreamName, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,2);
+DEFINE_PROPERTYKEY(PKEY_Video_StreamNumber, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,11);
+DEFINE_PROPERTYKEY(PKEY_Video_TotalBitrate, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,43);
+DEFINE_PROPERTYKEY(PKEY_Video_TranscodedForSync, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,46);
+DEFINE_PROPERTYKEY(PKEY_Video_VerticalAspectRatio, 0x64440491,0x4c8b,0x11d1,0x8b,0x70,0x08,0x00,0x36,0xb1,0x1a,0x03,45);
+
+DEFINE_PROPERTYKEY(PKEY_Volume_FileSystem, 0x9b174b35,0x40ff,0x11d2,0xa2,0x7e,0x00,0xc0,0x4f,0xc3,0x08,0x71,4);
+DEFINE_PROPERTYKEY(PKEY_Volume_IsMappedDrive, 0x149c0b69,0x2c2d,0x48fc,0x80,0x8f,0xd3,0x18,0xd7,0x8c,0x46,0x36,2);
+DEFINE_PROPERTYKEY(PKEY_Volume_IsRoot, 0x9b174b35,0x40ff,0x11d2,0xa2,0x7e,0x00,0xc0,0x4f,0xc3,0x08,0x71,10);
+
 #endif /*_INC_PROPKEY*/
lib/libc/include/any-windows-any/propsys.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/propsys.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/propsys.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -4218,6 +4218,8 @@ PSSTDAPI PSSetPropertyValue(IPropertyStore *pps, IPropertyDescription *ppd, REFP
 PSSTDAPI PSStringFromPropertyKey(REFPROPERTYKEY pkey, LPWSTR psz, UINT cch);
 PSSTDAPI PSUnregisterPropertySchema(PCWSTR pszPath);
 
+#ifndef __PropSysObjects_LIBRARY_DEFINED__
+#define __PropSysObjects_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_PropSysObjects, 0x2cda3294, 0x6c4f, 0x4020, 0xb1,0x61, 0x27,0xc5,0x30,0xc8,0x1f,0xa6);
 
@@ -4247,6 +4249,7 @@ __CRT_UUID_DECL(PropertySystem, 0xb8967f85, 0x58ae, 0x4f46, 0x9f,0xb2, 0x5d,0x79
 #endif
 #endif
 
+#endif /* __PropSysObjects_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/qedit.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/qedit.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/qedit.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/qedit.idl
@@ -1,817 +0,0 @@
-/*
- * Copyright (C) 2008 Google (Lei Zhang)
- *
- * 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 "dxtrans.idl"; */
-import "amstream.idl";
-import "msxml.idl";
-
-[
-    object,
-    uuid(0579154A-2B53-4994-B0D0-E773148EFF85),
-    local,
-    pointer_default(unique)
-]
-interface ISampleGrabberCB : IUnknown
-{
-    HRESULT SampleCB(
-        double SampleTime,
-        IMediaSample * pSample
-    );
-    HRESULT BufferCB(
-        double SampleTime,
-        BYTE * pBuffer,
-        LONG BufferLen
-    );
-}
-
-[
-    object,
-    uuid(6B652FFF-11FE-4fce-92AD-0266B5D7C78F),
-    local,
-    pointer_default(unique)
-]
-interface ISampleGrabber: IUnknown
-{
-    HRESULT SetOneShot(
-        BOOL OneShot
-    );
-
-    HRESULT SetMediaType(
-        const AM_MEDIA_TYPE * pType
-    );
-
-    HRESULT GetConnectedMediaType(
-        AM_MEDIA_TYPE * pType
-    );
-
-    HRESULT SetBufferSamples(
-        BOOL BufferThem
-    );
-
-    HRESULT GetCurrentBuffer(
-        [in,out] LONG * pBufferSize,
-        [out] LONG * pBuffer
-    );
-
-    HRESULT GetCurrentSample(
-        [out] IMediaSample ** ppSample
-    );
-
-    HRESULT SetCallback(
-        ISampleGrabberCB * pCallback,
-        LONG WhichMethodToCallback
-    );
-}
-
-[
-    object,
-    uuid(65bd0710-24d2-4FF7-9324-ed2e5d3abafa),
-    pointer_default(unique)
-]
-interface IMediaDet : IUnknown
-{
-    HRESULT get_Filter(
-        [out] IUnknown* *pVal
-    );
-
-    HRESULT put_Filter(
-        IUnknown* newVal
-    );
-
-    HRESULT get_OutputStreams(
-        [out] LONG *pVal
-    );
-
-    HRESULT get_CurrentStream(
-        [out] LONG *pVal
-    );
-
-    HRESULT put_CurrentStream(
-        LONG newVal
-    );
-
-    HRESULT get_StreamType(
-        [out] GUID *pVal
-    );
-
-    HRESULT get_StreamTypeB(
-        [out] BSTR *pVal
-    );
-
-    HRESULT get_StreamLength(
-        [out] double *pVal
-    );
-
-    HRESULT get_Filename(
-        [out] BSTR *pVal
-    );
-
-    HRESULT put_Filename(
-        BSTR newVal
-    );
-
-    HRESULT GetBitmapBits(
-        double StreamTime,
-        LONG * pBufferSize,
-        char * pBuffer,
-        LONG Width,
-        LONG Height
-    );
-
-    HRESULT WriteBitmapBits(
-        double StreamTime,
-        LONG Width,
-        LONG Height,
-        BSTR Filename
-    );
-
-    HRESULT get_StreamMediaType(
-        [out] AM_MEDIA_TYPE * pVal
-    );
-
-    HRESULT GetSampleGrabber(
-        [out] ISampleGrabber ** ppVal
-    );
-
-    HRESULT get_FrameRate(
-        [out] double *pVal
-    );
-
-    HRESULT EnterBitmapGrabMode(
-        double SeekTime
-    );
-}
-
-[
-    uuid(65BD0711-24D2-4ff7-9324-ED2E5D3ABAFA),
-]
-coclass MediaDet
-{
-    [default] interface IMediaDet;
-}
-
-[
-    object,
-    uuid(288581E0-66CE-11d2-918F-00C0DF10D434),
-    odl,
-    pointer_default(unique)
-]
-interface IMediaLocator : IUnknown
-{
-    HRESULT FindMediaFile(
-        BSTR input,
-        BSTR filter,
-        BSTR * output,
-        long flags
-    );
-
-    HRESULT AddFoundLocation(
-        BSTR dir
-    );
-}
-
-typedef struct
-{
-    BSTR name;
-    DISPID dispID;
-    LONG nValues;
-} DEXTER_PARAM;
-
-typedef struct
-{
-    VARIANT v;
-    REFERENCE_TIME rt;
-    DWORD dwInterp;
-} DEXTER_VALUE;
-
-[
-    object,
-    uuid(AE9472BD-B0C3-11D2-8D24-00A0C9441E20),
-    pointer_default(unique)
-]
-interface IPropertySetter : IUnknown
-{
-    HRESULT LoadXML(
-        [in] IUnknown * pxml
-    );
-
-    HRESULT PrintXML(
-        [out] char * xml,
-        [in] int size,
-        [out] int * printed,
-        [in] int indent
-    );
-
-    HRESULT CloneProps(
-        [out] IPropertySetter ** setter,
-        [in] REFERENCE_TIME start,
-        [in] REFERENCE_TIME stop
-    );
-
-    HRESULT AddProp(
-        [in] DEXTER_PARAM param,
-        [in] DEXTER_VALUE * value
-    );
-
-    HRESULT GetProps(
-        [out] LONG * params,
-        [out] DEXTER_PARAM ** param,
-        [out] DEXTER_VALUE ** value
-    );
-
-    HRESULT FreeProps(
-        [in] LONG params,
-        [in] DEXTER_PARAM * param,
-        [in] DEXTER_VALUE * value
-    );
-
-    HRESULT ClearProps();
-
-    HRESULT SaveToBlob(
-        [out] LONG * size,
-        [out] BYTE ** blob
-    );
-
-    HRESULT LoadFromBlob(
-        [in] LONG size,
-        [in] BYTE * blob
-    );
-
-    HRESULT SetProps(
-        [in] IUnknown * target,
-        [in] REFERENCE_TIME now
-    );
-}
-
-[
-    object,
-    uuid(E43E73A2-0EFA-11d3-9601-00A0C9441E20),
-    odl,
-    pointer_default(unique)
-]
-interface IAMErrorLog : IUnknown
-{
-    HRESULT LogError(
-        long severity,
-        BSTR error_str,
-        long error_code,
-        long hresult,
-        [in] VARIANT * extra
-    );
-}
-
-[
-    object,
-    uuid(963566DA-BE21-4eaf-88E9-35704F8F52A1),
-    odl,
-    pointer_default(unique)
-]
-interface IAMSetErrorLog : IUnknown
-{
-    [propget] HRESULT ErrorLog(
-        [out, retval] IAMErrorLog ** log
-    );
-
-    [propput] HRESULT ErrorLog(
-        [in] IAMErrorLog * log
-    );
-}
-
-interface IAMTimeline;
-interface IAMTimelineGroup;
-interface IAMTimelineObj;
-interface IAMTimelineSrc;
-
-typedef enum
-{
-    TIMELINE_MAJOR_TYPE_COMPOSITE = 1,
-    TIMELINE_MAJOR_TYPE_TRACK = 2,
-    TIMELINE_MAJOR_TYPE_SOURCE = 4,
-    TIMELINE_MAJOR_TYPE_TRANSITION = 8,
-    TIMELINE_MAJOR_TYPE_EFFECT = 16,
-    TIMELINE_MAJOR_TYPE_GROUP = 128
-} TIMELINE_MAJOR_TYPE;
-
-[
-    object,
-    uuid(78530B74-61F9-11D2-8CAD-00A024580902),
-    odl,
-    pointer_default(unique)
-]
-interface IAMTimeline : IUnknown
-{
-    HRESULT CreateEmptyNode(
-        [out] IAMTimelineObj ** obj,
-        TIMELINE_MAJOR_TYPE type
-    );
-
-    HRESULT AddGroup(
-        IAMTimelineObj * group
-    );
-
-    HRESULT RemGroupFromList(
-        IAMTimelineObj * group
-    );
-
-    HRESULT GetGroup(
-        [out] IAMTimelineObj ** group,
-        long index
-    );
-
-    HRESULT GetGroupCount(
-        long * count
-    );
-
-    HRESULT ClearAllGroups();
-
-    HRESULT GetInsertMode(
-        long * mode
-    );
-
-    HRESULT SetInsertMode(
-        long mode
-    );
-
-    HRESULT EnableTransitions(
-        BOOL enabled
-    );
-
-    HRESULT TransitionsEnabled(
-        BOOL * enabled
-    );
-
-    HRESULT EnableEffects(
-        BOOL enabled
-    );
-
-    HRESULT EffectsEnabled(
-        BOOL * enabled
-    );
-
-    HRESULT SetInterestRange(
-        REFERENCE_TIME start,
-        REFERENCE_TIME stop
-    );
-
-    HRESULT GetDuration(
-        REFERENCE_TIME * duration
-    );
-
-    HRESULT GetDuration2(
-        double * duration
-    );
-
-    HRESULT SetDefaultFPS(
-        double fps
-    );
-
-    HRESULT GetDefaultFPS(
-        double * fps
-    );
-
-    HRESULT IsDirty(
-        BOOL * dirty
-    );
-
-    HRESULT GetDirtyRange(
-        REFERENCE_TIME * start,
-        REFERENCE_TIME * stop
-    );
-
-    HRESULT GetCountOfType(
-        long group,
-        long * value,
-        long * value_with_comps,
-        TIMELINE_MAJOR_TYPE type
-    );
-
-    HRESULT ValidateSourceNames(
-        long flags,
-        IMediaLocator * override,
-        LONG_PTR notify_event
-    );
-
-    HRESULT SetDefaultTransition(
-        GUID * guid
-    );
-
-    HRESULT GetDefaultTransition(
-        GUID * guid
-    );
-
-    HRESULT SetDefaultEffect(
-        GUID * guid
-    );
-
-    HRESULT GetDefaultEffect(
-        GUID * guid
-    );
-
-    HRESULT SetDefaultTransitionB(
-        BSTR guidb
-    );
-
-    HRESULT GetDefaultTransitionB(
-        [out,retval] BSTR * guidb
-    );
-
-    HRESULT SetDefaultEffectB(
-        BSTR guidb
-    );
-
-    HRESULT GetDefaultEffectB(
-        [out,retval] BSTR * guidb
-    );
-}
-
-[
-    uuid(78530B75-61F9-11D2-8CAD-00A024580902)
-]
-coclass AMTimeline
-{
-    [default] interface IAMTimeline;
-    interface IPersistStream;
-    interface IAMSetErrorLog;
-}
-
-[
-    object,
-    uuid(9EED4F00-B8A6-11d2-8023-00C0DF10D434),
-    odl,
-    pointer_default(unique)
-]
-interface IAMTimelineGroup : IUnknown
-{
-    HRESULT SetTimeline(
-        IAMTimeline * timeline
-    );
-
-    HRESULT GetTimeline(
-        [out] IAMTimeline ** timeline
-    );
-
-    HRESULT GetPriority(
-        long * priority
-    );
-
-    HRESULT GetMediaType(
-        [out] AM_MEDIA_TYPE *
-    );
-
-    HRESULT SetMediaType(
-        [in] AM_MEDIA_TYPE *
-    );
-
-    HRESULT SetOutputFPS(
-        double fps
-    );
-
-    HRESULT GetOutputFPS(
-        double * fps
-    );
-
-    HRESULT SetGroupName(
-        BSTR name
-    );
-
-    HRESULT GetGroupName(
-        [out,retval] BSTR * name
-    );
-
-    HRESULT SetPreviewMode(
-        BOOL preview
-    );
-
-    HRESULT GetPreviewMode(
-        BOOL * preview
-    );
-
-    HRESULT SetMediaTypeForVB(
-        [in] long type
-    );
-
-    HRESULT GetOutputBuffering(
-        [out] int * buffer
-    );
-
-    HRESULT SetOutputBuffering(
-        [in] int buffer
-    );
-
-    HRESULT SetSmartRecompressFormat(
-        long * format
-    );
-
-    HRESULT GetSmartRecompressFormat(
-        long ** format
-    );
-
-    HRESULT IsSmartRecompressFormatSet(
-        BOOL * set
-    );
-
-    HRESULT IsRecompressFormatDirty(
-        BOOL * dirty
-    );
-
-    HRESULT ClearRecompressFormatDirty();
-
-    HRESULT SetRecompFormatFromSource(
-        IAMTimelineSrc * source
-    );
-}
-
-[
-    object,
-    local,
-    uuid(78530B77-61F9-11D2-8CAD-00A024580902),
-    odl,
-    pointer_default(unique)
-]
-interface IAMTimelineObj : IUnknown
-{
-    HRESULT GetStartStop(
-        REFERENCE_TIME * start,
-        REFERENCE_TIME * stop
-    );
-
-    HRESULT GetStartStop2(
-        REFTIME * start, REFTIME * stop
-    );
-
-    HRESULT FixTimes(
-        REFERENCE_TIME * start, REFERENCE_TIME * stop
-    );
-
-    HRESULT FixTimes2(
-        REFTIME * start, REFTIME * stop
-    );
-
-    HRESULT SetStartStop(
-        REFERENCE_TIME start,
-        REFERENCE_TIME stop
-    );
-
-    HRESULT SetStartStop2(
-        REFTIME start,
-        REFTIME stop
-    );
-
-    HRESULT GetPropertySetter(
-        [out,retval] IPropertySetter ** setter
-    );
-
-    HRESULT SetPropertySetter(
-        IPropertySetter * setter
-    );
-
-    HRESULT GetSubObject(
-        [out,retval] IUnknown ** obj
-    );
-
-    HRESULT SetSubObject(
-        IUnknown * obj
-    );
-
-    HRESULT SetSubObjectGUID(
-        GUID guid
-    );
-
-    HRESULT SetSubObjectGUIDB(
-        BSTR guidb
-    );
-
-    HRESULT GetSubObjectGUID(
-        GUID * guid
-    );
-
-    HRESULT GetSubObjectGUIDB(
-        [out,retval] BSTR * guidb
-    );
-
-    HRESULT GetSubObjectLoaded(
-        BOOL * loaded
-    );
-
-    HRESULT GetTimelineType(
-        TIMELINE_MAJOR_TYPE * type
-    );
-
-    HRESULT SetTimelineType(
-        TIMELINE_MAJOR_TYPE type
-    );
-
-    HRESULT GetUserID(
-        long * id
-    );
-
-    HRESULT SetUserID(
-        long id
-    );
-
-    HRESULT GetGenID(
-        long * id
-    );
-
-    HRESULT GetUserName(
-        [out,retval] BSTR * name
-    );
-
-    HRESULT SetUserName(
-        BSTR name
-    );
-
-    HRESULT GetUserData(
-        BYTE * data,
-        long * size
-    );
-
-    HRESULT SetUserData(
-        BYTE * data,
-        long size
-    );
-
-    HRESULT GetMuted(
-        BOOL * muted
-    );
-
-    HRESULT SetMuted(
-        BOOL muted
-    );
-
-    HRESULT GetLocked(
-        BOOL * locked
-    );
-
-    HRESULT SetLocked(
-        BOOL locked
-    );
-
-    HRESULT GetDirtyRange(
-        REFERENCE_TIME * start,
-        REFERENCE_TIME * stop
-    );
-
-    HRESULT GetDirtyRange2(
-        REFTIME * start,
-        REFTIME * stop
-    );
-
-    HRESULT SetDirtyRange(
-        REFERENCE_TIME start,
-        REFERENCE_TIME stop
-    );
-
-    HRESULT SetDirtyRange2(
-        REFTIME start,
-        REFTIME stop
-    );
-
-    HRESULT ClearDirty();
-
-    HRESULT Remove();
-
-    HRESULT RemoveAll();
-
-    HRESULT GetTimelineNoRef(
-        IAMTimeline ** timeline
-    );
-
-    HRESULT GetGroupIBelongTo(
-        [out] IAMTimelineGroup ** group
-    );
-
-    HRESULT GetEmbedDepth(
-        long * depth
-    );
-}
-
-[
-    object,
-    uuid(78530B79-61F9-11D2-8CAD-00A024580902),
-    odl,
-    pointer_default(unique)
-]
-interface IAMTimelineSrc : IUnknown
-{
-    HRESULT GetMediaTimes(
-        REFERENCE_TIME * start,
-        REFERENCE_TIME * stop
-    );
-
-    HRESULT GetMediaTimes2(
-        REFTIME * start,
-        REFTIME * stop
-    );
-
-    HRESULT ModifyStopTime(
-        REFERENCE_TIME stop
-    );
-
-    HRESULT ModifyStopTime2(
-        REFTIME stop
-    );
-
-    HRESULT FixMediaTimes(
-        REFERENCE_TIME * start,
-        REFERENCE_TIME * stop
-    );
-
-    HRESULT FixMediaTimes2(
-        REFTIME * start,
-        REFTIME * stop
-    );
-
-    HRESULT SetMediaTimes(
-        REFERENCE_TIME Start,
-        REFERENCE_TIME Stop
-    );
-
-    HRESULT SetMediaTimes2(
-        REFTIME Start,
-        REFTIME Stop
-    );
-
-    HRESULT SetMediaLength(
-        REFERENCE_TIME length
-    );
-
-    HRESULT SetMediaLength2(
-        REFTIME length
-    );
-
-    HRESULT GetMediaLength(
-        REFERENCE_TIME * length
-    );
-
-    HRESULT GetMediaLength2(
-        REFTIME * length
-    );
-
-    HRESULT GetMediaName(
-        [out,retval] BSTR * name
-    );
-
-    HRESULT SetMediaName(
-        BSTR name
-    );
-
-    HRESULT SpliceWithNext(
-        IAMTimelineObj * next
-    );
-
-    HRESULT GetStreamNumber(
-        long * num
-    );
-
-    HRESULT SetStreamNumber(
-        long num
-    );
-
-    HRESULT IsNormalRate(
-        BOOL * normal
-    );
-
-    HRESULT GetDefaultFPS(
-        double * fps
-    );
-
-    HRESULT SetDefaultFPS(
-        double fps
-    );
-
-    HRESULT GetStretchMode(
-        int * mode
-    );
-
-    HRESULT SetStretchMode(
-        int mode
-    );
-}
-
-enum
-{
-    E_NOTINTREE = 0x80040400,
-    E_RENDER_ENGINE_IS_BROKEN = 0x80040401,
-    E_MUST_INIT_RENDERER = 0x80040402,
-    E_NOTDETERMINED = 0x80040403,
-    E_NO_TIMELINE = 0x80040404,
-    S_WARN_OUTPUTRESET = 40404
-};
lib/libc/include/any-windows-any/qnetwork.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from include/qnetwork.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/qnetwork.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/qnetwork.idl
@@ -1,59 +0,0 @@
-/* This file is part of the KDE project
-   Copyright (C) 2007 Shane King
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public
-   License as published by the Free Software Foundation; either
-   version 2 of the License, or (at your option) any later version.
-
-   This program 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
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public License
-   along with this program; see the file COPYING.  If not, write to
-   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.
-*/
-
-import "unknwn.idl";
-import "strmif.idl";
-import "wtypes.idl";
-
-[
-    object,
-    uuid(fa2aa8f4-8b62-11d0-a520-000000000000)
-]
-interface IAMMediaContent : IDispatch
-{
-    [propget] HRESULT AuthorName(BSTR *pbstrAuthorName);
-    [propget] HRESULT Title(BSTR *pbstrTitle);
-    [propget] HRESULT Rating(BSTR *pbstrRating);
-    [propget] HRESULT Description(BSTR *pbstrDescription);
-    [propget] HRESULT Copyright(BSTR *pbstrCopyright);
-    [propget] HRESULT BaseURL(BSTR *pbstrBaseURL);
-    [propget] HRESULT LogoURL(BSTR *pbstrLogoURL);
-    [propget] HRESULT LogoIconURL(BSTR *pbstrLogoURL);
-    [propget] HRESULT WatermarkURL(BSTR *pbstrWatermarkURL);
-    [propget] HRESULT MoreInfoURL(BSTR *pbstrMoreInfoURL);
-    [propget] HRESULT MoreInfoBannerImage(BSTR *pbstrMoreInfoBannerImage);
-    [propget] HRESULT MoreInfoBannerURL(BSTR *pbstrMoreInfoBannerURL);
-    [propget] HRESULT MoreInfoText(BSTR *pbstrMoreInfoText);
-}
-
-[
-    object,
-    uuid(fa2aa8f3-8b62-11d0-a520-000000000000)
-]
-interface IAMNetworkStatus : IDispatch
-{
-    [propget] HRESULT ReceivedPackets(long *pReceivedPackets);
-    [propget] HRESULT RecoveredPackets(long *pRecoveredPackets);
-    [propget] HRESULT LostPackets(long *pLostPackets);
-    [propget] HRESULT ReceptionQuality(long *pReceptionQuality);
-    [propget] HRESULT BufferingCount(long *pBufferingCount);
-    [propget] HRESULT IsBroadcast(VARIANT_BOOL *pIsBroadcast);
-    [propget] HRESULT BufferingProgress(long *pBufferingProgress);
-}
-
lib/libc/include/any-windows-any/rdpencomapi.h
@@ -1,174 +1,5525 @@
-/**
- * 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 6.4 from include/rdpencomapi.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __rdpencomapi_h__
+#define __rdpencomapi_h__
+
+/* Forward declarations */
+
+#ifndef __IRDPSRAPIDebug_FWD_DEFINED__
+#define __IRDPSRAPIDebug_FWD_DEFINED__
+typedef interface IRDPSRAPIDebug IRDPSRAPIDebug;
+#ifdef __cplusplus
+interface IRDPSRAPIDebug;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIPerfCounterLogger_FWD_DEFINED__
+#define __IRDPSRAPIPerfCounterLogger_FWD_DEFINED__
+typedef interface IRDPSRAPIPerfCounterLogger IRDPSRAPIPerfCounterLogger;
+#ifdef __cplusplus
+interface IRDPSRAPIPerfCounterLogger;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIPerfCounterLoggingManager_FWD_DEFINED__
+#define __IRDPSRAPIPerfCounterLoggingManager_FWD_DEFINED__
+typedef interface IRDPSRAPIPerfCounterLoggingManager IRDPSRAPIPerfCounterLoggingManager;
+#ifdef __cplusplus
+interface IRDPSRAPIPerfCounterLoggingManager;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIAudioStream_FWD_DEFINED__
+#define __IRDPSRAPIAudioStream_FWD_DEFINED__
+typedef interface IRDPSRAPIAudioStream IRDPSRAPIAudioStream;
+#ifdef __cplusplus
+interface IRDPSRAPIAudioStream;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIClipboardUseEvents_FWD_DEFINED__
+#define __IRDPSRAPIClipboardUseEvents_FWD_DEFINED__
+typedef interface IRDPSRAPIClipboardUseEvents IRDPSRAPIClipboardUseEvents;
+#ifdef __cplusplus
+interface IRDPSRAPIClipboardUseEvents;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIWindow_FWD_DEFINED__
+#define __IRDPSRAPIWindow_FWD_DEFINED__
+typedef interface IRDPSRAPIWindow IRDPSRAPIWindow;
+#ifdef __cplusplus
+interface IRDPSRAPIWindow;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIWindowList_FWD_DEFINED__
+#define __IRDPSRAPIWindowList_FWD_DEFINED__
+typedef interface IRDPSRAPIWindowList IRDPSRAPIWindowList;
+#ifdef __cplusplus
+interface IRDPSRAPIWindowList;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIApplication_FWD_DEFINED__
+#define __IRDPSRAPIApplication_FWD_DEFINED__
+typedef interface IRDPSRAPIApplication IRDPSRAPIApplication;
+#ifdef __cplusplus
+interface IRDPSRAPIApplication;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIApplicationList_FWD_DEFINED__
+#define __IRDPSRAPIApplicationList_FWD_DEFINED__
+typedef interface IRDPSRAPIApplicationList IRDPSRAPIApplicationList;
+#ifdef __cplusplus
+interface IRDPSRAPIApplicationList;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIApplicationFilter_FWD_DEFINED__
+#define __IRDPSRAPIApplicationFilter_FWD_DEFINED__
+typedef interface IRDPSRAPIApplicationFilter IRDPSRAPIApplicationFilter;
+#ifdef __cplusplus
+interface IRDPSRAPIApplicationFilter;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPISessionProperties_FWD_DEFINED__
+#define __IRDPSRAPISessionProperties_FWD_DEFINED__
+typedef interface IRDPSRAPISessionProperties IRDPSRAPISessionProperties;
+#ifdef __cplusplus
+interface IRDPSRAPISessionProperties;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIInvitation_FWD_DEFINED__
+#define __IRDPSRAPIInvitation_FWD_DEFINED__
+typedef interface IRDPSRAPIInvitation IRDPSRAPIInvitation;
+#ifdef __cplusplus
+interface IRDPSRAPIInvitation;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIInvitationManager_FWD_DEFINED__
+#define __IRDPSRAPIInvitationManager_FWD_DEFINED__
+typedef interface IRDPSRAPIInvitationManager IRDPSRAPIInvitationManager;
+#ifdef __cplusplus
+interface IRDPSRAPIInvitationManager;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPITcpConnectionInfo_FWD_DEFINED__
+#define __IRDPSRAPITcpConnectionInfo_FWD_DEFINED__
+typedef interface IRDPSRAPITcpConnectionInfo IRDPSRAPITcpConnectionInfo;
+#ifdef __cplusplus
+interface IRDPSRAPITcpConnectionInfo;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIAttendee_FWD_DEFINED__
+#define __IRDPSRAPIAttendee_FWD_DEFINED__
+typedef interface IRDPSRAPIAttendee IRDPSRAPIAttendee;
+#ifdef __cplusplus
+interface IRDPSRAPIAttendee;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIAttendeeManager_FWD_DEFINED__
+#define __IRDPSRAPIAttendeeManager_FWD_DEFINED__
+typedef interface IRDPSRAPIAttendeeManager IRDPSRAPIAttendeeManager;
+#ifdef __cplusplus
+interface IRDPSRAPIAttendeeManager;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIAttendeeDisconnectInfo_FWD_DEFINED__
+#define __IRDPSRAPIAttendeeDisconnectInfo_FWD_DEFINED__
+typedef interface IRDPSRAPIAttendeeDisconnectInfo IRDPSRAPIAttendeeDisconnectInfo;
+#ifdef __cplusplus
+interface IRDPSRAPIAttendeeDisconnectInfo;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIVirtualChannel_FWD_DEFINED__
+#define __IRDPSRAPIVirtualChannel_FWD_DEFINED__
+typedef interface IRDPSRAPIVirtualChannel IRDPSRAPIVirtualChannel;
+#ifdef __cplusplus
+interface IRDPSRAPIVirtualChannel;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIVirtualChannelManager_FWD_DEFINED__
+#define __IRDPSRAPIVirtualChannelManager_FWD_DEFINED__
+typedef interface IRDPSRAPIVirtualChannelManager IRDPSRAPIVirtualChannelManager;
+#ifdef __cplusplus
+interface IRDPSRAPIVirtualChannelManager;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIViewer_FWD_DEFINED__
+#define __IRDPSRAPIViewer_FWD_DEFINED__
+typedef interface IRDPSRAPIViewer IRDPSRAPIViewer;
+#ifdef __cplusplus
+interface IRDPSRAPIViewer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPViewerRenderingSurface_FWD_DEFINED__
+#define __IRDPViewerRenderingSurface_FWD_DEFINED__
+typedef interface IRDPViewerRenderingSurface IRDPViewerRenderingSurface;
+#ifdef __cplusplus
+interface IRDPViewerRenderingSurface;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPViewerInputSink_FWD_DEFINED__
+#define __IRDPViewerInputSink_FWD_DEFINED__
+typedef interface IRDPViewerInputSink IRDPViewerInputSink;
+#ifdef __cplusplus
+interface IRDPViewerInputSink;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIFrameBuffer_FWD_DEFINED__
+#define __IRDPSRAPIFrameBuffer_FWD_DEFINED__
+typedef interface IRDPSRAPIFrameBuffer IRDPSRAPIFrameBuffer;
+#ifdef __cplusplus
+interface IRDPSRAPIFrameBuffer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPITransportStreamBuffer_FWD_DEFINED__
+#define __IRDPSRAPITransportStreamBuffer_FWD_DEFINED__
+typedef interface IRDPSRAPITransportStreamBuffer IRDPSRAPITransportStreamBuffer;
+#ifdef __cplusplus
+interface IRDPSRAPITransportStreamBuffer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPITransportStreamEvents_FWD_DEFINED__
+#define __IRDPSRAPITransportStreamEvents_FWD_DEFINED__
+typedef interface IRDPSRAPITransportStreamEvents IRDPSRAPITransportStreamEvents;
+#ifdef __cplusplus
+interface IRDPSRAPITransportStreamEvents;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPITransportStream_FWD_DEFINED__
+#define __IRDPSRAPITransportStream_FWD_DEFINED__
+typedef interface IRDPSRAPITransportStream IRDPSRAPITransportStream;
+#ifdef __cplusplus
+interface IRDPSRAPITransportStream;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPISharingSession_FWD_DEFINED__
+#define __IRDPSRAPISharingSession_FWD_DEFINED__
+typedef interface IRDPSRAPISharingSession IRDPSRAPISharingSession;
+#ifdef __cplusplus
+interface IRDPSRAPISharingSession;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPISharingSession2_FWD_DEFINED__
+#define __IRDPSRAPISharingSession2_FWD_DEFINED__
+typedef interface IRDPSRAPISharingSession2 IRDPSRAPISharingSession2;
+#ifdef __cplusplus
+interface IRDPSRAPISharingSession2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef ___IRDPSessionEvents_FWD_DEFINED__
+#define ___IRDPSessionEvents_FWD_DEFINED__
+typedef interface _IRDPSessionEvents _IRDPSessionEvents;
+#ifdef __cplusplus
+interface _IRDPSessionEvents;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __RDPViewer_FWD_DEFINED__
+#define __RDPViewer_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPViewer RDPViewer;
+#else
+typedef struct RDPViewer RDPViewer;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPViewer_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPISessionProperties_FWD_DEFINED__
+#define __RDPSRAPISessionProperties_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPISessionProperties RDPSRAPISessionProperties;
+#else
+typedef struct RDPSRAPISessionProperties RDPSRAPISessionProperties;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPISessionProperties_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIInvitationManager_FWD_DEFINED__
+#define __RDPSRAPIInvitationManager_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIInvitationManager RDPSRAPIInvitationManager;
+#else
+typedef struct RDPSRAPIInvitationManager RDPSRAPIInvitationManager;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIInvitationManager_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIInvitation_FWD_DEFINED__
+#define __RDPSRAPIInvitation_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIInvitation RDPSRAPIInvitation;
+#else
+typedef struct RDPSRAPIInvitation RDPSRAPIInvitation;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIInvitation_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIAttendeeManager_FWD_DEFINED__
+#define __RDPSRAPIAttendeeManager_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIAttendeeManager RDPSRAPIAttendeeManager;
+#else
+typedef struct RDPSRAPIAttendeeManager RDPSRAPIAttendeeManager;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIAttendeeManager_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIAttendee_FWD_DEFINED__
+#define __RDPSRAPIAttendee_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIAttendee RDPSRAPIAttendee;
+#else
+typedef struct RDPSRAPIAttendee RDPSRAPIAttendee;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIAttendee_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIAttendeeDisconnectInfo_FWD_DEFINED__
+#define __RDPSRAPIAttendeeDisconnectInfo_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIAttendeeDisconnectInfo RDPSRAPIAttendeeDisconnectInfo;
+#else
+typedef struct RDPSRAPIAttendeeDisconnectInfo RDPSRAPIAttendeeDisconnectInfo;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIAttendeeDisconnectInfo_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIApplicationFilter_FWD_DEFINED__
+#define __RDPSRAPIApplicationFilter_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIApplicationFilter RDPSRAPIApplicationFilter;
+#else
+typedef struct RDPSRAPIApplicationFilter RDPSRAPIApplicationFilter;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIApplicationFilter_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIApplicationList_FWD_DEFINED__
+#define __RDPSRAPIApplicationList_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIApplicationList RDPSRAPIApplicationList;
+#else
+typedef struct RDPSRAPIApplicationList RDPSRAPIApplicationList;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIApplicationList_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIApplication_FWD_DEFINED__
+#define __RDPSRAPIApplication_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIApplication RDPSRAPIApplication;
+#else
+typedef struct RDPSRAPIApplication RDPSRAPIApplication;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIApplication_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIWindowList_FWD_DEFINED__
+#define __RDPSRAPIWindowList_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIWindowList RDPSRAPIWindowList;
+#else
+typedef struct RDPSRAPIWindowList RDPSRAPIWindowList;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIWindowList_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIWindow_FWD_DEFINED__
+#define __RDPSRAPIWindow_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIWindow RDPSRAPIWindow;
+#else
+typedef struct RDPSRAPIWindow RDPSRAPIWindow;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIWindow_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPITcpConnectionInfo_FWD_DEFINED__
+#define __RDPSRAPITcpConnectionInfo_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPITcpConnectionInfo RDPSRAPITcpConnectionInfo;
+#else
+typedef struct RDPSRAPITcpConnectionInfo RDPSRAPITcpConnectionInfo;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPITcpConnectionInfo_FWD_DEFINED__ */
+
+#ifndef __RDPSession_FWD_DEFINED__
+#define __RDPSession_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSession RDPSession;
+#else
+typedef struct RDPSession RDPSession;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSession_FWD_DEFINED__ */
+
+#ifndef __RDPSRAPIFrameBuffer_FWD_DEFINED__
+#define __RDPSRAPIFrameBuffer_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPSRAPIFrameBuffer RDPSRAPIFrameBuffer;
+#else
+typedef struct RDPSRAPIFrameBuffer RDPSRAPIFrameBuffer;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPSRAPIFrameBuffer_FWD_DEFINED__ */
+
+#ifndef __RDPTransportStreamBuffer_FWD_DEFINED__
+#define __RDPTransportStreamBuffer_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPTransportStreamBuffer RDPTransportStreamBuffer;
+#else
+typedef struct RDPTransportStreamBuffer RDPTransportStreamBuffer;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPTransportStreamBuffer_FWD_DEFINED__ */
+
+#ifndef __RDPTransportStreamEvents_FWD_DEFINED__
+#define __RDPTransportStreamEvents_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class RDPTransportStreamEvents RDPTransportStreamEvents;
+#else
+typedef struct RDPTransportStreamEvents RDPTransportStreamEvents;
+#endif /* defined __cplusplus */
+#endif /* defined __RDPTransportStreamEvents_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#define DISPID_RDPSRAPI_METHOD_OPEN (100)
+
+#define DISPID_RDPSRAPI_METHOD_CLOSE (101)
+
+#define DISPID_RDPSRAPI_METHOD_SETSHAREDRECT (102)
+
+#define DISPID_RDPSRAPI_METHOD_GETSHAREDRECT (103)
+
+#define DISPID_RDPSRAPI_METHOD_VIEWERCONNECT (104)
+
+#define DISPID_RDPSRAPI_METHOD_VIEWERDISCONNECT (105)
+
+#define DISPID_RDPSRAPI_METHOD_TERMINATE_CONNECTION (106)
+
+#define DISPID_RDPSRAPI_METHOD_CREATE_INVITATION (107)
+
+#define DISPID_RDPSRAPI_METHOD_REQUEST_CONTROL (108)
+
+#define DISPID_RDPSRAPI_METHOD_VIRTUAL_CHANNEL_CREATE (109)
+
+#define DISPID_RDPSRAPI_METHOD_VIRTUAL_CHANNEL_SEND_DATA (110)
+
+#define DISPID_RDPSRAPI_METHOD_VIRTUAL_CHANNEL_SET_ACCESS (111)
+
+#define DISPID_RDPSRAPI_METHOD_PAUSE (112)
+
+#define DISPID_RDPSRAPI_METHOD_RESUME (113)
+
+#define DISPID_RDPSRAPI_METHOD_SHOW_WINDOW (114)
+
+#define DISPID_RDPSRAPI_METHOD_REQUEST_COLOR_DEPTH_CHANGE (115)
+
+#define DISPID_RDPSRAPI_METHOD_STARTREVCONNECTLISTENER (116)
+
+#define DISPID_RDPSRAPI_METHOD_CONNECTTOCLIENT (117)
+
+#define DISPID_RDPSRAPI_METHOD_SET_RENDERING_SURFACE (118)
+
+#define DISPID_RDPSRAPI_METHOD_SEND_MOUSE_BUTTON_EVENT (119)
+
+#define DISPID_RDPSRAPI_METHOD_SEND_MOUSE_MOVE_EVENT (120)
+
+#define DISPID_RDPSRAPI_METHOD_SEND_MOUSE_WHEEL_EVENT (121)
+
+#define DISPID_RDPSRAPI_METHOD_SEND_KEYBOARD_EVENT (122)
+
+#define DISPID_RDPSRAPI_METHOD_SEND_SYNC_EVENT (123)
+
+#define DISPID_RDPSRAPI_METHOD_BEGIN_TOUCH_FRAME (124)
+
+#define DISPID_RDPSRAPI_METHOD_ADD_TOUCH_INPUT (125)
+
+#define DISPID_RDPSRAPI_METHOD_END_TOUCH_FRAME (126)
+
+#define DISPID_RDPSRAPI_METHOD_CONNECTUSINGTRANSPORTSTREAM (127)
+
+#define DISPID_RDPSRAPI_METHOD_SENDCONTROLLEVELCHANGERESPONSE (148)
+
+#define DISPID_RDPSRAPI_METHOD_GETFRAMEBUFFERBITS (149)
+
+#define DISPID_RDPSRAPI_PROP_DISPIDVALUE (200)
+
+#define DISPID_RDPSRAPI_PROP_ID (201)
+
+#define DISPID_RDPSRAPI_PROP_SESSION_PROPERTIES (202)
+
+#define DISPID_RDPSRAPI_PROP_ATTENDEES (203)
+
+#define DISPID_RDPSRAPI_PROP_INVITATIONS (204)
+
+#define DISPID_RDPSRAPI_PROP_INVITATION (205)
+
+#define DISPID_RDPSRAPI_PROP_CHANNELMANAGER (206)
+
+#define DISPID_RDPSRAPI_PROP_VIRTUAL_CHANNEL_GETNAME (207)
+
+#define DISPID_RDPSRAPI_PROP_VIRTUAL_CHANNEL_GETFLAGS (208)
+
+#define DISPID_RDPSRAPI_PROP_VIRTUAL_CHANNEL_GETPRIORITY (209)
+
+#define DISPID_RDPSRAPI_PROP_WINDOWID (210)
+
+#define DISPID_RDPSRAPI_PROP_APPLICATION (211)
+
+#define DISPID_RDPSRAPI_PROP_WINDOWSHARED (212)
+
+#define DISPID_RDPSRAPI_PROP_WINDOWNAME (213)
+
+#define DISPID_RDPSRAPI_PROP_APPNAME (214)
+
+#define DISPID_RDPSRAPI_PROP_APPLICATION_FILTER (215)
+
+#define DISPID_RDPSRAPI_PROP_WINDOW_LIST (216)
+
+#define DISPID_RDPSRAPI_PROP_APPLICATION_LIST (217)
+
+#define DISPID_RDPSRAPI_PROP_APPFILTER_ENABLED (218)
+
+#define DISPID_RDPSRAPI_PROP_APPFILTERENABLED (219)
+
+#define DISPID_RDPSRAPI_PROP_SHARED (220)
+
+#define DISPID_RDPSRAPI_PROP_INVITATIONITEM (221)
+
+#define DISPID_RDPSRAPI_PROP_DBG_CLX_CMDLINE (222)
+
+#define DISPID_RDPSRAPI_PROP_APPFLAGS (223)
+
+#define DISPID_RDPSRAPI_PROP_WNDFLAGS (224)
+
+#define DISPID_RDPSRAPI_PROP_PROTOCOL_TYPE (225)
+
+#define DISPID_RDPSRAPI_PROP_LOCAL_PORT (226)
+
+#define DISPID_RDPSRAPI_PROP_LOCAL_IP (227)
+
+#define DISPID_RDPSRAPI_PROP_PEER_PORT (228)
+
+#define DISPID_RDPSRAPI_PROP_PEER_IP (229)
+
+#define DISPID_RDPSRAPI_PROP_ATTENDEE_FLAGS (230)
+
+#define DISPID_RDPSRAPI_PROP_CONINFO (231)
+
+#define DISPID_RDPSRAPI_PROP_CONNECTION_STRING (232)
+
+#define DISPID_RDPSRAPI_PROP_GROUP_NAME (233)
+
+#define DISPID_RDPSRAPI_PROP_PASSWORD (234)
+
+#define DISPID_RDPSRAPI_PROP_ATTENDEELIMIT (235)
+
+#define DISPID_RDPSRAPI_PROP_REVOKED (236)
+
+#define DISPID_RDPSRAPI_PROP_DISCONNECTED_STRING (237)
+
+#define DISPID_RDPSRAPI_PROP_USESMARTSIZING (238)
+
+#define DISPID_RDPSRAPI_PROP_SESSION_COLORDEPTH (239)
+
+#define DISPID_RDPSRAPI_PROP_REASON (240)
+
+#define DISPID_RDPSRAPI_PROP_CODE (241)
+
+#define DISPID_RDPSRAPI_PROP_CTRL_LEVEL (242)
+
+#define DISPID_RDPSRAPI_PROP_REMOTENAME (243)
+
+#define DISPID_RDPSRAPI_PROP_COUNT (244)
+
+#define DISPID_RDPSRAPI_PROP_FRAMEBUFFER_HEIGHT (251)
+
+#define DISPID_RDPSRAPI_PROP_FRAMEBUFFER_WIDTH (252)
+
+#define DISPID_RDPSRAPI_PROP_FRAMEBUFFER_BPP (253)
+
+#define DISPID_RDPSRAPI_PROP_FRAMEBUFFER (254)
+
+#define DISPID_RDPSRAPI_EVENT_ON_ATTENDEE_CONNECTED (301)
+
+#define DISPID_RDPSRAPI_EVENT_ON_ATTENDEE_DISCONNECTED (302)
+
+#define DISPID_RDPSRAPI_EVENT_ON_ATTENDEE_UPDATE (303)
+
+#define DISPID_RDPSRAPI_EVENT_ON_ERROR (304)
+
+#define DISPID_RDPSRAPI_EVENT_ON_VIEWER_CONNECTED (305)
+
+#define DISPID_RDPSRAPI_EVENT_ON_VIEWER_DISCONNECTED (306)
+
+#define DISPID_RDPSRAPI_EVENT_ON_VIEWER_AUTHENTICATED (307)
+
+#define DISPID_RDPSRAPI_EVENT_ON_VIEWER_CONNECTFAILED (308)
+
+#define DISPID_RDPSRAPI_EVENT_ON_CTRLLEVEL_CHANGE_REQUEST (309)
+
+#define DISPID_RDPSRAPI_EVENT_ON_GRAPHICS_STREAM_PAUSED (310)
+
+#define DISPID_RDPSRAPI_EVENT_ON_GRAPHICS_STREAM_RESUMED (311)
+
+#define DISPID_RDPSRAPI_EVENT_ON_VIRTUAL_CHANNEL_JOIN (312)
+
+#define DISPID_RDPSRAPI_EVENT_ON_VIRTUAL_CHANNEL_LEAVE (313)
+
+#define DISPID_RDPSRAPI_EVENT_ON_VIRTUAL_CHANNEL_DATARECEIVED (314)
+
+#define DISPID_RDPSRAPI_EVENT_ON_VIRTUAL_CHANNEL_SENDCOMPLETED (315)
+
+#define DISPID_RDPSRAPI_EVENT_ON_APPLICATION_OPEN (316)
+
+#define DISPID_RDPSRAPI_EVENT_ON_APPLICATION_CLOSE (317)
+
+#define DISPID_RDPSRAPI_EVENT_ON_APPLICATION_UPDATE (318)
+
+#define DISPID_RDPSRAPI_EVENT_ON_WINDOW_OPEN (319)
+
+#define DISPID_RDPSRAPI_EVENT_ON_WINDOW_CLOSE (320)
+
+#define DISPID_RDPSRAPI_EVENT_ON_WINDOW_UPDATE (321)
+
+#define DISPID_RDPSRAPI_EVENT_ON_APPFILTER_UPDATE (322)
+
+#define DISPID_RDPSRAPI_EVENT_ON_SHARED_RECT_CHANGED (323)
+
+#define DISPID_RDPSRAPI_EVENT_ON_FOCUSRELEASED (324)
+
+#define DISPID_RDPSRAPI_EVENT_ON_SHARED_DESKTOP_SETTINGS_CHANGED (325)
+
+#define DISPID_RDPSRAPI_EVENT_ON_CTRLLEVEL_CHANGE_RESPONSE (338)
+
+#define DISPID_RDPAPI_EVENT_ON_BOUNDING_RECT_CHANGED (340)
+
+#define DISPID_RDPSRAPI_METHOD_STREAM_ALLOCBUFFER (421)
+
+#define DISPID_RDPSRAPI_METHOD_STREAM_FREEBUFFER (422)
+
+#define DISPID_RDPSRAPI_METHOD_STREAMSENDDATA (423)
+
+#define DISPID_RDPSRAPI_METHOD_STREAMREADDATA (424)
+
+#define DISPID_RDPSRAPI_METHOD_STREAMOPEN (425)
+
+#define DISPID_RDPSRAPI_METHOD_STREAMCLOSE (426)
+
+#define DISPID_RDPSRAPI_PROP_STREAMBUFFER_STORAGE (555)
+
+#define DISPID_RDPSRAPI_PROP_STREAMBUFFER_PAYLOADSIZE (558)
+
+#define DISPID_RDPSRAPI_PROP_STREAMBUFFER_PAYLOADOFFSET (559)
+
+#define DISPID_RDPSRAPI_PROP_STREAMBUFFER_CONTEXT (560)
+
+#define DISPID_RDPSRAPI_PROP_STREAMBUFFER_FLAGS (561)
+
+#define DISPID_RDPSRAPI_PROP_STREAMBUFFER_STORESIZE (562)
+
+#define DISPID_RDPSRAPI_EVENT_ON_STREAM_SENDCOMPLETED (632)
+
+#define DISPID_RDPSRAPI_EVENT_ON_STREAM_DATARECEIVED (633)
+
+#define DISPID_RDPSRAPI_EVENT_ON_STREAM_CLOSED (634)
+
+#define DISPID_RDPSRAPI_EVENT_VIEW_MOUSE_BUTTON_RECEIVED (700)
+
+#define DISPID_RDPSRAPI_EVENT_VIEW_MOUSE_MOVE_RECEIVED (701)
+
+#define DISPID_RDPSRAPI_EVENT_VIEW_MOUSE_WHEEL_RECEIVED (702)
+
+typedef enum __WIDL_rdpencomapi_generated_name_00000020 {
+    CTRL_LEVEL_MIN = 0,
+    CTRL_LEVEL_INVALID = 0,
+    CTRL_LEVEL_NONE = 1,
+    CTRL_LEVEL_VIEW = 2,
+    CTRL_LEVEL_INTERACTIVE = 3,
+    CTRL_LEVEL_REQCTRL_VIEW = 4,
+    CTRL_LEVEL_REQCTRL_INTERACTIVE = 5,
+    CTRL_LEVEL_MAX = 5
+} CTRL_LEVEL;
+typedef enum __WIDL_rdpencomapi_generated_name_00000021 {
+    ATTENDEE_DISCONNECT_REASON_MIN = 0,
+    ATTENDEE_DISCONNECT_REASON_APP = 0,
+    ATTENDEE_DISCONNECT_REASON_ERR = 1,
+    ATTENDEE_DISCONNECT_REASON_CLI = 2,
+    ATTENDEE_DISCONNECT_REASON_MAX = 2
+} ATTENDEE_DISCONNECT_REASON;
+typedef enum __WIDL_rdpencomapi_generated_name_00000022 {
+    CHANNEL_PRIORITY_LO = 0,
+    CHANNEL_PRIORITY_MED = 1,
+    CHANNEL_PRIORITY_HI = 2
+} CHANNEL_PRIORITY;
+typedef enum __WIDL_rdpencomapi_generated_name_00000023 {
+    CHANNEL_FLAGS_LEGACY = 0x1,
+    CHANNEL_FLAGS_UNCOMPRESSED = 0x2,
+    CHANNEL_FLAGS_DYNAMIC = 0x4
+} CHANNEL_FLAGS;
+typedef enum __WIDL_rdpencomapi_generated_name_00000024 {
+    CHANNEL_ACCESS_ENUM_NONE = 0,
+    CHANNEL_ACCESS_ENUM_SENDRECEIVE = 1
+} CHANNEL_ACCESS_ENUM;
+typedef enum __WIDL_rdpencomapi_generated_name_00000025 {
+    ATTENDEE_FLAGS_LOCAL = 1
+} RDPENCOMAPI_ATTENDEE_FLAGS;
+typedef enum __WIDL_rdpencomapi_generated_name_00000026 {
+    WND_FLAG_PRIVILEGED = 1
+} RDPSRAPI_WND_FLAGS;
+typedef enum __WIDL_rdpencomapi_generated_name_00000027 {
+    APP_FLAG_PRIVILEGED = 1
+} RDPSRAPI_APP_FLAGS;
+typedef enum __WIDL_rdpencomapi_generated_name_00000028 {
+    RDPSRAPI_MOUSE_BUTTON_BUTTON1 = 0,
+    RDPSRAPI_MOUSE_BUTTON_BUTTON2 = 1,
+    RDPSRAPI_MOUSE_BUTTON_BUTTON3 = 2,
+    RDPSRAPI_MOUSE_BUTTON_XBUTTON1 = 3,
+    RDPSRAPI_MOUSE_BUTTON_XBUTTON2 = 4,
+    RDPSRAPI_MOUSE_BUTTON_XBUTTON3 = 5
+} RDPSRAPI_MOUSE_BUTTON_TYPE;
+typedef enum __WIDL_rdpencomapi_generated_name_00000029 {
+    RDPSRAPI_KBD_CODE_SCANCODE = 0,
+    RDPSRAPI_KBD_CODE_UNICODE = 1
+} RDPSRAPI_KBD_CODE_TYPE;
+typedef enum __WIDL_rdpencomapi_generated_name_0000002A {
+    RDPSRAPI_KBD_SYNC_FLAG_SCROLL_LOCK = 1,
+    RDPSRAPI_KBD_SYNC_FLAG_NUM_LOCK = 2,
+    RDPSRAPI_KBD_SYNC_FLAG_CAPS_LOCK = 4,
+    RDPSRAPI_KBD_SYNC_FLAG_KANA_LOCK = 8
+} RDPSRAPI_KBD_SYNC_FLAG;
+/*****************************************************************************
+ * IRDPSRAPIDebug interface
+ */
+#ifndef __IRDPSRAPIDebug_INTERFACE_DEFINED__
+#define __IRDPSRAPIDebug_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIDebug, 0xaa1e42b5, 0x496d, 0x4ca4, 0xa6,0x90, 0x34,0x8d,0xcb,0x2e,0xc4,0xad);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("aa1e42b5-496d-4ca4-a690-348dcb2ec4ad")
+IRDPSRAPIDebug : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE put_CLXCmdLine(
+        BSTR CLXCmdLine) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CLXCmdLine(
+        BSTR *pCLXCmdLine) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIDebug, 0xaa1e42b5, 0x496d, 0x4ca4, 0xa6,0x90, 0x34,0x8d,0xcb,0x2e,0xc4,0xad)
+#endif
+#else
+typedef struct IRDPSRAPIDebugVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIDebug *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIDebug *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIDebug *This);
+
+    /*** IRDPSRAPIDebug methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_CLXCmdLine)(
+        IRDPSRAPIDebug *This,
+        BSTR CLXCmdLine);
+
+    HRESULT (STDMETHODCALLTYPE *get_CLXCmdLine)(
+        IRDPSRAPIDebug *This,
+        BSTR *pCLXCmdLine);
+
+    END_INTERFACE
+} IRDPSRAPIDebugVtbl;
+
+interface IRDPSRAPIDebug {
+    CONST_VTBL IRDPSRAPIDebugVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIDebug_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIDebug_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIDebug_Release(This) (This)->lpVtbl->Release(This)
+/*** IRDPSRAPIDebug methods ***/
+#define IRDPSRAPIDebug_put_CLXCmdLine(This,CLXCmdLine) (This)->lpVtbl->put_CLXCmdLine(This,CLXCmdLine)
+#define IRDPSRAPIDebug_get_CLXCmdLine(This,pCLXCmdLine) (This)->lpVtbl->get_CLXCmdLine(This,pCLXCmdLine)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIDebug_QueryInterface(IRDPSRAPIDebug* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIDebug_AddRef(IRDPSRAPIDebug* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIDebug_Release(IRDPSRAPIDebug* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRDPSRAPIDebug methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIDebug_put_CLXCmdLine(IRDPSRAPIDebug* This,BSTR CLXCmdLine) {
+    return This->lpVtbl->put_CLXCmdLine(This,CLXCmdLine);
+}
+static FORCEINLINE HRESULT IRDPSRAPIDebug_get_CLXCmdLine(IRDPSRAPIDebug* This,BSTR *pCLXCmdLine) {
+    return This->lpVtbl->get_CLXCmdLine(This,pCLXCmdLine);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIDebug_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIPerfCounterLogger interface
+ */
+#ifndef __IRDPSRAPIPerfCounterLogger_INTERFACE_DEFINED__
+#define __IRDPSRAPIPerfCounterLogger_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIPerfCounterLogger, 0x071c2533, 0x0fa4, 0x4e8f, 0xae,0x83, 0x9c,0x10,0xb4,0x30,0x5a,0xb5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("071c2533-0fa4-4e8f-ae83-9c10b4305ab5")
+IRDPSRAPIPerfCounterLogger : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE LogValue(
+        INT64 lValue) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIPerfCounterLogger, 0x071c2533, 0x0fa4, 0x4e8f, 0xae,0x83, 0x9c,0x10,0xb4,0x30,0x5a,0xb5)
+#endif
+#else
+typedef struct IRDPSRAPIPerfCounterLoggerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIPerfCounterLogger *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIPerfCounterLogger *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIPerfCounterLogger *This);
+
+    /*** IRDPSRAPIPerfCounterLogger methods ***/
+    HRESULT (STDMETHODCALLTYPE *LogValue)(
+        IRDPSRAPIPerfCounterLogger *This,
+        INT64 lValue);
+
+    END_INTERFACE
+} IRDPSRAPIPerfCounterLoggerVtbl;
+
+interface IRDPSRAPIPerfCounterLogger {
+    CONST_VTBL IRDPSRAPIPerfCounterLoggerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIPerfCounterLogger_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIPerfCounterLogger_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIPerfCounterLogger_Release(This) (This)->lpVtbl->Release(This)
+/*** IRDPSRAPIPerfCounterLogger methods ***/
+#define IRDPSRAPIPerfCounterLogger_LogValue(This,lValue) (This)->lpVtbl->LogValue(This,lValue)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIPerfCounterLogger_QueryInterface(IRDPSRAPIPerfCounterLogger* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIPerfCounterLogger_AddRef(IRDPSRAPIPerfCounterLogger* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIPerfCounterLogger_Release(IRDPSRAPIPerfCounterLogger* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRDPSRAPIPerfCounterLogger methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIPerfCounterLogger_LogValue(IRDPSRAPIPerfCounterLogger* This,INT64 lValue) {
+    return This->lpVtbl->LogValue(This,lValue);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIPerfCounterLogger_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIPerfCounterLoggingManager interface
+ */
+#ifndef __IRDPSRAPIPerfCounterLoggingManager_INTERFACE_DEFINED__
+#define __IRDPSRAPIPerfCounterLoggingManager_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIPerfCounterLoggingManager, 0x9a512c86, 0xac6e, 0x4a8e, 0xb1,0xa4, 0xfc,0xef,0x36,0x3f,0x6e,0x64);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9a512c86-ac6e-4a8e-b1a4-fcef363f6e64")
+IRDPSRAPIPerfCounterLoggingManager : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateLogger(
+        BSTR bstrCounterName,
+        IRDPSRAPIPerfCounterLogger **ppLogger) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIPerfCounterLoggingManager, 0x9a512c86, 0xac6e, 0x4a8e, 0xb1,0xa4, 0xfc,0xef,0x36,0x3f,0x6e,0x64)
+#endif
+#else
+typedef struct IRDPSRAPIPerfCounterLoggingManagerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIPerfCounterLoggingManager *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIPerfCounterLoggingManager *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIPerfCounterLoggingManager *This);
+
+    /*** IRDPSRAPIPerfCounterLoggingManager methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateLogger)(
+        IRDPSRAPIPerfCounterLoggingManager *This,
+        BSTR bstrCounterName,
+        IRDPSRAPIPerfCounterLogger **ppLogger);
+
+    END_INTERFACE
+} IRDPSRAPIPerfCounterLoggingManagerVtbl;
+
+interface IRDPSRAPIPerfCounterLoggingManager {
+    CONST_VTBL IRDPSRAPIPerfCounterLoggingManagerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIPerfCounterLoggingManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIPerfCounterLoggingManager_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIPerfCounterLoggingManager_Release(This) (This)->lpVtbl->Release(This)
+/*** IRDPSRAPIPerfCounterLoggingManager methods ***/
+#define IRDPSRAPIPerfCounterLoggingManager_CreateLogger(This,bstrCounterName,ppLogger) (This)->lpVtbl->CreateLogger(This,bstrCounterName,ppLogger)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIPerfCounterLoggingManager_QueryInterface(IRDPSRAPIPerfCounterLoggingManager* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIPerfCounterLoggingManager_AddRef(IRDPSRAPIPerfCounterLoggingManager* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIPerfCounterLoggingManager_Release(IRDPSRAPIPerfCounterLoggingManager* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRDPSRAPIPerfCounterLoggingManager methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIPerfCounterLoggingManager_CreateLogger(IRDPSRAPIPerfCounterLoggingManager* This,BSTR bstrCounterName,IRDPSRAPIPerfCounterLogger **ppLogger) {
+    return This->lpVtbl->CreateLogger(This,bstrCounterName,ppLogger);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIPerfCounterLoggingManager_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIAudioStream interface
+ */
+#ifndef __IRDPSRAPIAudioStream_INTERFACE_DEFINED__
+#define __IRDPSRAPIAudioStream_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIAudioStream, 0xe3e30ef9, 0x89c6, 0x4541, 0xba,0x3b, 0x19,0x33,0x6a,0xc6,0xd3,0x1c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e3e30ef9-89c6-4541-ba3b-19336ac6d31c")
+IRDPSRAPIAudioStream : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Initialize(
+        INT64 *pnPeriodInHundredNsIntervals) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Start(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Stop(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetBuffer(
+        BYTE **ppbData,
+        UINT32 *pcbData,
+        UINT64 *pTimestamp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIAudioStream, 0xe3e30ef9, 0x89c6, 0x4541, 0xba,0x3b, 0x19,0x33,0x6a,0xc6,0xd3,0x1c)
+#endif
+#else
+typedef struct IRDPSRAPIAudioStreamVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIAudioStream *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIAudioStream *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIAudioStream *This);
+
+    /*** IRDPSRAPIAudioStream methods ***/
+    HRESULT (STDMETHODCALLTYPE *Initialize)(
+        IRDPSRAPIAudioStream *This,
+        INT64 *pnPeriodInHundredNsIntervals);
+
+    HRESULT (STDMETHODCALLTYPE *Start)(
+        IRDPSRAPIAudioStream *This);
+
+    HRESULT (STDMETHODCALLTYPE *Stop)(
+        IRDPSRAPIAudioStream *This);
+
+    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+        IRDPSRAPIAudioStream *This,
+        BYTE **ppbData,
+        UINT32 *pcbData,
+        UINT64 *pTimestamp);
+
+    HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
+        IRDPSRAPIAudioStream *This);
+
+    END_INTERFACE
+} IRDPSRAPIAudioStreamVtbl;
+
+interface IRDPSRAPIAudioStream {
+    CONST_VTBL IRDPSRAPIAudioStreamVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIAudioStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIAudioStream_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIAudioStream_Release(This) (This)->lpVtbl->Release(This)
+/*** IRDPSRAPIAudioStream methods ***/
+#define IRDPSRAPIAudioStream_Initialize(This,pnPeriodInHundredNsIntervals) (This)->lpVtbl->Initialize(This,pnPeriodInHundredNsIntervals)
+#define IRDPSRAPIAudioStream_Start(This) (This)->lpVtbl->Start(This)
+#define IRDPSRAPIAudioStream_Stop(This) (This)->lpVtbl->Stop(This)
+#define IRDPSRAPIAudioStream_GetBuffer(This,ppbData,pcbData,pTimestamp) (This)->lpVtbl->GetBuffer(This,ppbData,pcbData,pTimestamp)
+#define IRDPSRAPIAudioStream_FreeBuffer(This) (This)->lpVtbl->FreeBuffer(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAudioStream_QueryInterface(IRDPSRAPIAudioStream* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIAudioStream_AddRef(IRDPSRAPIAudioStream* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIAudioStream_Release(IRDPSRAPIAudioStream* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRDPSRAPIAudioStream methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAudioStream_Initialize(IRDPSRAPIAudioStream* This,INT64 *pnPeriodInHundredNsIntervals) {
+    return This->lpVtbl->Initialize(This,pnPeriodInHundredNsIntervals);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAudioStream_Start(IRDPSRAPIAudioStream* This) {
+    return This->lpVtbl->Start(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAudioStream_Stop(IRDPSRAPIAudioStream* This) {
+    return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAudioStream_GetBuffer(IRDPSRAPIAudioStream* This,BYTE **ppbData,UINT32 *pcbData,UINT64 *pTimestamp) {
+    return This->lpVtbl->GetBuffer(This,ppbData,pcbData,pTimestamp);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAudioStream_FreeBuffer(IRDPSRAPIAudioStream* This) {
+    return This->lpVtbl->FreeBuffer(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIAudioStream_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIClipboardUseEvents interface
+ */
+#ifndef __IRDPSRAPIClipboardUseEvents_INTERFACE_DEFINED__
+#define __IRDPSRAPIClipboardUseEvents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIClipboardUseEvents, 0xd559f59a, 0x7a27, 0x4138, 0x87,0x63, 0x24,0x7c,0xe5,0xf6,0x59,0xa8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d559f59a-7a27-4138-8763-247ce5f659a8")
+IRDPSRAPIClipboardUseEvents : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnPasteFromClipboard(
+        UINT clipboardFormat,
+        IDispatch *pAttendee,
+        VARIANT_BOOL *pRetVal) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIClipboardUseEvents, 0xd559f59a, 0x7a27, 0x4138, 0x87,0x63, 0x24,0x7c,0xe5,0xf6,0x59,0xa8)
+#endif
+#else
+typedef struct IRDPSRAPIClipboardUseEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIClipboardUseEvents *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIClipboardUseEvents *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIClipboardUseEvents *This);
+
+    /*** IRDPSRAPIClipboardUseEvents methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnPasteFromClipboard)(
+        IRDPSRAPIClipboardUseEvents *This,
+        UINT clipboardFormat,
+        IDispatch *pAttendee,
+        VARIANT_BOOL *pRetVal);
+
+    END_INTERFACE
+} IRDPSRAPIClipboardUseEventsVtbl;
+
+interface IRDPSRAPIClipboardUseEvents {
+    CONST_VTBL IRDPSRAPIClipboardUseEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIClipboardUseEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIClipboardUseEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIClipboardUseEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IRDPSRAPIClipboardUseEvents methods ***/
+#define IRDPSRAPIClipboardUseEvents_OnPasteFromClipboard(This,clipboardFormat,pAttendee,pRetVal) (This)->lpVtbl->OnPasteFromClipboard(This,clipboardFormat,pAttendee,pRetVal)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIClipboardUseEvents_QueryInterface(IRDPSRAPIClipboardUseEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIClipboardUseEvents_AddRef(IRDPSRAPIClipboardUseEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIClipboardUseEvents_Release(IRDPSRAPIClipboardUseEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRDPSRAPIClipboardUseEvents methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIClipboardUseEvents_OnPasteFromClipboard(IRDPSRAPIClipboardUseEvents* This,UINT clipboardFormat,IDispatch *pAttendee,VARIANT_BOOL *pRetVal) {
+    return This->lpVtbl->OnPasteFromClipboard(This,clipboardFormat,pAttendee,pRetVal);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIClipboardUseEvents_INTERFACE_DEFINED__ */
+
+#ifndef __IRDPSRAPIApplication_FWD_DEFINED__
+#define __IRDPSRAPIApplication_FWD_DEFINED__
+typedef interface IRDPSRAPIApplication IRDPSRAPIApplication;
+#ifdef __cplusplus
+interface IRDPSRAPIApplication;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * IRDPSRAPIWindow interface
+ */
+#ifndef __IRDPSRAPIWindow_INTERFACE_DEFINED__
+#define __IRDPSRAPIWindow_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIWindow, 0xbeafe0f9, 0xc77b, 0x4933, 0xba,0x9f, 0xa2,0x4c,0xdd,0xcc,0x27,0xcf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("beafe0f9-c77b-4933-ba9f-a24cddcc27cf")
+IRDPSRAPIWindow : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Id(
+        LONG *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Application(
+        IRDPSRAPIApplication **pApplication) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Shared(
+        VARIANT_BOOL *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Shared(
+        VARIANT_BOOL NewVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Show(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Flags(
+        ULONG *pdwFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIWindow, 0xbeafe0f9, 0xc77b, 0x4933, 0xba,0x9f, 0xa2,0x4c,0xdd,0xcc,0x27,0xcf)
+#endif
+#else
+typedef struct IRDPSRAPIWindowVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIWindow *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIWindow *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIWindow *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIWindow *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIWindow *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIWindow *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIWindow *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIWindow methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IRDPSRAPIWindow *This,
+        LONG *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Application)(
+        IRDPSRAPIWindow *This,
+        IRDPSRAPIApplication **pApplication);
+
+    HRESULT (STDMETHODCALLTYPE *get_Shared)(
+        IRDPSRAPIWindow *This,
+        VARIANT_BOOL *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *put_Shared)(
+        IRDPSRAPIWindow *This,
+        VARIANT_BOOL NewVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        IRDPSRAPIWindow *This,
+        BSTR *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *Show)(
+        IRDPSRAPIWindow *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_Flags)(
+        IRDPSRAPIWindow *This,
+        ULONG *pdwFlags);
+
+    END_INTERFACE
+} IRDPSRAPIWindowVtbl;
+
+interface IRDPSRAPIWindow {
+    CONST_VTBL IRDPSRAPIWindowVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIWindow_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIWindow_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIWindow_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIWindow_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIWindow_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIWindow methods ***/
+#define IRDPSRAPIWindow_get_Id(This,pRetVal) (This)->lpVtbl->get_Id(This,pRetVal)
+#define IRDPSRAPIWindow_get_Application(This,pApplication) (This)->lpVtbl->get_Application(This,pApplication)
+#define IRDPSRAPIWindow_get_Shared(This,pRetVal) (This)->lpVtbl->get_Shared(This,pRetVal)
+#define IRDPSRAPIWindow_put_Shared(This,NewVal) (This)->lpVtbl->put_Shared(This,NewVal)
+#define IRDPSRAPIWindow_get_Name(This,pRetVal) (This)->lpVtbl->get_Name(This,pRetVal)
+#define IRDPSRAPIWindow_Show(This) (This)->lpVtbl->Show(This)
+#define IRDPSRAPIWindow_get_Flags(This,pdwFlags) (This)->lpVtbl->get_Flags(This,pdwFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIWindow_QueryInterface(IRDPSRAPIWindow* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIWindow_AddRef(IRDPSRAPIWindow* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIWindow_Release(IRDPSRAPIWindow* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIWindow_GetTypeInfoCount(IRDPSRAPIWindow* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindow_GetTypeInfo(IRDPSRAPIWindow* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindow_GetIDsOfNames(IRDPSRAPIWindow* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindow_Invoke(IRDPSRAPIWindow* 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);
+}
+/*** IRDPSRAPIWindow methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIWindow_get_Id(IRDPSRAPIWindow* This,LONG *pRetVal) {
+    return This->lpVtbl->get_Id(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindow_get_Application(IRDPSRAPIWindow* This,IRDPSRAPIApplication **pApplication) {
+    return This->lpVtbl->get_Application(This,pApplication);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindow_get_Shared(IRDPSRAPIWindow* This,VARIANT_BOOL *pRetVal) {
+    return This->lpVtbl->get_Shared(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindow_put_Shared(IRDPSRAPIWindow* This,VARIANT_BOOL NewVal) {
+    return This->lpVtbl->put_Shared(This,NewVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindow_get_Name(IRDPSRAPIWindow* This,BSTR *pRetVal) {
+    return This->lpVtbl->get_Name(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindow_Show(IRDPSRAPIWindow* This) {
+    return This->lpVtbl->Show(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindow_get_Flags(IRDPSRAPIWindow* This,ULONG *pdwFlags) {
+    return This->lpVtbl->get_Flags(This,pdwFlags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIWindow_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIWindowList interface
+ */
+#ifndef __IRDPSRAPIWindowList_INTERFACE_DEFINED__
+#define __IRDPSRAPIWindowList_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIWindowList, 0x8a05ce44, 0x715a, 0x4116, 0xa1,0x89, 0xa1,0x18,0xf3,0x0a,0x07,0xbd);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8a05ce44-715a-4116-a189-a118f30a07bd")
+IRDPSRAPIWindowList : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG item,
+        IRDPSRAPIWindow **pWindow) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIWindowList, 0x8a05ce44, 0x715a, 0x4116, 0xa1,0x89, 0xa1,0x18,0xf3,0x0a,0x07,0xbd)
+#endif
+#else
+typedef struct IRDPSRAPIWindowListVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIWindowList *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIWindowList *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIWindowList *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIWindowList *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIWindowList *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIWindowList *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIWindowList *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIWindowList methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IRDPSRAPIWindowList *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IRDPSRAPIWindowList *This,
+        LONG item,
+        IRDPSRAPIWindow **pWindow);
+
+    END_INTERFACE
+} IRDPSRAPIWindowListVtbl;
+
+interface IRDPSRAPIWindowList {
+    CONST_VTBL IRDPSRAPIWindowListVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIWindowList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIWindowList_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIWindowList_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIWindowList_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIWindowList_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIWindowList_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIWindowList_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIWindowList methods ***/
+#define IRDPSRAPIWindowList_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define IRDPSRAPIWindowList_get_Item(This,item,pWindow) (This)->lpVtbl->get_Item(This,item,pWindow)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIWindowList_QueryInterface(IRDPSRAPIWindowList* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIWindowList_AddRef(IRDPSRAPIWindowList* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIWindowList_Release(IRDPSRAPIWindowList* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIWindowList_GetTypeInfoCount(IRDPSRAPIWindowList* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindowList_GetTypeInfo(IRDPSRAPIWindowList* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindowList_GetIDsOfNames(IRDPSRAPIWindowList* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindowList_Invoke(IRDPSRAPIWindowList* 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);
+}
+/*** IRDPSRAPIWindowList methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIWindowList_get__NewEnum(IRDPSRAPIWindowList* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT IRDPSRAPIWindowList_get_Item(IRDPSRAPIWindowList* This,LONG item,IRDPSRAPIWindow **pWindow) {
+    return This->lpVtbl->get_Item(This,item,pWindow);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIWindowList_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIApplication interface
+ */
+#ifndef __IRDPSRAPIApplication_INTERFACE_DEFINED__
+#define __IRDPSRAPIApplication_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIApplication, 0x41e7a09d, 0xeb7a, 0x436e, 0x93,0x5d, 0x78,0x0c,0xa2,0x62,0x83,0x24);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("41e7a09d-eb7a-436e-935d-780ca2628324")
+IRDPSRAPIApplication : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Windows(
+        IRDPSRAPIWindowList **pWindowList) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Id(
+        LONG *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Shared(
+        VARIANT_BOOL *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Shared(
+        VARIANT_BOOL NewVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Flags(
+        ULONG *pdwFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIApplication, 0x41e7a09d, 0xeb7a, 0x436e, 0x93,0x5d, 0x78,0x0c,0xa2,0x62,0x83,0x24)
+#endif
+#else
+typedef struct IRDPSRAPIApplicationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIApplication *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIApplication *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIApplication *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIApplication *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIApplication *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIApplication *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIApplication *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIApplication methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Windows)(
+        IRDPSRAPIApplication *This,
+        IRDPSRAPIWindowList **pWindowList);
+
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IRDPSRAPIApplication *This,
+        LONG *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Shared)(
+        IRDPSRAPIApplication *This,
+        VARIANT_BOOL *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *put_Shared)(
+        IRDPSRAPIApplication *This,
+        VARIANT_BOOL NewVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        IRDPSRAPIApplication *This,
+        BSTR *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Flags)(
+        IRDPSRAPIApplication *This,
+        ULONG *pdwFlags);
+
+    END_INTERFACE
+} IRDPSRAPIApplicationVtbl;
+
+interface IRDPSRAPIApplication {
+    CONST_VTBL IRDPSRAPIApplicationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIApplication_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIApplication_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIApplication_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIApplication_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIApplication_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIApplication methods ***/
+#define IRDPSRAPIApplication_get_Windows(This,pWindowList) (This)->lpVtbl->get_Windows(This,pWindowList)
+#define IRDPSRAPIApplication_get_Id(This,pRetVal) (This)->lpVtbl->get_Id(This,pRetVal)
+#define IRDPSRAPIApplication_get_Shared(This,pRetVal) (This)->lpVtbl->get_Shared(This,pRetVal)
+#define IRDPSRAPIApplication_put_Shared(This,NewVal) (This)->lpVtbl->put_Shared(This,NewVal)
+#define IRDPSRAPIApplication_get_Name(This,pRetVal) (This)->lpVtbl->get_Name(This,pRetVal)
+#define IRDPSRAPIApplication_get_Flags(This,pdwFlags) (This)->lpVtbl->get_Flags(This,pdwFlags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIApplication_QueryInterface(IRDPSRAPIApplication* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIApplication_AddRef(IRDPSRAPIApplication* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIApplication_Release(IRDPSRAPIApplication* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIApplication_GetTypeInfoCount(IRDPSRAPIApplication* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplication_GetTypeInfo(IRDPSRAPIApplication* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplication_GetIDsOfNames(IRDPSRAPIApplication* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplication_Invoke(IRDPSRAPIApplication* 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);
+}
+/*** IRDPSRAPIApplication methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIApplication_get_Windows(IRDPSRAPIApplication* This,IRDPSRAPIWindowList **pWindowList) {
+    return This->lpVtbl->get_Windows(This,pWindowList);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplication_get_Id(IRDPSRAPIApplication* This,LONG *pRetVal) {
+    return This->lpVtbl->get_Id(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplication_get_Shared(IRDPSRAPIApplication* This,VARIANT_BOOL *pRetVal) {
+    return This->lpVtbl->get_Shared(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplication_put_Shared(IRDPSRAPIApplication* This,VARIANT_BOOL NewVal) {
+    return This->lpVtbl->put_Shared(This,NewVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplication_get_Name(IRDPSRAPIApplication* This,BSTR *pRetVal) {
+    return This->lpVtbl->get_Name(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplication_get_Flags(IRDPSRAPIApplication* This,ULONG *pdwFlags) {
+    return This->lpVtbl->get_Flags(This,pdwFlags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIApplication_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIApplicationList interface
+ */
+#ifndef __IRDPSRAPIApplicationList_INTERFACE_DEFINED__
+#define __IRDPSRAPIApplicationList_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIApplicationList, 0xd4b4aeb3, 0x22dc, 0x4837, 0xb3,0xb6, 0x42,0xea,0x25,0x17,0x84,0x9a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d4b4aeb3-22dc-4837-b3b6-42ea2517849a")
+IRDPSRAPIApplicationList : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG item,
+        IRDPSRAPIApplication **pApplication) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIApplicationList, 0xd4b4aeb3, 0x22dc, 0x4837, 0xb3,0xb6, 0x42,0xea,0x25,0x17,0x84,0x9a)
+#endif
+#else
+typedef struct IRDPSRAPIApplicationListVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIApplicationList *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIApplicationList *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIApplicationList *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIApplicationList *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIApplicationList *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIApplicationList *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIApplicationList *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIApplicationList methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IRDPSRAPIApplicationList *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IRDPSRAPIApplicationList *This,
+        LONG item,
+        IRDPSRAPIApplication **pApplication);
+
+    END_INTERFACE
+} IRDPSRAPIApplicationListVtbl;
+
+interface IRDPSRAPIApplicationList {
+    CONST_VTBL IRDPSRAPIApplicationListVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIApplicationList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIApplicationList_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIApplicationList_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIApplicationList_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIApplicationList_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIApplicationList_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIApplicationList_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIApplicationList methods ***/
+#define IRDPSRAPIApplicationList_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define IRDPSRAPIApplicationList_get_Item(This,item,pApplication) (This)->lpVtbl->get_Item(This,item,pApplication)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIApplicationList_QueryInterface(IRDPSRAPIApplicationList* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIApplicationList_AddRef(IRDPSRAPIApplicationList* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIApplicationList_Release(IRDPSRAPIApplicationList* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIApplicationList_GetTypeInfoCount(IRDPSRAPIApplicationList* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplicationList_GetTypeInfo(IRDPSRAPIApplicationList* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplicationList_GetIDsOfNames(IRDPSRAPIApplicationList* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplicationList_Invoke(IRDPSRAPIApplicationList* 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);
+}
+/*** IRDPSRAPIApplicationList methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIApplicationList_get__NewEnum(IRDPSRAPIApplicationList* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplicationList_get_Item(IRDPSRAPIApplicationList* This,LONG item,IRDPSRAPIApplication **pApplication) {
+    return This->lpVtbl->get_Item(This,item,pApplication);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIApplicationList_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIApplicationFilter interface
+ */
+#ifndef __IRDPSRAPIApplicationFilter_INTERFACE_DEFINED__
+#define __IRDPSRAPIApplicationFilter_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIApplicationFilter, 0xd20f10ca, 0x6637, 0x4f06, 0xb1,0xd5, 0x27,0x7e,0xa7,0xe5,0x16,0x0d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d20f10ca-6637-4f06-b1d5-277ea7e5160d")
+IRDPSRAPIApplicationFilter : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Applications(
+        IRDPSRAPIApplicationList **pApplications) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Windows(
+        IRDPSRAPIWindowList **pWindows) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Enabled(
+        VARIANT_BOOL *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Enabled(
+        VARIANT_BOOL NewVal) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIApplicationFilter, 0xd20f10ca, 0x6637, 0x4f06, 0xb1,0xd5, 0x27,0x7e,0xa7,0xe5,0x16,0x0d)
+#endif
+#else
+typedef struct IRDPSRAPIApplicationFilterVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIApplicationFilter *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIApplicationFilter *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIApplicationFilter *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIApplicationFilter *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIApplicationFilter *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIApplicationFilter *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIApplicationFilter *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIApplicationFilter methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Applications)(
+        IRDPSRAPIApplicationFilter *This,
+        IRDPSRAPIApplicationList **pApplications);
+
+    HRESULT (STDMETHODCALLTYPE *get_Windows)(
+        IRDPSRAPIApplicationFilter *This,
+        IRDPSRAPIWindowList **pWindows);
+
+    HRESULT (STDMETHODCALLTYPE *get_Enabled)(
+        IRDPSRAPIApplicationFilter *This,
+        VARIANT_BOOL *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *put_Enabled)(
+        IRDPSRAPIApplicationFilter *This,
+        VARIANT_BOOL NewVal);
+
+    END_INTERFACE
+} IRDPSRAPIApplicationFilterVtbl;
+
+interface IRDPSRAPIApplicationFilter {
+    CONST_VTBL IRDPSRAPIApplicationFilterVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIApplicationFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIApplicationFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIApplicationFilter_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIApplicationFilter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIApplicationFilter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIApplicationFilter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIApplicationFilter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIApplicationFilter methods ***/
+#define IRDPSRAPIApplicationFilter_get_Applications(This,pApplications) (This)->lpVtbl->get_Applications(This,pApplications)
+#define IRDPSRAPIApplicationFilter_get_Windows(This,pWindows) (This)->lpVtbl->get_Windows(This,pWindows)
+#define IRDPSRAPIApplicationFilter_get_Enabled(This,pRetVal) (This)->lpVtbl->get_Enabled(This,pRetVal)
+#define IRDPSRAPIApplicationFilter_put_Enabled(This,NewVal) (This)->lpVtbl->put_Enabled(This,NewVal)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIApplicationFilter_QueryInterface(IRDPSRAPIApplicationFilter* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIApplicationFilter_AddRef(IRDPSRAPIApplicationFilter* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIApplicationFilter_Release(IRDPSRAPIApplicationFilter* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIApplicationFilter_GetTypeInfoCount(IRDPSRAPIApplicationFilter* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplicationFilter_GetTypeInfo(IRDPSRAPIApplicationFilter* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplicationFilter_GetIDsOfNames(IRDPSRAPIApplicationFilter* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplicationFilter_Invoke(IRDPSRAPIApplicationFilter* 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);
+}
+/*** IRDPSRAPIApplicationFilter methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIApplicationFilter_get_Applications(IRDPSRAPIApplicationFilter* This,IRDPSRAPIApplicationList **pApplications) {
+    return This->lpVtbl->get_Applications(This,pApplications);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplicationFilter_get_Windows(IRDPSRAPIApplicationFilter* This,IRDPSRAPIWindowList **pWindows) {
+    return This->lpVtbl->get_Windows(This,pWindows);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplicationFilter_get_Enabled(IRDPSRAPIApplicationFilter* This,VARIANT_BOOL *pRetVal) {
+    return This->lpVtbl->get_Enabled(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIApplicationFilter_put_Enabled(IRDPSRAPIApplicationFilter* This,VARIANT_BOOL NewVal) {
+    return This->lpVtbl->put_Enabled(This,NewVal);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIApplicationFilter_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPISessionProperties interface
+ */
+#ifndef __IRDPSRAPISessionProperties_INTERFACE_DEFINED__
+#define __IRDPSRAPISessionProperties_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPISessionProperties, 0x339b24f2, 0x9bc0, 0x4f16, 0x9a,0xac, 0xf1,0x65,0x43,0x3d,0x13,0xd4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("339b24f2-9bc0-4f16-9aac-f165433d13d4")
+IRDPSRAPISessionProperties : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Property(
+        BSTR PropertyName,
+        VARIANT *pVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Property(
+        BSTR PropertyName,
+        VARIANT newVal) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPISessionProperties, 0x339b24f2, 0x9bc0, 0x4f16, 0x9a,0xac, 0xf1,0x65,0x43,0x3d,0x13,0xd4)
+#endif
+#else
+typedef struct IRDPSRAPISessionPropertiesVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPISessionProperties *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPISessionProperties *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPISessionProperties *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPISessionProperties *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPISessionProperties *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPISessionProperties *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPISessionProperties *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPISessionProperties methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Property)(
+        IRDPSRAPISessionProperties *This,
+        BSTR PropertyName,
+        VARIANT *pVal);
+
+    HRESULT (STDMETHODCALLTYPE *put_Property)(
+        IRDPSRAPISessionProperties *This,
+        BSTR PropertyName,
+        VARIANT newVal);
+
+    END_INTERFACE
+} IRDPSRAPISessionPropertiesVtbl;
+
+interface IRDPSRAPISessionProperties {
+    CONST_VTBL IRDPSRAPISessionPropertiesVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPISessionProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPISessionProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPISessionProperties_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPISessionProperties_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPISessionProperties_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPISessionProperties_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPISessionProperties_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPISessionProperties methods ***/
+#define IRDPSRAPISessionProperties_get_Property(This,PropertyName,pVal) (This)->lpVtbl->get_Property(This,PropertyName,pVal)
+#define IRDPSRAPISessionProperties_put_Property(This,PropertyName,newVal) (This)->lpVtbl->put_Property(This,PropertyName,newVal)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPISessionProperties_QueryInterface(IRDPSRAPISessionProperties* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPISessionProperties_AddRef(IRDPSRAPISessionProperties* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPISessionProperties_Release(IRDPSRAPISessionProperties* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPISessionProperties_GetTypeInfoCount(IRDPSRAPISessionProperties* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPISessionProperties_GetTypeInfo(IRDPSRAPISessionProperties* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPISessionProperties_GetIDsOfNames(IRDPSRAPISessionProperties* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPISessionProperties_Invoke(IRDPSRAPISessionProperties* 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);
+}
+/*** IRDPSRAPISessionProperties methods ***/
+static FORCEINLINE HRESULT IRDPSRAPISessionProperties_get_Property(IRDPSRAPISessionProperties* This,BSTR PropertyName,VARIANT *pVal) {
+    return This->lpVtbl->get_Property(This,PropertyName,pVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISessionProperties_put_Property(IRDPSRAPISessionProperties* This,BSTR PropertyName,VARIANT newVal) {
+    return This->lpVtbl->put_Property(This,PropertyName,newVal);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPISessionProperties_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIInvitation interface
+ */
+#ifndef __IRDPSRAPIInvitation_INTERFACE_DEFINED__
+#define __IRDPSRAPIInvitation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIInvitation, 0x4fac1d43, 0xfc51, 0x45bb, 0xb1,0xb4, 0x2b,0x53,0xaa,0x56,0x2f,0xa3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4fac1d43-fc51-45bb-b1b4-2b53aa562fa3")
+IRDPSRAPIInvitation : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_ConnectionString(
+        BSTR *pbstrVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_GroupName(
+        BSTR *pbstrVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Password(
+        BSTR *pbstrVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_AttendeeLimit(
+        LONG *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_AttendeeLimit(
+        LONG NewVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Revoked(
+        VARIANT_BOOL *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Revoked(
+        VARIANT_BOOL NewVal) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIInvitation, 0x4fac1d43, 0xfc51, 0x45bb, 0xb1,0xb4, 0x2b,0x53,0xaa,0x56,0x2f,0xa3)
+#endif
+#else
+typedef struct IRDPSRAPIInvitationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIInvitation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIInvitation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIInvitation *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIInvitation *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIInvitation *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIInvitation *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIInvitation *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIInvitation methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ConnectionString)(
+        IRDPSRAPIInvitation *This,
+        BSTR *pbstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_GroupName)(
+        IRDPSRAPIInvitation *This,
+        BSTR *pbstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Password)(
+        IRDPSRAPIInvitation *This,
+        BSTR *pbstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_AttendeeLimit)(
+        IRDPSRAPIInvitation *This,
+        LONG *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *put_AttendeeLimit)(
+        IRDPSRAPIInvitation *This,
+        LONG NewVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Revoked)(
+        IRDPSRAPIInvitation *This,
+        VARIANT_BOOL *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *put_Revoked)(
+        IRDPSRAPIInvitation *This,
+        VARIANT_BOOL NewVal);
+
+    END_INTERFACE
+} IRDPSRAPIInvitationVtbl;
+
+interface IRDPSRAPIInvitation {
+    CONST_VTBL IRDPSRAPIInvitationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIInvitation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIInvitation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIInvitation_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIInvitation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIInvitation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIInvitation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIInvitation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIInvitation methods ***/
+#define IRDPSRAPIInvitation_get_ConnectionString(This,pbstrVal) (This)->lpVtbl->get_ConnectionString(This,pbstrVal)
+#define IRDPSRAPIInvitation_get_GroupName(This,pbstrVal) (This)->lpVtbl->get_GroupName(This,pbstrVal)
+#define IRDPSRAPIInvitation_get_Password(This,pbstrVal) (This)->lpVtbl->get_Password(This,pbstrVal)
+#define IRDPSRAPIInvitation_get_AttendeeLimit(This,pRetVal) (This)->lpVtbl->get_AttendeeLimit(This,pRetVal)
+#define IRDPSRAPIInvitation_put_AttendeeLimit(This,NewVal) (This)->lpVtbl->put_AttendeeLimit(This,NewVal)
+#define IRDPSRAPIInvitation_get_Revoked(This,pRetVal) (This)->lpVtbl->get_Revoked(This,pRetVal)
+#define IRDPSRAPIInvitation_put_Revoked(This,NewVal) (This)->lpVtbl->put_Revoked(This,NewVal)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_QueryInterface(IRDPSRAPIInvitation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIInvitation_AddRef(IRDPSRAPIInvitation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIInvitation_Release(IRDPSRAPIInvitation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_GetTypeInfoCount(IRDPSRAPIInvitation* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_GetTypeInfo(IRDPSRAPIInvitation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_GetIDsOfNames(IRDPSRAPIInvitation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_Invoke(IRDPSRAPIInvitation* 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);
+}
+/*** IRDPSRAPIInvitation methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_get_ConnectionString(IRDPSRAPIInvitation* This,BSTR *pbstrVal) {
+    return This->lpVtbl->get_ConnectionString(This,pbstrVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_get_GroupName(IRDPSRAPIInvitation* This,BSTR *pbstrVal) {
+    return This->lpVtbl->get_GroupName(This,pbstrVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_get_Password(IRDPSRAPIInvitation* This,BSTR *pbstrVal) {
+    return This->lpVtbl->get_Password(This,pbstrVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_get_AttendeeLimit(IRDPSRAPIInvitation* This,LONG *pRetVal) {
+    return This->lpVtbl->get_AttendeeLimit(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_put_AttendeeLimit(IRDPSRAPIInvitation* This,LONG NewVal) {
+    return This->lpVtbl->put_AttendeeLimit(This,NewVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_get_Revoked(IRDPSRAPIInvitation* This,VARIANT_BOOL *pRetVal) {
+    return This->lpVtbl->get_Revoked(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitation_put_Revoked(IRDPSRAPIInvitation* This,VARIANT_BOOL NewVal) {
+    return This->lpVtbl->put_Revoked(This,NewVal);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIInvitation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIInvitationManager interface
+ */
+#ifndef __IRDPSRAPIInvitationManager_INTERFACE_DEFINED__
+#define __IRDPSRAPIInvitationManager_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIInvitationManager, 0x4722b049, 0x92c3, 0x4c2d, 0x8a,0x65, 0xf7,0x34,0x8f,0x64,0x4d,0xcf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4722b049-92c3-4c2d-8a65-f7348f644dcf")
+IRDPSRAPIInvitationManager : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        VARIANT item,
+        IRDPSRAPIInvitation **ppInvitation) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *pRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateInvitation(
+        BSTR bstrAuthString,
+        BSTR bstrGroupName,
+        BSTR bstrPassword,
+        LONG AttendeeLimit,
+        IRDPSRAPIInvitation **ppInvitation) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIInvitationManager, 0x4722b049, 0x92c3, 0x4c2d, 0x8a,0x65, 0xf7,0x34,0x8f,0x64,0x4d,0xcf)
+#endif
+#else
+typedef struct IRDPSRAPIInvitationManagerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIInvitationManager *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIInvitationManager *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIInvitationManager *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIInvitationManager *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIInvitationManager *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIInvitationManager *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIInvitationManager *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIInvitationManager methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IRDPSRAPIInvitationManager *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IRDPSRAPIInvitationManager *This,
+        VARIANT item,
+        IRDPSRAPIInvitation **ppInvitation);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        IRDPSRAPIInvitationManager *This,
+        LONG *pRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInvitation)(
+        IRDPSRAPIInvitationManager *This,
+        BSTR bstrAuthString,
+        BSTR bstrGroupName,
+        BSTR bstrPassword,
+        LONG AttendeeLimit,
+        IRDPSRAPIInvitation **ppInvitation);
+
+    END_INTERFACE
+} IRDPSRAPIInvitationManagerVtbl;
+
+interface IRDPSRAPIInvitationManager {
+    CONST_VTBL IRDPSRAPIInvitationManagerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIInvitationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIInvitationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIInvitationManager_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIInvitationManager_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIInvitationManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIInvitationManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIInvitationManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIInvitationManager methods ***/
+#define IRDPSRAPIInvitationManager_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define IRDPSRAPIInvitationManager_get_Item(This,item,ppInvitation) (This)->lpVtbl->get_Item(This,item,ppInvitation)
+#define IRDPSRAPIInvitationManager_get_Count(This,pRetVal) (This)->lpVtbl->get_Count(This,pRetVal)
+#define IRDPSRAPIInvitationManager_CreateInvitation(This,bstrAuthString,bstrGroupName,bstrPassword,AttendeeLimit,ppInvitation) (This)->lpVtbl->CreateInvitation(This,bstrAuthString,bstrGroupName,bstrPassword,AttendeeLimit,ppInvitation)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIInvitationManager_QueryInterface(IRDPSRAPIInvitationManager* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIInvitationManager_AddRef(IRDPSRAPIInvitationManager* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIInvitationManager_Release(IRDPSRAPIInvitationManager* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIInvitationManager_GetTypeInfoCount(IRDPSRAPIInvitationManager* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitationManager_GetTypeInfo(IRDPSRAPIInvitationManager* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitationManager_GetIDsOfNames(IRDPSRAPIInvitationManager* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitationManager_Invoke(IRDPSRAPIInvitationManager* 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);
+}
+/*** IRDPSRAPIInvitationManager methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIInvitationManager_get__NewEnum(IRDPSRAPIInvitationManager* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitationManager_get_Item(IRDPSRAPIInvitationManager* This,VARIANT item,IRDPSRAPIInvitation **ppInvitation) {
+    return This->lpVtbl->get_Item(This,item,ppInvitation);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitationManager_get_Count(IRDPSRAPIInvitationManager* This,LONG *pRetVal) {
+    return This->lpVtbl->get_Count(This,pRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIInvitationManager_CreateInvitation(IRDPSRAPIInvitationManager* This,BSTR bstrAuthString,BSTR bstrGroupName,BSTR bstrPassword,LONG AttendeeLimit,IRDPSRAPIInvitation **ppInvitation) {
+    return This->lpVtbl->CreateInvitation(This,bstrAuthString,bstrGroupName,bstrPassword,AttendeeLimit,ppInvitation);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIInvitationManager_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPITcpConnectionInfo interface
+ */
+#ifndef __IRDPSRAPITcpConnectionInfo_INTERFACE_DEFINED__
+#define __IRDPSRAPITcpConnectionInfo_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPITcpConnectionInfo, 0xf74049a4, 0x3d06, 0x4028, 0x81,0x93, 0x0a,0x8c,0x29,0xbc,0x24,0x52);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f74049a4-3d06-4028-8193-0a8c29bc2452")
+IRDPSRAPITcpConnectionInfo : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Protocol(
+        LONG *plProtocol) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_LocalPort(
+        LONG *plPort) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_LocalIP(
+        BSTR *pbsrLocalIP) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_PeerPort(
+        LONG *plPort) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_PeerIP(
+        BSTR *pbstrIP) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPITcpConnectionInfo, 0xf74049a4, 0x3d06, 0x4028, 0x81,0x93, 0x0a,0x8c,0x29,0xbc,0x24,0x52)
+#endif
+#else
+typedef struct IRDPSRAPITcpConnectionInfoVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPITcpConnectionInfo *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPITcpConnectionInfo *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPITcpConnectionInfo *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPITcpConnectionInfo *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPITcpConnectionInfo *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPITcpConnectionInfo *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPITcpConnectionInfo *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPITcpConnectionInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Protocol)(
+        IRDPSRAPITcpConnectionInfo *This,
+        LONG *plProtocol);
+
+    HRESULT (STDMETHODCALLTYPE *get_LocalPort)(
+        IRDPSRAPITcpConnectionInfo *This,
+        LONG *plPort);
+
+    HRESULT (STDMETHODCALLTYPE *get_LocalIP)(
+        IRDPSRAPITcpConnectionInfo *This,
+        BSTR *pbsrLocalIP);
+
+    HRESULT (STDMETHODCALLTYPE *get_PeerPort)(
+        IRDPSRAPITcpConnectionInfo *This,
+        LONG *plPort);
+
+    HRESULT (STDMETHODCALLTYPE *get_PeerIP)(
+        IRDPSRAPITcpConnectionInfo *This,
+        BSTR *pbstrIP);
+
+    END_INTERFACE
+} IRDPSRAPITcpConnectionInfoVtbl;
+
+interface IRDPSRAPITcpConnectionInfo {
+    CONST_VTBL IRDPSRAPITcpConnectionInfoVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPITcpConnectionInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPITcpConnectionInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPITcpConnectionInfo_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPITcpConnectionInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPITcpConnectionInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPITcpConnectionInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPITcpConnectionInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPITcpConnectionInfo methods ***/
+#define IRDPSRAPITcpConnectionInfo_get_Protocol(This,plProtocol) (This)->lpVtbl->get_Protocol(This,plProtocol)
+#define IRDPSRAPITcpConnectionInfo_get_LocalPort(This,plPort) (This)->lpVtbl->get_LocalPort(This,plPort)
+#define IRDPSRAPITcpConnectionInfo_get_LocalIP(This,pbsrLocalIP) (This)->lpVtbl->get_LocalIP(This,pbsrLocalIP)
+#define IRDPSRAPITcpConnectionInfo_get_PeerPort(This,plPort) (This)->lpVtbl->get_PeerPort(This,plPort)
+#define IRDPSRAPITcpConnectionInfo_get_PeerIP(This,pbstrIP) (This)->lpVtbl->get_PeerIP(This,pbstrIP)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPITcpConnectionInfo_QueryInterface(IRDPSRAPITcpConnectionInfo* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPITcpConnectionInfo_AddRef(IRDPSRAPITcpConnectionInfo* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPITcpConnectionInfo_Release(IRDPSRAPITcpConnectionInfo* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPITcpConnectionInfo_GetTypeInfoCount(IRDPSRAPITcpConnectionInfo* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPITcpConnectionInfo_GetTypeInfo(IRDPSRAPITcpConnectionInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPITcpConnectionInfo_GetIDsOfNames(IRDPSRAPITcpConnectionInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPITcpConnectionInfo_Invoke(IRDPSRAPITcpConnectionInfo* 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);
+}
+/*** IRDPSRAPITcpConnectionInfo methods ***/
+static FORCEINLINE HRESULT IRDPSRAPITcpConnectionInfo_get_Protocol(IRDPSRAPITcpConnectionInfo* This,LONG *plProtocol) {
+    return This->lpVtbl->get_Protocol(This,plProtocol);
+}
+static FORCEINLINE HRESULT IRDPSRAPITcpConnectionInfo_get_LocalPort(IRDPSRAPITcpConnectionInfo* This,LONG *plPort) {
+    return This->lpVtbl->get_LocalPort(This,plPort);
+}
+static FORCEINLINE HRESULT IRDPSRAPITcpConnectionInfo_get_LocalIP(IRDPSRAPITcpConnectionInfo* This,BSTR *pbsrLocalIP) {
+    return This->lpVtbl->get_LocalIP(This,pbsrLocalIP);
+}
+static FORCEINLINE HRESULT IRDPSRAPITcpConnectionInfo_get_PeerPort(IRDPSRAPITcpConnectionInfo* This,LONG *plPort) {
+    return This->lpVtbl->get_PeerPort(This,plPort);
+}
+static FORCEINLINE HRESULT IRDPSRAPITcpConnectionInfo_get_PeerIP(IRDPSRAPITcpConnectionInfo* This,BSTR *pbstrIP) {
+    return This->lpVtbl->get_PeerIP(This,pbstrIP);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPITcpConnectionInfo_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIAttendee interface
+ */
+#ifndef __IRDPSRAPIAttendee_INTERFACE_DEFINED__
+#define __IRDPSRAPIAttendee_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIAttendee, 0xec0671b3, 0x1b78, 0x4b80, 0xa4,0x64, 0x91,0x32,0x24,0x75,0x43,0xe3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ec0671b3-1b78-4b80-a464-9132247543e3")
+IRDPSRAPIAttendee : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Id(
+        LONG *pId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RemoteName(
+        BSTR *pVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ControlLevel(
+        CTRL_LEVEL *pVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ControlLevel(
+        CTRL_LEVEL pNewVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Invitation(
+        IRDPSRAPIInvitation **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE TerminateConnection(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Flags(
+        LONG *plFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ConnectivityInfo(
+        IUnknown **ppVal) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIAttendee, 0xec0671b3, 0x1b78, 0x4b80, 0xa4,0x64, 0x91,0x32,0x24,0x75,0x43,0xe3)
+#endif
+#else
+typedef struct IRDPSRAPIAttendeeVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIAttendee *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIAttendee *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIAttendee *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIAttendee *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIAttendee *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIAttendee *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIAttendee *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIAttendee methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IRDPSRAPIAttendee *This,
+        LONG *pId);
+
+    HRESULT (STDMETHODCALLTYPE *get_RemoteName)(
+        IRDPSRAPIAttendee *This,
+        BSTR *pVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_ControlLevel)(
+        IRDPSRAPIAttendee *This,
+        CTRL_LEVEL *pVal);
+
+    HRESULT (STDMETHODCALLTYPE *put_ControlLevel)(
+        IRDPSRAPIAttendee *This,
+        CTRL_LEVEL pNewVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Invitation)(
+        IRDPSRAPIAttendee *This,
+        IRDPSRAPIInvitation **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *TerminateConnection)(
+        IRDPSRAPIAttendee *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_Flags)(
+        IRDPSRAPIAttendee *This,
+        LONG *plFlags);
+
+    HRESULT (STDMETHODCALLTYPE *get_ConnectivityInfo)(
+        IRDPSRAPIAttendee *This,
+        IUnknown **ppVal);
+
+    END_INTERFACE
+} IRDPSRAPIAttendeeVtbl;
+
+interface IRDPSRAPIAttendee {
+    CONST_VTBL IRDPSRAPIAttendeeVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIAttendee_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIAttendee_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIAttendee_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIAttendee_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIAttendee_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIAttendee_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIAttendee_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIAttendee methods ***/
+#define IRDPSRAPIAttendee_get_Id(This,pId) (This)->lpVtbl->get_Id(This,pId)
+#define IRDPSRAPIAttendee_get_RemoteName(This,pVal) (This)->lpVtbl->get_RemoteName(This,pVal)
+#define IRDPSRAPIAttendee_get_ControlLevel(This,pVal) (This)->lpVtbl->get_ControlLevel(This,pVal)
+#define IRDPSRAPIAttendee_put_ControlLevel(This,pNewVal) (This)->lpVtbl->put_ControlLevel(This,pNewVal)
+#define IRDPSRAPIAttendee_get_Invitation(This,ppVal) (This)->lpVtbl->get_Invitation(This,ppVal)
+#define IRDPSRAPIAttendee_TerminateConnection(This) (This)->lpVtbl->TerminateConnection(This)
+#define IRDPSRAPIAttendee_get_Flags(This,plFlags) (This)->lpVtbl->get_Flags(This,plFlags)
+#define IRDPSRAPIAttendee_get_ConnectivityInfo(This,ppVal) (This)->lpVtbl->get_ConnectivityInfo(This,ppVal)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_QueryInterface(IRDPSRAPIAttendee* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIAttendee_AddRef(IRDPSRAPIAttendee* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIAttendee_Release(IRDPSRAPIAttendee* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_GetTypeInfoCount(IRDPSRAPIAttendee* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_GetTypeInfo(IRDPSRAPIAttendee* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_GetIDsOfNames(IRDPSRAPIAttendee* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_Invoke(IRDPSRAPIAttendee* 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);
+}
+/*** IRDPSRAPIAttendee methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_get_Id(IRDPSRAPIAttendee* This,LONG *pId) {
+    return This->lpVtbl->get_Id(This,pId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_get_RemoteName(IRDPSRAPIAttendee* This,BSTR *pVal) {
+    return This->lpVtbl->get_RemoteName(This,pVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_get_ControlLevel(IRDPSRAPIAttendee* This,CTRL_LEVEL *pVal) {
+    return This->lpVtbl->get_ControlLevel(This,pVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_put_ControlLevel(IRDPSRAPIAttendee* This,CTRL_LEVEL pNewVal) {
+    return This->lpVtbl->put_ControlLevel(This,pNewVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_get_Invitation(IRDPSRAPIAttendee* This,IRDPSRAPIInvitation **ppVal) {
+    return This->lpVtbl->get_Invitation(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_TerminateConnection(IRDPSRAPIAttendee* This) {
+    return This->lpVtbl->TerminateConnection(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_get_Flags(IRDPSRAPIAttendee* This,LONG *plFlags) {
+    return This->lpVtbl->get_Flags(This,plFlags);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendee_get_ConnectivityInfo(IRDPSRAPIAttendee* This,IUnknown **ppVal) {
+    return This->lpVtbl->get_ConnectivityInfo(This,ppVal);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIAttendee_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIAttendeeManager interface
+ */
+#ifndef __IRDPSRAPIAttendeeManager_INTERFACE_DEFINED__
+#define __IRDPSRAPIAttendeeManager_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIAttendeeManager, 0xba3a37e8, 0x33da, 0x4749, 0x8d,0xa0, 0x07,0xfa,0x34,0xda,0x79,0x44);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ba3a37e8-33da-4749-8da0-07fa34da7944")
+IRDPSRAPIAttendeeManager : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG id,
+        IRDPSRAPIAttendee **ppItem) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIAttendeeManager, 0xba3a37e8, 0x33da, 0x4749, 0x8d,0xa0, 0x07,0xfa,0x34,0xda,0x79,0x44)
+#endif
+#else
+typedef struct IRDPSRAPIAttendeeManagerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIAttendeeManager *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIAttendeeManager *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIAttendeeManager *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIAttendeeManager *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIAttendeeManager *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIAttendeeManager *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIAttendeeManager *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIAttendeeManager methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IRDPSRAPIAttendeeManager *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IRDPSRAPIAttendeeManager *This,
+        LONG id,
+        IRDPSRAPIAttendee **ppItem);
+
+    END_INTERFACE
+} IRDPSRAPIAttendeeManagerVtbl;
+
+interface IRDPSRAPIAttendeeManager {
+    CONST_VTBL IRDPSRAPIAttendeeManagerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIAttendeeManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIAttendeeManager_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIAttendeeManager_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIAttendeeManager_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIAttendeeManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIAttendeeManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIAttendeeManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIAttendeeManager methods ***/
+#define IRDPSRAPIAttendeeManager_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define IRDPSRAPIAttendeeManager_get_Item(This,id,ppItem) (This)->lpVtbl->get_Item(This,id,ppItem)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeManager_QueryInterface(IRDPSRAPIAttendeeManager* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIAttendeeManager_AddRef(IRDPSRAPIAttendeeManager* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIAttendeeManager_Release(IRDPSRAPIAttendeeManager* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeManager_GetTypeInfoCount(IRDPSRAPIAttendeeManager* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeManager_GetTypeInfo(IRDPSRAPIAttendeeManager* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeManager_GetIDsOfNames(IRDPSRAPIAttendeeManager* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeManager_Invoke(IRDPSRAPIAttendeeManager* 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);
+}
+/*** IRDPSRAPIAttendeeManager methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeManager_get__NewEnum(IRDPSRAPIAttendeeManager* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeManager_get_Item(IRDPSRAPIAttendeeManager* This,LONG id,IRDPSRAPIAttendee **ppItem) {
+    return This->lpVtbl->get_Item(This,id,ppItem);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIAttendeeManager_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIAttendeeDisconnectInfo interface
+ */
+#ifndef __IRDPSRAPIAttendeeDisconnectInfo_INTERFACE_DEFINED__
+#define __IRDPSRAPIAttendeeDisconnectInfo_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIAttendeeDisconnectInfo, 0xc187689f, 0x447c, 0x44a1, 0x9c,0x14, 0xff,0xfb,0xb3,0xb7,0xec,0x17);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c187689f-447c-44a1-9c14-fffbb3b7ec17")
+IRDPSRAPIAttendeeDisconnectInfo : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Attendee(
+        IRDPSRAPIAttendee **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Reason(
+        ATTENDEE_DISCONNECT_REASON *pReason) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Code(
+        LONG *pVal) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIAttendeeDisconnectInfo, 0xc187689f, 0x447c, 0x44a1, 0x9c,0x14, 0xff,0xfb,0xb3,0xb7,0xec,0x17)
+#endif
+#else
+typedef struct IRDPSRAPIAttendeeDisconnectInfoVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIAttendeeDisconnectInfo *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIAttendeeDisconnectInfo *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIAttendeeDisconnectInfo *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIAttendeeDisconnectInfo *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIAttendeeDisconnectInfo *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIAttendeeDisconnectInfo *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIAttendeeDisconnectInfo *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIAttendeeDisconnectInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Attendee)(
+        IRDPSRAPIAttendeeDisconnectInfo *This,
+        IRDPSRAPIAttendee **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Reason)(
+        IRDPSRAPIAttendeeDisconnectInfo *This,
+        ATTENDEE_DISCONNECT_REASON *pReason);
+
+    HRESULT (STDMETHODCALLTYPE *get_Code)(
+        IRDPSRAPIAttendeeDisconnectInfo *This,
+        LONG *pVal);
+
+    END_INTERFACE
+} IRDPSRAPIAttendeeDisconnectInfoVtbl;
+
+interface IRDPSRAPIAttendeeDisconnectInfo {
+    CONST_VTBL IRDPSRAPIAttendeeDisconnectInfoVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIAttendeeDisconnectInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIAttendeeDisconnectInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIAttendeeDisconnectInfo_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIAttendeeDisconnectInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIAttendeeDisconnectInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIAttendeeDisconnectInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIAttendeeDisconnectInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIAttendeeDisconnectInfo methods ***/
+#define IRDPSRAPIAttendeeDisconnectInfo_get_Attendee(This,retval) (This)->lpVtbl->get_Attendee(This,retval)
+#define IRDPSRAPIAttendeeDisconnectInfo_get_Reason(This,pReason) (This)->lpVtbl->get_Reason(This,pReason)
+#define IRDPSRAPIAttendeeDisconnectInfo_get_Code(This,pVal) (This)->lpVtbl->get_Code(This,pVal)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeDisconnectInfo_QueryInterface(IRDPSRAPIAttendeeDisconnectInfo* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIAttendeeDisconnectInfo_AddRef(IRDPSRAPIAttendeeDisconnectInfo* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIAttendeeDisconnectInfo_Release(IRDPSRAPIAttendeeDisconnectInfo* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeDisconnectInfo_GetTypeInfoCount(IRDPSRAPIAttendeeDisconnectInfo* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeDisconnectInfo_GetTypeInfo(IRDPSRAPIAttendeeDisconnectInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeDisconnectInfo_GetIDsOfNames(IRDPSRAPIAttendeeDisconnectInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeDisconnectInfo_Invoke(IRDPSRAPIAttendeeDisconnectInfo* 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);
+}
+/*** IRDPSRAPIAttendeeDisconnectInfo methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeDisconnectInfo_get_Attendee(IRDPSRAPIAttendeeDisconnectInfo* This,IRDPSRAPIAttendee **retval) {
+    return This->lpVtbl->get_Attendee(This,retval);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeDisconnectInfo_get_Reason(IRDPSRAPIAttendeeDisconnectInfo* This,ATTENDEE_DISCONNECT_REASON *pReason) {
+    return This->lpVtbl->get_Reason(This,pReason);
+}
+static FORCEINLINE HRESULT IRDPSRAPIAttendeeDisconnectInfo_get_Code(IRDPSRAPIAttendeeDisconnectInfo* This,LONG *pVal) {
+    return This->lpVtbl->get_Code(This,pVal);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIAttendeeDisconnectInfo_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIVirtualChannel interface
+ */
+#ifndef __IRDPSRAPIVirtualChannel_INTERFACE_DEFINED__
+#define __IRDPSRAPIVirtualChannel_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIVirtualChannel, 0x05e12f95, 0x28b3, 0x4c9a, 0x87,0x80, 0xd0,0x24,0x85,0x74,0xa1,0xe0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("05e12f95-28b3-4c9a-8780-d0248574a1e0")
+IRDPSRAPIVirtualChannel : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE SendData(
+        BSTR bstrData,
+        LONG lAttendeeId,
+        ULONG ChannelSendFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetAccess(
+        LONG lAttendeeId,
+        CHANNEL_ACCESS_ENUM AccessType) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *pbstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Flags(
+        LONG *plFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Priority(
+        CHANNEL_PRIORITY *pPriority) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIVirtualChannel, 0x05e12f95, 0x28b3, 0x4c9a, 0x87,0x80, 0xd0,0x24,0x85,0x74,0xa1,0xe0)
+#endif
+#else
+typedef struct IRDPSRAPIVirtualChannelVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIVirtualChannel *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIVirtualChannel *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIVirtualChannel *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIVirtualChannel *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIVirtualChannel *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIVirtualChannel *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIVirtualChannel *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIVirtualChannel methods ***/
+    HRESULT (STDMETHODCALLTYPE *SendData)(
+        IRDPSRAPIVirtualChannel *This,
+        BSTR bstrData,
+        LONG lAttendeeId,
+        ULONG ChannelSendFlags);
+
+    HRESULT (STDMETHODCALLTYPE *SetAccess)(
+        IRDPSRAPIVirtualChannel *This,
+        LONG lAttendeeId,
+        CHANNEL_ACCESS_ENUM AccessType);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        IRDPSRAPIVirtualChannel *This,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *get_Flags)(
+        IRDPSRAPIVirtualChannel *This,
+        LONG *plFlags);
+
+    HRESULT (STDMETHODCALLTYPE *get_Priority)(
+        IRDPSRAPIVirtualChannel *This,
+        CHANNEL_PRIORITY *pPriority);
+
+    END_INTERFACE
+} IRDPSRAPIVirtualChannelVtbl;
+
+interface IRDPSRAPIVirtualChannel {
+    CONST_VTBL IRDPSRAPIVirtualChannelVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIVirtualChannel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIVirtualChannel_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIVirtualChannel_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIVirtualChannel_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIVirtualChannel_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIVirtualChannel_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIVirtualChannel_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIVirtualChannel methods ***/
+#define IRDPSRAPIVirtualChannel_SendData(This,bstrData,lAttendeeId,ChannelSendFlags) (This)->lpVtbl->SendData(This,bstrData,lAttendeeId,ChannelSendFlags)
+#define IRDPSRAPIVirtualChannel_SetAccess(This,lAttendeeId,AccessType) (This)->lpVtbl->SetAccess(This,lAttendeeId,AccessType)
+#define IRDPSRAPIVirtualChannel_get_Name(This,pbstrName) (This)->lpVtbl->get_Name(This,pbstrName)
+#define IRDPSRAPIVirtualChannel_get_Flags(This,plFlags) (This)->lpVtbl->get_Flags(This,plFlags)
+#define IRDPSRAPIVirtualChannel_get_Priority(This,pPriority) (This)->lpVtbl->get_Priority(This,pPriority)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannel_QueryInterface(IRDPSRAPIVirtualChannel* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIVirtualChannel_AddRef(IRDPSRAPIVirtualChannel* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIVirtualChannel_Release(IRDPSRAPIVirtualChannel* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannel_GetTypeInfoCount(IRDPSRAPIVirtualChannel* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannel_GetTypeInfo(IRDPSRAPIVirtualChannel* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannel_GetIDsOfNames(IRDPSRAPIVirtualChannel* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannel_Invoke(IRDPSRAPIVirtualChannel* 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);
+}
+/*** IRDPSRAPIVirtualChannel methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannel_SendData(IRDPSRAPIVirtualChannel* This,BSTR bstrData,LONG lAttendeeId,ULONG ChannelSendFlags) {
+    return This->lpVtbl->SendData(This,bstrData,lAttendeeId,ChannelSendFlags);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannel_SetAccess(IRDPSRAPIVirtualChannel* This,LONG lAttendeeId,CHANNEL_ACCESS_ENUM AccessType) {
+    return This->lpVtbl->SetAccess(This,lAttendeeId,AccessType);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannel_get_Name(IRDPSRAPIVirtualChannel* This,BSTR *pbstrName) {
+    return This->lpVtbl->get_Name(This,pbstrName);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannel_get_Flags(IRDPSRAPIVirtualChannel* This,LONG *plFlags) {
+    return This->lpVtbl->get_Flags(This,plFlags);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannel_get_Priority(IRDPSRAPIVirtualChannel* This,CHANNEL_PRIORITY *pPriority) {
+    return This->lpVtbl->get_Priority(This,pPriority);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIVirtualChannel_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIVirtualChannelManager interface
+ */
+#ifndef __IRDPSRAPIVirtualChannelManager_INTERFACE_DEFINED__
+#define __IRDPSRAPIVirtualChannelManager_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIVirtualChannelManager, 0x0d11c661, 0x5d0d, 0x4ee4, 0x89,0xdf, 0x21,0x66,0xae,0x1f,0xdf,0xed);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0d11c661-5d0d-4ee4-89df-2166ae1fdfed")
+IRDPSRAPIVirtualChannelManager : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        VARIANT item,
+        IRDPSRAPIVirtualChannel **pChannel) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateVirtualChannel(
+        BSTR bstrChannelName,
+        CHANNEL_PRIORITY Priority,
+        ULONG ChannelFlags,
+        IRDPSRAPIVirtualChannel **ppChannel) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIVirtualChannelManager, 0x0d11c661, 0x5d0d, 0x4ee4, 0x89,0xdf, 0x21,0x66,0xae,0x1f,0xdf,0xed)
+#endif
+#else
+typedef struct IRDPSRAPIVirtualChannelManagerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIVirtualChannelManager *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIVirtualChannelManager *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIVirtualChannelManager *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIVirtualChannelManager *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIVirtualChannelManager *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIVirtualChannelManager *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIVirtualChannelManager *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIVirtualChannelManager methods ***/
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IRDPSRAPIVirtualChannelManager *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IRDPSRAPIVirtualChannelManager *This,
+        VARIANT item,
+        IRDPSRAPIVirtualChannel **pChannel);
+
+    HRESULT (STDMETHODCALLTYPE *CreateVirtualChannel)(
+        IRDPSRAPIVirtualChannelManager *This,
+        BSTR bstrChannelName,
+        CHANNEL_PRIORITY Priority,
+        ULONG ChannelFlags,
+        IRDPSRAPIVirtualChannel **ppChannel);
+
+    END_INTERFACE
+} IRDPSRAPIVirtualChannelManagerVtbl;
+
+interface IRDPSRAPIVirtualChannelManager {
+    CONST_VTBL IRDPSRAPIVirtualChannelManagerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIVirtualChannelManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIVirtualChannelManager_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIVirtualChannelManager_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIVirtualChannelManager_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIVirtualChannelManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIVirtualChannelManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIVirtualChannelManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIVirtualChannelManager methods ***/
+#define IRDPSRAPIVirtualChannelManager_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define IRDPSRAPIVirtualChannelManager_get_Item(This,item,pChannel) (This)->lpVtbl->get_Item(This,item,pChannel)
+#define IRDPSRAPIVirtualChannelManager_CreateVirtualChannel(This,bstrChannelName,Priority,ChannelFlags,ppChannel) (This)->lpVtbl->CreateVirtualChannel(This,bstrChannelName,Priority,ChannelFlags,ppChannel)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannelManager_QueryInterface(IRDPSRAPIVirtualChannelManager* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIVirtualChannelManager_AddRef(IRDPSRAPIVirtualChannelManager* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIVirtualChannelManager_Release(IRDPSRAPIVirtualChannelManager* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannelManager_GetTypeInfoCount(IRDPSRAPIVirtualChannelManager* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannelManager_GetTypeInfo(IRDPSRAPIVirtualChannelManager* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannelManager_GetIDsOfNames(IRDPSRAPIVirtualChannelManager* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannelManager_Invoke(IRDPSRAPIVirtualChannelManager* 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);
+}
+/*** IRDPSRAPIVirtualChannelManager methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannelManager_get__NewEnum(IRDPSRAPIVirtualChannelManager* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannelManager_get_Item(IRDPSRAPIVirtualChannelManager* This,VARIANT item,IRDPSRAPIVirtualChannel **pChannel) {
+    return This->lpVtbl->get_Item(This,item,pChannel);
+}
+static FORCEINLINE HRESULT IRDPSRAPIVirtualChannelManager_CreateVirtualChannel(IRDPSRAPIVirtualChannelManager* This,BSTR bstrChannelName,CHANNEL_PRIORITY Priority,ULONG ChannelFlags,IRDPSRAPIVirtualChannel **ppChannel) {
+    return This->lpVtbl->CreateVirtualChannel(This,bstrChannelName,Priority,ChannelFlags,ppChannel);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIVirtualChannelManager_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIViewer interface
+ */
+#ifndef __IRDPSRAPIViewer_INTERFACE_DEFINED__
+#define __IRDPSRAPIViewer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIViewer, 0xc6bfcd38, 0x8ce9, 0x404d, 0x8a,0xe8, 0xf3,0x1d,0x00,0xc6,0x5c,0xb5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c6bfcd38-8ce9-404d-8ae8-f31d00c65cb5")
+IRDPSRAPIViewer : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE Connect(
+        BSTR bstrConnectionString,
+        BSTR bstrName,
+        BSTR bstrPassword) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Disconnect(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Attendees(
+        IRDPSRAPIAttendeeManager **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Invitations(
+        IRDPSRAPIInvitationManager **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ApplicationFilter(
+        IRDPSRAPIApplicationFilter **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_VirtualChannelManager(
+        IRDPSRAPIVirtualChannelManager **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_SmartSizing(
+        VARIANT_BOOL vbSmartSizing) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SmartSizing(
+        VARIANT_BOOL *pvbSmartSizing) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RequestControl(
+        CTRL_LEVEL CtrlLevel) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_DisconnectedText(
+        BSTR bstrDisconnectedText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_DisconnectedText(
+        BSTR *pbstrDisconnectedText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RequestColorDepthChange(
+        LONG Bpp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Properties(
+        IRDPSRAPISessionProperties **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE StartReverseConnectListener(
+        BSTR bstrConnectionString,
+        BSTR bstrUserName,
+        BSTR bstrPassword,
+        BSTR *pbstrReverseConnectString) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIViewer, 0xc6bfcd38, 0x8ce9, 0x404d, 0x8a,0xe8, 0xf3,0x1d,0x00,0xc6,0x5c,0xb5)
+#endif
+#else
+typedef struct IRDPSRAPIViewerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIViewer *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIViewer *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIViewer *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIViewer *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIViewer *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIViewer *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIViewer *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIViewer methods ***/
+    HRESULT (STDMETHODCALLTYPE *Connect)(
+        IRDPSRAPIViewer *This,
+        BSTR bstrConnectionString,
+        BSTR bstrName,
+        BSTR bstrPassword);
+
+    HRESULT (STDMETHODCALLTYPE *Disconnect)(
+        IRDPSRAPIViewer *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_Attendees)(
+        IRDPSRAPIViewer *This,
+        IRDPSRAPIAttendeeManager **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Invitations)(
+        IRDPSRAPIViewer *This,
+        IRDPSRAPIInvitationManager **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_ApplicationFilter)(
+        IRDPSRAPIViewer *This,
+        IRDPSRAPIApplicationFilter **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_VirtualChannelManager)(
+        IRDPSRAPIViewer *This,
+        IRDPSRAPIVirtualChannelManager **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *put_SmartSizing)(
+        IRDPSRAPIViewer *This,
+        VARIANT_BOOL vbSmartSizing);
+
+    HRESULT (STDMETHODCALLTYPE *get_SmartSizing)(
+        IRDPSRAPIViewer *This,
+        VARIANT_BOOL *pvbSmartSizing);
+
+    HRESULT (STDMETHODCALLTYPE *RequestControl)(
+        IRDPSRAPIViewer *This,
+        CTRL_LEVEL CtrlLevel);
+
+    HRESULT (STDMETHODCALLTYPE *put_DisconnectedText)(
+        IRDPSRAPIViewer *This,
+        BSTR bstrDisconnectedText);
+
+    HRESULT (STDMETHODCALLTYPE *get_DisconnectedText)(
+        IRDPSRAPIViewer *This,
+        BSTR *pbstrDisconnectedText);
+
+    HRESULT (STDMETHODCALLTYPE *RequestColorDepthChange)(
+        IRDPSRAPIViewer *This,
+        LONG Bpp);
+
+    HRESULT (STDMETHODCALLTYPE *get_Properties)(
+        IRDPSRAPIViewer *This,
+        IRDPSRAPISessionProperties **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *StartReverseConnectListener)(
+        IRDPSRAPIViewer *This,
+        BSTR bstrConnectionString,
+        BSTR bstrUserName,
+        BSTR bstrPassword,
+        BSTR *pbstrReverseConnectString);
+
+    END_INTERFACE
+} IRDPSRAPIViewerVtbl;
+
+interface IRDPSRAPIViewer {
+    CONST_VTBL IRDPSRAPIViewerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIViewer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIViewer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIViewer_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIViewer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIViewer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIViewer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIViewer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIViewer methods ***/
+#define IRDPSRAPIViewer_Connect(This,bstrConnectionString,bstrName,bstrPassword) (This)->lpVtbl->Connect(This,bstrConnectionString,bstrName,bstrPassword)
+#define IRDPSRAPIViewer_Disconnect(This) (This)->lpVtbl->Disconnect(This)
+#define IRDPSRAPIViewer_get_Attendees(This,ppVal) (This)->lpVtbl->get_Attendees(This,ppVal)
+#define IRDPSRAPIViewer_get_Invitations(This,ppVal) (This)->lpVtbl->get_Invitations(This,ppVal)
+#define IRDPSRAPIViewer_get_ApplicationFilter(This,ppVal) (This)->lpVtbl->get_ApplicationFilter(This,ppVal)
+#define IRDPSRAPIViewer_get_VirtualChannelManager(This,ppVal) (This)->lpVtbl->get_VirtualChannelManager(This,ppVal)
+#define IRDPSRAPIViewer_put_SmartSizing(This,vbSmartSizing) (This)->lpVtbl->put_SmartSizing(This,vbSmartSizing)
+#define IRDPSRAPIViewer_get_SmartSizing(This,pvbSmartSizing) (This)->lpVtbl->get_SmartSizing(This,pvbSmartSizing)
+#define IRDPSRAPIViewer_RequestControl(This,CtrlLevel) (This)->lpVtbl->RequestControl(This,CtrlLevel)
+#define IRDPSRAPIViewer_put_DisconnectedText(This,bstrDisconnectedText) (This)->lpVtbl->put_DisconnectedText(This,bstrDisconnectedText)
+#define IRDPSRAPIViewer_get_DisconnectedText(This,pbstrDisconnectedText) (This)->lpVtbl->get_DisconnectedText(This,pbstrDisconnectedText)
+#define IRDPSRAPIViewer_RequestColorDepthChange(This,Bpp) (This)->lpVtbl->RequestColorDepthChange(This,Bpp)
+#define IRDPSRAPIViewer_get_Properties(This,ppVal) (This)->lpVtbl->get_Properties(This,ppVal)
+#define IRDPSRAPIViewer_StartReverseConnectListener(This,bstrConnectionString,bstrUserName,bstrPassword,pbstrReverseConnectString) (This)->lpVtbl->StartReverseConnectListener(This,bstrConnectionString,bstrUserName,bstrPassword,pbstrReverseConnectString)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIViewer_QueryInterface(IRDPSRAPIViewer* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIViewer_AddRef(IRDPSRAPIViewer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIViewer_Release(IRDPSRAPIViewer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIViewer_GetTypeInfoCount(IRDPSRAPIViewer* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_GetTypeInfo(IRDPSRAPIViewer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_GetIDsOfNames(IRDPSRAPIViewer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_Invoke(IRDPSRAPIViewer* 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);
+}
+/*** IRDPSRAPIViewer methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIViewer_Connect(IRDPSRAPIViewer* This,BSTR bstrConnectionString,BSTR bstrName,BSTR bstrPassword) {
+    return This->lpVtbl->Connect(This,bstrConnectionString,bstrName,bstrPassword);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_Disconnect(IRDPSRAPIViewer* This) {
+    return This->lpVtbl->Disconnect(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_get_Attendees(IRDPSRAPIViewer* This,IRDPSRAPIAttendeeManager **ppVal) {
+    return This->lpVtbl->get_Attendees(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_get_Invitations(IRDPSRAPIViewer* This,IRDPSRAPIInvitationManager **ppVal) {
+    return This->lpVtbl->get_Invitations(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_get_ApplicationFilter(IRDPSRAPIViewer* This,IRDPSRAPIApplicationFilter **ppVal) {
+    return This->lpVtbl->get_ApplicationFilter(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_get_VirtualChannelManager(IRDPSRAPIViewer* This,IRDPSRAPIVirtualChannelManager **ppVal) {
+    return This->lpVtbl->get_VirtualChannelManager(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_put_SmartSizing(IRDPSRAPIViewer* This,VARIANT_BOOL vbSmartSizing) {
+    return This->lpVtbl->put_SmartSizing(This,vbSmartSizing);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_get_SmartSizing(IRDPSRAPIViewer* This,VARIANT_BOOL *pvbSmartSizing) {
+    return This->lpVtbl->get_SmartSizing(This,pvbSmartSizing);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_RequestControl(IRDPSRAPIViewer* This,CTRL_LEVEL CtrlLevel) {
+    return This->lpVtbl->RequestControl(This,CtrlLevel);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_put_DisconnectedText(IRDPSRAPIViewer* This,BSTR bstrDisconnectedText) {
+    return This->lpVtbl->put_DisconnectedText(This,bstrDisconnectedText);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_get_DisconnectedText(IRDPSRAPIViewer* This,BSTR *pbstrDisconnectedText) {
+    return This->lpVtbl->get_DisconnectedText(This,pbstrDisconnectedText);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_RequestColorDepthChange(IRDPSRAPIViewer* This,LONG Bpp) {
+    return This->lpVtbl->RequestColorDepthChange(This,Bpp);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_get_Properties(IRDPSRAPIViewer* This,IRDPSRAPISessionProperties **ppVal) {
+    return This->lpVtbl->get_Properties(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPIViewer_StartReverseConnectListener(IRDPSRAPIViewer* This,BSTR bstrConnectionString,BSTR bstrUserName,BSTR bstrPassword,BSTR *pbstrReverseConnectString) {
+    return This->lpVtbl->StartReverseConnectListener(This,bstrConnectionString,bstrUserName,bstrPassword,pbstrReverseConnectString);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIViewer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPViewerRenderingSurface interface
+ */
+#ifndef __IRDPViewerRenderingSurface_INTERFACE_DEFINED__
+#define __IRDPViewerRenderingSurface_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPViewerRenderingSurface, 0x56bfce32, 0x83e9, 0x414d, 0x82,0xe8, 0xf3,0x1d,0x01,0xc6,0x2c,0xb5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("56bfce32-83e9-414d-82e8-f31d01c62cb5")
+IRDPViewerRenderingSurface : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetRenderingSurface(
+        IUnknown *pRenderingSurface,
+        LONG surfaceWidth,
+        LONG surfaceHeight) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPViewerRenderingSurface, 0x56bfce32, 0x83e9, 0x414d, 0x82,0xe8, 0xf3,0x1d,0x01,0xc6,0x2c,0xb5)
+#endif
+#else
+typedef struct IRDPViewerRenderingSurfaceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPViewerRenderingSurface *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPViewerRenderingSurface *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPViewerRenderingSurface *This);
+
+    /*** IRDPViewerRenderingSurface methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetRenderingSurface)(
+        IRDPViewerRenderingSurface *This,
+        IUnknown *pRenderingSurface,
+        LONG surfaceWidth,
+        LONG surfaceHeight);
+
+    END_INTERFACE
+} IRDPViewerRenderingSurfaceVtbl;
+
+interface IRDPViewerRenderingSurface {
+    CONST_VTBL IRDPViewerRenderingSurfaceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPViewerRenderingSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPViewerRenderingSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPViewerRenderingSurface_Release(This) (This)->lpVtbl->Release(This)
+/*** IRDPViewerRenderingSurface methods ***/
+#define IRDPViewerRenderingSurface_SetRenderingSurface(This,pRenderingSurface,surfaceWidth,surfaceHeight) (This)->lpVtbl->SetRenderingSurface(This,pRenderingSurface,surfaceWidth,surfaceHeight)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPViewerRenderingSurface_QueryInterface(IRDPViewerRenderingSurface* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPViewerRenderingSurface_AddRef(IRDPViewerRenderingSurface* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPViewerRenderingSurface_Release(IRDPViewerRenderingSurface* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRDPViewerRenderingSurface methods ***/
+static FORCEINLINE HRESULT IRDPViewerRenderingSurface_SetRenderingSurface(IRDPViewerRenderingSurface* This,IUnknown *pRenderingSurface,LONG surfaceWidth,LONG surfaceHeight) {
+    return This->lpVtbl->SetRenderingSurface(This,pRenderingSurface,surfaceWidth,surfaceHeight);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPViewerRenderingSurface_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPViewerInputSink interface
+ */
+#ifndef __IRDPViewerInputSink_INTERFACE_DEFINED__
+#define __IRDPViewerInputSink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPViewerInputSink, 0xbb590853, 0xa6c5, 0x4a7b, 0x8d,0xd4, 0x76,0xb6,0x9e,0xea,0x12,0xd5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bb590853-a6c5-4a7b-8dd4-76b69eea12d5")
+IRDPViewerInputSink : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SendMouseButtonEvent(
+        RDPSRAPI_MOUSE_BUTTON_TYPE buttonType,
+        VARIANT_BOOL vbButtonDown,
+        ULONG xPos,
+        ULONG yPos) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SendMouseMoveEvent(
+        ULONG xPos,
+        ULONG yPos) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SendMouseWheelEvent(
+        UINT16 wheelRotation) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SendKeyboardEvent(
+        RDPSRAPI_KBD_CODE_TYPE codeType,
+        UINT16 keycode,
+        VARIANT_BOOL vbKeyUp,
+        VARIANT_BOOL vbRepeat,
+        VARIANT_BOOL vbExtended) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SendSyncEvent(
+        ULONG syncFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginTouchFrame(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddTouchInput(
+        UINT32 contactId,
+        UINT32 evnt,
+        INT32 x,
+        INT32 y) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndTouchFrame(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPViewerInputSink, 0xbb590853, 0xa6c5, 0x4a7b, 0x8d,0xd4, 0x76,0xb6,0x9e,0xea,0x12,0xd5)
+#endif
+#else
+typedef struct IRDPViewerInputSinkVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPViewerInputSink *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPViewerInputSink *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPViewerInputSink *This);
+
+    /*** IRDPViewerInputSink methods ***/
+    HRESULT (STDMETHODCALLTYPE *SendMouseButtonEvent)(
+        IRDPViewerInputSink *This,
+        RDPSRAPI_MOUSE_BUTTON_TYPE buttonType,
+        VARIANT_BOOL vbButtonDown,
+        ULONG xPos,
+        ULONG yPos);
+
+    HRESULT (STDMETHODCALLTYPE *SendMouseMoveEvent)(
+        IRDPViewerInputSink *This,
+        ULONG xPos,
+        ULONG yPos);
+
+    HRESULT (STDMETHODCALLTYPE *SendMouseWheelEvent)(
+        IRDPViewerInputSink *This,
+        UINT16 wheelRotation);
+
+    HRESULT (STDMETHODCALLTYPE *SendKeyboardEvent)(
+        IRDPViewerInputSink *This,
+        RDPSRAPI_KBD_CODE_TYPE codeType,
+        UINT16 keycode,
+        VARIANT_BOOL vbKeyUp,
+        VARIANT_BOOL vbRepeat,
+        VARIANT_BOOL vbExtended);
+
+    HRESULT (STDMETHODCALLTYPE *SendSyncEvent)(
+        IRDPViewerInputSink *This,
+        ULONG syncFlags);
+
+    HRESULT (STDMETHODCALLTYPE *BeginTouchFrame)(
+        IRDPViewerInputSink *This);
+
+    HRESULT (STDMETHODCALLTYPE *AddTouchInput)(
+        IRDPViewerInputSink *This,
+        UINT32 contactId,
+        UINT32 evnt,
+        INT32 x,
+        INT32 y);
+
+    HRESULT (STDMETHODCALLTYPE *EndTouchFrame)(
+        IRDPViewerInputSink *This);
+
+    END_INTERFACE
+} IRDPViewerInputSinkVtbl;
+
+interface IRDPViewerInputSink {
+    CONST_VTBL IRDPViewerInputSinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPViewerInputSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPViewerInputSink_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPViewerInputSink_Release(This) (This)->lpVtbl->Release(This)
+/*** IRDPViewerInputSink methods ***/
+#define IRDPViewerInputSink_SendMouseButtonEvent(This,buttonType,vbButtonDown,xPos,yPos) (This)->lpVtbl->SendMouseButtonEvent(This,buttonType,vbButtonDown,xPos,yPos)
+#define IRDPViewerInputSink_SendMouseMoveEvent(This,xPos,yPos) (This)->lpVtbl->SendMouseMoveEvent(This,xPos,yPos)
+#define IRDPViewerInputSink_SendMouseWheelEvent(This,wheelRotation) (This)->lpVtbl->SendMouseWheelEvent(This,wheelRotation)
+#define IRDPViewerInputSink_SendKeyboardEvent(This,codeType,keycode,vbKeyUp,vbRepeat,vbExtended) (This)->lpVtbl->SendKeyboardEvent(This,codeType,keycode,vbKeyUp,vbRepeat,vbExtended)
+#define IRDPViewerInputSink_SendSyncEvent(This,syncFlags) (This)->lpVtbl->SendSyncEvent(This,syncFlags)
+#define IRDPViewerInputSink_BeginTouchFrame(This) (This)->lpVtbl->BeginTouchFrame(This)
+#define IRDPViewerInputSink_AddTouchInput(This,contactId,evnt,x,y) (This)->lpVtbl->AddTouchInput(This,contactId,evnt,x,y)
+#define IRDPViewerInputSink_EndTouchFrame(This) (This)->lpVtbl->EndTouchFrame(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPViewerInputSink_QueryInterface(IRDPViewerInputSink* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPViewerInputSink_AddRef(IRDPViewerInputSink* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPViewerInputSink_Release(IRDPViewerInputSink* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRDPViewerInputSink methods ***/
+static FORCEINLINE HRESULT IRDPViewerInputSink_SendMouseButtonEvent(IRDPViewerInputSink* This,RDPSRAPI_MOUSE_BUTTON_TYPE buttonType,VARIANT_BOOL vbButtonDown,ULONG xPos,ULONG yPos) {
+    return This->lpVtbl->SendMouseButtonEvent(This,buttonType,vbButtonDown,xPos,yPos);
+}
+static FORCEINLINE HRESULT IRDPViewerInputSink_SendMouseMoveEvent(IRDPViewerInputSink* This,ULONG xPos,ULONG yPos) {
+    return This->lpVtbl->SendMouseMoveEvent(This,xPos,yPos);
+}
+static FORCEINLINE HRESULT IRDPViewerInputSink_SendMouseWheelEvent(IRDPViewerInputSink* This,UINT16 wheelRotation) {
+    return This->lpVtbl->SendMouseWheelEvent(This,wheelRotation);
+}
+static FORCEINLINE HRESULT IRDPViewerInputSink_SendKeyboardEvent(IRDPViewerInputSink* This,RDPSRAPI_KBD_CODE_TYPE codeType,UINT16 keycode,VARIANT_BOOL vbKeyUp,VARIANT_BOOL vbRepeat,VARIANT_BOOL vbExtended) {
+    return This->lpVtbl->SendKeyboardEvent(This,codeType,keycode,vbKeyUp,vbRepeat,vbExtended);
+}
+static FORCEINLINE HRESULT IRDPViewerInputSink_SendSyncEvent(IRDPViewerInputSink* This,ULONG syncFlags) {
+    return This->lpVtbl->SendSyncEvent(This,syncFlags);
+}
+static FORCEINLINE HRESULT IRDPViewerInputSink_BeginTouchFrame(IRDPViewerInputSink* This) {
+    return This->lpVtbl->BeginTouchFrame(This);
+}
+static FORCEINLINE HRESULT IRDPViewerInputSink_AddTouchInput(IRDPViewerInputSink* This,UINT32 contactId,UINT32 evnt,INT32 x,INT32 y) {
+    return This->lpVtbl->AddTouchInput(This,contactId,evnt,x,y);
+}
+static FORCEINLINE HRESULT IRDPViewerInputSink_EndTouchFrame(IRDPViewerInputSink* This) {
+    return This->lpVtbl->EndTouchFrame(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPViewerInputSink_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPIFrameBuffer interface
+ */
+#ifndef __IRDPSRAPIFrameBuffer_INTERFACE_DEFINED__
+#define __IRDPSRAPIFrameBuffer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPIFrameBuffer, 0x3d67e7d2, 0xb27b, 0x448e, 0x81,0xb3, 0xc6,0x11,0x0e,0xd8,0xb4,0xbe);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3d67e7d2-b27b-448e-81b3-c6110ed8b4be")
+IRDPSRAPIFrameBuffer : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Width(
+        LONG *plWidth) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Height(
+        LONG *plHeight) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Bpp(
+        LONG *plBpp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFrameBufferBits(
+        LONG x,
+        LONG y,
+        LONG Width,
+        LONG Heigth,
+        SAFEARRAY **ppBits) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPIFrameBuffer, 0x3d67e7d2, 0xb27b, 0x448e, 0x81,0xb3, 0xc6,0x11,0x0e,0xd8,0xb4,0xbe)
+#endif
+#else
+typedef struct IRDPSRAPIFrameBufferVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPIFrameBuffer *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPIFrameBuffer *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPIFrameBuffer *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPIFrameBuffer *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPIFrameBuffer *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPIFrameBuffer *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPIFrameBuffer *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPIFrameBuffer methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Width)(
+        IRDPSRAPIFrameBuffer *This,
+        LONG *plWidth);
+
+    HRESULT (STDMETHODCALLTYPE *get_Height)(
+        IRDPSRAPIFrameBuffer *This,
+        LONG *plHeight);
+
+    HRESULT (STDMETHODCALLTYPE *get_Bpp)(
+        IRDPSRAPIFrameBuffer *This,
+        LONG *plBpp);
+
+    HRESULT (STDMETHODCALLTYPE *GetFrameBufferBits)(
+        IRDPSRAPIFrameBuffer *This,
+        LONG x,
+        LONG y,
+        LONG Width,
+        LONG Heigth,
+        SAFEARRAY **ppBits);
+
+    END_INTERFACE
+} IRDPSRAPIFrameBufferVtbl;
+
+interface IRDPSRAPIFrameBuffer {
+    CONST_VTBL IRDPSRAPIFrameBufferVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPIFrameBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPIFrameBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPIFrameBuffer_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPIFrameBuffer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPIFrameBuffer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPIFrameBuffer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPIFrameBuffer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPIFrameBuffer methods ***/
+#define IRDPSRAPIFrameBuffer_get_Width(This,plWidth) (This)->lpVtbl->get_Width(This,plWidth)
+#define IRDPSRAPIFrameBuffer_get_Height(This,plHeight) (This)->lpVtbl->get_Height(This,plHeight)
+#define IRDPSRAPIFrameBuffer_get_Bpp(This,plBpp) (This)->lpVtbl->get_Bpp(This,plBpp)
+#define IRDPSRAPIFrameBuffer_GetFrameBufferBits(This,x,y,Width,Heigth,ppBits) (This)->lpVtbl->GetFrameBufferBits(This,x,y,Width,Heigth,ppBits)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIFrameBuffer_QueryInterface(IRDPSRAPIFrameBuffer* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPIFrameBuffer_AddRef(IRDPSRAPIFrameBuffer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPIFrameBuffer_Release(IRDPSRAPIFrameBuffer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIFrameBuffer_GetTypeInfoCount(IRDPSRAPIFrameBuffer* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIFrameBuffer_GetTypeInfo(IRDPSRAPIFrameBuffer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPIFrameBuffer_GetIDsOfNames(IRDPSRAPIFrameBuffer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPIFrameBuffer_Invoke(IRDPSRAPIFrameBuffer* 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);
+}
+/*** IRDPSRAPIFrameBuffer methods ***/
+static FORCEINLINE HRESULT IRDPSRAPIFrameBuffer_get_Width(IRDPSRAPIFrameBuffer* This,LONG *plWidth) {
+    return This->lpVtbl->get_Width(This,plWidth);
+}
+static FORCEINLINE HRESULT IRDPSRAPIFrameBuffer_get_Height(IRDPSRAPIFrameBuffer* This,LONG *plHeight) {
+    return This->lpVtbl->get_Height(This,plHeight);
+}
+static FORCEINLINE HRESULT IRDPSRAPIFrameBuffer_get_Bpp(IRDPSRAPIFrameBuffer* This,LONG *plBpp) {
+    return This->lpVtbl->get_Bpp(This,plBpp);
+}
+static FORCEINLINE HRESULT IRDPSRAPIFrameBuffer_GetFrameBufferBits(IRDPSRAPIFrameBuffer* This,LONG x,LONG y,LONG Width,LONG Heigth,SAFEARRAY **ppBits) {
+    return This->lpVtbl->GetFrameBufferBits(This,x,y,Width,Heigth,ppBits);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPIFrameBuffer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPITransportStreamBuffer interface
+ */
+#ifndef __IRDPSRAPITransportStreamBuffer_INTERFACE_DEFINED__
+#define __IRDPSRAPITransportStreamBuffer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPITransportStreamBuffer, 0x81c80290, 0x5085, 0x44b0, 0xb4,0x60, 0xf8,0x65,0xc3,0x9c,0xb4,0xa9);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("81c80290-5085-44b0-b460-f865c39cb4a9")
+IRDPSRAPITransportStreamBuffer : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Storage(
+        BYTE **ppbStorage) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_StorageSize(
+        LONG *plMaxStore) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_PayloadSize(
+        LONG *plRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_PayloadSize(
+        LONG lVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_PayloadOffset(
+        LONG *plRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_PayloadOffset(
+        LONG lRetVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Flags(
+        LONG *plFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Flags(
+        LONG lFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Context(
+        IUnknown **ppContext) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Context(
+        IUnknown *pContext) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPITransportStreamBuffer, 0x81c80290, 0x5085, 0x44b0, 0xb4,0x60, 0xf8,0x65,0xc3,0x9c,0xb4,0xa9)
+#endif
+#else
+typedef struct IRDPSRAPITransportStreamBufferVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPITransportStreamBuffer *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPITransportStreamBuffer *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPITransportStreamBuffer *This);
+
+    /*** IRDPSRAPITransportStreamBuffer methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Storage)(
+        IRDPSRAPITransportStreamBuffer *This,
+        BYTE **ppbStorage);
+
+    HRESULT (STDMETHODCALLTYPE *get_StorageSize)(
+        IRDPSRAPITransportStreamBuffer *This,
+        LONG *plMaxStore);
+
+    HRESULT (STDMETHODCALLTYPE *get_PayloadSize)(
+        IRDPSRAPITransportStreamBuffer *This,
+        LONG *plRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *put_PayloadSize)(
+        IRDPSRAPITransportStreamBuffer *This,
+        LONG lVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_PayloadOffset)(
+        IRDPSRAPITransportStreamBuffer *This,
+        LONG *plRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *put_PayloadOffset)(
+        IRDPSRAPITransportStreamBuffer *This,
+        LONG lRetVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Flags)(
+        IRDPSRAPITransportStreamBuffer *This,
+        LONG *plFlags);
+
+    HRESULT (STDMETHODCALLTYPE *put_Flags)(
+        IRDPSRAPITransportStreamBuffer *This,
+        LONG lFlags);
+
+    HRESULT (STDMETHODCALLTYPE *get_Context)(
+        IRDPSRAPITransportStreamBuffer *This,
+        IUnknown **ppContext);
+
+    HRESULT (STDMETHODCALLTYPE *put_Context)(
+        IRDPSRAPITransportStreamBuffer *This,
+        IUnknown *pContext);
+
+    END_INTERFACE
+} IRDPSRAPITransportStreamBufferVtbl;
+
+interface IRDPSRAPITransportStreamBuffer {
+    CONST_VTBL IRDPSRAPITransportStreamBufferVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPITransportStreamBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPITransportStreamBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPITransportStreamBuffer_Release(This) (This)->lpVtbl->Release(This)
+/*** IRDPSRAPITransportStreamBuffer methods ***/
+#define IRDPSRAPITransportStreamBuffer_get_Storage(This,ppbStorage) (This)->lpVtbl->get_Storage(This,ppbStorage)
+#define IRDPSRAPITransportStreamBuffer_get_StorageSize(This,plMaxStore) (This)->lpVtbl->get_StorageSize(This,plMaxStore)
+#define IRDPSRAPITransportStreamBuffer_get_PayloadSize(This,plRetVal) (This)->lpVtbl->get_PayloadSize(This,plRetVal)
+#define IRDPSRAPITransportStreamBuffer_put_PayloadSize(This,lVal) (This)->lpVtbl->put_PayloadSize(This,lVal)
+#define IRDPSRAPITransportStreamBuffer_get_PayloadOffset(This,plRetVal) (This)->lpVtbl->get_PayloadOffset(This,plRetVal)
+#define IRDPSRAPITransportStreamBuffer_put_PayloadOffset(This,lRetVal) (This)->lpVtbl->put_PayloadOffset(This,lRetVal)
+#define IRDPSRAPITransportStreamBuffer_get_Flags(This,plFlags) (This)->lpVtbl->get_Flags(This,plFlags)
+#define IRDPSRAPITransportStreamBuffer_put_Flags(This,lFlags) (This)->lpVtbl->put_Flags(This,lFlags)
+#define IRDPSRAPITransportStreamBuffer_get_Context(This,ppContext) (This)->lpVtbl->get_Context(This,ppContext)
+#define IRDPSRAPITransportStreamBuffer_put_Context(This,pContext) (This)->lpVtbl->put_Context(This,pContext)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_QueryInterface(IRDPSRAPITransportStreamBuffer* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPITransportStreamBuffer_AddRef(IRDPSRAPITransportStreamBuffer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPITransportStreamBuffer_Release(IRDPSRAPITransportStreamBuffer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRDPSRAPITransportStreamBuffer methods ***/
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_get_Storage(IRDPSRAPITransportStreamBuffer* This,BYTE **ppbStorage) {
+    return This->lpVtbl->get_Storage(This,ppbStorage);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_get_StorageSize(IRDPSRAPITransportStreamBuffer* This,LONG *plMaxStore) {
+    return This->lpVtbl->get_StorageSize(This,plMaxStore);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_get_PayloadSize(IRDPSRAPITransportStreamBuffer* This,LONG *plRetVal) {
+    return This->lpVtbl->get_PayloadSize(This,plRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_put_PayloadSize(IRDPSRAPITransportStreamBuffer* This,LONG lVal) {
+    return This->lpVtbl->put_PayloadSize(This,lVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_get_PayloadOffset(IRDPSRAPITransportStreamBuffer* This,LONG *plRetVal) {
+    return This->lpVtbl->get_PayloadOffset(This,plRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_put_PayloadOffset(IRDPSRAPITransportStreamBuffer* This,LONG lRetVal) {
+    return This->lpVtbl->put_PayloadOffset(This,lRetVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_get_Flags(IRDPSRAPITransportStreamBuffer* This,LONG *plFlags) {
+    return This->lpVtbl->get_Flags(This,plFlags);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_put_Flags(IRDPSRAPITransportStreamBuffer* This,LONG lFlags) {
+    return This->lpVtbl->put_Flags(This,lFlags);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_get_Context(IRDPSRAPITransportStreamBuffer* This,IUnknown **ppContext) {
+    return This->lpVtbl->get_Context(This,ppContext);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamBuffer_put_Context(IRDPSRAPITransportStreamBuffer* This,IUnknown *pContext) {
+    return This->lpVtbl->put_Context(This,pContext);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPITransportStreamBuffer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPITransportStreamEvents interface
+ */
+#ifndef __IRDPSRAPITransportStreamEvents_INTERFACE_DEFINED__
+#define __IRDPSRAPITransportStreamEvents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPITransportStreamEvents, 0xea81c254, 0xf5af, 0x4e40, 0x98,0x2e, 0x3e,0x63,0xbb,0x59,0x52,0x76);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ea81c254-f5af-4e40-982e-3e63bb595276")
+IRDPSRAPITransportStreamEvents : public IUnknown
+{
+    virtual void STDMETHODCALLTYPE OnWriteCompleted(
+        IRDPSRAPITransportStreamBuffer *pBuffer) = 0;
+
+    virtual void STDMETHODCALLTYPE OnReadCompleted(
+        IRDPSRAPITransportStreamBuffer *pBuffer) = 0;
+
+    virtual void STDMETHODCALLTYPE OnStreamClosed(
+        HRESULT hrReason) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPITransportStreamEvents, 0xea81c254, 0xf5af, 0x4e40, 0x98,0x2e, 0x3e,0x63,0xbb,0x59,0x52,0x76)
+#endif
+#else
+typedef struct IRDPSRAPITransportStreamEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPITransportStreamEvents *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPITransportStreamEvents *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPITransportStreamEvents *This);
+
+    /*** IRDPSRAPITransportStreamEvents methods ***/
+    void (STDMETHODCALLTYPE *OnWriteCompleted)(
+        IRDPSRAPITransportStreamEvents *This,
+        IRDPSRAPITransportStreamBuffer *pBuffer);
+
+    void (STDMETHODCALLTYPE *OnReadCompleted)(
+        IRDPSRAPITransportStreamEvents *This,
+        IRDPSRAPITransportStreamBuffer *pBuffer);
+
+    void (STDMETHODCALLTYPE *OnStreamClosed)(
+        IRDPSRAPITransportStreamEvents *This,
+        HRESULT hrReason);
+
+    END_INTERFACE
+} IRDPSRAPITransportStreamEventsVtbl;
+
+interface IRDPSRAPITransportStreamEvents {
+    CONST_VTBL IRDPSRAPITransportStreamEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPITransportStreamEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPITransportStreamEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPITransportStreamEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IRDPSRAPITransportStreamEvents methods ***/
+#define IRDPSRAPITransportStreamEvents_OnWriteCompleted(This,pBuffer) (This)->lpVtbl->OnWriteCompleted(This,pBuffer)
+#define IRDPSRAPITransportStreamEvents_OnReadCompleted(This,pBuffer) (This)->lpVtbl->OnReadCompleted(This,pBuffer)
+#define IRDPSRAPITransportStreamEvents_OnStreamClosed(This,hrReason) (This)->lpVtbl->OnStreamClosed(This,hrReason)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPITransportStreamEvents_QueryInterface(IRDPSRAPITransportStreamEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPITransportStreamEvents_AddRef(IRDPSRAPITransportStreamEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPITransportStreamEvents_Release(IRDPSRAPITransportStreamEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRDPSRAPITransportStreamEvents methods ***/
+static FORCEINLINE void IRDPSRAPITransportStreamEvents_OnWriteCompleted(IRDPSRAPITransportStreamEvents* This,IRDPSRAPITransportStreamBuffer *pBuffer) {
+    This->lpVtbl->OnWriteCompleted(This,pBuffer);
+}
+static FORCEINLINE void IRDPSRAPITransportStreamEvents_OnReadCompleted(IRDPSRAPITransportStreamEvents* This,IRDPSRAPITransportStreamBuffer *pBuffer) {
+    This->lpVtbl->OnReadCompleted(This,pBuffer);
+}
+static FORCEINLINE void IRDPSRAPITransportStreamEvents_OnStreamClosed(IRDPSRAPITransportStreamEvents* This,HRESULT hrReason) {
+    This->lpVtbl->OnStreamClosed(This,hrReason);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPITransportStreamEvents_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPITransportStream interface
+ */
+#ifndef __IRDPSRAPITransportStream_INTERFACE_DEFINED__
+#define __IRDPSRAPITransportStream_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPITransportStream, 0x36cfa065, 0x43bb, 0x4ef7, 0xae,0xd7, 0x9b,0x88,0xa5,0x05,0x30,0x36);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("36cfa065-43bb-4ef7-aed7-9b88a5053036")
+IRDPSRAPITransportStream : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AllocBuffer(
+        LONG maxPayload,
+        IRDPSRAPITransportStreamBuffer **ppBuffer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FreeBuffer(
+        IRDPSRAPITransportStreamBuffer *pBuffer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE WriteBuffer(
+        IRDPSRAPITransportStreamBuffer *pBuffer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ReadBuffer(
+        IRDPSRAPITransportStreamBuffer *pBuffer) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Open(
+        IRDPSRAPITransportStreamEvents *pCallbacks) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Close(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPITransportStream, 0x36cfa065, 0x43bb, 0x4ef7, 0xae,0xd7, 0x9b,0x88,0xa5,0x05,0x30,0x36)
+#endif
+#else
+typedef struct IRDPSRAPITransportStreamVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPITransportStream *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPITransportStream *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPITransportStream *This);
+
+    /*** IRDPSRAPITransportStream methods ***/
+    HRESULT (STDMETHODCALLTYPE *AllocBuffer)(
+        IRDPSRAPITransportStream *This,
+        LONG maxPayload,
+        IRDPSRAPITransportStreamBuffer **ppBuffer);
+
+    HRESULT (STDMETHODCALLTYPE *FreeBuffer)(
+        IRDPSRAPITransportStream *This,
+        IRDPSRAPITransportStreamBuffer *pBuffer);
+
+    HRESULT (STDMETHODCALLTYPE *WriteBuffer)(
+        IRDPSRAPITransportStream *This,
+        IRDPSRAPITransportStreamBuffer *pBuffer);
+
+    HRESULT (STDMETHODCALLTYPE *ReadBuffer)(
+        IRDPSRAPITransportStream *This,
+        IRDPSRAPITransportStreamBuffer *pBuffer);
+
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IRDPSRAPITransportStream *This,
+        IRDPSRAPITransportStreamEvents *pCallbacks);
+
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IRDPSRAPITransportStream *This);
+
+    END_INTERFACE
+} IRDPSRAPITransportStreamVtbl;
+
+interface IRDPSRAPITransportStream {
+    CONST_VTBL IRDPSRAPITransportStreamVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPITransportStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPITransportStream_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPITransportStream_Release(This) (This)->lpVtbl->Release(This)
+/*** IRDPSRAPITransportStream methods ***/
+#define IRDPSRAPITransportStream_AllocBuffer(This,maxPayload,ppBuffer) (This)->lpVtbl->AllocBuffer(This,maxPayload,ppBuffer)
+#define IRDPSRAPITransportStream_FreeBuffer(This,pBuffer) (This)->lpVtbl->FreeBuffer(This,pBuffer)
+#define IRDPSRAPITransportStream_WriteBuffer(This,pBuffer) (This)->lpVtbl->WriteBuffer(This,pBuffer)
+#define IRDPSRAPITransportStream_ReadBuffer(This,pBuffer) (This)->lpVtbl->ReadBuffer(This,pBuffer)
+#define IRDPSRAPITransportStream_Open(This,pCallbacks) (This)->lpVtbl->Open(This,pCallbacks)
+#define IRDPSRAPITransportStream_Close(This) (This)->lpVtbl->Close(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPITransportStream_QueryInterface(IRDPSRAPITransportStream* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPITransportStream_AddRef(IRDPSRAPITransportStream* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPITransportStream_Release(IRDPSRAPITransportStream* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRDPSRAPITransportStream methods ***/
+static FORCEINLINE HRESULT IRDPSRAPITransportStream_AllocBuffer(IRDPSRAPITransportStream* This,LONG maxPayload,IRDPSRAPITransportStreamBuffer **ppBuffer) {
+    return This->lpVtbl->AllocBuffer(This,maxPayload,ppBuffer);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStream_FreeBuffer(IRDPSRAPITransportStream* This,IRDPSRAPITransportStreamBuffer *pBuffer) {
+    return This->lpVtbl->FreeBuffer(This,pBuffer);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStream_WriteBuffer(IRDPSRAPITransportStream* This,IRDPSRAPITransportStreamBuffer *pBuffer) {
+    return This->lpVtbl->WriteBuffer(This,pBuffer);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStream_ReadBuffer(IRDPSRAPITransportStream* This,IRDPSRAPITransportStreamBuffer *pBuffer) {
+    return This->lpVtbl->ReadBuffer(This,pBuffer);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStream_Open(IRDPSRAPITransportStream* This,IRDPSRAPITransportStreamEvents *pCallbacks) {
+    return This->lpVtbl->Open(This,pCallbacks);
+}
+static FORCEINLINE HRESULT IRDPSRAPITransportStream_Close(IRDPSRAPITransportStream* This) {
+    return This->lpVtbl->Close(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPITransportStream_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPISharingSession interface
+ */
+#ifndef __IRDPSRAPISharingSession_INTERFACE_DEFINED__
+#define __IRDPSRAPISharingSession_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPISharingSession, 0xeeb20886, 0xe470, 0x4cf6, 0x84,0x2b, 0x27,0x39,0xc0,0xec,0x5c,0xfb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("eeb20886-e470-4cf6-842b-2739c0ec5cfb")
+IRDPSRAPISharingSession : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE Open(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Close(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ColorDepth(
+        LONG colorDepth) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ColorDepth(
+        LONG *pColorDepth) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Properties(
+        IRDPSRAPISessionProperties **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Attendees(
+        IRDPSRAPIAttendeeManager **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Invitations(
+        IRDPSRAPIInvitationManager **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ApplicationFilter(
+        IRDPSRAPIApplicationFilter **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_VirtualChannelManager(
+        IRDPSRAPIVirtualChannelManager **ppVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Pause(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Resume(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ConnectToClient(
+        BSTR bstrConnectionString) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDesktopSharedRect(
+        LONG left,
+        LONG top,
+        LONG right,
+        LONG bottom) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDesktopSharedRect(
+        LONG *pleft,
+        LONG *ptop,
+        LONG *pright,
+        LONG *pbottom) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPISharingSession, 0xeeb20886, 0xe470, 0x4cf6, 0x84,0x2b, 0x27,0x39,0xc0,0xec,0x5c,0xfb)
+#endif
+#else
+typedef struct IRDPSRAPISharingSessionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPISharingSession *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPISharingSession *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPISharingSession *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPISharingSession *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPISharingSession *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPISharingSession *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPISharingSession *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IRDPSRAPISharingSession methods ***/
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IRDPSRAPISharingSession *This);
+
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IRDPSRAPISharingSession *This);
+
+    HRESULT (STDMETHODCALLTYPE *put_ColorDepth)(
+        IRDPSRAPISharingSession *This,
+        LONG colorDepth);
+
+    HRESULT (STDMETHODCALLTYPE *get_ColorDepth)(
+        IRDPSRAPISharingSession *This,
+        LONG *pColorDepth);
+
+    HRESULT (STDMETHODCALLTYPE *get_Properties)(
+        IRDPSRAPISharingSession *This,
+        IRDPSRAPISessionProperties **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Attendees)(
+        IRDPSRAPISharingSession *This,
+        IRDPSRAPIAttendeeManager **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Invitations)(
+        IRDPSRAPISharingSession *This,
+        IRDPSRAPIInvitationManager **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_ApplicationFilter)(
+        IRDPSRAPISharingSession *This,
+        IRDPSRAPIApplicationFilter **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_VirtualChannelManager)(
+        IRDPSRAPISharingSession *This,
+        IRDPSRAPIVirtualChannelManager **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *Pause)(
+        IRDPSRAPISharingSession *This);
+
+    HRESULT (STDMETHODCALLTYPE *Resume)(
+        IRDPSRAPISharingSession *This);
+
+    HRESULT (STDMETHODCALLTYPE *ConnectToClient)(
+        IRDPSRAPISharingSession *This,
+        BSTR bstrConnectionString);
+
+    HRESULT (STDMETHODCALLTYPE *SetDesktopSharedRect)(
+        IRDPSRAPISharingSession *This,
+        LONG left,
+        LONG top,
+        LONG right,
+        LONG bottom);
+
+    HRESULT (STDMETHODCALLTYPE *GetDesktopSharedRect)(
+        IRDPSRAPISharingSession *This,
+        LONG *pleft,
+        LONG *ptop,
+        LONG *pright,
+        LONG *pbottom);
+
+    END_INTERFACE
+} IRDPSRAPISharingSessionVtbl;
+
+interface IRDPSRAPISharingSession {
+    CONST_VTBL IRDPSRAPISharingSessionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPISharingSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPISharingSession_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPISharingSession_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPISharingSession_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPISharingSession_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPISharingSession_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPISharingSession_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPISharingSession methods ***/
+#define IRDPSRAPISharingSession_Open(This) (This)->lpVtbl->Open(This)
+#define IRDPSRAPISharingSession_Close(This) (This)->lpVtbl->Close(This)
+#define IRDPSRAPISharingSession_put_ColorDepth(This,colorDepth) (This)->lpVtbl->put_ColorDepth(This,colorDepth)
+#define IRDPSRAPISharingSession_get_ColorDepth(This,pColorDepth) (This)->lpVtbl->get_ColorDepth(This,pColorDepth)
+#define IRDPSRAPISharingSession_get_Properties(This,ppVal) (This)->lpVtbl->get_Properties(This,ppVal)
+#define IRDPSRAPISharingSession_get_Attendees(This,ppVal) (This)->lpVtbl->get_Attendees(This,ppVal)
+#define IRDPSRAPISharingSession_get_Invitations(This,ppVal) (This)->lpVtbl->get_Invitations(This,ppVal)
+#define IRDPSRAPISharingSession_get_ApplicationFilter(This,ppVal) (This)->lpVtbl->get_ApplicationFilter(This,ppVal)
+#define IRDPSRAPISharingSession_get_VirtualChannelManager(This,ppVal) (This)->lpVtbl->get_VirtualChannelManager(This,ppVal)
+#define IRDPSRAPISharingSession_Pause(This) (This)->lpVtbl->Pause(This)
+#define IRDPSRAPISharingSession_Resume(This) (This)->lpVtbl->Resume(This)
+#define IRDPSRAPISharingSession_ConnectToClient(This,bstrConnectionString) (This)->lpVtbl->ConnectToClient(This,bstrConnectionString)
+#define IRDPSRAPISharingSession_SetDesktopSharedRect(This,left,top,right,bottom) (This)->lpVtbl->SetDesktopSharedRect(This,left,top,right,bottom)
+#define IRDPSRAPISharingSession_GetDesktopSharedRect(This,pleft,ptop,pright,pbottom) (This)->lpVtbl->GetDesktopSharedRect(This,pleft,ptop,pright,pbottom)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_QueryInterface(IRDPSRAPISharingSession* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPISharingSession_AddRef(IRDPSRAPISharingSession* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPISharingSession_Release(IRDPSRAPISharingSession* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_GetTypeInfoCount(IRDPSRAPISharingSession* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_GetTypeInfo(IRDPSRAPISharingSession* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_GetIDsOfNames(IRDPSRAPISharingSession* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_Invoke(IRDPSRAPISharingSession* 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);
+}
+/*** IRDPSRAPISharingSession methods ***/
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_Open(IRDPSRAPISharingSession* This) {
+    return This->lpVtbl->Open(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_Close(IRDPSRAPISharingSession* This) {
+    return This->lpVtbl->Close(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_put_ColorDepth(IRDPSRAPISharingSession* This,LONG colorDepth) {
+    return This->lpVtbl->put_ColorDepth(This,colorDepth);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_get_ColorDepth(IRDPSRAPISharingSession* This,LONG *pColorDepth) {
+    return This->lpVtbl->get_ColorDepth(This,pColorDepth);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_get_Properties(IRDPSRAPISharingSession* This,IRDPSRAPISessionProperties **ppVal) {
+    return This->lpVtbl->get_Properties(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_get_Attendees(IRDPSRAPISharingSession* This,IRDPSRAPIAttendeeManager **ppVal) {
+    return This->lpVtbl->get_Attendees(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_get_Invitations(IRDPSRAPISharingSession* This,IRDPSRAPIInvitationManager **ppVal) {
+    return This->lpVtbl->get_Invitations(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_get_ApplicationFilter(IRDPSRAPISharingSession* This,IRDPSRAPIApplicationFilter **ppVal) {
+    return This->lpVtbl->get_ApplicationFilter(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_get_VirtualChannelManager(IRDPSRAPISharingSession* This,IRDPSRAPIVirtualChannelManager **ppVal) {
+    return This->lpVtbl->get_VirtualChannelManager(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_Pause(IRDPSRAPISharingSession* This) {
+    return This->lpVtbl->Pause(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_Resume(IRDPSRAPISharingSession* This) {
+    return This->lpVtbl->Resume(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_ConnectToClient(IRDPSRAPISharingSession* This,BSTR bstrConnectionString) {
+    return This->lpVtbl->ConnectToClient(This,bstrConnectionString);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_SetDesktopSharedRect(IRDPSRAPISharingSession* This,LONG left,LONG top,LONG right,LONG bottom) {
+    return This->lpVtbl->SetDesktopSharedRect(This,left,top,right,bottom);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession_GetDesktopSharedRect(IRDPSRAPISharingSession* This,LONG *pleft,LONG *ptop,LONG *pright,LONG *pbottom) {
+    return This->lpVtbl->GetDesktopSharedRect(This,pleft,ptop,pright,pbottom);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRDPSRAPISharingSession_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRDPSRAPISharingSession2 interface
  */
-#ifndef _INC_RDPENCOMAPI
-#define _INC_RDPENCOMAPI
+#ifndef __IRDPSRAPISharingSession2_INTERFACE_DEFINED__
+#define __IRDPSRAPISharingSession2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRDPSRAPISharingSession2, 0xfee4ee57, 0xe3e8, 0x4205, 0x8f,0xb0, 0x8f,0xd1,0xd0,0x67,0x5c,0x21);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("fee4ee57-e3e8-4205-8fb0-8fd1d0675c21")
+IRDPSRAPISharingSession2 : public IRDPSRAPISharingSession
+{
+    virtual HRESULT STDMETHODCALLTYPE ConnectUsingTransportStream(
+        IRDPSRAPITransportStream *pStream,
+        BSTR bstrGroup,
+        BSTR bstrAuthenticatedAttendeeName) = 0;
 
-#if (_WIN32_WINNT >= 0x0600)
+    virtual HRESULT STDMETHODCALLTYPE get_FrameBuffer(
+        IRDPSRAPIFrameBuffer **ppVal) = 0;
 
-#ifdef __cplusplus
-extern "C" {
+    virtual HRESULT STDMETHODCALLTYPE SendControlLevelChangeResponse(
+        IRDPSRAPIAttendee *pAttendee,
+        CTRL_LEVEL RequestedLevel,
+        LONG ReasonCode) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRDPSRAPISharingSession2, 0xfee4ee57, 0xe3e8, 0x4205, 0x8f,0xb0, 0x8f,0xd1,0xd0,0x67,0x5c,0x21)
 #endif
+#else
+typedef struct IRDPSRAPISharingSession2Vtbl {
+    BEGIN_INTERFACE
 
-typedef enum _ATTENDEE_DISCONNECT_REASON {
-  ATTENDEE_DISCONNECT_REASON_MIN   = 0,
-  ATTENDEE_DISCONNECT_REASON_APP   = 0,
-  ATTENDEE_DISCONNECT_REASON_ERR   = 1,
-  ATTENDEE_DISCONNECT_REASON_CLI   = 2,
-  ATTENDEE_DISCONNECT_REASON_MAX   = 2
-} ATTENDEE_DISCONNECT_REASON;
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRDPSRAPISharingSession2 *This,
+        REFIID riid,
+        void **ppvObject);
 
-typedef enum _CHANNEL_ACCESS_ENUM {
-  CHANNEL_ACCESS_ENUM_NONE          = 0,
-  CHANNEL_ACCESS_ENUM_SENDRECEIVE   = 1
-} CHANNEL_ACCESS_ENUM;
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRDPSRAPISharingSession2 *This);
 
-typedef enum _CHANNEL_FLAGS {
-  CHANNEL_FLAGS_LEGACY         = 0x01,
-  CHANNEL_FLAGS_UNCOMPRESSED   = 0x02
-} CHANNEL_FLAGS;
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRDPSRAPISharingSession2 *This);
 
-typedef enum _CHANNEL_PRIORITY {
-  CHANNEL_PRIORITY_LO    = 0,
-  CHANNEL_PRIORITY_MED   = 1,
-  CHANNEL_PRIORITY_HI    = 2
-} CHANNEL_PRIORITY;
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IRDPSRAPISharingSession2 *This,
+        UINT *pctinfo);
 
-typedef enum _CTRL_LEVEL {
-  CTRL_LEVEL_MIN           = 0,
-  CTRL_LEVEL_INVALID       = 0,
-  CTRL_LEVEL_NONE          = 1,
-  CTRL_LEVEL_VIEW          = 2,
-  CTRL_LEVEL_INTERACTIVE   = 3,
-  CTRL_LEVEL_MAX           = 3
-} CTRL_LEVEL;
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IRDPSRAPISharingSession2 *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
 
-typedef enum _RDPENCOMAPI_ATTENDEE_FLAGS {
-  ATTENDEE_FLAGS_LOCAL   = 1
-} RDPENCOMAPI_ATTENDEE_FLAGS;
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IRDPSRAPISharingSession2 *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
 
-typedef enum _RDPENCOMAPI_CONSTANTS {
-  CONST_MAX_CHANNEL_MESSAGE_SIZE          = 1024,
-  CONST_MAX_CHANNEL_NAME_LEN              = 8,
-  CONST_MAX_LEGACY_CHANNEL_MESSAGE_SIZE   = 409600,
-  CONST_ATTENDEE_ID_EVERYONE              = -1,
-  CONST_ATTENDEE_ID_HOST                  = 0,
-  CONST_CONN_INTERVAL                     = 50
-} RDPENCOMAPI_CONSTANTS;
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRDPSRAPISharingSession2 *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
 
-typedef enum _RDPSRAPI_APP_FLAGS {
-  APP_FLAG_PRIVILEGED   = 1
-} RDPSRAPI_APP_FLAGS;
+    /*** IRDPSRAPISharingSession methods ***/
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IRDPSRAPISharingSession2 *This);
 
-typedef enum _RDPSRAPI_WND_FLAGS {
-  WND_FLAG_PRIVILEGED   = 1
-} RDPSRAPI_WND_FLAGS;
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IRDPSRAPISharingSession2 *This);
 
-#ifdef __cplusplus
-}
-#endif
+    HRESULT (STDMETHODCALLTYPE *put_ColorDepth)(
+        IRDPSRAPISharingSession2 *This,
+        LONG colorDepth);
 
-#undef  INTERFACE
-#define INTERFACE IRDPSRAPITcpConnectionInfo
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
-#endif
-DECLARE_INTERFACE_(IRDPSRAPITcpConnectionInfo,IDispatch)
-{
-    BEGIN_INTERFACE
+    HRESULT (STDMETHODCALLTYPE *get_ColorDepth)(
+        IRDPSRAPISharingSession2 *This,
+        LONG *pColorDepth);
+
+    HRESULT (STDMETHODCALLTYPE *get_Properties)(
+        IRDPSRAPISharingSession2 *This,
+        IRDPSRAPISessionProperties **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Attendees)(
+        IRDPSRAPISharingSession2 *This,
+        IRDPSRAPIAttendeeManager **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *get_Invitations)(
+        IRDPSRAPISharingSession2 *This,
+        IRDPSRAPIInvitationManager **ppVal);
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    HRESULT (STDMETHODCALLTYPE *get_ApplicationFilter)(
+        IRDPSRAPISharingSession2 *This,
+        IRDPSRAPIApplicationFilter **ppVal);
 
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
+    HRESULT (STDMETHODCALLTYPE *get_VirtualChannelManager)(
+        IRDPSRAPISharingSession2 *This,
+        IRDPSRAPIVirtualChannelManager **ppVal);
 
-    /* IRDPSRAPITcpConnectionInfo methods */
-    STDMETHOD_(HRESULT,get_Protocol)(THIS_ __LONG32 *plProtocol) PURE;
-    STDMETHOD_(HRESULT,get_LocalPort)(THIS_ __LONG32 *plPort) PURE;
-    STDMETHOD_(HRESULT,get_LocalIP)(THIS_ BSTR *pbstrLocalIP) PURE;
-    STDMETHOD_(HRESULT,get_PeerPort)(THIS_ __LONG32 *plPort) PURE;
-    STDMETHOD_(HRESULT,get_PeerIP)(THIS_ BSTR *pbstrIP) PURE;
+    HRESULT (STDMETHODCALLTYPE *Pause)(
+        IRDPSRAPISharingSession2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *Resume)(
+        IRDPSRAPISharingSession2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *ConnectToClient)(
+        IRDPSRAPISharingSession2 *This,
+        BSTR bstrConnectionString);
+
+    HRESULT (STDMETHODCALLTYPE *SetDesktopSharedRect)(
+        IRDPSRAPISharingSession2 *This,
+        LONG left,
+        LONG top,
+        LONG right,
+        LONG bottom);
+
+    HRESULT (STDMETHODCALLTYPE *GetDesktopSharedRect)(
+        IRDPSRAPISharingSession2 *This,
+        LONG *pleft,
+        LONG *ptop,
+        LONG *pright,
+        LONG *pbottom);
+
+    /*** IRDPSRAPISharingSession2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *ConnectUsingTransportStream)(
+        IRDPSRAPISharingSession2 *This,
+        IRDPSRAPITransportStream *pStream,
+        BSTR bstrGroup,
+        BSTR bstrAuthenticatedAttendeeName);
+
+    HRESULT (STDMETHODCALLTYPE *get_FrameBuffer)(
+        IRDPSRAPISharingSession2 *This,
+        IRDPSRAPIFrameBuffer **ppVal);
+
+    HRESULT (STDMETHODCALLTYPE *SendControlLevelChangeResponse)(
+        IRDPSRAPISharingSession2 *This,
+        IRDPSRAPIAttendee *pAttendee,
+        CTRL_LEVEL RequestedLevel,
+        LONG ReasonCode);
 
     END_INTERFACE
+} IRDPSRAPISharingSession2Vtbl;
+
+interface IRDPSRAPISharingSession2 {
+    CONST_VTBL IRDPSRAPISharingSession2Vtbl* lpVtbl;
 };
+
 #ifdef COBJMACROS
-#define IRDPSRAPITcpConnectionInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IRDPSRAPITcpConnectionInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IRDPSRAPITcpConnectionInfo_Release(This) (This)->lpVtbl->Release(This)
-#define IRDPSRAPITcpConnectionInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IRDPSRAPITcpConnectionInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IRDPSRAPITcpConnectionInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IRDPSRAPITcpConnectionInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IRDPSRAPITcpConnectionInfo_get_Protocol(This,plProtocol) (This)->lpVtbl->get_Protocol(This,plProtocol)
-#define IRDPSRAPITcpConnectionInfo_get_LocalPort(This,plPort) (This)->lpVtbl->get_LocalPort(This,plPort)
-#define IRDPSRAPITcpConnectionInfo_get_LocalIP(This,pbstrLocalIP) (This)->lpVtbl->get_LocalIP(This,pbstrLocalIP)
-#define IRDPSRAPITcpConnectionInfo_get_PeerPort(This,plPort) (This)->lpVtbl->get_PeerPort(This,plPort)
-#define IRDPSRAPITcpConnectionInfo_get_PeerIP(This,pbstrIP) (This)->lpVtbl->get_PeerIP(This,pbstrIP)
-#endif /*COBJMACROS*/
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRDPSRAPISharingSession2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRDPSRAPISharingSession2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRDPSRAPISharingSession2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IRDPSRAPISharingSession2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IRDPSRAPISharingSession2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IRDPSRAPISharingSession2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IRDPSRAPISharingSession2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IRDPSRAPISharingSession methods ***/
+#define IRDPSRAPISharingSession2_Open(This) (This)->lpVtbl->Open(This)
+#define IRDPSRAPISharingSession2_Close(This) (This)->lpVtbl->Close(This)
+#define IRDPSRAPISharingSession2_put_ColorDepth(This,colorDepth) (This)->lpVtbl->put_ColorDepth(This,colorDepth)
+#define IRDPSRAPISharingSession2_get_ColorDepth(This,pColorDepth) (This)->lpVtbl->get_ColorDepth(This,pColorDepth)
+#define IRDPSRAPISharingSession2_get_Properties(This,ppVal) (This)->lpVtbl->get_Properties(This,ppVal)
+#define IRDPSRAPISharingSession2_get_Attendees(This,ppVal) (This)->lpVtbl->get_Attendees(This,ppVal)
+#define IRDPSRAPISharingSession2_get_Invitations(This,ppVal) (This)->lpVtbl->get_Invitations(This,ppVal)
+#define IRDPSRAPISharingSession2_get_ApplicationFilter(This,ppVal) (This)->lpVtbl->get_ApplicationFilter(This,ppVal)
+#define IRDPSRAPISharingSession2_get_VirtualChannelManager(This,ppVal) (This)->lpVtbl->get_VirtualChannelManager(This,ppVal)
+#define IRDPSRAPISharingSession2_Pause(This) (This)->lpVtbl->Pause(This)
+#define IRDPSRAPISharingSession2_Resume(This) (This)->lpVtbl->Resume(This)
+#define IRDPSRAPISharingSession2_ConnectToClient(This,bstrConnectionString) (This)->lpVtbl->ConnectToClient(This,bstrConnectionString)
+#define IRDPSRAPISharingSession2_SetDesktopSharedRect(This,left,top,right,bottom) (This)->lpVtbl->SetDesktopSharedRect(This,left,top,right,bottom)
+#define IRDPSRAPISharingSession2_GetDesktopSharedRect(This,pleft,ptop,pright,pbottom) (This)->lpVtbl->GetDesktopSharedRect(This,pleft,ptop,pright,pbottom)
+/*** IRDPSRAPISharingSession2 methods ***/
+#define IRDPSRAPISharingSession2_ConnectUsingTransportStream(This,pStream,bstrGroup,bstrAuthenticatedAttendeeName) (This)->lpVtbl->ConnectUsingTransportStream(This,pStream,bstrGroup,bstrAuthenticatedAttendeeName)
+#define IRDPSRAPISharingSession2_get_FrameBuffer(This,ppVal) (This)->lpVtbl->get_FrameBuffer(This,ppVal)
+#define IRDPSRAPISharingSession2_SendControlLevelChangeResponse(This,pAttendee,RequestedLevel,ReasonCode) (This)->lpVtbl->SendControlLevelChangeResponse(This,pAttendee,RequestedLevel,ReasonCode)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_QueryInterface(IRDPSRAPISharingSession2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRDPSRAPISharingSession2_AddRef(IRDPSRAPISharingSession2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRDPSRAPISharingSession2_Release(IRDPSRAPISharingSession2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_GetTypeInfoCount(IRDPSRAPISharingSession2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_GetTypeInfo(IRDPSRAPISharingSession2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_GetIDsOfNames(IRDPSRAPISharingSession2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_Invoke(IRDPSRAPISharingSession2* 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);
+}
+/*** IRDPSRAPISharingSession methods ***/
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_Open(IRDPSRAPISharingSession2* This) {
+    return This->lpVtbl->Open(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_Close(IRDPSRAPISharingSession2* This) {
+    return This->lpVtbl->Close(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_put_ColorDepth(IRDPSRAPISharingSession2* This,LONG colorDepth) {
+    return This->lpVtbl->put_ColorDepth(This,colorDepth);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_get_ColorDepth(IRDPSRAPISharingSession2* This,LONG *pColorDepth) {
+    return This->lpVtbl->get_ColorDepth(This,pColorDepth);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_get_Properties(IRDPSRAPISharingSession2* This,IRDPSRAPISessionProperties **ppVal) {
+    return This->lpVtbl->get_Properties(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_get_Attendees(IRDPSRAPISharingSession2* This,IRDPSRAPIAttendeeManager **ppVal) {
+    return This->lpVtbl->get_Attendees(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_get_Invitations(IRDPSRAPISharingSession2* This,IRDPSRAPIInvitationManager **ppVal) {
+    return This->lpVtbl->get_Invitations(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_get_ApplicationFilter(IRDPSRAPISharingSession2* This,IRDPSRAPIApplicationFilter **ppVal) {
+    return This->lpVtbl->get_ApplicationFilter(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_get_VirtualChannelManager(IRDPSRAPISharingSession2* This,IRDPSRAPIVirtualChannelManager **ppVal) {
+    return This->lpVtbl->get_VirtualChannelManager(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_Pause(IRDPSRAPISharingSession2* This) {
+    return This->lpVtbl->Pause(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_Resume(IRDPSRAPISharingSession2* This) {
+    return This->lpVtbl->Resume(This);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_ConnectToClient(IRDPSRAPISharingSession2* This,BSTR bstrConnectionString) {
+    return This->lpVtbl->ConnectToClient(This,bstrConnectionString);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_SetDesktopSharedRect(IRDPSRAPISharingSession2* This,LONG left,LONG top,LONG right,LONG bottom) {
+    return This->lpVtbl->SetDesktopSharedRect(This,left,top,right,bottom);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_GetDesktopSharedRect(IRDPSRAPISharingSession2* This,LONG *pleft,LONG *ptop,LONG *pright,LONG *pbottom) {
+    return This->lpVtbl->GetDesktopSharedRect(This,pleft,ptop,pright,pbottom);
+}
+/*** IRDPSRAPISharingSession2 methods ***/
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_ConnectUsingTransportStream(IRDPSRAPISharingSession2* This,IRDPSRAPITransportStream *pStream,BSTR bstrGroup,BSTR bstrAuthenticatedAttendeeName) {
+    return This->lpVtbl->ConnectUsingTransportStream(This,pStream,bstrGroup,bstrAuthenticatedAttendeeName);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_get_FrameBuffer(IRDPSRAPISharingSession2* This,IRDPSRAPIFrameBuffer **ppVal) {
+    return This->lpVtbl->get_FrameBuffer(This,ppVal);
+}
+static FORCEINLINE HRESULT IRDPSRAPISharingSession2_SendControlLevelChangeResponse(IRDPSRAPISharingSession2* This,IRDPSRAPIAttendee *pAttendee,CTRL_LEVEL RequestedLevel,LONG ReasonCode) {
+    return This->lpVtbl->SendControlLevelChangeResponse(This,pAttendee,RequestedLevel,ReasonCode);
+}
+#endif
+#endif
 
-#undef  INTERFACE
-#define INTERFACE IRDPSRAPIAttendee
-#ifdef __GNUC__
-#warning COM interfaces layout in this header has not been verified.
-#warning COM interfaces with incorrect layout may not work at all.
-__MINGW_BROKEN_INTERFACE(INTERFACE)
 #endif
-DECLARE_INTERFACE_(IRDPSRAPIAttendee,IDispatch)
+
+
+#endif  /* __IRDPSRAPISharingSession2_INTERFACE_DEFINED__ */
+
+#ifndef __RDPCOMAPILib_LIBRARY_DEFINED__
+#define __RDPCOMAPILib_LIBRARY_DEFINED__
+
+DEFINE_GUID(LIBID_RDPCOMAPILib, 0xcc802d05, 0xae07, 0x4c15, 0xb4,0x96, 0xdb,0x9d,0x22,0xaa,0x0a,0x84);
+
+typedef enum __WIDL_rdpencomapi_generated_name_0000002B {
+    CONST_MAX_CHANNEL_MESSAGE_SIZE = 1024,
+    CONST_MAX_CHANNEL_NAME_LEN = 8,
+    CONST_MAX_LEGACY_CHANNEL_MESSAGE_SIZE = 409600,
+    CONST_ATTENDEE_ID_EVERYONE = -1,
+    CONST_ATTENDEE_ID_HOST = 0,
+    CONST_CONN_INTERVAL = 50,
+    CONST_ATTENDEE_ID_DEFAULT = 0xffffffff
+} RDPENCOMAPI_CONSTANTS;
+/*****************************************************************************
+ * _IRDPSessionEvents dispinterface
+ */
+#ifndef ___IRDPSessionEvents_DISPINTERFACE_DEFINED__
+#define ___IRDPSessionEvents_DISPINTERFACE_DEFINED__
+
+DEFINE_GUID(DIID__IRDPSessionEvents, 0x98a97042, 0x6698, 0x40e9, 0x8e,0xfd, 0xb3,0x20,0x09,0x90,0x00,0x4b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("98a97042-6698-40e9-8efd-b3200990004b")
+_IRDPSessionEvents : public IDispatch
 {
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(_IRDPSessionEvents, 0x98a97042, 0x6698, 0x40e9, 0x8e,0xfd, 0xb3,0x20,0x09,0x90,0x00,0x4b)
+#endif
+#else
+typedef struct _IRDPSessionEventsVtbl {
     BEGIN_INTERFACE
 
-    /* IUnknown methods */
-    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
-    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG, Release)(THIS) PURE;
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        _IRDPSessionEvents *This,
+        REFIID riid,
+        void **ppvObject);
 
-    /* IDispatch methods */
-    STDMETHOD_(HRESULT,GetTypeInfoCount)(THIS_ unsigned int FAR*  pctinfo) PURE;
-    STDMETHOD_(HRESULT,GetTypeInfo)(THIS_ unsigned int  iTInfo,LCID  lcid,ITypeInfo FAR* FAR*  ppTInfo) PURE;
-    STDMETHOD_(HRESULT,GetIDsOfNames)(THIS_ REFIID  riid,OLECHAR FAR* FAR*  rgszNames,unsigned int  cNames,LCID   lcid,DISPID FAR*  rgDispId) PURE;
-    STDMETHOD_(HRESULT,Invoke)(THIS_ DISPID  dispIdMember,REFIID  riid,LCID  lcid,WORD  wFlags,DISPPARAMS FAR*  pDispParams,VARIANT FAR*  pVarResult,EXCEPINFO FAR*  pExcepInfo,unsigned int FAR*  puArgErr) PURE;
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        _IRDPSessionEvents *This);
 
-    /* IRDPSRAPIAttendee methods */
-    STDMETHOD_(HRESULT,get_Id)(THIS_ __LONG32 *pId) PURE;
-    STDMETHOD_(HRESULT,get_RemoteName)(THIS_ BSTR *pVal) PURE;
-    STDMETHOD_(HRESULT,get_ControlLevel)(THIS_ CTRL_LEVEL *pVal) PURE;
-    STDMETHOD_(HRESULT,put_ControlLevel)(THIS_ CTRL_LEVEL pNewVal) PURE;
-    STDMETHOD_(HRESULT,get_Invitation)(THIS_ IRDPSRAPIInvitation **ppVal) PURE;
-    STDMETHOD_(HRESULT,TerminateConnection)(THIS) PURE;
-    STDMETHOD_(HRESULT,get_Flags)(THIS_ __LONG32 *plFlags) PURE;
-    STDMETHOD_(HRESULT,get_ConnectivityInfo)(THIS_ IUnknown **ppVal) PURE;
+    ULONG (STDMETHODCALLTYPE *Release)(
+        _IRDPSessionEvents *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        _IRDPSessionEvents *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        _IRDPSessionEvents *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        _IRDPSessionEvents *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        _IRDPSessionEvents *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
 
     END_INTERFACE
+} _IRDPSessionEventsVtbl;
+
+interface _IRDPSessionEvents {
+    CONST_VTBL _IRDPSessionEventsVtbl* lpVtbl;
 };
+
 #ifdef COBJMACROS
-#define IRDPSRAPIAttendee_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IRDPSRAPIAttendee_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IRDPSRAPIAttendee_Release(This) (This)->lpVtbl->Release(This)
-#define IRDPSRAPIAttendee_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
-#define IRDPSRAPIAttendee_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
-#define IRDPSRAPIAttendee_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
-#define IRDPSRAPIAttendee_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
-#define IRDPSRAPIAttendee_get_Id(This,pId) (This)->lpVtbl->get_Id(This,pId)
-#define IRDPSRAPIAttendee_get_RemoteName(This,pVal) (This)->lpVtbl->get_RemoteName(This,pVal)
-#define IRDPSRAPIAttendee_get_ControlLevel(This,pVal) (This)->lpVtbl->get_ControlLevel(This,pVal)
-#define IRDPSRAPIAttendee_put_ControlLevel(This,pNewVal) (This)->lpVtbl->put_ControlLevel(This,pNewVal)
-#define IRDPSRAPIAttendee_get_Invitation(This,ppVal) (This)->lpVtbl->get_Invitation(This,ppVal)
-#define IRDPSRAPIAttendee_TerminateConnection() (This)->lpVtbl->TerminateConnection(This)
-#define IRDPSRAPIAttendee_get_Flags(This,plFlags) (This)->lpVtbl->get_Flags(This,plFlags)
-#define IRDPSRAPIAttendee_get_ConnectivityInfo(This,ppVal) (This)->lpVtbl->get_ConnectivityInfo(This,ppVal)
-#endif /*COBJMACROS*/
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define _IRDPSessionEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define _IRDPSessionEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define _IRDPSessionEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define _IRDPSessionEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define _IRDPSessionEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define _IRDPSessionEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define _IRDPSessionEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT _IRDPSessionEvents_QueryInterface(_IRDPSessionEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG _IRDPSessionEvents_AddRef(_IRDPSessionEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG _IRDPSessionEvents_Release(_IRDPSessionEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT _IRDPSessionEvents_GetTypeInfoCount(_IRDPSessionEvents* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT _IRDPSessionEvents_GetTypeInfo(_IRDPSessionEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT _IRDPSessionEvents_GetIDsOfNames(_IRDPSessionEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT _IRDPSessionEvents_Invoke(_IRDPSessionEvents* 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);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ___IRDPSessionEvents_DISPINTERFACE_DEFINED__ */
+
+typedef struct __ReferenceRemainingTypes__ {
+    CTRL_LEVEL __ctrlLevel__;
+    ATTENDEE_DISCONNECT_REASON __attendeeDisconnectReason__;
+    CHANNEL_PRIORITY __channelPriority__;
+    CHANNEL_FLAGS __channelFlags__;
+    CHANNEL_ACCESS_ENUM __channelAccessEnum__;
+    RDPENCOMAPI_ATTENDEE_FLAGS __rdpencomapiAttendeeFlags__;
+    RDPSRAPI_WND_FLAGS __rdpsrapiWndFlags__;
+    RDPSRAPI_APP_FLAGS __rdpsrapiAppFlags__;
+} __ReferenceRemainingTypes__;
+#ifndef __IRDPViewerRenderingSurface_FWD_DEFINED__
+#define __IRDPViewerRenderingSurface_FWD_DEFINED__
+typedef interface IRDPViewerRenderingSurface IRDPViewerRenderingSurface;
+#ifdef __cplusplus
+interface IRDPViewerRenderingSurface;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPViewerInputSink_FWD_DEFINED__
+#define __IRDPViewerInputSink_FWD_DEFINED__
+typedef interface IRDPViewerInputSink IRDPViewerInputSink;
+#ifdef __cplusplus
+interface IRDPViewerInputSink;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIAudioStream_FWD_DEFINED__
+#define __IRDPSRAPIAudioStream_FWD_DEFINED__
+typedef interface IRDPSRAPIAudioStream IRDPSRAPIAudioStream;
+#ifdef __cplusplus
+interface IRDPSRAPIAudioStream;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRDPSRAPIPerfCounterLoggingManager_FWD_DEFINED__
+#define __IRDPSRAPIPerfCounterLoggingManager_FWD_DEFINED__
+typedef interface IRDPSRAPIPerfCounterLoggingManager IRDPSRAPIPerfCounterLoggingManager;
+#ifdef __cplusplus
+interface IRDPSRAPIPerfCounterLoggingManager;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * RDPViewer coclass
+ */
+
+DEFINE_GUID(CLSID_RDPViewer, 0x32be5ed2, 0x5c86, 0x480f, 0xa9,0x14, 0x0f,0xf8,0x88,0x5a,0x1b,0x3f);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("32be5ed2-5c86-480f-a914-0ff8885a1b3f") RDPViewer;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPViewer, 0x32be5ed2, 0x5c86, 0x480f, 0xa9,0x14, 0x0f,0xf8,0x88,0x5a,0x1b,0x3f)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPISessionProperties coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPISessionProperties, 0xdd7594ff, 0xea2a, 0x4c06, 0x8f,0xdf, 0x13,0x2d,0xe4,0x8b,0x65,0x10);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("dd7594ff-ea2a-4c06-8fdf-132de48b6510") RDPSRAPISessionProperties;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPISessionProperties, 0xdd7594ff, 0xea2a, 0x4c06, 0x8f,0xdf, 0x13,0x2d,0xe4,0x8b,0x65,0x10)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIInvitationManager coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIInvitationManager, 0x53d9c9db, 0x75ab, 0x4271, 0x94,0x8a, 0x4c,0x4e,0xb3,0x6a,0x8f,0x2b);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("53d9c9db-75ab-4271-948a-4c4eb36a8f2b") RDPSRAPIInvitationManager;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIInvitationManager, 0x53d9c9db, 0x75ab, 0x4271, 0x94,0x8a, 0x4c,0x4e,0xb3,0x6a,0x8f,0x2b)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIInvitation coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIInvitation, 0x49174dc6, 0x0731, 0x4b5e, 0x8e,0xe1, 0x83,0xa6,0x3d,0x38,0x68,0xfa);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("49174dc6-0731-4b5e-8ee1-83a63d3868fa") RDPSRAPIInvitation;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIInvitation, 0x49174dc6, 0x0731, 0x4b5e, 0x8e,0xe1, 0x83,0xa6,0x3d,0x38,0x68,0xfa)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIAttendeeManager coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIAttendeeManager, 0xd7b13a01, 0xf7d4, 0x42a6, 0x85,0x95, 0x12,0xfc,0x8c,0x24,0xe8,0x51);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("d7b13a01-f7d4-42a6-8595-12fc8c24e851") RDPSRAPIAttendeeManager;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIAttendeeManager, 0xd7b13a01, 0xf7d4, 0x42a6, 0x85,0x95, 0x12,0xfc,0x8c,0x24,0xe8,0x51)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIAttendee coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIAttendee, 0x74f93bb5, 0x755f, 0x488e, 0x8a,0x29, 0x23,0x90,0x10,0x8a,0xef,0x55);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("74f93bb5-755f-488e-8a29-2390108aef55") RDPSRAPIAttendee;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIAttendee, 0x74f93bb5, 0x755f, 0x488e, 0x8a,0x29, 0x23,0x90,0x10,0x8a,0xef,0x55)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIAttendeeDisconnectInfo coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIAttendeeDisconnectInfo, 0xb47d7250, 0x5bdb, 0x405d, 0xb4,0x87, 0xca,0xad,0x9c,0x56,0xf4,0xf8);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("b47d7250-5bdb-405d-b487-caad9c56f4f8") RDPSRAPIAttendeeDisconnectInfo;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIAttendeeDisconnectInfo, 0xb47d7250, 0x5bdb, 0x405d, 0xb4,0x87, 0xca,0xad,0x9c,0x56,0xf4,0xf8)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIApplicationFilter coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIApplicationFilter, 0xe35ace89, 0xc7e8, 0x427e, 0xa4,0xf9, 0xb9,0xda,0x07,0x28,0x26,0xbd);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("e35ace89-c7e8-427e-a4f9-b9da072826bd") RDPSRAPIApplicationFilter;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIApplicationFilter, 0xe35ace89, 0xc7e8, 0x427e, 0xa4,0xf9, 0xb9,0xda,0x07,0x28,0x26,0xbd)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIApplicationList coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIApplicationList, 0x9e31c815, 0x7433, 0x4876, 0x97,0xfb, 0xed,0x59,0xfe,0x2b,0xaa,0x22);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("9e31c815-7433-4876-97fb-ed59fe2baa22") RDPSRAPIApplicationList;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIApplicationList, 0x9e31c815, 0x7433, 0x4876, 0x97,0xfb, 0xed,0x59,0xfe,0x2b,0xaa,0x22)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIApplication coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIApplication, 0xc116a484, 0x4b25, 0x4b9f, 0x8a,0x54, 0xb9,0x34,0xb0,0x6e,0x57,0xfa);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("c116a484-4b25-4b9f-8a54-b934b06e57fa") RDPSRAPIApplication;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIApplication, 0xc116a484, 0x4b25, 0x4b9f, 0x8a,0x54, 0xb9,0x34,0xb0,0x6e,0x57,0xfa)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIWindowList coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIWindowList, 0x9c21e2b8, 0x5dd4, 0x42cc, 0x81,0xba, 0x1c,0x09,0x98,0x52,0xe6,0xfa);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("9c21e2b8-5dd4-42cc-81ba-1c099852e6fa") RDPSRAPIWindowList;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIWindowList, 0x9c21e2b8, 0x5dd4, 0x42cc, 0x81,0xba, 0x1c,0x09,0x98,0x52,0xe6,0xfa)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIWindow coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIWindow, 0x03cf46db, 0xce45, 0x4d36, 0x86,0xed, 0xed,0x28,0xb7,0x43,0x98,0xbf);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("03cf46db-ce45-4d36-86ed-ed28b74398bf") RDPSRAPIWindow;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIWindow, 0x03cf46db, 0xce45, 0x4d36, 0x86,0xed, 0xed,0x28,0xb7,0x43,0x98,0xbf)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPITcpConnectionInfo coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPITcpConnectionInfo, 0xbe49db3f, 0xebb6, 0x4278, 0x8c,0xe0, 0xd5,0x45,0x58,0x33,0xea,0xee);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("be49db3f-ebb6-4278-8ce0-d5455833eaee") RDPSRAPITcpConnectionInfo;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPITcpConnectionInfo, 0xbe49db3f, 0xebb6, 0x4278, 0x8c,0xe0, 0xd5,0x45,0x58,0x33,0xea,0xee)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSession coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSession, 0x9b78f0e6, 0x3e05, 0x4a5b, 0xb2,0xe8, 0xe7,0x43,0xa8,0x95,0x6b,0x65);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("9b78f0e6-3e05-4a5b-b2e8-e743a8956b65") RDPSession;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSession, 0x9b78f0e6, 0x3e05, 0x4a5b, 0xb2,0xe8, 0xe7,0x43,0xa8,0x95,0x6b,0x65)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPSRAPIFrameBuffer coclass
+ */
+
+DEFINE_GUID(CLSID_RDPSRAPIFrameBuffer, 0xa4f66bcc, 0x538e, 0x4101, 0x95,0x1d, 0x30,0x84,0x7a,0xdb,0x51,0x01);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("a4f66bcc-538e-4101-951d-30847adb5101") RDPSRAPIFrameBuffer;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPSRAPIFrameBuffer, 0xa4f66bcc, 0x538e, 0x4101, 0x95,0x1d, 0x30,0x84,0x7a,0xdb,0x51,0x01)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPTransportStreamBuffer coclass
+ */
+
+DEFINE_GUID(CLSID_RDPTransportStreamBuffer, 0x8d4a1c69, 0xf17f, 0x4549, 0xa6,0x99, 0x76,0x1c,0x6e,0x6b,0x5c,0x0a);
 
-#endif /*(_WIN32_WINNT >= 0x0600)*/
+#ifdef __cplusplus
+class DECLSPEC_UUID("8d4a1c69-f17f-4549-a699-761c6e6b5c0a") RDPTransportStreamBuffer;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPTransportStreamBuffer, 0x8d4a1c69, 0xf17f, 0x4549, 0xa6,0x99, 0x76,0x1c,0x6e,0x6b,0x5c,0x0a)
+#endif
+#endif
+
+/*****************************************************************************
+ * RDPTransportStreamEvents coclass
+ */
+
+DEFINE_GUID(CLSID_RDPTransportStreamEvents, 0x31e3ab20, 0x5350, 0x483f, 0x9d,0xc6, 0x67,0x48,0x66,0x5e,0xfd,0xeb);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("31e3ab20-5350-483f-9dc6-6748665efdeb") RDPTransportStreamEvents;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(RDPTransportStreamEvents, 0x31e3ab20, 0x5350, 0x483f, 0x9d,0xc6, 0x67,0x48,0x66,0x5e,0xfd,0xeb)
+#endif
+#endif
+
+#endif /* __RDPCOMAPILib_LIBRARY_DEFINED__ */
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+/* Begin additional prototypes for all interfaces */
+
+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 *);
 
-#endif /*_INC_RDPENCOMAPI */
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
 
+#endif /* __rdpencomapi_h__ */
lib/libc/include/any-windows-any/realtimeapiset.h
@@ -14,6 +14,7 @@ extern "C" {
 #endif
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
 #if _WIN32_WINNT >= 0x0600
   WINBASEAPI WINBOOL WINAPI QueryThreadCycleTime (HANDLE ThreadHandle, PULONG64 CycleTime);
   WINBASEAPI WINBOOL WINAPI QueryProcessCycleTime (HANDLE ProcessHandle, PULONG64 CycleTime);
@@ -23,15 +24,27 @@ extern "C" {
 #if _WIN32_WINNT >= 0x0601
   WINBASEAPI WINBOOL WINAPI QueryIdleProcessorCycleTimeEx (USHORT Group, PULONG BufferLength, PULONG64 ProcessorIdleCycleTime);
 #endif
-#endif
+
+#endif /* WINAPI_PARTITION_DESKTOP */
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
+
+  WINBASEAPI VOID WINAPI QueryInterruptTimePrecise (PULONGLONG lpInterruptTimePrecise);
+  WINBASEAPI VOID WINAPI QueryUnbiasedInterruptTimePrecise (PULONGLONG lpUnbiasedInterruptTimePrecise);
+  WINBASEAPI VOID WINAPI QueryInterruptTime (PULONGLONG lpInterruptTime);
+
 #if _WIN32_WINNT >= 0x0601
   WINBASEAPI WINBOOL WINAPI QueryUnbiasedInterruptTime (PULONGLONG UnbiasedTime);
 #endif
-#endif
+
+  WINBASEAPI HRESULT WINAPI QueryAuxiliaryCounterFrequency (PULONGLONG lpAuxiliaryCounterFrequency);
+  WINBASEAPI HRESULT WINAPI ConvertAuxiliaryCounterToPerformanceCounter (ULONGLONG ullAuxiliaryCounterValue, PULONGLONG lpPerformanceCounterValue, PULONGLONG lpConversionError);
+  WINBASEAPI HRESULT WINAPI ConvertPerformanceCounterToAuxiliaryCounter (ULONGLONG ullPerformanceCounterValue, PULONGLONG lpAuxiliaryCounterValue, PULONGLONG lpConversionError);
+
+#endif /* WINAPI_PARTITION_APP */
 
 #ifdef __cplusplus
 }
 #endif
-#endif
+
+#endif /* _APISETREALTIME_ */
lib/libc/include/any-windows-any/regbag.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/regbag.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/regbag.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/relogger.h
@@ -0,0 +1,636 @@
+/*** Autogenerated by WIDL 6.4 from include/relogger.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __relogger_h__
+#define __relogger_h__
+
+/* Forward declarations */
+
+#ifndef __ITraceEvent_FWD_DEFINED__
+#define __ITraceEvent_FWD_DEFINED__
+typedef interface ITraceEvent ITraceEvent;
+#ifdef __cplusplus
+interface ITraceEvent;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ITraceEventCallback_FWD_DEFINED__
+#define __ITraceEventCallback_FWD_DEFINED__
+typedef interface ITraceEventCallback ITraceEventCallback;
+#ifdef __cplusplus
+interface ITraceEventCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ITraceRelogger_FWD_DEFINED__
+#define __ITraceRelogger_FWD_DEFINED__
+typedef interface ITraceRelogger ITraceRelogger;
+#ifdef __cplusplus
+interface ITraceRelogger;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __CTraceRelogger_FWD_DEFINED__
+#define __CTraceRelogger_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class CTraceRelogger CTraceRelogger;
+#else
+typedef struct CTraceRelogger CTraceRelogger;
+#endif /* defined __cplusplus */
+#endif /* defined __CTraceRelogger_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+#include <oaidl.h>
+#include <ocidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _EVENT_DESCRIPTOR {
+    USHORT Id;
+    UCHAR Version;
+    UCHAR Channel;
+    UCHAR Level;
+    UCHAR Opcode;
+    USHORT Task;
+    ULONGLONG Keyword;
+} EVENT_DESCRIPTOR;
+typedef struct _EVENT_DESCRIPTOR *PEVENT_DESCRIPTOR;
+typedef const EVENT_DESCRIPTOR *PCEVENT_DESCRIPTOR;
+typedef struct _EVENT_HEADER {
+    USHORT Size;
+    USHORT HeaderType;
+    USHORT Flags;
+    USHORT EventProperty;
+    ULONG ThreadId;
+    ULONG ProcessId;
+    LARGE_INTEGER TimeStamp;
+    GUID ProviderId;
+    EVENT_DESCRIPTOR EventDescriptor;
+    union {
+        struct {
+            ULONG KernelTime;
+            ULONG UserTime;
+        } DUMMYSTRUCTNAME;
+        ULONG64 ProcessorTime;
+    } DUMMYUNIONNAME;
+    GUID ActivityId;
+} EVENT_HEADER;
+typedef struct _EVENT_HEADER *PEVENT_HEADER;
+typedef struct _ETW_BUFFER_CONTEXT {
+    union {
+        struct {
+            UCHAR ProcessorNumber;
+            UCHAR Alignment;
+        } DUMMYSTRUCTNAME;
+        USHORT ProcessorIndex;
+    } DUMMYUNIONNAME;
+    USHORT LoggerId;
+} ETW_BUFFER_CONTEXT;
+typedef struct _ETW_BUFFER_CONTEXT *PETW_BUFFER_CONTEXT;
+typedef struct _EVENT_HEADER_EXTENDED_DATA_ITEM {
+    USHORT Reserved1;
+    USHORT ExtType;
+    USHORT Linkage;
+    USHORT DataSize;
+    ULONGLONG DataPtr;
+} EVENT_HEADER_EXTENDED_DATA_ITEM;
+typedef struct _EVENT_HEADER_EXTENDED_DATA_ITEM *PEVENT_HEADER_EXTENDED_DATA_ITEM;
+typedef struct _EVENT_RECORD {
+    EVENT_HEADER EventHeader;
+    ETW_BUFFER_CONTEXT BufferContext;
+    USHORT ExtendedDataCount;
+    USHORT UserDataLength;
+    EVENT_HEADER_EXTENDED_DATA_ITEM *ExtendedData;
+    void *UserData;
+    void *UserContext;
+} EVENT_RECORD;
+typedef struct _EVENT_RECORD *PEVENT_RECORD;
+typedef ULONG64 TRACEHANDLE;
+typedef ULONG64 *PTRACEHANDLE;
+/*****************************************************************************
+ * ITraceEvent interface
+ */
+#ifndef __ITraceEvent_INTERFACE_DEFINED__
+#define __ITraceEvent_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ITraceEvent, 0x8cc97f40, 0x9028, 0x4ff3, 0x9b,0x62, 0x7d,0x1f,0x79,0xca,0x7b,0xcb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8cc97f40-9028-4ff3-9b62-7d1f79ca7bcb")
+ITraceEvent : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        ITraceEvent **NewEvent) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetUserContext(
+        void **UserContext) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetEventRecord(
+        PEVENT_RECORD *EventRecord) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetPayload(
+        BYTE *Payload,
+        ULONG PayloadSize) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetEventDescriptor(
+        PCEVENT_DESCRIPTOR EventDescriptor) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetProcessId(
+        ULONG ProcessId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetProcessorIndex(
+        ULONG ProcessorIndex) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetThreadId(
+        ULONG ThreadId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetThreadTimes(
+        ULONG KernelTime,
+        ULONG UserTime) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetActivityId(
+        LPCGUID ActivityId) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetTimeStamp(
+        LARGE_INTEGER *TimeStamp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetProviderId(
+        LPCGUID ProviderId) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ITraceEvent, 0x8cc97f40, 0x9028, 0x4ff3, 0x9b,0x62, 0x7d,0x1f,0x79,0xca,0x7b,0xcb)
+#endif
+#else
+typedef struct ITraceEventVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ITraceEvent *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ITraceEvent *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ITraceEvent *This);
+
+    /*** ITraceEvent methods ***/
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        ITraceEvent *This,
+        ITraceEvent **NewEvent);
+
+    HRESULT (STDMETHODCALLTYPE *GetUserContext)(
+        ITraceEvent *This,
+        void **UserContext);
+
+    HRESULT (STDMETHODCALLTYPE *GetEventRecord)(
+        ITraceEvent *This,
+        PEVENT_RECORD *EventRecord);
+
+    HRESULT (STDMETHODCALLTYPE *SetPayload)(
+        ITraceEvent *This,
+        BYTE *Payload,
+        ULONG PayloadSize);
+
+    HRESULT (STDMETHODCALLTYPE *SetEventDescriptor)(
+        ITraceEvent *This,
+        PCEVENT_DESCRIPTOR EventDescriptor);
+
+    HRESULT (STDMETHODCALLTYPE *SetProcessId)(
+        ITraceEvent *This,
+        ULONG ProcessId);
+
+    HRESULT (STDMETHODCALLTYPE *SetProcessorIndex)(
+        ITraceEvent *This,
+        ULONG ProcessorIndex);
+
+    HRESULT (STDMETHODCALLTYPE *SetThreadId)(
+        ITraceEvent *This,
+        ULONG ThreadId);
+
+    HRESULT (STDMETHODCALLTYPE *SetThreadTimes)(
+        ITraceEvent *This,
+        ULONG KernelTime,
+        ULONG UserTime);
+
+    HRESULT (STDMETHODCALLTYPE *SetActivityId)(
+        ITraceEvent *This,
+        LPCGUID ActivityId);
+
+    HRESULT (STDMETHODCALLTYPE *SetTimeStamp)(
+        ITraceEvent *This,
+        LARGE_INTEGER *TimeStamp);
+
+    HRESULT (STDMETHODCALLTYPE *SetProviderId)(
+        ITraceEvent *This,
+        LPCGUID ProviderId);
+
+    END_INTERFACE
+} ITraceEventVtbl;
+
+interface ITraceEvent {
+    CONST_VTBL ITraceEventVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ITraceEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ITraceEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ITraceEvent_Release(This) (This)->lpVtbl->Release(This)
+/*** ITraceEvent methods ***/
+#define ITraceEvent_Clone(This,NewEvent) (This)->lpVtbl->Clone(This,NewEvent)
+#define ITraceEvent_GetUserContext(This,UserContext) (This)->lpVtbl->GetUserContext(This,UserContext)
+#define ITraceEvent_GetEventRecord(This,EventRecord) (This)->lpVtbl->GetEventRecord(This,EventRecord)
+#define ITraceEvent_SetPayload(This,Payload,PayloadSize) (This)->lpVtbl->SetPayload(This,Payload,PayloadSize)
+#define ITraceEvent_SetEventDescriptor(This,EventDescriptor) (This)->lpVtbl->SetEventDescriptor(This,EventDescriptor)
+#define ITraceEvent_SetProcessId(This,ProcessId) (This)->lpVtbl->SetProcessId(This,ProcessId)
+#define ITraceEvent_SetProcessorIndex(This,ProcessorIndex) (This)->lpVtbl->SetProcessorIndex(This,ProcessorIndex)
+#define ITraceEvent_SetThreadId(This,ThreadId) (This)->lpVtbl->SetThreadId(This,ThreadId)
+#define ITraceEvent_SetThreadTimes(This,KernelTime,UserTime) (This)->lpVtbl->SetThreadTimes(This,KernelTime,UserTime)
+#define ITraceEvent_SetActivityId(This,ActivityId) (This)->lpVtbl->SetActivityId(This,ActivityId)
+#define ITraceEvent_SetTimeStamp(This,TimeStamp) (This)->lpVtbl->SetTimeStamp(This,TimeStamp)
+#define ITraceEvent_SetProviderId(This,ProviderId) (This)->lpVtbl->SetProviderId(This,ProviderId)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ITraceEvent_QueryInterface(ITraceEvent* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ITraceEvent_AddRef(ITraceEvent* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ITraceEvent_Release(ITraceEvent* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITraceEvent methods ***/
+static FORCEINLINE HRESULT ITraceEvent_Clone(ITraceEvent* This,ITraceEvent **NewEvent) {
+    return This->lpVtbl->Clone(This,NewEvent);
+}
+static FORCEINLINE HRESULT ITraceEvent_GetUserContext(ITraceEvent* This,void **UserContext) {
+    return This->lpVtbl->GetUserContext(This,UserContext);
+}
+static FORCEINLINE HRESULT ITraceEvent_GetEventRecord(ITraceEvent* This,PEVENT_RECORD *EventRecord) {
+    return This->lpVtbl->GetEventRecord(This,EventRecord);
+}
+static FORCEINLINE HRESULT ITraceEvent_SetPayload(ITraceEvent* This,BYTE *Payload,ULONG PayloadSize) {
+    return This->lpVtbl->SetPayload(This,Payload,PayloadSize);
+}
+static FORCEINLINE HRESULT ITraceEvent_SetEventDescriptor(ITraceEvent* This,PCEVENT_DESCRIPTOR EventDescriptor) {
+    return This->lpVtbl->SetEventDescriptor(This,EventDescriptor);
+}
+static FORCEINLINE HRESULT ITraceEvent_SetProcessId(ITraceEvent* This,ULONG ProcessId) {
+    return This->lpVtbl->SetProcessId(This,ProcessId);
+}
+static FORCEINLINE HRESULT ITraceEvent_SetProcessorIndex(ITraceEvent* This,ULONG ProcessorIndex) {
+    return This->lpVtbl->SetProcessorIndex(This,ProcessorIndex);
+}
+static FORCEINLINE HRESULT ITraceEvent_SetThreadId(ITraceEvent* This,ULONG ThreadId) {
+    return This->lpVtbl->SetThreadId(This,ThreadId);
+}
+static FORCEINLINE HRESULT ITraceEvent_SetThreadTimes(ITraceEvent* This,ULONG KernelTime,ULONG UserTime) {
+    return This->lpVtbl->SetThreadTimes(This,KernelTime,UserTime);
+}
+static FORCEINLINE HRESULT ITraceEvent_SetActivityId(ITraceEvent* This,LPCGUID ActivityId) {
+    return This->lpVtbl->SetActivityId(This,ActivityId);
+}
+static FORCEINLINE HRESULT ITraceEvent_SetTimeStamp(ITraceEvent* This,LARGE_INTEGER *TimeStamp) {
+    return This->lpVtbl->SetTimeStamp(This,TimeStamp);
+}
+static FORCEINLINE HRESULT ITraceEvent_SetProviderId(ITraceEvent* This,LPCGUID ProviderId) {
+    return This->lpVtbl->SetProviderId(This,ProviderId);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ITraceEvent_INTERFACE_DEFINED__ */
+
+#ifndef __ITraceRelogger_FWD_DEFINED__
+#define __ITraceRelogger_FWD_DEFINED__
+typedef interface ITraceRelogger ITraceRelogger;
+#ifdef __cplusplus
+interface ITraceRelogger;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * ITraceEventCallback interface
+ */
+#ifndef __ITraceEventCallback_INTERFACE_DEFINED__
+#define __ITraceEventCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ITraceEventCallback, 0x3ed25501, 0x593f, 0x43e9, 0x8f,0x38, 0x3a,0xb4,0x6f,0x5a,0x4a,0x52);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3ed25501-593f-43e9-8f38-3ab46f5a4a52")
+ITraceEventCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnBeginProcessTrace(
+        ITraceEvent *HeaderEvent,
+        ITraceRelogger *Relogger) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnFinalizeProcessTrace(
+        ITraceRelogger *Relogger) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OnEvent(
+        ITraceEvent *Event,
+        ITraceRelogger *Relogger) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ITraceEventCallback, 0x3ed25501, 0x593f, 0x43e9, 0x8f,0x38, 0x3a,0xb4,0x6f,0x5a,0x4a,0x52)
+#endif
+#else
+typedef struct ITraceEventCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ITraceEventCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ITraceEventCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ITraceEventCallback *This);
+
+    /*** ITraceEventCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnBeginProcessTrace)(
+        ITraceEventCallback *This,
+        ITraceEvent *HeaderEvent,
+        ITraceRelogger *Relogger);
+
+    HRESULT (STDMETHODCALLTYPE *OnFinalizeProcessTrace)(
+        ITraceEventCallback *This,
+        ITraceRelogger *Relogger);
+
+    HRESULT (STDMETHODCALLTYPE *OnEvent)(
+        ITraceEventCallback *This,
+        ITraceEvent *Event,
+        ITraceRelogger *Relogger);
+
+    END_INTERFACE
+} ITraceEventCallbackVtbl;
+
+interface ITraceEventCallback {
+    CONST_VTBL ITraceEventCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ITraceEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ITraceEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ITraceEventCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** ITraceEventCallback methods ***/
+#define ITraceEventCallback_OnBeginProcessTrace(This,HeaderEvent,Relogger) (This)->lpVtbl->OnBeginProcessTrace(This,HeaderEvent,Relogger)
+#define ITraceEventCallback_OnFinalizeProcessTrace(This,Relogger) (This)->lpVtbl->OnFinalizeProcessTrace(This,Relogger)
+#define ITraceEventCallback_OnEvent(This,Event,Relogger) (This)->lpVtbl->OnEvent(This,Event,Relogger)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ITraceEventCallback_QueryInterface(ITraceEventCallback* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ITraceEventCallback_AddRef(ITraceEventCallback* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ITraceEventCallback_Release(ITraceEventCallback* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITraceEventCallback methods ***/
+static FORCEINLINE HRESULT ITraceEventCallback_OnBeginProcessTrace(ITraceEventCallback* This,ITraceEvent *HeaderEvent,ITraceRelogger *Relogger) {
+    return This->lpVtbl->OnBeginProcessTrace(This,HeaderEvent,Relogger);
+}
+static FORCEINLINE HRESULT ITraceEventCallback_OnFinalizeProcessTrace(ITraceEventCallback* This,ITraceRelogger *Relogger) {
+    return This->lpVtbl->OnFinalizeProcessTrace(This,Relogger);
+}
+static FORCEINLINE HRESULT ITraceEventCallback_OnEvent(ITraceEventCallback* This,ITraceEvent *Event,ITraceRelogger *Relogger) {
+    return This->lpVtbl->OnEvent(This,Event,Relogger);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ITraceEventCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ITraceRelogger interface
+ */
+#ifndef __ITraceRelogger_INTERFACE_DEFINED__
+#define __ITraceRelogger_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ITraceRelogger, 0xf754ad43, 0x3bcc, 0x4286, 0x80,0x09, 0x9c,0x5d,0xa2,0x14,0xe8,0x4e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f754ad43-3bcc-4286-8009-9c5da214e84e")
+ITraceRelogger : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AddLogfileTraceStream(
+        BSTR LogfileName,
+        void *UserContext,
+        TRACEHANDLE *TraceHandle) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddRealtimeTraceStream(
+        BSTR LoggerName,
+        void *UserContext,
+        TRACEHANDLE *TraceHandle) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterCallback(
+        ITraceEventCallback *Callback) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Inject(
+        ITraceEvent *Event) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateEventInstance(
+        TRACEHANDLE TraceHandle,
+        ULONG Flags,
+        ITraceEvent **Event) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ProcessTrace(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetOutputFilename(
+        BSTR LogfileName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetCompressionMode(
+        BOOLEAN CompressionMode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Cancel(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ITraceRelogger, 0xf754ad43, 0x3bcc, 0x4286, 0x80,0x09, 0x9c,0x5d,0xa2,0x14,0xe8,0x4e)
+#endif
+#else
+typedef struct ITraceReloggerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ITraceRelogger *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ITraceRelogger *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ITraceRelogger *This);
+
+    /*** ITraceRelogger methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddLogfileTraceStream)(
+        ITraceRelogger *This,
+        BSTR LogfileName,
+        void *UserContext,
+        TRACEHANDLE *TraceHandle);
+
+    HRESULT (STDMETHODCALLTYPE *AddRealtimeTraceStream)(
+        ITraceRelogger *This,
+        BSTR LoggerName,
+        void *UserContext,
+        TRACEHANDLE *TraceHandle);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterCallback)(
+        ITraceRelogger *This,
+        ITraceEventCallback *Callback);
+
+    HRESULT (STDMETHODCALLTYPE *Inject)(
+        ITraceRelogger *This,
+        ITraceEvent *Event);
+
+    HRESULT (STDMETHODCALLTYPE *CreateEventInstance)(
+        ITraceRelogger *This,
+        TRACEHANDLE TraceHandle,
+        ULONG Flags,
+        ITraceEvent **Event);
+
+    HRESULT (STDMETHODCALLTYPE *ProcessTrace)(
+        ITraceRelogger *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetOutputFilename)(
+        ITraceRelogger *This,
+        BSTR LogfileName);
+
+    HRESULT (STDMETHODCALLTYPE *SetCompressionMode)(
+        ITraceRelogger *This,
+        BOOLEAN CompressionMode);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        ITraceRelogger *This);
+
+    END_INTERFACE
+} ITraceReloggerVtbl;
+
+interface ITraceRelogger {
+    CONST_VTBL ITraceReloggerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ITraceRelogger_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ITraceRelogger_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ITraceRelogger_Release(This) (This)->lpVtbl->Release(This)
+/*** ITraceRelogger methods ***/
+#define ITraceRelogger_AddLogfileTraceStream(This,LogfileName,UserContext,TraceHandle) (This)->lpVtbl->AddLogfileTraceStream(This,LogfileName,UserContext,TraceHandle)
+#define ITraceRelogger_AddRealtimeTraceStream(This,LoggerName,UserContext,TraceHandle) (This)->lpVtbl->AddRealtimeTraceStream(This,LoggerName,UserContext,TraceHandle)
+#define ITraceRelogger_RegisterCallback(This,Callback) (This)->lpVtbl->RegisterCallback(This,Callback)
+#define ITraceRelogger_Inject(This,Event) (This)->lpVtbl->Inject(This,Event)
+#define ITraceRelogger_CreateEventInstance(This,TraceHandle,Flags,Event) (This)->lpVtbl->CreateEventInstance(This,TraceHandle,Flags,Event)
+#define ITraceRelogger_ProcessTrace(This) (This)->lpVtbl->ProcessTrace(This)
+#define ITraceRelogger_SetOutputFilename(This,LogfileName) (This)->lpVtbl->SetOutputFilename(This,LogfileName)
+#define ITraceRelogger_SetCompressionMode(This,CompressionMode) (This)->lpVtbl->SetCompressionMode(This,CompressionMode)
+#define ITraceRelogger_Cancel(This) (This)->lpVtbl->Cancel(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ITraceRelogger_QueryInterface(ITraceRelogger* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ITraceRelogger_AddRef(ITraceRelogger* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ITraceRelogger_Release(ITraceRelogger* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITraceRelogger methods ***/
+static FORCEINLINE HRESULT ITraceRelogger_AddLogfileTraceStream(ITraceRelogger* This,BSTR LogfileName,void *UserContext,TRACEHANDLE *TraceHandle) {
+    return This->lpVtbl->AddLogfileTraceStream(This,LogfileName,UserContext,TraceHandle);
+}
+static FORCEINLINE HRESULT ITraceRelogger_AddRealtimeTraceStream(ITraceRelogger* This,BSTR LoggerName,void *UserContext,TRACEHANDLE *TraceHandle) {
+    return This->lpVtbl->AddRealtimeTraceStream(This,LoggerName,UserContext,TraceHandle);
+}
+static FORCEINLINE HRESULT ITraceRelogger_RegisterCallback(ITraceRelogger* This,ITraceEventCallback *Callback) {
+    return This->lpVtbl->RegisterCallback(This,Callback);
+}
+static FORCEINLINE HRESULT ITraceRelogger_Inject(ITraceRelogger* This,ITraceEvent *Event) {
+    return This->lpVtbl->Inject(This,Event);
+}
+static FORCEINLINE HRESULT ITraceRelogger_CreateEventInstance(ITraceRelogger* This,TRACEHANDLE TraceHandle,ULONG Flags,ITraceEvent **Event) {
+    return This->lpVtbl->CreateEventInstance(This,TraceHandle,Flags,Event);
+}
+static FORCEINLINE HRESULT ITraceRelogger_ProcessTrace(ITraceRelogger* This) {
+    return This->lpVtbl->ProcessTrace(This);
+}
+static FORCEINLINE HRESULT ITraceRelogger_SetOutputFilename(ITraceRelogger* This,BSTR LogfileName) {
+    return This->lpVtbl->SetOutputFilename(This,LogfileName);
+}
+static FORCEINLINE HRESULT ITraceRelogger_SetCompressionMode(ITraceRelogger* This,BOOLEAN CompressionMode) {
+    return This->lpVtbl->SetCompressionMode(This,CompressionMode);
+}
+static FORCEINLINE HRESULT ITraceRelogger_Cancel(ITraceRelogger* This) {
+    return This->lpVtbl->Cancel(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ITraceRelogger_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * CTraceRelogger coclass
+ */
+
+DEFINE_GUID(CLSID_CTraceRelogger, 0x7b40792d, 0x05ff, 0x44c4, 0x90,0x58, 0xf4,0x40,0xc7,0x1f,0x17,0xd4);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("7b40792d-05ff-44c4-9058-f440c71f17d4") CTraceRelogger;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(CTraceRelogger, 0x7b40792d, 0x05ff, 0x44c4, 0x90,0x58, 0xf4,0x40,0xc7,0x1f,0x17,0xd4)
+#endif
+#endif
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __relogger_h__ */
lib/libc/include/any-windows-any/rtworkq.h
@@ -0,0 +1,428 @@
+/*** Autogenerated by WIDL 6.4 from include/rtworkq.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __rtworkq_h__
+#define __rtworkq_h__
+
+/* Forward declarations */
+
+#ifndef __IRtwqAsyncResult_FWD_DEFINED__
+#define __IRtwqAsyncResult_FWD_DEFINED__
+typedef interface IRtwqAsyncResult IRtwqAsyncResult;
+#ifdef __cplusplus
+interface IRtwqAsyncResult;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRtwqAsyncCallback_FWD_DEFINED__
+#define __IRtwqAsyncCallback_FWD_DEFINED__
+typedef interface IRtwqAsyncCallback IRtwqAsyncCallback;
+#ifdef __cplusplus
+interface IRtwqAsyncCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IRtwqPlatformEvents_FWD_DEFINED__
+#define __IRtwqPlatformEvents_FWD_DEFINED__
+typedef interface IRtwqPlatformEvents IRtwqPlatformEvents;
+#ifdef __cplusplus
+interface IRtwqPlatformEvents;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum __WIDL_rtworkq_generated_name_0000000C {
+    RTWQ_STANDARD_WORKQUEUE = 0,
+    RTWQ_WINDOW_WORKQUEUE = 1,
+    RTWQ_MULTITHREADED_WORKQUEUE = 2
+} RTWQ_WORKQUEUE_TYPE;
+typedef UINT64 RTWQWORKITEM_KEY;
+/*****************************************************************************
+ * IRtwqAsyncResult interface
+ */
+#ifndef __IRtwqAsyncResult_INTERFACE_DEFINED__
+#define __IRtwqAsyncResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRtwqAsyncResult, 0xac6b7889, 0x0740, 0x4d51, 0x86,0x19, 0x90,0x59,0x94,0xa5,0x5c,0xc6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ac6b7889-0740-4d51-8619-905994a55cc6")
+IRtwqAsyncResult : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetState(
+        IUnknown **state) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStatus(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetStatus(
+        HRESULT status) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetObject(
+        IUnknown **object) = 0;
+
+    virtual IUnknown * STDMETHODCALLTYPE GetStateNoAddRef(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRtwqAsyncResult, 0xac6b7889, 0x0740, 0x4d51, 0x86,0x19, 0x90,0x59,0x94,0xa5,0x5c,0xc6)
+#endif
+#else
+typedef struct IRtwqAsyncResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRtwqAsyncResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRtwqAsyncResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRtwqAsyncResult *This);
+
+    /*** IRtwqAsyncResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetState)(
+        IRtwqAsyncResult *This,
+        IUnknown **state);
+
+    HRESULT (STDMETHODCALLTYPE *GetStatus)(
+        IRtwqAsyncResult *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetStatus)(
+        IRtwqAsyncResult *This,
+        HRESULT status);
+
+    HRESULT (STDMETHODCALLTYPE *GetObject)(
+        IRtwqAsyncResult *This,
+        IUnknown **object);
+
+    IUnknown * (STDMETHODCALLTYPE *GetStateNoAddRef)(
+        IRtwqAsyncResult *This);
+
+    END_INTERFACE
+} IRtwqAsyncResultVtbl;
+
+interface IRtwqAsyncResult {
+    CONST_VTBL IRtwqAsyncResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRtwqAsyncResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRtwqAsyncResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRtwqAsyncResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IRtwqAsyncResult methods ***/
+#define IRtwqAsyncResult_GetState(This,state) (This)->lpVtbl->GetState(This,state)
+#define IRtwqAsyncResult_GetStatus(This) (This)->lpVtbl->GetStatus(This)
+#define IRtwqAsyncResult_SetStatus(This,status) (This)->lpVtbl->SetStatus(This,status)
+#define IRtwqAsyncResult_GetObject(This,object) (This)->lpVtbl->GetObject(This,object)
+#define IRtwqAsyncResult_GetStateNoAddRef(This) (This)->lpVtbl->GetStateNoAddRef(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRtwqAsyncResult_QueryInterface(IRtwqAsyncResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRtwqAsyncResult_AddRef(IRtwqAsyncResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRtwqAsyncResult_Release(IRtwqAsyncResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRtwqAsyncResult methods ***/
+static FORCEINLINE HRESULT IRtwqAsyncResult_GetState(IRtwqAsyncResult* This,IUnknown **state) {
+    return This->lpVtbl->GetState(This,state);
+}
+static FORCEINLINE HRESULT IRtwqAsyncResult_GetStatus(IRtwqAsyncResult* This) {
+    return This->lpVtbl->GetStatus(This);
+}
+static FORCEINLINE HRESULT IRtwqAsyncResult_SetStatus(IRtwqAsyncResult* This,HRESULT status) {
+    return This->lpVtbl->SetStatus(This,status);
+}
+static FORCEINLINE HRESULT IRtwqAsyncResult_GetObject(IRtwqAsyncResult* This,IUnknown **object) {
+    return This->lpVtbl->GetObject(This,object);
+}
+static FORCEINLINE IUnknown * IRtwqAsyncResult_GetStateNoAddRef(IRtwqAsyncResult* This) {
+    return This->lpVtbl->GetStateNoAddRef(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRtwqAsyncResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRtwqAsyncCallback interface
+ */
+#ifndef __IRtwqAsyncCallback_INTERFACE_DEFINED__
+#define __IRtwqAsyncCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRtwqAsyncCallback, 0xa27003cf, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a27003cf-2354-4f2a-8d6a-ab7cff15437e")
+IRtwqAsyncCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetParameters(
+        DWORD *flags,
+        DWORD *queue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Invoke(
+        IRtwqAsyncResult *result) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRtwqAsyncCallback, 0xa27003cf, 0x2354, 0x4f2a, 0x8d,0x6a, 0xab,0x7c,0xff,0x15,0x43,0x7e)
+#endif
+#else
+typedef struct IRtwqAsyncCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRtwqAsyncCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRtwqAsyncCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRtwqAsyncCallback *This);
+
+    /*** IRtwqAsyncCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetParameters)(
+        IRtwqAsyncCallback *This,
+        DWORD *flags,
+        DWORD *queue);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IRtwqAsyncCallback *This,
+        IRtwqAsyncResult *result);
+
+    END_INTERFACE
+} IRtwqAsyncCallbackVtbl;
+
+interface IRtwqAsyncCallback {
+    CONST_VTBL IRtwqAsyncCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRtwqAsyncCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRtwqAsyncCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRtwqAsyncCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IRtwqAsyncCallback methods ***/
+#define IRtwqAsyncCallback_GetParameters(This,flags,queue) (This)->lpVtbl->GetParameters(This,flags,queue)
+#define IRtwqAsyncCallback_Invoke(This,result) (This)->lpVtbl->Invoke(This,result)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRtwqAsyncCallback_QueryInterface(IRtwqAsyncCallback* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRtwqAsyncCallback_AddRef(IRtwqAsyncCallback* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRtwqAsyncCallback_Release(IRtwqAsyncCallback* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRtwqAsyncCallback methods ***/
+static FORCEINLINE HRESULT IRtwqAsyncCallback_GetParameters(IRtwqAsyncCallback* This,DWORD *flags,DWORD *queue) {
+    return This->lpVtbl->GetParameters(This,flags,queue);
+}
+static FORCEINLINE HRESULT IRtwqAsyncCallback_Invoke(IRtwqAsyncCallback* This,IRtwqAsyncResult *result) {
+    return This->lpVtbl->Invoke(This,result);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRtwqAsyncCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IRtwqPlatformEvents interface
+ */
+#ifndef __IRtwqPlatformEvents_INTERFACE_DEFINED__
+#define __IRtwqPlatformEvents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IRtwqPlatformEvents, 0x63d9255a, 0x7ff1, 0x4b61, 0x8f,0xaf, 0xed,0x64,0x60,0xda,0xcf,0x2b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("63d9255a-7ff1-4b61-8faf-ed6460dacf2b")
+IRtwqPlatformEvents : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE InitializationComplete(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ShutdownStart(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ShutdownComplete(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IRtwqPlatformEvents, 0x63d9255a, 0x7ff1, 0x4b61, 0x8f,0xaf, 0xed,0x64,0x60,0xda,0xcf,0x2b)
+#endif
+#else
+typedef struct IRtwqPlatformEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IRtwqPlatformEvents *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IRtwqPlatformEvents *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IRtwqPlatformEvents *This);
+
+    /*** IRtwqPlatformEvents methods ***/
+    HRESULT (STDMETHODCALLTYPE *InitializationComplete)(
+        IRtwqPlatformEvents *This);
+
+    HRESULT (STDMETHODCALLTYPE *ShutdownStart)(
+        IRtwqPlatformEvents *This);
+
+    HRESULT (STDMETHODCALLTYPE *ShutdownComplete)(
+        IRtwqPlatformEvents *This);
+
+    END_INTERFACE
+} IRtwqPlatformEventsVtbl;
+
+interface IRtwqPlatformEvents {
+    CONST_VTBL IRtwqPlatformEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IRtwqPlatformEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IRtwqPlatformEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IRtwqPlatformEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IRtwqPlatformEvents methods ***/
+#define IRtwqPlatformEvents_InitializationComplete(This) (This)->lpVtbl->InitializationComplete(This)
+#define IRtwqPlatformEvents_ShutdownStart(This) (This)->lpVtbl->ShutdownStart(This)
+#define IRtwqPlatformEvents_ShutdownComplete(This) (This)->lpVtbl->ShutdownComplete(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IRtwqPlatformEvents_QueryInterface(IRtwqPlatformEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IRtwqPlatformEvents_AddRef(IRtwqPlatformEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IRtwqPlatformEvents_Release(IRtwqPlatformEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IRtwqPlatformEvents methods ***/
+static FORCEINLINE HRESULT IRtwqPlatformEvents_InitializationComplete(IRtwqPlatformEvents* This) {
+    return This->lpVtbl->InitializationComplete(This);
+}
+static FORCEINLINE HRESULT IRtwqPlatformEvents_ShutdownStart(IRtwqPlatformEvents* This) {
+    return This->lpVtbl->ShutdownStart(This);
+}
+static FORCEINLINE HRESULT IRtwqPlatformEvents_ShutdownComplete(IRtwqPlatformEvents* This) {
+    return This->lpVtbl->ShutdownComplete(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IRtwqPlatformEvents_INTERFACE_DEFINED__ */
+
+#define RTWQ_E_ERROR(x)            ((HRESULT)(0xc00d0000L+x))
+#define RTWQ_E_BUFFERTOOSMALL      RTWQ_E_ERROR(14001)
+#define RTWQ_E_NOT_INITIALIZED     RTWQ_E_ERROR(14006)
+#define RTWQ_E_UNEXPECTED          RTWQ_E_ERROR(14011)
+#define RTWQ_E_NOT_FOUND           RTWQ_E_ERROR(14037)
+#define RTWQ_E_OPERATION_CANCELLED RTWQ_E_ERROR(14061)
+#define RTWQ_E_INVALID_WORKQUEUE   RTWQ_E_ERROR(14079)
+#define RTWQ_E_SHUTDOWN            RTWQ_E_ERROR(16005)
+#ifdef __WINESRC__
+typedef struct tagRTWQASYNCRESULT
+{
+    IRtwqAsyncResult AsyncResult;
+#else
+typedef struct tagRTWQASYNCRESULT : public IRtwqAsyncResult {
+#endif
+    OVERLAPPED overlapped;
+    IRtwqAsyncCallback *pCallback;
+    HRESULT hrStatusResult;
+    DWORD dwBytesTransferred;
+    HANDLE hEvent;
+} RTWQASYNCRESULT;
+typedef void (WINAPI *RTWQPERIODICCALLBACK)(IUnknown *context);
+HRESULT WINAPI RtwqAddPeriodicCallback(RTWQPERIODICCALLBACK callback, IUnknown *context, DWORD *key);
+HRESULT WINAPI RtwqAllocateSerialWorkQueue(DWORD target_queue, DWORD *queue);
+HRESULT WINAPI RtwqAllocateWorkQueue(RTWQ_WORKQUEUE_TYPE queue_type, DWORD *queue);
+HRESULT WINAPI RtwqBeginRegisterWorkQueueWithMMCSS(DWORD queue, const WCHAR *mmcss_class, DWORD taskid, LONG priority, IRtwqAsyncCallback *callback, IUnknown *state);
+HRESULT WINAPI RtwqBeginUnregisterWorkQueueWithMMCSS(DWORD queue, IRtwqAsyncCallback *callback, IUnknown *state);
+HRESULT WINAPI RtwqCancelDeadline(HANDLE request);
+HRESULT WINAPI RtwqCancelWorkItem(RTWQWORKITEM_KEY key);
+HRESULT WINAPI RtwqCreateAsyncResult(IUnknown *object, IRtwqAsyncCallback *callback, IUnknown *state, IRtwqAsyncResult **result);
+HRESULT WINAPI RtwqEndRegisterWorkQueueWithMMCSS(IRtwqAsyncResult *result, DWORD *taskid);
+HRESULT WINAPI RtwqGetWorkQueueMMCSSClass(DWORD queue, WCHAR *mmcss_class, DWORD *length);
+HRESULT WINAPI RtwqGetWorkQueueMMCSSPriority(DWORD queue, LONG *priority);
+HRESULT WINAPI RtwqGetWorkQueueMMCSSTaskId(DWORD queue, DWORD *taskid);
+HRESULT WINAPI RtwqInvokeCallback(IRtwqAsyncResult *result);
+HRESULT WINAPI RtwqJoinWorkQueue(DWORD queue, HANDLE hFile, HANDLE *cookie);
+HRESULT WINAPI RtwqLockPlatform(void);
+HRESULT WINAPI RtwqLockSharedWorkQueue(const WCHAR *usageclass, LONG priority, DWORD *taskid, DWORD *queue);
+HRESULT WINAPI RtwqLockWorkQueue(DWORD queue);
+HRESULT WINAPI RtwqPutWaitingWorkItem(HANDLE event, LONG priority, IRtwqAsyncResult *result, RTWQWORKITEM_KEY *key);
+HRESULT WINAPI RtwqPutWorkItem(DWORD queue, LONG priority, IRtwqAsyncResult *result);
+HRESULT WINAPI RtwqRegisterPlatformEvents(IRtwqPlatformEvents *events);
+HRESULT WINAPI RtwqRegisterPlatformWithMMCSS(const WCHAR *mmcss_class, DWORD *taskid, LONG priority);
+HRESULT WINAPI RtwqRemovePeriodicCallback(DWORD key);
+HRESULT WINAPI RtwqScheduleWorkItem(IRtwqAsyncResult *result, INT64 timeout, RTWQWORKITEM_KEY *key);
+HRESULT WINAPI RtwqSetDeadline(DWORD queue_id, LONGLONG deadline, HANDLE *request);
+HRESULT WINAPI RtwqSetDeadline2(DWORD queue_id, LONGLONG deadline, LONGLONG predeadline, HANDLE *request);
+HRESULT WINAPI RtwqSetLongRunning(DWORD queue_id, WINBOOL enable);
+HRESULT WINAPI RtwqShutdown(void);
+HRESULT WINAPI RtwqStartup(void);
+HRESULT WINAPI RtwqUnjoinWorkQueue(DWORD queue, HANDLE cookie);
+HRESULT WINAPI RtwqUnlockPlatform(void);
+HRESULT WINAPI RtwqUnlockWorkQueue(DWORD queue);
+HRESULT WINAPI RtwqUnregisterPlatformEvents(IRtwqPlatformEvents *events);
+HRESULT WINAPI RtwqUnregisterPlatformFromMMCSS(void);
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __rtworkq_h__ */
lib/libc/include/any-windows-any/sal.h
@@ -37,6 +37,29 @@
 #define _In_reads_to_ptr_z_(p)
 #define _In_reads_to_ptr_opt_z_(p)
 
+#define _In_count_(s)
+#define _In_opt_count_(s)
+#define _In_bytecount_(s)
+#define _In_opt_bytecount_(s)
+#define _In_count_c_(s)
+#define _In_opt_count_c_(s)
+#define _In_bytecount_c_(s)
+#define _In_opt_bytecount_c_(s)
+#define _In_z_count_(s)
+#define _In_opt_z_count_(s)
+#define _In_z_bytecount_(s)
+#define _In_opt_z_bytecount_(s)
+#define _In_z_count_c_(s)
+#define _In_opt_z_count_c_(s)
+#define _In_z_bytecount_c_(s)
+#define _In_opt_z_bytecount_c_(s)
+#define _In_ptrdiff_count_(s)
+#define _In_opt_ptrdiff_count_(s)
+#define _In_count_x_(s)
+#define _In_opt_count_x_(s)
+#define _In_bytecount_x_(s)
+#define _In_opt_bytecount_x_(s)
+
 /* Output parameters */
 #define _Out_
 #define _Out_opt_
@@ -59,6 +82,57 @@
 #define _Out_writes_to_ptr_z_(p)
 #define _Out_writes_to_ptr_opt_z_(p)
 
+#define _Out_cap_(s)
+#define _Out_opt_cap_(s)
+#define _Out_bytecap_(s)
+#define _Out_opt_bytecap_(s)
+#define _Out_cap_c_(s)
+#define _Out_opt_cap_c_(s)
+#define _Out_bytecap_c_(s)
+#define _Out_opt_bytecap_c_(s)
+#define _Out_cap_m_(m, s)
+#define _Out_opt_cap_m_(m, s)
+#define _Out_z_cap_m_(m, s)
+#define _Out_opt_z_cap_m_(m, s)
+#define _Out_ptrdiff_cap_(s)
+#define _Out_opt_ptrdiff_cap_(s)
+#define _Out_cap_x_(s)
+#define _Out_opt_cap_x_(s)
+#define _Out_bytecap_x_(s)
+#define _Out_opt_bytecap_x_(s)
+#define _Out_z_cap_(s)
+#define _Out_opt_z_cap_(s)
+#define _Out_z_bytecap_(s)
+#define _Out_opt_z_bytecap_(s)
+#define _Out_z_cap_c_(s)
+#define _Out_opt_z_cap_c_(s)
+#define _Out_z_bytecap_c_(s)
+#define _Out_opt_z_bytecap_c_(s)
+#define _Out_z_cap_x_(s)
+#define _Out_opt_z_cap_x_(s)
+#define _Out_z_bytecap_x_(s)
+#define _Out_opt_z_bytecap_x_(s)
+#define _Out_cap_post_count_(a, o)
+#define _Out_opt_cap_post_count_(a, o)
+#define _Out_bytecap_post_bytecount_(a, o)
+#define _Out_opt_bytecap_post_bytecount_(a, o)
+#define _Out_z_cap_post_count_(a, o)
+#define _Out_opt_z_cap_post_count_(a, o)
+#define _Out_z_bytecap_post_bytecount_(a, o)
+#define _Out_opt_z_bytecap_post_bytecount_(a, o)
+#define _Out_capcount_(c)
+#define _Out_opt_capcount_(c)
+#define _Out_bytecapcount_(c)
+#define _Out_opt_bytecapcount_(c)
+#define _Out_capcount_x_(c)
+#define _Out_opt_capcount_x_(c)
+#define _Out_bytecapcount_x_(c)
+#define _Out_opt_bytecapcount_x_(c)
+#define _Out_z_capcount_(c)
+#define _Out_opt_z_capcount_(c)
+#define _Out_z_bytecapcount_(c)
+#define _Out_opt_z_bytecapcount_(c)
+
 /* Inout parameters */
 #define _Inout_
 #define _Inout_opt_
@@ -79,6 +153,53 @@
 #define _Inout_updates_bytes_all_(s)
 #define _Inout_updates_bytes_all_opt_(s)
 
+#define _Inout_count_(s)
+#define _Inout_opt_count_(s)
+#define _Inout_bytecount_(s)
+#define _Inout_opt_bytecount_(s)
+#define _Inout_count_c_(s)
+#define _Inout_opt_count_c_(s)
+#define _Inout_bytecount_c_(s)
+#define _Inout_opt_bytecount_c_(s)
+#define _Inout_z_count_(s)
+#define _Inout_opt_z_count_(s)
+#define _Inout_z_bytecount_(s)
+#define _Inout_opt_z_bytecount_(s)
+#define _Inout_z_count_c_(s)
+#define _Inout_opt_z_count_c_(s)
+#define _Inout_z_bytecount_c_(s)
+#define _Inout_opt_z_bytecount_c_(s)
+#define _Inout_ptrdiff_count_(s)
+#define _Inout_opt_ptrdiff_count_(s)
+#define _Inout_count_x_(s)
+#define _Inout_opt_count_x_(s)
+#define _Inout_bytecount_x_(s)
+#define _Inout_opt_bytecount_x_(s)
+#define _Inout_cap_(s)
+#define _Inout_opt_cap_(s)
+#define _Inout_bytecap_(s)
+#define _Inout_opt_bytecap_(s)
+#define _Inout_cap_c_(s)
+#define _Inout_opt_cap_c_(s)
+#define _Inout_bytecap_c_(s)
+#define _Inout_opt_bytecap_c_(s)
+#define _Inout_cap_x_(s)
+#define _Inout_opt_cap_x_(s)
+#define _Inout_bytecap_x_(s)
+#define _Inout_opt_bytecap_x_(s)
+#define _Inout_z_cap_(s)
+#define _Inout_opt_z_cap_(s)
+#define _Inout_z_bytecap_(s)
+#define _Inout_opt_z_bytecap_(s)
+#define _Inout_z_cap_c_(s)
+#define _Inout_opt_z_cap_c_(s)
+#define _Inout_z_bytecap_c_(s)
+#define _Inout_opt_z_bytecap_c_(s)
+#define _Inout_z_cap_x_(s)
+#define _Inout_opt_z_cap_x_(s)
+#define _Inout_z_bytecap_x_(s)
+#define _Inout_opt_z_bytecap_x_(s)
+
 /* Pointer to pointer parameters */
 #define _Outptr_
 #define _Outptr_result_maybenull_
lib/libc/include/any-windows-any/sapi51.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/sapi51.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/sapi51.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -8140,6 +8140,8 @@ static FORCEINLINE HRESULT ISpRecognizer_EmulateRecognition(ISpRecognizer* This,
 
 #endif  /* __ISpRecognizer_INTERFACE_DEFINED__ */
 
+#ifndef __SpeechLib_LIBRARY_DEFINED__
+#define __SpeechLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 
@@ -19677,6 +19679,7 @@ __CRT_UUID_DECL(SpMemoryStream, 0x5fb7ef7d, 0xdff4, 0x468a, 0xb6,0xb7, 0x2f,0xcb
 #endif
 #endif
 
+#endif /* __SpeechLib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
lib/libc/include/any-windows-any/sapi53.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/sapi53.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/sapi53.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -10614,6 +10614,8 @@ static FORCEINLINE HRESULT ISpDisplayAlternates_SetFullStopTrailSpace(ISpDisplay
 
 #endif  /* __ISpDisplayAlternates_INTERFACE_DEFINED__ */
 
+#ifndef __SpeechLib_LIBRARY_DEFINED__
+#define __SpeechLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 
@@ -22980,6 +22982,7 @@ interface ISpeechResourceLoader;
 #endif /* __cplusplus */
 #endif
 
+#endif /* __SpeechLib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
lib/libc/include/any-windows-any/sapi54.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/sapi54.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/sapi54.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -10852,6 +10852,8 @@ static FORCEINLINE HRESULT ISpDisplayAlternates_SetFullStopTrailSpace(ISpDisplay
 
 #endif  /* __ISpDisplayAlternates_INTERFACE_DEFINED__ */
 
+#ifndef __SpeechLib_LIBRARY_DEFINED__
+#define __SpeechLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_SpeechLib, 0xc866ca3a, 0x32f7, 0x11d2, 0x96,0x02, 0x00,0xc0,0x4f,0x8e,0xe6,0x28);
 
@@ -23218,6 +23220,7 @@ interface ISpeechResourceLoader;
 #endif /* __cplusplus */
 #endif
 
+#endif /* __SpeechLib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
lib/libc/include/any-windows-any/sensorsapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/sensorsapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/sensorsapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -86,7 +86,7 @@ typedef struct SensorManager SensorManager;
 extern "C" {
 #endif
 
-typedef enum __WIDL_sensorsapi_generated_name_00000013 {
+typedef enum __WIDL_sensorsapi_generated_name_00000020 {
     SENSOR_STATE_MIN = 0,
     SENSOR_STATE_READY = SENSOR_STATE_MIN,
     SENSOR_STATE_NOT_AVAILABLE = SENSOR_STATE_READY + 1,
@@ -96,7 +96,7 @@ typedef enum __WIDL_sensorsapi_generated_name_00000013 {
     SENSOR_STATE_ERROR = SENSOR_STATE_ACCESS_DENIED + 1,
     SENSOR_STATE_MAX = SENSOR_STATE_ERROR
 } SensorState;
-typedef enum __WIDL_sensorsapi_generated_name_00000014 {
+typedef enum __WIDL_sensorsapi_generated_name_00000021 {
     SENSOR_CONNECTION_TYPE_PC_INTEGRATED = 0,
     SENSOR_CONNECTION_TYPE_PC_ATTACHED = SENSOR_CONNECTION_TYPE_PC_INTEGRATED + 1,
     SENSOR_CONNECTION_TYPE_PC_EXTERNAL = SENSOR_CONNECTION_TYPE_PC_ATTACHED + 1
@@ -960,6 +960,8 @@ static FORCEINLINE HRESULT ISensorEvents_OnLeave(ISensorEvents* This,REFSENSOR_I
 
 #endif  /* __ISensorEvents_INTERFACE_DEFINED__ */
 
+#ifndef __SensorsApiLib_LIBRARY_DEFINED__
+#define __SensorsApiLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_SensorsApiLib, 0x15092592, 0x5270, 0x4c6c, 0xaa,0xa0, 0x11,0x76,0x4f,0x18,0x9a,0x8f);
 
@@ -976,6 +978,7 @@ __CRT_UUID_DECL(SensorManager, 0x77a1c827, 0xfcd2, 0x4689, 0x89,0x15, 0x9d,0x61,
 #endif
 #endif
 
+#endif /* __SensorsApiLib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
lib/libc/include/any-windows-any/servprov.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/servprov.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/servprov.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/shldisp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/shldisp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/shldisp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -388,6 +388,8 @@ interface FolderItemVerbs;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __Shell32_LIBRARY_DEFINED__
+#define __Shell32_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_Shell32, 0x50a7e9b0, 0x70ef, 0x11d1, 0xb7,0x5a, 0x00,0xa0,0xc9,0x05,0x64,0xfe);
 
@@ -7543,6 +7545,7 @@ static FORCEINLINE HRESULT INewWDEvents_PassportAuthenticate(INewWDEvents* This,
 
 #endif  /* __INewWDEvents_INTERFACE_DEFINED__ */
 
+#endif /* __Shell32_LIBRARY_DEFINED__ */
 /*****************************************************************************
  * IAutoComplete interface
  */
lib/libc/include/any-windows-any/shlwapi.h
@@ -14,6 +14,7 @@
 #include <objbase.h>
 #include <shtypes.h>
 
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
 #ifndef WINSHLWAPI
 #if !defined(_SHLWAPI_)
 #define LWSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT WINAPI
@@ -28,8 +29,6 @@
 #endif
 #endif
 
-#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
-
 #ifndef _WINRESRC_
 #ifndef _WIN32_IE
 #define _WIN32_IE 0x0601
@@ -38,6 +37,11 @@
 
 #include <pshpack8.h>
 
+#ifndef __IBindCtx_FWD_DEFINED__
+#define __IBindCtx_FWD_DEFINED__
+  typedef interface IBindCtx IBindCtx;
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -47,10 +51,23 @@ extern "C" {
   LWSTDAPI_(LPWSTR) StrChrW(LPCWSTR lpStart,WCHAR wMatch);
   LWSTDAPI_(LPSTR) StrChrIA(LPCSTR lpStart,WORD wMatch);
   LWSTDAPI_(LPWSTR) StrChrIW(LPCWSTR lpStart,WCHAR wMatch);
+  LWSTDAPI_(PCWSTR) StrChrNW(PCWSTR pszStart, WCHAR wMatch, UINT cchMax);
+  LWSTDAPI_(PCWSTR) StrChrNIW(PCWSTR pszStart, WCHAR wMatch, UINT cchMax);
   LWSTDAPI_(int) StrCmpNA(LPCSTR lpStr1,LPCSTR lpStr2,int nChar);
   LWSTDAPI_(int) StrCmpNW(LPCWSTR lpStr1,LPCWSTR lpStr2,int nChar);
   LWSTDAPI_(int) StrCmpNIA(LPCSTR lpStr1,LPCSTR lpStr2,int nChar);
   LWSTDAPI_(int) StrCmpNIW(LPCWSTR lpStr1,LPCWSTR lpStr2,int nChar);
+
+  LWSTDAPI_(int) StrCmpNCA(LPCSTR pszStr1, LPCSTR pszStr2, int nChar);
+  LWSTDAPI_(int) StrCmpNCW(LPCWSTR pszStr1, LPCWSTR pszStr2, int nChar);
+
+#define StrCmpNC __MINGW_NAME_AW(StrCmpNC)
+
+  LWSTDAPI_(int)  StrCmpNICA(LPCSTR pszStr1, LPCSTR pszStr2, int nChar);
+  LWSTDAPI_(int)  StrCmpNICW(LPCWSTR pszStr1, LPCWSTR pszStr2, int nChar);
+
+#define StrCmpNIC __MINGW_NAME_AW(StrCmpNIC)
+
   LWSTDAPI_(int) StrCSpnA(LPCSTR lpStr,LPCSTR lpSet);
   LWSTDAPI_(int) StrCSpnW(LPCWSTR lpStr,LPCWSTR lpSet);
   LWSTDAPI_(int) StrCSpnIA(LPCSTR lpStr,LPCSTR lpSet);
@@ -82,13 +99,20 @@ extern "C" {
   LWSTDAPI_(LPWSTR) StrStrW(LPCWSTR lpFirst,LPCWSTR lpSrch);
   LWSTDAPI_(LPSTR) StrStrIA(LPCSTR lpFirst,LPCSTR lpSrch);
   LWSTDAPI_(LPWSTR) StrStrIW(LPCWSTR lpFirst,LPCWSTR lpSrch);
+  LWSTDAPI_(PCWSTR) StrStrNW(PCWSTR pszFirst, PCWSTR pszSrch, UINT cchMax);
+  LWSTDAPI_(PCWSTR) StrStrNIW(PCWSTR pszFirst, PCWSTR pszSrch, UINT cchMax);
   LWSTDAPI_(int) StrToIntA(LPCSTR lpSrc);
   LWSTDAPI_(int) StrToIntW(LPCWSTR lpSrc);
-  LWSTDAPI_(WINBOOL) StrToIntExA(LPCSTR pszString,DWORD dwFlags,int *piRet);
-  LWSTDAPI_(WINBOOL) StrToIntExW(LPCWSTR pszString,DWORD dwFlags,int *piRet);
+
+#define STIF_DEFAULT __MSABI_LONG(0x00000000)
+#define STIF_SUPPORT_HEX __MSABI_LONG(0x00000001)
+  typedef int STIF_FLAGS;
+
+  LWSTDAPI_(WINBOOL) StrToIntExA(LPCSTR pszString,STIF_FLAGS dwFlags,int *piRet);
+  LWSTDAPI_(WINBOOL) StrToIntExW(LPCWSTR pszString,STIF_FLAGS dwFlags,int *piRet);
 #if (_WIN32_IE >= 0x0600)
-  LWSTDAPI_(WINBOOL) StrToInt64ExA(LPCSTR pszString,DWORD dwFlags,LONGLONG *pllRet);
-  LWSTDAPI_(WINBOOL) StrToInt64ExW(LPCWSTR pszString,DWORD dwFlags,LONGLONG *pllRet);
+  LWSTDAPI_(WINBOOL) StrToInt64ExA(LPCSTR pszString,STIF_FLAGS dwFlags,LONGLONG *pllRet);
+  LWSTDAPI_(WINBOOL) StrToInt64ExW(LPCWSTR pszString,STIF_FLAGS dwFlags,LONGLONG *pllRet);
 #endif
   LWSTDAPI_(WINBOOL) StrTrimA(LPSTR psz,LPCSTR pszTrimChars);
   LWSTDAPI_(WINBOOL) StrTrimW(LPWSTR psz,LPCWSTR pszTrimChars);
@@ -122,9 +146,25 @@ extern "C" {
   LWSTDAPI StrRetToBSTR(STRRET *pstr,LPCITEMIDLIST pidl,BSTR *pbstr);
   LWSTDAPI SHStrDupA(LPCSTR psz,WCHAR **ppwsz);
   LWSTDAPI SHStrDupW(LPCWSTR psz,WCHAR **ppwsz);
+
+#ifdef __cplusplus
+  inline HRESULT SHLocalStrDupW(PCWSTR psz, PWSTR *ppsz) {
+    *ppsz = StrDupW(psz);
+    return *ppsz ? S_OK : E_OUTOFMEMORY;
+  }
+
+  inline HRESULT SHLocalStrDupA(PCSTR psz, PSTR *ppsz) {
+    *ppsz = StrDupA(psz);
+    return *ppsz ? S_OK : E_OUTOFMEMORY;
+  }
+
+#define SHLocalStrDup __MINGW_NAME_AW(SHLocalStrDup)
+#endif
+
   LWSTDAPI_(int) StrCmpLogicalW(LPCWSTR psz1,LPCWSTR psz2);
   LWSTDAPI_(DWORD) StrCatChainW(LPWSTR pszDst,DWORD cchDst,DWORD ichAt,LPCWSTR pszSrc);
   LWSTDAPI SHLoadIndirectString(LPCWSTR pszSource,LPWSTR pszOutBuf,UINT cchOutBuf,void **ppvReserved);
+
 #if (_WIN32_IE >= 0x0603)
   LWSTDAPI_(WINBOOL) IsCharSpaceA(CHAR wch);
   LWSTDAPI_(WINBOOL) IsCharSpaceW(WCHAR wch);
@@ -206,9 +246,6 @@ extern "C" {
 #define PathIsHTMLFileA(pszPath) PathIsContentTypeA(pszPath,SZ_CONTENTTYPE_HTMLA)
 #define PathIsHTMLFileW(pszPath) PathIsContentTypeW(pszPath,SZ_CONTENTTYPE_HTMLW)
 
-#define STIF_DEFAULT __MSABI_LONG(0x00000000)
-#define STIF_SUPPORT_HEX __MSABI_LONG(0x00000001)
-
 #define StrCatA lstrcatA
 #define StrCmpA lstrcmpA
 #define StrCmpIA lstrcmpiA
@@ -239,6 +276,17 @@ extern "C" {
 
 #endif
 
+#if (NTDDI_VERSION >= NTDDI_VISTASP1)
+  enum tagSFBS_FLAGS {
+      SFBS_FLAGS_ROUND_TO_NEAREST_DISPLAYED_DIGIT     = 0x0001,
+      SFBS_FLAGS_TRUNCATE_UNDISPLAYED_DECIMAL_DIGITS  = 0x0002
+  };
+
+  typedef int SFBS_FLAGS;
+
+  LWSTDAPI StrFormatByteSizeEx(ULONGLONG ull, SFBS_FLAGS flags, PWSTR pszBuf, UINT cchBuf);
+#endif
+
 #ifndef NO_SHLWAPI_PATH
 
   LWSTDAPI_(LPSTR) PathAddBackslashA(LPSTR pszPath);
@@ -454,6 +502,18 @@ extern "C" {
   LWSTDAPI_(WINBOOL) PathUnExpandEnvStringsW(LPCWSTR pszPath,LPWSTR pszBuf,UINT cchBuf);
 
 #define PathUnExpandEnvStrings __MINGW_NAME_AW(PathUnExpandEnvStrings)
+
+#if (_WIN32_IE >= _WIN32_IE_IE70)
+#define PMSF_NORMAL            0x00000000
+#define PMSF_MULTIPLE          0x00000001
+#define PMSF_DONT_STRIP_SPACES 0x00010000
+LWSTDAPI PathMatchSpecExA(LPCSTR pszFile, LPCSTR pszSpec, DWORD dwFlags);
+LWSTDAPI PathMatchSpecExW(LPCWSTR pszFile, LPCWSTR pszSpec, DWORD dwFlags);
+#endif
+
+#define PathMatchSpecEx __MINGW_NAME_AW(PathMatchSpecEx)
+
+#define PathParseIconLocation __MINGW_NAME_AW(PathParseIconLocation)
 #define PathAppend __MINGW_NAME_AW(PathAppend)
 #define PathCanonicalize __MINGW_NAME_AW(PathCanonicalize)
 #define PathCompactPath __MINGW_NAME_AW(PathCompactPath)
@@ -465,7 +525,6 @@ extern "C" {
 #define PathIsHTMLFile __MINGW_NAME_AW(PathIsHTMLFile)
 #define PathMakePretty __MINGW_NAME_AW(PathMakePretty)
 #define PathMatchSpec __MINGW_NAME_AW(PathMatchSpec)
-#define PathParseIconLocation __MINGW_NAME_AW(PathParseIconLocation)
 #define PathQuoteSpaces __MINGW_NAME_AW(PathQuoteSpaces)
 #define PathRelativePathTo __MINGW_NAME_AW(PathRelativePathTo)
 #define PathRemoveArgs __MINGW_NAME_AW(PathRemoveArgs)
@@ -478,7 +537,45 @@ extern "C" {
 #define PathUnquoteSpaces __MINGW_NAME_AW(PathUnquoteSpaces)
 
   typedef enum {
-    URL_SCHEME_INVALID = -1,URL_SCHEME_UNKNOWN = 0,URL_SCHEME_FTP,URL_SCHEME_HTTP,URL_SCHEME_GOPHER,URL_SCHEME_MAILTO,URL_SCHEME_NEWS,URL_SCHEME_NNTP,URL_SCHEME_TELNET,URL_SCHEME_WAIS,URL_SCHEME_FILE,URL_SCHEME_MK,URL_SCHEME_HTTPS,URL_SCHEME_SHELL,URL_SCHEME_SNEWS,URL_SCHEME_LOCAL,URL_SCHEME_JAVASCRIPT,URL_SCHEME_VBSCRIPT,URL_SCHEME_ABOUT,URL_SCHEME_RES,URL_SCHEME_MSSHELLROOTED,URL_SCHEME_MSSHELLIDLIST,URL_SCHEME_MSHELP,URL_SCHEME_MAXVALUE
+    URL_SCHEME_INVALID = -1,
+    URL_SCHEME_UNKNOWN = 0,
+    URL_SCHEME_FTP,
+    URL_SCHEME_HTTP,
+    URL_SCHEME_GOPHER,
+    URL_SCHEME_MAILTO,
+    URL_SCHEME_NEWS,
+    URL_SCHEME_NNTP,
+    URL_SCHEME_TELNET,
+    URL_SCHEME_WAIS,
+    URL_SCHEME_FILE,
+    URL_SCHEME_MK,
+    URL_SCHEME_HTTPS,
+    URL_SCHEME_SHELL,
+    URL_SCHEME_SNEWS,
+    URL_SCHEME_LOCAL,
+    URL_SCHEME_JAVASCRIPT,
+    URL_SCHEME_VBSCRIPT,
+    URL_SCHEME_ABOUT,
+    URL_SCHEME_RES,
+#if (_WIN32_IE >= _WIN32_IE_IE60)
+    URL_SCHEME_MSSHELLROOTED,
+    URL_SCHEME_MSSHELLIDLIST,
+    URL_SCHEME_MSHELP,
+#endif
+#if (_WIN32_IE >= _WIN32_IE_IE70)
+    URL_SCHEME_MSSHELLDEVICE,
+    URL_SCHEME_WILDCARD,
+#endif
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+    URL_SCHEME_SEARCH_MS,
+#endif
+#if (NTDDI_VERSION >= NTDDI_VISTASP1)
+    URL_SCHEME_SEARCH,
+#endif
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+    URL_SCHEME_KNOWNFOLDER,
+#endif
+    URL_SCHEME_MAXVALUE
   } URL_SCHEME;
 
   typedef enum {
@@ -504,7 +601,18 @@ extern "C" {
 #define URL_UNESCAPE_HIGH_ANSI_ONLY 0x00400000
 #define URL_INTERNAL_PATH 0x00800000
 #define URL_FILE_USE_PATHURL 0x00010000
+#if _WIN32_IE >= _WIN32_IE_IE60SP2
 #define URL_DONT_UNESCAPE 0x00020000
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN7
+#define URL_ESCAPE_AS_UTF8 0x00040000
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN8
+#define URL_UNESCAPE_AS_UTF8 URL_ESCAPE_AS_UTF8
+#define URL_ESCAPE_ASCII_URI_COMPONENT 0x00080000
+#define URL_ESCAPE_URI_COMPONENT (URL_ESCAPE_ASCII_URI_COMPONENT | URL_ESCAPE_AS_UTF8)
+#define URL_UNESCAPE_URI_COMPONENT URL_UNESCAPE_AS_UTF8
+#endif
 #define URL_ESCAPE_PERCENT 0x00001000
 #define URL_ESCAPE_SEGMENT_ONLY 0x00002000
 
@@ -539,6 +647,9 @@ extern "C" {
   LWSTDAPI UrlCreateFromPathW(LPCWSTR pszPath,LPWSTR pszUrl,LPDWORD pcchUrl,DWORD dwFlags);
   LWSTDAPI PathCreateFromUrlA(LPCSTR pszUrl,LPSTR pszPath,LPDWORD pcchPath,DWORD dwFlags);
   LWSTDAPI PathCreateFromUrlW(LPCWSTR pszUrl,LPWSTR pszPath,LPDWORD pcchPath,DWORD dwFlags);
+#if (_WIN32_IE >= _WIN32_IE_IE70)
+  LWSTDAPI PathCreateFromUrlAlloc(PCWSTR pszIn, PWSTR *ppszOut, DWORD dwFlags);
+#endif
   LWSTDAPI UrlHashA(LPCSTR pszUrl,LPBYTE pbHash,DWORD cbHash);
   LWSTDAPI UrlHashW(LPCWSTR pszUrl,LPBYTE pbHash,DWORD cbHash);
   LWSTDAPI UrlGetPartW(LPCWSTR pszIn,LPWSTR pszOut,LPDWORD pcchOut,DWORD dwPart,DWORD dwFlags);
@@ -546,6 +657,10 @@ extern "C" {
   LWSTDAPI UrlApplySchemeA(LPCSTR pszIn,LPSTR pszOut,LPDWORD pcchOut,DWORD dwFlags);
   LWSTDAPI UrlApplySchemeW(LPCWSTR pszIn,LPWSTR pszOut,LPDWORD pcchOut,DWORD dwFlags);
   LWSTDAPI HashData(LPBYTE pbData,DWORD cbData,LPBYTE pbHash,DWORD cbHash);
+  LWSTDAPI UrlFixupW(PCWSTR pcszUrl, PWSTR pszTranslatedUrl, DWORD cchMax);
+#if defined(UNICODE)
+#define UrlFixup UrlFixupW
+#endif
 
 #define UrlCompare __MINGW_NAME_AW(UrlCompare)
 #define UrlCombine __MINGW_NAME_AW(UrlCombine)
@@ -564,6 +679,38 @@ extern "C" {
 
 #define UrlEscapeSpaces(pszUrl,pszEscaped,pcchEscaped) UrlCanonicalize(pszUrl,pszEscaped,pcchEscaped,URL_ESCAPE_SPACES_ONLY |URL_DONT_ESCAPE_EXTRA_INFO)
 #define UrlUnescapeInPlace(pszUrl,dwFlags) UrlUnescape(pszUrl,NULL,NULL,dwFlags | URL_UNESCAPE_INPLACE)
+
+  typedef struct tagPARSEDURLA {
+    DWORD     cbSize;
+    LPCSTR    pszProtocol;
+    UINT      cchProtocol;
+    LPCSTR    pszSuffix;
+    UINT      cchSuffix;
+    UINT      nScheme;
+  } PARSEDURLA, *PPARSEDURLA;
+
+  typedef struct tagPARSEDURLW {
+    DWORD     cbSize;
+    LPCWSTR   pszProtocol;
+    UINT      cchProtocol;
+    LPCWSTR   pszSuffix;
+    UINT      cchSuffix;
+    UINT      nScheme;
+   } PARSEDURLW, *PPARSEDURLW;
+
+  LWSTDAPI ParseURLA(LPCSTR pcszURL, PARSEDURLA *ppu);
+  LWSTDAPI ParseURLW(LPCWSTR pcszURL, PARSEDURLW *ppu);
+
+#if defined(UNICODE)
+#define ParseURL  ParseURLW
+  typedef PARSEDURLW PARSEDURL;
+  typedef PPARSEDURLW PPARSEDURL;
+#else
+#define ParseURL  ParseURLA
+  typedef PARSEDURLA PARSEDURL;
+  typedef PPARSEDURLA PPARSEDURL;
+#endif
+
 #endif
 
 #ifndef NO_SHLWAPI_REG
@@ -618,11 +765,19 @@ extern "C" {
 
 #define SRRF_NOEXPAND 0x10000000
 #define SRRF_ZEROONFAILURE 0x20000000
+#define SRRF_NOVIRT 0x40000000
 
   LWSTDAPI_(LONG) SHRegGetValueA(HKEY hkey,LPCSTR pszSubKey,LPCSTR pszValue,SRRF dwFlags,DWORD *pdwType,void *pvData,DWORD *pcbData);
   LWSTDAPI_(LONG) SHRegGetValueW(HKEY hkey,LPCWSTR pszSubKey,LPCWSTR pszValue,SRRF dwFlags,DWORD *pdwType,void *pvData,DWORD *pcbData);
 
 #define SHRegGetValue __MINGW_NAME_AW(SHRegGetValue)
+
+  LWSTDAPI_(LSTATUS) SHRegSetValue(HKEY hkey, LPCWSTR pszSubKey, LPCWSTR pszValue, SRRF srrfFlags,
+                                        DWORD dwType, LPCVOID pvData, DWORD cbData);
+
+  LWSTDAPI_(LSTATUS) SHRegGetValueFromHKCUHKLM(PCWSTR pwszKey, PCWSTR pwszValue, SRRF srrfFlags,
+                                        DWORD *pdwType, void *pvData, DWORD * pcbData);
+  STDAPI_(WINBOOL) SHRegGetBoolValueFromHKCUHKLM(PCWSTR pszKey, PCWSTR pszValue, WINBOOL fDefault);
 #endif
 
 #define SHQueryValueEx __MINGW_NAME_AW(SHQueryValueEx)
@@ -720,10 +875,19 @@ extern "C" {
     ASSOCF_REMAPRUNDLL = 0x00000080,
     ASSOCF_NOFIXUPS = 0x00000100,
     ASSOCF_IGNOREBASECLASS = 0x00000200,
-    ASSOCF_INIT_IGNOREUNKNOWN = 0x00000400,
-    ASSOCF_INIT_FIXED_PROGID = 0x00000800,
-    ASSOCF_IS_PROTOCOL = 0x00001000,
-    ASSOCF_INIT_FOR_FILE = 0x00002000
+    ASSOCF_INIT_IGNOREUNKNOWN = 0x00000400
+#if NTDDI_VERSION >= NTDDI_WIN8
+    ,ASSOCF_INIT_FIXED_PROGID = 0x00000800
+    ,ASSOCF_IS_PROTOCOL = 0x00001000
+    ,ASSOCF_INIT_FOR_FILE = 0x00002000
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_RS1
+    ,ASSOCF_IS_FULL_URI = 0x00004000
+    ,ASSOCF_PER_MACHINE_ONLY = 0x00008000
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_RS4
+    ,ASSOCF_APP_TO_APP = 0x00010000
+#endif
   };
 
   typedef DWORD ASSOCF;
@@ -748,6 +912,13 @@ extern "C" {
 #if _WIN32_WINNT >= 0x601
     ASSOCSTR_DROPTARGET,
     ASSOCSTR_DELEGATEEXECUTE,
+#endif
+    ASSOCSTR_SUPPORTED_URI_PROTOCOLS,
+#if (NTDDI_VERSION >= NTDDI_WIN10)
+    ASSOCSTR_PROGID,
+    ASSOCSTR_APPID,
+    ASSOCSTR_APPPUBLISHER,
+    ASSOCSTR_APPICONREFERENCE,
 #endif
     ASSOCSTR_MAX
   } ASSOCSTR;
@@ -774,9 +945,39 @@ extern "C" {
     ASSOCENUM_NONE
   } ASSOCENUM;
 
+  typedef enum {
+    FTA_None                    = 0x00000000,
+    FTA_Exclude                 = 0x00000001,
+    FTA_Show                    = 0x00000002,
+    FTA_HasExtension            = 0x00000004,
+    FTA_NoEdit                  = 0x00000008,
+    FTA_NoRemove                = 0x00000010,
+    FTA_NoNewVerb               = 0x00000020,
+    FTA_NoEditVerb              = 0x00000040,
+    FTA_NoRemoveVerb            = 0x00000080,
+    FTA_NoEditDesc              = 0x00000100,
+    FTA_NoEditIcon              = 0x00000200,
+    FTA_NoEditDflt              = 0x00000400,
+    FTA_NoEditVerbCmd           = 0x00000800,
+    FTA_NoEditVerbExe           = 0x00001000,
+    FTA_NoDDE                   = 0x00002000,
+
+    FTA_NoEditMIME              = 0x00008000,
+    FTA_OpenIsSafe              = 0x00010000,
+    FTA_AlwaysUnsafe            = 0x00020000,
+
+    FTA_NoRecentDocs            = 0x00100000,
+    FTA_SafeForElevation        = 0x00200000,
+    FTA_AlwaysUseDirectInvoke   = 0x00400000
+  } FILETYPEATTRIBUTEFLAGS;
+
+  DEFINE_ENUM_FLAG_OPERATORS(FILETYPEATTRIBUTEFLAGS)
+
 #undef INTERFACE
 #define INTERFACE IQueryAssociations
   DECLARE_INTERFACE_(IQueryAssociations,IUnknown) {
+    BEGIN_INTERFACE
+
     STDMETHOD (QueryInterface)(THIS_ REFIID riid,void **ppv) PURE;
     STDMETHOD_(ULONG,AddRef) (THIS) PURE;
     STDMETHOD_(ULONG,Release) (THIS) PURE;
@@ -785,6 +986,8 @@ extern "C" {
     STDMETHOD (GetKey)(THIS_ ASSOCF flags,ASSOCKEY key,LPCWSTR pszExtra,HKEY *phkeyOut) PURE;
     STDMETHOD (GetData)(THIS_ ASSOCF flags,ASSOCDATA data,LPCWSTR pszExtra,LPVOID pvOut,DWORD *pcbOut) PURE;
     STDMETHOD (GetEnum)(THIS_ ASSOCF flags,ASSOCENUM assocenum,LPCWSTR pszExtra,REFIID riid,LPVOID *ppvOut) PURE;
+
+    END_INTERFACE
   };
 
 #define AssocQueryString __MINGW_NAME_AW(AssocQueryString)
@@ -792,6 +995,7 @@ extern "C" {
 #define AssocQueryKey __MINGW_NAME_AW(AssocQueryKey)
 
   LWSTDAPI AssocCreate(CLSID clsid,REFIID riid,LPVOID *ppv);
+  STDAPI_(DWORD) SHGetAssocKeys(IQueryAssociations *pqa, HKEY *rgKeys, DWORD cKeys);
   LWSTDAPI AssocQueryStringA(ASSOCF flags,ASSOCSTR str,LPCSTR pszAssoc,LPCSTR pszExtra,LPSTR pszOut,DWORD *pcchOut);
   LWSTDAPI AssocQueryStringW(ASSOCF flags,ASSOCSTR str,LPCWSTR pszAssoc,LPCWSTR pszExtra,LPWSTR pszOut,DWORD *pcchOut);
   LWSTDAPI AssocQueryStringByKeyA(ASSOCF flags,ASSOCSTR str,HKEY hkAssoc,LPCSTR pszExtra,LPSTR pszOut,DWORD *pcchOut);
@@ -806,9 +1010,17 @@ extern "C" {
 #if (_WIN32_IE >= 0x0603)
   LWSTDAPI AssocGetPerceivedType(LPCWSTR pszExt,PERCEIVED *ptype,PERCEIVEDFLAG *pflag,LPWSTR *ppszType);
 #endif
+
 #endif
 
 #ifndef NO_SHLWAPI_STREAM
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
+#ifndef __IStream_FWD_DEFINED__
+#define __IStream_FWD_DEFINED__
+  typedef interface IStream IStream;
+#endif
+
 #define SHOpenRegStream __MINGW_NAME_AW(SHOpenRegStream)
 #define SHOpenRegStream2 __MINGW_NAME_AW(SHOpenRegStream2)
 #define SHCreateStreamOnFile __MINGW_NAME_AW(SHCreateStreamOnFile)
@@ -825,24 +1037,127 @@ extern "C" {
 
 #if (_WIN32_IE >= 0x0600)
   LWSTDAPI SHCreateStreamOnFileEx(LPCWSTR pszFile,DWORD grfMode,DWORD dwAttributes,WINBOOL fCreate,struct IStream *pstmTemplate,struct IStream **ppstm);
+#endif
+
+  LWSTDAPI_(IStream *) SHCreateMemStream(const BYTE *pInit, UINT cbInit);
+
 #endif
 #endif
 
-#if (_WIN32_IE >= 0x0601)
-#define SHGVSPB_PERUSER 0x00000001
-#define SHGVSPB_ALLUSERS 0x00000002
-#define SHGVSPB_PERFOLDER 0x00000004
-#define SHGVSPB_ALLFOLDERS 0x00000008
-#define SHGVSPB_INHERIT 0x00000010
-#define SHGVSPB_ROAM 0x00000020
-#define SHGVSPB_NOAUTODEFAULTS 0x80000000
+#if !defined(NO_SHLWAPI_ISOS)
+#define OS_WINDOWS                  0
+#define OS_NT                       1
+#define OS_WIN95ORGREATER           2
+#define OS_NT4ORGREATER             3
+#define OS_WIN98ORGREATER           5
+#define OS_WIN98_GOLD               6
+#define OS_WIN2000ORGREATER         7
+#define OS_WIN2000PRO               8
+#define OS_WIN2000SERVER            9
+#define OS_WIN2000ADVSERVER         10
+#define OS_WIN2000DATACENTER        11
+#define OS_WIN2000TERMINAL          12
+#define OS_EMBEDDED                 13
+#define OS_TERMINALCLIENT           14
+#define OS_TERMINALREMOTEADMIN      15
+#define OS_WIN95_GOLD               16
+#define OS_MEORGREATER              17
+#define OS_XPORGREATER              18
+#define OS_HOME                     19
+#define OS_PROFESSIONAL             20
+#define OS_DATACENTER               21
+#define OS_ADVSERVER                22
+#define OS_SERVER                   23
+#define OS_TERMINALSERVER           24
+#define OS_PERSONALTERMINALSERVER   25
+#define OS_FASTUSERSWITCHING        26
+#define OS_WELCOMELOGONUI           27
+#define OS_DOMAINMEMBER             28
+#define OS_ANYSERVER                29
+#define OS_WOW6432                  30
+#define OS_WEBSERVER                31
+#define OS_SMALLBUSINESSSERVER      32
+#define OS_TABLETPC                 33
+#define OS_SERVERADMINUI            34
+#define OS_MEDIACENTER              35
+#define OS_APPLIANCE                36
+
+  LWSTDAPI_(WINBOOL) IsOS(DWORD dwOS);
+#endif
 
-#define SHGVSPB_FOLDER (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER)
-#define SHGVSPB_FOLDERNODEFAULTS (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER | SHGVSPB_NOAUTODEFAULTS)
-#define SHGVSPB_USERDEFAULTS (SHGVSPB_PERUSER | SHGVSPB_ALLFOLDERS)
-#define SHGVSPB_GLOBALDEAFAULTS (SHGVSPB_ALLUSERS | SHGVSPB_ALLFOLDERS)
+  typedef enum {
+    GLOBALCOUNTER_SEARCHMANAGER,
+    GLOBALCOUNTER_SEARCHOPTIONS,
+    GLOBALCOUNTER_FOLDERSETTINGSCHANGE,
+    GLOBALCOUNTER_RATINGS,
+    GLOBALCOUNTER_APPROVEDSITES,
+    GLOBALCOUNTER_RESTRICTIONS,
+    GLOBALCOUNTER_SHELLSETTINGSCHANGED,
+    GLOBALCOUNTER_SYSTEMPIDLCHANGE,
+    GLOBALCOUNTER_OVERLAYMANAGER,
+    GLOBALCOUNTER_QUERYASSOCIATIONS,
+    GLOBALCOUNTER_IESESSIONS,
+    GLOBALCOUNTER_IEONLY_SESSIONS,
+    GLOBALCOUNTER_APPLICATION_DESTINATIONS,
+    __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_CSCSYNCINPROGRESS,
+    GLOBALCOUNTER_BITBUCKETNUMDELETERS,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_SHARES,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_A,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_B,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_C,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_D,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_E,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_F,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_G,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_H,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_I,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_J,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_K,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_L,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_M,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_N,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_O,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_P,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Q,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_R,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_S,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_T,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_U,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_V,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_W,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_X,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Y,
+    GLOBALCOUNTER_RECYCLEDIRTYCOUNT_DRIVE_Z,
+    __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_RECYCLEDIRTYCOUNT_SERVERDRIVE,
+    __UNUSED_RECYCLE_WAS_GLOBALCOUNTER_RECYCLEGLOBALDIRTYCOUNT,
+    GLOBALCOUNTER_RECYCLEBINENUM,
+    GLOBALCOUNTER_RECYCLEBINCORRUPTED,
+    GLOBALCOUNTER_RATINGS_STATECOUNTER,
+    GLOBALCOUNTER_PRIVATE_PROFILE_CACHE,
+    GLOBALCOUNTER_INTERNETTOOLBAR_LAYOUT,
+    GLOBALCOUNTER_FOLDERDEFINITION_CACHE,
+    GLOBALCOUNTER_COMMONPLACES_LIST_CACHE,
+    GLOBALCOUNTER_PRIVATE_PROFILE_CACHE_MACHINEWIDE,
+    GLOBALCOUNTER_ASSOCCHANGED,
+#if (NTDDI_VERSION >= NTDDI_WIN8)
+    GLOBALCOUNTER_APP_ITEMS_STATE_STORE_CACHE,
+    GLOBALCOUNTER_SETTINGSYNC_ENABLED,
+    GLOBALCOUNTER_APPSFOLDER_FILETYPEASSOCIATION_COUNTER,
+    GLOBALCOUNTER_USERINFOCHANGED,
+#if (NTDDI_VERSION >= NTDDI_WINBLUE)
+    GLOBALCOUNTER_SYNC_ENGINE_INFORMATION_CACHE_MACHINEWIDE,
+#endif
+#endif
+#if (NTDDI_VERSION >= NTDDI_WIN10_RS1)
+    GLOBALCOUNTER_BANNERS_DATAMODEL_CACHE_MACHINEWIDE,
+#endif
+    GLOBALCOUNTER_MAXIMUMVALUE
+  } SHGLOBALCOUNTER;
 
-  LWSTDAPI SHGetViewStatePropertyBag(LPCITEMIDLIST pidl,LPCWSTR pszBagName,DWORD dwFlags,REFIID riid,void **ppv);
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+  LWSTDAPI_(long) SHGlobalCounterGetValue(const SHGLOBALCOUNTER id);
+  LWSTDAPI_(long) SHGlobalCounterIncrement(const SHGLOBALCOUNTER id);
+  LWSTDAPI_(long) SHGlobalCounterDecrement(const SHGLOBALCOUNTER id);
 #endif
 
 #if (_WIN32_IE >= 0x0603)
@@ -881,9 +1196,9 @@ typedef const QITAB *LPCQITAB;
   STDAPI QISearch(void *that, LPCQITAB pqit, REFIID riid, void **ppv);
 
 #define ILMM_IE4 0
-  LWSTDAPI_(BOOL) SHIsLowMemoryMachine(DWORD dwType);
-  LWSTDAPI_(int) GetMenuPosFromId(HMENU hMenu, UINT id);
-  LWSTDAPI SHGetInverseCMAP(__out_bcount(cbMap) BYTE *pbMap, ULONG cbMap);
+  LWSTDAPI_(WINBOOL) SHIsLowMemoryMachine(DWORD dwType);
+  LWSTDAPI_(int) GetMenuPosFromID(HMENU hMenu, UINT id);
+  LWSTDAPI SHGetInverseCMAP(BYTE *pbMap, ULONG cbMap);
 #endif
 
 #define SHACF_DEFAULT 0x00000000
@@ -919,13 +1234,40 @@ typedef const QITAB *LPCQITAB;
 #define CTF_INSIST 0x00000001
 #define CTF_THREAD_REF 0x00000002
 #define CTF_PROCESS_REF 0x00000004
+#define CTF_COINIT_STA 0x00000008
 #define CTF_COINIT 0x00000008
+#if (_WIN32_IE >= _WIN32_IE_IE60)
 #define CTF_FREELIBANDEXIT 0x00000010
 #define CTF_REF_COUNTED 0x00000020
 #define CTF_WAIT_ALLOWCOM 0x00000040
+#endif
+#if (_WIN32_IE >= _WIN32_IE_IE70)
+#define CTF_UNUSED 0x00000080
+#define CTF_INHERITWOW64 0x00000100
+#endif
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+#define CTF_WAIT_NO_REENTRANCY 0x00000200
+#endif
+#if (NTDDI_VERSION >= NTDDI_WIN7)
+#define CTF_KEYBOARD_LOCALE 0x00000400
+#define CTF_OLEINITIALIZE 0x00000800
+#define CTF_COINIT_MTA 0x00001000
+#define CTF_NOADDREFLIB 0x00002000
+#endif
+
+  typedef DWORD SHCT_FLAGS;
 
-  LWSTDAPI_(WINBOOL) SHCreateThread(LPTHREAD_START_ROUTINE pfnThreadProc,void *pData,DWORD dwFlags,LPTHREAD_START_ROUTINE pfnCallback);
+  LWSTDAPI_(WINBOOL) SHCreateThread(LPTHREAD_START_ROUTINE pfnThreadProc,void *pData, SHCT_FLAGS dwFlags,LPTHREAD_START_ROUTINE pfnCallback);
+  LWSTDAPI_(WINBOOL) SHCreateThreadWithHandle(LPTHREAD_START_ROUTINE pfnThreadProc, void *pData, SHCT_FLAGS dwflags, LPTHREAD_START_ROUTINE pfnCallback, HANDLE *pHandle);
+
+#if (NTDDI_VERSION >= NTDDI_WIN8)
+  LWSTDAPI_(void) SetProcessReference(IUnknown *punk);
+  LWSTDAPI GetProcessReference(IUnknown **punk);
+#endif
+
+#if (_WIN32_IE >= _WIN32_IE_IE60)
   LWSTDAPI SHReleaseThreadRef(void);
+#endif
 
 #ifndef NO_SHLWAPI_GDI
   LWSTDAPI_(HPALETTE) SHCreateShellPalette(HDC hdc);
@@ -967,27 +1309,159 @@ typedef const QITAB *LPCQITAB;
   LWSTDAPI_(WINBOOL) IsInternetESCEnabled(void);
 #endif
 
-LWSTDAPI_(IStream *) SHCreateMemStream(const BYTE *pInit, _In_ UINT cbInit);
+#ifndef NO_SHLWAPI_HTTP
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
 
-#ifdef __cplusplus
-}
+#if (_WIN32_IE >= 0x0603)
+#define GetAcceptLanguages __MINGW_NAME_AW(GetAcceptLanguages)
+  LWSTDAPI GetAcceptLanguagesA(LPSTR psz,DWORD *pcch);
+  LWSTDAPI GetAcceptLanguagesW(LPWSTR psz,DWORD *pcch);
 #endif
 
-#include <poppack.h>
 #endif
 
-#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
-#ifndef NO_SHLWAPI_HTTP
-#if (_WIN32_IE >= 0x0603)
+#endif
 
-#define GetAcceptLanguages __MINGW_NAME_AW(GetAcceptLanguages)
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
+#if (_WIN32_IE < _WIN32_IE_IE70) && !defined(NO_SHLWAPI_STOPWATCH)
+#define SPMODE_SHELL      0x00000001
+#define SPMODE_DEBUGOUT   0x00000002
+#define SPMODE_TEST       0x00000004
+#define SPMODE_BROWSER    0x00000008
+#define SPMODE_FLUSH      0x00000010
+#define SPMODE_EVENT      0x00000020
+#define SPMODE_MSVM       0x00000040
+#define SPMODE_FORMATTEXT 0x00000080
+#define SPMODE_PROFILE    0x00000100
+#define SPMODE_DEBUGBREAK 0x00000200
+#define SPMODE_MSGTRACE   0x00000400
+#define SPMODE_PERFTAGS   0x00000800
+#define SPMODE_MEMWATCH   0x00001000
+#define SPMODE_DBMON      0x00002000
+#define SPMODE_MULTISTOP  0x00004000
+#if !defined(NO_ETW_TRACING)
+#define SPMODE_EVENTTRACE 0x00008000
+#endif
+
+  DWORD WINAPI StopWatchMode(void);
+  DWORD WINAPI StopWatchFlush(void);
+#endif
+
+  LWSTDAPI_(void) IUnknown_Set(IUnknown **ppunk, IUnknown *punk);
+  LWSTDAPI_(void) IUnknown_AtomicRelease(void **ppunk);
+  LWSTDAPI IUnknown_GetWindow(IUnknown *punk, HWND *phwnd);
+  LWSTDAPI IUnknown_SetSite(IUnknown *punk, IUnknown *punkSite);
+  LWSTDAPI IUnknown_GetSite(IUnknown *punk, REFIID riid, void **ppv);
+  LWSTDAPI IUnknown_QueryService(IUnknown *punk, REFGUID guidService, REFIID riid, void **ppvOut);
+#ifndef COBJMACROS
+  LWSTDAPI IStream_Read(IStream *pstm, void *pv, ULONG cb);
+  LWSTDAPI IStream_Write(IStream *pstm, const void *pv, ULONG cb);
+#endif
+  LWSTDAPI IStream_Reset(IStream *pstm);
+  LWSTDAPI IStream_Size(IStream *pstm, ULARGE_INTEGER *pui);
+
+#ifndef __IConnectionPoint_FWD_DEFINED__
+#define __IConnectionPoint_FWD_DEFINED__
+  typedef interface IConnectionPoint IConnectionPoint;
+#endif
+
+  LWSTDAPI ConnectToConnectionPoint(IUnknown *punk, REFIID riidEvent, WINBOOL fConnect, IUnknown *punkTarget, DWORD *pdwCookie, IConnectionPoint **ppcpOut);
+
+#if (NTDDI_VERSION >= NTDDI_VISTA)
+  LWSTDAPI IStream_ReadPidl(IStream *pstm, PIDLIST_RELATIVE *ppidlOut);
+  LWSTDAPI IStream_WritePidl(IStream *pstm, PCUIDLIST_RELATIVE pidlWrite);
+#endif
+
+#if (_WIN32_IE >= _WIN32_IE_IE70)
+  LWSTDAPI IStream_ReadStr(IStream *pstm, PWSTR *ppsz);
+  LWSTDAPI IStream_WriteStr(IStream *pstm, PCWSTR psz);
+  LWSTDAPI IStream_Copy(IStream *pstmFrom, IStream *pstmTo, DWORD cb);
+#endif
+
+#if (_WIN32_IE >= 0x0601)
+#define SHGVSPB_PERUSER         0x00000001
+#define SHGVSPB_ALLUSERS        0x00000002
+#define SHGVSPB_PERFOLDER       0x00000004
+#define SHGVSPB_ALLFOLDERS      0x00000008
+#define SHGVSPB_INHERIT         0x00000010
+#define SHGVSPB_ROAM            0x00000020
+#define SHGVSPB_NOAUTODEFAULTS  0x80000000
+
+#define SHGVSPB_FOLDER (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER)
+#define SHGVSPB_FOLDERNODEFAULTS (SHGVSPB_PERUSER | SHGVSPB_PERFOLDER | SHGVSPB_NOAUTODEFAULTS)
+#define SHGVSPB_USERDEFAULTS (SHGVSPB_PERUSER | SHGVSPB_ALLFOLDERS)
+#define SHGVSPB_GLOBALDEFAULTS (SHGVSPB_ALLUSERS | SHGVSPB_ALLFOLDERS)
+
+  LWSTDAPI SHGetViewStatePropertyBag(LPCITEMIDLIST pidl,LPCWSTR pszBagName,DWORD dwFlags,REFIID riid,void **ppv);
+#endif
+
+#define FDTF_SHORTTIME          0x00000001
+#define FDTF_SHORTDATE          0x00000002
+#define FDTF_DEFAULT            (FDTF_SHORTDATE | FDTF_SHORTTIME)
+#define FDTF_LONGDATE           0x00000004
+#define FDTF_LONGTIME           0x00000008
+#define FDTF_RELATIVE           0x00000010
+#define FDTF_LTRDATE            0x00000100
+#define FDTF_RTLDATE            0x00000200
+#define FDTF_NOAUTOREADINGORDER 0x00000400
+
+  LWSTDAPI_(int) SHFormatDateTimeA(const FILETIME UNALIGNED *pft, DWORD *pdwFlags, LPSTR pszBuf, UINT cchBuf);
+  LWSTDAPI_(int) SHFormatDateTimeW(const FILETIME UNALIGNED *pft, DWORD *pdwFlags, LPWSTR pszBuf, UINT cchBuf);
+
+#define SHFormatDateTime __MINGW_NAME_AW(SHFormatDateTime)
 
-  LWSTDAPI GetAcceptLanguagesA(LPSTR psz,DWORD *pcch);
-  LWSTDAPI GetAcceptLanguagesW(LPWSTR psz,DWORD *pcch);
 #endif
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
+
+  LWSTDAPI_(int) SHAnsiToUnicode(PCSTR pszSrc, PWSTR pwszDst, int cwchBuf);
+  LWSTDAPI_(int) SHAnsiToAnsi(PCSTR pszSrc, PSTR pszDst, int cchBuf);
+  LWSTDAPI_(int) SHUnicodeToAnsi(PCWSTR pwszSrc, PSTR pszDst, int cchBuf);
+  LWSTDAPI_(int) SHUnicodeToUnicode(PCWSTR pwzSrc, PWSTR pwzDst, int cwchBuf);
+
+#if defined(UNICODE)
+#define SHTCharToUnicode(wzSrc, wzDest, cchSize) SHUnicodeToUnicode(wzSrc, wzDest, cchSize)
+#define SHTCharToAnsi(wzSrc, szDest, cchSize)    SHUnicodeToAnsi(wzSrc, szDest, cchSize)
+#define SHUnicodeToTChar(wzSrc, wzDest, cchSize) SHUnicodeToUnicode(wzSrc, wzDest, cchSize)
+#define SHAnsiToTChar(szSrc, wzDest, cchSize)    SHAnsiToUnicode(szSrc, wzDest, cchSize)
+#else
+#define SHTCharToUnicode(szSrc, wzDest, cchSize) SHAnsiToUnicode(szSrc, wzDest, cchSize)
+#define SHTCharToAnsi(szSrc, szDest, cchSize)    SHAnsiToAnsi(szSrc, szDest, cchSize)
+#define SHUnicodeToTChar(wzSrc, szDest, cchSize) SHUnicodeToAnsi(wzSrc, szDest, cchSize)
+#define SHAnsiToTChar(szSrc, szDest, cchSize)    SHAnsiToAnsi(szSrc, szDest, cchSize)
 #endif
 
-#endif /* WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) */
+#endif
 
-#endif /* !NOSHLWAPI */
-#endif /* _INC_SHLWAPI */
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
+  LWSTDAPI_(int) SHMessageBoxCheckA(HWND hwnd, LPCSTR pszText, LPCSTR pszCaption, UINT uType, int iDefault, LPCSTR pszRegVal);
+  LWSTDAPI_(int) SHMessageBoxCheckW(HWND hwnd, LPCWSTR pszText, LPCWSTR pszCaption, UINT uType, int iDefault, LPCWSTR pszRegVal);
+
+#define SHMessageBoxCheck  __MINGW_NAME_AW(SHMessageBoxCheck)
+
+  LWSTDAPI_(LRESULT) SHSendMessageBroadcastA(UINT uMsg, WPARAM wParam, LPARAM lParam);
+  LWSTDAPI_(LRESULT) SHSendMessageBroadcastW(UINT uMsg, WPARAM wParam, LPARAM lParam);
+
+#define SHSendMessageBroadcast  __MINGW_NAME_AW(SHSendMessageBroadcast)
+
+  LWSTDAPI_(CHAR) SHStripMneumonicA(LPSTR pszMenu);
+  LWSTDAPI_(WCHAR) SHStripMneumonicW(LPWSTR pszMenu);
+
+#define SHStripMneumonic __MINGW_NAME_AW(SHStripMneumonic)
+
+#endif
+
+#if defined(__cplusplus)
+}
+#endif
+
+#include <poppack.h>
+
+#endif
+
+#endif
+
+#endif
lib/libc/include/any-windows-any/shobjidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/shobjidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/shobjidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -31907,6 +31907,8 @@ static FORCEINLINE HRESULT IApplicationActivationManager_ActivateForProtocol(IAp
 
 #endif
 
+#ifndef __ShellObjects_LIBRARY_DEFINED__
+#define __ShellObjects_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_ShellObjects, 0x50a7e9b1, 0x70ef, 0x11d1, 0xb7,0x5a, 0x00,0xa0,0xc9,0x05,0x64,0xfe);
 
@@ -32795,6 +32797,7 @@ __CRT_UUID_DECL(ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,
 #endif
 #endif
 
+#endif /* __ShellObjects_LIBRARY_DEFINED__ */
 
 #if NTDDI_VERSION >= NTDDI_VISTA
   SHSTDAPI SHGetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, PROPVARIANT *ppropvar);
lib/libc/include/any-windows-any/shtypes.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.5 from shtypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/shtypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/spatialaudioclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/spatialaudioclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/spatialaudioclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -18,6 +18,14 @@
 
 /* Forward declarations */
 
+#ifndef __ISpatialAudioObjectRenderStreamNotify_FWD_DEFINED__
+#define __ISpatialAudioObjectRenderStreamNotify_FWD_DEFINED__
+typedef interface ISpatialAudioObjectRenderStreamNotify ISpatialAudioObjectRenderStreamNotify;
+#ifdef __cplusplus
+interface ISpatialAudioObjectRenderStreamNotify;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IAudioFormatEnumerator_FWD_DEFINED__
 #define __IAudioFormatEnumerator_FWD_DEFINED__
 typedef interface IAudioFormatEnumerator IAudioFormatEnumerator;
@@ -34,6 +42,38 @@ interface ISpatialAudioClient;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __ISpatialAudioObjectBase_FWD_DEFINED__
+#define __ISpatialAudioObjectBase_FWD_DEFINED__
+typedef interface ISpatialAudioObjectBase ISpatialAudioObjectBase;
+#ifdef __cplusplus
+interface ISpatialAudioObjectBase;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpatialAudioObject_FWD_DEFINED__
+#define __ISpatialAudioObject_FWD_DEFINED__
+typedef interface ISpatialAudioObject ISpatialAudioObject;
+#ifdef __cplusplus
+interface ISpatialAudioObject;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
+#define __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
+typedef interface ISpatialAudioObjectRenderStreamBase ISpatialAudioObjectRenderStreamBase;
+#ifdef __cplusplus
+interface ISpatialAudioObjectRenderStreamBase;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpatialAudioObjectRenderStream_FWD_DEFINED__
+#define __ISpatialAudioObjectRenderStream_FWD_DEFINED__
+typedef interface ISpatialAudioObjectRenderStream ISpatialAudioObjectRenderStream;
+#ifdef __cplusplus
+interface ISpatialAudioObjectRenderStream;
+#endif /* __cplusplus */
+#endif
+
 /* Headers for imported files */
 
 #include <unknwn.h>
@@ -65,6 +105,117 @@ typedef enum AudioObjectType {
     AudioObjectType_BottomBackRight = 0x10000,
     AudioObjectType_BackCenter = 0x20000
 } AudioObjectType;
+#define SPTLAUDCLNT_E_DESTROYED                     AUDCLNT_ERR(0x100)
+#define SPTLAUDCLNT_E_OUT_OF_ORDER                  AUDCLNT_ERR(0x101)
+#define SPTLAUDCLNT_E_RESOURCES_INVALIDATED         AUDCLNT_ERR(0x102)
+#define SPTLAUDCLNT_E_NO_MORE_OBJECTS               AUDCLNT_ERR(0x103)
+#define SPTLAUDCLNT_E_PROPERTY_NOT_SUPPORTED        AUDCLNT_ERR(0x104)
+#define SPTLAUDCLNT_E_ERRORS_IN_OBJECT_CALLS        AUDCLNT_ERR(0x105)
+#define SPTLAUDCLNT_E_METADATA_FORMAT_NOT_SUPPORTED AUDCLNT_ERR(0x106)
+#define SPTLAUDCLNT_E_STREAM_NOT_AVAILABLE          AUDCLNT_ERR(0x107)
+#define SPTLAUDCLNT_E_INVALID_LICENSE               AUDCLNT_ERR(0x108)
+#define SPTLAUDCLNT_E_STREAM_NOT_STOPPED            AUDCLNT_ERR(0x10a)
+#define SPTLAUDCLNT_E_STATIC_OBJECT_NOT_AVAILABLE   AUDCLNT_ERR(0x10b)
+#define SPTLAUDCLNT_E_OBJECT_ALREADY_ACTIVE         AUDCLNT_ERR(0x10c)
+#define SPTLAUDCLNT_E_INTERNAL                      AUDCLNT_ERR(0x10d)
+#ifndef __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
+#define __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
+typedef interface ISpatialAudioObjectRenderStreamBase ISpatialAudioObjectRenderStreamBase;
+#ifdef __cplusplus
+interface ISpatialAudioObjectRenderStreamBase;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * ISpatialAudioObjectRenderStreamNotify interface
+ */
+#ifndef __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__
+#define __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioObjectRenderStreamNotify, 0xdddf83e6, 0x68d7, 0x4c70, 0x88,0x3f, 0xa1,0x83,0x6a,0xfb,0x4a,0x50);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dddf83e6-68d7-4c70-883f-a1836afb4a50")
+ISpatialAudioObjectRenderStreamNotify : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnAvailableDynamicObjectCountChange(
+        ISpatialAudioObjectRenderStreamBase *stream,
+        LONGLONG deadline,
+        UINT32 object_count) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioObjectRenderStreamNotify, 0xdddf83e6, 0x68d7, 0x4c70, 0x88,0x3f, 0xa1,0x83,0x6a,0xfb,0x4a,0x50)
+#endif
+#else
+typedef struct ISpatialAudioObjectRenderStreamNotifyVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpatialAudioObjectRenderStreamNotify *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpatialAudioObjectRenderStreamNotify *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpatialAudioObjectRenderStreamNotify *This);
+
+    /*** ISpatialAudioObjectRenderStreamNotify methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnAvailableDynamicObjectCountChange)(
+        ISpatialAudioObjectRenderStreamNotify *This,
+        ISpatialAudioObjectRenderStreamBase *stream,
+        LONGLONG deadline,
+        UINT32 object_count);
+
+    END_INTERFACE
+} ISpatialAudioObjectRenderStreamNotifyVtbl;
+
+interface ISpatialAudioObjectRenderStreamNotify {
+    CONST_VTBL ISpatialAudioObjectRenderStreamNotifyVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioObjectRenderStreamNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioObjectRenderStreamNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioObjectRenderStreamNotify_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioObjectRenderStreamNotify methods ***/
+#define ISpatialAudioObjectRenderStreamNotify_OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count) (This)->lpVtbl->OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamNotify_QueryInterface(ISpatialAudioObjectRenderStreamNotify* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamNotify_AddRef(ISpatialAudioObjectRenderStreamNotify* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamNotify_Release(ISpatialAudioObjectRenderStreamNotify* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioObjectRenderStreamNotify methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamNotify_OnAvailableDynamicObjectCountChange(ISpatialAudioObjectRenderStreamNotify* This,ISpatialAudioObjectRenderStreamBase *stream,LONGLONG deadline,UINT32 object_count) {
+    return This->lpVtbl->OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__ */
+
+typedef struct tagSpatialAudioObjectRenderStreamActivationParams {
+    const WAVEFORMATEX *ObjectFormat;
+    AudioObjectType StaticObjectTypeMask;
+    UINT32 MinDynamicObjectCount;
+    UINT32 MaxDynamicObjectCount;
+    AUDIO_STREAM_CATEGORY Category;
+    HANDLE EventHandle;
+    ISpatialAudioObjectRenderStreamNotify *NotifyObject;
+} SpatialAudioObjectRenderStreamActivationParams;
 /*****************************************************************************
  * IAudioFormatEnumerator interface
  */
@@ -323,6 +474,525 @@ static FORCEINLINE HRESULT ISpatialAudioClient_ActivateSpatialAudioStream(ISpati
 
 #endif  /* __ISpatialAudioClient_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * ISpatialAudioObjectBase interface
+ */
+#ifndef __ISpatialAudioObjectBase_INTERFACE_DEFINED__
+#define __ISpatialAudioObjectBase_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioObjectBase, 0xcce0b8f2, 0x8d4d, 0x4efb, 0xa8,0xcf, 0x3d,0x6e,0xcf,0x1c,0x30,0xe0);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cce0b8f2-8d4d-4efb-a8cf-3d6ecf1c30e0")
+ISpatialAudioObjectBase : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetBuffer(
+        BYTE **buffer,
+        UINT32 *bytes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetEndOfStream(
+        UINT32 frames) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsActive(
+        WINBOOL *active) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAudioObjectType(
+        AudioObjectType *type) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioObjectBase, 0xcce0b8f2, 0x8d4d, 0x4efb, 0xa8,0xcf, 0x3d,0x6e,0xcf,0x1c,0x30,0xe0)
+#endif
+#else
+typedef struct ISpatialAudioObjectBaseVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpatialAudioObjectBase *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpatialAudioObjectBase *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpatialAudioObjectBase *This);
+
+    /*** ISpatialAudioObjectBase methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+        ISpatialAudioObjectBase *This,
+        BYTE **buffer,
+        UINT32 *bytes);
+
+    HRESULT (STDMETHODCALLTYPE *SetEndOfStream)(
+        ISpatialAudioObjectBase *This,
+        UINT32 frames);
+
+    HRESULT (STDMETHODCALLTYPE *IsActive)(
+        ISpatialAudioObjectBase *This,
+        WINBOOL *active);
+
+    HRESULT (STDMETHODCALLTYPE *GetAudioObjectType)(
+        ISpatialAudioObjectBase *This,
+        AudioObjectType *type);
+
+    END_INTERFACE
+} ISpatialAudioObjectBaseVtbl;
+
+interface ISpatialAudioObjectBase {
+    CONST_VTBL ISpatialAudioObjectBaseVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioObjectBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioObjectBase_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioObjectBase_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioObjectBase methods ***/
+#define ISpatialAudioObjectBase_GetBuffer(This,buffer,bytes) (This)->lpVtbl->GetBuffer(This,buffer,bytes)
+#define ISpatialAudioObjectBase_SetEndOfStream(This,frames) (This)->lpVtbl->SetEndOfStream(This,frames)
+#define ISpatialAudioObjectBase_IsActive(This,active) (This)->lpVtbl->IsActive(This,active)
+#define ISpatialAudioObjectBase_GetAudioObjectType(This,type) (This)->lpVtbl->GetAudioObjectType(This,type)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectBase_QueryInterface(ISpatialAudioObjectBase* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectBase_AddRef(ISpatialAudioObjectBase* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectBase_Release(ISpatialAudioObjectBase* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioObjectBase methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectBase_GetBuffer(ISpatialAudioObjectBase* This,BYTE **buffer,UINT32 *bytes) {
+    return This->lpVtbl->GetBuffer(This,buffer,bytes);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectBase_SetEndOfStream(ISpatialAudioObjectBase* This,UINT32 frames) {
+    return This->lpVtbl->SetEndOfStream(This,frames);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectBase_IsActive(ISpatialAudioObjectBase* This,WINBOOL *active) {
+    return This->lpVtbl->IsActive(This,active);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectBase_GetAudioObjectType(ISpatialAudioObjectBase* This,AudioObjectType *type) {
+    return This->lpVtbl->GetAudioObjectType(This,type);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpatialAudioObjectBase_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpatialAudioObject interface
+ */
+#ifndef __ISpatialAudioObject_INTERFACE_DEFINED__
+#define __ISpatialAudioObject_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioObject, 0xdde28967, 0x521b, 0x46e5, 0x8f,0x00, 0xbd,0x6f,0x2b,0xc8,0xab,0x1d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dde28967-521b-46e5-8f00-bd6f2bc8ab1d")
+ISpatialAudioObject : public ISpatialAudioObjectBase
+{
+    virtual HRESULT STDMETHODCALLTYPE SetPosition(
+        float x,
+        float y,
+        float z) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetVolume(
+        float vol) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioObject, 0xdde28967, 0x521b, 0x46e5, 0x8f,0x00, 0xbd,0x6f,0x2b,0xc8,0xab,0x1d)
+#endif
+#else
+typedef struct ISpatialAudioObjectVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpatialAudioObject *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpatialAudioObject *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpatialAudioObject *This);
+
+    /*** ISpatialAudioObjectBase methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetBuffer)(
+        ISpatialAudioObject *This,
+        BYTE **buffer,
+        UINT32 *bytes);
+
+    HRESULT (STDMETHODCALLTYPE *SetEndOfStream)(
+        ISpatialAudioObject *This,
+        UINT32 frames);
+
+    HRESULT (STDMETHODCALLTYPE *IsActive)(
+        ISpatialAudioObject *This,
+        WINBOOL *active);
+
+    HRESULT (STDMETHODCALLTYPE *GetAudioObjectType)(
+        ISpatialAudioObject *This,
+        AudioObjectType *type);
+
+    /*** ISpatialAudioObject methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetPosition)(
+        ISpatialAudioObject *This,
+        float x,
+        float y,
+        float z);
+
+    HRESULT (STDMETHODCALLTYPE *SetVolume)(
+        ISpatialAudioObject *This,
+        float vol);
+
+    END_INTERFACE
+} ISpatialAudioObjectVtbl;
+
+interface ISpatialAudioObject {
+    CONST_VTBL ISpatialAudioObjectVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioObject_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioObject_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioObjectBase methods ***/
+#define ISpatialAudioObject_GetBuffer(This,buffer,bytes) (This)->lpVtbl->GetBuffer(This,buffer,bytes)
+#define ISpatialAudioObject_SetEndOfStream(This,frames) (This)->lpVtbl->SetEndOfStream(This,frames)
+#define ISpatialAudioObject_IsActive(This,active) (This)->lpVtbl->IsActive(This,active)
+#define ISpatialAudioObject_GetAudioObjectType(This,type) (This)->lpVtbl->GetAudioObjectType(This,type)
+/*** ISpatialAudioObject methods ***/
+#define ISpatialAudioObject_SetPosition(This,x,y,z) (This)->lpVtbl->SetPosition(This,x,y,z)
+#define ISpatialAudioObject_SetVolume(This,vol) (This)->lpVtbl->SetVolume(This,vol)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObject_QueryInterface(ISpatialAudioObject* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioObject_AddRef(ISpatialAudioObject* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioObject_Release(ISpatialAudioObject* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioObjectBase methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObject_GetBuffer(ISpatialAudioObject* This,BYTE **buffer,UINT32 *bytes) {
+    return This->lpVtbl->GetBuffer(This,buffer,bytes);
+}
+static FORCEINLINE HRESULT ISpatialAudioObject_SetEndOfStream(ISpatialAudioObject* This,UINT32 frames) {
+    return This->lpVtbl->SetEndOfStream(This,frames);
+}
+static FORCEINLINE HRESULT ISpatialAudioObject_IsActive(ISpatialAudioObject* This,WINBOOL *active) {
+    return This->lpVtbl->IsActive(This,active);
+}
+static FORCEINLINE HRESULT ISpatialAudioObject_GetAudioObjectType(ISpatialAudioObject* This,AudioObjectType *type) {
+    return This->lpVtbl->GetAudioObjectType(This,type);
+}
+/*** ISpatialAudioObject methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObject_SetPosition(ISpatialAudioObject* This,float x,float y,float z) {
+    return This->lpVtbl->SetPosition(This,x,y,z);
+}
+static FORCEINLINE HRESULT ISpatialAudioObject_SetVolume(ISpatialAudioObject* This,float vol) {
+    return This->lpVtbl->SetVolume(This,vol);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpatialAudioObject_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpatialAudioObjectRenderStreamBase interface
+ */
+#ifndef __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__
+#define __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioObjectRenderStreamBase, 0xfeaaf403, 0xc1d8, 0x450d, 0xaa,0x05, 0xe0,0xcc,0xee,0x75,0x02,0xa8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("feaaf403-c1d8-450d-aa05-e0ccee7502a8")
+ISpatialAudioObjectRenderStreamBase : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetAvailableDynamicObjectCount(
+        UINT32 *count) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetService(
+        REFIID riid,
+        void **service) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Start(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Stop(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginUpdatingAudioObjects(
+        UINT32 *count,
+        UINT32 *frames) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndUpdatingAudioObjects(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioObjectRenderStreamBase, 0xfeaaf403, 0xc1d8, 0x450d, 0xaa,0x05, 0xe0,0xcc,0xee,0x75,0x02,0xa8)
+#endif
+#else
+typedef struct ISpatialAudioObjectRenderStreamBaseVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpatialAudioObjectRenderStreamBase *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpatialAudioObjectRenderStreamBase *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpatialAudioObjectRenderStreamBase *This);
+
+    /*** ISpatialAudioObjectRenderStreamBase methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAvailableDynamicObjectCount)(
+        ISpatialAudioObjectRenderStreamBase *This,
+        UINT32 *count);
+
+    HRESULT (STDMETHODCALLTYPE *GetService)(
+        ISpatialAudioObjectRenderStreamBase *This,
+        REFIID riid,
+        void **service);
+
+    HRESULT (STDMETHODCALLTYPE *Start)(
+        ISpatialAudioObjectRenderStreamBase *This);
+
+    HRESULT (STDMETHODCALLTYPE *Stop)(
+        ISpatialAudioObjectRenderStreamBase *This);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        ISpatialAudioObjectRenderStreamBase *This);
+
+    HRESULT (STDMETHODCALLTYPE *BeginUpdatingAudioObjects)(
+        ISpatialAudioObjectRenderStreamBase *This,
+        UINT32 *count,
+        UINT32 *frames);
+
+    HRESULT (STDMETHODCALLTYPE *EndUpdatingAudioObjects)(
+        ISpatialAudioObjectRenderStreamBase *This);
+
+    END_INTERFACE
+} ISpatialAudioObjectRenderStreamBaseVtbl;
+
+interface ISpatialAudioObjectRenderStreamBase {
+    CONST_VTBL ISpatialAudioObjectRenderStreamBaseVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioObjectRenderStreamBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioObjectRenderStreamBase_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioObjectRenderStreamBase_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioObjectRenderStreamBase methods ***/
+#define ISpatialAudioObjectRenderStreamBase_GetAvailableDynamicObjectCount(This,count) (This)->lpVtbl->GetAvailableDynamicObjectCount(This,count)
+#define ISpatialAudioObjectRenderStreamBase_GetService(This,riid,service) (This)->lpVtbl->GetService(This,riid,service)
+#define ISpatialAudioObjectRenderStreamBase_Start(This) (This)->lpVtbl->Start(This)
+#define ISpatialAudioObjectRenderStreamBase_Stop(This) (This)->lpVtbl->Stop(This)
+#define ISpatialAudioObjectRenderStreamBase_Reset(This) (This)->lpVtbl->Reset(This)
+#define ISpatialAudioObjectRenderStreamBase_BeginUpdatingAudioObjects(This,count,frames) (This)->lpVtbl->BeginUpdatingAudioObjects(This,count,frames)
+#define ISpatialAudioObjectRenderStreamBase_EndUpdatingAudioObjects(This) (This)->lpVtbl->EndUpdatingAudioObjects(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_QueryInterface(ISpatialAudioObjectRenderStreamBase* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamBase_AddRef(ISpatialAudioObjectRenderStreamBase* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamBase_Release(ISpatialAudioObjectRenderStreamBase* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioObjectRenderStreamBase methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_GetAvailableDynamicObjectCount(ISpatialAudioObjectRenderStreamBase* This,UINT32 *count) {
+    return This->lpVtbl->GetAvailableDynamicObjectCount(This,count);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_GetService(ISpatialAudioObjectRenderStreamBase* This,REFIID riid,void **service) {
+    return This->lpVtbl->GetService(This,riid,service);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Start(ISpatialAudioObjectRenderStreamBase* This) {
+    return This->lpVtbl->Start(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Stop(ISpatialAudioObjectRenderStreamBase* This) {
+    return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Reset(ISpatialAudioObjectRenderStreamBase* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_BeginUpdatingAudioObjects(ISpatialAudioObjectRenderStreamBase* This,UINT32 *count,UINT32 *frames) {
+    return This->lpVtbl->BeginUpdatingAudioObjects(This,count,frames);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_EndUpdatingAudioObjects(ISpatialAudioObjectRenderStreamBase* This) {
+    return This->lpVtbl->EndUpdatingAudioObjects(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpatialAudioObjectRenderStream interface
+ */
+#ifndef __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__
+#define __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioObjectRenderStream, 0xbab5f473, 0xb423, 0x477b, 0x85,0xf5, 0xb5,0xa3,0x32,0xa0,0x41,0x53);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bab5f473-b423-477b-85f5-b5a332a04153")
+ISpatialAudioObjectRenderStream : public ISpatialAudioObjectRenderStreamBase
+{
+    virtual HRESULT STDMETHODCALLTYPE ActivateSpatialAudioObject(
+        AudioObjectType type,
+        ISpatialAudioObject **object) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioObjectRenderStream, 0xbab5f473, 0xb423, 0x477b, 0x85,0xf5, 0xb5,0xa3,0x32,0xa0,0x41,0x53)
+#endif
+#else
+typedef struct ISpatialAudioObjectRenderStreamVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpatialAudioObjectRenderStream *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpatialAudioObjectRenderStream *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpatialAudioObjectRenderStream *This);
+
+    /*** ISpatialAudioObjectRenderStreamBase methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAvailableDynamicObjectCount)(
+        ISpatialAudioObjectRenderStream *This,
+        UINT32 *count);
+
+    HRESULT (STDMETHODCALLTYPE *GetService)(
+        ISpatialAudioObjectRenderStream *This,
+        REFIID riid,
+        void **service);
+
+    HRESULT (STDMETHODCALLTYPE *Start)(
+        ISpatialAudioObjectRenderStream *This);
+
+    HRESULT (STDMETHODCALLTYPE *Stop)(
+        ISpatialAudioObjectRenderStream *This);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        ISpatialAudioObjectRenderStream *This);
+
+    HRESULT (STDMETHODCALLTYPE *BeginUpdatingAudioObjects)(
+        ISpatialAudioObjectRenderStream *This,
+        UINT32 *count,
+        UINT32 *frames);
+
+    HRESULT (STDMETHODCALLTYPE *EndUpdatingAudioObjects)(
+        ISpatialAudioObjectRenderStream *This);
+
+    /*** ISpatialAudioObjectRenderStream methods ***/
+    HRESULT (STDMETHODCALLTYPE *ActivateSpatialAudioObject)(
+        ISpatialAudioObjectRenderStream *This,
+        AudioObjectType type,
+        ISpatialAudioObject **object);
+
+    END_INTERFACE
+} ISpatialAudioObjectRenderStreamVtbl;
+
+interface ISpatialAudioObjectRenderStream {
+    CONST_VTBL ISpatialAudioObjectRenderStreamVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioObjectRenderStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioObjectRenderStream_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioObjectRenderStream_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioObjectRenderStreamBase methods ***/
+#define ISpatialAudioObjectRenderStream_GetAvailableDynamicObjectCount(This,count) (This)->lpVtbl->GetAvailableDynamicObjectCount(This,count)
+#define ISpatialAudioObjectRenderStream_GetService(This,riid,service) (This)->lpVtbl->GetService(This,riid,service)
+#define ISpatialAudioObjectRenderStream_Start(This) (This)->lpVtbl->Start(This)
+#define ISpatialAudioObjectRenderStream_Stop(This) (This)->lpVtbl->Stop(This)
+#define ISpatialAudioObjectRenderStream_Reset(This) (This)->lpVtbl->Reset(This)
+#define ISpatialAudioObjectRenderStream_BeginUpdatingAudioObjects(This,count,frames) (This)->lpVtbl->BeginUpdatingAudioObjects(This,count,frames)
+#define ISpatialAudioObjectRenderStream_EndUpdatingAudioObjects(This) (This)->lpVtbl->EndUpdatingAudioObjects(This)
+/*** ISpatialAudioObjectRenderStream methods ***/
+#define ISpatialAudioObjectRenderStream_ActivateSpatialAudioObject(This,type,object) (This)->lpVtbl->ActivateSpatialAudioObject(This,type,object)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_QueryInterface(ISpatialAudioObjectRenderStream* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStream_AddRef(ISpatialAudioObjectRenderStream* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioObjectRenderStream_Release(ISpatialAudioObjectRenderStream* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioObjectRenderStreamBase methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_GetAvailableDynamicObjectCount(ISpatialAudioObjectRenderStream* This,UINT32 *count) {
+    return This->lpVtbl->GetAvailableDynamicObjectCount(This,count);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_GetService(ISpatialAudioObjectRenderStream* This,REFIID riid,void **service) {
+    return This->lpVtbl->GetService(This,riid,service);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Start(ISpatialAudioObjectRenderStream* This) {
+    return This->lpVtbl->Start(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Stop(ISpatialAudioObjectRenderStream* This) {
+    return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Reset(ISpatialAudioObjectRenderStream* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_BeginUpdatingAudioObjects(ISpatialAudioObjectRenderStream* This,UINT32 *count,UINT32 *frames) {
+    return This->lpVtbl->BeginUpdatingAudioObjects(This,count,frames);
+}
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_EndUpdatingAudioObjects(ISpatialAudioObjectRenderStream* This) {
+    return This->lpVtbl->EndUpdatingAudioObjects(This);
+}
+/*** ISpatialAudioObjectRenderStream methods ***/
+static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_ActivateSpatialAudioObject(ISpatialAudioObjectRenderStream* This,AudioObjectType type,ISpatialAudioObject **object) {
+    return This->lpVtbl->ActivateSpatialAudioObject(This,type,object);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__ */
+
 /* Begin additional prototypes for all interfaces */
 
 
lib/libc/include/any-windows-any/spatialaudiometadata.h
@@ -0,0 +1,13 @@
+/**
+ * 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 _INC_SPATIALAUDIOMETADATA
+#define _INC_SPATIALAUDIOMETADATA
+
+#define SPATIAL_AUDIO_POSITION 200
+#define SPATIAL_AUDIO_POSITION_BYTE_COUNT (sizeof(float) * 3)
+#define SPATIAL_AUDIO_STANDARD_COMMANDS_START 200
+
+#endif /* _INC_SPATIALAUDIOMETADATA */
lib/libc/include/any-windows-any/spellcheck.h
@@ -0,0 +1,1165 @@
+/*** Autogenerated by WIDL 6.4 from include/spellcheck.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __spellcheck_h__
+#define __spellcheck_h__
+
+/* Forward declarations */
+
+#ifndef __ISpellingError_FWD_DEFINED__
+#define __ISpellingError_FWD_DEFINED__
+typedef interface ISpellingError ISpellingError;
+#ifdef __cplusplus
+interface ISpellingError;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumSpellingError_FWD_DEFINED__
+#define __IEnumSpellingError_FWD_DEFINED__
+typedef interface IEnumSpellingError IEnumSpellingError;
+#ifdef __cplusplus
+interface IEnumSpellingError;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IOptionDescription_FWD_DEFINED__
+#define __IOptionDescription_FWD_DEFINED__
+typedef interface IOptionDescription IOptionDescription;
+#ifdef __cplusplus
+interface IOptionDescription;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpellCheckerChangedEventHandler_FWD_DEFINED__
+#define __ISpellCheckerChangedEventHandler_FWD_DEFINED__
+typedef interface ISpellCheckerChangedEventHandler ISpellCheckerChangedEventHandler;
+#ifdef __cplusplus
+interface ISpellCheckerChangedEventHandler;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpellChecker_FWD_DEFINED__
+#define __ISpellChecker_FWD_DEFINED__
+typedef interface ISpellChecker ISpellChecker;
+#ifdef __cplusplus
+interface ISpellChecker;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpellChecker2_FWD_DEFINED__
+#define __ISpellChecker2_FWD_DEFINED__
+typedef interface ISpellChecker2 ISpellChecker2;
+#ifdef __cplusplus
+interface ISpellChecker2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpellCheckerFactory_FWD_DEFINED__
+#define __ISpellCheckerFactory_FWD_DEFINED__
+typedef interface ISpellCheckerFactory ISpellCheckerFactory;
+#ifdef __cplusplus
+interface ISpellCheckerFactory;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUserDictionariesRegistrar_FWD_DEFINED__
+#define __IUserDictionariesRegistrar_FWD_DEFINED__
+typedef interface IUserDictionariesRegistrar IUserDictionariesRegistrar;
+#ifdef __cplusplus
+interface IUserDictionariesRegistrar;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __SpellCheckerFactory_FWD_DEFINED__
+#define __SpellCheckerFactory_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class SpellCheckerFactory SpellCheckerFactory;
+#else
+typedef struct SpellCheckerFactory SpellCheckerFactory;
+#endif /* defined __cplusplus */
+#endif /* defined __SpellCheckerFactory_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef MIN_SPELLING_NTDDI
+#define MIN_SPELLING_NTDDI NTDDI_WIN8
+#endif
+#if NTDDI_VERSION >= MIN_SPELLING_NTDDI
+#include <winapifamily.h>
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+typedef enum WORDLIST_TYPE {
+    WORDLIST_TYPE_IGNORE = 0,
+    WORDLIST_TYPE_ADD = 1,
+    WORDLIST_TYPE_EXCLUDE = 2,
+    WORDLIST_TYPE_AUTOCORRECT = 3
+} WORDLIST_TYPE;
+/*****************************************************************************
+ * ISpellingError interface
+ */
+#ifndef __ISpellingError_INTERFACE_DEFINED__
+#define __ISpellingError_INTERFACE_DEFINED__
+
+typedef enum CORRECTIVE_ACTION {
+    CORRECTIVE_ACTION_NONE = 0,
+    CORRECTIVE_ACTION_GET_SUGGESTIONS = 1,
+    CORRECTIVE_ACTION_REPLACE = 2,
+    CORRECTIVE_ACTION_DELETE = 3
+} CORRECTIVE_ACTION;
+DEFINE_GUID(IID_ISpellingError, 0xb7c82d61, 0xfbe8, 0x4b47, 0x9b,0x27, 0x6c,0x0d,0x2e,0x0d,0xe0,0xa3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b7c82d61-fbe8-4b47-9b27-6c0d2e0de0a3")
+ISpellingError : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE get_StartIndex(
+        ULONG *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Length(
+        ULONG *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CorrectiveAction(
+        CORRECTIVE_ACTION *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Replacement(
+        LPWSTR *val) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpellingError, 0xb7c82d61, 0xfbe8, 0x4b47, 0x9b,0x27, 0x6c,0x0d,0x2e,0x0d,0xe0,0xa3)
+#endif
+#else
+typedef struct ISpellingErrorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpellingError *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpellingError *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpellingError *This);
+
+    /*** ISpellingError methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_StartIndex)(
+        ISpellingError *This,
+        ULONG *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_Length)(
+        ISpellingError *This,
+        ULONG *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_CorrectiveAction)(
+        ISpellingError *This,
+        CORRECTIVE_ACTION *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_Replacement)(
+        ISpellingError *This,
+        LPWSTR *val);
+
+    END_INTERFACE
+} ISpellingErrorVtbl;
+
+interface ISpellingError {
+    CONST_VTBL ISpellingErrorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpellingError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpellingError_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpellingError_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpellingError methods ***/
+#define ISpellingError_get_StartIndex(This,val) (This)->lpVtbl->get_StartIndex(This,val)
+#define ISpellingError_get_Length(This,val) (This)->lpVtbl->get_Length(This,val)
+#define ISpellingError_get_CorrectiveAction(This,val) (This)->lpVtbl->get_CorrectiveAction(This,val)
+#define ISpellingError_get_Replacement(This,val) (This)->lpVtbl->get_Replacement(This,val)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpellingError_QueryInterface(ISpellingError* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpellingError_AddRef(ISpellingError* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpellingError_Release(ISpellingError* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpellingError methods ***/
+static FORCEINLINE HRESULT ISpellingError_get_StartIndex(ISpellingError* This,ULONG *val) {
+    return This->lpVtbl->get_StartIndex(This,val);
+}
+static FORCEINLINE HRESULT ISpellingError_get_Length(ISpellingError* This,ULONG *val) {
+    return This->lpVtbl->get_Length(This,val);
+}
+static FORCEINLINE HRESULT ISpellingError_get_CorrectiveAction(ISpellingError* This,CORRECTIVE_ACTION *val) {
+    return This->lpVtbl->get_CorrectiveAction(This,val);
+}
+static FORCEINLINE HRESULT ISpellingError_get_Replacement(ISpellingError* This,LPWSTR *val) {
+    return This->lpVtbl->get_Replacement(This,val);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpellingError_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumSpellingError interface
+ */
+#ifndef __IEnumSpellingError_INTERFACE_DEFINED__
+#define __IEnumSpellingError_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumSpellingError, 0x803e3bd4, 0x2828, 0x4410, 0x82,0x90, 0x41,0x8d,0x1d,0x73,0xc7,0x62);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("803e3bd4-2828-4410-8290-418d1d73c762")
+IEnumSpellingError : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        ISpellingError **val) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumSpellingError, 0x803e3bd4, 0x2828, 0x4410, 0x82,0x90, 0x41,0x8d,0x1d,0x73,0xc7,0x62)
+#endif
+#else
+typedef struct IEnumSpellingErrorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumSpellingError *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumSpellingError *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumSpellingError *This);
+
+    /*** IEnumSpellingError methods ***/
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumSpellingError *This,
+        ISpellingError **val);
+
+    END_INTERFACE
+} IEnumSpellingErrorVtbl;
+
+interface IEnumSpellingError {
+    CONST_VTBL IEnumSpellingErrorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumSpellingError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumSpellingError_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumSpellingError_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumSpellingError methods ***/
+#define IEnumSpellingError_Next(This,val) (This)->lpVtbl->Next(This,val)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IEnumSpellingError_QueryInterface(IEnumSpellingError* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IEnumSpellingError_AddRef(IEnumSpellingError* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IEnumSpellingError_Release(IEnumSpellingError* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumSpellingError methods ***/
+static FORCEINLINE HRESULT IEnumSpellingError_Next(IEnumSpellingError* This,ISpellingError **val) {
+    return This->lpVtbl->Next(This,val);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IEnumSpellingError_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IOptionDescription interface
+ */
+#ifndef __IOptionDescription_INTERFACE_DEFINED__
+#define __IOptionDescription_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IOptionDescription, 0x432e5f85, 0x35cf, 0x4606, 0xa8,0x01, 0x6f,0x70,0x27,0x7e,0x1d,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("432e5f85-35cf-4606-a801-6f70277e1d7a")
+IOptionDescription : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Id(
+        LPWSTR *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Heading(
+        LPWSTR *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Description(
+        LPWSTR *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Labels(
+        IEnumString **val) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IOptionDescription, 0x432e5f85, 0x35cf, 0x4606, 0xa8,0x01, 0x6f,0x70,0x27,0x7e,0x1d,0x7a)
+#endif
+#else
+typedef struct IOptionDescriptionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IOptionDescription *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IOptionDescription *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IOptionDescription *This);
+
+    /*** IOptionDescription methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IOptionDescription *This,
+        LPWSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_Heading)(
+        IOptionDescription *This,
+        LPWSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_Description)(
+        IOptionDescription *This,
+        LPWSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_Labels)(
+        IOptionDescription *This,
+        IEnumString **val);
+
+    END_INTERFACE
+} IOptionDescriptionVtbl;
+
+interface IOptionDescription {
+    CONST_VTBL IOptionDescriptionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IOptionDescription_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IOptionDescription_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IOptionDescription_Release(This) (This)->lpVtbl->Release(This)
+/*** IOptionDescription methods ***/
+#define IOptionDescription_get_Id(This,val) (This)->lpVtbl->get_Id(This,val)
+#define IOptionDescription_get_Heading(This,val) (This)->lpVtbl->get_Heading(This,val)
+#define IOptionDescription_get_Description(This,val) (This)->lpVtbl->get_Description(This,val)
+#define IOptionDescription_get_Labels(This,val) (This)->lpVtbl->get_Labels(This,val)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IOptionDescription_QueryInterface(IOptionDescription* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IOptionDescription_AddRef(IOptionDescription* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IOptionDescription_Release(IOptionDescription* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IOptionDescription methods ***/
+static FORCEINLINE HRESULT IOptionDescription_get_Id(IOptionDescription* This,LPWSTR *val) {
+    return This->lpVtbl->get_Id(This,val);
+}
+static FORCEINLINE HRESULT IOptionDescription_get_Heading(IOptionDescription* This,LPWSTR *val) {
+    return This->lpVtbl->get_Heading(This,val);
+}
+static FORCEINLINE HRESULT IOptionDescription_get_Description(IOptionDescription* This,LPWSTR *val) {
+    return This->lpVtbl->get_Description(This,val);
+}
+static FORCEINLINE HRESULT IOptionDescription_get_Labels(IOptionDescription* This,IEnumString **val) {
+    return This->lpVtbl->get_Labels(This,val);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IOptionDescription_INTERFACE_DEFINED__ */
+
+#ifndef __ISpellChecker_FWD_DEFINED__
+#define __ISpellChecker_FWD_DEFINED__
+typedef interface ISpellChecker ISpellChecker;
+#ifdef __cplusplus
+interface ISpellChecker;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * ISpellCheckerChangedEventHandler interface
+ */
+#ifndef __ISpellCheckerChangedEventHandler_INTERFACE_DEFINED__
+#define __ISpellCheckerChangedEventHandler_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpellCheckerChangedEventHandler, 0x0b83a5b0, 0x792f, 0x4eab, 0x97,0x99, 0xac,0xf5,0x2c,0x5e,0xd0,0x8a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0b83a5b0-792f-4eab-9799-acf52c5ed08a")
+ISpellCheckerChangedEventHandler : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Invoke(
+        ISpellChecker *sender) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpellCheckerChangedEventHandler, 0x0b83a5b0, 0x792f, 0x4eab, 0x97,0x99, 0xac,0xf5,0x2c,0x5e,0xd0,0x8a)
+#endif
+#else
+typedef struct ISpellCheckerChangedEventHandlerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpellCheckerChangedEventHandler *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpellCheckerChangedEventHandler *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpellCheckerChangedEventHandler *This);
+
+    /*** ISpellCheckerChangedEventHandler methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISpellCheckerChangedEventHandler *This,
+        ISpellChecker *sender);
+
+    END_INTERFACE
+} ISpellCheckerChangedEventHandlerVtbl;
+
+interface ISpellCheckerChangedEventHandler {
+    CONST_VTBL ISpellCheckerChangedEventHandlerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpellCheckerChangedEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpellCheckerChangedEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpellCheckerChangedEventHandler_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpellCheckerChangedEventHandler methods ***/
+#define ISpellCheckerChangedEventHandler_Invoke(This,sender) (This)->lpVtbl->Invoke(This,sender)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpellCheckerChangedEventHandler_QueryInterface(ISpellCheckerChangedEventHandler* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpellCheckerChangedEventHandler_AddRef(ISpellCheckerChangedEventHandler* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpellCheckerChangedEventHandler_Release(ISpellCheckerChangedEventHandler* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpellCheckerChangedEventHandler methods ***/
+static FORCEINLINE HRESULT ISpellCheckerChangedEventHandler_Invoke(ISpellCheckerChangedEventHandler* This,ISpellChecker *sender) {
+    return This->lpVtbl->Invoke(This,sender);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpellCheckerChangedEventHandler_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpellChecker interface
+ */
+#ifndef __ISpellChecker_INTERFACE_DEFINED__
+#define __ISpellChecker_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpellChecker, 0xb6fd0b71, 0xe2bc, 0x4653, 0x8d,0x05, 0xf1,0x97,0xe4,0x12,0x77,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b6fd0b71-e2bc-4653-8d05-f197e412770b")
+ISpellChecker : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE get_LanguageTag(
+        LPWSTR *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Check(
+        LPCWSTR text,
+        IEnumSpellingError **val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Suggest(
+        LPCWSTR word,
+        IEnumString **val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Add(
+        LPCWSTR word) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Ignore(
+        LPCWSTR word) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AutoCorrect(
+        LPCWSTR from,
+        LPCWSTR to) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetOptionValue(
+        LPCWSTR option_id,
+        BYTE *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_OptionIds(
+        IEnumString **val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Id(
+        LPWSTR *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_LocalizedName(
+        LPWSTR *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE add_SpellCheckerChanged(
+        ISpellCheckerChangedEventHandler *handler,
+        DWORD *event_cookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE remove_SpellCheckerChanged(
+        DWORD event_cookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetOptionDescription(
+        LPCWSTR optionId,
+        IOptionDescription **val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ComprehensiveCheck(
+        LPCWSTR text,
+        IEnumSpellingError **val) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpellChecker, 0xb6fd0b71, 0xe2bc, 0x4653, 0x8d,0x05, 0xf1,0x97,0xe4,0x12,0x77,0x0b)
+#endif
+#else
+typedef struct ISpellCheckerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpellChecker *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpellChecker *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpellChecker *This);
+
+    /*** ISpellChecker methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_LanguageTag)(
+        ISpellChecker *This,
+        LPWSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *Check)(
+        ISpellChecker *This,
+        LPCWSTR text,
+        IEnumSpellingError **val);
+
+    HRESULT (STDMETHODCALLTYPE *Suggest)(
+        ISpellChecker *This,
+        LPCWSTR word,
+        IEnumString **val);
+
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        ISpellChecker *This,
+        LPCWSTR word);
+
+    HRESULT (STDMETHODCALLTYPE *Ignore)(
+        ISpellChecker *This,
+        LPCWSTR word);
+
+    HRESULT (STDMETHODCALLTYPE *AutoCorrect)(
+        ISpellChecker *This,
+        LPCWSTR from,
+        LPCWSTR to);
+
+    HRESULT (STDMETHODCALLTYPE *GetOptionValue)(
+        ISpellChecker *This,
+        LPCWSTR option_id,
+        BYTE *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_OptionIds)(
+        ISpellChecker *This,
+        IEnumString **val);
+
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        ISpellChecker *This,
+        LPWSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_LocalizedName)(
+        ISpellChecker *This,
+        LPWSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *add_SpellCheckerChanged)(
+        ISpellChecker *This,
+        ISpellCheckerChangedEventHandler *handler,
+        DWORD *event_cookie);
+
+    HRESULT (STDMETHODCALLTYPE *remove_SpellCheckerChanged)(
+        ISpellChecker *This,
+        DWORD event_cookie);
+
+    HRESULT (STDMETHODCALLTYPE *GetOptionDescription)(
+        ISpellChecker *This,
+        LPCWSTR optionId,
+        IOptionDescription **val);
+
+    HRESULT (STDMETHODCALLTYPE *ComprehensiveCheck)(
+        ISpellChecker *This,
+        LPCWSTR text,
+        IEnumSpellingError **val);
+
+    END_INTERFACE
+} ISpellCheckerVtbl;
+
+interface ISpellChecker {
+    CONST_VTBL ISpellCheckerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpellChecker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpellChecker_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpellChecker_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpellChecker methods ***/
+#define ISpellChecker_get_LanguageTag(This,val) (This)->lpVtbl->get_LanguageTag(This,val)
+#define ISpellChecker_Check(This,text,val) (This)->lpVtbl->Check(This,text,val)
+#define ISpellChecker_Suggest(This,word,val) (This)->lpVtbl->Suggest(This,word,val)
+#define ISpellChecker_Add(This,word) (This)->lpVtbl->Add(This,word)
+#define ISpellChecker_Ignore(This,word) (This)->lpVtbl->Ignore(This,word)
+#define ISpellChecker_AutoCorrect(This,from,to) (This)->lpVtbl->AutoCorrect(This,from,to)
+#define ISpellChecker_GetOptionValue(This,option_id,val) (This)->lpVtbl->GetOptionValue(This,option_id,val)
+#define ISpellChecker_get_OptionIds(This,val) (This)->lpVtbl->get_OptionIds(This,val)
+#define ISpellChecker_get_Id(This,val) (This)->lpVtbl->get_Id(This,val)
+#define ISpellChecker_get_LocalizedName(This,val) (This)->lpVtbl->get_LocalizedName(This,val)
+#define ISpellChecker_add_SpellCheckerChanged(This,handler,event_cookie) (This)->lpVtbl->add_SpellCheckerChanged(This,handler,event_cookie)
+#define ISpellChecker_remove_SpellCheckerChanged(This,event_cookie) (This)->lpVtbl->remove_SpellCheckerChanged(This,event_cookie)
+#define ISpellChecker_GetOptionDescription(This,optionId,val) (This)->lpVtbl->GetOptionDescription(This,optionId,val)
+#define ISpellChecker_ComprehensiveCheck(This,text,val) (This)->lpVtbl->ComprehensiveCheck(This,text,val)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpellChecker_QueryInterface(ISpellChecker* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpellChecker_AddRef(ISpellChecker* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpellChecker_Release(ISpellChecker* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpellChecker methods ***/
+static FORCEINLINE HRESULT ISpellChecker_get_LanguageTag(ISpellChecker* This,LPWSTR *val) {
+    return This->lpVtbl->get_LanguageTag(This,val);
+}
+static FORCEINLINE HRESULT ISpellChecker_Check(ISpellChecker* This,LPCWSTR text,IEnumSpellingError **val) {
+    return This->lpVtbl->Check(This,text,val);
+}
+static FORCEINLINE HRESULT ISpellChecker_Suggest(ISpellChecker* This,LPCWSTR word,IEnumString **val) {
+    return This->lpVtbl->Suggest(This,word,val);
+}
+static FORCEINLINE HRESULT ISpellChecker_Add(ISpellChecker* This,LPCWSTR word) {
+    return This->lpVtbl->Add(This,word);
+}
+static FORCEINLINE HRESULT ISpellChecker_Ignore(ISpellChecker* This,LPCWSTR word) {
+    return This->lpVtbl->Ignore(This,word);
+}
+static FORCEINLINE HRESULT ISpellChecker_AutoCorrect(ISpellChecker* This,LPCWSTR from,LPCWSTR to) {
+    return This->lpVtbl->AutoCorrect(This,from,to);
+}
+static FORCEINLINE HRESULT ISpellChecker_GetOptionValue(ISpellChecker* This,LPCWSTR option_id,BYTE *val) {
+    return This->lpVtbl->GetOptionValue(This,option_id,val);
+}
+static FORCEINLINE HRESULT ISpellChecker_get_OptionIds(ISpellChecker* This,IEnumString **val) {
+    return This->lpVtbl->get_OptionIds(This,val);
+}
+static FORCEINLINE HRESULT ISpellChecker_get_Id(ISpellChecker* This,LPWSTR *val) {
+    return This->lpVtbl->get_Id(This,val);
+}
+static FORCEINLINE HRESULT ISpellChecker_get_LocalizedName(ISpellChecker* This,LPWSTR *val) {
+    return This->lpVtbl->get_LocalizedName(This,val);
+}
+static FORCEINLINE HRESULT ISpellChecker_add_SpellCheckerChanged(ISpellChecker* This,ISpellCheckerChangedEventHandler *handler,DWORD *event_cookie) {
+    return This->lpVtbl->add_SpellCheckerChanged(This,handler,event_cookie);
+}
+static FORCEINLINE HRESULT ISpellChecker_remove_SpellCheckerChanged(ISpellChecker* This,DWORD event_cookie) {
+    return This->lpVtbl->remove_SpellCheckerChanged(This,event_cookie);
+}
+static FORCEINLINE HRESULT ISpellChecker_GetOptionDescription(ISpellChecker* This,LPCWSTR optionId,IOptionDescription **val) {
+    return This->lpVtbl->GetOptionDescription(This,optionId,val);
+}
+static FORCEINLINE HRESULT ISpellChecker_ComprehensiveCheck(ISpellChecker* This,LPCWSTR text,IEnumSpellingError **val) {
+    return This->lpVtbl->ComprehensiveCheck(This,text,val);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpellChecker_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpellChecker2 interface
+ */
+#ifndef __ISpellChecker2_INTERFACE_DEFINED__
+#define __ISpellChecker2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpellChecker2, 0xe7ed1c71, 0x87f7, 0x4378, 0xa8,0x40, 0xc9,0x20,0x0d,0xac,0xee,0x47);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e7ed1c71-87f7-4378-a840-c9200dacee47")
+ISpellChecker2 : public ISpellChecker
+{
+    virtual HRESULT STDMETHODCALLTYPE Remove(
+        LPCWSTR word) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpellChecker2, 0xe7ed1c71, 0x87f7, 0x4378, 0xa8,0x40, 0xc9,0x20,0x0d,0xac,0xee,0x47)
+#endif
+#else
+typedef struct ISpellChecker2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpellChecker2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpellChecker2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpellChecker2 *This);
+
+    /*** ISpellChecker methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_LanguageTag)(
+        ISpellChecker2 *This,
+        LPWSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *Check)(
+        ISpellChecker2 *This,
+        LPCWSTR text,
+        IEnumSpellingError **val);
+
+    HRESULT (STDMETHODCALLTYPE *Suggest)(
+        ISpellChecker2 *This,
+        LPCWSTR word,
+        IEnumString **val);
+
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        ISpellChecker2 *This,
+        LPCWSTR word);
+
+    HRESULT (STDMETHODCALLTYPE *Ignore)(
+        ISpellChecker2 *This,
+        LPCWSTR word);
+
+    HRESULT (STDMETHODCALLTYPE *AutoCorrect)(
+        ISpellChecker2 *This,
+        LPCWSTR from,
+        LPCWSTR to);
+
+    HRESULT (STDMETHODCALLTYPE *GetOptionValue)(
+        ISpellChecker2 *This,
+        LPCWSTR option_id,
+        BYTE *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_OptionIds)(
+        ISpellChecker2 *This,
+        IEnumString **val);
+
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        ISpellChecker2 *This,
+        LPWSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_LocalizedName)(
+        ISpellChecker2 *This,
+        LPWSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *add_SpellCheckerChanged)(
+        ISpellChecker2 *This,
+        ISpellCheckerChangedEventHandler *handler,
+        DWORD *event_cookie);
+
+    HRESULT (STDMETHODCALLTYPE *remove_SpellCheckerChanged)(
+        ISpellChecker2 *This,
+        DWORD event_cookie);
+
+    HRESULT (STDMETHODCALLTYPE *GetOptionDescription)(
+        ISpellChecker2 *This,
+        LPCWSTR optionId,
+        IOptionDescription **val);
+
+    HRESULT (STDMETHODCALLTYPE *ComprehensiveCheck)(
+        ISpellChecker2 *This,
+        LPCWSTR text,
+        IEnumSpellingError **val);
+
+    /*** ISpellChecker2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *Remove)(
+        ISpellChecker2 *This,
+        LPCWSTR word);
+
+    END_INTERFACE
+} ISpellChecker2Vtbl;
+
+interface ISpellChecker2 {
+    CONST_VTBL ISpellChecker2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpellChecker2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpellChecker2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpellChecker2_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpellChecker methods ***/
+#define ISpellChecker2_get_LanguageTag(This,val) (This)->lpVtbl->get_LanguageTag(This,val)
+#define ISpellChecker2_Check(This,text,val) (This)->lpVtbl->Check(This,text,val)
+#define ISpellChecker2_Suggest(This,word,val) (This)->lpVtbl->Suggest(This,word,val)
+#define ISpellChecker2_Add(This,word) (This)->lpVtbl->Add(This,word)
+#define ISpellChecker2_Ignore(This,word) (This)->lpVtbl->Ignore(This,word)
+#define ISpellChecker2_AutoCorrect(This,from,to) (This)->lpVtbl->AutoCorrect(This,from,to)
+#define ISpellChecker2_GetOptionValue(This,option_id,val) (This)->lpVtbl->GetOptionValue(This,option_id,val)
+#define ISpellChecker2_get_OptionIds(This,val) (This)->lpVtbl->get_OptionIds(This,val)
+#define ISpellChecker2_get_Id(This,val) (This)->lpVtbl->get_Id(This,val)
+#define ISpellChecker2_get_LocalizedName(This,val) (This)->lpVtbl->get_LocalizedName(This,val)
+#define ISpellChecker2_add_SpellCheckerChanged(This,handler,event_cookie) (This)->lpVtbl->add_SpellCheckerChanged(This,handler,event_cookie)
+#define ISpellChecker2_remove_SpellCheckerChanged(This,event_cookie) (This)->lpVtbl->remove_SpellCheckerChanged(This,event_cookie)
+#define ISpellChecker2_GetOptionDescription(This,optionId,val) (This)->lpVtbl->GetOptionDescription(This,optionId,val)
+#define ISpellChecker2_ComprehensiveCheck(This,text,val) (This)->lpVtbl->ComprehensiveCheck(This,text,val)
+/*** ISpellChecker2 methods ***/
+#define ISpellChecker2_Remove(This,word) (This)->lpVtbl->Remove(This,word)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpellChecker2_QueryInterface(ISpellChecker2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpellChecker2_AddRef(ISpellChecker2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpellChecker2_Release(ISpellChecker2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpellChecker methods ***/
+static FORCEINLINE HRESULT ISpellChecker2_get_LanguageTag(ISpellChecker2* This,LPWSTR *val) {
+    return This->lpVtbl->get_LanguageTag(This,val);
+}
+static FORCEINLINE HRESULT ISpellChecker2_Check(ISpellChecker2* This,LPCWSTR text,IEnumSpellingError **val) {
+    return This->lpVtbl->Check(This,text,val);
+}
+static FORCEINLINE HRESULT ISpellChecker2_Suggest(ISpellChecker2* This,LPCWSTR word,IEnumString **val) {
+    return This->lpVtbl->Suggest(This,word,val);
+}
+static FORCEINLINE HRESULT ISpellChecker2_Add(ISpellChecker2* This,LPCWSTR word) {
+    return This->lpVtbl->Add(This,word);
+}
+static FORCEINLINE HRESULT ISpellChecker2_Ignore(ISpellChecker2* This,LPCWSTR word) {
+    return This->lpVtbl->Ignore(This,word);
+}
+static FORCEINLINE HRESULT ISpellChecker2_AutoCorrect(ISpellChecker2* This,LPCWSTR from,LPCWSTR to) {
+    return This->lpVtbl->AutoCorrect(This,from,to);
+}
+static FORCEINLINE HRESULT ISpellChecker2_GetOptionValue(ISpellChecker2* This,LPCWSTR option_id,BYTE *val) {
+    return This->lpVtbl->GetOptionValue(This,option_id,val);
+}
+static FORCEINLINE HRESULT ISpellChecker2_get_OptionIds(ISpellChecker2* This,IEnumString **val) {
+    return This->lpVtbl->get_OptionIds(This,val);
+}
+static FORCEINLINE HRESULT ISpellChecker2_get_Id(ISpellChecker2* This,LPWSTR *val) {
+    return This->lpVtbl->get_Id(This,val);
+}
+static FORCEINLINE HRESULT ISpellChecker2_get_LocalizedName(ISpellChecker2* This,LPWSTR *val) {
+    return This->lpVtbl->get_LocalizedName(This,val);
+}
+static FORCEINLINE HRESULT ISpellChecker2_add_SpellCheckerChanged(ISpellChecker2* This,ISpellCheckerChangedEventHandler *handler,DWORD *event_cookie) {
+    return This->lpVtbl->add_SpellCheckerChanged(This,handler,event_cookie);
+}
+static FORCEINLINE HRESULT ISpellChecker2_remove_SpellCheckerChanged(ISpellChecker2* This,DWORD event_cookie) {
+    return This->lpVtbl->remove_SpellCheckerChanged(This,event_cookie);
+}
+static FORCEINLINE HRESULT ISpellChecker2_GetOptionDescription(ISpellChecker2* This,LPCWSTR optionId,IOptionDescription **val) {
+    return This->lpVtbl->GetOptionDescription(This,optionId,val);
+}
+static FORCEINLINE HRESULT ISpellChecker2_ComprehensiveCheck(ISpellChecker2* This,LPCWSTR text,IEnumSpellingError **val) {
+    return This->lpVtbl->ComprehensiveCheck(This,text,val);
+}
+/*** ISpellChecker2 methods ***/
+static FORCEINLINE HRESULT ISpellChecker2_Remove(ISpellChecker2* This,LPCWSTR word) {
+    return This->lpVtbl->Remove(This,word);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpellChecker2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpellCheckerFactory interface
+ */
+#ifndef __ISpellCheckerFactory_INTERFACE_DEFINED__
+#define __ISpellCheckerFactory_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpellCheckerFactory, 0x8e018a9d, 0x2415, 0x4677, 0xbf,0x08, 0x79,0x4e,0xa6,0x1f,0x94,0xbb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8e018a9d-2415-4677-bf08-794ea61f94bb")
+ISpellCheckerFactory : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE get_SupportedLanguages(
+        IEnumString **val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsSupported(
+        LPCWSTR languageTag,
+        WINBOOL *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateSpellChecker(
+        LPCWSTR languageTag,
+        ISpellChecker **val) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpellCheckerFactory, 0x8e018a9d, 0x2415, 0x4677, 0xbf,0x08, 0x79,0x4e,0xa6,0x1f,0x94,0xbb)
+#endif
+#else
+typedef struct ISpellCheckerFactoryVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpellCheckerFactory *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpellCheckerFactory *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpellCheckerFactory *This);
+
+    /*** ISpellCheckerFactory methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_SupportedLanguages)(
+        ISpellCheckerFactory *This,
+        IEnumString **val);
+
+    HRESULT (STDMETHODCALLTYPE *IsSupported)(
+        ISpellCheckerFactory *This,
+        LPCWSTR languageTag,
+        WINBOOL *val);
+
+    HRESULT (STDMETHODCALLTYPE *CreateSpellChecker)(
+        ISpellCheckerFactory *This,
+        LPCWSTR languageTag,
+        ISpellChecker **val);
+
+    END_INTERFACE
+} ISpellCheckerFactoryVtbl;
+
+interface ISpellCheckerFactory {
+    CONST_VTBL ISpellCheckerFactoryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpellCheckerFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpellCheckerFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpellCheckerFactory_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpellCheckerFactory methods ***/
+#define ISpellCheckerFactory_get_SupportedLanguages(This,val) (This)->lpVtbl->get_SupportedLanguages(This,val)
+#define ISpellCheckerFactory_IsSupported(This,languageTag,val) (This)->lpVtbl->IsSupported(This,languageTag,val)
+#define ISpellCheckerFactory_CreateSpellChecker(This,languageTag,val) (This)->lpVtbl->CreateSpellChecker(This,languageTag,val)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpellCheckerFactory_QueryInterface(ISpellCheckerFactory* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpellCheckerFactory_AddRef(ISpellCheckerFactory* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpellCheckerFactory_Release(ISpellCheckerFactory* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpellCheckerFactory methods ***/
+static FORCEINLINE HRESULT ISpellCheckerFactory_get_SupportedLanguages(ISpellCheckerFactory* This,IEnumString **val) {
+    return This->lpVtbl->get_SupportedLanguages(This,val);
+}
+static FORCEINLINE HRESULT ISpellCheckerFactory_IsSupported(ISpellCheckerFactory* This,LPCWSTR languageTag,WINBOOL *val) {
+    return This->lpVtbl->IsSupported(This,languageTag,val);
+}
+static FORCEINLINE HRESULT ISpellCheckerFactory_CreateSpellChecker(ISpellCheckerFactory* This,LPCWSTR languageTag,ISpellChecker **val) {
+    return This->lpVtbl->CreateSpellChecker(This,languageTag,val);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpellCheckerFactory_INTERFACE_DEFINED__ */
+
+#endif /* WINAPI_PARTITION_APP */
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+/*****************************************************************************
+ * IUserDictionariesRegistrar interface
+ */
+#ifndef __IUserDictionariesRegistrar_INTERFACE_DEFINED__
+#define __IUserDictionariesRegistrar_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUserDictionariesRegistrar, 0xaa176b85, 0x0e12, 0x4844, 0x8e,0x1a, 0xee,0xf1,0xda,0x77,0xf5,0x86);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("aa176b85-0e12-4844-8e1a-eef1da77f586")
+IUserDictionariesRegistrar : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE RegisterUserDictionary(
+        LPCWSTR dictionaryPath,
+        LPCWSTR languageTag) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE UnregisterUserDictionary(
+        LPCWSTR dictionaryPath,
+        LPCWSTR languageTag) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUserDictionariesRegistrar, 0xaa176b85, 0x0e12, 0x4844, 0x8e,0x1a, 0xee,0xf1,0xda,0x77,0xf5,0x86)
+#endif
+#else
+typedef struct IUserDictionariesRegistrarVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUserDictionariesRegistrar *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUserDictionariesRegistrar *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUserDictionariesRegistrar *This);
+
+    /*** IUserDictionariesRegistrar methods ***/
+    HRESULT (STDMETHODCALLTYPE *RegisterUserDictionary)(
+        IUserDictionariesRegistrar *This,
+        LPCWSTR dictionaryPath,
+        LPCWSTR languageTag);
+
+    HRESULT (STDMETHODCALLTYPE *UnregisterUserDictionary)(
+        IUserDictionariesRegistrar *This,
+        LPCWSTR dictionaryPath,
+        LPCWSTR languageTag);
+
+    END_INTERFACE
+} IUserDictionariesRegistrarVtbl;
+
+interface IUserDictionariesRegistrar {
+    CONST_VTBL IUserDictionariesRegistrarVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUserDictionariesRegistrar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUserDictionariesRegistrar_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUserDictionariesRegistrar_Release(This) (This)->lpVtbl->Release(This)
+/*** IUserDictionariesRegistrar methods ***/
+#define IUserDictionariesRegistrar_RegisterUserDictionary(This,dictionaryPath,languageTag) (This)->lpVtbl->RegisterUserDictionary(This,dictionaryPath,languageTag)
+#define IUserDictionariesRegistrar_UnregisterUserDictionary(This,dictionaryPath,languageTag) (This)->lpVtbl->UnregisterUserDictionary(This,dictionaryPath,languageTag)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUserDictionariesRegistrar_QueryInterface(IUserDictionariesRegistrar* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUserDictionariesRegistrar_AddRef(IUserDictionariesRegistrar* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUserDictionariesRegistrar_Release(IUserDictionariesRegistrar* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IUserDictionariesRegistrar methods ***/
+static FORCEINLINE HRESULT IUserDictionariesRegistrar_RegisterUserDictionary(IUserDictionariesRegistrar* This,LPCWSTR dictionaryPath,LPCWSTR languageTag) {
+    return This->lpVtbl->RegisterUserDictionary(This,dictionaryPath,languageTag);
+}
+static FORCEINLINE HRESULT IUserDictionariesRegistrar_UnregisterUserDictionary(IUserDictionariesRegistrar* This,LPCWSTR dictionaryPath,LPCWSTR languageTag) {
+    return This->lpVtbl->UnregisterUserDictionary(This,dictionaryPath,languageTag);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUserDictionariesRegistrar_INTERFACE_DEFINED__ */
+
+#endif /* WINAPI_PARTITION_DESKTOP */
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#ifndef __MsSpellCheckLib_LIBRARY_DEFINED__
+#define __MsSpellCheckLib_LIBRARY_DEFINED__
+
+DEFINE_GUID(LIBID_MsSpellCheckLib, 0x4a250e01, 0x61ea, 0x400b, 0xa2,0x7d, 0xbf,0x37,0x44,0xbc,0xc9,0xf5);
+
+/*****************************************************************************
+ * SpellCheckerFactory coclass
+ */
+
+DEFINE_GUID(CLSID_SpellCheckerFactory, 0x7ab36653, 0x1796, 0x484b, 0xbd,0xfa, 0xe7,0x4f,0x1d,0xb7,0xc1,0xdc);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("7ab36653-1796-484b-bdfa-e74f1db7c1dc") SpellCheckerFactory;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SpellCheckerFactory, 0x7ab36653, 0x1796, 0x484b, 0xbd,0xfa, 0xe7,0x4f,0x1d,0xb7,0xc1,0xdc)
+#endif
+#endif
+
+#endif /* __MsSpellCheckLib_LIBRARY_DEFINED__ */
+#endif /* WINAPI_PARTITION_APP */
+#endif /* MIN_SPELLING_NTDDI */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __spellcheck_h__ */
lib/libc/include/any-windows-any/sspi.h
@@ -87,6 +87,8 @@ extern "C" {
 #define SecInvalidateHandle(x) ((PSecHandle) x)->dwLower = ((ULONG_PTR) ((INT_PTR)-1)); ((PSecHandle) x)->dwUpper = ((ULONG_PTR) ((INT_PTR)-1));
 #define SecIsValidHandle(x) ((((PSecHandle) x)->dwLower!=((ULONG_PTR) ((INT_PTR) -1))) && (((PSecHandle) x)->dwUpper!=((ULONG_PTR) ((INT_PTR) -1))))
 
+#define SEC_DELETED_HANDLE ((ULONG_PTR)(-2))
+
   typedef SecHandle CredHandle;
   typedef PSecHandle PCredHandle;
 
@@ -164,9 +166,21 @@ extern "C" {
 #define SECPKG_FLAG_MUTUAL_AUTH 0x00010000
 #define SECPKG_FLAG_DELEGATION 0x00020000
 #define SECPKG_FLAG_READONLY_WITH_CHECKSUM 0x00040000
+#define SECPKG_FLAG_RESTRICTED_TOKENS 0x00080000
+#define SECPKG_FLAG_NEGO_EXTENDER 0x00100000
+#define SECPKG_FLAG_NEGOTIABLE2 0x00200000
+#define SECPKG_FLAG_APPCONTAINER_PASSTHROUGH 0x00400000
+#define SECPKG_FLAG_APPCONTAINER_CHECKS 0x00800000
+#define SECPKG_FLAG_CREDENTIAL_ISOLATION_ENABLED 0x01000000
+#define SECPKG_FLAG_APPLY_LOOPBACK 0x02000000
 
 #define SECPKG_ID_NONE 0xFFFF
 
+#define SECPKG_CALLFLAGS_APPCONTAINER 0x00000001
+#define SECPKG_CALLFLAGS_APPCONTAINER_AUTHCAPABLE 0x00000002
+#define SECPKG_CALLFLAGS_FORCE_SUPPLIED 0x00000004
+#define SECPKG_CALLFLAGS_APPCONTAINER_UPNCAPABLE 0x00000008
+
   typedef struct _SecBuffer {
     unsigned __LONG32 cbBuffer;
     unsigned __LONG32 BufferType;
@@ -196,6 +210,20 @@ extern "C" {
 #define SECBUFFER_MECHLIST_SIGNATURE 12
 #define SECBUFFER_TARGET 13
 #define SECBUFFER_CHANNEL_BINDINGS 14
+#define SECBUFFER_CHANGE_PASS_RESPONSE 15
+#define SECBUFFER_TARGET_HOST 16
+#define SECBUFFER_ALERT 17
+#define SECBUFFER_APPLICATION_PROTOCOLS 18
+#define SECBUFFER_SRTP_PROTECTION_PROFILES 19
+#define SECBUFFER_SRTP_MASTER_KEY_IDENTIFIER 20
+#define SECBUFFER_TOKEN_BINDING 21
+#define SECBUFFER_PRESHARED_KEY 22
+#define SECBUFFER_PRESHARED_KEY_IDENTITY 23
+#define SECBUFFER_DTLS_MTU 24
+#define SECBUFFER_SEND_GENERIC_TLS_EXTENSION 25
+#define SECBUFFER_SUBSCRIBE_GENERIC_TLS_EXTENSION 26
+#define SECBUFFER_FLAGS 27
+#define SECBUFFER_TRAFFIC_SECRETS 28
 
 #define SECBUFFER_ATTRMASK 0xF0000000
 #define SECBUFFER_READONLY 0x80000000
@@ -220,6 +248,79 @@ extern "C" {
     unsigned __LONG32 dwApplicationDataOffset;
   } SEC_CHANNEL_BINDINGS,*PSEC_CHANNEL_BINDINGS;
 
+  typedef enum _SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT {
+    SecApplicationProtocolNegotiationExt_None,
+    SecApplicationProtocolNegotiationExt_NPN,
+    SecApplicationProtocolNegotiationExt_ALPN
+  } SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT,*PSEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT;
+
+  typedef struct _SEC_APPLICATION_PROTOCOL_LIST {
+    SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT ProtoNegoExt;
+    unsigned short ProtocolListSize;
+    unsigned char ProtocolList[ANYSIZE_ARRAY];
+  } SEC_APPLICATION_PROTOCOL_LIST,*PSEC_APPLICATION_PROTOCOL_LIST;
+
+  typedef struct _SEC_APPLICATION_PROTOCOLS {
+    unsigned __LONG32 ProtocolListsSize;
+    SEC_APPLICATION_PROTOCOL_LIST ProtocolLists[ANYSIZE_ARRAY];
+  } SEC_APPLICATION_PROTOCOLS,*PSEC_APPLICATION_PROTOCOLS;
+
+  typedef struct _SEC_SRTP_PROTECTION_PROFILES {
+    unsigned short ProfilesSize;
+    unsigned short ProfilesList[ANYSIZE_ARRAY];
+  } SEC_SRTP_PROTECTION_PROFILES,*PSEC_SRTP_PROTECTION_PROFILES;
+
+  typedef struct _SEC_SRTP_MASTER_KEY_IDENTIFIER {
+    unsigned char MasterKeyIdentifierSize;
+    unsigned char MasterKeyIdentifier[ANYSIZE_ARRAY];
+  } SEC_SRTP_MASTER_KEY_IDENTIFIER,*PSEC_SRTP_MASTER_KEY_IDENTIFIER;
+
+  typedef struct _SEC_TOKEN_BINDING {
+    unsigned char MajorVersion;
+    unsigned char MinorVersion;
+    unsigned short KeyParametersSize;
+    unsigned char KeyParameters[ANYSIZE_ARRAY];
+  } SEC_TOKEN_BINDING,*PSEC_TOKEN_BINDING;
+
+  typedef struct _SEC_PRESHAREDKEY {
+    unsigned short KeySize;
+    unsigned char Key[ANYSIZE_ARRAY];
+  } SEC_PRESHAREDKEY,*PSEC_PRESHAREDKEY;
+
+  typedef struct _SEC_PRESHAREDKEY_IDENTITY {
+    unsigned short KeyIdentitySize;
+    unsigned char KeyIdentity[ANYSIZE_ARRAY];
+  } SEC_PRESHAREDKEY_IDENTITY,*PSEC_PRESHAREDKEY_IDENTITY;
+
+  typedef struct _SEC_DTLS_MTU {
+    unsigned short PathMTU;
+  } SEC_DTLS_MTU,*PSEC_DTLS_MTU;
+
+  typedef struct _SEC_FLAGS {
+    unsigned long long Flags;
+  } SEC_FLAGS,*PSEC_FLAGS;
+
+  typedef enum _SEC_TRAFFIC_SECRET_TYPE {
+    SecTrafficSecret_None,
+    SecTrafficSecret_Client,
+    SecTrafficSecret_Server
+  } SEC_TRAFFIC_SECRET_TYPE,*PSEC_TRAFFIC_SECRET_TYPE;
+
+#define SZ_ALG_MAX_SIZE 64
+
+  typedef struct _SEC_TRAFFIC_SECRETS {
+    wchar_t SymmetricAlgId[SZ_ALG_MAX_SIZE];
+    wchar_t ChainingMode[SZ_ALG_MAX_SIZE];
+    wchar_t HashAlgId[SZ_ALG_MAX_SIZE];
+    unsigned short KeySize;
+    unsigned short IvSize;
+    unsigned short MsgSequenceStart;
+    unsigned short MsgSequenceEnd;
+    SEC_TRAFFIC_SECRET_TYPE TrafficSecretType;
+    unsigned short TrafficSecretSize;
+    unsigned char TrafficSecret[ANYSIZE_ARRAY];
+} SEC_TRAFFIC_SECRETS,*PSEC_TRAFFIC_SECRETS;
+
 #define SECURITY_NATIVE_DREP 0x00000010
 #define SECURITY_NETWORK_DREP 0x00000000
 
@@ -229,6 +330,9 @@ extern "C" {
 #define SECPKG_CRED_DEFAULT 0x00000004
 #define SECPKG_CRED_RESERVED 0xF0000000
 
+#define SECPKG_CRED_AUTOLOGON_RESTRICTED 0x00000010
+#define SECPKG_CRED_PROCESS_POLICY_ONLY 0x00000020
+
 #define ISC_REQ_DELEGATE 0x00000001
 #define ISC_REQ_MUTUAL_AUTH 0x00000002
 #define ISC_REQ_REPLAY_DETECT 0x00000004
@@ -251,6 +355,12 @@ extern "C" {
 #define ISC_REQ_MANUAL_CRED_VALIDATION 0x00080000
 #define ISC_REQ_RESERVED1 0x00100000
 #define ISC_REQ_FRAGMENT_TO_FIT 0x00200000
+#define ISC_REQ_FORWARD_CREDENTIALS 0x00400000
+#define ISC_REQ_NO_INTEGRITY 0x00800000
+#define ISC_REQ_USE_HTTP_STYLE 0x01000000
+#define ISC_REQ_UNVERIFIED_TARGET_NAME 0x20000000
+#define ISC_REQ_CONFIDENTIALITY_ONLY 0x40000000
+#define ISC_REQ_MESSAGES 0x0000000100000000
 
 #define ISC_RET_DELEGATE 0x00000001
 #define ISC_RET_MUTUAL_AUTH 0x00000002
@@ -274,6 +384,12 @@ extern "C" {
 #define ISC_RET_MANUAL_CRED_VALIDATION 0x00080000
 #define ISC_RET_RESERVED1 0x00100000
 #define ISC_RET_FRAGMENT_ONLY 0x00200000
+#define ISC_RET_FORWARD_CREDENTIALS 0x00400000
+#define ISC_RET_USED_HTTP_STYLE 0x01000000
+#define ISC_RET_NO_ADDITIONAL_TOKEN 0x02000000
+#define ISC_RET_REAUTHENTICATION 0x08000000
+#define ISC_RET_CONFIDENTIALITY_ONLY 0x40000000
+#define ISC_RET_MESSAGES 0x0000000100000000
 
 #define ASC_REQ_DELEGATE 0x00000001
 #define ASC_REQ_MUTUAL_AUTH 0x00000002
@@ -281,11 +397,13 @@ extern "C" {
 #define ASC_REQ_SEQUENCE_DETECT 0x00000008
 #define ASC_REQ_CONFIDENTIALITY 0x00000010
 #define ASC_REQ_USE_SESSION_KEY 0x00000020
+#define ASC_REQ_SESSION_TICKET 0x00000040
 #define ASC_REQ_ALLOCATE_MEMORY 0x00000100
 #define ASC_REQ_USE_DCE_STYLE 0x00000200
 #define ASC_REQ_DATAGRAM 0x00000400
 #define ASC_REQ_CONNECTION 0x00000800
 #define ASC_REQ_CALL_LEVEL 0x00001000
+#define ASC_REQ_FRAGMENT_SUPPLIED 0x00002000
 #define ASC_REQ_EXTENDED_ERROR 0x00008000
 #define ASC_REQ_STREAM 0x00010000
 #define ASC_REQ_INTEGRITY 0x00020000
@@ -295,8 +413,10 @@ extern "C" {
 #define ASC_REQ_ALLOW_NON_USER_LOGONS 0x00200000
 #define ASC_REQ_ALLOW_CONTEXT_REPLAY 0x00400000
 #define ASC_REQ_FRAGMENT_TO_FIT 0x00800000
-#define ASC_REQ_FRAGMENT_SUPPLIED 0x00002000
 #define ASC_REQ_NO_TOKEN 0x01000000
+#define ASC_REQ_PROXY_BINDINGS 0x04000000
+#define ASC_REQ_ALLOW_MISSING_BINDINGS 0x10000000
+#define ASC_REQ_MESSAGES 0x0000000100000000
 
 #define ASC_RET_DELEGATE 0x00000001
 #define ASC_RET_MUTUAL_AUTH 0x00000002
@@ -304,6 +424,7 @@ extern "C" {
 #define ASC_RET_SEQUENCE_DETECT 0x00000008
 #define ASC_RET_CONFIDENTIALITY 0x00000010
 #define ASC_RET_USE_SESSION_KEY 0x00000020
+#define ASC_RET_SESSION_TICKET 0x00000040
 #define ASC_RET_ALLOCATED_MEMORY 0x00000100
 #define ASC_RET_USED_DCE_STYLE 0x00000200
 #define ASC_RET_DATAGRAM 0x00000400
@@ -320,9 +441,14 @@ extern "C" {
 #define ASC_RET_ALLOW_CONTEXT_REPLAY 0x00400000
 #define ASC_RET_FRAGMENT_ONLY 0x00800000
 #define ASC_RET_NO_TOKEN 0x01000000
+#define ASC_RET_NO_ADDITIONAL_TOKEN 0x02000000
+#define ASC_RET_MESSAGES 0x0000000100000000
 
 #define SECPKG_CRED_ATTR_NAMES 1
 #define SECPKG_CRED_ATTR_SSI_PROVIDER 2
+#define SECPKG_CRED_ATTR_KDC_PROXY_SETTINGS 3
+#define SECPKG_CRED_ATTR_CERT 4
+#define SECPKG_CRED_ATTR_PAC_BYPASS 5
 
   typedef struct _SecPkgCredentials_NamesW
   {
@@ -352,6 +478,23 @@ extern "C" {
 #define SecPkgCredentials_SSIProvider __MINGW_NAME_AW(SecPkgCredentials_SSIProvider)
 #define PSecPkgCredentials_SSIProvider __MINGW_NAME_AW(PSecPkgCredentials_SSIProvider)
 
+#define KDC_PROXY_SETTINGS_V1 1
+#define KDC_PROXY_SETTINGS_FLAGS_FORCEPROXY 0x1
+
+  typedef struct _SecPkgCredentials_KdcProxySettingsW {
+    ULONG Version;
+    ULONG Flags;
+    USHORT ProxyServerOffset;
+    USHORT ProxyServerLength;
+    USHORT ClientTlsCredOffset;
+    USHORT ClientTlsCredLength;
+  } SecPkgCredentials_KdcProxySettingsW,*PSecPkgCredentials_KdcProxySettingsW;
+
+  typedef struct _SecPkgCredentials_Cert {
+    unsigned __LONG32 EncodedCertSize;
+    unsigned char *EncodedCert;
+  } SecPkgCredentials_Cert,*PSecPkgCredentials_Cert;
+
 #define SECPKG_ATTR_SIZES 0
 #define SECPKG_ATTR_NAMES 1
 #define SECPKG_ATTR_LIFESPAN 2
@@ -374,6 +517,49 @@ extern "C" {
 #define SECPKG_ATTR_TARGET 19
 #define SECPKG_ATTR_AUTHENTICATION_ID 20
 #define SECPKG_ATTR_LOGOFF_TIME 21
+#define SECPKG_ATTR_NEGO_KEYS 22
+#define SECPKG_ATTR_PROMPTING_NEEDED 24
+#define SECPKG_ATTR_UNIQUE_BINDINGS 25
+#define SECPKG_ATTR_ENDPOINT_BINDINGS 26
+#define SECPKG_ATTR_CLIENT_SPECIFIED_TARGET 27
+#define SECPKG_ATTR_LAST_CLIENT_TOKEN_STATUS 30
+#define SECPKG_ATTR_NEGO_PKG_INFO 31
+#define SECPKG_ATTR_NEGO_STATUS 32
+#define SECPKG_ATTR_CONTEXT_DELETED 33
+#define SECPKG_ATTR_DTLS_MTU 34
+#define SECPKG_ATTR_DATAGRAM_SIZES SECPKG_ATTR_STREAM_SIZES
+#define SECPKG_ATTR_SUBJECT_SECURITY_ATTRIBUTES 128
+#define SECPKG_ATTR_APPLICATION_PROTOCOL 35
+#define SECPKG_ATTR_NEGOTIATED_TLS_EXTENSIONS 36
+#define SECPKG_ATTR_IS_LOOPBACK 37
+
+  typedef struct _SecPkgContext_SubjectAttributes {
+    void *AttributeInfo;
+  } SecPkgContext_SubjectAttributes,*PSecPkgContext_SubjectAttributes;
+
+#define SECPKG_ATTR_NEGO_INFO_FLAG_NO_KERBEROS 0x1
+#define SECPKG_ATTR_NEGO_INFO_FLAG_NO_NTLM 0x2
+
+  typedef enum _SECPKG_CRED_CLASS {
+    SecPkgCredClass_None = 0,
+    SecPkgCredClass_Ephemeral = 10,
+    SecPkgCredClass_PersistedGeneric = 20,
+    SecPkgCredClass_PersistedSpecific = 30,
+    SecPkgCredClass_Explicit = 40
+  } SECPKG_CRED_CLASS,*PSECPKG_CRED_CLASS;
+
+  typedef struct _SecPkgContext_CredInfo {
+    SECPKG_CRED_CLASS CredClass;
+    unsigned __LONG32 IsPromptingNeeded;
+  } SecPkgContext_CredInfo,*PSecPkgContext_CredInfo;
+
+  typedef struct _SecPkgContext_NegoPackageInfo {
+    unsigned __LONG32 PackageMask;
+  } SecPkgContext_NegoPackageInfo,*PSecPkgContext_NegoPackageInfo;
+
+  typedef struct _SecPkgContext_NegoStatus {
+    unsigned __LONG32 LastStatus;
+  } SecPkgContext_NegoStatus,*PSecPkgContext_NegoStatus;
 
   typedef struct _SecPkgContext_Sizes {
     unsigned __LONG32 cbMaxToken;
@@ -390,10 +576,23 @@ extern "C" {
     unsigned __LONG32 cbBlockSize;
   } SecPkgContext_StreamSizes,*PSecPkgContext_StreamSizes;
 
+typedef SecPkgContext_StreamSizes SecPkgContext_DatagramSizes;
+typedef PSecPkgContext_StreamSizes PSecPkgContext_DatagramSizes;
+
   typedef struct _SecPkgContext_NamesW {
     SEC_WCHAR *sUserName;
   } SecPkgContext_NamesW,*PSecPkgContext_NamesW;
 
+  typedef enum _SECPKG_ATTR_LCT_STATUS {
+    SecPkgAttrLastClientTokenYes,
+    SecPkgAttrLastClientTokenNo,
+    SecPkgAttrLastClientTokenMaybe
+  } SECPKG_ATTR_LCT_STATUS,*PSECPKG_ATTR_LCT_STATUS;
+
+  typedef struct _SecPkgContext_LastClientTokenStatus {
+    SECPKG_ATTR_LCT_STATUS LastClientTokenStatus;
+  } SecPkgContext_LastClientTokenStatus,*PSecPkgContext_LastClientTokenStatus;
+
   typedef struct _SecPkgContext_NamesA {
     SEC_CHAR *sUserName;
   } SecPkgContext_NamesA,*PSecPkgContext_NamesA;
@@ -469,6 +668,15 @@ extern "C" {
     unsigned char *SessionKey;
   } SecPkgContext_SessionKey,*PSecPkgContext_SessionKey;
 
+  typedef struct _SecPkgContext_NegoKeys {
+    unsigned __LONG32 KeyType;
+    unsigned short KeyLength;
+    unsigned char *KeyValue;
+    unsigned __LONG32 VerifyKeyType;
+    unsigned short VerifyKeyLength;
+    unsigned char *VerifyKeyValue;
+  } SecPkgContext_NegoKeys,*PSecPkgContext_NegoKeys;
+
   typedef struct _SecPkgContext_PackageInfoW {
     PSecPkgInfoW PackageInfo;
   } SecPkgContext_PackageInfoW,*PSecPkgContext_PackageInfoW;
@@ -552,6 +760,43 @@ extern "C" {
     char *Target;
   } SecPkgContext_Target,*PSecPkgContext_Target;
 
+  typedef struct _SecPkgContext_ClientSpecifiedTarget {
+    SEC_WCHAR *sTargetName;
+  } SecPkgContext_ClientSpecifiedTarget,*PSecPkgContext_ClientSpecifiedTarget;
+
+  typedef struct _SecPkgContext_Bindings {
+    unsigned __LONG32 BindingsLength;
+    SEC_CHANNEL_BINDINGS *Bindings;
+  } SecPkgContext_Bindings,*PSecPkgContext_Bindings;
+
+  typedef enum _SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS {
+    SecApplicationProtocolNegotiationStatus_None,
+    SecApplicationProtocolNegotiationStatus_Success,
+    SecApplicationProtocolNegotiationStatus_SelectedClientOnly
+  } SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS,*PSEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS;
+
+#define MAX_PROTOCOL_ID_SIZE 0xff
+
+  typedef struct _SecPkgContext_ApplicationProtocol {
+    SEC_APPLICATION_PROTOCOL_NEGOTIATION_STATUS ProtoNegoStatus;
+    SEC_APPLICATION_PROTOCOL_NEGOTIATION_EXT ProtoNegoExt;
+    unsigned char ProtocolIdSize;
+    unsigned char ProtocolId[MAX_PROTOCOL_ID_SIZE];
+  } SecPkgContext_ApplicationProtocol,*PSecPkgContext_ApplicationProtocol;
+
+  typedef struct _SecPkgContext_NegotiatedTlsExtensions {
+    unsigned __LONG32 ExtensionsCount;
+    unsigned short *Extensions;
+  } SecPkgContext_NegotiatedTlsExtensions,*PSecPkgContext_NegotiatedTlsExtensions;
+
+  typedef struct _SECPKG_APP_MODE_INFO {
+    ULONG UserFunction;
+    ULONG_PTR Argument1;
+    ULONG_PTR Argument2;
+    SecBuffer UserData;
+    BOOLEAN ReturnToLsa;
+  } SECPKG_APP_MODE_INFO,*PSECPKG_APP_MODE_INFO;
+
   typedef void (WINAPI *SEC_GET_KEY_FN) (void *Arg,void *Principal,unsigned __LONG32 KeyVer,void **Key,SECURITY_STATUS *Status);
 
 #define SECPKG_CONTEXT_EXPORT_RESET_NEW 0x00000001
@@ -670,6 +915,17 @@ extern "C" {
 #define QueryContextAttributes __MINGW_NAME_AW(QueryContextAttributes)
 #define QUERY_CONTEXT_ATTRIBUTES_FN __MINGW_NAME_UAW(QUERY_CONTEXT_ATTRIBUTES_FN)
 
+  SECURITY_STATUS WINAPI QueryContextAttributesExW(PCtxtHandle phContext,unsigned __LONG32 ulAttribute,void *pBuffer,unsigned __LONG32 cbBuffer);
+
+  typedef SECURITY_STATUS (WINAPI *QUERY_CONTEXT_ATTRIBUTES_EX_FN_W)(PCtxtHandle,unsigned __LONG32,void*,unsigned __LONG32);
+
+  SECURITY_STATUS WINAPI QueryContextAttributesExA(PCtxtHandle phContext,unsigned __LONG32 ulAttribute,void *pBuffer,unsigned __LONG32 cbBuffer);
+
+  typedef SECURITY_STATUS (WINAPI *QUERY_CONTEXT_ATTRIBUTES_EX_FN_A)(PCtxtHandle,unsigned __LONG32,void*,unsigned __LONG32);
+
+#define QueryContextAttributesEx __MINGW_NAME_AW(QueryContextAttributesEx)
+#define QUERY_CONTEXT_ATTRIBUTES_EX_FN __MINGW_NAME_UAW(QUERY_CONTEXT_ATTRIBUTES_EX_FN)
+
   SECURITY_STATUS WINAPI SetContextAttributesW(PCtxtHandle phContext,unsigned __LONG32 ulAttribute,void *pBuffer,unsigned __LONG32 cbBuffer);
 
   typedef SECURITY_STATUS (WINAPI *SET_CONTEXT_ATTRIBUTES_FN_W)(PCtxtHandle,unsigned __LONG32,void *,unsigned __LONG32);
@@ -692,6 +948,17 @@ extern "C" {
 #define QueryCredentialsAttributes __MINGW_NAME_AW(QueryCredentialsAttributes)
 #define QUERY_CREDENTIALS_ATTRIBUTES_FN __MINGW_NAME_UAW(QUERY_CREDENTIALS_ATTRIBUTES_FN)
 
+  SECURITY_STATUS WINAPI QueryCredentialsAttributesExW(PCredHandle phCredential,unsigned __LONG32 ulAttribute,void *pBuffer,unsigned __LONG32 cbBuffer);
+
+  typedef SECURITY_STATUS (WINAPI *QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_W)(PCredHandle,unsigned __LONG32,void*,unsigned __LONG32);
+
+  SECURITY_STATUS WINAPI QueryCredentialsAttributesExA(PCredHandle phCredential,unsigned __LONG32 ulAttribute,void *pBuffer,unsigned __LONG32 cbBuffer);
+
+  typedef SECURITY_STATUS (WINAPI *QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_A)(PCredHandle,unsigned __LONG32,void*,unsigned __LONG32);
+
+#define QueryCredentialsAttributesEx __MINGW_NAME_AW(QueryCredentialsAttributesEx)
+#define QUERY_CREDENTIALS_ATTRIBUTES_EX_FN __MINGW_NAME_UAW(QUERY_CREDENTIALS_ATTRIBUTES_EX_FN)
+
   KSECDDDECLSPEC SECURITY_STATUS WINAPI SetCredentialsAttributesW(PCredHandle phCredential,unsigned __LONG32 ulAttribute,void *pBuffer,unsigned __LONG32 cbBuffer);
 
   typedef SECURITY_STATUS (WINAPI *SET_CREDENTIALS_ATTRIBUTES_FN_W)(PCredHandle,unsigned __LONG32,void *,unsigned __LONG32);
@@ -802,6 +1069,7 @@ extern "C" {
 #if ISSP_MODE==0
   KSECDDDECLSPEC NTSTATUS NTAPI SecMakeSPN(PUNICODE_STRING ServiceClass,PUNICODE_STRING ServiceName,PUNICODE_STRING InstanceName,USHORT InstancePort,PUNICODE_STRING Referrer,PUNICODE_STRING Spn,PULONG Length,BOOLEAN Allocate);
   KSECDDDECLSPEC NTSTATUS NTAPI SecMakeSPNEx(PUNICODE_STRING ServiceClass,PUNICODE_STRING ServiceName,PUNICODE_STRING InstanceName,USHORT InstancePort,PUNICODE_STRING Referrer,PUNICODE_STRING TargetInfo,PUNICODE_STRING Spn,PULONG Length,BOOLEAN Allocate);
+  KSECDDDECLSPEC NTSTATUS NTAPI SecMakeSPNEx2(PUNICODE_STRING ServiceClass,PUNICODE_STRING ServiceName,PUNICODE_STRING InstanceName,USHORT InstancePort,PUNICODE_STRING Referrer,PUNICODE_STRING InTargetInfo,PUNICODE_STRING Spn,PULONG TotalSize,BOOLEAN Allocate,BOOLEAN IsTargetInfoMarshaled);
   KSECDDDECLSPEC NTSTATUS WINAPI SecLookupAccountSid(PSID Sid,PULONG NameSize,PUNICODE_STRING NameBuffer,PULONG DomainSize,PUNICODE_STRING DomainBuffer,PSID_NAME_USE NameUse);
   KSECDDDECLSPEC NTSTATUS WINAPI SecLookupAccountName(PUNICODE_STRING Name,PULONG SidSize,PSID Sid,PSID_NAME_USE NameUse,PULONG DomainSize,PUNICODE_STRING ReferencedDomain);
   KSECDDDECLSPEC NTSTATUS WINAPI SecLookupWellKnownSid(WELL_KNOWN_SID_TYPE SidType,PSID Sid,ULONG SidBufferSize,PULONG SidSize);
@@ -823,6 +1091,49 @@ extern "C" {
 
 #define FreeCredentialHandle FreeCredentialsHandle
 
+#if ISSP_MODE != 0
+
+SECURITY_STATUS SEC_ENTRY ChangeAccountPasswordW(SEC_WCHAR* pszPackageName,
+                                                 SEC_WCHAR* pszDomainName,
+                                                 SEC_WCHAR* pszAccountName,
+                                                 SEC_WCHAR* pszOldPassword,
+                                                 SEC_WCHAR* pszNewPassword,
+                                                 BOOLEAN bImpersonating,
+                                                 unsigned __LONG32 dwReserved,
+                                                 PSecBufferDesc pOutput);
+
+typedef SECURITY_STATUS (SEC_ENTRY *CHANGE_PASSWORD_FN_W)(SEC_WCHAR*,
+                                                          SEC_WCHAR*,
+                                                          SEC_WCHAR*,
+                                                          SEC_WCHAR*,
+                                                          SEC_WCHAR*,
+                                                          BOOLEAN,
+                                                          unsigned __LONG32,
+                                                          PSecBufferDesc);
+
+SECURITY_STATUS SEC_ENTRY ChangeAccountPasswordA(SEC_CHAR* pszPackageName,
+                                                 SEC_CHAR* pszDomainName,
+                                                 SEC_CHAR* pszAccountName,
+                                                 SEC_CHAR* pszOldPassword,
+                                                 SEC_CHAR* pszNewPassword,
+                                                 BOOLEAN bImpersonating,
+                                                 unsigned __LONG32 dwReserved,
+                                                 PSecBufferDesc pOutput);
+
+typedef SECURITY_STATUS (SEC_ENTRY *CHANGE_PASSWORD_FN_A)(SEC_CHAR*,
+                                                          SEC_CHAR*,
+                                                          SEC_CHAR*,
+                                                          SEC_CHAR*,
+                                                          SEC_CHAR*,
+                                                          BOOLEAN,
+                                                          unsigned __LONG32,
+                                                          PSecBufferDesc);
+
+#define ChangeAccountPassword __MINGW_NAME_AW(ChangeAccountPassword)
+#define CHANGE_PASSWORD_FN __MINGW_NAME_UAW(CHANGE_PASSWORD_FN)
+
+#endif
+
   typedef struct _SECURITY_FUNCTION_TABLE_W {
     unsigned __LONG32 dwVersion;
     ENUMERATE_SECURITY_PACKAGES_FN_W EnumerateSecurityPackagesW;
@@ -853,6 +1164,15 @@ extern "C" {
     DECRYPT_MESSAGE_FN DecryptMessage;
     SET_CONTEXT_ATTRIBUTES_FN_W SetContextAttributesW;
     SET_CREDENTIALS_ATTRIBUTES_FN_W SetCredentialsAttributesW;
+#if ISSP_MODE != 0
+    CHANGE_PASSWORD_FN_W ChangeAccountPasswordW;
+#else
+    void* Reserved9;
+#endif
+#if NTDDI_VERSION > NTDDI_WINBLUE
+    QUERY_CONTEXT_ATTRIBUTES_EX_FN_W QueryContextAttributesExW;
+    QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_W QueryCredentialsAttributesExW;
+#endif
   } SecurityFunctionTableW,*PSecurityFunctionTableW;
 
   typedef struct _SECURITY_FUNCTION_TABLE_A {
@@ -885,6 +1205,15 @@ extern "C" {
     DECRYPT_MESSAGE_FN DecryptMessage;
     SET_CONTEXT_ATTRIBUTES_FN_A SetContextAttributesA;
     SET_CREDENTIALS_ATTRIBUTES_FN_A SetCredentialsAttributesA;
+#if ISSP_MODE != 0
+    CHANGE_PASSWORD_FN_A ChangeAccountPasswordA;
+#else
+    void* Reserved9;
+#endif
+#if NTDDI_VERSION > NTDDI_WINBLUE
+    QUERY_CONTEXT_ATTRIBUTES_EX_FN_A QueryContextAttributesExA;
+    QUERY_CREDENTIALS_ATTRIBUTES_EX_FN_A QueryCredentialsAttributesExA;
+#endif
   } SecurityFunctionTableA,*PSecurityFunctionTableA;
 
 #define SecurityFunctionTable __MINGW_NAME_AW(SecurityFunctionTable)
@@ -895,6 +1224,8 @@ extern "C" {
 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION 1
 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_2 2
 #define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_3 3
+#define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_4 4
+#define SECURITY_SUPPORT_PROVIDER_INTERFACE_VERSION_5 5
 
   PSecurityFunctionTableA WINAPI InitSecurityInterfaceA(void);
 
@@ -944,6 +1275,28 @@ extern "C" {
   SECURITY_STATUS WINAPI SaslGetContextOption(PCtxtHandle ContextHandle,ULONG Option,PVOID Value,ULONG Size,PULONG Needed);
 #endif
 
+#ifndef _AUTH_IDENTITY_EX2_DEFINED
+#define _AUTH_IDENTITY_EX2_DEFINED
+
+#define SEC_WINNT_AUTH_IDENTITY_VERSION_2 0x201
+
+  typedef struct _SEC_WINNT_AUTH_IDENTITY_EX2 {
+    unsigned __LONG32 Version;
+    unsigned short cbHeaderLength;
+    unsigned __LONG32 cbStructureLength;
+    unsigned __LONG32 UserOffset;
+    unsigned short UserLength;
+    unsigned __LONG32 DomainOffset;
+    unsigned short DomainLength;
+    unsigned __LONG32 PackedCredentialsOffset;
+    unsigned short PackedCredentialsLength;
+    unsigned __LONG32 Flags;
+    unsigned __LONG32 PackageListOffset;
+    unsigned short PackageListLength;
+  } SEC_WINNT_AUTH_IDENTITY_EX2, *PSEC_WINNT_AUTH_IDENTITY_EX2;
+
+#endif
+
 #ifndef _AUTH_IDENTITY_DEFINED
 #define _AUTH_IDENTITY_DEFINED
 
@@ -1010,6 +1363,229 @@ extern "C" {
 #define PSEC_WINNT_AUTH_IDENTITY_EX __MINGW_NAME_AW(PSEC_WINNT_AUTH_IDENTITY_EX)
 #endif
 
+#ifndef _AUTH_IDENTITY_INFO_DEFINED
+#define _AUTH_IDENTITY_INFO_DEFINED
+
+  typedef union _SEC_WINNT_AUTH_IDENTITY_INFO {
+    SEC_WINNT_AUTH_IDENTITY_EXW AuthIdExw;
+    SEC_WINNT_AUTH_IDENTITY_EXA AuthIdExa;
+    SEC_WINNT_AUTH_IDENTITY_A AuthId_a;
+    SEC_WINNT_AUTH_IDENTITY_W AuthId_w;
+    SEC_WINNT_AUTH_IDENTITY_EX2 AuthIdEx2;
+  } SEC_WINNT_AUTH_IDENTITY_INFO, *PSEC_WINNT_AUTH_IDENTITY_INFO;
+
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_PROCESS_ENCRYPTED     0x10
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_SYSTEM_PROTECTED      0x20
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_USER_PROTECTED        0x40
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_SYSTEM_ENCRYPTED      0x80
+
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_RESERVED              0x10000
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_NULL_USER             0x20000
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_NULL_DOMAIN           0x40000
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_ID_PROVIDER           0x80000
+
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_USE_MASK              0xff000000
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_CREDPROV_DO_NOT_SAVE  0x80000000
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_SAVE_CRED_BY_CALLER   SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_CREDPROV_DO_NOT_SAVE
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_SAVE_CRED_CHECKED     0x40000000
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_NO_CHECKBOX           0x20000000
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_CREDPROV_DO_NOT_LOAD  0x10000000
+
+#define SEC_WINNT_AUTH_IDENTITY_FLAGS_VALID_SSPIPFC_FLAGS \
+  (SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_CREDPROV_DO_NOT_SAVE | \
+   SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_SAVE_CRED_CHECKED | \
+   SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_NO_CHECKBOX | \
+   SEC_WINNT_AUTH_IDENTITY_FLAGS_SSPIPFC_CREDPROV_DO_NOT_LOAD)
+
+#endif
+
+#define SSPIPFC_CREDPROV_DO_NOT_SAVE          0x00000001
+#define SSPIPFC_SAVE_CRED_BY_CALLER           SSPIPFC_CREDPROV_DO_NOT_SAVE
+#define SSPIPFC_NO_CHECKBOX                   0x00000002
+#define SSPIPFC_CREDPROV_DO_NOT_LOAD          0x00000004
+#define SSPIPFC_USE_CREDUIBROKER	          0x00000008
+#define SSPIPFC_VALID_FLAGS \
+  (SSPIPFC_CREDPROV_DO_NOT_SAVE | SSPIPFC_NO_CHECKBOX | SSPIPFC_CREDPROV_DO_NOT_LOAD | SSPIPFC_USE_CREDUIBROKER)
+
+#ifndef _SSPIPFC_NONE_
+
+typedef PVOID PSEC_WINNT_AUTH_IDENTITY_OPAQUE;
+
+unsigned __LONG32 SEC_ENTRY SspiPromptForCredentialsW(
+  PCWSTR pszTargetName,
+#ifdef _CREDUI_INFO_DEFINED
+  PCREDUI_INFOW pUiInfo,
+#else
+  PVOID pUiInfo,
+#endif
+  unsigned __LONG32 dwAuthError,
+  PCWSTR pszPackage,
+  PSEC_WINNT_AUTH_IDENTITY_OPAQUE pInputAuthIdentity,
+  PSEC_WINNT_AUTH_IDENTITY_OPAQUE* ppAuthIdentity,
+  int* pfSave,
+  unsigned __LONG32 dwFlags
+);
+
+unsigned __LONG32 SEC_ENTRY SspiPromptForCredentialsA(
+  PCSTR pszTargetName,
+#ifdef _CREDUI_INFO_DEFINED
+  PCREDUI_INFOA pUiInfo,
+#else
+  PVOID pUiInfo,
+#endif
+  unsigned __LONG32 dwAuthError,
+  PCSTR pszPackage,
+  PSEC_WINNT_AUTH_IDENTITY_OPAQUE pInputAuthIdentity,
+  PSEC_WINNT_AUTH_IDENTITY_OPAQUE* ppAuthIdentity,
+  int* pfSave,
+  unsigned __LONG32 dwFlags
+);
+
+#else
+
+typedef PSEC_WINNT_AUTH_IDENTITY_INFO PSEC_WINNT_AUTH_IDENTITY_OPAQUE;
+
+#endif
+
+#ifdef _SEC_WINNT_AUTH_TYPES
+
+EXTERN_C __declspec(selectany) const GUID SEC_WINNT_AUTH_DATA_TYPE_PASSWORD =
+  { 0x28bfc32f, 0x10f6, 0x4738, { 0x98, 0xd1, 0x1a, 0xc0, 0x61, 0xdf, 0x71, 0x6a } };
+
+EXTERN_C __declspec(selectany) const GUID SEC_WINNT_AUTH_DATA_TYPE_CERT =
+  { 0x235f69ad, 0x73fb, 0x4dbc, { 0x82, 0x3, 0x6, 0x29, 0xe7, 0x39, 0x33, 0x9b } };
+
+EXTERN_C __declspec(selectany) const GUID SEC_WINNT_AUTH_DATA_TYPE_CREDMAN_CERT =
+  { 0x7cb72412, 0x1016, 0x491a, { 0x8c, 0x87, 0x4d, 0x2a, 0xa1, 0xb7, 0xdd, 0x3a } };
+
+EXTERN_C __declspec(selectany) const GUID SEC_WINNT_AUTH_DATA_TYPE_NGC =
+  { 0x10a47879, 0x5ebf, 0x4b85, { 0xbd, 0x8d, 0xc2, 0x1b, 0xb4, 0xf4, 0x9c, 0x8a } };
+
+EXTERN_C __declspec(selectany) const GUID SEC_WINNT_AUTH_DATA_TYPE_FIDO =
+  { 0x32e8f8d7, 0x7871, 0x4bcc, { 0x83, 0xc5, 0x46, 0xf, 0x66, 0xc6, 0x13, 0x5c } };
+
+EXTERN_C __declspec(selectany) const GUID SEC_WINNT_AUTH_DATA_TYPE_KEYTAB =
+  { 0xd587aae8, 0xf78f, 0x4455, { 0xa1, 0x12, 0xc9, 0x34, 0xbe, 0xee, 0x7c, 0xe1 } };
+
+EXTERN_C __declspec(selectany) const GUID SEC_WINNT_AUTH_DATA_TYPE_CSP_DATA =
+  { 0x68fd9879, 0x79c, 0x4dfe, { 0x82, 0x81, 0x57, 0x8a, 0xad, 0xc1, 0xc1, 0x0 } };
+
+EXTERN_C __declspec(selectany) const GUID SEC_WINNT_AUTH_DATA_TYPE_SMARTCARD_CONTEXTS =
+  { 0xb86c4ff3, 0x49d7, 0x4dc4, { 0xb5, 0x60, 0xb1, 0x16, 0x36, 0x85, 0xb2, 0x36 } };
+
+EXTERN_C __declspec(selectany) const GUID CREDUIWIN_STRUCTURE_TYPE_SSPIPFC  =
+  { 0x3c3e93d9, 0xd96b, 0x49b5, { 0x94, 0xa7, 0x45, 0x85, 0x92, 0x8, 0x83, 0x37 } };
+
+EXTERN_C __declspec(selectany) const GUID SSPIPFC_STRUCTURE_TYPE_CREDUI_CONTEXT =
+  { 0xc2fffe6f, 0x503d, 0x4c3d, { 0xa9, 0x5e, 0xbc, 0xe8, 0x21, 0x21, 0x3d, 0x44 } };
+
+typedef struct _SEC_WINNT_AUTH_BYTE_VECTOR {
+  unsigned __LONG32 ByteArrayOffset;
+  unsigned short ByteArrayLength;
+} SEC_WINNT_AUTH_BYTE_VECTOR, *PSEC_WINNT_AUTH_BYTE_VECTOR;
+
+typedef struct _SEC_WINNT_AUTH_DATA {
+  GUID CredType;
+  SEC_WINNT_AUTH_BYTE_VECTOR CredData;
+} SEC_WINNT_AUTH_DATA, *PSEC_WINNT_AUTH_DATA;
+
+typedef struct _SEC_WINNT_AUTH_PACKED_CREDENTIALS {
+  unsigned short cbHeaderLength;
+  unsigned short cbStructureLength;
+  SEC_WINNT_AUTH_DATA AuthData;
+} SEC_WINNT_AUTH_PACKED_CREDENTIALS, *PSEC_WINNT_AUTH_PACKED_CREDENTIALS;
+
+typedef struct _SEC_WINNT_AUTH_DATA_PASSWORD {
+  SEC_WINNT_AUTH_BYTE_VECTOR UnicodePassword;
+} SEC_WINNT_AUTH_DATA_PASSWORD, PSEC_WINNT_AUTH_DATA_PASSWORD;
+
+typedef struct _SEC_WINNT_AUTH_CERTIFICATE_DATA {
+  unsigned short cbHeaderLength;
+  unsigned short cbStructureLength;
+  SEC_WINNT_AUTH_BYTE_VECTOR Certificate;
+} SEC_WINNT_AUTH_CERTIFICATE_DATA, *PSEC_WINNT_AUTH_CERTIFICATE_DATA;
+
+typedef struct _SEC_WINNT_AUTH_NGC_DATA {
+  LUID LogonId;
+  unsigned __LONG32 Flags;
+  SEC_WINNT_AUTH_BYTE_VECTOR CspInfo;
+  SEC_WINNT_AUTH_BYTE_VECTOR UserIdKeyAuthTicket;
+  SEC_WINNT_AUTH_BYTE_VECTOR DecryptionKeyName;
+  SEC_WINNT_AUTH_BYTE_VECTOR DecryptionKeyAuthTicket;
+} SEC_WINNT_AUTH_NGC_DATA, *PSEC_WINNT_AUTH_NGC_DATA;
+
+#define NGC_DATA_FLAG_KERB_CERTIFICATE_LOGON_FLAG_CHECK_DUPLICATES      1
+#define NGC_DATA_FLAG_KERB_CERTIFICATE_LOGON_FLAG_USE_CERTIFICATE_INFO  2
+#define NGC_DATA_FLAG_IS_SMARTCARD_DATA                                 4
+
+typedef struct _SEC_WINNT_AUTH_DATA_TYPE_SMARTCARD_CONTEXTS_DATA {
+  PVOID pcc;
+  PVOID hProv;
+  LPWSTR pwszECDHKeyName;
+} SEC_WINNT_AUTH_DATA_TYPE_SMARTCARD_CONTEXTS_DATA, *PSEC_WINNT_AUTH_DATA_TYPE_SMARTCARD_CONTEXTS_DATA;
+
+typedef struct _SEC_WINNT_AUTH_FIDO_DATA {
+  unsigned short cbHeaderLength;
+  unsigned short cbStructureLength;
+  SEC_WINNT_AUTH_BYTE_VECTOR Secret;
+  SEC_WINNT_AUTH_BYTE_VECTOR NewSecret;
+  SEC_WINNT_AUTH_BYTE_VECTOR EncryptedNewSecret;
+  SEC_WINNT_AUTH_BYTE_VECTOR NetworkLogonBuffer;
+  ULONG64 ulSignatureCount;
+} SEC_WINNT_AUTH_FIDO_DATA, *PSEC_WINNT_AUTH_FIDO_DATA;
+
+typedef struct _SEC_WINNT_CREDUI_CONTEXT_VECTOR {
+  ULONG CredUIContextArrayOffset;
+  USHORT CredUIContextCount;
+} SEC_WINNT_CREDUI_CONTEXT_VECTOR, *PSEC_WINNT_CREDUI_CONTEXT_VECTOR;
+
+typedef struct _SEC_WINNT_AUTH_SHORT_VECTOR {
+  ULONG ShortArrayOffset;
+  USHORT ShortArrayCount;
+} SEC_WINNT_AUTH_SHORT_VECTOR, *PSEC_WINNT_AUTH_SHORT_VECTOR;
+
+typedef struct _CREDUIWIN_MARSHALED_CONTEXT {
+  GUID StructureType;
+  USHORT cbHeaderLength;
+  LUID LogonId;
+  GUID MarshaledDataType;
+  ULONG MarshaledDataOffset;
+  USHORT MarshaledDataLength;
+} CREDUIWIN_MARSHALED_CONTEXT, *PCREDUIWIN_MARSHALED_CONTEXT;
+
+typedef struct _SEC_WINNT_CREDUI_CONTEXT {
+  USHORT cbHeaderLength;
+  HANDLE CredUIContextHandle;
+#ifdef _CREDUI_INFO_DEFINED
+  PCREDUI_INFOW UIInfo;
+#else
+  PVOID UIInfo;
+#endif
+  ULONG dwAuthError;
+  PSEC_WINNT_AUTH_IDENTITY_OPAQUE pInputAuthIdentity;
+  PUNICODE_STRING TargetName;
+} SEC_WINNT_CREDUI_CONTEXT, *PSEC_WINNT_CREDUI_CONTEXT;
+
+typedef struct _SEC_WINNT_AUTH_PACKED_CREDENTIALS_EX {
+  unsigned short cbHeaderLength;
+  unsigned __LONG32 Flags;
+  SEC_WINNT_AUTH_BYTE_VECTOR PackedCredentials;
+  SEC_WINNT_AUTH_SHORT_VECTOR PackageList;
+} SEC_WINNT_AUTH_PACKED_CREDENTIALS_EX, *PSEC_WINNT_AUTH_PACKED_CREDENTIALS_EX;
+
+SECURITY_STATUS SEC_ENTRY SspiGetCredUIContext(HANDLE ContextHandle, GUID* CredType,
+                                               LUID* LogonId,
+                                               PSEC_WINNT_CREDUI_CONTEXT_VECTOR* CredUIContexts,
+                                               HANDLE* TokenHandle);
+SECURITY_STATUS SEC_ENTRY SspiUpdateCredentials(HANDLE ContextHandle, GUID* CredType,
+                                                ULONG FlatCredUIContextLength,
+                                                PUCHAR FlatCredUIContext);
+SECURITY_STATUS SEC_ENTRY SspiUnmarshalCredUIContext(PUCHAR MarshaledCredUIContext,
+                                                     ULONG MarshaledCredUIContextLength,
+                                                     PSEC_WINNT_CREDUI_CONTEXT* CredUIContext);
+
+#endif
+
 #define SEC_WINNT_AUTH_IDENTITY_MARSHALLED 0x4
 #define SEC_WINNT_AUTH_IDENTITY_ONLY 0x8
 
@@ -1036,29 +1612,181 @@ SECURITY_STATUS WINAPI AddSecurityPackageW(LPWSTR pszPackageName,PSECURITY_PACKA
   SECURITY_STATUS WINAPI DeleteSecurityPackageA(SEC_CHAR *pszPackageName);
   SECURITY_STATUS WINAPI DeleteSecurityPackageW(SEC_WCHAR *pszPackageName);
 
-#if (_WIN32_WINNT >= 0x0600)
-  SECURITY_STATUS WINAPI ChangeAccountPassword(
-    SEC_WCHAR *pszPackageName,
-    SEC_WCHAR *pszDomainName,
-    SEC_WCHAR *pszAccountName,
-    SEC_WCHAR *pszOldPassword,
-    SEC_WCHAR *pszNewPassword,
-    BOOLEAN bImpersonating,
-    unsigned __LONG32 dwReserved,
-    PSecBufferDesc pOutput
-  );
-#endif /*(_WIN32_WINNT >= 0x0600)*/
-#if (_WIN32_WINNT >= 0x0601)
-typedef struct _CREDUIWIN_MARSHALED_CONTEXT {
-  GUID   StructureType;
-  USHORT cbHeaderLength;
-  LUID   LogonId;
-  GUID   MarshaledDataType;
-  ULONG  MarshaledDataOffset;
-  USHORT MarshaledDataLength;
-} CREDUIWIN_MARSHALED_CONTEXT, *PCREDUIWIN_MARSHALED_CONTEXT;
+#if ISSP_MODE == 0
+
+typedef struct _SspiAsyncContext SspiAsyncContext;
+
+typedef void (*SspiAsyncNotifyCallback)(SspiAsyncContext* Handle, PVOID CallbackData);
 
-#endif /*(_WIN32_WINNT >= 0x0601)*/
+SspiAsyncContext* SspiCreateAsyncContext();
+void SspiFreeAsyncContext(SspiAsyncContext* Handle);
+NTSTATUS SspiReinitAsyncContext(SspiAsyncContext* Handle);
+SECURITY_STATUS SspiSetAsyncNotifyCallback(SspiAsyncContext* Context,
+                                           SspiAsyncNotifyCallback Callback,
+                                           void* CallbackData);
+BOOLEAN SspiAsyncContextRequiresNotify(SspiAsyncContext* AsyncContext);
+SECURITY_STATUS SspiGetAsyncCallStatus(SspiAsyncContext* Handle);
+
+SECURITY_STATUS SspiAcquireCredentialsHandleAsyncW(
+  SspiAsyncContext* AsyncContext,
+#if ISSP_MODE == 0
+  PSECURITY_STRING pszPrincipal,
+  PSECURITY_STRING pszPackage,
+#else
+  LPWSTR pszPrincipal,
+  LPWSTR pszPackage,
+#endif
+  unsigned __LONG32 fCredentialUse,
+  void* pvLogonId,
+  void* pAuthData,
+  SEC_GET_KEY_FN pGetKeyFn,
+  void* pvGetKeyArgument,
+  PCredHandle phCredential,
+  PTimeStamp ptsExpiry
+);
+
+SECURITY_STATUS SspiAcquireCredentialsHandleAsyncA(
+  SspiAsyncContext* AsyncContext,
+  LPSTR pszPrincipal,
+  LPSTR pszPackage,
+  unsigned __LONG32 fCredentialUse,
+  void * pvLogonId,
+  void * pAuthData,
+  SEC_GET_KEY_FN pGetKeyFn,
+  void * pvGetKeyArgument,
+  PCredHandle phCredential,
+  PTimeStamp ptsExpiry
+);
+
+SECURITY_STATUS SspiInitializeSecurityContextAsyncW(
+  SspiAsyncContext* AsyncContext,
+  PCredHandle phCredential,
+  PCtxtHandle phContext,
+#if ISSP_MODE == 0
+  PSECURITY_STRING pszTargetName,
+#else
+  LPWSTR pszTargetName,
+#endif
+  unsigned __LONG32 fContextReq,
+  unsigned __LONG32 Reserved1,
+  unsigned __LONG32 TargetDataRep,
+  PSecBufferDesc pInput,
+  unsigned __LONG32 Reserved2,
+  PCtxtHandle phNewContext,
+  PSecBufferDesc pOutput,
+  unsigned __LONG32* pfContextAttr,
+  PTimeStamp ptsExpiry
+);
+
+SECURITY_STATUS SspiInitializeSecurityContextAsyncA(
+  SspiAsyncContext* AsyncContext,
+  PCredHandle phCredential,
+  PCtxtHandle phContext,
+  LPSTR pszTargetName,
+  unsigned __LONG32 fContextReq,
+  unsigned __LONG32 Reserved1,
+  unsigned __LONG32 TargetDataRep,
+  PSecBufferDesc pInput,
+  unsigned __LONG32 Reserved2,
+  PCtxtHandle phNewContext,
+  PSecBufferDesc pOutput,
+  unsigned __LONG32* pfContextAttr,
+  PTimeStamp ptsExpiry
+);
+
+SECURITY_STATUS SspiAcceptSecurityContextAsync(
+  SspiAsyncContext* AsyncContext,
+  PCredHandle phCredential,
+  PCtxtHandle phContext,
+  PSecBufferDesc pInput,
+  unsigned __LONG32 fContextReq,
+  unsigned __LONG32 TargetDataRep,
+  PCtxtHandle phNewContext,
+  PSecBufferDesc pOutput,
+  unsigned __LONG32* pfContextAttr,
+  PTimeStamp ptsExpiry
+);
+
+SECURITY_STATUS SspiFreeCredentialsHandleAsync(
+  SspiAsyncContext* AsyncContext,
+  PCredHandle phCredential
+);
+
+SECURITY_STATUS SspiDeleteSecurityContextAsync(
+  SspiAsyncContext* AsyncContext,
+  PCtxtHandle phContext
+);
+
+#define SspiAcquireCredentialsHandleAsync __MINGW_NAME_AW(SspiAcquireCredentialsHandleAsync)
+#define SspiInitializeSecurityContextAsync __MINGW_NAME_AW(SspiInitializeSecurityContextAsync)
+
+#endif
+
+SECURITY_STATUS SEC_ENTRY SspiPrepareForCredRead(PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity,
+                                                 PCWSTR pszTargetName, PULONG pCredmanCredentialType,
+                                                 PCWSTR* ppszCredmanTargetName);
+
+SECURITY_STATUS SEC_ENTRY SspiPrepareForCredWrite(PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity,
+                                                  PCWSTR pszTargetName, PULONG pCredmanCredentialType,
+                                                  PCWSTR* ppszCredmanTargetName, PCWSTR* ppszCredmanUserName,
+                                                  PUCHAR *ppCredentialBlob, PULONG pCredentialBlobSize);
+
+#define SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_LOGON            1
+#define SEC_WINNT_AUTH_IDENTITY_ENCRYPT_SAME_PROCESS          2
+#define SEC_WINNT_AUTH_IDENTITY_ENCRYPT_FOR_SYSTEM            4
+
+SECURITY_STATUS SEC_ENTRY SspiEncryptAuthIdentity(PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthData);
+
+SECURITY_STATUS SEC_ENTRY SspiEncryptAuthIdentityEx(ULONG Options, PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthData);
+
+SECURITY_STATUS SEC_ENTRY SspiDecryptAuthIdentity(PSEC_WINNT_AUTH_IDENTITY_OPAQUE EncryptedAuthData);
+
+SECURITY_STATUS SEC_ENTRY SspiDecryptAuthIdentityEx(ULONG Options, PSEC_WINNT_AUTH_IDENTITY_OPAQUE EncryptedAuthData);
+
+BOOLEAN SEC_ENTRY SspiIsAuthIdentityEncrypted(PSEC_WINNT_AUTH_IDENTITY_OPAQUE EncryptedAuthData);
+
+#if NTDDI_VERSION >= NTDDI_WIN7
+
+SECURITY_STATUS SEC_ENTRY SspiEncodeAuthIdentityAsStrings(PSEC_WINNT_AUTH_IDENTITY_OPAQUE pAuthIdentity,
+                                                          PCWSTR* ppszUserName, PCWSTR* ppszDomainName,
+                                                          PCWSTR* ppszPackedCredentialsString);
+
+SECURITY_STATUS SEC_ENTRY SspiValidateAuthIdentity(PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthData);
+
+SECURITY_STATUS SEC_ENTRY SspiCopyAuthIdentity(PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthData,
+                                               PSEC_WINNT_AUTH_IDENTITY_OPAQUE* AuthDataCopy);
+
+VOID SEC_ENTRY SspiFreeAuthIdentity(PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthData);
+
+VOID SEC_ENTRY SspiZeroAuthIdentity(PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthData);
+
+VOID SEC_ENTRY SspiLocalFree(PVOID DataBuffer);
+
+SECURITY_STATUS SEC_ENTRY SspiEncodeStringsAsAuthIdentity(PCWSTR pszUserName, PCWSTR pszDomainName,
+                                                          PCWSTR pszPackedCredentialsString,
+                                                          PSEC_WINNT_AUTH_IDENTITY_OPAQUE* ppAuthIdentity);
+
+SECURITY_STATUS SEC_ENTRY SspiCompareAuthIdentities(PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity1,
+                                                    PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity2,
+                                                    PBOOLEAN SameSuppliedUser, PBOOLEAN SameSuppliedIdentity);
+
+SECURITY_STATUS SEC_ENTRY SspiMarshalAuthIdentity(PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity,
+                                                  unsigned __LONG32* AuthIdentityLength,
+                                                  char** AuthIdentityByteArray);
+
+SECURITY_STATUS SEC_ENTRY SspiUnmarshalAuthIdentity(unsigned __LONG32 AuthIdentityLength,
+                                                    char* AuthIdentityByteArray,
+                                                    PSEC_WINNT_AUTH_IDENTITY_OPAQUE* ppAuthIdentity);
+
+BOOLEAN SEC_ENTRY SspiIsPromptingNeeded(unsigned __LONG32 ErrorOrNtStatus);
+
+SECURITY_STATUS SEC_ENTRY SspiGetTargetHostName(PCWSTR pszTargetName, PWSTR* pszHostName);
+
+SECURITY_STATUS SEC_ENTRY SspiExcludePackage(PSEC_WINNT_AUTH_IDENTITY_OPAQUE AuthIdentity,
+                                             PCWSTR pszPackageName,
+                                             PSEC_WINNT_AUTH_IDENTITY_OPAQUE* ppNewAuthIdentity);
+
+#endif
 
 #ifdef __cplusplus
 }
lib/libc/include/any-windows-any/stdio.h
@@ -10,6 +10,15 @@
 
 #pragma pack(push,_CRT_PACKING)
 
+#pragma push_macro("snprintf")
+#undef snprintf
+#pragma push_macro("vsnprintf")
+#undef vsnprintf
+#pragma push_macro("snwprintf")
+#undef snwprintf
+#pragma push_macro("vsnwprintf")
+#undef vsnwprintf
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -22,6 +31,9 @@ extern "C" {
 
 #ifndef _FILE_DEFINED
   struct _iobuf {
+#ifdef _UCRT
+    void *_Placeholder;
+#else
     char *_ptr;
     int _cnt;
     char *_base;
@@ -30,6 +42,7 @@ extern "C" {
     int _charbuf;
     int _bufsiz;
     char *_tmpfname;
+#endif
   };
   typedef struct _iobuf FILE;
 #define _FILE_DEFINED
@@ -116,13 +129,13 @@ extern FILE (* __MINGW_IMP_SYMBOL(_iob))[];	/* A pointer to an array of FILE */
 #define stderr (__acrt_iob_func(2))
 #endif
 
-#define _IOREAD 0x0001
-#define _IOWRT 0x0002
-
 #define _IOFBF 0x0000
 #define _IOLBF 0x0040
 #define _IONBF 0x0004
 
+#ifndef _UCRT
+#define _IOREAD 0x0001
+#define _IOWRT 0x0002
 #define _IOMYBUF 0x0008
 #define _IOEOF 0x0010
 #define _IOERR 0x0020
@@ -131,6 +144,7 @@ extern FILE (* __MINGW_IMP_SYMBOL(_iob))[];	/* A pointer to an array of FILE */
 #ifdef _POSIX_
 #define _IOAPPEND 0x0200
 #endif
+#endif
 
 #define _TWO_DIGIT_EXPONENT 0x1
 
@@ -492,39 +506,15 @@ int vsnprintf (char *__stream, size_t __n, const char *__format, __builtin_va_li
   __attribute__((__format__ (__MINGW_PRINTF_FORMAT, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
   int __cdecl vsprintf(char * __restrict__ _Dest,const char * __restrict__ _Format,va_list _Args) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
 
-  __mingw_ovr
+  __MINGW_ATTRIB_DEPRECATED_SEC_WARN
   __attribute__((__format__ (__MINGW_SCANF_FORMAT, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
-  int __cdecl fscanf(FILE * __restrict__ _File,const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
-  {
-    __builtin_va_list __ap;
-    int __ret;
-    __builtin_va_start(__ap, _Format);
-    __ret = __stdio_common_vfscanf(0, _File, _Format, NULL, __ap);
-    __builtin_va_end(__ap);
-    return __ret;
-  }
-  __mingw_ovr
+  int __cdecl fscanf(FILE * __restrict__ _File,const char * __restrict__ _Format,...);
+  __MINGW_ATTRIB_DEPRECATED_SEC_WARN
   __attribute__((__format__ (__MINGW_SCANF_FORMAT, 1, 2))) __MINGW_ATTRIB_NONNULL(1)
-  int __cdecl scanf(const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
-  {
-    __builtin_va_list __ap;
-    int __ret;
-    __builtin_va_start(__ap, _Format);
-    __ret = __stdio_common_vfscanf(0, stdin, _Format, NULL, __ap);
-    __builtin_va_end(__ap);
-    return __ret;
-  }
-  __mingw_ovr
+  int __cdecl scanf(const char * __restrict__ _Format,...);
+  __MINGW_ATTRIB_DEPRECATED_SEC_WARN
   __attribute__((__format__ (__MINGW_SCANF_FORMAT, 2, 3))) __MINGW_ATTRIB_NONNULL(2)
-  int __cdecl sscanf(const char * __restrict__ _Src,const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
-  {
-    __builtin_va_list __ap;
-    int __ret;
-    __builtin_va_start(__ap, _Format);
-    __ret = __stdio_common_vsscanf(0, _Src, (size_t)-1, _Format, NULL, __ap);
-    __builtin_va_end(__ap);
-    return __ret;
-  }
+  int __cdecl sscanf(const char * __restrict__ _Src,const char * __restrict__ _Format,...);
 #ifdef _GNU_SOURCE
   __attribute__ ((__format__ (__MINGW_PRINTF_FORMAT, 2, 0)))
   int __cdecl vasprintf(char ** __restrict__ _Ret,const char * __restrict__ _Format,va_list _Args);
@@ -532,25 +522,13 @@ int vsnprintf (char *__stream, size_t __n, const char *__format, __builtin_va_li
   int __cdecl asprintf(char ** __restrict__ _Ret,const char * __restrict__ _Format,...);
 #endif /*_GNU_SOURCE*/
 
-  __mingw_ovr
   __attribute__((__format__ (__MINGW_SCANF_FORMAT, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
-  int vfscanf (FILE *__stream,  const char *__format, __builtin_va_list __local_argv)
-  {
-    return __stdio_common_vfscanf(0, __stream, __format, NULL, __local_argv);
-  }
+  int vfscanf (FILE *__stream,  const char *__format, __builtin_va_list __local_argv);
 
-  __mingw_ovr
   __attribute__((__format__ (__MINGW_SCANF_FORMAT, 2, 0))) __MINGW_ATTRIB_NONNULL(2)
-  int vsscanf (const char * __restrict__ __source, const char * __restrict__ __format, __builtin_va_list __local_argv)
-  {
-    return __stdio_common_vsscanf(0, __source, (size_t)-1, __format, NULL, __local_argv);
-  }
-  __mingw_ovr
+  int vsscanf (const char * __restrict__ __source, const char * __restrict__ __format, __builtin_va_list __local_argv);
   __attribute__((__format__ (__MINGW_SCANF_FORMAT, 1, 0))) __MINGW_ATTRIB_NONNULL(1)
-  int vscanf(const char *__format,  __builtin_va_list __local_argv)
-  {
-    return __stdio_common_vfscanf(0, stdin, __format, NULL, __local_argv);
-  }
+  int vscanf(const char *__format,  __builtin_va_list __local_argv);
 
 #ifdef __GNUC__
 #pragma GCC diagnostic pop
@@ -751,8 +729,8 @@ int vsnprintf (char *__stream, size_t __n, const char *__format, __builtin_va_li
     __builtin_va_end(__ap);
     return __ret;
   }
-  __mingw_ovr
-  int __cdecl _snscanf(const char * __restrict__ _Src,size_t _MaxCount,const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl _snscanf(const char * __restrict__ _Src,size_t _MaxCount,const char * __restrict__ _Format,...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -772,9 +750,9 @@ int vsnprintf (char *__stream, size_t __n, const char *__format, __builtin_va_li
 #ifdef _UCRT
   __attribute__((__format__ (__MINGW_PRINTF_FORMAT, 3, 0))) __MINGW_ATTRIB_NONNULL(3)
   int __cdecl _vsnprintf(char * __restrict__ _Dest,size_t _Count,const char * __restrict__ _Format,va_list _Args) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
-  __mingw_ovr
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
   __attribute__((__format__ (__MINGW_PRINTF_FORMAT, 3, 4))) __MINGW_ATTRIB_NONNULL(3)
-  int __cdecl _snprintf(char * __restrict__ _Dest,size_t _Count,const char * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl _snprintf(char * __restrict__ _Dest,size_t _Count,const char * __restrict__ _Format,...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -855,10 +833,6 @@ char * tmpnam(char * __dst)
 #pragma GCC diagnostic ignored "-Wshadow"
 #endif
 
-#pragma push_macro("snprintf")
-#pragma push_macro("vsnprintf")
-# undef snprintf
-# undef vsnprintf
   __attribute__((__format__ (ms_printf, 3, 0))) __MINGW_ATTRIB_NONNULL(3)
   int __cdecl __ms_vsnprintf(char * __restrict__ d,size_t n,const char * __restrict__ format,va_list arg)
     __MINGW_ATTRIB_DEPRECATED_MSVC2005 __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
@@ -941,8 +915,6 @@ int vsprintf (char * __restrict__ __stream, const char * __restrict__ __format,
 
 #endif /* __MINGW_FORTIFY_LEVEL > 0 */
 
-#pragma pop_macro ("vsnprintf")
-#pragma pop_macro ("snprintf")
 #ifdef __GNUC__
 #pragma GCC diagnostic pop
 #endif
@@ -1154,8 +1126,8 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 #else /* !__USE_MINGW_ANSI_STDIO */
 
 #ifdef _UCRT
-  __mingw_ovr
-  int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -1164,8 +1136,8 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
     __builtin_va_end(__ap);
     return __ret;
   }
-  __mingw_ovr
-  int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -1174,8 +1146,8 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
     __builtin_va_end(__ap);
     return __ret;
   }
-  __mingw_ovr
-  int __cdecl wscanf(const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl wscanf(const wchar_t * __restrict__ _Format,...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -1308,8 +1280,8 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
     __builtin_va_end(__ap);
     return __ret;
   }
-  __mingw_static_ovr
-  int __cdecl _snwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_static_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl _snwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -1372,10 +1344,6 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 #ifndef __NO_ISOCEXT  /* externs in libmingwex.a */
 
 #if __USE_MINGW_ANSI_STDIO == 0
-#pragma push_macro("snwprintf")
-#pragma push_macro("vsnwprintf")
-# undef snwprintf
-# undef vsnwprintf
   int __cdecl __ms_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
   int __cdecl __ms_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
   __mingw_ovr
@@ -1393,8 +1361,6 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
   {
     return _vsnwprintf(s,n,format,arg);
   }
-#pragma pop_macro ("vsnwprintf")
-#pragma pop_macro ("snwprintf")
 #endif
 
 #endif /* ! __NO_ISOCEXT */
@@ -1430,9 +1396,11 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 
   _CRTIMP int __cdecl _wremove(const wchar_t *_Filename);
   _CRTIMP wchar_t *__cdecl _wtmpnam(wchar_t *_Buffer);
+#if __MSVCRT_VERSION__ >= 0x800
   _CRTIMP wint_t __cdecl _fgetwc_nolock(FILE *_File);
   _CRTIMP wint_t __cdecl _fputwc_nolock(wchar_t _Ch,FILE *_File);
   _CRTIMP wint_t __cdecl _ungetwc_nolock(wint_t _Ch,FILE *_File);
+#endif
 
 #undef _CRT_GETPUTWCHAR_NOINLINE
 
@@ -1446,9 +1414,11 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 
 #define getwc(_stm) fgetwc(_stm)
 #define putwc(_c,_stm) fputwc(_c,_stm)
+#if __MSVCRT_VERSION__ >= 0x800
 #define _putwc_nolock(_c,_stm) _fputwc_nolock(_c,_stm)
 #define _getwc_nolock(_c) _fgetwc_nolock(_c)
 #endif
+#endif
 
 #define _STDIO_DEFINED
 #endif
@@ -1471,6 +1441,7 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 
   _CRTIMP void __cdecl _lock_file(FILE *_File);
   _CRTIMP void __cdecl _unlock_file(FILE *_File);
+#if __MSVCRT_VERSION__ >= 0x800
   _CRTIMP int __cdecl _fclose_nolock(FILE *_File);
   _CRTIMP int __cdecl _fflush_nolock(FILE *_File);
   _CRTIMP size_t __cdecl _fread_nolock(void * __restrict__ _DstBuf,size_t _ElementSize,size_t _Count,FILE * __restrict__ _File);
@@ -1480,6 +1451,7 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
   __MINGW_EXTENSION _CRTIMP __int64 __cdecl _ftelli64_nolock(FILE *_File);
   _CRTIMP size_t __cdecl _fwrite_nolock(const void * __restrict__ _DstBuf,size_t _Size,size_t _Count,FILE * __restrict__ _File);
   _CRTIMP int __cdecl _ungetc_nolock(int _Ch,FILE *_File);
+#endif
 
 #if !defined(NO_OLDNAMES) || !defined(_POSIX)
 #define P_tmpdir _P_tmpdir
@@ -1576,6 +1548,11 @@ void __cdecl __mingw_str_free(void *ptr);
 }
 #endif
 
+#pragma pop_macro("snprintf")
+#pragma pop_macro("vsnprintf")
+#pragma pop_macro("snwprintf")
+#pragma pop_macro("vsnwprintf")
+
 #pragma pack(pop)
 
 #include <sec_api/stdio_s.h>
lib/libc/include/any-windows-any/stdlib.h
@@ -387,6 +387,9 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);
 #define _CRT_TERMINATE_DEFINED
   void __cdecl __MINGW_NOTHROW exit(int _Code) __MINGW_ATTRIB_NORETURN;
   void __cdecl __MINGW_NOTHROW _exit(int _Code) __MINGW_ATTRIB_NORETURN;
+#ifdef _UCRT
+  void __cdecl __MINGW_NOTHROW quick_exit(int _Code) __MINGW_ATTRIB_NORETURN;
+#endif
 
 #if !defined __NO_ISOCEXT /* extern stub in static libmingwex.a */
   /* C99 function name */
@@ -420,6 +423,9 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);
 #endif
 
   int __cdecl atexit(void (__cdecl *)(void));
+#ifdef _UCRT
+  int __cdecl at_quick_exit(void (__cdecl *)(void));
+#endif
 #ifndef _CRT_ATOF_DEFINED
 #define _CRT_ATOF_DEFINED
   double __cdecl atof(const char *_String);
@@ -531,17 +537,8 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re
   void *__cdecl malloc(size_t _Size);
   void *__cdecl realloc(void *_Memory,size_t _NewSize);
   _CRTIMP void *__cdecl _recalloc(void *_Memory,size_t _Count,size_t _Size);
-/* Make sure that X86intrin.h doesn't produce here collisions.  */
-#if (!defined (_XMMINTRIN_H_INCLUDED) && !defined (_MM_MALLOC_H_INCLUDED)) || defined(_aligned_malloc)
-#pragma push_macro("_aligned_free")
-#pragma push_macro("_aligned_malloc")
-#undef _aligned_free
-#undef _aligned_malloc
   _CRTIMP void __cdecl _aligned_free(void *_Memory);
   _CRTIMP void *__cdecl _aligned_malloc(size_t _Size,size_t _Alignment);
-#pragma pop_macro("_aligned_free")
-#pragma pop_macro("_aligned_malloc")
-#endif
   _CRTIMP void *__cdecl _aligned_offset_malloc(size_t _Size,size_t _Alignment,size_t _Offset);
   _CRTIMP void *__cdecl _aligned_realloc(void *_Memory,size_t _Size,size_t _Alignment);
   _CRTIMP void *__cdecl _aligned_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment);
lib/libc/include/any-windows-any/stralign.h
@@ -15,7 +15,7 @@ extern "C" {
 #endif
 
 #ifndef WSTR_ALIGNED
-#if defined (__amd64__) || defined (__arm__)
+#if defined (__x86_64__) || defined (__arm__)
 #define WSTR_ALIGNED(s) TRUE
 #else
 #define WSTR_ALIGNED(s) (((DWORD_PTR)(s) & 1) == 0)
@@ -45,7 +45,7 @@ extern "C" {
 #define WSTR_ALIGNED(s) (((DWORD_PTR)(s) & (sizeof(WCHAR)-1))==0)
 #endif
 
-  /* TODO: This method seems to be not present for amd64.  */
+  /* TODO: This method seems to be not present for x86-64.  */
   LPUWSTR WINAPI uaw_CharUpperW(LPUWSTR String);
   int WINAPI uaw_lstrcmpW(PCUWSTR String1,PCUWSTR String2);
   int WINAPI uaw_lstrcmpiW(PCUWSTR String1,PCUWSTR String2);
@@ -165,7 +165,7 @@ extern "C" {
 #define __UA_WSTRSIZE(s) ((__UA_WCSLEN(s)+1)*sizeof(WCHAR))
 #define __UA_STACKCOPY(p,s) memcpy(_alloca(s),p,s)
 
-#if defined (__amd64__) || defined (__arm__) || defined (_X86_)
+#if defined (__x86_64__) || defined (__arm__) || defined (_X86_)
 #define WSTR_ALIGNED_STACK_COPY(d,s) (*(d) = (PCWSTR)(s))
 #else
 #define WSTR_ALIGNED_STACK_COPY(d,s) { PCUWSTR __ua_src; ULONG __ua_size; PWSTR __ua_dst; __ua_src = (s); if(WSTR_ALIGNED(__ua_src)) { __ua_dst = (PWSTR)__ua_src; } else { __ua_size = __UA_WSTRSIZE(__ua_src); __ua_dst = (PWSTR)_alloca(__ua_size); memcpy(__ua_dst,__ua_src,__ua_size); } *(d) = (PCWSTR)__ua_dst; }
@@ -173,7 +173,7 @@ extern "C" {
 
 #define ASTR_ALIGNED_STACK_COPY(d,s) (*(d) = (PCSTR)(s))
 
-#if !defined (_X86_) && !defined (__amd64__) && !defined (__arm__)
+#if !defined (_X86_) && !defined (__x86_64__) && !defined (__arm__)
 #define __UA_STRUC_ALIGNED(t,s) (((DWORD_PTR)(s) & (TYPE_ALIGNMENT(t)-1))==0)
 #define STRUC_ALIGNED_STACK_COPY(t,s) __UA_STRUC_ALIGNED(t,s) ? ((t const *)(s)) : ((t const *)__UA_STACKCOPY((s),sizeof(t)))
 #else
lib/libc/include/any-windows-any/strmif.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from include/strmif.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/strmif.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -466,6 +466,102 @@ interface IAMVfwCaptureDialogs;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IAMCameraControl_FWD_DEFINED__
+#define __IAMCameraControl_FWD_DEFINED__
+typedef interface IAMCameraControl IAMCameraControl;
+#ifdef __cplusplus
+interface IAMCameraControl;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMVideoControl_FWD_DEFINED__
+#define __IAMVideoControl_FWD_DEFINED__
+typedef interface IAMVideoControl IAMVideoControl;
+#ifdef __cplusplus
+interface IAMVideoControl;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMBufferNegotiation_FWD_DEFINED__
+#define __IAMBufferNegotiation_FWD_DEFINED__
+typedef interface IAMBufferNegotiation IAMBufferNegotiation;
+#ifdef __cplusplus
+interface IAMBufferNegotiation;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMDroppedFrames_FWD_DEFINED__
+#define __IAMDroppedFrames_FWD_DEFINED__
+typedef interface IAMDroppedFrames IAMDroppedFrames;
+#ifdef __cplusplus
+interface IAMDroppedFrames;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMLatency_FWD_DEFINED__
+#define __IAMLatency_FWD_DEFINED__
+typedef interface IAMLatency IAMLatency;
+#ifdef __cplusplus
+interface IAMLatency;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMPushSource_FWD_DEFINED__
+#define __IAMPushSource_FWD_DEFINED__
+typedef interface IAMPushSource IAMPushSource;
+#ifdef __cplusplus
+interface IAMPushSource;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMVideoCompression_FWD_DEFINED__
+#define __IAMVideoCompression_FWD_DEFINED__
+typedef interface IAMVideoCompression IAMVideoCompression;
+#ifdef __cplusplus
+interface IAMVideoCompression;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMCrossbar_FWD_DEFINED__
+#define __IAMCrossbar_FWD_DEFINED__
+typedef interface IAMCrossbar IAMCrossbar;
+#ifdef __cplusplus
+interface IAMCrossbar;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMTunerNotification_FWD_DEFINED__
+#define __IAMTunerNotification_FWD_DEFINED__
+typedef interface IAMTunerNotification IAMTunerNotification;
+#ifdef __cplusplus
+interface IAMTunerNotification;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMTuner_FWD_DEFINED__
+#define __IAMTuner_FWD_DEFINED__
+typedef interface IAMTuner IAMTuner;
+#ifdef __cplusplus
+interface IAMTuner;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAMTVTuner_FWD_DEFINED__
+#define __IAMTVTuner_FWD_DEFINED__
+typedef interface IAMTVTuner IAMTVTuner;
+#ifdef __cplusplus
+interface IAMTVTuner;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IVideoFrameStep_FWD_DEFINED__
+#define __IVideoFrameStep_FWD_DEFINED__
+typedef interface IVideoFrameStep IVideoFrameStep;
+#ifdef __cplusplus
+interface IVideoFrameStep;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
 #define __IAMAsyncReaderTimestampScaling_FWD_DEFINED__
 typedef interface IAMAsyncReaderTimestampScaling IAMAsyncReaderTimestampScaling;
@@ -4306,7 +4402,7 @@ IFilterMapper : public IUnknown
         CLSID clsInMaj,
         CLSID clsInSub,
         WINBOOL bRender,
-        WINBOOL bOututNeeded,
+        WINBOOL bOutputNeeded,
         CLSID clsOutMaj,
         CLSID clsOutSub) = 0;
 
@@ -4382,7 +4478,7 @@ typedef struct IFilterMapperVtbl {
         CLSID clsInMaj,
         CLSID clsInSub,
         WINBOOL bRender,
-        WINBOOL bOututNeeded,
+        WINBOOL bOutputNeeded,
         CLSID clsOutMaj,
         CLSID clsOutSub);
 
@@ -4407,7 +4503,7 @@ interface IFilterMapper {
 #define IFilterMapper_UnregisterFilter(This,Filter) (This)->lpVtbl->UnregisterFilter(This,Filter)
 #define IFilterMapper_UnregisterFilterInstance(This,MRId) (This)->lpVtbl->UnregisterFilterInstance(This,MRId)
 #define IFilterMapper_UnregisterPin(This,Filter,Name) (This)->lpVtbl->UnregisterPin(This,Filter,Name)
-#define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub)
+#define IFilterMapper_EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub) (This)->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub)
 #else
 /*** IUnknown methods ***/
 static FORCEINLINE HRESULT IFilterMapper_QueryInterface(IFilterMapper* This,REFIID riid,void **ppvObject) {
@@ -4441,8 +4537,8 @@ static FORCEINLINE HRESULT IFilterMapper_UnregisterFilterInstance(IFilterMapper*
 static FORCEINLINE HRESULT IFilterMapper_UnregisterPin(IFilterMapper* This,CLSID Filter,LPCWSTR Name) {
     return This->lpVtbl->UnregisterPin(This,Filter,Name);
 }
-static FORCEINLINE HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOututNeeded,CLSID clsOutMaj,CLSID clsOutSub) {
-    return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOututNeeded,clsOutMaj,clsOutSub);
+static FORCEINLINE HRESULT IFilterMapper_EnumMatchingFilters(IFilterMapper* This,IEnumRegFilters **ppEnum,DWORD dwMerit,WINBOOL bInputNeeded,CLSID clsInMaj,CLSID clsInSub,WINBOOL bRender,WINBOOL bOutputNeeded,CLSID clsOutMaj,CLSID clsOutSub) {
+    return This->lpVtbl->EnumMatchingFilters(This,ppEnum,dwMerit,bInputNeeded,clsInMaj,clsInSub,bRender,bOutputNeeded,clsOutMaj,clsOutSub);
 }
 #endif
 #endif
@@ -8204,6 +8300,10 @@ static FORCEINLINE HRESULT IAMStreamControl_GetInfo(IAMStreamControl* This,AM_ST
 #define _IKsPropertySet_
 #define KSPROPERTY_SUPPORT_GET  1
 #define KSPROPERTY_SUPPORT_SET  2
+typedef enum AMPROPERTY_PIN {
+    AMPROPERTY_PIN_CATEGORY = 0,
+    AMPROPERTY_PIN_MEDIUM = 1
+} AMPROPERTY_PIN;
 /*****************************************************************************
  * IKsPropertySet interface
  */
@@ -8904,86 +9004,114 @@ static FORCEINLINE HRESULT IAMVfwCaptureDialogs_SendDriverMessage(IAMVfwCaptureD
 
 #endif  /* __IAMVfwCaptureDialogs_INTERFACE_DEFINED__ */
 
-#if (_WIN32_WINNT >= 0x0601)
 /*****************************************************************************
- * IAMAsyncReaderTimestampScaling interface
+ * IAMCameraControl interface
  */
-#ifndef __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
-#define __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
+#ifndef __IAMCameraControl_INTERFACE_DEFINED__
+#define __IAMCameraControl_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67);
+DEFINE_GUID(IID_IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("cf7b26fc-9a00-485b-8147-3e789d5e8f67")
-IAMAsyncReaderTimestampScaling : public IUnknown
+MIDL_INTERFACE("c6e13370-30ac-11d0-a18c-00a0c9118956")
+IAMCameraControl : public IUnknown
 {
-    virtual HRESULT STDMETHODCALLTYPE GetTimestampMode(
-        WINBOOL *pfRaw) = 0;
+    virtual HRESULT STDMETHODCALLTYPE GetRange(
+        LONG property,
+        LONG *min,
+        LONG *max,
+        LONG *stepping_delta,
+        LONG *default_value,
+        LONG *flags) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE SetTimestampMode(
-        WINBOOL fRaw) = 0;
+    virtual HRESULT STDMETHODCALLTYPE Set(
+        LONG property,
+        LONG property_value,
+        LONG flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Get(
+        LONG property,
+        LONG *property_value,
+        LONG *flags) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67)
+__CRT_UUID_DECL(IAMCameraControl, 0xc6e13370, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
 #endif
 #else
-typedef struct IAMAsyncReaderTimestampScalingVtbl {
+typedef struct IAMCameraControlVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAMAsyncReaderTimestampScaling *This,
+        IAMCameraControl *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAMAsyncReaderTimestampScaling *This);
+        IAMCameraControl *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAMAsyncReaderTimestampScaling *This);
+        IAMCameraControl *This);
 
-    /*** IAMAsyncReaderTimestampScaling methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetTimestampMode)(
-        IAMAsyncReaderTimestampScaling *This,
-        WINBOOL *pfRaw);
+    /*** IAMCameraControl methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetRange)(
+        IAMCameraControl *This,
+        LONG property,
+        LONG *min,
+        LONG *max,
+        LONG *stepping_delta,
+        LONG *default_value,
+        LONG *flags);
 
-    HRESULT (STDMETHODCALLTYPE *SetTimestampMode)(
-        IAMAsyncReaderTimestampScaling *This,
-        WINBOOL fRaw);
+    HRESULT (STDMETHODCALLTYPE *Set)(
+        IAMCameraControl *This,
+        LONG property,
+        LONG property_value,
+        LONG flags);
+
+    HRESULT (STDMETHODCALLTYPE *Get)(
+        IAMCameraControl *This,
+        LONG property,
+        LONG *property_value,
+        LONG *flags);
 
     END_INTERFACE
-} IAMAsyncReaderTimestampScalingVtbl;
+} IAMCameraControlVtbl;
 
-interface IAMAsyncReaderTimestampScaling {
-    CONST_VTBL IAMAsyncReaderTimestampScalingVtbl* lpVtbl;
+interface IAMCameraControl {
+    CONST_VTBL IAMCameraControlVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IAMAsyncReaderTimestampScaling_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMAsyncReaderTimestampScaling_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMAsyncReaderTimestampScaling_Release(This) (This)->lpVtbl->Release(This)
-/*** IAMAsyncReaderTimestampScaling methods ***/
-#define IAMAsyncReaderTimestampScaling_GetTimestampMode(This,pfRaw) (This)->lpVtbl->GetTimestampMode(This,pfRaw)
-#define IAMAsyncReaderTimestampScaling_SetTimestampMode(This,fRaw) (This)->lpVtbl->SetTimestampMode(This,fRaw)
+#define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMCameraControl methods ***/
+#define IAMCameraControl_GetRange(This,property,min,max,stepping_delta,default_value,flags) (This)->lpVtbl->GetRange(This,property,min,max,stepping_delta,default_value,flags)
+#define IAMCameraControl_Set(This,property,property_value,flags) (This)->lpVtbl->Set(This,property,property_value,flags)
+#define IAMCameraControl_Get(This,property,property_value,flags) (This)->lpVtbl->Get(This,property,property_value,flags)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_QueryInterface(IAMAsyncReaderTimestampScaling* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT IAMCameraControl_QueryInterface(IAMCameraControl* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IAMAsyncReaderTimestampScaling_AddRef(IAMAsyncReaderTimestampScaling* This) {
+static FORCEINLINE ULONG IAMCameraControl_AddRef(IAMCameraControl* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IAMAsyncReaderTimestampScaling_Release(IAMAsyncReaderTimestampScaling* This) {
+static FORCEINLINE ULONG IAMCameraControl_Release(IAMCameraControl* This) {
     return This->lpVtbl->Release(This);
 }
-/*** IAMAsyncReaderTimestampScaling methods ***/
-static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_GetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL *pfRaw) {
-    return This->lpVtbl->GetTimestampMode(This,pfRaw);
+/*** IAMCameraControl methods ***/
+static FORCEINLINE HRESULT IAMCameraControl_GetRange(IAMCameraControl* This,LONG property,LONG *min,LONG *max,LONG *stepping_delta,LONG *default_value,LONG *flags) {
+    return This->lpVtbl->GetRange(This,property,min,max,stepping_delta,default_value,flags);
 }
-static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_SetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL fRaw) {
-    return This->lpVtbl->SetTimestampMode(This,fRaw);
+static FORCEINLINE HRESULT IAMCameraControl_Set(IAMCameraControl* This,LONG property,LONG property_value,LONG flags) {
+    return This->lpVtbl->Set(This,property,property_value,flags);
+}
+static FORCEINLINE HRESULT IAMCameraControl_Get(IAMCameraControl* This,LONG property,LONG *property_value,LONG *flags) {
+    return This->lpVtbl->Get(This,property,property_value,flags);
 }
 #endif
 #endif
@@ -8991,154 +9119,1908 @@ static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_SetTimestampMode(IAMAs
 #endif
 
 
-#endif  /* __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__ */
+#endif  /* __IAMCameraControl_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * IAMPluginControl interface
+ * IAMVideoControl interface
  */
-#ifndef __IAMPluginControl_INTERFACE_DEFINED__
-#define __IAMPluginControl_INTERFACE_DEFINED__
+#ifndef __IAMVideoControl_INTERFACE_DEFINED__
+#define __IAMVideoControl_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81);
+DEFINE_GUID(IID_IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("0e26a181-f40c-4635-8786-976284b52981")
-IAMPluginControl : public IUnknown
+MIDL_INTERFACE("6a2e0670-28e4-11d0-a18c-00a0c9118956")
+IAMVideoControl : public IUnknown
 {
-    virtual HRESULT STDMETHODCALLTYPE GetPreferredClsid(
-        REFGUID subType,
-        CLSID *clsid) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetPreferredClsidByIndex(
-        DWORD index,
-        GUID *subType,
-        CLSID *clsid) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetPreferredClsid(
-        REFGUID subType,
-        const CLSID *clsid) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE IsDisabled(
-        REFCLSID clsid) = 0;
+    virtual HRESULT STDMETHODCALLTYPE GetCaps(
+        IPin *pin,
+        LONG *flags) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE GetDisabledByIndex(
-        DWORD index,
-        CLSID *clsid) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE SetDisabled(
-        REFCLSID clsid,
-        WINBOOL disabled) = 0;
+    virtual HRESULT STDMETHODCALLTYPE SetMode(
+        IPin *pin,
+        LONG mode) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE IsLegacyDisabled(
-        LPCWSTR dllName) = 0;
+    virtual HRESULT STDMETHODCALLTYPE GetMode(
+        IPin *pin,
+        LONG *mode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentActualFrameRate(
+        IPin *pin,
+        LONGLONG *frame_rate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMaxAvailableFrameRate(
+        IPin *pin,
+        LONG index,
+        SIZE dimensions,
+        LONGLONG *frame_rate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFrameRateList(
+        IPin *pin,
+        LONG index,
+        SIZE dimensions,
+        LONG *list_size,
+        LONGLONG **frame_rate) = 0;
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81)
+__CRT_UUID_DECL(IAMVideoControl, 0x6a2e0670, 0x28e4, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
 #endif
 #else
-typedef struct IAMPluginControlVtbl {
+typedef struct IAMVideoControlVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAMPluginControl *This,
+        IAMVideoControl *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAMPluginControl *This);
+        IAMVideoControl *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAMPluginControl *This);
-
-    /*** IAMPluginControl methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetPreferredClsid)(
-        IAMPluginControl *This,
-        REFGUID subType,
-        CLSID *clsid);
-
-    HRESULT (STDMETHODCALLTYPE *GetPreferredClsidByIndex)(
-        IAMPluginControl *This,
-        DWORD index,
-        GUID *subType,
-        CLSID *clsid);
-
-    HRESULT (STDMETHODCALLTYPE *SetPreferredClsid)(
-        IAMPluginControl *This,
-        REFGUID subType,
-        const CLSID *clsid);
-
-    HRESULT (STDMETHODCALLTYPE *IsDisabled)(
-        IAMPluginControl *This,
-        REFCLSID clsid);
-
-    HRESULT (STDMETHODCALLTYPE *GetDisabledByIndex)(
-        IAMPluginControl *This,
-        DWORD index,
-        CLSID *clsid);
-
-    HRESULT (STDMETHODCALLTYPE *SetDisabled)(
-        IAMPluginControl *This,
-        REFCLSID clsid,
-        WINBOOL disabled);
+        IAMVideoControl *This);
 
-    HRESULT (STDMETHODCALLTYPE *IsLegacyDisabled)(
-        IAMPluginControl *This,
-        LPCWSTR dllName);
+    /*** IAMVideoControl methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetCaps)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONG *flags);
 
-    END_INTERFACE
-} IAMPluginControlVtbl;
+    HRESULT (STDMETHODCALLTYPE *SetMode)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONG mode);
 
-interface IAMPluginControl {
-    CONST_VTBL IAMPluginControlVtbl* lpVtbl;
+    HRESULT (STDMETHODCALLTYPE *GetMode)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONG *mode);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentActualFrameRate)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONGLONG *frame_rate);
+
+    HRESULT (STDMETHODCALLTYPE *GetMaxAvailableFrameRate)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONG index,
+        SIZE dimensions,
+        LONGLONG *frame_rate);
+
+    HRESULT (STDMETHODCALLTYPE *GetFrameRateList)(
+        IAMVideoControl *This,
+        IPin *pin,
+        LONG index,
+        SIZE dimensions,
+        LONG *list_size,
+        LONGLONG **frame_rate);
+
+    END_INTERFACE
+} IAMVideoControlVtbl;
+
+interface IAMVideoControl {
+    CONST_VTBL IAMVideoControlVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IAMPluginControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMPluginControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMPluginControl_Release(This) (This)->lpVtbl->Release(This)
-/*** IAMPluginControl methods ***/
-#define IAMPluginControl_GetPreferredClsid(This,subType,clsid) (This)->lpVtbl->GetPreferredClsid(This,subType,clsid)
-#define IAMPluginControl_GetPreferredClsidByIndex(This,index,subType,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid)
-#define IAMPluginControl_SetPreferredClsid(This,subType,clsid) (This)->lpVtbl->SetPreferredClsid(This,subType,clsid)
-#define IAMPluginControl_IsDisabled(This,clsid) (This)->lpVtbl->IsDisabled(This,clsid)
-#define IAMPluginControl_GetDisabledByIndex(This,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,index,clsid)
-#define IAMPluginControl_SetDisabled(This,clsid,disabled) (This)->lpVtbl->SetDisabled(This,clsid,disabled)
-#define IAMPluginControl_IsLegacyDisabled(This,dllName) (This)->lpVtbl->IsLegacyDisabled(This,dllName)
+#define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMVideoControl methods ***/
+#define IAMVideoControl_GetCaps(This,pin,flags) (This)->lpVtbl->GetCaps(This,pin,flags)
+#define IAMVideoControl_SetMode(This,pin,mode) (This)->lpVtbl->SetMode(This,pin,mode)
+#define IAMVideoControl_GetMode(This,pin,mode) (This)->lpVtbl->GetMode(This,pin,mode)
+#define IAMVideoControl_GetCurrentActualFrameRate(This,pin,frame_rate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate)
+#define IAMVideoControl_GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate)
+#define IAMVideoControl_GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate) (This)->lpVtbl->GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IAMPluginControl_QueryInterface(IAMPluginControl* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT IAMVideoControl_QueryInterface(IAMVideoControl* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IAMPluginControl_AddRef(IAMPluginControl* This) {
+static FORCEINLINE ULONG IAMVideoControl_AddRef(IAMVideoControl* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IAMPluginControl_Release(IAMPluginControl* This) {
+static FORCEINLINE ULONG IAMVideoControl_Release(IAMVideoControl* This) {
     return This->lpVtbl->Release(This);
 }
-/*** IAMPluginControl methods ***/
-static FORCEINLINE HRESULT IAMPluginControl_GetPreferredClsid(IAMPluginControl* This,REFGUID subType,CLSID *clsid) {
-    return This->lpVtbl->GetPreferredClsid(This,subType,clsid);
+/*** IAMVideoControl methods ***/
+static FORCEINLINE HRESULT IAMVideoControl_GetCaps(IAMVideoControl* This,IPin *pin,LONG *flags) {
+    return This->lpVtbl->GetCaps(This,pin,flags);
 }
-static FORCEINLINE HRESULT IAMPluginControl_GetPreferredClsidByIndex(IAMPluginControl* This,DWORD index,GUID *subType,CLSID *clsid) {
-    return This->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid);
+static FORCEINLINE HRESULT IAMVideoControl_SetMode(IAMVideoControl* This,IPin *pin,LONG mode) {
+    return This->lpVtbl->SetMode(This,pin,mode);
 }
-static FORCEINLINE HRESULT IAMPluginControl_SetPreferredClsid(IAMPluginControl* This,REFGUID subType,const CLSID *clsid) {
-    return This->lpVtbl->SetPreferredClsid(This,subType,clsid);
+static FORCEINLINE HRESULT IAMVideoControl_GetMode(IAMVideoControl* This,IPin *pin,LONG *mode) {
+    return This->lpVtbl->GetMode(This,pin,mode);
 }
-static FORCEINLINE HRESULT IAMPluginControl_IsDisabled(IAMPluginControl* This,REFCLSID clsid) {
-    return This->lpVtbl->IsDisabled(This,clsid);
+static FORCEINLINE HRESULT IAMVideoControl_GetCurrentActualFrameRate(IAMVideoControl* This,IPin *pin,LONGLONG *frame_rate) {
+    return This->lpVtbl->GetCurrentActualFrameRate(This,pin,frame_rate);
 }
-static FORCEINLINE HRESULT IAMPluginControl_GetDisabledByIndex(IAMPluginControl* This,DWORD index,CLSID *clsid) {
-    return This->lpVtbl->GetDisabledByIndex(This,index,clsid);
+static FORCEINLINE HRESULT IAMVideoControl_GetMaxAvailableFrameRate(IAMVideoControl* This,IPin *pin,LONG index,SIZE dimensions,LONGLONG *frame_rate) {
+    return This->lpVtbl->GetMaxAvailableFrameRate(This,pin,index,dimensions,frame_rate);
 }
-static FORCEINLINE HRESULT IAMPluginControl_SetDisabled(IAMPluginControl* This,REFCLSID clsid,WINBOOL disabled) {
-    return This->lpVtbl->SetDisabled(This,clsid,disabled);
+static FORCEINLINE HRESULT IAMVideoControl_GetFrameRateList(IAMVideoControl* This,IPin *pin,LONG index,SIZE dimensions,LONG *list_size,LONGLONG **frame_rate) {
+    return This->lpVtbl->GetFrameRateList(This,pin,index,dimensions,list_size,frame_rate);
 }
-static FORCEINLINE HRESULT IAMPluginControl_IsLegacyDisabled(IAMPluginControl* This,LPCWSTR dllName) {
-    return This->lpVtbl->IsLegacyDisabled(This,dllName);
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMVideoControl_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMBufferNegotiation interface
+ */
+#ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
+#define __IAMBufferNegotiation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("56ed71a0-af5f-11d0-b3f0-00aa003761c5")
+IAMBufferNegotiation : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SuggestAllocatorProperties(
+        const ALLOCATOR_PROPERTIES *prop) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAllocatorProperties(
+        ALLOCATOR_PROPERTIES *prop) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMBufferNegotiation, 0x56ed71a0, 0xaf5f, 0x11d0, 0xb3,0xf0, 0x00,0xaa,0x00,0x37,0x61,0xc5)
+#endif
+#else
+typedef struct IAMBufferNegotiationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMBufferNegotiation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMBufferNegotiation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMBufferNegotiation *This);
+
+    /*** IAMBufferNegotiation methods ***/
+    HRESULT (STDMETHODCALLTYPE *SuggestAllocatorProperties)(
+        IAMBufferNegotiation *This,
+        const ALLOCATOR_PROPERTIES *prop);
+
+    HRESULT (STDMETHODCALLTYPE *GetAllocatorProperties)(
+        IAMBufferNegotiation *This,
+        ALLOCATOR_PROPERTIES *prop);
+
+    END_INTERFACE
+} IAMBufferNegotiationVtbl;
+
+interface IAMBufferNegotiation {
+    CONST_VTBL IAMBufferNegotiationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMBufferNegotiation methods ***/
+#define IAMBufferNegotiation_SuggestAllocatorProperties(This,prop) (This)->lpVtbl->SuggestAllocatorProperties(This,prop)
+#define IAMBufferNegotiation_GetAllocatorProperties(This,prop) (This)->lpVtbl->GetAllocatorProperties(This,prop)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMBufferNegotiation_QueryInterface(IAMBufferNegotiation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMBufferNegotiation_AddRef(IAMBufferNegotiation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMBufferNegotiation_Release(IAMBufferNegotiation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMBufferNegotiation methods ***/
+static FORCEINLINE HRESULT IAMBufferNegotiation_SuggestAllocatorProperties(IAMBufferNegotiation* This,const ALLOCATOR_PROPERTIES *prop) {
+    return This->lpVtbl->SuggestAllocatorProperties(This,prop);
+}
+static FORCEINLINE HRESULT IAMBufferNegotiation_GetAllocatorProperties(IAMBufferNegotiation* This,ALLOCATOR_PROPERTIES *prop) {
+    return This->lpVtbl->GetAllocatorProperties(This,prop);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMBufferNegotiation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMDroppedFrames interface
+ */
+#ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
+#define __IAMDroppedFrames_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c6e13344-30ac-11d0-a18c-00a0c9118956")
+IAMDroppedFrames : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetNumDropped(
+        LONG *number) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNumNotDropped(
+        LONG *number) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDroppedInfo(
+        LONG size,
+        LONG *array,
+        LONG *copied) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAverageFrameSize(
+        LONG *size) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMDroppedFrames, 0xc6e13344, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
+#endif
+#else
+typedef struct IAMDroppedFramesVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMDroppedFrames *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMDroppedFrames *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMDroppedFrames *This);
+
+    /*** IAMDroppedFrames methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetNumDropped)(
+        IAMDroppedFrames *This,
+        LONG *number);
+
+    HRESULT (STDMETHODCALLTYPE *GetNumNotDropped)(
+        IAMDroppedFrames *This,
+        LONG *number);
+
+    HRESULT (STDMETHODCALLTYPE *GetDroppedInfo)(
+        IAMDroppedFrames *This,
+        LONG size,
+        LONG *array,
+        LONG *copied);
+
+    HRESULT (STDMETHODCALLTYPE *GetAverageFrameSize)(
+        IAMDroppedFrames *This,
+        LONG *size);
+
+    END_INTERFACE
+} IAMDroppedFramesVtbl;
+
+interface IAMDroppedFrames {
+    CONST_VTBL IAMDroppedFramesVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMDroppedFrames methods ***/
+#define IAMDroppedFrames_GetNumDropped(This,number) (This)->lpVtbl->GetNumDropped(This,number)
+#define IAMDroppedFrames_GetNumNotDropped(This,number) (This)->lpVtbl->GetNumNotDropped(This,number)
+#define IAMDroppedFrames_GetDroppedInfo(This,size,array,copied) (This)->lpVtbl->GetDroppedInfo(This,size,array,copied)
+#define IAMDroppedFrames_GetAverageFrameSize(This,size) (This)->lpVtbl->GetAverageFrameSize(This,size)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMDroppedFrames_QueryInterface(IAMDroppedFrames* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMDroppedFrames_AddRef(IAMDroppedFrames* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMDroppedFrames_Release(IAMDroppedFrames* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMDroppedFrames methods ***/
+static FORCEINLINE HRESULT IAMDroppedFrames_GetNumDropped(IAMDroppedFrames* This,LONG *number) {
+    return This->lpVtbl->GetNumDropped(This,number);
+}
+static FORCEINLINE HRESULT IAMDroppedFrames_GetNumNotDropped(IAMDroppedFrames* This,LONG *number) {
+    return This->lpVtbl->GetNumNotDropped(This,number);
+}
+static FORCEINLINE HRESULT IAMDroppedFrames_GetDroppedInfo(IAMDroppedFrames* This,LONG size,LONG *array,LONG *copied) {
+    return This->lpVtbl->GetDroppedInfo(This,size,array,copied);
+}
+static FORCEINLINE HRESULT IAMDroppedFrames_GetAverageFrameSize(IAMDroppedFrames* This,LONG *size) {
+    return This->lpVtbl->GetAverageFrameSize(This,size);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMDroppedFrames_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMLatency interface
+ */
+#ifndef __IAMLatency_INTERFACE_DEFINED__
+#define __IAMLatency_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("62ea93ba-ec62-11d2-b770-00c04fb6bd3d")
+IAMLatency : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetLatency(
+        REFERENCE_TIME *latency) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMLatency, 0x62ea93ba, 0xec62, 0x11d2, 0xb7,0x70, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d)
+#endif
+#else
+typedef struct IAMLatencyVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMLatency *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMLatency *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMLatency *This);
+
+    /*** IAMLatency methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetLatency)(
+        IAMLatency *This,
+        REFERENCE_TIME *latency);
+
+    END_INTERFACE
+} IAMLatencyVtbl;
+
+interface IAMLatency {
+    CONST_VTBL IAMLatencyVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMLatency methods ***/
+#define IAMLatency_GetLatency(This,latency) (This)->lpVtbl->GetLatency(This,latency)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMLatency_QueryInterface(IAMLatency* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMLatency_AddRef(IAMLatency* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMLatency_Release(IAMLatency* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMLatency methods ***/
+static FORCEINLINE HRESULT IAMLatency_GetLatency(IAMLatency* This,REFERENCE_TIME *latency) {
+    return This->lpVtbl->GetLatency(This,latency);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMLatency_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMPushSource interface
+ */
+#ifndef __IAMPushSource_INTERFACE_DEFINED__
+#define __IAMPushSource_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f185fe76-e64e-11d2-b76e-00c04fb6bd3d")
+IAMPushSource : public IAMLatency
+{
+    virtual HRESULT STDMETHODCALLTYPE GetPushSourceFlags(
+        ULONG *flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetPushSourceFlags(
+        ULONG flags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetStreamOffset(
+        REFERENCE_TIME offset) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetStreamOffset(
+        REFERENCE_TIME *offset) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMaxStreamOffset(
+        REFERENCE_TIME *offset) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetMaxStreamOffset(
+        REFERENCE_TIME offset) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMPushSource, 0xf185fe76, 0xe64e, 0x11d2, 0xb7,0x6e, 0x00,0xc0,0x4f,0xb6,0xbd,0x3d)
+#endif
+#else
+typedef struct IAMPushSourceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMPushSource *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMPushSource *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMPushSource *This);
+
+    /*** IAMLatency methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetLatency)(
+        IAMPushSource *This,
+        REFERENCE_TIME *latency);
+
+    /*** IAMPushSource methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetPushSourceFlags)(
+        IAMPushSource *This,
+        ULONG *flags);
+
+    HRESULT (STDMETHODCALLTYPE *SetPushSourceFlags)(
+        IAMPushSource *This,
+        ULONG flags);
+
+    HRESULT (STDMETHODCALLTYPE *SetStreamOffset)(
+        IAMPushSource *This,
+        REFERENCE_TIME offset);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamOffset)(
+        IAMPushSource *This,
+        REFERENCE_TIME *offset);
+
+    HRESULT (STDMETHODCALLTYPE *GetMaxStreamOffset)(
+        IAMPushSource *This,
+        REFERENCE_TIME *offset);
+
+    HRESULT (STDMETHODCALLTYPE *SetMaxStreamOffset)(
+        IAMPushSource *This,
+        REFERENCE_TIME offset);
+
+    END_INTERFACE
+} IAMPushSourceVtbl;
+
+interface IAMPushSource {
+    CONST_VTBL IAMPushSourceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMLatency methods ***/
+#define IAMPushSource_GetLatency(This,latency) (This)->lpVtbl->GetLatency(This,latency)
+/*** IAMPushSource methods ***/
+#define IAMPushSource_GetPushSourceFlags(This,flags) (This)->lpVtbl->GetPushSourceFlags(This,flags)
+#define IAMPushSource_SetPushSourceFlags(This,flags) (This)->lpVtbl->SetPushSourceFlags(This,flags)
+#define IAMPushSource_SetStreamOffset(This,offset) (This)->lpVtbl->SetStreamOffset(This,offset)
+#define IAMPushSource_GetStreamOffset(This,offset) (This)->lpVtbl->GetStreamOffset(This,offset)
+#define IAMPushSource_GetMaxStreamOffset(This,offset) (This)->lpVtbl->GetMaxStreamOffset(This,offset)
+#define IAMPushSource_SetMaxStreamOffset(This,offset) (This)->lpVtbl->SetMaxStreamOffset(This,offset)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMPushSource_QueryInterface(IAMPushSource* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMPushSource_AddRef(IAMPushSource* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMPushSource_Release(IAMPushSource* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMLatency methods ***/
+static FORCEINLINE HRESULT IAMPushSource_GetLatency(IAMPushSource* This,REFERENCE_TIME *latency) {
+    return This->lpVtbl->GetLatency(This,latency);
+}
+/*** IAMPushSource methods ***/
+static FORCEINLINE HRESULT IAMPushSource_GetPushSourceFlags(IAMPushSource* This,ULONG *flags) {
+    return This->lpVtbl->GetPushSourceFlags(This,flags);
+}
+static FORCEINLINE HRESULT IAMPushSource_SetPushSourceFlags(IAMPushSource* This,ULONG flags) {
+    return This->lpVtbl->SetPushSourceFlags(This,flags);
+}
+static FORCEINLINE HRESULT IAMPushSource_SetStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) {
+    return This->lpVtbl->SetStreamOffset(This,offset);
+}
+static FORCEINLINE HRESULT IAMPushSource_GetStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) {
+    return This->lpVtbl->GetStreamOffset(This,offset);
+}
+static FORCEINLINE HRESULT IAMPushSource_GetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME *offset) {
+    return This->lpVtbl->GetMaxStreamOffset(This,offset);
+}
+static FORCEINLINE HRESULT IAMPushSource_SetMaxStreamOffset(IAMPushSource* This,REFERENCE_TIME offset) {
+    return This->lpVtbl->SetMaxStreamOffset(This,offset);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMPushSource_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMVideoCompression interface
+ */
+#ifndef __IAMVideoCompression_INTERFACE_DEFINED__
+#define __IAMVideoCompression_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c6e13343-30ac-11d0-a18c-00a0c9118956")
+IAMVideoCompression : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE put_KeyFrameRate(
+        LONG frame_rate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_KeyFrameRate(
+        LONG *frame_rate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_PFramesPerKeyFrame(
+        LONG frame) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_PFramesPerKeyFrame(
+        LONG *frame) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Quality(
+        double quality) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Quality(
+        double *quality) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_WindowSize(
+        DWORDLONG size) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_WindowSize(
+        DWORDLONG *size) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetInfo(
+        LPWSTR version,
+        int *version_size,
+        LPWSTR description,
+        int *description_size,
+        LONG *frame_rate,
+        LONG *key,
+        double *quality,
+        LONG *capabilities) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OverrideKeyFrame(
+        LONG number) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE OverrideFrameSize(
+        LONG number,
+        LONG size) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMVideoCompression, 0xc6e13343, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
+#endif
+#else
+typedef struct IAMVideoCompressionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMVideoCompression *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMVideoCompression *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMVideoCompression *This);
+
+    /*** IAMVideoCompression methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_KeyFrameRate)(
+        IAMVideoCompression *This,
+        LONG frame_rate);
+
+    HRESULT (STDMETHODCALLTYPE *get_KeyFrameRate)(
+        IAMVideoCompression *This,
+        LONG *frame_rate);
+
+    HRESULT (STDMETHODCALLTYPE *put_PFramesPerKeyFrame)(
+        IAMVideoCompression *This,
+        LONG frame);
+
+    HRESULT (STDMETHODCALLTYPE *get_PFramesPerKeyFrame)(
+        IAMVideoCompression *This,
+        LONG *frame);
+
+    HRESULT (STDMETHODCALLTYPE *put_Quality)(
+        IAMVideoCompression *This,
+        double quality);
+
+    HRESULT (STDMETHODCALLTYPE *get_Quality)(
+        IAMVideoCompression *This,
+        double *quality);
+
+    HRESULT (STDMETHODCALLTYPE *put_WindowSize)(
+        IAMVideoCompression *This,
+        DWORDLONG size);
+
+    HRESULT (STDMETHODCALLTYPE *get_WindowSize)(
+        IAMVideoCompression *This,
+        DWORDLONG *size);
+
+    HRESULT (STDMETHODCALLTYPE *GetInfo)(
+        IAMVideoCompression *This,
+        LPWSTR version,
+        int *version_size,
+        LPWSTR description,
+        int *description_size,
+        LONG *frame_rate,
+        LONG *key,
+        double *quality,
+        LONG *capabilities);
+
+    HRESULT (STDMETHODCALLTYPE *OverrideKeyFrame)(
+        IAMVideoCompression *This,
+        LONG number);
+
+    HRESULT (STDMETHODCALLTYPE *OverrideFrameSize)(
+        IAMVideoCompression *This,
+        LONG number,
+        LONG size);
+
+    END_INTERFACE
+} IAMVideoCompressionVtbl;
+
+interface IAMVideoCompression {
+    CONST_VTBL IAMVideoCompressionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMVideoCompression methods ***/
+#define IAMVideoCompression_put_KeyFrameRate(This,frame_rate) (This)->lpVtbl->put_KeyFrameRate(This,frame_rate)
+#define IAMVideoCompression_get_KeyFrameRate(This,frame_rate) (This)->lpVtbl->get_KeyFrameRate(This,frame_rate)
+#define IAMVideoCompression_put_PFramesPerKeyFrame(This,frame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,frame)
+#define IAMVideoCompression_get_PFramesPerKeyFrame(This,frame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,frame)
+#define IAMVideoCompression_put_Quality(This,quality) (This)->lpVtbl->put_Quality(This,quality)
+#define IAMVideoCompression_get_Quality(This,quality) (This)->lpVtbl->get_Quality(This,quality)
+#define IAMVideoCompression_put_WindowSize(This,size) (This)->lpVtbl->put_WindowSize(This,size)
+#define IAMVideoCompression_get_WindowSize(This,size) (This)->lpVtbl->get_WindowSize(This,size)
+#define IAMVideoCompression_GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities) (This)->lpVtbl->GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities)
+#define IAMVideoCompression_OverrideKeyFrame(This,number) (This)->lpVtbl->OverrideKeyFrame(This,number)
+#define IAMVideoCompression_OverrideFrameSize(This,number,size) (This)->lpVtbl->OverrideFrameSize(This,number,size)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMVideoCompression_QueryInterface(IAMVideoCompression* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMVideoCompression_AddRef(IAMVideoCompression* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMVideoCompression_Release(IAMVideoCompression* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMVideoCompression methods ***/
+static FORCEINLINE HRESULT IAMVideoCompression_put_KeyFrameRate(IAMVideoCompression* This,LONG frame_rate) {
+    return This->lpVtbl->put_KeyFrameRate(This,frame_rate);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_get_KeyFrameRate(IAMVideoCompression* This,LONG *frame_rate) {
+    return This->lpVtbl->get_KeyFrameRate(This,frame_rate);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_put_PFramesPerKeyFrame(IAMVideoCompression* This,LONG frame) {
+    return This->lpVtbl->put_PFramesPerKeyFrame(This,frame);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_get_PFramesPerKeyFrame(IAMVideoCompression* This,LONG *frame) {
+    return This->lpVtbl->get_PFramesPerKeyFrame(This,frame);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_put_Quality(IAMVideoCompression* This,double quality) {
+    return This->lpVtbl->put_Quality(This,quality);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_get_Quality(IAMVideoCompression* This,double *quality) {
+    return This->lpVtbl->get_Quality(This,quality);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_put_WindowSize(IAMVideoCompression* This,DWORDLONG size) {
+    return This->lpVtbl->put_WindowSize(This,size);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_get_WindowSize(IAMVideoCompression* This,DWORDLONG *size) {
+    return This->lpVtbl->get_WindowSize(This,size);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_GetInfo(IAMVideoCompression* This,LPWSTR version,int *version_size,LPWSTR description,int *description_size,LONG *frame_rate,LONG *key,double *quality,LONG *capabilities) {
+    return This->lpVtbl->GetInfo(This,version,version_size,description,description_size,frame_rate,key,quality,capabilities);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_OverrideKeyFrame(IAMVideoCompression* This,LONG number) {
+    return This->lpVtbl->OverrideKeyFrame(This,number);
+}
+static FORCEINLINE HRESULT IAMVideoCompression_OverrideFrameSize(IAMVideoCompression* This,LONG number,LONG size) {
+    return This->lpVtbl->OverrideFrameSize(This,number,size);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMVideoCompression_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMCrossbar interface
+ */
+#ifndef __IAMCrossbar_INTERFACE_DEFINED__
+#define __IAMCrossbar_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c6e13380-30ac-11d0-a18c-00a0c9118956")
+IAMCrossbar : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE get_PinCounts(
+        LONG *output,
+        LONG *intput) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CanRoute(
+        LONG output,
+        LONG input) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Route(
+        LONG output,
+        LONG input) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsRoutedTo(
+        LONG output,
+        LONG *input) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CrossbarPinInfo(
+        WINBOOL is_input,
+        LONG index,
+        LONG *related,
+        LONG *type) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMCrossbar, 0xc6e13380, 0x30ac, 0x11d0, 0xa1,0x8c, 0x00,0xa0,0xc9,0x11,0x89,0x56)
+#endif
+#else
+typedef struct IAMCrossbarVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMCrossbar *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMCrossbar *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMCrossbar *This);
+
+    /*** IAMCrossbar methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_PinCounts)(
+        IAMCrossbar *This,
+        LONG *output,
+        LONG *intput);
+
+    HRESULT (STDMETHODCALLTYPE *CanRoute)(
+        IAMCrossbar *This,
+        LONG output,
+        LONG input);
+
+    HRESULT (STDMETHODCALLTYPE *Route)(
+        IAMCrossbar *This,
+        LONG output,
+        LONG input);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsRoutedTo)(
+        IAMCrossbar *This,
+        LONG output,
+        LONG *input);
+
+    HRESULT (STDMETHODCALLTYPE *get_CrossbarPinInfo)(
+        IAMCrossbar *This,
+        WINBOOL is_input,
+        LONG index,
+        LONG *related,
+        LONG *type);
+
+    END_INTERFACE
+} IAMCrossbarVtbl;
+
+interface IAMCrossbar {
+    CONST_VTBL IAMCrossbarVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMCrossbar methods ***/
+#define IAMCrossbar_get_PinCounts(This,output,intput) (This)->lpVtbl->get_PinCounts(This,output,intput)
+#define IAMCrossbar_CanRoute(This,output,input) (This)->lpVtbl->CanRoute(This,output,input)
+#define IAMCrossbar_Route(This,output,input) (This)->lpVtbl->Route(This,output,input)
+#define IAMCrossbar_get_IsRoutedTo(This,output,input) (This)->lpVtbl->get_IsRoutedTo(This,output,input)
+#define IAMCrossbar_get_CrossbarPinInfo(This,is_input,index,related,type) (This)->lpVtbl->get_CrossbarPinInfo(This,is_input,index,related,type)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMCrossbar_QueryInterface(IAMCrossbar* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMCrossbar_AddRef(IAMCrossbar* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMCrossbar_Release(IAMCrossbar* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMCrossbar methods ***/
+static FORCEINLINE HRESULT IAMCrossbar_get_PinCounts(IAMCrossbar* This,LONG *output,LONG *intput) {
+    return This->lpVtbl->get_PinCounts(This,output,intput);
+}
+static FORCEINLINE HRESULT IAMCrossbar_CanRoute(IAMCrossbar* This,LONG output,LONG input) {
+    return This->lpVtbl->CanRoute(This,output,input);
+}
+static FORCEINLINE HRESULT IAMCrossbar_Route(IAMCrossbar* This,LONG output,LONG input) {
+    return This->lpVtbl->Route(This,output,input);
+}
+static FORCEINLINE HRESULT IAMCrossbar_get_IsRoutedTo(IAMCrossbar* This,LONG output,LONG *input) {
+    return This->lpVtbl->get_IsRoutedTo(This,output,input);
+}
+static FORCEINLINE HRESULT IAMCrossbar_get_CrossbarPinInfo(IAMCrossbar* This,WINBOOL is_input,LONG index,LONG *related,LONG *type) {
+    return This->lpVtbl->get_CrossbarPinInfo(This,is_input,index,related,type);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMCrossbar_INTERFACE_DEFINED__ */
+
+typedef enum tagAMTunerEventType {
+    AMTUNER_EVENT_CHANGED = 0x1
+} AMTunerEventType;
+/*****************************************************************************
+ * IAMTunerNotification interface
+ */
+#ifndef __IAMTunerNotification_INTERFACE_DEFINED__
+#define __IAMTunerNotification_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("211a8760-03ac-11d1-8d13-00aa00bd8339")
+IAMTunerNotification : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE OnEvent(
+        AMTunerEventType event) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMTunerNotification, 0x211a8760, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
+#endif
+#else
+typedef struct IAMTunerNotificationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMTunerNotification *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMTunerNotification *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMTunerNotification *This);
+
+    /*** IAMTunerNotification methods ***/
+    HRESULT (STDMETHODCALLTYPE *OnEvent)(
+        IAMTunerNotification *This,
+        AMTunerEventType event);
+
+    END_INTERFACE
+} IAMTunerNotificationVtbl;
+
+interface IAMTunerNotification {
+    CONST_VTBL IAMTunerNotificationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMTunerNotification methods ***/
+#define IAMTunerNotification_OnEvent(This,event) (This)->lpVtbl->OnEvent(This,event)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMTunerNotification_QueryInterface(IAMTunerNotification* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMTunerNotification_AddRef(IAMTunerNotification* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMTunerNotification_Release(IAMTunerNotification* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMTunerNotification methods ***/
+static FORCEINLINE HRESULT IAMTunerNotification_OnEvent(IAMTunerNotification* This,AMTunerEventType event) {
+    return This->lpVtbl->OnEvent(This,event);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMTunerNotification_INTERFACE_DEFINED__ */
+
+typedef enum tagAMTunerModeType {
+    AMTUNER_MODE_DEFAULT = 0x0,
+    AMTUNER_MODE_TV = 0x1,
+    AMTUNER_MODE_FM_RADIO = 0x2,
+    AMTUNER_MODE_AM_RADIO = 0x4,
+    AMTUNER_MODE_DSS = 0x8
+} AMTunerModeType;
+/*****************************************************************************
+ * IAMTuner interface
+ */
+#ifndef __IAMTuner_INTERFACE_DEFINED__
+#define __IAMTuner_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("211a8761-03ac-11d1-8d13-00aa00bd8339")
+IAMTuner : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE put_Channel(
+        LONG channel,
+        LONG video,
+        LONG audio) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Channel(
+        LONG *channel,
+        LONG *video,
+        LONG *audio) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ChannelMinMax(
+        LONG *min,
+        LONG *max) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_CountryCode(
+        LONG country) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CountryCode(
+        LONG *country) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_TuningSpace(
+        LONG tuning_space) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_TuningSpace(
+        LONG *tuning_space) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Logon(
+        HANDLE user) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Logout(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SignalPresent(
+        LONG *signal_strength) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Mode(
+        AMTunerModeType mode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Mode(
+        AMTunerModeType *mode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetAvailableModes(
+        LONG *modes) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterNotificationCallBack(
+        IAMTunerNotification *notify,
+        LONG events) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE UnRegisterNotificationCallBack(
+        IAMTunerNotification *notify) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMTuner, 0x211a8761, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
+#endif
+#else
+typedef struct IAMTunerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMTuner *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMTuner *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMTuner *This);
+
+    /*** IAMTuner methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Channel)(
+        IAMTuner *This,
+        LONG channel,
+        LONG video,
+        LONG audio);
+
+    HRESULT (STDMETHODCALLTYPE *get_Channel)(
+        IAMTuner *This,
+        LONG *channel,
+        LONG *video,
+        LONG *audio);
+
+    HRESULT (STDMETHODCALLTYPE *ChannelMinMax)(
+        IAMTuner *This,
+        LONG *min,
+        LONG *max);
+
+    HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
+        IAMTuner *This,
+        LONG country);
+
+    HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
+        IAMTuner *This,
+        LONG *country);
+
+    HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
+        IAMTuner *This,
+        LONG tuning_space);
+
+    HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
+        IAMTuner *This,
+        LONG *tuning_space);
+
+    HRESULT (STDMETHODCALLTYPE *Logon)(
+        IAMTuner *This,
+        HANDLE user);
+
+    HRESULT (STDMETHODCALLTYPE *Logout)(
+        IAMTuner *This);
+
+    HRESULT (STDMETHODCALLTYPE *SignalPresent)(
+        IAMTuner *This,
+        LONG *signal_strength);
+
+    HRESULT (STDMETHODCALLTYPE *put_Mode)(
+        IAMTuner *This,
+        AMTunerModeType mode);
+
+    HRESULT (STDMETHODCALLTYPE *get_Mode)(
+        IAMTuner *This,
+        AMTunerModeType *mode);
+
+    HRESULT (STDMETHODCALLTYPE *GetAvailableModes)(
+        IAMTuner *This,
+        LONG *modes);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterNotificationCallBack)(
+        IAMTuner *This,
+        IAMTunerNotification *notify,
+        LONG events);
+
+    HRESULT (STDMETHODCALLTYPE *UnRegisterNotificationCallBack)(
+        IAMTuner *This,
+        IAMTunerNotification *notify);
+
+    END_INTERFACE
+} IAMTunerVtbl;
+
+interface IAMTuner {
+    CONST_VTBL IAMTunerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMTuner methods ***/
+#define IAMTuner_put_Channel(This,channel,video,audio) (This)->lpVtbl->put_Channel(This,channel,video,audio)
+#define IAMTuner_get_Channel(This,channel,video,audio) (This)->lpVtbl->get_Channel(This,channel,video,audio)
+#define IAMTuner_ChannelMinMax(This,min,max) (This)->lpVtbl->ChannelMinMax(This,min,max)
+#define IAMTuner_put_CountryCode(This,country) (This)->lpVtbl->put_CountryCode(This,country)
+#define IAMTuner_get_CountryCode(This,country) (This)->lpVtbl->get_CountryCode(This,country)
+#define IAMTuner_put_TuningSpace(This,tuning_space) (This)->lpVtbl->put_TuningSpace(This,tuning_space)
+#define IAMTuner_get_TuningSpace(This,tuning_space) (This)->lpVtbl->get_TuningSpace(This,tuning_space)
+#define IAMTuner_Logon(This,user) (This)->lpVtbl->Logon(This,user)
+#define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
+#define IAMTuner_SignalPresent(This,signal_strength) (This)->lpVtbl->SignalPresent(This,signal_strength)
+#define IAMTuner_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
+#define IAMTuner_get_Mode(This,mode) (This)->lpVtbl->get_Mode(This,mode)
+#define IAMTuner_GetAvailableModes(This,modes) (This)->lpVtbl->GetAvailableModes(This,modes)
+#define IAMTuner_RegisterNotificationCallBack(This,notify,events) (This)->lpVtbl->RegisterNotificationCallBack(This,notify,events)
+#define IAMTuner_UnRegisterNotificationCallBack(This,notify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,notify)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMTuner_QueryInterface(IAMTuner* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMTuner_AddRef(IAMTuner* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMTuner_Release(IAMTuner* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMTuner methods ***/
+static FORCEINLINE HRESULT IAMTuner_put_Channel(IAMTuner* This,LONG channel,LONG video,LONG audio) {
+    return This->lpVtbl->put_Channel(This,channel,video,audio);
+}
+static FORCEINLINE HRESULT IAMTuner_get_Channel(IAMTuner* This,LONG *channel,LONG *video,LONG *audio) {
+    return This->lpVtbl->get_Channel(This,channel,video,audio);
+}
+static FORCEINLINE HRESULT IAMTuner_ChannelMinMax(IAMTuner* This,LONG *min,LONG *max) {
+    return This->lpVtbl->ChannelMinMax(This,min,max);
+}
+static FORCEINLINE HRESULT IAMTuner_put_CountryCode(IAMTuner* This,LONG country) {
+    return This->lpVtbl->put_CountryCode(This,country);
+}
+static FORCEINLINE HRESULT IAMTuner_get_CountryCode(IAMTuner* This,LONG *country) {
+    return This->lpVtbl->get_CountryCode(This,country);
+}
+static FORCEINLINE HRESULT IAMTuner_put_TuningSpace(IAMTuner* This,LONG tuning_space) {
+    return This->lpVtbl->put_TuningSpace(This,tuning_space);
+}
+static FORCEINLINE HRESULT IAMTuner_get_TuningSpace(IAMTuner* This,LONG *tuning_space) {
+    return This->lpVtbl->get_TuningSpace(This,tuning_space);
+}
+static FORCEINLINE HRESULT IAMTuner_Logon(IAMTuner* This,HANDLE user) {
+    return This->lpVtbl->Logon(This,user);
+}
+static FORCEINLINE HRESULT IAMTuner_Logout(IAMTuner* This) {
+    return This->lpVtbl->Logout(This);
+}
+static FORCEINLINE HRESULT IAMTuner_SignalPresent(IAMTuner* This,LONG *signal_strength) {
+    return This->lpVtbl->SignalPresent(This,signal_strength);
+}
+static FORCEINLINE HRESULT IAMTuner_put_Mode(IAMTuner* This,AMTunerModeType mode) {
+    return This->lpVtbl->put_Mode(This,mode);
+}
+static FORCEINLINE HRESULT IAMTuner_get_Mode(IAMTuner* This,AMTunerModeType *mode) {
+    return This->lpVtbl->get_Mode(This,mode);
+}
+static FORCEINLINE HRESULT IAMTuner_GetAvailableModes(IAMTuner* This,LONG *modes) {
+    return This->lpVtbl->GetAvailableModes(This,modes);
+}
+static FORCEINLINE HRESULT IAMTuner_RegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify,LONG events) {
+    return This->lpVtbl->RegisterNotificationCallBack(This,notify,events);
+}
+static FORCEINLINE HRESULT IAMTuner_UnRegisterNotificationCallBack(IAMTuner* This,IAMTunerNotification *notify) {
+    return This->lpVtbl->UnRegisterNotificationCallBack(This,notify);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMTuner_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMTVTuner interface
+ */
+#ifndef __IAMTVTuner_INTERFACE_DEFINED__
+#define __IAMTVTuner_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("211a8766-03ac-11d1-8d13-00aa00bd8339")
+IAMTVTuner : public IAMTuner
+{
+    virtual HRESULT STDMETHODCALLTYPE get_AvailableTVFormats(
+        LONG *standard) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_TVFormat(
+        LONG *standard) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AutoTune(
+        LONG channel,
+        LONG *signal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE StoreAutoTune(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_NumInputConnections(
+        LONG *number) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_InputType(
+        LONG index,
+        TunerInputType type) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_InputType(
+        LONG index,
+        TunerInputType *type) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ConnectInput(
+        LONG index) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ConnectInput(
+        LONG *index) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_VideoFrequency(
+        LONG *freq) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_AudioFrequency(
+        LONG *freq) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMTVTuner, 0x211a8766, 0x03ac, 0x11d1, 0x8d,0x13, 0x00,0xaa,0x00,0xbd,0x83,0x39)
+#endif
+#else
+typedef struct IAMTVTunerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMTVTuner *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMTVTuner *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMTVTuner *This);
+
+    /*** IAMTuner methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Channel)(
+        IAMTVTuner *This,
+        LONG channel,
+        LONG video,
+        LONG audio);
+
+    HRESULT (STDMETHODCALLTYPE *get_Channel)(
+        IAMTVTuner *This,
+        LONG *channel,
+        LONG *video,
+        LONG *audio);
+
+    HRESULT (STDMETHODCALLTYPE *ChannelMinMax)(
+        IAMTVTuner *This,
+        LONG *min,
+        LONG *max);
+
+    HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
+        IAMTVTuner *This,
+        LONG country);
+
+    HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
+        IAMTVTuner *This,
+        LONG *country);
+
+    HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
+        IAMTVTuner *This,
+        LONG tuning_space);
+
+    HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
+        IAMTVTuner *This,
+        LONG *tuning_space);
+
+    HRESULT (STDMETHODCALLTYPE *Logon)(
+        IAMTVTuner *This,
+        HANDLE user);
+
+    HRESULT (STDMETHODCALLTYPE *Logout)(
+        IAMTVTuner *This);
+
+    HRESULT (STDMETHODCALLTYPE *SignalPresent)(
+        IAMTVTuner *This,
+        LONG *signal_strength);
+
+    HRESULT (STDMETHODCALLTYPE *put_Mode)(
+        IAMTVTuner *This,
+        AMTunerModeType mode);
+
+    HRESULT (STDMETHODCALLTYPE *get_Mode)(
+        IAMTVTuner *This,
+        AMTunerModeType *mode);
+
+    HRESULT (STDMETHODCALLTYPE *GetAvailableModes)(
+        IAMTVTuner *This,
+        LONG *modes);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterNotificationCallBack)(
+        IAMTVTuner *This,
+        IAMTunerNotification *notify,
+        LONG events);
+
+    HRESULT (STDMETHODCALLTYPE *UnRegisterNotificationCallBack)(
+        IAMTVTuner *This,
+        IAMTunerNotification *notify);
+
+    /*** IAMTVTuner methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_AvailableTVFormats)(
+        IAMTVTuner *This,
+        LONG *standard);
+
+    HRESULT (STDMETHODCALLTYPE *get_TVFormat)(
+        IAMTVTuner *This,
+        LONG *standard);
+
+    HRESULT (STDMETHODCALLTYPE *AutoTune)(
+        IAMTVTuner *This,
+        LONG channel,
+        LONG *signal);
+
+    HRESULT (STDMETHODCALLTYPE *StoreAutoTune)(
+        IAMTVTuner *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_NumInputConnections)(
+        IAMTVTuner *This,
+        LONG *number);
+
+    HRESULT (STDMETHODCALLTYPE *put_InputType)(
+        IAMTVTuner *This,
+        LONG index,
+        TunerInputType type);
+
+    HRESULT (STDMETHODCALLTYPE *get_InputType)(
+        IAMTVTuner *This,
+        LONG index,
+        TunerInputType *type);
+
+    HRESULT (STDMETHODCALLTYPE *put_ConnectInput)(
+        IAMTVTuner *This,
+        LONG index);
+
+    HRESULT (STDMETHODCALLTYPE *get_ConnectInput)(
+        IAMTVTuner *This,
+        LONG *index);
+
+    HRESULT (STDMETHODCALLTYPE *get_VideoFrequency)(
+        IAMTVTuner *This,
+        LONG *freq);
+
+    HRESULT (STDMETHODCALLTYPE *get_AudioFrequency)(
+        IAMTVTuner *This,
+        LONG *freq);
+
+    END_INTERFACE
+} IAMTVTunerVtbl;
+
+interface IAMTVTuner {
+    CONST_VTBL IAMTVTunerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMTuner methods ***/
+#define IAMTVTuner_put_Channel(This,channel,video,audio) (This)->lpVtbl->put_Channel(This,channel,video,audio)
+#define IAMTVTuner_get_Channel(This,channel,video,audio) (This)->lpVtbl->get_Channel(This,channel,video,audio)
+#define IAMTVTuner_ChannelMinMax(This,min,max) (This)->lpVtbl->ChannelMinMax(This,min,max)
+#define IAMTVTuner_put_CountryCode(This,country) (This)->lpVtbl->put_CountryCode(This,country)
+#define IAMTVTuner_get_CountryCode(This,country) (This)->lpVtbl->get_CountryCode(This,country)
+#define IAMTVTuner_put_TuningSpace(This,tuning_space) (This)->lpVtbl->put_TuningSpace(This,tuning_space)
+#define IAMTVTuner_get_TuningSpace(This,tuning_space) (This)->lpVtbl->get_TuningSpace(This,tuning_space)
+#define IAMTVTuner_Logon(This,user) (This)->lpVtbl->Logon(This,user)
+#define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
+#define IAMTVTuner_SignalPresent(This,signal_strength) (This)->lpVtbl->SignalPresent(This,signal_strength)
+#define IAMTVTuner_put_Mode(This,mode) (This)->lpVtbl->put_Mode(This,mode)
+#define IAMTVTuner_get_Mode(This,mode) (This)->lpVtbl->get_Mode(This,mode)
+#define IAMTVTuner_GetAvailableModes(This,modes) (This)->lpVtbl->GetAvailableModes(This,modes)
+#define IAMTVTuner_RegisterNotificationCallBack(This,notify,events) (This)->lpVtbl->RegisterNotificationCallBack(This,notify,events)
+#define IAMTVTuner_UnRegisterNotificationCallBack(This,notify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,notify)
+/*** IAMTVTuner methods ***/
+#define IAMTVTuner_get_AvailableTVFormats(This,standard) (This)->lpVtbl->get_AvailableTVFormats(This,standard)
+#define IAMTVTuner_get_TVFormat(This,standard) (This)->lpVtbl->get_TVFormat(This,standard)
+#define IAMTVTuner_AutoTune(This,channel,signal) (This)->lpVtbl->AutoTune(This,channel,signal)
+#define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
+#define IAMTVTuner_get_NumInputConnections(This,number) (This)->lpVtbl->get_NumInputConnections(This,number)
+#define IAMTVTuner_put_InputType(This,index,type) (This)->lpVtbl->put_InputType(This,index,type)
+#define IAMTVTuner_get_InputType(This,index,type) (This)->lpVtbl->get_InputType(This,index,type)
+#define IAMTVTuner_put_ConnectInput(This,index) (This)->lpVtbl->put_ConnectInput(This,index)
+#define IAMTVTuner_get_ConnectInput(This,index) (This)->lpVtbl->get_ConnectInput(This,index)
+#define IAMTVTuner_get_VideoFrequency(This,freq) (This)->lpVtbl->get_VideoFrequency(This,freq)
+#define IAMTVTuner_get_AudioFrequency(This,freq) (This)->lpVtbl->get_AudioFrequency(This,freq)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMTVTuner_QueryInterface(IAMTVTuner* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMTVTuner_AddRef(IAMTVTuner* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMTVTuner_Release(IAMTVTuner* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMTuner methods ***/
+static FORCEINLINE HRESULT IAMTVTuner_put_Channel(IAMTVTuner* This,LONG channel,LONG video,LONG audio) {
+    return This->lpVtbl->put_Channel(This,channel,video,audio);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_Channel(IAMTVTuner* This,LONG *channel,LONG *video,LONG *audio) {
+    return This->lpVtbl->get_Channel(This,channel,video,audio);
+}
+static FORCEINLINE HRESULT IAMTVTuner_ChannelMinMax(IAMTVTuner* This,LONG *min,LONG *max) {
+    return This->lpVtbl->ChannelMinMax(This,min,max);
+}
+static FORCEINLINE HRESULT IAMTVTuner_put_CountryCode(IAMTVTuner* This,LONG country) {
+    return This->lpVtbl->put_CountryCode(This,country);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_CountryCode(IAMTVTuner* This,LONG *country) {
+    return This->lpVtbl->get_CountryCode(This,country);
+}
+static FORCEINLINE HRESULT IAMTVTuner_put_TuningSpace(IAMTVTuner* This,LONG tuning_space) {
+    return This->lpVtbl->put_TuningSpace(This,tuning_space);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_TuningSpace(IAMTVTuner* This,LONG *tuning_space) {
+    return This->lpVtbl->get_TuningSpace(This,tuning_space);
+}
+static FORCEINLINE HRESULT IAMTVTuner_Logon(IAMTVTuner* This,HANDLE user) {
+    return This->lpVtbl->Logon(This,user);
+}
+static FORCEINLINE HRESULT IAMTVTuner_Logout(IAMTVTuner* This) {
+    return This->lpVtbl->Logout(This);
+}
+static FORCEINLINE HRESULT IAMTVTuner_SignalPresent(IAMTVTuner* This,LONG *signal_strength) {
+    return This->lpVtbl->SignalPresent(This,signal_strength);
+}
+static FORCEINLINE HRESULT IAMTVTuner_put_Mode(IAMTVTuner* This,AMTunerModeType mode) {
+    return This->lpVtbl->put_Mode(This,mode);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_Mode(IAMTVTuner* This,AMTunerModeType *mode) {
+    return This->lpVtbl->get_Mode(This,mode);
+}
+static FORCEINLINE HRESULT IAMTVTuner_GetAvailableModes(IAMTVTuner* This,LONG *modes) {
+    return This->lpVtbl->GetAvailableModes(This,modes);
+}
+static FORCEINLINE HRESULT IAMTVTuner_RegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify,LONG events) {
+    return This->lpVtbl->RegisterNotificationCallBack(This,notify,events);
+}
+static FORCEINLINE HRESULT IAMTVTuner_UnRegisterNotificationCallBack(IAMTVTuner* This,IAMTunerNotification *notify) {
+    return This->lpVtbl->UnRegisterNotificationCallBack(This,notify);
+}
+/*** IAMTVTuner methods ***/
+static FORCEINLINE HRESULT IAMTVTuner_get_AvailableTVFormats(IAMTVTuner* This,LONG *standard) {
+    return This->lpVtbl->get_AvailableTVFormats(This,standard);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_TVFormat(IAMTVTuner* This,LONG *standard) {
+    return This->lpVtbl->get_TVFormat(This,standard);
+}
+static FORCEINLINE HRESULT IAMTVTuner_AutoTune(IAMTVTuner* This,LONG channel,LONG *signal) {
+    return This->lpVtbl->AutoTune(This,channel,signal);
+}
+static FORCEINLINE HRESULT IAMTVTuner_StoreAutoTune(IAMTVTuner* This) {
+    return This->lpVtbl->StoreAutoTune(This);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_NumInputConnections(IAMTVTuner* This,LONG *number) {
+    return This->lpVtbl->get_NumInputConnections(This,number);
+}
+static FORCEINLINE HRESULT IAMTVTuner_put_InputType(IAMTVTuner* This,LONG index,TunerInputType type) {
+    return This->lpVtbl->put_InputType(This,index,type);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_InputType(IAMTVTuner* This,LONG index,TunerInputType *type) {
+    return This->lpVtbl->get_InputType(This,index,type);
+}
+static FORCEINLINE HRESULT IAMTVTuner_put_ConnectInput(IAMTVTuner* This,LONG index) {
+    return This->lpVtbl->put_ConnectInput(This,index);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_ConnectInput(IAMTVTuner* This,LONG *index) {
+    return This->lpVtbl->get_ConnectInput(This,index);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_VideoFrequency(IAMTVTuner* This,LONG *freq) {
+    return This->lpVtbl->get_VideoFrequency(This,freq);
+}
+static FORCEINLINE HRESULT IAMTVTuner_get_AudioFrequency(IAMTVTuner* This,LONG *freq) {
+    return This->lpVtbl->get_AudioFrequency(This,freq);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMTVTuner_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVideoFrameStep interface
+ */
+#ifndef __IVideoFrameStep_INTERFACE_DEFINED__
+#define __IVideoFrameStep_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e46a9787-2b71-444d-a4b5-1fab7b708d6a")
+IVideoFrameStep : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Step(
+        DWORD frame_count,
+        IUnknown *filter) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CanStep(
+        LONG multiple,
+        IUnknown *filter) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CancelStep(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IVideoFrameStep, 0xe46a9787, 0x2b71, 0x444d, 0xa4,0xb5, 0x1f,0xab,0x7b,0x70,0x8d,0x6a)
+#endif
+#else
+typedef struct IVideoFrameStepVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IVideoFrameStep *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IVideoFrameStep *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IVideoFrameStep *This);
+
+    /*** IVideoFrameStep methods ***/
+    HRESULT (STDMETHODCALLTYPE *Step)(
+        IVideoFrameStep *This,
+        DWORD frame_count,
+        IUnknown *filter);
+
+    HRESULT (STDMETHODCALLTYPE *CanStep)(
+        IVideoFrameStep *This,
+        LONG multiple,
+        IUnknown *filter);
+
+    HRESULT (STDMETHODCALLTYPE *CancelStep)(
+        IVideoFrameStep *This);
+
+    END_INTERFACE
+} IVideoFrameStepVtbl;
+
+interface IVideoFrameStep {
+    CONST_VTBL IVideoFrameStepVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
+/*** IVideoFrameStep methods ***/
+#define IVideoFrameStep_Step(This,frame_count,filter) (This)->lpVtbl->Step(This,frame_count,filter)
+#define IVideoFrameStep_CanStep(This,multiple,filter) (This)->lpVtbl->CanStep(This,multiple,filter)
+#define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IVideoFrameStep_QueryInterface(IVideoFrameStep* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IVideoFrameStep_AddRef(IVideoFrameStep* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IVideoFrameStep_Release(IVideoFrameStep* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IVideoFrameStep methods ***/
+static FORCEINLINE HRESULT IVideoFrameStep_Step(IVideoFrameStep* This,DWORD frame_count,IUnknown *filter) {
+    return This->lpVtbl->Step(This,frame_count,filter);
+}
+static FORCEINLINE HRESULT IVideoFrameStep_CanStep(IVideoFrameStep* This,LONG multiple,IUnknown *filter) {
+    return This->lpVtbl->CanStep(This,multiple,filter);
+}
+static FORCEINLINE HRESULT IVideoFrameStep_CancelStep(IVideoFrameStep* This) {
+    return This->lpVtbl->CancelStep(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IVideoFrameStep_INTERFACE_DEFINED__ */
+
+#if (_WIN32_WINNT >= 0x0601)
+/*****************************************************************************
+ * IAMAsyncReaderTimestampScaling interface
+ */
+#ifndef __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
+#define __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cf7b26fc-9a00-485b-8147-3e789d5e8f67")
+IAMAsyncReaderTimestampScaling : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetTimestampMode(
+        WINBOOL *pfRaw) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetTimestampMode(
+        WINBOOL fRaw) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMAsyncReaderTimestampScaling, 0xcf7b26fc, 0x9a00, 0x485b, 0x81,0x47, 0x3e,0x78,0x9d,0x5e,0x8f,0x67)
+#endif
+#else
+typedef struct IAMAsyncReaderTimestampScalingVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMAsyncReaderTimestampScaling *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMAsyncReaderTimestampScaling *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMAsyncReaderTimestampScaling *This);
+
+    /*** IAMAsyncReaderTimestampScaling methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTimestampMode)(
+        IAMAsyncReaderTimestampScaling *This,
+        WINBOOL *pfRaw);
+
+    HRESULT (STDMETHODCALLTYPE *SetTimestampMode)(
+        IAMAsyncReaderTimestampScaling *This,
+        WINBOOL fRaw);
+
+    END_INTERFACE
+} IAMAsyncReaderTimestampScalingVtbl;
+
+interface IAMAsyncReaderTimestampScaling {
+    CONST_VTBL IAMAsyncReaderTimestampScalingVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMAsyncReaderTimestampScaling_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMAsyncReaderTimestampScaling_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMAsyncReaderTimestampScaling_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMAsyncReaderTimestampScaling methods ***/
+#define IAMAsyncReaderTimestampScaling_GetTimestampMode(This,pfRaw) (This)->lpVtbl->GetTimestampMode(This,pfRaw)
+#define IAMAsyncReaderTimestampScaling_SetTimestampMode(This,fRaw) (This)->lpVtbl->SetTimestampMode(This,fRaw)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_QueryInterface(IAMAsyncReaderTimestampScaling* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMAsyncReaderTimestampScaling_AddRef(IAMAsyncReaderTimestampScaling* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMAsyncReaderTimestampScaling_Release(IAMAsyncReaderTimestampScaling* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMAsyncReaderTimestampScaling methods ***/
+static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_GetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL *pfRaw) {
+    return This->lpVtbl->GetTimestampMode(This,pfRaw);
+}
+static FORCEINLINE HRESULT IAMAsyncReaderTimestampScaling_SetTimestampMode(IAMAsyncReaderTimestampScaling* This,WINBOOL fRaw) {
+    return This->lpVtbl->SetTimestampMode(This,fRaw);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAMAsyncReaderTimestampScaling_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAMPluginControl interface
+ */
+#ifndef __IAMPluginControl_INTERFACE_DEFINED__
+#define __IAMPluginControl_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0e26a181-f40c-4635-8786-976284b52981")
+IAMPluginControl : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetPreferredClsid(
+        REFGUID subType,
+        CLSID *clsid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPreferredClsidByIndex(
+        DWORD index,
+        GUID *subType,
+        CLSID *clsid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetPreferredClsid(
+        REFGUID subType,
+        const CLSID *clsid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsDisabled(
+        REFCLSID clsid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDisabledByIndex(
+        DWORD index,
+        CLSID *clsid) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetDisabled(
+        REFCLSID clsid,
+        WINBOOL disabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsLegacyDisabled(
+        LPCWSTR dllName) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAMPluginControl, 0x0e26a181, 0xf40c, 0x4635, 0x87,0x86, 0x97,0x62,0x84,0xb5,0x29,0x81)
+#endif
+#else
+typedef struct IAMPluginControlVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAMPluginControl *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAMPluginControl *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAMPluginControl *This);
+
+    /*** IAMPluginControl methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetPreferredClsid)(
+        IAMPluginControl *This,
+        REFGUID subType,
+        CLSID *clsid);
+
+    HRESULT (STDMETHODCALLTYPE *GetPreferredClsidByIndex)(
+        IAMPluginControl *This,
+        DWORD index,
+        GUID *subType,
+        CLSID *clsid);
+
+    HRESULT (STDMETHODCALLTYPE *SetPreferredClsid)(
+        IAMPluginControl *This,
+        REFGUID subType,
+        const CLSID *clsid);
+
+    HRESULT (STDMETHODCALLTYPE *IsDisabled)(
+        IAMPluginControl *This,
+        REFCLSID clsid);
+
+    HRESULT (STDMETHODCALLTYPE *GetDisabledByIndex)(
+        IAMPluginControl *This,
+        DWORD index,
+        CLSID *clsid);
+
+    HRESULT (STDMETHODCALLTYPE *SetDisabled)(
+        IAMPluginControl *This,
+        REFCLSID clsid,
+        WINBOOL disabled);
+
+    HRESULT (STDMETHODCALLTYPE *IsLegacyDisabled)(
+        IAMPluginControl *This,
+        LPCWSTR dllName);
+
+    END_INTERFACE
+} IAMPluginControlVtbl;
+
+interface IAMPluginControl {
+    CONST_VTBL IAMPluginControlVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAMPluginControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAMPluginControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAMPluginControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IAMPluginControl methods ***/
+#define IAMPluginControl_GetPreferredClsid(This,subType,clsid) (This)->lpVtbl->GetPreferredClsid(This,subType,clsid)
+#define IAMPluginControl_GetPreferredClsidByIndex(This,index,subType,clsid) (This)->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid)
+#define IAMPluginControl_SetPreferredClsid(This,subType,clsid) (This)->lpVtbl->SetPreferredClsid(This,subType,clsid)
+#define IAMPluginControl_IsDisabled(This,clsid) (This)->lpVtbl->IsDisabled(This,clsid)
+#define IAMPluginControl_GetDisabledByIndex(This,index,clsid) (This)->lpVtbl->GetDisabledByIndex(This,index,clsid)
+#define IAMPluginControl_SetDisabled(This,clsid,disabled) (This)->lpVtbl->SetDisabled(This,clsid,disabled)
+#define IAMPluginControl_IsLegacyDisabled(This,dllName) (This)->lpVtbl->IsLegacyDisabled(This,dllName)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAMPluginControl_QueryInterface(IAMPluginControl* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAMPluginControl_AddRef(IAMPluginControl* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAMPluginControl_Release(IAMPluginControl* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAMPluginControl methods ***/
+static FORCEINLINE HRESULT IAMPluginControl_GetPreferredClsid(IAMPluginControl* This,REFGUID subType,CLSID *clsid) {
+    return This->lpVtbl->GetPreferredClsid(This,subType,clsid);
+}
+static FORCEINLINE HRESULT IAMPluginControl_GetPreferredClsidByIndex(IAMPluginControl* This,DWORD index,GUID *subType,CLSID *clsid) {
+    return This->lpVtbl->GetPreferredClsidByIndex(This,index,subType,clsid);
+}
+static FORCEINLINE HRESULT IAMPluginControl_SetPreferredClsid(IAMPluginControl* This,REFGUID subType,const CLSID *clsid) {
+    return This->lpVtbl->SetPreferredClsid(This,subType,clsid);
+}
+static FORCEINLINE HRESULT IAMPluginControl_IsDisabled(IAMPluginControl* This,REFCLSID clsid) {
+    return This->lpVtbl->IsDisabled(This,clsid);
+}
+static FORCEINLINE HRESULT IAMPluginControl_GetDisabledByIndex(IAMPluginControl* This,DWORD index,CLSID *clsid) {
+    return This->lpVtbl->GetDisabledByIndex(This,index,clsid);
+}
+static FORCEINLINE HRESULT IAMPluginControl_SetDisabled(IAMPluginControl* This,REFCLSID clsid,WINBOOL disabled) {
+    return This->lpVtbl->SetDisabled(This,clsid,disabled);
+}
+static FORCEINLINE HRESULT IAMPluginControl_IsLegacyDisabled(IAMPluginControl* This,LPCWSTR dllName) {
+    return This->lpVtbl->IsLegacyDisabled(This,dllName);
 }
 #endif
 #endif
@@ -9158,66 +11040,21 @@ typedef struct IReferenceClock2 IReferenceClock2;
 typedef struct IDistributorNotify IDistributorNotify;
 #endif
 
-#ifndef __IAMVideoCompression_FWD_DEFINED__
-#define __IAMVideoCompression_FWD_DEFINED__
-typedef struct IAMVideoCompression IAMVideoCompression;
-#endif
-
 #ifndef __IAMVfwCompressDialogs_FWD_DEFINED__
 #define __IAMVfwCompressDialogs_FWD_DEFINED__
 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
 #endif
 
-#ifndef __IAMDroppedFrames_FWD_DEFINED__
-#define __IAMDroppedFrames_FWD_DEFINED__
-typedef struct IAMDroppedFrames IAMDroppedFrames;
-#endif
-
 #ifndef __IAMAudioInputMixer_FWD_DEFINED__
 #define __IAMAudioInputMixer_FWD_DEFINED__
 typedef struct IAMAudioInputMixer IAMAudioInputMixer;
 #endif
 
-#ifndef __IAMBufferNegotiation_FWD_DEFINED__
-#define __IAMBufferNegotiation_FWD_DEFINED__
-typedef struct IAMBufferNegotiation IAMBufferNegotiation;
-#endif
-
 #ifndef __IAMAnalogVideoDecoder_FWD_DEFINED__
 #define __IAMAnalogVideoDecoder_FWD_DEFINED__
 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
 #endif
 
-#ifndef __IAMCameraControl_FWD_DEFINED__
-#define __IAMCameraControl_FWD_DEFINED__
-typedef struct IAMCameraControl IAMCameraControl;
-#endif
-
-#ifndef __IAMVideoControl_FWD_DEFINED__
-#define __IAMVideoControl_FWD_DEFINED__
-typedef struct IAMVideoControl IAMVideoControl;
-#endif
-
-#ifndef __IAMCrossbar_FWD_DEFINED__
-#define __IAMCrossbar_FWD_DEFINED__
-typedef struct IAMCrossbar IAMCrossbar;
-#endif
-
-#ifndef __IAMTuner_FWD_DEFINED__
-#define __IAMTuner_FWD_DEFINED__
-typedef struct IAMTuner IAMTuner;
-#endif
-
-#ifndef __IAMTunerNotification_FWD_DEFINED__
-#define __IAMTunerNotification_FWD_DEFINED__
-typedef struct IAMTunerNotification IAMTunerNotification;
-#endif
-
-#ifndef __IAMTVTuner_FWD_DEFINED__
-#define __IAMTVTuner_FWD_DEFINED__
-typedef struct IAMTVTuner IAMTVTuner;
-#endif
-
 #ifndef __IBPCSatelliteTuner_FWD_DEFINED__
 #define __IBPCSatelliteTuner_FWD_DEFINED__
 typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
@@ -9308,21 +11145,6 @@ typedef struct IDecimateVideoImage IDecimateVideoImage;
 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
 #endif
 
-#ifndef __IVideoFrameStep_FWD_DEFINED__
-#define __IVideoFrameStep_FWD_DEFINED__
-typedef struct IVideoFrameStep IVideoFrameStep;
-#endif
-
-#ifndef __IAMLatency_FWD_DEFINED__
-#define __IAMLatency_FWD_DEFINED__
-typedef struct IAMLatency IAMLatency;
-#endif
-
-#ifndef __IAMPushSource_FWD_DEFINED__
-#define __IAMPushSource_FWD_DEFINED__
-typedef struct IAMPushSource IAMPushSource;
-#endif
-
 #ifndef __IAMDeviceRemoval_FWD_DEFINED__
 #define __IAMDeviceRemoval_FWD_DEFINED__
 typedef struct IAMDeviceRemoval IAMDeviceRemoval;
@@ -9670,86 +11492,6 @@ typedef struct IAMPluginControl IAMPluginControl;
 
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_c_ifspec;
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0167_v0_0_s_ifspec;
-#ifndef __IAMVideoCompression_INTERFACE_DEFINED__
-#define __IAMVideoCompression_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMVideoCompression;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMVideoCompression : public IUnknown {
-  public:
-    virtual HRESULT WINAPI put_KeyFrameRate(LONG KeyFrameRate) = 0;
-    virtual HRESULT WINAPI get_KeyFrameRate(LONG *pKeyFrameRate) = 0;
-    virtual HRESULT WINAPI put_PFramesPerKeyFrame(LONG PFramesPerKeyFrame) = 0;
-    virtual HRESULT WINAPI get_PFramesPerKeyFrame(LONG *pPFramesPerKeyFrame) = 0;
-    virtual HRESULT WINAPI put_Quality(double Quality) = 0;
-    virtual HRESULT WINAPI get_Quality(double *pQuality) = 0;
-    virtual HRESULT WINAPI put_WindowSize(DWORDLONG WindowSize) = 0;
-    virtual HRESULT WINAPI get_WindowSize(DWORDLONG *pWindowSize) = 0;
-    virtual HRESULT WINAPI GetInfo(WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities) = 0;
-    virtual HRESULT WINAPI OverrideKeyFrame(LONG FrameNumber) = 0;
-    virtual HRESULT WINAPI OverrideFrameSize(LONG FrameNumber,LONG Size) = 0;
-  };
-#else
-  typedef struct IAMVideoCompressionVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMVideoCompression *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMVideoCompression *This);
-      ULONG (WINAPI *Release)(IAMVideoCompression *This);
-      HRESULT (WINAPI *put_KeyFrameRate)(IAMVideoCompression *This,LONG KeyFrameRate);
-      HRESULT (WINAPI *get_KeyFrameRate)(IAMVideoCompression *This,LONG *pKeyFrameRate);
-      HRESULT (WINAPI *put_PFramesPerKeyFrame)(IAMVideoCompression *This,LONG PFramesPerKeyFrame);
-      HRESULT (WINAPI *get_PFramesPerKeyFrame)(IAMVideoCompression *This,LONG *pPFramesPerKeyFrame);
-      HRESULT (WINAPI *put_Quality)(IAMVideoCompression *This,double Quality);
-      HRESULT (WINAPI *get_Quality)(IAMVideoCompression *This,double *pQuality);
-      HRESULT (WINAPI *put_WindowSize)(IAMVideoCompression *This,DWORDLONG WindowSize);
-      HRESULT (WINAPI *get_WindowSize)(IAMVideoCompression *This,DWORDLONG *pWindowSize);
-      HRESULT (WINAPI *GetInfo)(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities);
-      HRESULT (WINAPI *OverrideKeyFrame)(IAMVideoCompression *This,LONG FrameNumber);
-      HRESULT (WINAPI *OverrideFrameSize)(IAMVideoCompression *This,LONG FrameNumber,LONG Size);
-    END_INTERFACE
-  } IAMVideoCompressionVtbl;
-  struct IAMVideoCompression {
-    CONST_VTBL struct IAMVideoCompressionVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMVideoCompression_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMVideoCompression_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMVideoCompression_Release(This) (This)->lpVtbl->Release(This)
-#define IAMVideoCompression_put_KeyFrameRate(This,KeyFrameRate) (This)->lpVtbl->put_KeyFrameRate(This,KeyFrameRate)
-#define IAMVideoCompression_get_KeyFrameRate(This,pKeyFrameRate) (This)->lpVtbl->get_KeyFrameRate(This,pKeyFrameRate)
-#define IAMVideoCompression_put_PFramesPerKeyFrame(This,PFramesPerKeyFrame) (This)->lpVtbl->put_PFramesPerKeyFrame(This,PFramesPerKeyFrame)
-#define IAMVideoCompression_get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame) (This)->lpVtbl->get_PFramesPerKeyFrame(This,pPFramesPerKeyFrame)
-#define IAMVideoCompression_put_Quality(This,Quality) (This)->lpVtbl->put_Quality(This,Quality)
-#define IAMVideoCompression_get_Quality(This,pQuality) (This)->lpVtbl->get_Quality(This,pQuality)
-#define IAMVideoCompression_put_WindowSize(This,WindowSize) (This)->lpVtbl->put_WindowSize(This,WindowSize)
-#define IAMVideoCompression_get_WindowSize(This,pWindowSize) (This)->lpVtbl->get_WindowSize(This,pWindowSize)
-#define IAMVideoCompression_GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities) (This)->lpVtbl->GetInfo(This,pszVersion,pcbVersion,pszDescription,pcbDescription,pDefaultKeyFrameRate,pDefaultPFramesPerKey,pDefaultQuality,pCapabilities)
-#define IAMVideoCompression_OverrideKeyFrame(This,FrameNumber) (This)->lpVtbl->OverrideKeyFrame(This,FrameNumber)
-#define IAMVideoCompression_OverrideFrameSize(This,FrameNumber,Size) (This)->lpVtbl->OverrideFrameSize(This,FrameNumber,Size)
-#endif
-#endif
-  HRESULT WINAPI IAMVideoCompression_put_KeyFrameRate_Proxy(IAMVideoCompression *This,LONG KeyFrameRate);
-  void __RPC_STUB IAMVideoCompression_put_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_KeyFrameRate_Proxy(IAMVideoCompression *This,LONG *pKeyFrameRate);
-  void __RPC_STUB IAMVideoCompression_get_KeyFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_put_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,LONG PFramesPerKeyFrame);
-  void __RPC_STUB IAMVideoCompression_put_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_PFramesPerKeyFrame_Proxy(IAMVideoCompression *This,LONG *pPFramesPerKeyFrame);
-  void __RPC_STUB IAMVideoCompression_get_PFramesPerKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_put_Quality_Proxy(IAMVideoCompression *This,double Quality);
-  void __RPC_STUB IAMVideoCompression_put_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_Quality_Proxy(IAMVideoCompression *This,double *pQuality);
-  void __RPC_STUB IAMVideoCompression_get_Quality_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_put_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG WindowSize);
-  void __RPC_STUB IAMVideoCompression_put_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_get_WindowSize_Proxy(IAMVideoCompression *This,DWORDLONG *pWindowSize);
-  void __RPC_STUB IAMVideoCompression_get_WindowSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_GetInfo_Proxy(IAMVideoCompression *This,WCHAR *pszVersion,int *pcbVersion,LPWSTR pszDescription,int *pcbDescription,LONG *pDefaultKeyFrameRate,LONG *pDefaultPFramesPerKey,double *pDefaultQuality,LONG *pCapabilities);
-  void __RPC_STUB IAMVideoCompression_GetInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_OverrideKeyFrame_Proxy(IAMVideoCompression *This,LONG FrameNumber);
-  void __RPC_STUB IAMVideoCompression_OverrideKeyFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoCompression_OverrideFrameSize_Proxy(IAMVideoCompression *This,LONG FrameNumber,LONG Size);
-  void __RPC_STUB IAMVideoCompression_OverrideFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
   typedef enum __MIDL___MIDL_itf_strmif_0168_0001 {
     VfwCaptureDialog_Source = 0x1,VfwCaptureDialog_Format = 0x2,VfwCaptureDialog_Display = 0x4
@@ -9805,52 +11547,6 @@ typedef struct IAMPluginControl IAMPluginControl;
   void __RPC_STUB IAMVfwCompressDialogs_SendDriverMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 #endif
 
-#ifndef __IAMDroppedFrames_INTERFACE_DEFINED__
-#define __IAMDroppedFrames_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMDroppedFrames;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMDroppedFrames : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetNumDropped(LONG *plDropped) = 0;
-    virtual HRESULT WINAPI GetNumNotDropped(LONG *plNotDropped) = 0;
-    virtual HRESULT WINAPI GetDroppedInfo(LONG lSize,LONG *plArray,LONG *plNumCopied) = 0;
-    virtual HRESULT WINAPI GetAverageFrameSize(LONG *plAverageSize) = 0;
-  };
-#else
-  typedef struct IAMDroppedFramesVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMDroppedFrames *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMDroppedFrames *This);
-      ULONG (WINAPI *Release)(IAMDroppedFrames *This);
-      HRESULT (WINAPI *GetNumDropped)(IAMDroppedFrames *This,LONG *plDropped);
-      HRESULT (WINAPI *GetNumNotDropped)(IAMDroppedFrames *This,LONG *plNotDropped);
-      HRESULT (WINAPI *GetDroppedInfo)(IAMDroppedFrames *This,LONG lSize,LONG *plArray,LONG *plNumCopied);
-      HRESULT (WINAPI *GetAverageFrameSize)(IAMDroppedFrames *This,LONG *plAverageSize);
-    END_INTERFACE
-  } IAMDroppedFramesVtbl;
-  struct IAMDroppedFrames {
-    CONST_VTBL struct IAMDroppedFramesVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMDroppedFrames_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMDroppedFrames_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMDroppedFrames_Release(This) (This)->lpVtbl->Release(This)
-#define IAMDroppedFrames_GetNumDropped(This,plDropped) (This)->lpVtbl->GetNumDropped(This,plDropped)
-#define IAMDroppedFrames_GetNumNotDropped(This,plNotDropped) (This)->lpVtbl->GetNumNotDropped(This,plNotDropped)
-#define IAMDroppedFrames_GetDroppedInfo(This,lSize,plArray,plNumCopied) (This)->lpVtbl->GetDroppedInfo(This,lSize,plArray,plNumCopied)
-#define IAMDroppedFrames_GetAverageFrameSize(This,plAverageSize) (This)->lpVtbl->GetAverageFrameSize(This,plAverageSize)
-#endif
-#endif
-  HRESULT WINAPI IAMDroppedFrames_GetNumDropped_Proxy(IAMDroppedFrames *This,LONG *plDropped);
-  void __RPC_STUB IAMDroppedFrames_GetNumDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDroppedFrames_GetNumNotDropped_Proxy(IAMDroppedFrames *This,LONG *plNotDropped);
-  void __RPC_STUB IAMDroppedFrames_GetNumNotDropped_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDroppedFrames_GetDroppedInfo_Proxy(IAMDroppedFrames *This,LONG lSize,LONG *plArray,LONG *plNumCopied);
-  void __RPC_STUB IAMDroppedFrames_GetDroppedInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMDroppedFrames_GetAverageFrameSize_Proxy(IAMDroppedFrames *This,LONG *plAverageSize);
-  void __RPC_STUB IAMDroppedFrames_GetAverageFrameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
 #define AMF_AUTOMATICGAIN -1.0
 
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0171_v0_0_c_ifspec;
@@ -9961,42 +11657,6 @@ typedef struct IAMPluginControl IAMPluginControl;
   void __RPC_STUB IAMAudioInputMixer_get_BassRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 #endif
 
-#ifndef __IAMBufferNegotiation_INTERFACE_DEFINED__
-#define __IAMBufferNegotiation_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMBufferNegotiation;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMBufferNegotiation : public IUnknown {
-  public:
-    virtual HRESULT WINAPI SuggestAllocatorProperties(const ALLOCATOR_PROPERTIES *pprop) = 0;
-    virtual HRESULT WINAPI GetAllocatorProperties(ALLOCATOR_PROPERTIES *pprop) = 0;
-  };
-#else
-  typedef struct IAMBufferNegotiationVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMBufferNegotiation *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMBufferNegotiation *This);
-      ULONG (WINAPI *Release)(IAMBufferNegotiation *This);
-      HRESULT (WINAPI *SuggestAllocatorProperties)(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
-      HRESULT (WINAPI *GetAllocatorProperties)(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
-    END_INTERFACE
-  } IAMBufferNegotiationVtbl;
-  struct IAMBufferNegotiation {
-    CONST_VTBL struct IAMBufferNegotiationVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMBufferNegotiation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMBufferNegotiation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMBufferNegotiation_Release(This) (This)->lpVtbl->Release(This)
-#define IAMBufferNegotiation_SuggestAllocatorProperties(This,pprop) (This)->lpVtbl->SuggestAllocatorProperties(This,pprop)
-#define IAMBufferNegotiation_GetAllocatorProperties(This,pprop) (This)->lpVtbl->GetAllocatorProperties(This,pprop)
-#endif
-#endif
-  HRESULT WINAPI IAMBufferNegotiation_SuggestAllocatorProperties_Proxy(IAMBufferNegotiation *This,const ALLOCATOR_PROPERTIES *pprop);
-  void __RPC_STUB IAMBufferNegotiation_SuggestAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMBufferNegotiation_GetAllocatorProperties_Proxy(IAMBufferNegotiation *This,ALLOCATOR_PROPERTIES *pprop);
-  void __RPC_STUB IAMBufferNegotiation_GetAllocatorProperties_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
 #define AnalogVideo_NTSC_Mask 0x00000007
 #define AnalogVideo_PAL_Mask 0x00100FF0
 #define AnalogVideo_SECAM_Mask 0x000FF000
@@ -10102,46 +11762,6 @@ typedef struct IAMPluginControl IAMPluginControl;
 
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_c_ifspec;
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0175_v0_0_s_ifspec;
-#ifndef __IAMCameraControl_INTERFACE_DEFINED__
-#define __IAMCameraControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMCameraControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMCameraControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetRange(LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags) = 0;
-    virtual HRESULT WINAPI Set(LONG Property,LONG lValue,LONG Flags) = 0;
-    virtual HRESULT WINAPI Get(LONG Property,LONG *lValue,LONG *Flags) = 0;
-  };
-#else
-  typedef struct IAMCameraControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMCameraControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMCameraControl *This);
-      ULONG (WINAPI *Release)(IAMCameraControl *This);
-      HRESULT (WINAPI *GetRange)(IAMCameraControl *This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags);
-      HRESULT (WINAPI *Set)(IAMCameraControl *This,LONG Property,LONG lValue,LONG Flags);
-      HRESULT (WINAPI *Get)(IAMCameraControl *This,LONG Property,LONG *lValue,LONG *Flags);
-    END_INTERFACE
-  } IAMCameraControlVtbl;
-  struct IAMCameraControl {
-    CONST_VTBL struct IAMCameraControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMCameraControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMCameraControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMCameraControl_Release(This) (This)->lpVtbl->Release(This)
-#define IAMCameraControl_GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags) (This)->lpVtbl->GetRange(This,Property,pMin,pMax,pSteppingDelta,pDefault,pCapsFlags)
-#define IAMCameraControl_Set(This,Property,lValue,Flags) (This)->lpVtbl->Set(This,Property,lValue,Flags)
-#define IAMCameraControl_Get(This,Property,lValue,Flags) (This)->lpVtbl->Get(This,Property,lValue,Flags)
-#endif
-#endif
-  HRESULT WINAPI IAMCameraControl_GetRange_Proxy(IAMCameraControl *This,LONG Property,LONG *pMin,LONG *pMax,LONG *pSteppingDelta,LONG *pDefault,LONG *pCapsFlags);
-  void __RPC_STUB IAMCameraControl_GetRange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCameraControl_Set_Proxy(IAMCameraControl *This,LONG Property,LONG lValue,LONG Flags);
-  void __RPC_STUB IAMCameraControl_Set_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCameraControl_Get_Proxy(IAMCameraControl *This,LONG Property,LONG *lValue,LONG *Flags);
-  void __RPC_STUB IAMCameraControl_Get_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
   typedef enum tagVideoControlFlags {
     VideoControlFlag_FlipHorizontal = 0x1,VideoControlFlag_FlipVertical = 0x2,VideoControlFlag_ExternalTriggerEnable = 0x4,VideoControlFlag_Trigger = 0x8
@@ -10149,116 +11769,6 @@ typedef struct IAMPluginControl IAMPluginControl;
 
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_c_ifspec;
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0176_v0_0_s_ifspec;
-#ifndef __IAMVideoControl_INTERFACE_DEFINED__
-#define __IAMVideoControl_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMVideoControl;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMVideoControl : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetCaps(IPin *pPin,LONG *pCapsFlags) = 0;
-    virtual HRESULT WINAPI SetMode(IPin *pPin,LONG Mode) = 0;
-    virtual HRESULT WINAPI GetMode(IPin *pPin,LONG *Mode) = 0;
-    virtual HRESULT WINAPI GetCurrentActualFrameRate(IPin *pPin,LONGLONG *ActualFrameRate) = 0;
-    virtual HRESULT WINAPI GetMaxAvailableFrameRate(IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate) = 0;
-    virtual HRESULT WINAPI GetFrameRateList(IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates) = 0;
-  };
-#else
-  typedef struct IAMVideoControlVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMVideoControl *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMVideoControl *This);
-      ULONG (WINAPI *Release)(IAMVideoControl *This);
-      HRESULT (WINAPI *GetCaps)(IAMVideoControl *This,IPin *pPin,LONG *pCapsFlags);
-      HRESULT (WINAPI *SetMode)(IAMVideoControl *This,IPin *pPin,LONG Mode);
-      HRESULT (WINAPI *GetMode)(IAMVideoControl *This,IPin *pPin,LONG *Mode);
-      HRESULT (WINAPI *GetCurrentActualFrameRate)(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
-      HRESULT (WINAPI *GetMaxAvailableFrameRate)(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
-      HRESULT (WINAPI *GetFrameRateList)(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates);
-    END_INTERFACE
-  } IAMVideoControlVtbl;
-  struct IAMVideoControl {
-    CONST_VTBL struct IAMVideoControlVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMVideoControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMVideoControl_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMVideoControl_Release(This) (This)->lpVtbl->Release(This)
-#define IAMVideoControl_GetCaps(This,pPin,pCapsFlags) (This)->lpVtbl->GetCaps(This,pPin,pCapsFlags)
-#define IAMVideoControl_SetMode(This,pPin,Mode) (This)->lpVtbl->SetMode(This,pPin,Mode)
-#define IAMVideoControl_GetMode(This,pPin,Mode) (This)->lpVtbl->GetMode(This,pPin,Mode)
-#define IAMVideoControl_GetCurrentActualFrameRate(This,pPin,ActualFrameRate) (This)->lpVtbl->GetCurrentActualFrameRate(This,pPin,ActualFrameRate)
-#define IAMVideoControl_GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate) (This)->lpVtbl->GetMaxAvailableFrameRate(This,pPin,iIndex,Dimensions,MaxAvailableFrameRate)
-#define IAMVideoControl_GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates) (This)->lpVtbl->GetFrameRateList(This,pPin,iIndex,Dimensions,ListSize,FrameRates)
-#endif
-#endif
-  HRESULT WINAPI IAMVideoControl_GetCaps_Proxy(IAMVideoControl *This,IPin *pPin,LONG *pCapsFlags);
-  void __RPC_STUB IAMVideoControl_GetCaps_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_SetMode_Proxy(IAMVideoControl *This,IPin *pPin,LONG Mode);
-  void __RPC_STUB IAMVideoControl_SetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetMode_Proxy(IAMVideoControl *This,IPin *pPin,LONG *Mode);
-  void __RPC_STUB IAMVideoControl_GetMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetCurrentActualFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONGLONG *ActualFrameRate);
-  void __RPC_STUB IAMVideoControl_GetCurrentActualFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetMaxAvailableFrameRate_Proxy(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONGLONG *MaxAvailableFrameRate);
-  void __RPC_STUB IAMVideoControl_GetMaxAvailableFrameRate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMVideoControl_GetFrameRateList_Proxy(IAMVideoControl *This,IPin *pPin,LONG iIndex,SIZE Dimensions,LONG *ListSize,LONGLONG **FrameRates);
-  void __RPC_STUB IAMVideoControl_GetFrameRateList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IAMCrossbar,0xc6e13380,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56);
-#endif
-
-#ifndef __IAMCrossbar_INTERFACE_DEFINED__
-#define __IAMCrossbar_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMCrossbar;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMCrossbar : public IUnknown {
-  public:
-    virtual HRESULT WINAPI get_PinCounts(LONG *OutputPinCount,LONG *InputPinCount) = 0;
-    virtual HRESULT WINAPI CanRoute(LONG OutputPinIndex,LONG InputPinIndex) = 0;
-    virtual HRESULT WINAPI Route(LONG OutputPinIndex,LONG InputPinIndex) = 0;
-    virtual HRESULT WINAPI get_IsRoutedTo(LONG OutputPinIndex,LONG *InputPinIndex) = 0;
-    virtual HRESULT WINAPI get_CrossbarPinInfo(WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType) = 0;
-  };
-#else
-  typedef struct IAMCrossbarVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMCrossbar *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMCrossbar *This);
-      ULONG (WINAPI *Release)(IAMCrossbar *This);
-      HRESULT (WINAPI *get_PinCounts)(IAMCrossbar *This,LONG *OutputPinCount,LONG *InputPinCount);
-      HRESULT (WINAPI *CanRoute)(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
-      HRESULT (WINAPI *Route)(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
-      HRESULT (WINAPI *get_IsRoutedTo)(IAMCrossbar *This,LONG OutputPinIndex,LONG *InputPinIndex);
-      HRESULT (WINAPI *get_CrossbarPinInfo)(IAMCrossbar *This,WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType);
-    END_INTERFACE
-  } IAMCrossbarVtbl;
-  struct IAMCrossbar {
-    CONST_VTBL struct IAMCrossbarVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMCrossbar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMCrossbar_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMCrossbar_Release(This) (This)->lpVtbl->Release(This)
-#define IAMCrossbar_get_PinCounts(This,OutputPinCount,InputPinCount) (This)->lpVtbl->get_PinCounts(This,OutputPinCount,InputPinCount)
-#define IAMCrossbar_CanRoute(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->CanRoute(This,OutputPinIndex,InputPinIndex)
-#define IAMCrossbar_Route(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->Route(This,OutputPinIndex,InputPinIndex)
-#define IAMCrossbar_get_IsRoutedTo(This,OutputPinIndex,InputPinIndex) (This)->lpVtbl->get_IsRoutedTo(This,OutputPinIndex,InputPinIndex)
-#define IAMCrossbar_get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType) (This)->lpVtbl->get_CrossbarPinInfo(This,IsInputPin,PinIndex,PinIndexRelated,PhysicalType)
-#endif
-#endif
-  HRESULT WINAPI IAMCrossbar_get_PinCounts_Proxy(IAMCrossbar *This,LONG *OutputPinCount,LONG *InputPinCount);
-  void __RPC_STUB IAMCrossbar_get_PinCounts_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_CanRoute_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
-  void __RPC_STUB IAMCrossbar_CanRoute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_Route_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG InputPinIndex);
-  void __RPC_STUB IAMCrossbar_Route_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_get_IsRoutedTo_Proxy(IAMCrossbar *This,LONG OutputPinIndex,LONG *InputPinIndex);
-  void __RPC_STUB IAMCrossbar_get_IsRoutedTo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMCrossbar_get_CrossbarPinInfo_Proxy(IAMCrossbar *This,WINBOOL IsInputPin,LONG PinIndex,LONG *PinIndexRelated,LONG *PhysicalType);
-  void __RPC_STUB IAMCrossbar_get_CrossbarPinInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
   typedef enum tagAMTunerSubChannel {
     AMTUNER_SUBCHAN_NO_TUNE = -2,AMTUNER_SUBCHAN_DEFAULT = -1
@@ -10268,258 +11778,8 @@ __CRT_UUID_DECL(IAMCrossbar,0xc6e13380,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x
     AMTUNER_HASNOSIGNALSTRENGTH = -1,AMTUNER_NOSIGNAL = 0,AMTUNER_SIGNALPRESENT = 1
   } AMTunerSignalStrength;
 
-  typedef enum tagAMTunerModeType {
-    AMTUNER_MODE_DEFAULT = 0,AMTUNER_MODE_TV = 0x1,AMTUNER_MODE_FM_RADIO = 0x2,AMTUNER_MODE_AM_RADIO = 0x4,AMTUNER_MODE_DSS = 0x8
-  } AMTunerModeType;
-
-  typedef enum tagAMTunerEventType {
-    AMTUNER_EVENT_CHANGED = 0x1
-  } AMTunerEventType;
-
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_c_ifspec;
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0178_v0_0_s_ifspec;
-#ifndef __IAMTuner_INTERFACE_DEFINED__
-#define __IAMTuner_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTuner;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTuner : public IUnknown {
-  public:
-    virtual HRESULT WINAPI put_Channel(LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel) = 0;
-    virtual HRESULT WINAPI get_Channel(LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel) = 0;
-    virtual HRESULT WINAPI ChannelMinMax(LONG *lChannelMin,LONG *lChannelMax) = 0;
-    virtual HRESULT WINAPI put_CountryCode(LONG lCountryCode) = 0;
-    virtual HRESULT WINAPI get_CountryCode(LONG *plCountryCode) = 0;
-    virtual HRESULT WINAPI put_TuningSpace(LONG lTuningSpace) = 0;
-    virtual HRESULT WINAPI get_TuningSpace(LONG *plTuningSpace) = 0;
-    virtual HRESULT WINAPI Logon(HANDLE hCurrentUser) = 0;
-    virtual HRESULT WINAPI Logout(void) = 0;
-    virtual HRESULT WINAPI SignalPresent(LONG *plSignalStrength) = 0;
-    virtual HRESULT WINAPI put_Mode(AMTunerModeType lMode) = 0;
-    virtual HRESULT WINAPI get_Mode(AMTunerModeType *plMode) = 0;
-    virtual HRESULT WINAPI GetAvailableModes(LONG *plModes) = 0;
-    virtual HRESULT WINAPI RegisterNotificationCallBack(IAMTunerNotification *pNotify,LONG lEvents) = 0;
-    virtual HRESULT WINAPI UnRegisterNotificationCallBack(IAMTunerNotification *pNotify) = 0;
-  };
-#else
-  typedef struct IAMTunerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTuner *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTuner *This);
-      ULONG (WINAPI *Release)(IAMTuner *This);
-      HRESULT (WINAPI *put_Channel)(IAMTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
-      HRESULT (WINAPI *get_Channel)(IAMTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
-      HRESULT (WINAPI *ChannelMinMax)(IAMTuner *This,LONG *lChannelMin,LONG *lChannelMax);
-      HRESULT (WINAPI *put_CountryCode)(IAMTuner *This,LONG lCountryCode);
-      HRESULT (WINAPI *get_CountryCode)(IAMTuner *This,LONG *plCountryCode);
-      HRESULT (WINAPI *put_TuningSpace)(IAMTuner *This,LONG lTuningSpace);
-      HRESULT (WINAPI *get_TuningSpace)(IAMTuner *This,LONG *plTuningSpace);
-      HRESULT (WINAPI *Logon)(IAMTuner *This,HANDLE hCurrentUser);
-      HRESULT (WINAPI *Logout)(IAMTuner *This);
-      HRESULT (WINAPI *SignalPresent)(IAMTuner *This,LONG *plSignalStrength);
-      HRESULT (WINAPI *put_Mode)(IAMTuner *This,AMTunerModeType lMode);
-      HRESULT (WINAPI *get_Mode)(IAMTuner *This,AMTunerModeType *plMode);
-      HRESULT (WINAPI *GetAvailableModes)(IAMTuner *This,LONG *plModes);
-      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
-      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTuner *This,IAMTunerNotification *pNotify);
-    END_INTERFACE
-  } IAMTunerVtbl;
-  struct IAMTuner {
-    CONST_VTBL struct IAMTunerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTuner_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
-#define IAMTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
-#define IAMTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
-#define IAMTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
-#define IAMTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
-#define IAMTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
-#define IAMTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
-#define IAMTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
-#define IAMTuner_Logout(This) (This)->lpVtbl->Logout(This)
-#define IAMTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
-#define IAMTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
-#define IAMTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
-#define IAMTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
-#define IAMTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
-#define IAMTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
-#endif
-#endif
-  HRESULT WINAPI IAMTuner_put_Channel_Proxy(IAMTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
-  void __RPC_STUB IAMTuner_put_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_Channel_Proxy(IAMTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
-  void __RPC_STUB IAMTuner_get_Channel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_ChannelMinMax_Proxy(IAMTuner *This,LONG *lChannelMin,LONG *lChannelMax);
-  void __RPC_STUB IAMTuner_ChannelMinMax_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_put_CountryCode_Proxy(IAMTuner *This,LONG lCountryCode);
-  void __RPC_STUB IAMTuner_put_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_CountryCode_Proxy(IAMTuner *This,LONG *plCountryCode);
-  void __RPC_STUB IAMTuner_get_CountryCode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_put_TuningSpace_Proxy(IAMTuner *This,LONG lTuningSpace);
-  void __RPC_STUB IAMTuner_put_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_TuningSpace_Proxy(IAMTuner *This,LONG *plTuningSpace);
-  void __RPC_STUB IAMTuner_get_TuningSpace_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_Logon_Proxy(IAMTuner *This,HANDLE hCurrentUser);
-  void __RPC_STUB IAMTuner_Logon_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_Logout_Proxy(IAMTuner *This);
-  void __RPC_STUB IAMTuner_Logout_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_SignalPresent_Proxy(IAMTuner *This,LONG *plSignalStrength);
-  void __RPC_STUB IAMTuner_SignalPresent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_put_Mode_Proxy(IAMTuner *This,AMTunerModeType lMode);
-  void __RPC_STUB IAMTuner_put_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_get_Mode_Proxy(IAMTuner *This,AMTunerModeType *plMode);
-  void __RPC_STUB IAMTuner_get_Mode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_GetAvailableModes_Proxy(IAMTuner *This,LONG *plModes);
-  void __RPC_STUB IAMTuner_GetAvailableModes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_RegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
-  void __RPC_STUB IAMTuner_RegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTuner_UnRegisterNotificationCallBack_Proxy(IAMTuner *This,IAMTunerNotification *pNotify);
-  void __RPC_STUB IAMTuner_UnRegisterNotificationCallBack_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMTunerNotification_INTERFACE_DEFINED__
-#define __IAMTunerNotification_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTunerNotification;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTunerNotification : public IUnknown {
-  public:
-    virtual HRESULT WINAPI OnEvent(AMTunerEventType Event) = 0;
-  };
-#else
-  typedef struct IAMTunerNotificationVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTunerNotification *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTunerNotification *This);
-      ULONG (WINAPI *Release)(IAMTunerNotification *This);
-      HRESULT (WINAPI *OnEvent)(IAMTunerNotification *This,AMTunerEventType Event);
-    END_INTERFACE
-  } IAMTunerNotificationVtbl;
-  struct IAMTunerNotification {
-    CONST_VTBL struct IAMTunerNotificationVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTunerNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTunerNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTunerNotification_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTunerNotification_OnEvent(This,Event) (This)->lpVtbl->OnEvent(This,Event)
-#endif
-#endif
-  HRESULT WINAPI IAMTunerNotification_OnEvent_Proxy(IAMTunerNotification *This,AMTunerEventType Event);
-  void __RPC_STUB IAMTunerNotification_OnEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMTVTuner_INTERFACE_DEFINED__
-#define __IAMTVTuner_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMTVTuner;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMTVTuner : public IAMTuner {
-  public:
-    virtual HRESULT WINAPI get_AvailableTVFormats(LONG *lAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI get_TVFormat(LONG *plAnalogVideoStandard) = 0;
-    virtual HRESULT WINAPI AutoTune(LONG lChannel,LONG *plFoundSignal) = 0;
-    virtual HRESULT WINAPI StoreAutoTune(void) = 0;
-    virtual HRESULT WINAPI get_NumInputConnections(LONG *plNumInputConnections) = 0;
-    virtual HRESULT WINAPI put_InputType(LONG lIndex,TunerInputType InputType) = 0;
-    virtual HRESULT WINAPI get_InputType(LONG lIndex,TunerInputType *pInputType) = 0;
-    virtual HRESULT WINAPI put_ConnectInput(LONG lIndex) = 0;
-    virtual HRESULT WINAPI get_ConnectInput(LONG *plIndex) = 0;
-    virtual HRESULT WINAPI get_VideoFrequency(LONG *lFreq) = 0;
-    virtual HRESULT WINAPI get_AudioFrequency(LONG *lFreq) = 0;
-  };
-#else
-  typedef struct IAMTVTunerVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMTVTuner *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMTVTuner *This);
-      ULONG (WINAPI *Release)(IAMTVTuner *This);
-      HRESULT (WINAPI *put_Channel)(IAMTVTuner *This,LONG lChannel,LONG lVideoSubChannel,LONG lAudioSubChannel);
-      HRESULT (WINAPI *get_Channel)(IAMTVTuner *This,LONG *plChannel,LONG *plVideoSubChannel,LONG *plAudioSubChannel);
-      HRESULT (WINAPI *ChannelMinMax)(IAMTVTuner *This,LONG *lChannelMin,LONG *lChannelMax);
-      HRESULT (WINAPI *put_CountryCode)(IAMTVTuner *This,LONG lCountryCode);
-      HRESULT (WINAPI *get_CountryCode)(IAMTVTuner *This,LONG *plCountryCode);
-      HRESULT (WINAPI *put_TuningSpace)(IAMTVTuner *This,LONG lTuningSpace);
-      HRESULT (WINAPI *get_TuningSpace)(IAMTVTuner *This,LONG *plTuningSpace);
-      HRESULT (WINAPI *Logon)(IAMTVTuner *This,HANDLE hCurrentUser);
-      HRESULT (WINAPI *Logout)(IAMTVTuner *This);
-      HRESULT (WINAPI *SignalPresent)(IAMTVTuner *This,LONG *plSignalStrength);
-      HRESULT (WINAPI *put_Mode)(IAMTVTuner *This,AMTunerModeType lMode);
-      HRESULT (WINAPI *get_Mode)(IAMTVTuner *This,AMTunerModeType *plMode);
-      HRESULT (WINAPI *GetAvailableModes)(IAMTVTuner *This,LONG *plModes);
-      HRESULT (WINAPI *RegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify,LONG lEvents);
-      HRESULT (WINAPI *UnRegisterNotificationCallBack)(IAMTVTuner *This,IAMTunerNotification *pNotify);
-      HRESULT (WINAPI *get_AvailableTVFormats)(IAMTVTuner *This,LONG *lAnalogVideoStandard);
-      HRESULT (WINAPI *get_TVFormat)(IAMTVTuner *This,LONG *plAnalogVideoStandard);
-      HRESULT (WINAPI *AutoTune)(IAMTVTuner *This,LONG lChannel,LONG *plFoundSignal);
-      HRESULT (WINAPI *StoreAutoTune)(IAMTVTuner *This);
-      HRESULT (WINAPI *get_NumInputConnections)(IAMTVTuner *This,LONG *plNumInputConnections);
-      HRESULT (WINAPI *put_InputType)(IAMTVTuner *This,LONG lIndex,TunerInputType InputType);
-      HRESULT (WINAPI *get_InputType)(IAMTVTuner *This,LONG lIndex,TunerInputType *pInputType);
-      HRESULT (WINAPI *put_ConnectInput)(IAMTVTuner *This,LONG lIndex);
-      HRESULT (WINAPI *get_ConnectInput)(IAMTVTuner *This,LONG *plIndex);
-      HRESULT (WINAPI *get_VideoFrequency)(IAMTVTuner *This,LONG *lFreq);
-      HRESULT (WINAPI *get_AudioFrequency)(IAMTVTuner *This,LONG *lFreq);
-    END_INTERFACE
-  } IAMTVTunerVtbl;
-  struct IAMTVTuner {
-    CONST_VTBL struct IAMTVTunerVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMTVTuner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMTVTuner_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMTVTuner_Release(This) (This)->lpVtbl->Release(This)
-#define IAMTVTuner_put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel) (This)->lpVtbl->put_Channel(This,lChannel,lVideoSubChannel,lAudioSubChannel)
-#define IAMTVTuner_get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel) (This)->lpVtbl->get_Channel(This,plChannel,plVideoSubChannel,plAudioSubChannel)
-#define IAMTVTuner_ChannelMinMax(This,lChannelMin,lChannelMax) (This)->lpVtbl->ChannelMinMax(This,lChannelMin,lChannelMax)
-#define IAMTVTuner_put_CountryCode(This,lCountryCode) (This)->lpVtbl->put_CountryCode(This,lCountryCode)
-#define IAMTVTuner_get_CountryCode(This,plCountryCode) (This)->lpVtbl->get_CountryCode(This,plCountryCode)
-#define IAMTVTuner_put_TuningSpace(This,lTuningSpace) (This)->lpVtbl->put_TuningSpace(This,lTuningSpace)
-#define IAMTVTuner_get_TuningSpace(This,plTuningSpace) (This)->lpVtbl->get_TuningSpace(This,plTuningSpace)
-#define IAMTVTuner_Logon(This,hCurrentUser) (This)->lpVtbl->Logon(This,hCurrentUser)
-#define IAMTVTuner_Logout(This) (This)->lpVtbl->Logout(This)
-#define IAMTVTuner_SignalPresent(This,plSignalStrength) (This)->lpVtbl->SignalPresent(This,plSignalStrength)
-#define IAMTVTuner_put_Mode(This,lMode) (This)->lpVtbl->put_Mode(This,lMode)
-#define IAMTVTuner_get_Mode(This,plMode) (This)->lpVtbl->get_Mode(This,plMode)
-#define IAMTVTuner_GetAvailableModes(This,plModes) (This)->lpVtbl->GetAvailableModes(This,plModes)
-#define IAMTVTuner_RegisterNotificationCallBack(This,pNotify,lEvents) (This)->lpVtbl->RegisterNotificationCallBack(This,pNotify,lEvents)
-#define IAMTVTuner_UnRegisterNotificationCallBack(This,pNotify) (This)->lpVtbl->UnRegisterNotificationCallBack(This,pNotify)
-#define IAMTVTuner_get_AvailableTVFormats(This,lAnalogVideoStandard) (This)->lpVtbl->get_AvailableTVFormats(This,lAnalogVideoStandard)
-#define IAMTVTuner_get_TVFormat(This,plAnalogVideoStandard) (This)->lpVtbl->get_TVFormat(This,plAnalogVideoStandard)
-#define IAMTVTuner_AutoTune(This,lChannel,plFoundSignal) (This)->lpVtbl->AutoTune(This,lChannel,plFoundSignal)
-#define IAMTVTuner_StoreAutoTune(This) (This)->lpVtbl->StoreAutoTune(This)
-#define IAMTVTuner_get_NumInputConnections(This,plNumInputConnections) (This)->lpVtbl->get_NumInputConnections(This,plNumInputConnections)
-#define IAMTVTuner_put_InputType(This,lIndex,InputType) (This)->lpVtbl->put_InputType(This,lIndex,InputType)
-#define IAMTVTuner_get_InputType(This,lIndex,pInputType) (This)->lpVtbl->get_InputType(This,lIndex,pInputType)
-#define IAMTVTuner_put_ConnectInput(This,lIndex) (This)->lpVtbl->put_ConnectInput(This,lIndex)
-#define IAMTVTuner_get_ConnectInput(This,plIndex) (This)->lpVtbl->get_ConnectInput(This,plIndex)
-#define IAMTVTuner_get_VideoFrequency(This,lFreq) (This)->lpVtbl->get_VideoFrequency(This,lFreq)
-#define IAMTVTuner_get_AudioFrequency(This,lFreq) (This)->lpVtbl->get_AudioFrequency(This,lFreq)
-#endif
-#endif
-  HRESULT WINAPI IAMTVTuner_get_AvailableTVFormats_Proxy(IAMTVTuner *This,LONG *lAnalogVideoStandard);
-  void __RPC_STUB IAMTVTuner_get_AvailableTVFormats_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_TVFormat_Proxy(IAMTVTuner *This,LONG *plAnalogVideoStandard);
-  void __RPC_STUB IAMTVTuner_get_TVFormat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_AutoTune_Proxy(IAMTVTuner *This,LONG lChannel,LONG *plFoundSignal);
-  void __RPC_STUB IAMTVTuner_AutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_StoreAutoTune_Proxy(IAMTVTuner *This);
-  void __RPC_STUB IAMTVTuner_StoreAutoTune_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_NumInputConnections_Proxy(IAMTVTuner *This,LONG *plNumInputConnections);
-  void __RPC_STUB IAMTVTuner_get_NumInputConnections_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_put_InputType_Proxy(IAMTVTuner *This,LONG lIndex,TunerInputType InputType);
-  void __RPC_STUB IAMTVTuner_put_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_InputType_Proxy(IAMTVTuner *This,LONG lIndex,TunerInputType *pInputType);
-  void __RPC_STUB IAMTVTuner_get_InputType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_put_ConnectInput_Proxy(IAMTVTuner *This,LONG lIndex);
-  void __RPC_STUB IAMTVTuner_put_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_ConnectInput_Proxy(IAMTVTuner *This,LONG *plIndex);
-  void __RPC_STUB IAMTVTuner_get_ConnectInput_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_VideoFrequency_Proxy(IAMTVTuner *This,LONG *lFreq);
-  void __RPC_STUB IAMTVTuner_get_VideoFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMTVTuner_get_AudioFrequency_Proxy(IAMTVTuner *This,LONG *lFreq);
-  void __RPC_STUB IAMTVTuner_get_AudioFrequency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
 #ifndef __IBPCSatelliteTuner_INTERFACE_DEFINED__
 #define __IBPCSatelliteTuner_INTERFACE_DEFINED__
@@ -10746,10 +12006,6 @@ __CRT_UUID_DECL(IAMCrossbar,0xc6e13380,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x
   void __RPC_STUB IAMAnalogVideoEncoder_get_CCEnable_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 #endif
 
-  typedef enum __MIDL___MIDL_itf_strmif_0185_0001 {
-    AMPROPERTY_PIN_CATEGORY = 0,AMPROPERTY_PIN_MEDIUM = AMPROPERTY_PIN_CATEGORY + 1
-  } AMPROPERTY_PIN;
-
 #ifndef __IAMPhysicalPinInfo_INTERFACE_DEFINED__
 #define __IAMPhysicalPinInfo_INTERFACE_DEFINED__
   EXTERN_C const IID IID_IAMPhysicalPinInfo;
@@ -11553,47 +12809,6 @@ __CRT_UUID_DECL(IAMCrossbar,0xc6e13380,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x
   void __RPC_STUB IAMVideoDecimationProperties_SetDecimationUsage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
 #endif
 
-#ifndef __IVideoFrameStep_INTERFACE_DEFINED__
-#define __IVideoFrameStep_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IVideoFrameStep;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IVideoFrameStep : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Step(DWORD dwFrames,IUnknown *pStepObject) = 0;
-    virtual HRESULT WINAPI CanStep(LONG bMultiple,IUnknown *pStepObject) = 0;
-    virtual HRESULT WINAPI CancelStep(void) = 0;
-  };
-#else
-  typedef struct IVideoFrameStepVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IVideoFrameStep *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IVideoFrameStep *This);
-      ULONG (WINAPI *Release)(IVideoFrameStep *This);
-      HRESULT (WINAPI *Step)(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
-      HRESULT (WINAPI *CanStep)(IVideoFrameStep *This,LONG bMultiple,IUnknown *pStepObject);
-      HRESULT (WINAPI *CancelStep)(IVideoFrameStep *This);
-    END_INTERFACE
-  } IVideoFrameStepVtbl;
-  struct IVideoFrameStep {
-    CONST_VTBL struct IVideoFrameStepVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IVideoFrameStep_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IVideoFrameStep_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IVideoFrameStep_Release(This) (This)->lpVtbl->Release(This)
-#define IVideoFrameStep_Step(This,dwFrames,pStepObject) (This)->lpVtbl->Step(This,dwFrames,pStepObject)
-#define IVideoFrameStep_CanStep(This,bMultiple,pStepObject) (This)->lpVtbl->CanStep(This,bMultiple,pStepObject)
-#define IVideoFrameStep_CancelStep(This) (This)->lpVtbl->CancelStep(This)
-#endif
-#endif
-  HRESULT WINAPI IVideoFrameStep_Step_Proxy(IVideoFrameStep *This,DWORD dwFrames,IUnknown *pStepObject);
-  void __RPC_STUB IVideoFrameStep_Step_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoFrameStep_CanStep_Proxy(IVideoFrameStep *This,LONG bMultiple,IUnknown *pStepObject);
-  void __RPC_STUB IVideoFrameStep_CanStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IVideoFrameStep_CancelStep_Proxy(IVideoFrameStep *This);
-  void __RPC_STUB IVideoFrameStep_CancelStep_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
   enum _AM_PUSHSOURCE_FLAGS {
     AM_PUSHSOURCECAPS_INTERNAL_RM = 0x1,AM_PUSHSOURCECAPS_NOT_LIVE = 0x2,AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x4,
     AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x10000,AM_PUSHSOURCEREQS_USE_CLOCK_CHAIN = 0x20000
@@ -11601,94 +12816,6 @@ __CRT_UUID_DECL(IAMCrossbar,0xc6e13380,0x30ac,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x
 
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_c_ifspec;
   extern RPC_IF_HANDLE __MIDL_itf_strmif_0353_v0_0_s_ifspec;
-#ifndef __IAMLatency_INTERFACE_DEFINED__
-#define __IAMLatency_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMLatency;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMLatency : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetLatency(REFERENCE_TIME *prtLatency) = 0;
-  };
-#else
-  typedef struct IAMLatencyVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMLatency *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMLatency *This);
-      ULONG (WINAPI *Release)(IAMLatency *This);
-      HRESULT (WINAPI *GetLatency)(IAMLatency *This,REFERENCE_TIME *prtLatency);
-    END_INTERFACE
-  } IAMLatencyVtbl;
-  struct IAMLatency {
-    CONST_VTBL struct IAMLatencyVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMLatency_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMLatency_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMLatency_Release(This) (This)->lpVtbl->Release(This)
-#define IAMLatency_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
-#endif
-#endif
-  HRESULT WINAPI IAMLatency_GetLatency_Proxy(IAMLatency *This,REFERENCE_TIME *prtLatency);
-  void __RPC_STUB IAMLatency_GetLatency_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IAMPushSource_INTERFACE_DEFINED__
-#define __IAMPushSource_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IAMPushSource;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IAMPushSource : public IAMLatency {
-  public:
-    virtual HRESULT WINAPI GetPushSourceFlags(ULONG *pFlags) = 0;
-    virtual HRESULT WINAPI SetPushSourceFlags(ULONG Flags) = 0;
-    virtual HRESULT WINAPI SetStreamOffset(REFERENCE_TIME rtOffset) = 0;
-    virtual HRESULT WINAPI GetStreamOffset(REFERENCE_TIME *prtOffset) = 0;
-    virtual HRESULT WINAPI GetMaxStreamOffset(REFERENCE_TIME *prtMaxOffset) = 0;
-    virtual HRESULT WINAPI SetMaxStreamOffset(REFERENCE_TIME rtMaxOffset) = 0;
-  };
-#else
-  typedef struct IAMPushSourceVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IAMPushSource *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IAMPushSource *This);
-      ULONG (WINAPI *Release)(IAMPushSource *This);
-      HRESULT (WINAPI *GetLatency)(IAMPushSource *This,REFERENCE_TIME *prtLatency);
-      HRESULT (WINAPI *GetPushSourceFlags)(IAMPushSource *This,ULONG *pFlags);
-      HRESULT (WINAPI *SetPushSourceFlags)(IAMPushSource *This,ULONG Flags);
-      HRESULT (WINAPI *SetStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtOffset);
-      HRESULT (WINAPI *GetStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtOffset);
-      HRESULT (WINAPI *GetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
-      HRESULT (WINAPI *SetMaxStreamOffset)(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
-    END_INTERFACE
-  } IAMPushSourceVtbl;
-  struct IAMPushSource {
-    CONST_VTBL struct IAMPushSourceVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IAMPushSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAMPushSource_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAMPushSource_Release(This) (This)->lpVtbl->Release(This)
-#define IAMPushSource_GetLatency(This,prtLatency) (This)->lpVtbl->GetLatency(This,prtLatency)
-#define IAMPushSource_GetPushSourceFlags(This,pFlags) (This)->lpVtbl->GetPushSourceFlags(This,pFlags)
-#define IAMPushSource_SetPushSourceFlags(This,Flags) (This)->lpVtbl->SetPushSourceFlags(This,Flags)
-#define IAMPushSource_SetStreamOffset(This,rtOffset) (This)->lpVtbl->SetStreamOffset(This,rtOffset)
-#define IAMPushSource_GetStreamOffset(This,prtOffset) (This)->lpVtbl->GetStreamOffset(This,prtOffset)
-#define IAMPushSource_GetMaxStreamOffset(This,prtMaxOffset) (This)->lpVtbl->GetMaxStreamOffset(This,prtMaxOffset)
-#define IAMPushSource_SetMaxStreamOffset(This,rtMaxOffset) (This)->lpVtbl->SetMaxStreamOffset(This,rtMaxOffset)
-#endif
-#endif
-  HRESULT WINAPI IAMPushSource_GetPushSourceFlags_Proxy(IAMPushSource *This,ULONG *pFlags);
-  void __RPC_STUB IAMPushSource_GetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_SetPushSourceFlags_Proxy(IAMPushSource *This,ULONG Flags);
-  void __RPC_STUB IAMPushSource_SetPushSourceFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_SetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtOffset);
-  void __RPC_STUB IAMPushSource_SetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_GetStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtOffset);
-  void __RPC_STUB IAMPushSource_GetStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_GetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME *prtMaxOffset);
-  void __RPC_STUB IAMPushSource_GetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IAMPushSource_SetMaxStreamOffset_Proxy(IAMPushSource *This,REFERENCE_TIME rtMaxOffset);
-  void __RPC_STUB IAMPushSource_SetMaxStreamOffset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
 
 #ifndef __IAMDeviceRemoval_INTERFACE_DEFINED__
 #define __IAMDeviceRemoval_INTERFACE_DEFINED__
lib/libc/include/any-windows-any/structuredquerycondition.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/structuredquerycondition.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/structuredquerycondition.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/taskschd.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/taskschd.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/taskschd.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -204,6 +204,8 @@ typedef struct TaskScheduler TaskScheduler;
 extern "C" {
 #endif
 
+#ifndef __TaskScheduler_LIBRARY_DEFINED__
+#define __TaskScheduler_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_TaskScheduler, 0xe34cb9f1, 0xc7f7, 0x424c, 0xbe,0x29, 0x02,0x7d,0xcc,0x09,0x36,0x3a);
 
@@ -5403,6 +5405,7 @@ __CRT_UUID_DECL(TaskScheduler, 0x0f87369f, 0xa4e5, 0x4cfc, 0xbd,0x3e, 0x73,0xe6,
 #endif
 #endif
 
+#endif /* __TaskScheduler_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
lib/libc/include/any-windows-any/tchar.h
@@ -190,35 +190,24 @@ extern "C" {
 #define _sntscanf_l _snwscanf_l
 
 #define _fgettc fgetwc
-#define _fgettc_nolock _fgetwc_nolock
 #define _fgettchar _fgetwchar
 #define _fgetts fgetws
 #define _fputtc fputwc
-#define _fputtc_nolock _fputwc_nolock
 #define _fputtchar _fputwchar
 #define _fputts fputws
 #define _cputts _cputws
 #define _cgetts _cgetws
 #define _gettc getwc
-#define _gettc_nolock _getwc_nolock
 #define _gettch _getwch
-#define _gettch_nolock _getwch_nolock
 #define _gettche _getwche
-#define _gettche_nolock _getwche_nolock
 #define _gettchar getwchar
-#define _gettchar_nolock _getwchar_nolock
 #define _getts _getws
 #define _puttc putwc
-#define _puttc_nolock _putwc_nolock
 #define _puttchar putwchar
-#define _puttchar_nolock _putwchar_nolock
 #define _puttch _putwch
-#define _puttch_nolock _putwch_nolock
 #define _putts _putws
 #define _ungettc ungetwc
-#define _ungettc_nolock _ungetwc_nolock
 #define _ungettch _ungetwch
-#define _ungettch_nolock _ungetwch_nolock
 
 #define _tcstod wcstod
 #define _tcstol wcstol
@@ -334,7 +323,6 @@ extern "C" {
 #define _tchdir _wchdir
 #define _tgetcwd _wgetcwd
 #define _tgetdcwd _wgetdcwd
-#define _tgetdcwd_nolock _wgetdcwd_nolock
 #define _tmkdir _wmkdir
 #define _trmdir _wrmdir
 
@@ -566,35 +554,24 @@ extern "C" {
 #define _sntscanf_l _snscanf_l
 
 #define _fgettc fgetc
-#define _fgettc_nolock _fgetc_nolock
 #define _fgettchar _fgetchar
 #define _fgetts fgets
 #define _fputtc fputc
-#define _fputtc_nolock _fputc_nolock
 #define _fputtchar _fputchar
 #define _fputts fputs
 #define _cputts _cputs
 #define _gettc getc
-#define _gettc_nolock _getc_nolock
 #define _gettch _getch
-#define _gettch_nolock _getch_nolock
 #define _gettche _getche
-#define _gettche_nolock _getche_nolock
 #define _gettchar getchar
-#define _gettchar_nolock _getchar_nolock
 #define _getts gets
 #define _cgetts _cgets
 #define _puttc putc
-#define _puttc_nolock _putc_nolock
 #define _puttchar putchar
-#define _puttchar_nolock _putchar_nolock
 #define _puttch _putch
-#define _puttch_nolock _putch_nolock
 #define _putts puts
 #define _ungettc ungetc
-#define _ungettc_nolock _ungetc_nolock
 #define _ungettch _ungetch
-#define _ungettch_nolock _ungetch_nolock
 
 #define _tcstod strtod
 #define _tcstol strtol
@@ -670,7 +647,6 @@ extern "C" {
 #define _tchdir _chdir
 #define _tgetcwd _getcwd
 #define _tgetdcwd _getdcwd
-#define _tgetdcwd_nolock _getdcwd_nolock
 #define _tmkdir _mkdir
 #define _trmdir _rmdir
 
@@ -747,6 +723,33 @@ extern "C" {
 
 #define _tsetlocale setlocale
 
+#if __MSVCRT_VERSION__ >= 0x800
+#define _fgettc_nolock _fgetwc_nolock
+#define _fputtc_nolock _fputwc_nolock
+#define _gettc_nolock _getwc_nolock
+#define _gettch_nolock _getwch_nolock
+#define _gettche_nolock _getwche_nolock
+#define _gettchar_nolock _getwchar_nolock
+#define _puttc_nolock _putwc_nolock
+#define _puttchar_nolock _putwchar_nolock
+#define _puttch_nolock _putwch_nolock
+#define _ungettc_nolock _ungetwc_nolock
+#define _ungettch_nolock _ungetwch_nolock
+#define _tgetdcwd_nolock _wgetdcwd_nolock
+#define _fgettc_nolock _fgetc_nolock
+#define _fputtc_nolock _fputc_nolock
+#define _gettc_nolock _getc_nolock
+#define _gettch_nolock _getch_nolock
+#define _gettche_nolock _getche_nolock
+#define _gettchar_nolock _getchar_nolock
+#define _puttc_nolock _putc_nolock
+#define _puttchar_nolock _putchar_nolock
+#define _puttch_nolock _putch_nolock
+#define _ungettc_nolock _ungetc_nolock
+#define _ungettch_nolock _ungetch_nolock
+#define _tgetdcwd_nolock _getdcwd_nolock
+#endif
+
 #endif /* __CYGWIN__ */
 
 #ifdef _MBCS
lib/libc/include/any-windows-any/textstor.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/textstor.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/textstor.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -102,12 +102,12 @@ extern "C" {
 
 #define GXFPF_NEAREST (0x2)
 
-typedef enum __WIDL_textstor_generated_name_00000002 {
+typedef enum __WIDL_textstor_generated_name_0000000F {
     TS_AE_NONE = 0,
     TS_AE_START = 1,
     TS_AE_END = 2
 } TsActiveSelEnd;
-typedef enum __WIDL_textstor_generated_name_00000003 {
+typedef enum __WIDL_textstor_generated_name_00000010 {
     TS_RT_PLAIN = 0,
     TS_RT_HIDDEN = 1,
     TS_RT_OPAQUE = 2
@@ -152,7 +152,7 @@ typedef struct TS_ATTRVAL {
 
 #define TS_ATTR_FIND_HIDDEN (0x20)
 
-typedef enum __WIDL_textstor_generated_name_00000004 {
+typedef enum __WIDL_textstor_generated_name_00000011 {
     TS_LC_CREATE = 0,
     TS_LC_CHANGE = 1,
     TS_LC_DESTROY = 2
lib/libc/include/any-windows-any/thumbcache.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/thumbcache.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/thumbcache.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -653,6 +653,8 @@ static FORCEINLINE HRESULT IThumbnailCachePrimer_PageInThumbnail(IThumbnailCache
 
 #endif  /* __IThumbnailCachePrimer_INTERFACE_DEFINED__ */
 
+#ifndef __ThumbCacheLib_LIBRARY_DEFINED__
+#define __ThumbCacheLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_ThumbCacheLib, 0x4c857096, 0x0514, 0x4d4d, 0xab,0xd5, 0xdf,0xaa,0xa3,0xc3,0x26,0xd2);
 
@@ -682,6 +684,7 @@ __CRT_UUID_DECL(SharedBitmap, 0x4db26476, 0x6787, 0x4046, 0xb8,0x36, 0xe8,0x41,0
 #endif
 #endif
 
+#endif /* __ThumbCacheLib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
lib/libc/include/any-windows-any/tlbref.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/tlbref.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/tlbref.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tlogstg.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/tlogstg.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/tlogstg.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tpcshrd.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/tpcshrd.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/tpcshrd.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tuner.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.6 from include/tuner.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/tuner.idl - Do not edit ***/
 
+#ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
-
 #include <rpc.h>
 #include <rpcndr.h>
+#endif
 
 #ifndef COM_NO_WINDOWS_H
 #include <windows.h>
@@ -20,366 +21,585 @@
 #ifndef __ITuningSpaces_FWD_DEFINED__
 #define __ITuningSpaces_FWD_DEFINED__
 typedef interface ITuningSpaces ITuningSpaces;
+#ifdef __cplusplus
+interface ITuningSpaces;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITuningSpaceContainer_FWD_DEFINED__
 #define __ITuningSpaceContainer_FWD_DEFINED__
 typedef interface ITuningSpaceContainer ITuningSpaceContainer;
+#ifdef __cplusplus
+interface ITuningSpaceContainer;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITuningSpace_FWD_DEFINED__
 #define __ITuningSpace_FWD_DEFINED__
 typedef interface ITuningSpace ITuningSpace;
+#ifdef __cplusplus
+interface ITuningSpace;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumTuningSpaces_FWD_DEFINED__
 #define __IEnumTuningSpaces_FWD_DEFINED__
 typedef interface IEnumTuningSpaces IEnumTuningSpaces;
+#ifdef __cplusplus
+interface IEnumTuningSpaces;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBTuningSpace_FWD_DEFINED__
 #define __IDVBTuningSpace_FWD_DEFINED__
 typedef interface IDVBTuningSpace IDVBTuningSpace;
+#ifdef __cplusplus
+interface IDVBTuningSpace;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBTuningSpace2_FWD_DEFINED__
 #define __IDVBTuningSpace2_FWD_DEFINED__
 typedef interface IDVBTuningSpace2 IDVBTuningSpace2;
+#ifdef __cplusplus
+interface IDVBTuningSpace2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBSTuningSpace_FWD_DEFINED__
 #define __IDVBSTuningSpace_FWD_DEFINED__
 typedef interface IDVBSTuningSpace IDVBSTuningSpace;
+#ifdef __cplusplus
+interface IDVBSTuningSpace;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAuxInTuningSpace_FWD_DEFINED__
 #define __IAuxInTuningSpace_FWD_DEFINED__
 typedef interface IAuxInTuningSpace IAuxInTuningSpace;
+#ifdef __cplusplus
+interface IAuxInTuningSpace;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAuxInTuningSpace2_FWD_DEFINED__
 #define __IAuxInTuningSpace2_FWD_DEFINED__
 typedef interface IAuxInTuningSpace2 IAuxInTuningSpace2;
+#ifdef __cplusplus
+interface IAuxInTuningSpace2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAnalogTVTuningSpace_FWD_DEFINED__
 #define __IAnalogTVTuningSpace_FWD_DEFINED__
 typedef interface IAnalogTVTuningSpace IAnalogTVTuningSpace;
+#ifdef __cplusplus
+interface IAnalogTVTuningSpace;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IATSCTuningSpace_FWD_DEFINED__
 #define __IATSCTuningSpace_FWD_DEFINED__
 typedef interface IATSCTuningSpace IATSCTuningSpace;
+#ifdef __cplusplus
+interface IATSCTuningSpace;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDigitalCableTuningSpace_FWD_DEFINED__
 #define __IDigitalCableTuningSpace_FWD_DEFINED__
 typedef interface IDigitalCableTuningSpace IDigitalCableTuningSpace;
+#ifdef __cplusplus
+interface IDigitalCableTuningSpace;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAnalogRadioTuningSpace_FWD_DEFINED__
 #define __IAnalogRadioTuningSpace_FWD_DEFINED__
 typedef interface IAnalogRadioTuningSpace IAnalogRadioTuningSpace;
+#ifdef __cplusplus
+interface IAnalogRadioTuningSpace;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAnalogRadioTuningSpace2_FWD_DEFINED__
 #define __IAnalogRadioTuningSpace2_FWD_DEFINED__
 typedef interface IAnalogRadioTuningSpace2 IAnalogRadioTuningSpace2;
+#ifdef __cplusplus
+interface IAnalogRadioTuningSpace2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITuneRequest_FWD_DEFINED__
 #define __ITuneRequest_FWD_DEFINED__
 typedef interface ITuneRequest ITuneRequest;
+#ifdef __cplusplus
+interface ITuneRequest;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IChannelIDTuneRequest_FWD_DEFINED__
 #define __IChannelIDTuneRequest_FWD_DEFINED__
 typedef interface IChannelIDTuneRequest IChannelIDTuneRequest;
+#ifdef __cplusplus
+interface IChannelIDTuneRequest;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IChannelTuneRequest_FWD_DEFINED__
 #define __IChannelTuneRequest_FWD_DEFINED__
 typedef interface IChannelTuneRequest IChannelTuneRequest;
+#ifdef __cplusplus
+interface IChannelTuneRequest;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IATSCChannelTuneRequest_FWD_DEFINED__
 #define __IATSCChannelTuneRequest_FWD_DEFINED__
 typedef interface IATSCChannelTuneRequest IATSCChannelTuneRequest;
+#ifdef __cplusplus
+interface IATSCChannelTuneRequest;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDigitalCableTuneRequest_FWD_DEFINED__
 #define __IDigitalCableTuneRequest_FWD_DEFINED__
 typedef interface IDigitalCableTuneRequest IDigitalCableTuneRequest;
+#ifdef __cplusplus
+interface IDigitalCableTuneRequest;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBTuneRequest_FWD_DEFINED__
 #define __IDVBTuneRequest_FWD_DEFINED__
 typedef interface IDVBTuneRequest IDVBTuneRequest;
+#ifdef __cplusplus
+interface IDVBTuneRequest;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMPEG2TuneRequest_FWD_DEFINED__
 #define __IMPEG2TuneRequest_FWD_DEFINED__
 typedef interface IMPEG2TuneRequest IMPEG2TuneRequest;
+#ifdef __cplusplus
+interface IMPEG2TuneRequest;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMPEG2TuneRequestFactory_FWD_DEFINED__
 #define __IMPEG2TuneRequestFactory_FWD_DEFINED__
 typedef interface IMPEG2TuneRequestFactory IMPEG2TuneRequestFactory;
+#ifdef __cplusplus
+interface IMPEG2TuneRequestFactory;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMPEG2TuneRequestSupport_FWD_DEFINED__
 #define __IMPEG2TuneRequestSupport_FWD_DEFINED__
 typedef interface IMPEG2TuneRequestSupport IMPEG2TuneRequestSupport;
+#ifdef __cplusplus
+interface IMPEG2TuneRequestSupport;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITunerCap_FWD_DEFINED__
 #define __ITunerCap_FWD_DEFINED__
 typedef interface ITunerCap ITunerCap;
+#ifdef __cplusplus
+interface ITunerCap;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITunerCapEx_FWD_DEFINED__
 #define __ITunerCapEx_FWD_DEFINED__
 typedef interface ITunerCapEx ITunerCapEx;
+#ifdef __cplusplus
+interface ITunerCapEx;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITuner_FWD_DEFINED__
 #define __ITuner_FWD_DEFINED__
 typedef interface ITuner ITuner;
+#ifdef __cplusplus
+interface ITuner;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IScanningTuner_FWD_DEFINED__
 #define __IScanningTuner_FWD_DEFINED__
 typedef interface IScanningTuner IScanningTuner;
+#ifdef __cplusplus
+interface IScanningTuner;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IScanningTunerEx_FWD_DEFINED__
 #define __IScanningTunerEx_FWD_DEFINED__
 typedef interface IScanningTunerEx IScanningTunerEx;
+#ifdef __cplusplus
+interface IScanningTunerEx;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IComponentType_FWD_DEFINED__
 #define __IComponentType_FWD_DEFINED__
 typedef interface IComponentType IComponentType;
+#ifdef __cplusplus
+interface IComponentType;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ILanguageComponentType_FWD_DEFINED__
 #define __ILanguageComponentType_FWD_DEFINED__
 typedef interface ILanguageComponentType ILanguageComponentType;
+#ifdef __cplusplus
+interface ILanguageComponentType;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMPEG2ComponentType_FWD_DEFINED__
 #define __IMPEG2ComponentType_FWD_DEFINED__
 typedef interface IMPEG2ComponentType IMPEG2ComponentType;
+#ifdef __cplusplus
+interface IMPEG2ComponentType;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IATSCComponentType_FWD_DEFINED__
 #define __IATSCComponentType_FWD_DEFINED__
 typedef interface IATSCComponentType IATSCComponentType;
+#ifdef __cplusplus
+interface IATSCComponentType;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumComponentTypes_FWD_DEFINED__
 #define __IEnumComponentTypes_FWD_DEFINED__
 typedef interface IEnumComponentTypes IEnumComponentTypes;
+#ifdef __cplusplus
+interface IEnumComponentTypes;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IComponentTypes_FWD_DEFINED__
 #define __IComponentTypes_FWD_DEFINED__
 typedef interface IComponentTypes IComponentTypes;
+#ifdef __cplusplus
+interface IComponentTypes;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IComponent_FWD_DEFINED__
 #define __IComponent_FWD_DEFINED__
 typedef interface IComponent IComponent;
+#ifdef __cplusplus
+interface IComponent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAnalogAudioComponentType_FWD_DEFINED__
 #define __IAnalogAudioComponentType_FWD_DEFINED__
 typedef interface IAnalogAudioComponentType IAnalogAudioComponentType;
+#ifdef __cplusplus
+interface IAnalogAudioComponentType;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMPEG2Component_FWD_DEFINED__
 #define __IMPEG2Component_FWD_DEFINED__
 typedef interface IMPEG2Component IMPEG2Component;
+#ifdef __cplusplus
+interface IMPEG2Component;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumComponents_FWD_DEFINED__
 #define __IEnumComponents_FWD_DEFINED__
 typedef interface IEnumComponents IEnumComponents;
+#ifdef __cplusplus
+interface IEnumComponents;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IComponents_FWD_DEFINED__
 #define __IComponents_FWD_DEFINED__
 typedef interface IComponents IComponents;
+#ifdef __cplusplus
+interface IComponents;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IComponentsOld_FWD_DEFINED__
 #define __IComponentsOld_FWD_DEFINED__
 typedef interface IComponentsOld IComponentsOld;
+#ifdef __cplusplus
+interface IComponentsOld;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ILocator_FWD_DEFINED__
 #define __ILocator_FWD_DEFINED__
 typedef interface ILocator ILocator;
+#ifdef __cplusplus
+interface ILocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IAnalogLocator_FWD_DEFINED__
 #define __IAnalogLocator_FWD_DEFINED__
 typedef interface IAnalogLocator IAnalogLocator;
+#ifdef __cplusplus
+interface IAnalogLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDigitalLocator_FWD_DEFINED__
 #define __IDigitalLocator_FWD_DEFINED__
 typedef interface IDigitalLocator IDigitalLocator;
+#ifdef __cplusplus
+interface IDigitalLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IATSCLocator_FWD_DEFINED__
 #define __IATSCLocator_FWD_DEFINED__
 typedef interface IATSCLocator IATSCLocator;
+#ifdef __cplusplus
+interface IATSCLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IATSCLocator2_FWD_DEFINED__
 #define __IATSCLocator2_FWD_DEFINED__
 typedef interface IATSCLocator2 IATSCLocator2;
+#ifdef __cplusplus
+interface IATSCLocator2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDigitalCableLocator_FWD_DEFINED__
 #define __IDigitalCableLocator_FWD_DEFINED__
 typedef interface IDigitalCableLocator IDigitalCableLocator;
+#ifdef __cplusplus
+interface IDigitalCableLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBTLocator_FWD_DEFINED__
 #define __IDVBTLocator_FWD_DEFINED__
 typedef interface IDVBTLocator IDVBTLocator;
+#ifdef __cplusplus
+interface IDVBTLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBTLocator2_FWD_DEFINED__
 #define __IDVBTLocator2_FWD_DEFINED__
 typedef interface IDVBTLocator2 IDVBTLocator2;
+#ifdef __cplusplus
+interface IDVBTLocator2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBSLocator_FWD_DEFINED__
 #define __IDVBSLocator_FWD_DEFINED__
 typedef interface IDVBSLocator IDVBSLocator;
+#ifdef __cplusplus
+interface IDVBSLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBSLocator2_FWD_DEFINED__
 #define __IDVBSLocator2_FWD_DEFINED__
 typedef interface IDVBSLocator2 IDVBSLocator2;
+#ifdef __cplusplus
+interface IDVBSLocator2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBCLocator_FWD_DEFINED__
 #define __IDVBCLocator_FWD_DEFINED__
 typedef interface IDVBCLocator IDVBCLocator;
+#ifdef __cplusplus
+interface IDVBCLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IISDBSLocator_FWD_DEFINED__
 #define __IISDBSLocator_FWD_DEFINED__
 typedef interface IISDBSLocator IISDBSLocator;
+#ifdef __cplusplus
+interface IISDBSLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESEvent_FWD_DEFINED__
 #define __IESEvent_FWD_DEFINED__
 typedef interface IESEvent IESEvent;
+#ifdef __cplusplus
+interface IESEvent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESOpenMmiEvent_FWD_DEFINED__
 #define __IESOpenMmiEvent_FWD_DEFINED__
 typedef interface IESOpenMmiEvent IESOpenMmiEvent;
+#ifdef __cplusplus
+interface IESOpenMmiEvent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESCloseMmiEvent_FWD_DEFINED__
 #define __IESCloseMmiEvent_FWD_DEFINED__
 typedef interface IESCloseMmiEvent IESCloseMmiEvent;
+#ifdef __cplusplus
+interface IESCloseMmiEvent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESValueUpdatedEvent_FWD_DEFINED__
 #define __IESValueUpdatedEvent_FWD_DEFINED__
 typedef interface IESValueUpdatedEvent IESValueUpdatedEvent;
+#ifdef __cplusplus
+interface IESValueUpdatedEvent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESRequestTunerEvent_FWD_DEFINED__
 #define __IESRequestTunerEvent_FWD_DEFINED__
 typedef interface IESRequestTunerEvent IESRequestTunerEvent;
+#ifdef __cplusplus
+interface IESRequestTunerEvent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESIsdbCasResponseEvent_FWD_DEFINED__
 #define __IESIsdbCasResponseEvent_FWD_DEFINED__
 typedef interface IESIsdbCasResponseEvent IESIsdbCasResponseEvent;
+#ifdef __cplusplus
+interface IESIsdbCasResponseEvent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IGpnvsCommonBase_FWD_DEFINED__
 #define __IGpnvsCommonBase_FWD_DEFINED__
 typedef interface IGpnvsCommonBase IGpnvsCommonBase;
+#ifdef __cplusplus
+interface IGpnvsCommonBase;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESEventFactory_FWD_DEFINED__
 #define __IESEventFactory_FWD_DEFINED__
 typedef interface IESEventFactory IESEventFactory;
+#ifdef __cplusplus
+interface IESEventFactory;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESLicenseRenewalResultEvent_FWD_DEFINED__
 #define __IESLicenseRenewalResultEvent_FWD_DEFINED__
 typedef interface IESLicenseRenewalResultEvent IESLicenseRenewalResultEvent;
+#ifdef __cplusplus
+interface IESLicenseRenewalResultEvent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESFileExpiryDateEvent_FWD_DEFINED__
 #define __IESFileExpiryDateEvent_FWD_DEFINED__
 typedef interface IESFileExpiryDateEvent IESFileExpiryDateEvent;
+#ifdef __cplusplus
+interface IESFileExpiryDateEvent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESEvents_FWD_DEFINED__
 #define __IESEvents_FWD_DEFINED__
 typedef interface IESEvents IESEvents;
+#ifdef __cplusplus
+interface IESEvents;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESEventService_FWD_DEFINED__
 #define __IESEventService_FWD_DEFINED__
 typedef interface IESEventService IESEventService;
+#ifdef __cplusplus
+interface IESEventService;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IESEventServiceConfiguration_FWD_DEFINED__
 #define __IESEventServiceConfiguration_FWD_DEFINED__
 typedef interface IESEventServiceConfiguration IESEventServiceConfiguration;
+#ifdef __cplusplus
+interface IESEventServiceConfiguration;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBroadcastEvent_FWD_DEFINED__
 #define __IBroadcastEvent_FWD_DEFINED__
 typedef interface IBroadcastEvent IBroadcastEvent;
+#ifdef __cplusplus
+interface IBroadcastEvent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBroadcastEventEx_FWD_DEFINED__
 #define __IBroadcastEventEx_FWD_DEFINED__
 typedef interface IBroadcastEventEx IBroadcastEventEx;
+#ifdef __cplusplus
+interface IBroadcastEventEx;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IRegisterTuner_FWD_DEFINED__
 #define __IRegisterTuner_FWD_DEFINED__
 typedef interface IRegisterTuner IRegisterTuner;
+#ifdef __cplusplus
+interface IRegisterTuner;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDAComparable_FWD_DEFINED__
 #define __IBDAComparable_FWD_DEFINED__
 typedef interface IBDAComparable IBDAComparable;
+#ifdef __cplusplus
+interface IBDAComparable;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPersistTuneXml_FWD_DEFINED__
 #define __IPersistTuneXml_FWD_DEFINED__
 typedef interface IPersistTuneXml IPersistTuneXml;
+#ifdef __cplusplus
+interface IPersistTuneXml;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPersistTuneXmlUtility_FWD_DEFINED__
 #define __IPersistTuneXmlUtility_FWD_DEFINED__
 typedef interface IPersistTuneXmlUtility IPersistTuneXmlUtility;
+#ifdef __cplusplus
+interface IPersistTuneXmlUtility;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IPersistTuneXmlUtility2_FWD_DEFINED__
 #define __IPersistTuneXmlUtility2_FWD_DEFINED__
 typedef interface IPersistTuneXmlUtility2 IPersistTuneXmlUtility2;
+#ifdef __cplusplus
+interface IPersistTuneXmlUtility2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IBDACreateTuneRequestEx_FWD_DEFINED__
 #define __IBDACreateTuneRequestEx_FWD_DEFINED__
 typedef interface IBDACreateTuneRequestEx IBDACreateTuneRequestEx;
+#ifdef __cplusplus
+interface IBDACreateTuneRequestEx;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __SystemTuningSpaces_FWD_DEFINED__
@@ -784,141 +1004,225 @@ extern "C" {
 #ifndef __IAnalogLocator_FWD_DEFINED__
 #define __IAnalogLocator_FWD_DEFINED__
 typedef interface IAnalogLocator IAnalogLocator;
+#ifdef __cplusplus
+interface IAnalogLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IATSCLocator_FWD_DEFINED__
 #define __IATSCLocator_FWD_DEFINED__
 typedef interface IATSCLocator IATSCLocator;
+#ifdef __cplusplus
+interface IATSCLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IComponent_FWD_DEFINED__
 #define __IComponent_FWD_DEFINED__
 typedef interface IComponent IComponent;
+#ifdef __cplusplus
+interface IComponent;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IComponents_FWD_DEFINED__
 #define __IComponents_FWD_DEFINED__
 typedef interface IComponents IComponents;
+#ifdef __cplusplus
+interface IComponents;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IComponentType_FWD_DEFINED__
 #define __IComponentType_FWD_DEFINED__
 typedef interface IComponentType IComponentType;
+#ifdef __cplusplus
+interface IComponentType;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IComponentTypes_FWD_DEFINED__
 #define __IComponentTypes_FWD_DEFINED__
 typedef interface IComponentTypes IComponentTypes;
+#ifdef __cplusplus
+interface IComponentTypes;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDigitalCableLocator_FWD_DEFINED__
 #define __IDigitalCableLocator_FWD_DEFINED__
 typedef interface IDigitalCableLocator IDigitalCableLocator;
+#ifdef __cplusplus
+interface IDigitalCableLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDigitalCableTuneRequest_FWD_DEFINED__
 #define __IDigitalCableTuneRequest_FWD_DEFINED__
 typedef interface IDigitalCableTuneRequest IDigitalCableTuneRequest;
+#ifdef __cplusplus
+interface IDigitalCableTuneRequest;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDigitalCableTuningSpace_FWD_DEFINED__
 #define __IDigitalCableTuningSpace_FWD_DEFINED__
 typedef interface IDigitalCableTuningSpace IDigitalCableTuningSpace;
+#ifdef __cplusplus
+interface IDigitalCableTuningSpace;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBCLocator_FWD_DEFINED__
 #define __IDVBCLocator_FWD_DEFINED__
 typedef interface IDVBCLocator IDVBCLocator;
+#ifdef __cplusplus
+interface IDVBCLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBSLocator_FWD_DEFINED__
 #define __IDVBSLocator_FWD_DEFINED__
 typedef interface IDVBSLocator IDVBSLocator;
+#ifdef __cplusplus
+interface IDVBSLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBSLocator2_FWD_DEFINED__
 #define __IDVBSLocator2_FWD_DEFINED__
 typedef interface IDVBSLocator2 IDVBSLocator2;
+#ifdef __cplusplus
+interface IDVBSLocator2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBTLocator_FWD_DEFINED__
 #define __IDVBTLocator_FWD_DEFINED__
 typedef interface IDVBTLocator IDVBTLocator;
+#ifdef __cplusplus
+interface IDVBTLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IDVBTLocator2_FWD_DEFINED__
 #define __IDVBTLocator2_FWD_DEFINED__
 typedef interface IDVBTLocator2 IDVBTLocator2;
+#ifdef __cplusplus
+interface IDVBTLocator2;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumComponents_FWD_DEFINED__
 #define __IEnumComponents_FWD_DEFINED__
 typedef interface IEnumComponents IEnumComponents;
+#ifdef __cplusplus
+interface IEnumComponents;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumComponentTypes_FWD_DEFINED__
 #define __IEnumComponentTypes_FWD_DEFINED__
 typedef interface IEnumComponentTypes IEnumComponentTypes;
+#ifdef __cplusplus
+interface IEnumComponentTypes;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IEnumTuningSpaces_FWD_DEFINED__
 #define __IEnumTuningSpaces_FWD_DEFINED__
 typedef interface IEnumTuningSpaces IEnumTuningSpaces;
+#ifdef __cplusplus
+interface IEnumTuningSpaces;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IISDBSLocator_FWD_DEFINED__
 #define __IISDBSLocator_FWD_DEFINED__
 typedef interface IISDBSLocator IISDBSLocator;
+#ifdef __cplusplus
+interface IISDBSLocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ILanguageComponentType_FWD_DEFINED__
 #define __ILanguageComponentType_FWD_DEFINED__
 typedef interface ILanguageComponentType ILanguageComponentType;
+#ifdef __cplusplus
+interface ILanguageComponentType;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ILocator_FWD_DEFINED__
 #define __ILocator_FWD_DEFINED__
 typedef interface ILocator ILocator;
+#ifdef __cplusplus
+interface ILocator;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMPEG2Component_FWD_DEFINED__
 #define __IMPEG2Component_FWD_DEFINED__
 typedef interface IMPEG2Component IMPEG2Component;
+#ifdef __cplusplus
+interface IMPEG2Component;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IMPEG2ComponentType_FWD_DEFINED__
 #define __IMPEG2ComponentType_FWD_DEFINED__
 typedef interface IMPEG2ComponentType IMPEG2ComponentType;
+#ifdef __cplusplus
+interface IMPEG2ComponentType;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IScanningTuner_FWD_DEFINED__
 #define __IScanningTuner_FWD_DEFINED__
 typedef interface IScanningTuner IScanningTuner;
+#ifdef __cplusplus
+interface IScanningTuner;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITuneRequest_FWD_DEFINED__
 #define __ITuneRequest_FWD_DEFINED__
 typedef interface ITuneRequest ITuneRequest;
+#ifdef __cplusplus
+interface ITuneRequest;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITuner_FWD_DEFINED__
 #define __ITuner_FWD_DEFINED__
 typedef interface ITuner ITuner;
+#ifdef __cplusplus
+interface ITuner;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITunerCap_FWD_DEFINED__
 #define __ITunerCap_FWD_DEFINED__
 typedef interface ITunerCap ITunerCap;
+#ifdef __cplusplus
+interface ITunerCap;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITuningSpace_FWD_DEFINED__
 #define __ITuningSpace_FWD_DEFINED__
 typedef interface ITuningSpace ITuningSpace;
+#ifdef __cplusplus
+interface ITuningSpace;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __ITuningSpaceContainer_FWD_DEFINED__
 #define __ITuningSpaceContainer_FWD_DEFINED__
 typedef interface ITuningSpaceContainer ITuningSpaceContainer;
+#ifdef __cplusplus
+interface ITuningSpaceContainer;
+#endif /* __cplusplus */
 #endif
 
 
@@ -1039,7 +1343,6 @@ enum {
     DISPID_MP2TUNERFACTORY_CREATETUNEREQUEST = 1
 };
 
-
 #define SID_ESEventService CLSID_ESEventService
 #define SID_ESEventFactory CLSID_ESEventFactory
 #define SID_SBroadcastEventService CLSID_BroadcastEventService
@@ -1081,29 +1384,29 @@ typedef struct ITuningSpacesVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ITuningSpaces* This,
+        ITuningSpaces *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ITuningSpaces* This);
+        ITuningSpaces *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ITuningSpaces* This);
+        ITuningSpaces *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        ITuningSpaces* This,
+        ITuningSpaces *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        ITuningSpaces* This,
+        ITuningSpaces *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        ITuningSpaces* This,
+        ITuningSpaces *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -1111,7 +1414,7 @@ typedef struct ITuningSpacesVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        ITuningSpaces* This,
+        ITuningSpaces *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -1123,24 +1426,25 @@ typedef struct ITuningSpacesVtbl {
 
     /*** ITuningSpaces methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Count)(
-        ITuningSpaces* This,
+        ITuningSpaces *This,
         LONG *Count);
 
     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
-        ITuningSpaces* This,
+        ITuningSpaces *This,
         IEnumVARIANT **NewEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_Item)(
-        ITuningSpaces* This,
+        ITuningSpaces *This,
         VARIANT varIndex,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *get_EnumTuningSpaces)(
-        ITuningSpaces* This,
+        ITuningSpaces *This,
         IEnumTuningSpaces **NewEnum);
 
     END_INTERFACE
 } ITuningSpacesVtbl;
+
 interface ITuningSpaces {
     CONST_VTBL ITuningSpacesVtbl* lpVtbl;
 };
@@ -1203,39 +1507,6 @@ static FORCEINLINE HRESULT ITuningSpaces_get_EnumTuningSpaces(ITuningSpaces* Thi
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ITuningSpaces_get_Count_Proxy(
-    ITuningSpaces* This,
-    LONG *Count);
-void __RPC_STUB ITuningSpaces_get_Count_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaces_get__NewEnum_Proxy(
-    ITuningSpaces* This,
-    IEnumVARIANT **NewEnum);
-void __RPC_STUB ITuningSpaces_get__NewEnum_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaces_get_Item_Proxy(
-    ITuningSpaces* This,
-    VARIANT varIndex,
-    ITuningSpace **TuningSpace);
-void __RPC_STUB ITuningSpaces_get_Item_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaces_get_EnumTuningSpaces_Proxy(
-    ITuningSpaces* This,
-    IEnumTuningSpaces **NewEnum);
-void __RPC_STUB ITuningSpaces_get_EnumTuningSpaces_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ITuningSpaces_INTERFACE_DEFINED__ */
 
@@ -1306,29 +1577,29 @@ typedef struct ITuningSpaceContainerVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ITuningSpaceContainer* This);
+        ITuningSpaceContainer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ITuningSpaceContainer* This);
+        ITuningSpaceContainer *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -1336,7 +1607,7 @@ typedef struct ITuningSpaceContainerVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -1348,66 +1619,67 @@ typedef struct ITuningSpaceContainerVtbl {
 
     /*** ITuningSpaceContainer methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Count)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         LONG *Count);
 
     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         IEnumVARIANT **NewEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_Item)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         VARIANT varIndex,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *put_Item)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         VARIANT varIndex,
         ITuningSpace *TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *TuningSpacesForCLSID)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         BSTR SpaceCLSID,
         ITuningSpaces **NewColl);
 
     HRESULT (STDMETHODCALLTYPE *_TuningSpacesForCLSID)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         REFCLSID SpaceCLSID,
         ITuningSpaces **NewColl);
 
     HRESULT (STDMETHODCALLTYPE *TuningSpacesForName)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         BSTR Name,
         ITuningSpaces **NewColl);
 
     HRESULT (STDMETHODCALLTYPE *FindID)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         ITuningSpace *TuningSpace,
         LONG *ID);
 
     HRESULT (STDMETHODCALLTYPE *Add)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         ITuningSpace *TuningSpace,
         VARIANT *NewIndex);
 
     HRESULT (STDMETHODCALLTYPE *get_EnumTuningSpaces)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         IEnumTuningSpaces **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *Remove)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         VARIANT Index);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxCount)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         LONG *MaxCount);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxCount)(
-        ITuningSpaceContainer* This,
+        ITuningSpaceContainer *This,
         LONG MaxCount);
 
     END_INTERFACE
 } ITuningSpaceContainerVtbl;
+
 interface ITuningSpaceContainer {
     CONST_VTBL ITuningSpaceContainerVtbl* lpVtbl;
 };
@@ -1506,117 +1778,6 @@ static FORCEINLINE HRESULT ITuningSpaceContainer_put_MaxCount(ITuningSpaceContai
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_get_Count_Proxy(
-    ITuningSpaceContainer* This,
-    LONG *Count);
-void __RPC_STUB ITuningSpaceContainer_get_Count_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_get__NewEnum_Proxy(
-    ITuningSpaceContainer* This,
-    IEnumVARIANT **NewEnum);
-void __RPC_STUB ITuningSpaceContainer_get__NewEnum_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_get_Item_Proxy(
-    ITuningSpaceContainer* This,
-    VARIANT varIndex,
-    ITuningSpace **TuningSpace);
-void __RPC_STUB ITuningSpaceContainer_get_Item_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_put_Item_Proxy(
-    ITuningSpaceContainer* This,
-    VARIANT varIndex,
-    ITuningSpace *TuningSpace);
-void __RPC_STUB ITuningSpaceContainer_put_Item_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_TuningSpacesForCLSID_Proxy(
-    ITuningSpaceContainer* This,
-    BSTR SpaceCLSID,
-    ITuningSpaces **NewColl);
-void __RPC_STUB ITuningSpaceContainer_TuningSpacesForCLSID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer__TuningSpacesForCLSID_Proxy(
-    ITuningSpaceContainer* This,
-    REFCLSID SpaceCLSID,
-    ITuningSpaces **NewColl);
-void __RPC_STUB ITuningSpaceContainer__TuningSpacesForCLSID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_TuningSpacesForName_Proxy(
-    ITuningSpaceContainer* This,
-    BSTR Name,
-    ITuningSpaces **NewColl);
-void __RPC_STUB ITuningSpaceContainer_TuningSpacesForName_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_FindID_Proxy(
-    ITuningSpaceContainer* This,
-    ITuningSpace *TuningSpace,
-    LONG *ID);
-void __RPC_STUB ITuningSpaceContainer_FindID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_Add_Proxy(
-    ITuningSpaceContainer* This,
-    ITuningSpace *TuningSpace,
-    VARIANT *NewIndex);
-void __RPC_STUB ITuningSpaceContainer_Add_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_get_EnumTuningSpaces_Proxy(
-    ITuningSpaceContainer* This,
-    IEnumTuningSpaces **ppEnum);
-void __RPC_STUB ITuningSpaceContainer_get_EnumTuningSpaces_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_Remove_Proxy(
-    ITuningSpaceContainer* This,
-    VARIANT Index);
-void __RPC_STUB ITuningSpaceContainer_Remove_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_get_MaxCount_Proxy(
-    ITuningSpaceContainer* This,
-    LONG *MaxCount);
-void __RPC_STUB ITuningSpaceContainer_get_MaxCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpaceContainer_put_MaxCount_Proxy(
-    ITuningSpaceContainer* This,
-    LONG MaxCount);
-void __RPC_STUB ITuningSpaceContainer_put_MaxCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ITuningSpaceContainer_INTERFACE_DEFINED__ */
 
@@ -1698,29 +1859,29 @@ typedef struct ITuningSpaceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ITuningSpace* This);
+        ITuningSpace *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ITuningSpace* This);
+        ITuningSpace *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -1728,7 +1889,7 @@ typedef struct ITuningSpaceVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -1740,83 +1901,84 @@ typedef struct ITuningSpaceVtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        ITuningSpace* This,
+        ITuningSpace *This,
         ITuningSpace **NewTS);
 
     END_INTERFACE
 } ITuningSpaceVtbl;
+
 interface ITuningSpace {
     CONST_VTBL ITuningSpaceVtbl* lpVtbl;
 };
@@ -1939,158 +2101,6 @@ static FORCEINLINE HRESULT ITuningSpace_Clone(ITuningSpace* This,ITuningSpace **
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ITuningSpace_get_UniqueName_Proxy(
-    ITuningSpace* This,
-    BSTR *Name);
-void __RPC_STUB ITuningSpace_get_UniqueName_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_put_UniqueName_Proxy(
-    ITuningSpace* This,
-    BSTR Name);
-void __RPC_STUB ITuningSpace_put_UniqueName_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_get_FriendlyName_Proxy(
-    ITuningSpace* This,
-    BSTR *Name);
-void __RPC_STUB ITuningSpace_get_FriendlyName_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_put_FriendlyName_Proxy(
-    ITuningSpace* This,
-    BSTR Name);
-void __RPC_STUB ITuningSpace_put_FriendlyName_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_get_CLSID_Proxy(
-    ITuningSpace* This,
-    BSTR *SpaceCLSID);
-void __RPC_STUB ITuningSpace_get_CLSID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_get_NetworkType_Proxy(
-    ITuningSpace* This,
-    BSTR *NetworkTypeGuid);
-void __RPC_STUB ITuningSpace_get_NetworkType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_put_NetworkType_Proxy(
-    ITuningSpace* This,
-    BSTR NetworkTypeGuid);
-void __RPC_STUB ITuningSpace_put_NetworkType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_get__NetworkType_Proxy(
-    ITuningSpace* This,
-    GUID *NetworkTypeGuid);
-void __RPC_STUB ITuningSpace_get__NetworkType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_put__NetworkType_Proxy(
-    ITuningSpace* This,
-    REFCLSID NetworkTypeGuid);
-void __RPC_STUB ITuningSpace_put__NetworkType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_CreateTuneRequest_Proxy(
-    ITuningSpace* This,
-    ITuneRequest **TuneRequest);
-void __RPC_STUB ITuningSpace_CreateTuneRequest_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_EnumCategoryGUIDs_Proxy(
-    ITuningSpace* This,
-    IEnumGUID **ppEnum);
-void __RPC_STUB ITuningSpace_EnumCategoryGUIDs_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_EnumDeviceMonikers_Proxy(
-    ITuningSpace* This,
-    IEnumMoniker **ppEnum);
-void __RPC_STUB ITuningSpace_EnumDeviceMonikers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_get_DefaultPreferredComponentTypes_Proxy(
-    ITuningSpace* This,
-    IComponentTypes **ComponentTypes);
-void __RPC_STUB ITuningSpace_get_DefaultPreferredComponentTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_put_DefaultPreferredComponentTypes_Proxy(
-    ITuningSpace* This,
-    IComponentTypes *NewComponentTypes);
-void __RPC_STUB ITuningSpace_put_DefaultPreferredComponentTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_get_FrequencyMapping_Proxy(
-    ITuningSpace* This,
-    BSTR *pMapping);
-void __RPC_STUB ITuningSpace_get_FrequencyMapping_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_put_FrequencyMapping_Proxy(
-    ITuningSpace* This,
-    BSTR Mapping);
-void __RPC_STUB ITuningSpace_put_FrequencyMapping_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_get_DefaultLocator_Proxy(
-    ITuningSpace* This,
-    ILocator **LocatorVal);
-void __RPC_STUB ITuningSpace_get_DefaultLocator_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_put_DefaultLocator_Proxy(
-    ITuningSpace* This,
-    ILocator *LocatorVal);
-void __RPC_STUB ITuningSpace_put_DefaultLocator_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuningSpace_Clone_Proxy(
-    ITuningSpace* This,
-    ITuningSpace **NewTS);
-void __RPC_STUB ITuningSpace_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ITuningSpace_INTERFACE_DEFINED__ */
 
@@ -2129,36 +2139,37 @@ typedef struct IEnumTuningSpacesVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumTuningSpaces* This,
+        IEnumTuningSpaces *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumTuningSpaces* This);
+        IEnumTuningSpaces *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumTuningSpaces* This);
+        IEnumTuningSpaces *This);
 
     /*** IEnumTuningSpaces methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumTuningSpaces* This,
+        IEnumTuningSpaces *This,
         ULONG celt,
         ITuningSpace **rgelt,
         ULONG *pceltFetched);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumTuningSpaces* This,
+        IEnumTuningSpaces *This,
         ULONG celt);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumTuningSpaces* This);
+        IEnumTuningSpaces *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumTuningSpaces* This,
+        IEnumTuningSpaces *This,
         IEnumTuningSpaces **ppEnum);
 
     END_INTERFACE
 } IEnumTuningSpacesVtbl;
+
 interface IEnumTuningSpaces {
     CONST_VTBL IEnumTuningSpacesVtbl* lpVtbl;
 };
@@ -2203,39 +2214,6 @@ static FORCEINLINE HRESULT IEnumTuningSpaces_Clone(IEnumTuningSpaces* This,IEnum
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IEnumTuningSpaces_Next_Proxy(
-    IEnumTuningSpaces* This,
-    ULONG celt,
-    ITuningSpace **rgelt,
-    ULONG *pceltFetched);
-void __RPC_STUB IEnumTuningSpaces_Next_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumTuningSpaces_Skip_Proxy(
-    IEnumTuningSpaces* This,
-    ULONG celt);
-void __RPC_STUB IEnumTuningSpaces_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumTuningSpaces_Reset_Proxy(
-    IEnumTuningSpaces* This);
-void __RPC_STUB IEnumTuningSpaces_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumTuningSpaces_Clone_Proxy(
-    IEnumTuningSpaces* This,
-    IEnumTuningSpaces **ppEnum);
-void __RPC_STUB IEnumTuningSpaces_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IEnumTuningSpaces_INTERFACE_DEFINED__ */
 
@@ -2266,29 +2244,29 @@ typedef struct IDVBTuningSpaceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDVBTuningSpace* This);
+        IDVBTuningSpace *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDVBTuningSpace* This);
+        IDVBTuningSpace *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -2296,7 +2274,7 @@ typedef struct IDVBTuningSpaceVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -2308,92 +2286,93 @@ typedef struct IDVBTuningSpaceVtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         ITuningSpace **NewTS);
 
     /*** IDVBTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_SystemType)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         DVBSystemType *SysType);
 
     HRESULT (STDMETHODCALLTYPE *put_SystemType)(
-        IDVBTuningSpace* This,
+        IDVBTuningSpace *This,
         DVBSystemType SysType);
 
     END_INTERFACE
 } IDVBTuningSpaceVtbl;
+
 interface IDVBTuningSpace {
     CONST_VTBL IDVBTuningSpaceVtbl* lpVtbl;
 };
@@ -2526,22 +2505,6 @@ static FORCEINLINE HRESULT IDVBTuningSpace_put_SystemType(IDVBTuningSpace* This,
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDVBTuningSpace_get_SystemType_Proxy(
-    IDVBTuningSpace* This,
-    DVBSystemType *SysType);
-void __RPC_STUB IDVBTuningSpace_get_SystemType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTuningSpace_put_SystemType_Proxy(
-    IDVBTuningSpace* This,
-    DVBSystemType SysType);
-void __RPC_STUB IDVBTuningSpace_put_SystemType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDVBTuningSpace_INTERFACE_DEFINED__ */
 
@@ -2572,29 +2535,29 @@ typedef struct IDVBTuningSpace2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDVBTuningSpace2* This);
+        IDVBTuningSpace2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDVBTuningSpace2* This);
+        IDVBTuningSpace2 *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -2602,7 +2565,7 @@ typedef struct IDVBTuningSpace2Vtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -2614,101 +2577,102 @@ typedef struct IDVBTuningSpace2Vtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         ITuningSpace **NewTS);
 
     /*** IDVBTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_SystemType)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         DVBSystemType *SysType);
 
     HRESULT (STDMETHODCALLTYPE *put_SystemType)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         DVBSystemType SysType);
 
     /*** IDVBTuningSpace2 methods ***/
     HRESULT (STDMETHODCALLTYPE *get_NetworkID)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         LONG *NetworkID);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkID)(
-        IDVBTuningSpace2* This,
+        IDVBTuningSpace2 *This,
         LONG NetworkID);
 
     END_INTERFACE
 } IDVBTuningSpace2Vtbl;
+
 interface IDVBTuningSpace2 {
     CONST_VTBL IDVBTuningSpace2Vtbl* lpVtbl;
 };
@@ -2851,22 +2815,6 @@ static FORCEINLINE HRESULT IDVBTuningSpace2_put_NetworkID(IDVBTuningSpace2* This
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDVBTuningSpace2_get_NetworkID_Proxy(
-    IDVBTuningSpace2* This,
-    LONG *NetworkID);
-void __RPC_STUB IDVBTuningSpace2_get_NetworkID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTuningSpace2_put_NetworkID_Proxy(
-    IDVBTuningSpace2* This,
-    LONG NetworkID);
-void __RPC_STUB IDVBTuningSpace2_put_NetworkID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDVBTuningSpace2_INTERFACE_DEFINED__ */
 
@@ -2921,29 +2869,29 @@ typedef struct IDVBSTuningSpaceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDVBSTuningSpace* This);
+        IDVBSTuningSpace *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDVBSTuningSpace* This);
+        IDVBSTuningSpace *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -2951,7 +2899,7 @@ typedef struct IDVBSTuningSpaceVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -2963,142 +2911,143 @@ typedef struct IDVBSTuningSpaceVtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         ITuningSpace **NewTS);
 
     /*** IDVBTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_SystemType)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         DVBSystemType *SysType);
 
     HRESULT (STDMETHODCALLTYPE *put_SystemType)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         DVBSystemType SysType);
 
     /*** IDVBTuningSpace2 methods ***/
     HRESULT (STDMETHODCALLTYPE *get_NetworkID)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         LONG *NetworkID);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkID)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         LONG NetworkID);
 
     /*** IDVBSTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_LowOscillator)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         LONG *LowOscillator);
 
     HRESULT (STDMETHODCALLTYPE *put_LowOscillator)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         LONG LowOscillator);
 
     HRESULT (STDMETHODCALLTYPE *get_HighOscillator)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         LONG *HighOscillator);
 
     HRESULT (STDMETHODCALLTYPE *put_HighOscillator)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         LONG HighOscillator);
 
     HRESULT (STDMETHODCALLTYPE *get_LNBSwitch)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         LONG *LNBSwitch);
 
     HRESULT (STDMETHODCALLTYPE *put_LNBSwitch)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         LONG LNBSwitch);
 
     HRESULT (STDMETHODCALLTYPE *get_InputRange)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR *InputRange);
 
     HRESULT (STDMETHODCALLTYPE *put_InputRange)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         BSTR InputRange);
 
     HRESULT (STDMETHODCALLTYPE *get_SpectralInversion)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         SpectralInversion *SpectralInversionVal);
 
     HRESULT (STDMETHODCALLTYPE *put_SpectralInversion)(
-        IDVBSTuningSpace* This,
+        IDVBSTuningSpace *This,
         SpectralInversion SpectralInversionVal);
 
     END_INTERFACE
 } IDVBSTuningSpaceVtbl;
+
 interface IDVBSTuningSpace {
     CONST_VTBL IDVBSTuningSpaceVtbl* lpVtbl;
 };
@@ -3283,86 +3232,6 @@ static FORCEINLINE HRESULT IDVBSTuningSpace_put_SpectralInversion(IDVBSTuningSpa
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDVBSTuningSpace_get_LowOscillator_Proxy(
-    IDVBSTuningSpace* This,
-    LONG *LowOscillator);
-void __RPC_STUB IDVBSTuningSpace_get_LowOscillator_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSTuningSpace_put_LowOscillator_Proxy(
-    IDVBSTuningSpace* This,
-    LONG LowOscillator);
-void __RPC_STUB IDVBSTuningSpace_put_LowOscillator_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSTuningSpace_get_HighOscillator_Proxy(
-    IDVBSTuningSpace* This,
-    LONG *HighOscillator);
-void __RPC_STUB IDVBSTuningSpace_get_HighOscillator_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSTuningSpace_put_HighOscillator_Proxy(
-    IDVBSTuningSpace* This,
-    LONG HighOscillator);
-void __RPC_STUB IDVBSTuningSpace_put_HighOscillator_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSTuningSpace_get_LNBSwitch_Proxy(
-    IDVBSTuningSpace* This,
-    LONG *LNBSwitch);
-void __RPC_STUB IDVBSTuningSpace_get_LNBSwitch_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSTuningSpace_put_LNBSwitch_Proxy(
-    IDVBSTuningSpace* This,
-    LONG LNBSwitch);
-void __RPC_STUB IDVBSTuningSpace_put_LNBSwitch_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSTuningSpace_get_InputRange_Proxy(
-    IDVBSTuningSpace* This,
-    BSTR *InputRange);
-void __RPC_STUB IDVBSTuningSpace_get_InputRange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSTuningSpace_put_InputRange_Proxy(
-    IDVBSTuningSpace* This,
-    BSTR InputRange);
-void __RPC_STUB IDVBSTuningSpace_put_InputRange_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSTuningSpace_get_SpectralInversion_Proxy(
-    IDVBSTuningSpace* This,
-    SpectralInversion *SpectralInversionVal);
-void __RPC_STUB IDVBSTuningSpace_get_SpectralInversion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSTuningSpace_put_SpectralInversion_Proxy(
-    IDVBSTuningSpace* This,
-    SpectralInversion SpectralInversionVal);
-void __RPC_STUB IDVBSTuningSpace_put_SpectralInversion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDVBSTuningSpace_INTERFACE_DEFINED__ */
 
@@ -3387,29 +3256,29 @@ typedef struct IAuxInTuningSpaceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAuxInTuningSpace* This);
+        IAuxInTuningSpace *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAuxInTuningSpace* This);
+        IAuxInTuningSpace *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -3417,7 +3286,7 @@ typedef struct IAuxInTuningSpaceVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -3429,83 +3298,84 @@ typedef struct IAuxInTuningSpaceVtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IAuxInTuningSpace* This,
+        IAuxInTuningSpace *This,
         ITuningSpace **NewTS);
 
     END_INTERFACE
 } IAuxInTuningSpaceVtbl;
+
 interface IAuxInTuningSpace {
     CONST_VTBL IAuxInTuningSpaceVtbl* lpVtbl;
 };
@@ -3658,29 +3528,29 @@ typedef struct IAuxInTuningSpace2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAuxInTuningSpace2* This);
+        IAuxInTuningSpace2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAuxInTuningSpace2* This);
+        IAuxInTuningSpace2 *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -3688,7 +3558,7 @@ typedef struct IAuxInTuningSpace2Vtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -3700,92 +3570,93 @@ typedef struct IAuxInTuningSpace2Vtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         ITuningSpace **NewTS);
 
     /*** IAuxInTuningSpace2 methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         LONG *CountryCodeVal);
 
     HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
-        IAuxInTuningSpace2* This,
+        IAuxInTuningSpace2 *This,
         LONG NewCountryCodeVal);
 
     END_INTERFACE
 } IAuxInTuningSpace2Vtbl;
+
 interface IAuxInTuningSpace2 {
     CONST_VTBL IAuxInTuningSpace2Vtbl* lpVtbl;
 };
@@ -3918,22 +3789,6 @@ static FORCEINLINE HRESULT IAuxInTuningSpace2_put_CountryCode(IAuxInTuningSpace2
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAuxInTuningSpace2_get_CountryCode_Proxy(
-    IAuxInTuningSpace2* This,
-    LONG *CountryCodeVal);
-void __RPC_STUB IAuxInTuningSpace2_get_CountryCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAuxInTuningSpace2_put_CountryCode_Proxy(
-    IAuxInTuningSpace2* This,
-    LONG NewCountryCodeVal);
-void __RPC_STUB IAuxInTuningSpace2_put_CountryCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IAuxInTuningSpace2_INTERFACE_DEFINED__ */
 
@@ -3982,29 +3837,29 @@ typedef struct IAnalogTVTuningSpaceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAnalogTVTuningSpace* This);
+        IAnalogTVTuningSpace *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAnalogTVTuningSpace* This);
+        IAnalogTVTuningSpace *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -4012,7 +3867,7 @@ typedef struct IAnalogTVTuningSpaceVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -4024,116 +3879,117 @@ typedef struct IAnalogTVTuningSpaceVtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         ITuningSpace **NewTS);
 
     /*** IAnalogTVTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MinChannel)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         LONG *MinChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinChannel)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         LONG NewMinChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxChannel)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         LONG *MaxChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxChannel)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         LONG NewMaxChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_InputType)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         TunerInputType *InputTypeVal);
 
     HRESULT (STDMETHODCALLTYPE *put_InputType)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         TunerInputType NewInputTypeVal);
 
     HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         LONG *CountryCodeVal);
 
     HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
-        IAnalogTVTuningSpace* This,
+        IAnalogTVTuningSpace *This,
         LONG NewCountryCodeVal);
 
     END_INTERFACE
 } IAnalogTVTuningSpaceVtbl;
+
 interface IAnalogTVTuningSpace {
     CONST_VTBL IAnalogTVTuningSpaceVtbl* lpVtbl;
 };
@@ -4290,70 +4146,6 @@ static FORCEINLINE HRESULT IAnalogTVTuningSpace_put_CountryCode(IAnalogTVTuningS
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAnalogTVTuningSpace_get_MinChannel_Proxy(
-    IAnalogTVTuningSpace* This,
-    LONG *MinChannelVal);
-void __RPC_STUB IAnalogTVTuningSpace_get_MinChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogTVTuningSpace_put_MinChannel_Proxy(
-    IAnalogTVTuningSpace* This,
-    LONG NewMinChannelVal);
-void __RPC_STUB IAnalogTVTuningSpace_put_MinChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogTVTuningSpace_get_MaxChannel_Proxy(
-    IAnalogTVTuningSpace* This,
-    LONG *MaxChannelVal);
-void __RPC_STUB IAnalogTVTuningSpace_get_MaxChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogTVTuningSpace_put_MaxChannel_Proxy(
-    IAnalogTVTuningSpace* This,
-    LONG NewMaxChannelVal);
-void __RPC_STUB IAnalogTVTuningSpace_put_MaxChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogTVTuningSpace_get_InputType_Proxy(
-    IAnalogTVTuningSpace* This,
-    TunerInputType *InputTypeVal);
-void __RPC_STUB IAnalogTVTuningSpace_get_InputType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogTVTuningSpace_put_InputType_Proxy(
-    IAnalogTVTuningSpace* This,
-    TunerInputType NewInputTypeVal);
-void __RPC_STUB IAnalogTVTuningSpace_put_InputType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogTVTuningSpace_get_CountryCode_Proxy(
-    IAnalogTVTuningSpace* This,
-    LONG *CountryCodeVal);
-void __RPC_STUB IAnalogTVTuningSpace_get_CountryCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogTVTuningSpace_put_CountryCode_Proxy(
-    IAnalogTVTuningSpace* This,
-    LONG NewCountryCodeVal);
-void __RPC_STUB IAnalogTVTuningSpace_put_CountryCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IAnalogTVTuningSpace_INTERFACE_DEFINED__ */
 
@@ -4402,29 +4194,29 @@ typedef struct IATSCTuningSpaceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IATSCTuningSpace* This);
+        IATSCTuningSpace *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IATSCTuningSpace* This);
+        IATSCTuningSpace *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -4432,7 +4224,7 @@ typedef struct IATSCTuningSpaceVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -4444,149 +4236,150 @@ typedef struct IATSCTuningSpaceVtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         ITuningSpace **NewTS);
 
     /*** IAnalogTVTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MinChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG *MinChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG NewMinChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG *MaxChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG NewMaxChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_InputType)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         TunerInputType *InputTypeVal);
 
     HRESULT (STDMETHODCALLTYPE *put_InputType)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         TunerInputType NewInputTypeVal);
 
     HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG *CountryCodeVal);
 
     HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG NewCountryCodeVal);
 
     /*** IATSCTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MinMinorChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG *MinMinorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinMinorChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG NewMinMinorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxMinorChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG *MaxMinorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxMinorChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG NewMaxMinorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MinPhysicalChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG *MinPhysicalChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinPhysicalChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG NewMinPhysicalChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxPhysicalChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG *MaxPhysicalChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxPhysicalChannel)(
-        IATSCTuningSpace* This,
+        IATSCTuningSpace *This,
         LONG NewMaxPhysicalChannelVal);
 
     END_INTERFACE
 } IATSCTuningSpaceVtbl;
+
 interface IATSCTuningSpace {
     CONST_VTBL IATSCTuningSpaceVtbl* lpVtbl;
 };
@@ -4777,70 +4570,6 @@ static FORCEINLINE HRESULT IATSCTuningSpace_put_MaxPhysicalChannel(IATSCTuningSp
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IATSCTuningSpace_get_MinMinorChannel_Proxy(
-    IATSCTuningSpace* This,
-    LONG *MinMinorChannelVal);
-void __RPC_STUB IATSCTuningSpace_get_MinMinorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCTuningSpace_put_MinMinorChannel_Proxy(
-    IATSCTuningSpace* This,
-    LONG NewMinMinorChannelVal);
-void __RPC_STUB IATSCTuningSpace_put_MinMinorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCTuningSpace_get_MaxMinorChannel_Proxy(
-    IATSCTuningSpace* This,
-    LONG *MaxMinorChannelVal);
-void __RPC_STUB IATSCTuningSpace_get_MaxMinorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCTuningSpace_put_MaxMinorChannel_Proxy(
-    IATSCTuningSpace* This,
-    LONG NewMaxMinorChannelVal);
-void __RPC_STUB IATSCTuningSpace_put_MaxMinorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCTuningSpace_get_MinPhysicalChannel_Proxy(
-    IATSCTuningSpace* This,
-    LONG *MinPhysicalChannelVal);
-void __RPC_STUB IATSCTuningSpace_get_MinPhysicalChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCTuningSpace_put_MinPhysicalChannel_Proxy(
-    IATSCTuningSpace* This,
-    LONG NewMinPhysicalChannelVal);
-void __RPC_STUB IATSCTuningSpace_put_MinPhysicalChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCTuningSpace_get_MaxPhysicalChannel_Proxy(
-    IATSCTuningSpace* This,
-    LONG *MaxPhysicalChannelVal);
-void __RPC_STUB IATSCTuningSpace_get_MaxPhysicalChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCTuningSpace_put_MaxPhysicalChannel_Proxy(
-    IATSCTuningSpace* This,
-    LONG NewMaxPhysicalChannelVal);
-void __RPC_STUB IATSCTuningSpace_put_MaxPhysicalChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IATSCTuningSpace_INTERFACE_DEFINED__ */
 
@@ -4889,29 +4618,29 @@ typedef struct IDigitalCableTuningSpaceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDigitalCableTuningSpace* This);
+        IDigitalCableTuningSpace *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDigitalCableTuningSpace* This);
+        IDigitalCableTuningSpace *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -4919,7 +4648,7 @@ typedef struct IDigitalCableTuningSpaceVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -4931,182 +4660,183 @@ typedef struct IDigitalCableTuningSpaceVtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         ITuningSpace **NewTS);
 
     /*** IAnalogTVTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MinChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *MinChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewMinChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *MaxChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewMaxChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_InputType)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         TunerInputType *InputTypeVal);
 
     HRESULT (STDMETHODCALLTYPE *put_InputType)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         TunerInputType NewInputTypeVal);
 
     HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *CountryCodeVal);
 
     HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewCountryCodeVal);
 
     /*** IATSCTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MinMinorChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *MinMinorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinMinorChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewMinMinorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxMinorChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *MaxMinorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxMinorChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewMaxMinorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MinPhysicalChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *MinPhysicalChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinPhysicalChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewMinPhysicalChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxPhysicalChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *MaxPhysicalChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxPhysicalChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewMaxPhysicalChannelVal);
 
     /*** IDigitalCableTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MinMajorChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *MinMajorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinMajorChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewMinMajorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxMajorChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *MaxMajorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxMajorChannel)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewMaxMajorChannelVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MinSourceID)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *MinSourceIDVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinSourceID)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewMinSourceIDVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxSourceID)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG *MaxSourceIDVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxSourceID)(
-        IDigitalCableTuningSpace* This,
+        IDigitalCableTuningSpace *This,
         LONG NewMaxSourceIDVal);
 
     END_INTERFACE
 } IDigitalCableTuningSpaceVtbl;
+
 interface IDigitalCableTuningSpace {
     CONST_VTBL IDigitalCableTuningSpaceVtbl* lpVtbl;
 };
@@ -5331,70 +5061,6 @@ static FORCEINLINE HRESULT IDigitalCableTuningSpace_put_MaxSourceID(IDigitalCabl
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDigitalCableTuningSpace_get_MinMajorChannel_Proxy(
-    IDigitalCableTuningSpace* This,
-    LONG *MinMajorChannelVal);
-void __RPC_STUB IDigitalCableTuningSpace_get_MinMajorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDigitalCableTuningSpace_put_MinMajorChannel_Proxy(
-    IDigitalCableTuningSpace* This,
-    LONG NewMinMajorChannelVal);
-void __RPC_STUB IDigitalCableTuningSpace_put_MinMajorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDigitalCableTuningSpace_get_MaxMajorChannel_Proxy(
-    IDigitalCableTuningSpace* This,
-    LONG *MaxMajorChannelVal);
-void __RPC_STUB IDigitalCableTuningSpace_get_MaxMajorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDigitalCableTuningSpace_put_MaxMajorChannel_Proxy(
-    IDigitalCableTuningSpace* This,
-    LONG NewMaxMajorChannelVal);
-void __RPC_STUB IDigitalCableTuningSpace_put_MaxMajorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDigitalCableTuningSpace_get_MinSourceID_Proxy(
-    IDigitalCableTuningSpace* This,
-    LONG *MinSourceIDVal);
-void __RPC_STUB IDigitalCableTuningSpace_get_MinSourceID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDigitalCableTuningSpace_put_MinSourceID_Proxy(
-    IDigitalCableTuningSpace* This,
-    LONG NewMinSourceIDVal);
-void __RPC_STUB IDigitalCableTuningSpace_put_MinSourceID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDigitalCableTuningSpace_get_MaxSourceID_Proxy(
-    IDigitalCableTuningSpace* This,
-    LONG *MaxSourceIDVal);
-void __RPC_STUB IDigitalCableTuningSpace_get_MaxSourceID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDigitalCableTuningSpace_put_MaxSourceID_Proxy(
-    IDigitalCableTuningSpace* This,
-    LONG NewMaxSourceIDVal);
-void __RPC_STUB IDigitalCableTuningSpace_put_MaxSourceID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDigitalCableTuningSpace_INTERFACE_DEFINED__ */
 
@@ -5437,29 +5103,29 @@ typedef struct IAnalogRadioTuningSpaceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAnalogRadioTuningSpace* This);
+        IAnalogRadioTuningSpace *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAnalogRadioTuningSpace* This);
+        IAnalogRadioTuningSpace *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -5467,7 +5133,7 @@ typedef struct IAnalogRadioTuningSpaceVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -5479,108 +5145,109 @@ typedef struct IAnalogRadioTuningSpaceVtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         ITuningSpace **NewTS);
 
     /*** IAnalogRadioTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MinFrequency)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         LONG *MinFrequencyVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinFrequency)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         LONG NewMinFrequencyVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxFrequency)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         LONG *MaxFrequencyVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxFrequency)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         LONG NewMaxFrequencyVal);
 
     HRESULT (STDMETHODCALLTYPE *get_Step)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         LONG *StepVal);
 
     HRESULT (STDMETHODCALLTYPE *put_Step)(
-        IAnalogRadioTuningSpace* This,
+        IAnalogRadioTuningSpace *This,
         LONG NewStepVal);
 
     END_INTERFACE
 } IAnalogRadioTuningSpaceVtbl;
+
 interface IAnalogRadioTuningSpace {
     CONST_VTBL IAnalogRadioTuningSpaceVtbl* lpVtbl;
 };
@@ -5729,54 +5396,6 @@ static FORCEINLINE HRESULT IAnalogRadioTuningSpace_put_Step(IAnalogRadioTuningSp
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAnalogRadioTuningSpace_get_MinFrequency_Proxy(
-    IAnalogRadioTuningSpace* This,
-    LONG *MinFrequencyVal);
-void __RPC_STUB IAnalogRadioTuningSpace_get_MinFrequency_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogRadioTuningSpace_put_MinFrequency_Proxy(
-    IAnalogRadioTuningSpace* This,
-    LONG NewMinFrequencyVal);
-void __RPC_STUB IAnalogRadioTuningSpace_put_MinFrequency_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogRadioTuningSpace_get_MaxFrequency_Proxy(
-    IAnalogRadioTuningSpace* This,
-    LONG *MaxFrequencyVal);
-void __RPC_STUB IAnalogRadioTuningSpace_get_MaxFrequency_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogRadioTuningSpace_put_MaxFrequency_Proxy(
-    IAnalogRadioTuningSpace* This,
-    LONG NewMaxFrequencyVal);
-void __RPC_STUB IAnalogRadioTuningSpace_put_MaxFrequency_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogRadioTuningSpace_get_Step_Proxy(
-    IAnalogRadioTuningSpace* This,
-    LONG *StepVal);
-void __RPC_STUB IAnalogRadioTuningSpace_get_Step_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogRadioTuningSpace_put_Step_Proxy(
-    IAnalogRadioTuningSpace* This,
-    LONG NewStepVal);
-void __RPC_STUB IAnalogRadioTuningSpace_put_Step_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IAnalogRadioTuningSpace_INTERFACE_DEFINED__ */
 
@@ -5807,29 +5426,29 @@ typedef struct IAnalogRadioTuningSpace2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAnalogRadioTuningSpace2* This);
+        IAnalogRadioTuningSpace2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAnalogRadioTuningSpace2* This);
+        IAnalogRadioTuningSpace2 *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -5837,7 +5456,7 @@ typedef struct IAnalogRadioTuningSpace2Vtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -5849,117 +5468,118 @@ typedef struct IAnalogRadioTuningSpace2Vtbl {
 
     /*** ITuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_UniqueName)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_UniqueName)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_FriendlyName)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         BSTR *Name);
 
     HRESULT (STDMETHODCALLTYPE *put_FriendlyName)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         BSTR Name);
 
     HRESULT (STDMETHODCALLTYPE *get_CLSID)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         BSTR *SpaceCLSID);
 
     HRESULT (STDMETHODCALLTYPE *get_NetworkType)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         BSTR *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put_NetworkType)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         BSTR NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get__NetworkType)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         GUID *NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__NetworkType)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         REFCLSID NetworkTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *EnumCategoryGUIDs)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         IEnumGUID **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumDeviceMonikers)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         IEnumMoniker **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultPreferredComponentTypes)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultPreferredComponentTypes)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         IComponentTypes *NewComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_FrequencyMapping)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         BSTR *pMapping);
 
     HRESULT (STDMETHODCALLTYPE *put_FrequencyMapping)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         BSTR Mapping);
 
     HRESULT (STDMETHODCALLTYPE *get_DefaultLocator)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         ILocator **LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DefaultLocator)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         ILocator *LocatorVal);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         ITuningSpace **NewTS);
 
     /*** IAnalogRadioTuningSpace methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MinFrequency)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         LONG *MinFrequencyVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MinFrequency)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         LONG NewMinFrequencyVal);
 
     HRESULT (STDMETHODCALLTYPE *get_MaxFrequency)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         LONG *MaxFrequencyVal);
 
     HRESULT (STDMETHODCALLTYPE *put_MaxFrequency)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         LONG NewMaxFrequencyVal);
 
     HRESULT (STDMETHODCALLTYPE *get_Step)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         LONG *StepVal);
 
     HRESULT (STDMETHODCALLTYPE *put_Step)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         LONG NewStepVal);
 
     /*** IAnalogRadioTuningSpace2 methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CountryCode)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         LONG *CountryCodeVal);
 
     HRESULT (STDMETHODCALLTYPE *put_CountryCode)(
-        IAnalogRadioTuningSpace2* This,
+        IAnalogRadioTuningSpace2 *This,
         LONG NewCountryCodeVal);
 
     END_INTERFACE
 } IAnalogRadioTuningSpace2Vtbl;
+
 interface IAnalogRadioTuningSpace2 {
     CONST_VTBL IAnalogRadioTuningSpace2Vtbl* lpVtbl;
 };
@@ -6118,22 +5738,6 @@ static FORCEINLINE HRESULT IAnalogRadioTuningSpace2_put_CountryCode(IAnalogRadio
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAnalogRadioTuningSpace2_get_CountryCode_Proxy(
-    IAnalogRadioTuningSpace2* This,
-    LONG *CountryCodeVal);
-void __RPC_STUB IAnalogRadioTuningSpace2_get_CountryCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogRadioTuningSpace2_put_CountryCode_Proxy(
-    IAnalogRadioTuningSpace2* This,
-    LONG NewCountryCodeVal);
-void __RPC_STUB IAnalogRadioTuningSpace2_put_CountryCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IAnalogRadioTuningSpace2_INTERFACE_DEFINED__ */
 
@@ -6173,29 +5777,29 @@ typedef struct ITuneRequestVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ITuneRequest* This,
+        ITuneRequest *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ITuneRequest* This);
+        ITuneRequest *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ITuneRequest* This);
+        ITuneRequest *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        ITuneRequest* This,
+        ITuneRequest *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        ITuneRequest* This,
+        ITuneRequest *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        ITuneRequest* This,
+        ITuneRequest *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -6203,7 +5807,7 @@ typedef struct ITuneRequestVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        ITuneRequest* This,
+        ITuneRequest *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -6215,27 +5819,28 @@ typedef struct ITuneRequestVtbl {
 
     /*** ITuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
-        ITuneRequest* This,
+        ITuneRequest *This,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *get_Components)(
-        ITuneRequest* This,
+        ITuneRequest *This,
         IComponents **Components);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        ITuneRequest* This,
+        ITuneRequest *This,
         ITuneRequest **NewTuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *get_Locator)(
-        ITuneRequest* This,
+        ITuneRequest *This,
         ILocator **Locator);
 
     HRESULT (STDMETHODCALLTYPE *put_Locator)(
-        ITuneRequest* This,
+        ITuneRequest *This,
         ILocator *Locator);
 
     END_INTERFACE
 } ITuneRequestVtbl;
+
 interface ITuneRequest {
     CONST_VTBL ITuneRequestVtbl* lpVtbl;
 };
@@ -6302,46 +5907,6 @@ static FORCEINLINE HRESULT ITuneRequest_put_Locator(ITuneRequest* This,ILocator
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ITuneRequest_get_TuningSpace_Proxy(
-    ITuneRequest* This,
-    ITuningSpace **TuningSpace);
-void __RPC_STUB ITuneRequest_get_TuningSpace_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuneRequest_get_Components_Proxy(
-    ITuneRequest* This,
-    IComponents **Components);
-void __RPC_STUB ITuneRequest_get_Components_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuneRequest_Clone_Proxy(
-    ITuneRequest* This,
-    ITuneRequest **NewTuneRequest);
-void __RPC_STUB ITuneRequest_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuneRequest_get_Locator_Proxy(
-    ITuneRequest* This,
-    ILocator **Locator);
-void __RPC_STUB ITuneRequest_get_Locator_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuneRequest_put_Locator_Proxy(
-    ITuneRequest* This,
-    ILocator *Locator);
-void __RPC_STUB ITuneRequest_put_Locator_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ITuneRequest_INTERFACE_DEFINED__ */
 
@@ -6372,29 +5937,29 @@ typedef struct IChannelIDTuneRequestVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IChannelIDTuneRequest* This);
+        IChannelIDTuneRequest *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IChannelIDTuneRequest* This);
+        IChannelIDTuneRequest *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -6402,7 +5967,7 @@ typedef struct IChannelIDTuneRequestVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -6414,36 +5979,37 @@ typedef struct IChannelIDTuneRequestVtbl {
 
     /*** ITuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *get_Components)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         IComponents **Components);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         ITuneRequest **NewTuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *get_Locator)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         ILocator **Locator);
 
     HRESULT (STDMETHODCALLTYPE *put_Locator)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         ILocator *Locator);
 
     /*** IChannelIDTuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_ChannelID)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         BSTR *ChannelID);
 
     HRESULT (STDMETHODCALLTYPE *put_ChannelID)(
-        IChannelIDTuneRequest* This,
+        IChannelIDTuneRequest *This,
         BSTR ChannelID);
 
     END_INTERFACE
 } IChannelIDTuneRequestVtbl;
+
 interface IChannelIDTuneRequest {
     CONST_VTBL IChannelIDTuneRequestVtbl* lpVtbl;
 };
@@ -6520,22 +6086,6 @@ static FORCEINLINE HRESULT IChannelIDTuneRequest_put_ChannelID(IChannelIDTuneReq
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IChannelIDTuneRequest_get_ChannelID_Proxy(
-    IChannelIDTuneRequest* This,
-    BSTR *ChannelID);
-void __RPC_STUB IChannelIDTuneRequest_get_ChannelID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IChannelIDTuneRequest_put_ChannelID_Proxy(
-    IChannelIDTuneRequest* This,
-    BSTR ChannelID);
-void __RPC_STUB IChannelIDTuneRequest_put_ChannelID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IChannelIDTuneRequest_INTERFACE_DEFINED__ */
 
@@ -6566,29 +6116,29 @@ typedef struct IChannelTuneRequestVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IChannelTuneRequest* This);
+        IChannelTuneRequest *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IChannelTuneRequest* This);
+        IChannelTuneRequest *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -6596,7 +6146,7 @@ typedef struct IChannelTuneRequestVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -6608,36 +6158,37 @@ typedef struct IChannelTuneRequestVtbl {
 
     /*** ITuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *get_Components)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         IComponents **Components);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         ITuneRequest **NewTuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *get_Locator)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         ILocator **Locator);
 
     HRESULT (STDMETHODCALLTYPE *put_Locator)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         ILocator *Locator);
 
     /*** IChannelTuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Channel)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         LONG *Channel);
 
     HRESULT (STDMETHODCALLTYPE *put_Channel)(
-        IChannelTuneRequest* This,
+        IChannelTuneRequest *This,
         LONG Channel);
 
     END_INTERFACE
 } IChannelTuneRequestVtbl;
+
 interface IChannelTuneRequest {
     CONST_VTBL IChannelTuneRequestVtbl* lpVtbl;
 };
@@ -6714,22 +6265,6 @@ static FORCEINLINE HRESULT IChannelTuneRequest_put_Channel(IChannelTuneRequest*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IChannelTuneRequest_get_Channel_Proxy(
-    IChannelTuneRequest* This,
-    LONG *Channel);
-void __RPC_STUB IChannelTuneRequest_get_Channel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IChannelTuneRequest_put_Channel_Proxy(
-    IChannelTuneRequest* This,
-    LONG Channel);
-void __RPC_STUB IChannelTuneRequest_put_Channel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IChannelTuneRequest_INTERFACE_DEFINED__ */
 
@@ -6760,29 +6295,29 @@ typedef struct IATSCChannelTuneRequestVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IATSCChannelTuneRequest* This);
+        IATSCChannelTuneRequest *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IATSCChannelTuneRequest* This);
+        IATSCChannelTuneRequest *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -6790,7 +6325,7 @@ typedef struct IATSCChannelTuneRequestVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -6802,45 +6337,46 @@ typedef struct IATSCChannelTuneRequestVtbl {
 
     /*** ITuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *get_Components)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         IComponents **Components);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         ITuneRequest **NewTuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *get_Locator)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         ILocator **Locator);
 
     HRESULT (STDMETHODCALLTYPE *put_Locator)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         ILocator *Locator);
 
     /*** IChannelTuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Channel)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         LONG *Channel);
 
     HRESULT (STDMETHODCALLTYPE *put_Channel)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         LONG Channel);
 
     /*** IATSCChannelTuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MinorChannel)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         LONG *MinorChannel);
 
     HRESULT (STDMETHODCALLTYPE *put_MinorChannel)(
-        IATSCChannelTuneRequest* This,
+        IATSCChannelTuneRequest *This,
         LONG MinorChannel);
 
     END_INTERFACE
 } IATSCChannelTuneRequestVtbl;
+
 interface IATSCChannelTuneRequest {
     CONST_VTBL IATSCChannelTuneRequestVtbl* lpVtbl;
 };
@@ -6927,22 +6463,6 @@ static FORCEINLINE HRESULT IATSCChannelTuneRequest_put_MinorChannel(IATSCChannel
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IATSCChannelTuneRequest_get_MinorChannel_Proxy(
-    IATSCChannelTuneRequest* This,
-    LONG *MinorChannel);
-void __RPC_STUB IATSCChannelTuneRequest_get_MinorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCChannelTuneRequest_put_MinorChannel_Proxy(
-    IATSCChannelTuneRequest* This,
-    LONG MinorChannel);
-void __RPC_STUB IATSCChannelTuneRequest_put_MinorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IATSCChannelTuneRequest_INTERFACE_DEFINED__ */
 
@@ -6979,29 +6499,29 @@ typedef struct IDigitalCableTuneRequestVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDigitalCableTuneRequest* This);
+        IDigitalCableTuneRequest *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDigitalCableTuneRequest* This);
+        IDigitalCableTuneRequest *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -7009,7 +6529,7 @@ typedef struct IDigitalCableTuneRequestVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -7021,62 +6541,63 @@ typedef struct IDigitalCableTuneRequestVtbl {
 
     /*** ITuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *get_Components)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         IComponents **Components);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         ITuneRequest **NewTuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *get_Locator)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         ILocator **Locator);
 
     HRESULT (STDMETHODCALLTYPE *put_Locator)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         ILocator *Locator);
 
     /*** IChannelTuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Channel)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         LONG *Channel);
 
     HRESULT (STDMETHODCALLTYPE *put_Channel)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         LONG Channel);
 
     /*** IATSCChannelTuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MinorChannel)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         LONG *MinorChannel);
 
     HRESULT (STDMETHODCALLTYPE *put_MinorChannel)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         LONG MinorChannel);
 
     /*** IDigitalCableTuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MajorChannel)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         LONG *pMajorChannel);
 
     HRESULT (STDMETHODCALLTYPE *put_MajorChannel)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         LONG MajorChannel);
 
     HRESULT (STDMETHODCALLTYPE *get_SourceID)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         LONG *pSourceID);
 
     HRESULT (STDMETHODCALLTYPE *put_SourceID)(
-        IDigitalCableTuneRequest* This,
+        IDigitalCableTuneRequest *This,
         LONG SourceID);
 
     END_INTERFACE
 } IDigitalCableTuneRequestVtbl;
+
 interface IDigitalCableTuneRequest {
     CONST_VTBL IDigitalCableTuneRequestVtbl* lpVtbl;
 };
@@ -7181,38 +6702,6 @@ static FORCEINLINE HRESULT IDigitalCableTuneRequest_put_SourceID(IDigitalCableTu
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDigitalCableTuneRequest_get_MajorChannel_Proxy(
-    IDigitalCableTuneRequest* This,
-    LONG *pMajorChannel);
-void __RPC_STUB IDigitalCableTuneRequest_get_MajorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDigitalCableTuneRequest_put_MajorChannel_Proxy(
-    IDigitalCableTuneRequest* This,
-    LONG MajorChannel);
-void __RPC_STUB IDigitalCableTuneRequest_put_MajorChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDigitalCableTuneRequest_get_SourceID_Proxy(
-    IDigitalCableTuneRequest* This,
-    LONG *pSourceID);
-void __RPC_STUB IDigitalCableTuneRequest_get_SourceID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDigitalCableTuneRequest_put_SourceID_Proxy(
-    IDigitalCableTuneRequest* This,
-    LONG SourceID);
-void __RPC_STUB IDigitalCableTuneRequest_put_SourceID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDigitalCableTuneRequest_INTERFACE_DEFINED__ */
 
@@ -7255,29 +6744,29 @@ typedef struct IDVBTuneRequestVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDVBTuneRequest* This);
+        IDVBTuneRequest *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDVBTuneRequest* This);
+        IDVBTuneRequest *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -7285,7 +6774,7 @@ typedef struct IDVBTuneRequestVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -7297,52 +6786,53 @@ typedef struct IDVBTuneRequestVtbl {
 
     /*** ITuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *get_Components)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         IComponents **Components);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         ITuneRequest **NewTuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *get_Locator)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         ILocator **Locator);
 
     HRESULT (STDMETHODCALLTYPE *put_Locator)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         ILocator *Locator);
 
     /*** IDVBTuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_ONID)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         LONG *ONID);
 
     HRESULT (STDMETHODCALLTYPE *put_ONID)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         LONG ONID);
 
     HRESULT (STDMETHODCALLTYPE *get_TSID)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         LONG *TSID);
 
     HRESULT (STDMETHODCALLTYPE *put_TSID)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         LONG TSID);
 
     HRESULT (STDMETHODCALLTYPE *get_SID)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         LONG *SID);
 
     HRESULT (STDMETHODCALLTYPE *put_SID)(
-        IDVBTuneRequest* This,
+        IDVBTuneRequest *This,
         LONG SID);
 
     END_INTERFACE
 } IDVBTuneRequestVtbl;
+
 interface IDVBTuneRequest {
     CONST_VTBL IDVBTuneRequestVtbl* lpVtbl;
 };
@@ -7435,54 +6925,6 @@ static FORCEINLINE HRESULT IDVBTuneRequest_put_SID(IDVBTuneRequest* This,LONG SI
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDVBTuneRequest_get_ONID_Proxy(
-    IDVBTuneRequest* This,
-    LONG *ONID);
-void __RPC_STUB IDVBTuneRequest_get_ONID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTuneRequest_put_ONID_Proxy(
-    IDVBTuneRequest* This,
-    LONG ONID);
-void __RPC_STUB IDVBTuneRequest_put_ONID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTuneRequest_get_TSID_Proxy(
-    IDVBTuneRequest* This,
-    LONG *TSID);
-void __RPC_STUB IDVBTuneRequest_get_TSID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTuneRequest_put_TSID_Proxy(
-    IDVBTuneRequest* This,
-    LONG TSID);
-void __RPC_STUB IDVBTuneRequest_put_TSID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTuneRequest_get_SID_Proxy(
-    IDVBTuneRequest* This,
-    LONG *SID);
-void __RPC_STUB IDVBTuneRequest_get_SID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTuneRequest_put_SID_Proxy(
-    IDVBTuneRequest* This,
-    LONG SID);
-void __RPC_STUB IDVBTuneRequest_put_SID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDVBTuneRequest_INTERFACE_DEFINED__ */
 
@@ -7519,29 +6961,29 @@ typedef struct IMPEG2TuneRequestVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMPEG2TuneRequest* This);
+        IMPEG2TuneRequest *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMPEG2TuneRequest* This);
+        IMPEG2TuneRequest *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -7549,7 +6991,7 @@ typedef struct IMPEG2TuneRequestVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -7561,44 +7003,45 @@ typedef struct IMPEG2TuneRequestVtbl {
 
     /*** ITuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *get_Components)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         IComponents **Components);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         ITuneRequest **NewTuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *get_Locator)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         ILocator **Locator);
 
     HRESULT (STDMETHODCALLTYPE *put_Locator)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         ILocator *Locator);
 
     /*** IMPEG2TuneRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TSID)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         LONG *TSID);
 
     HRESULT (STDMETHODCALLTYPE *put_TSID)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         LONG TSID);
 
     HRESULT (STDMETHODCALLTYPE *get_ProgNo)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         LONG *ProgNo);
 
     HRESULT (STDMETHODCALLTYPE *put_ProgNo)(
-        IMPEG2TuneRequest* This,
+        IMPEG2TuneRequest *This,
         LONG ProgNo);
 
     END_INTERFACE
 } IMPEG2TuneRequestVtbl;
+
 interface IMPEG2TuneRequest {
     CONST_VTBL IMPEG2TuneRequestVtbl* lpVtbl;
 };
@@ -7683,38 +7126,6 @@ static FORCEINLINE HRESULT IMPEG2TuneRequest_put_ProgNo(IMPEG2TuneRequest* This,
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IMPEG2TuneRequest_get_TSID_Proxy(
-    IMPEG2TuneRequest* This,
-    LONG *TSID);
-void __RPC_STUB IMPEG2TuneRequest_get_TSID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2TuneRequest_put_TSID_Proxy(
-    IMPEG2TuneRequest* This,
-    LONG TSID);
-void __RPC_STUB IMPEG2TuneRequest_put_TSID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2TuneRequest_get_ProgNo_Proxy(
-    IMPEG2TuneRequest* This,
-    LONG *ProgNo);
-void __RPC_STUB IMPEG2TuneRequest_get_ProgNo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2TuneRequest_put_ProgNo_Proxy(
-    IMPEG2TuneRequest* This,
-    LONG ProgNo);
-void __RPC_STUB IMPEG2TuneRequest_put_ProgNo_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMPEG2TuneRequest_INTERFACE_DEFINED__ */
 
@@ -7743,29 +7154,29 @@ typedef struct IMPEG2TuneRequestFactoryVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMPEG2TuneRequestFactory* This,
+        IMPEG2TuneRequestFactory *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMPEG2TuneRequestFactory* This);
+        IMPEG2TuneRequestFactory *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMPEG2TuneRequestFactory* This);
+        IMPEG2TuneRequestFactory *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IMPEG2TuneRequestFactory* This,
+        IMPEG2TuneRequestFactory *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IMPEG2TuneRequestFactory* This,
+        IMPEG2TuneRequestFactory *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IMPEG2TuneRequestFactory* This,
+        IMPEG2TuneRequestFactory *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -7773,7 +7184,7 @@ typedef struct IMPEG2TuneRequestFactoryVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IMPEG2TuneRequestFactory* This,
+        IMPEG2TuneRequestFactory *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -7785,12 +7196,13 @@ typedef struct IMPEG2TuneRequestFactoryVtbl {
 
     /*** IMPEG2TuneRequestFactory methods ***/
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequest)(
-        IMPEG2TuneRequestFactory* This,
+        IMPEG2TuneRequestFactory *This,
         ITuningSpace *TuningSpace,
         IMPEG2TuneRequest **TuneRequest);
 
     END_INTERFACE
 } IMPEG2TuneRequestFactoryVtbl;
+
 interface IMPEG2TuneRequestFactory {
     CONST_VTBL IMPEG2TuneRequestFactoryVtbl* lpVtbl;
 };
@@ -7841,15 +7253,6 @@ static FORCEINLINE HRESULT IMPEG2TuneRequestFactory_CreateTuneRequest(IMPEG2Tune
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IMPEG2TuneRequestFactory_CreateTuneRequest_Proxy(
-    IMPEG2TuneRequestFactory* This,
-    ITuningSpace *TuningSpace,
-    IMPEG2TuneRequest **TuneRequest);
-void __RPC_STUB IMPEG2TuneRequestFactory_CreateTuneRequest_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMPEG2TuneRequestFactory_INTERFACE_DEFINED__ */
 
@@ -7874,18 +7277,19 @@ typedef struct IMPEG2TuneRequestSupportVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMPEG2TuneRequestSupport* This,
+        IMPEG2TuneRequestSupport *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMPEG2TuneRequestSupport* This);
+        IMPEG2TuneRequestSupport *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMPEG2TuneRequestSupport* This);
+        IMPEG2TuneRequestSupport *This);
 
     END_INTERFACE
 } IMPEG2TuneRequestSupportVtbl;
+
 interface IMPEG2TuneRequestSupport {
     CONST_VTBL IMPEG2TuneRequestSupportVtbl* lpVtbl;
 };
@@ -7949,35 +7353,36 @@ typedef struct ITunerCapVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ITunerCap* This,
+        ITunerCap *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ITunerCap* This);
+        ITunerCap *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ITunerCap* This);
+        ITunerCap *This);
 
     /*** ITunerCap methods ***/
     HRESULT (STDMETHODCALLTYPE *get_SupportedNetworkTypes)(
-        ITunerCap* This,
+        ITunerCap *This,
         ULONG ulcNetworkTypesMax,
         ULONG *pulcNetworkTypes,
         GUID *pguidNetworkTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_SupportedVideoFormats)(
-        ITunerCap* This,
+        ITunerCap *This,
         ULONG *pulAMTunerModeType,
         ULONG *pulAnalogVideoStandard);
 
     HRESULT (STDMETHODCALLTYPE *get_AuxInputCount)(
-        ITunerCap* This,
+        ITunerCap *This,
         ULONG *pulCompositeCount,
         ULONG *pulSvideoCount);
 
     END_INTERFACE
 } ITunerCapVtbl;
+
 interface ITunerCap {
     CONST_VTBL ITunerCapVtbl* lpVtbl;
 };
@@ -8018,34 +7423,6 @@ static FORCEINLINE HRESULT ITunerCap_get_AuxInputCount(ITunerCap* This,ULONG *pu
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ITunerCap_get_SupportedNetworkTypes_Proxy(
-    ITunerCap* This,
-    ULONG ulcNetworkTypesMax,
-    ULONG *pulcNetworkTypes,
-    GUID *pguidNetworkTypes);
-void __RPC_STUB ITunerCap_get_SupportedNetworkTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITunerCap_get_SupportedVideoFormats_Proxy(
-    ITunerCap* This,
-    ULONG *pulAMTunerModeType,
-    ULONG *pulAnalogVideoStandard);
-void __RPC_STUB ITunerCap_get_SupportedVideoFormats_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITunerCap_get_AuxInputCount_Proxy(
-    ITunerCap* This,
-    ULONG *pulCompositeCount,
-    ULONG *pulSvideoCount);
-void __RPC_STUB ITunerCap_get_AuxInputCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ITunerCap_INTERFACE_DEFINED__ */
 
@@ -8073,23 +7450,24 @@ typedef struct ITunerCapExVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ITunerCapEx* This,
+        ITunerCapEx *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ITunerCapEx* This);
+        ITunerCapEx *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ITunerCapEx* This);
+        ITunerCapEx *This);
 
     /*** ITunerCapEx methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Has608_708Caption)(
-        ITunerCapEx* This,
+        ITunerCapEx *This,
         VARIANT_BOOL *pbHasCaption);
 
     END_INTERFACE
 } ITunerCapExVtbl;
+
 interface ITunerCapEx {
     CONST_VTBL ITunerCapExVtbl* lpVtbl;
 };
@@ -8122,14 +7500,6 @@ static FORCEINLINE HRESULT ITunerCapEx_get_Has608_708Caption(ITunerCapEx* This,V
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ITunerCapEx_get_Has608_708Caption_Proxy(
-    ITunerCapEx* This,
-    VARIANT_BOOL *pbHasCaption);
-void __RPC_STUB ITunerCapEx_get_Has608_708Caption_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ITunerCapEx_INTERFACE_DEFINED__ */
 
@@ -8184,59 +7554,60 @@ typedef struct ITunerVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ITuner* This,
+        ITuner *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ITuner* This);
+        ITuner *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ITuner* This);
+        ITuner *This);
 
     /*** ITuner methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
-        ITuner* This,
+        ITuner *This,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
-        ITuner* This,
+        ITuner *This,
         ITuningSpace *TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *EnumTuningSpaces)(
-        ITuner* This,
+        ITuner *This,
         IEnumTuningSpaces **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_TuneRequest)(
-        ITuner* This,
+        ITuner *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *put_TuneRequest)(
-        ITuner* This,
+        ITuner *This,
         ITuneRequest *TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *Validate)(
-        ITuner* This,
+        ITuner *This,
         ITuneRequest *TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *get_PreferredComponentTypes)(
-        ITuner* This,
+        ITuner *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_PreferredComponentTypes)(
-        ITuner* This,
+        ITuner *This,
         IComponentTypes *ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_SignalStrength)(
-        ITuner* This,
+        ITuner *This,
         LONG *Strength);
 
     HRESULT (STDMETHODCALLTYPE *TriggerSignalEvents)(
-        ITuner* This,
+        ITuner *This,
         LONG Interval);
 
     END_INTERFACE
 } ITunerVtbl;
+
 interface ITuner {
     CONST_VTBL ITunerVtbl* lpVtbl;
 };
@@ -8305,86 +7676,6 @@ static FORCEINLINE HRESULT ITuner_TriggerSignalEvents(ITuner* This,LONG Interval
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ITuner_get_TuningSpace_Proxy(
-    ITuner* This,
-    ITuningSpace **TuningSpace);
-void __RPC_STUB ITuner_get_TuningSpace_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuner_put_TuningSpace_Proxy(
-    ITuner* This,
-    ITuningSpace *TuningSpace);
-void __RPC_STUB ITuner_put_TuningSpace_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuner_EnumTuningSpaces_Proxy(
-    ITuner* This,
-    IEnumTuningSpaces **ppEnum);
-void __RPC_STUB ITuner_EnumTuningSpaces_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuner_get_TuneRequest_Proxy(
-    ITuner* This,
-    ITuneRequest **TuneRequest);
-void __RPC_STUB ITuner_get_TuneRequest_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuner_put_TuneRequest_Proxy(
-    ITuner* This,
-    ITuneRequest *TuneRequest);
-void __RPC_STUB ITuner_put_TuneRequest_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuner_Validate_Proxy(
-    ITuner* This,
-    ITuneRequest *TuneRequest);
-void __RPC_STUB ITuner_Validate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuner_get_PreferredComponentTypes_Proxy(
-    ITuner* This,
-    IComponentTypes **ComponentTypes);
-void __RPC_STUB ITuner_get_PreferredComponentTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuner_put_PreferredComponentTypes_Proxy(
-    ITuner* This,
-    IComponentTypes *ComponentTypes);
-void __RPC_STUB ITuner_put_PreferredComponentTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuner_get_SignalStrength_Proxy(
-    ITuner* This,
-    LONG *Strength);
-void __RPC_STUB ITuner_get_SignalStrength_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ITuner_TriggerSignalEvents_Proxy(
-    ITuner* This,
-    LONG Interval);
-void __RPC_STUB ITuner_TriggerSignalEvents_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ITuner_INTERFACE_DEFINED__ */
 
@@ -8424,77 +7715,78 @@ typedef struct IScanningTunerVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IScanningTuner* This);
+        IScanningTuner *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IScanningTuner* This);
+        IScanningTuner *This);
 
     /*** ITuner methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         ITuningSpace *TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *EnumTuningSpaces)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         IEnumTuningSpaces **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_TuneRequest)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *put_TuneRequest)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         ITuneRequest *TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *Validate)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         ITuneRequest *TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *get_PreferredComponentTypes)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_PreferredComponentTypes)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         IComponentTypes *ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_SignalStrength)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         LONG *Strength);
 
     HRESULT (STDMETHODCALLTYPE *TriggerSignalEvents)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         LONG Interval);
 
     /*** IScanningTuner methods ***/
     HRESULT (STDMETHODCALLTYPE *SeekUp)(
-        IScanningTuner* This);
+        IScanningTuner *This);
 
     HRESULT (STDMETHODCALLTYPE *SeekDown)(
-        IScanningTuner* This);
+        IScanningTuner *This);
 
     HRESULT (STDMETHODCALLTYPE *ScanUp)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         LONG MillisecondsPause);
 
     HRESULT (STDMETHODCALLTYPE *ScanDown)(
-        IScanningTuner* This,
+        IScanningTuner *This,
         LONG MillisecondsPause);
 
     HRESULT (STDMETHODCALLTYPE *AutoProgram)(
-        IScanningTuner* This);
+        IScanningTuner *This);
 
     END_INTERFACE
 } IScanningTunerVtbl;
+
 interface IScanningTuner {
     CONST_VTBL IScanningTunerVtbl* lpVtbl;
 };
@@ -8585,43 +7877,6 @@ static FORCEINLINE HRESULT IScanningTuner_AutoProgram(IScanningTuner* This) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IScanningTuner_SeekUp_Proxy(
-    IScanningTuner* This);
-void __RPC_STUB IScanningTuner_SeekUp_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTuner_SeekDown_Proxy(
-    IScanningTuner* This);
-void __RPC_STUB IScanningTuner_SeekDown_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTuner_ScanUp_Proxy(
-    IScanningTuner* This,
-    LONG MillisecondsPause);
-void __RPC_STUB IScanningTuner_ScanUp_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTuner_ScanDown_Proxy(
-    IScanningTuner* This,
-    LONG MillisecondsPause);
-void __RPC_STUB IScanningTuner_ScanDown_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTuner_AutoProgram_Proxy(
-    IScanningTuner* This);
-void __RPC_STUB IScanningTuner_AutoProgram_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IScanningTuner_INTERFACE_DEFINED__ */
 
@@ -8681,121 +7936,122 @@ typedef struct IScanningTunerExVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IScanningTunerEx* This);
+        IScanningTunerEx *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IScanningTunerEx* This);
+        IScanningTunerEx *This);
 
     /*** ITuner methods ***/
     HRESULT (STDMETHODCALLTYPE *get_TuningSpace)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         ITuningSpace **TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *put_TuningSpace)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         ITuningSpace *TuningSpace);
 
     HRESULT (STDMETHODCALLTYPE *EnumTuningSpaces)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         IEnumTuningSpaces **ppEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_TuneRequest)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         ITuneRequest **TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *put_TuneRequest)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         ITuneRequest *TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *Validate)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         ITuneRequest *TuneRequest);
 
     HRESULT (STDMETHODCALLTYPE *get_PreferredComponentTypes)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         IComponentTypes **ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *put_PreferredComponentTypes)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         IComponentTypes *ComponentTypes);
 
     HRESULT (STDMETHODCALLTYPE *get_SignalStrength)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         LONG *Strength);
 
     HRESULT (STDMETHODCALLTYPE *TriggerSignalEvents)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         LONG Interval);
 
     /*** IScanningTuner methods ***/
     HRESULT (STDMETHODCALLTYPE *SeekUp)(
-        IScanningTunerEx* This);
+        IScanningTunerEx *This);
 
     HRESULT (STDMETHODCALLTYPE *SeekDown)(
-        IScanningTunerEx* This);
+        IScanningTunerEx *This);
 
     HRESULT (STDMETHODCALLTYPE *ScanUp)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         LONG MillisecondsPause);
 
     HRESULT (STDMETHODCALLTYPE *ScanDown)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         LONG MillisecondsPause);
 
     HRESULT (STDMETHODCALLTYPE *AutoProgram)(
-        IScanningTunerEx* This);
+        IScanningTunerEx *This);
 
     /*** IScanningTunerEx methods ***/
     HRESULT (STDMETHODCALLTYPE *GetCurrentLocator)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         ILocator **pILocator);
 
     HRESULT (STDMETHODCALLTYPE *PerformExhaustiveScan)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         LONG dwLowerFreq,
         LONG dwHigherFreq,
         VARIANT_BOOL bFineTune,
         HEVENT hEvent);
 
     HRESULT (STDMETHODCALLTYPE *TerminateCurrentScan)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         LONG *pcurrentFreq);
 
     HRESULT (STDMETHODCALLTYPE *ResumeCurrentScan)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         HEVENT hEvent);
 
     HRESULT (STDMETHODCALLTYPE *GetTunerScanningCapability)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         LONG *HardwareAssistedScanning,
         LONG *NumStandardsSupported,
         GUID *BroadcastStandards);
 
     HRESULT (STDMETHODCALLTYPE *GetTunerStatus)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         LONG *SecondsLeft,
         LONG *CurrentLockType,
         LONG *AutoDetect,
         LONG *CurrentFreq);
 
     HRESULT (STDMETHODCALLTYPE *GetCurrentTunerStandardCapability)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         GUID CurrentBroadcastStandard,
         LONG *SettlingTime,
         LONG *TvStandardsSupported);
 
     HRESULT (STDMETHODCALLTYPE *SetScanSignalTypeFilter)(
-        IScanningTunerEx* This,
+        IScanningTunerEx *This,
         LONG ScanModulationTypes,
         LONG AnalogVideoStandard);
 
     END_INTERFACE
 } IScanningTunerExVtbl;
+
 interface IScanningTunerEx {
     CONST_VTBL IScanningTunerExVtbl* lpVtbl;
 };
@@ -8920,81 +8176,6 @@ static FORCEINLINE HRESULT IScanningTunerEx_SetScanSignalTypeFilter(IScanningTun
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IScanningTunerEx_GetCurrentLocator_Proxy(
-    IScanningTunerEx* This,
-    ILocator **pILocator);
-void __RPC_STUB IScanningTunerEx_GetCurrentLocator_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTunerEx_PerformExhaustiveScan_Proxy(
-    IScanningTunerEx* This,
-    LONG dwLowerFreq,
-    LONG dwHigherFreq,
-    VARIANT_BOOL bFineTune,
-    HEVENT hEvent);
-void __RPC_STUB IScanningTunerEx_PerformExhaustiveScan_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTunerEx_TerminateCurrentScan_Proxy(
-    IScanningTunerEx* This,
-    LONG *pcurrentFreq);
-void __RPC_STUB IScanningTunerEx_TerminateCurrentScan_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTunerEx_ResumeCurrentScan_Proxy(
-    IScanningTunerEx* This,
-    HEVENT hEvent);
-void __RPC_STUB IScanningTunerEx_ResumeCurrentScan_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTunerEx_GetTunerScanningCapability_Proxy(
-    IScanningTunerEx* This,
-    LONG *HardwareAssistedScanning,
-    LONG *NumStandardsSupported,
-    GUID *BroadcastStandards);
-void __RPC_STUB IScanningTunerEx_GetTunerScanningCapability_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTunerEx_GetTunerStatus_Proxy(
-    IScanningTunerEx* This,
-    LONG *SecondsLeft,
-    LONG *CurrentLockType,
-    LONG *AutoDetect,
-    LONG *CurrentFreq);
-void __RPC_STUB IScanningTunerEx_GetTunerStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTunerEx_GetCurrentTunerStandardCapability_Proxy(
-    IScanningTunerEx* This,
-    GUID CurrentBroadcastStandard,
-    LONG *SettlingTime,
-    LONG *TvStandardsSupported);
-void __RPC_STUB IScanningTunerEx_GetCurrentTunerStandardCapability_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IScanningTunerEx_SetScanSignalTypeFilter_Proxy(
-    IScanningTunerEx* This,
-    LONG ScanModulationTypes,
-    LONG AnalogVideoStandard);
-void __RPC_STUB IScanningTunerEx_SetScanSignalTypeFilter_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IScanningTunerEx_INTERFACE_DEFINED__ */
 
@@ -9070,29 +8251,29 @@ typedef struct IComponentTypeVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IComponentType* This,
+        IComponentType *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IComponentType* This);
+        IComponentType *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IComponentType* This);
+        IComponentType *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IComponentType* This,
+        IComponentType *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IComponentType* This,
+        IComponentType *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IComponentType* This,
+        IComponentType *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -9100,7 +8281,7 @@ typedef struct IComponentTypeVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IComponentType* This,
+        IComponentType *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -9112,75 +8293,76 @@ typedef struct IComponentTypeVtbl {
 
     /*** IComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Category)(
-        IComponentType* This,
+        IComponentType *This,
         ComponentCategory *Category);
 
     HRESULT (STDMETHODCALLTYPE *put_Category)(
-        IComponentType* This,
+        IComponentType *This,
         ComponentCategory Category);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaMajorType)(
-        IComponentType* This,
+        IComponentType *This,
         BSTR *MediaMajorType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaMajorType)(
-        IComponentType* This,
+        IComponentType *This,
         BSTR MediaMajorType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaMajorType)(
-        IComponentType* This,
+        IComponentType *This,
         GUID *MediaMajorTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaMajorType)(
-        IComponentType* This,
+        IComponentType *This,
         REFCLSID MediaMajorTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaSubType)(
-        IComponentType* This,
+        IComponentType *This,
         BSTR *MediaSubType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaSubType)(
-        IComponentType* This,
+        IComponentType *This,
         BSTR MediaSubType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaSubType)(
-        IComponentType* This,
+        IComponentType *This,
         GUID *MediaSubTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaSubType)(
-        IComponentType* This,
+        IComponentType *This,
         REFCLSID MediaSubTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaFormatType)(
-        IComponentType* This,
+        IComponentType *This,
         BSTR *MediaFormatType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaFormatType)(
-        IComponentType* This,
+        IComponentType *This,
         BSTR MediaFormatType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaFormatType)(
-        IComponentType* This,
+        IComponentType *This,
         GUID *MediaFormatTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaFormatType)(
-        IComponentType* This,
+        IComponentType *This,
         REFCLSID MediaFormatTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaType)(
-        IComponentType* This,
+        IComponentType *This,
         AM_MEDIA_TYPE *MediaType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaType)(
-        IComponentType* This,
+        IComponentType *This,
         AM_MEDIA_TYPE *MediaType);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IComponentType* This,
+        IComponentType *This,
         IComponentType **NewCT);
 
     END_INTERFACE
 } IComponentTypeVtbl;
+
 interface IComponentType {
     CONST_VTBL IComponentTypeVtbl* lpVtbl;
 };
@@ -9295,142 +8477,6 @@ static FORCEINLINE HRESULT IComponentType_Clone(IComponentType* This,IComponentT
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IComponentType_get_Category_Proxy(
-    IComponentType* This,
-    ComponentCategory *Category);
-void __RPC_STUB IComponentType_get_Category_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_put_Category_Proxy(
-    IComponentType* This,
-    ComponentCategory Category);
-void __RPC_STUB IComponentType_put_Category_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_get_MediaMajorType_Proxy(
-    IComponentType* This,
-    BSTR *MediaMajorType);
-void __RPC_STUB IComponentType_get_MediaMajorType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_put_MediaMajorType_Proxy(
-    IComponentType* This,
-    BSTR MediaMajorType);
-void __RPC_STUB IComponentType_put_MediaMajorType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_get__MediaMajorType_Proxy(
-    IComponentType* This,
-    GUID *MediaMajorTypeGuid);
-void __RPC_STUB IComponentType_get__MediaMajorType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_put__MediaMajorType_Proxy(
-    IComponentType* This,
-    REFCLSID MediaMajorTypeGuid);
-void __RPC_STUB IComponentType_put__MediaMajorType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_get_MediaSubType_Proxy(
-    IComponentType* This,
-    BSTR *MediaSubType);
-void __RPC_STUB IComponentType_get_MediaSubType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_put_MediaSubType_Proxy(
-    IComponentType* This,
-    BSTR MediaSubType);
-void __RPC_STUB IComponentType_put_MediaSubType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_get__MediaSubType_Proxy(
-    IComponentType* This,
-    GUID *MediaSubTypeGuid);
-void __RPC_STUB IComponentType_get__MediaSubType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_put__MediaSubType_Proxy(
-    IComponentType* This,
-    REFCLSID MediaSubTypeGuid);
-void __RPC_STUB IComponentType_put__MediaSubType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_get_MediaFormatType_Proxy(
-    IComponentType* This,
-    BSTR *MediaFormatType);
-void __RPC_STUB IComponentType_get_MediaFormatType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_put_MediaFormatType_Proxy(
-    IComponentType* This,
-    BSTR MediaFormatType);
-void __RPC_STUB IComponentType_put_MediaFormatType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_get__MediaFormatType_Proxy(
-    IComponentType* This,
-    GUID *MediaFormatTypeGuid);
-void __RPC_STUB IComponentType_get__MediaFormatType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_put__MediaFormatType_Proxy(
-    IComponentType* This,
-    REFCLSID MediaFormatTypeGuid);
-void __RPC_STUB IComponentType_put__MediaFormatType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_get_MediaType_Proxy(
-    IComponentType* This,
-    AM_MEDIA_TYPE *MediaType);
-void __RPC_STUB IComponentType_get_MediaType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_put_MediaType_Proxy(
-    IComponentType* This,
-    AM_MEDIA_TYPE *MediaType);
-void __RPC_STUB IComponentType_put_MediaType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentType_Clone_Proxy(
-    IComponentType* This,
-    IComponentType **NewCT);
-void __RPC_STUB IComponentType_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IComponentType_INTERFACE_DEFINED__ */
 
@@ -9461,29 +8507,29 @@ typedef struct ILanguageComponentTypeVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ILanguageComponentType* This);
+        ILanguageComponentType *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ILanguageComponentType* This);
+        ILanguageComponentType *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -9491,7 +8537,7 @@ typedef struct ILanguageComponentTypeVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -9503,84 +8549,85 @@ typedef struct ILanguageComponentTypeVtbl {
 
     /*** IComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Category)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         ComponentCategory *Category);
 
     HRESULT (STDMETHODCALLTYPE *put_Category)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         ComponentCategory Category);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaMajorType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         BSTR *MediaMajorType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaMajorType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         BSTR MediaMajorType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaMajorType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         GUID *MediaMajorTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaMajorType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         REFCLSID MediaMajorTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaSubType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         BSTR *MediaSubType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaSubType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         BSTR MediaSubType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaSubType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         GUID *MediaSubTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaSubType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         REFCLSID MediaSubTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaFormatType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         BSTR *MediaFormatType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaFormatType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         BSTR MediaFormatType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaFormatType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         GUID *MediaFormatTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaFormatType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         REFCLSID MediaFormatTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         AM_MEDIA_TYPE *MediaType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaType)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         AM_MEDIA_TYPE *MediaType);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         IComponentType **NewCT);
 
     /*** ILanguageComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_LangID)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         LONG *LangID);
 
     HRESULT (STDMETHODCALLTYPE *put_LangID)(
-        ILanguageComponentType* This,
+        ILanguageComponentType *This,
         LONG LangID);
 
     END_INTERFACE
 } ILanguageComponentTypeVtbl;
+
 interface ILanguageComponentType {
     CONST_VTBL ILanguageComponentTypeVtbl* lpVtbl;
 };
@@ -9705,22 +8752,6 @@ static FORCEINLINE HRESULT ILanguageComponentType_put_LangID(ILanguageComponentT
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ILanguageComponentType_get_LangID_Proxy(
-    ILanguageComponentType* This,
-    LONG *LangID);
-void __RPC_STUB ILanguageComponentType_get_LangID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILanguageComponentType_put_LangID_Proxy(
-    ILanguageComponentType* This,
-    LONG LangID);
-void __RPC_STUB ILanguageComponentType_put_LangID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ILanguageComponentType_INTERFACE_DEFINED__ */
 
@@ -9751,29 +8782,29 @@ typedef struct IMPEG2ComponentTypeVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMPEG2ComponentType* This);
+        IMPEG2ComponentType *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMPEG2ComponentType* This);
+        IMPEG2ComponentType *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -9781,7 +8812,7 @@ typedef struct IMPEG2ComponentTypeVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -9793,93 +8824,94 @@ typedef struct IMPEG2ComponentTypeVtbl {
 
     /*** IComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Category)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         ComponentCategory *Category);
 
     HRESULT (STDMETHODCALLTYPE *put_Category)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         ComponentCategory Category);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaMajorType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         BSTR *MediaMajorType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaMajorType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         BSTR MediaMajorType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaMajorType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         GUID *MediaMajorTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaMajorType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         REFCLSID MediaMajorTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaSubType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         BSTR *MediaSubType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaSubType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         BSTR MediaSubType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaSubType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         GUID *MediaSubTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaSubType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         REFCLSID MediaSubTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaFormatType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         BSTR *MediaFormatType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaFormatType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         BSTR MediaFormatType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaFormatType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         GUID *MediaFormatTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaFormatType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         REFCLSID MediaFormatTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         AM_MEDIA_TYPE *MediaType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         AM_MEDIA_TYPE *MediaType);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         IComponentType **NewCT);
 
     /*** ILanguageComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_LangID)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         LONG *LangID);
 
     HRESULT (STDMETHODCALLTYPE *put_LangID)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         LONG LangID);
 
     /*** IMPEG2ComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_StreamType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         MPEG2StreamType *MP2StreamType);
 
     HRESULT (STDMETHODCALLTYPE *put_StreamType)(
-        IMPEG2ComponentType* This,
+        IMPEG2ComponentType *This,
         MPEG2StreamType MP2StreamType);
 
     END_INTERFACE
 } IMPEG2ComponentTypeVtbl;
+
 interface IMPEG2ComponentType {
     CONST_VTBL IMPEG2ComponentTypeVtbl* lpVtbl;
 };
@@ -10014,22 +9046,6 @@ static FORCEINLINE HRESULT IMPEG2ComponentType_put_StreamType(IMPEG2ComponentTyp
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IMPEG2ComponentType_get_StreamType_Proxy(
-    IMPEG2ComponentType* This,
-    MPEG2StreamType *MP2StreamType);
-void __RPC_STUB IMPEG2ComponentType_get_StreamType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2ComponentType_put_StreamType_Proxy(
-    IMPEG2ComponentType* This,
-    MPEG2StreamType MP2StreamType);
-void __RPC_STUB IMPEG2ComponentType_put_StreamType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMPEG2ComponentType_INTERFACE_DEFINED__ */
 
@@ -10060,29 +9076,29 @@ typedef struct IATSCComponentTypeVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IATSCComponentType* This);
+        IATSCComponentType *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IATSCComponentType* This);
+        IATSCComponentType *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -10090,7 +9106,7 @@ typedef struct IATSCComponentTypeVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -10102,102 +9118,103 @@ typedef struct IATSCComponentTypeVtbl {
 
     /*** IComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Category)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         ComponentCategory *Category);
 
     HRESULT (STDMETHODCALLTYPE *put_Category)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         ComponentCategory Category);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaMajorType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         BSTR *MediaMajorType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaMajorType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         BSTR MediaMajorType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaMajorType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         GUID *MediaMajorTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaMajorType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         REFCLSID MediaMajorTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaSubType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         BSTR *MediaSubType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaSubType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         BSTR MediaSubType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaSubType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         GUID *MediaSubTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaSubType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         REFCLSID MediaSubTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaFormatType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         BSTR *MediaFormatType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaFormatType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         BSTR MediaFormatType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaFormatType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         GUID *MediaFormatTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaFormatType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         REFCLSID MediaFormatTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         AM_MEDIA_TYPE *MediaType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         AM_MEDIA_TYPE *MediaType);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         IComponentType **NewCT);
 
     /*** ILanguageComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_LangID)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         LONG *LangID);
 
     HRESULT (STDMETHODCALLTYPE *put_LangID)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         LONG LangID);
 
     /*** IMPEG2ComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_StreamType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         MPEG2StreamType *MP2StreamType);
 
     HRESULT (STDMETHODCALLTYPE *put_StreamType)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         MPEG2StreamType MP2StreamType);
 
     /*** IATSCComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Flags)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         LONG *Flags);
 
     HRESULT (STDMETHODCALLTYPE *put_Flags)(
-        IATSCComponentType* This,
+        IATSCComponentType *This,
         LONG flags);
 
     END_INTERFACE
 } IATSCComponentTypeVtbl;
+
 interface IATSCComponentType {
     CONST_VTBL IATSCComponentTypeVtbl* lpVtbl;
 };
@@ -10342,22 +9359,6 @@ static FORCEINLINE HRESULT IATSCComponentType_put_Flags(IATSCComponentType* This
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IATSCComponentType_get_Flags_Proxy(
-    IATSCComponentType* This,
-    LONG *Flags);
-void __RPC_STUB IATSCComponentType_get_Flags_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCComponentType_put_Flags_Proxy(
-    IATSCComponentType* This,
-    LONG flags);
-void __RPC_STUB IATSCComponentType_put_Flags_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IATSCComponentType_INTERFACE_DEFINED__ */
 
@@ -10396,36 +9397,37 @@ typedef struct IEnumComponentTypesVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumComponentTypes* This,
+        IEnumComponentTypes *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumComponentTypes* This);
+        IEnumComponentTypes *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumComponentTypes* This);
+        IEnumComponentTypes *This);
 
     /*** IEnumComponentTypes methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumComponentTypes* This,
+        IEnumComponentTypes *This,
         ULONG celt,
         IComponentType **rgelt,
         ULONG *pceltFetched);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumComponentTypes* This,
+        IEnumComponentTypes *This,
         ULONG celt);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumComponentTypes* This);
+        IEnumComponentTypes *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumComponentTypes* This,
+        IEnumComponentTypes *This,
         IEnumComponentTypes **ppEnum);
 
     END_INTERFACE
 } IEnumComponentTypesVtbl;
+
 interface IEnumComponentTypes {
     CONST_VTBL IEnumComponentTypesVtbl* lpVtbl;
 };
@@ -10470,39 +9472,6 @@ static FORCEINLINE HRESULT IEnumComponentTypes_Clone(IEnumComponentTypes* This,I
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IEnumComponentTypes_Next_Proxy(
-    IEnumComponentTypes* This,
-    ULONG celt,
-    IComponentType **rgelt,
-    ULONG *pceltFetched);
-void __RPC_STUB IEnumComponentTypes_Next_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumComponentTypes_Skip_Proxy(
-    IEnumComponentTypes* This,
-    ULONG celt);
-void __RPC_STUB IEnumComponentTypes_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumComponentTypes_Reset_Proxy(
-    IEnumComponentTypes* This);
-void __RPC_STUB IEnumComponentTypes_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumComponentTypes_Clone_Proxy(
-    IEnumComponentTypes* This,
-    IEnumComponentTypes **ppEnum);
-void __RPC_STUB IEnumComponentTypes_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IEnumComponentTypes_INTERFACE_DEFINED__ */
 
@@ -10554,29 +9523,29 @@ typedef struct IComponentTypesVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IComponentTypes* This);
+        IComponentTypes *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IComponentTypes* This);
+        IComponentTypes *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -10584,7 +9553,7 @@ typedef struct IComponentTypesVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -10596,42 +9565,43 @@ typedef struct IComponentTypesVtbl {
 
     /*** IComponentTypes methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Count)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         LONG *Count);
 
     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         IEnumVARIANT **ppNewEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumComponentTypes)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         IEnumComponentTypes **ppNewEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_Item)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         VARIANT Index,
         IComponentType **ComponentType);
 
     HRESULT (STDMETHODCALLTYPE *put_Item)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         VARIANT Index,
         IComponentType *ComponentType);
 
     HRESULT (STDMETHODCALLTYPE *Add)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         IComponentType *ComponentType,
         VARIANT *NewIndex);
 
     HRESULT (STDMETHODCALLTYPE *Remove)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         VARIANT Index);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IComponentTypes* This,
+        IComponentTypes *This,
         IComponentTypes **NewList);
 
     END_INTERFACE
 } IComponentTypesVtbl;
+
 interface IComponentTypes {
     CONST_VTBL IComponentTypesVtbl* lpVtbl;
 };
@@ -10710,73 +9680,6 @@ static FORCEINLINE HRESULT IComponentTypes_Clone(IComponentTypes* This,IComponen
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IComponentTypes_get_Count_Proxy(
-    IComponentTypes* This,
-    LONG *Count);
-void __RPC_STUB IComponentTypes_get_Count_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentTypes_get__NewEnum_Proxy(
-    IComponentTypes* This,
-    IEnumVARIANT **ppNewEnum);
-void __RPC_STUB IComponentTypes_get__NewEnum_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentTypes_EnumComponentTypes_Proxy(
-    IComponentTypes* This,
-    IEnumComponentTypes **ppNewEnum);
-void __RPC_STUB IComponentTypes_EnumComponentTypes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentTypes_get_Item_Proxy(
-    IComponentTypes* This,
-    VARIANT Index,
-    IComponentType **ComponentType);
-void __RPC_STUB IComponentTypes_get_Item_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentTypes_put_Item_Proxy(
-    IComponentTypes* This,
-    VARIANT Index,
-    IComponentType *ComponentType);
-void __RPC_STUB IComponentTypes_put_Item_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentTypes_Add_Proxy(
-    IComponentTypes* This,
-    IComponentType *ComponentType,
-    VARIANT *NewIndex);
-void __RPC_STUB IComponentTypes_Add_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentTypes_Remove_Proxy(
-    IComponentTypes* This,
-    VARIANT Index);
-void __RPC_STUB IComponentTypes_Remove_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentTypes_Clone_Proxy(
-    IComponentTypes* This,
-    IComponentTypes **NewList);
-void __RPC_STUB IComponentTypes_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IComponentTypes_INTERFACE_DEFINED__ */
 
@@ -10828,29 +9731,29 @@ typedef struct IComponentVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IComponent* This,
+        IComponent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IComponent* This);
+        IComponent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IComponent* This);
+        IComponent *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IComponent* This,
+        IComponent *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IComponent* This,
+        IComponent *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IComponent* This,
+        IComponent *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -10858,7 +9761,7 @@ typedef struct IComponentVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IComponent* This,
+        IComponent *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -10870,43 +9773,44 @@ typedef struct IComponentVtbl {
 
     /*** IComponent methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Type)(
-        IComponent* This,
+        IComponent *This,
         IComponentType **CT);
 
     HRESULT (STDMETHODCALLTYPE *put_Type)(
-        IComponent* This,
+        IComponent *This,
         IComponentType *CT);
 
     HRESULT (STDMETHODCALLTYPE *get_DescLangID)(
-        IComponent* This,
+        IComponent *This,
         LONG *LangID);
 
     HRESULT (STDMETHODCALLTYPE *put_DescLangID)(
-        IComponent* This,
+        IComponent *This,
         LONG LangID);
 
     HRESULT (STDMETHODCALLTYPE *get_Status)(
-        IComponent* This,
+        IComponent *This,
         ComponentStatus *Status);
 
     HRESULT (STDMETHODCALLTYPE *put_Status)(
-        IComponent* This,
+        IComponent *This,
         ComponentStatus Status);
 
     HRESULT (STDMETHODCALLTYPE *get_Description)(
-        IComponent* This,
+        IComponent *This,
         BSTR *Description);
 
     HRESULT (STDMETHODCALLTYPE *put_Description)(
-        IComponent* This,
+        IComponent *This,
         BSTR Description);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IComponent* This,
+        IComponent *This,
         IComponent **NewComponent);
 
     END_INTERFACE
 } IComponentVtbl;
+
 interface IComponent {
     CONST_VTBL IComponentVtbl* lpVtbl;
 };
@@ -10989,78 +9893,6 @@ static FORCEINLINE HRESULT IComponent_Clone(IComponent* This,IComponent **NewCom
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IComponent_get_Type_Proxy(
-    IComponent* This,
-    IComponentType **CT);
-void __RPC_STUB IComponent_get_Type_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponent_put_Type_Proxy(
-    IComponent* This,
-    IComponentType *CT);
-void __RPC_STUB IComponent_put_Type_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponent_get_DescLangID_Proxy(
-    IComponent* This,
-    LONG *LangID);
-void __RPC_STUB IComponent_get_DescLangID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponent_put_DescLangID_Proxy(
-    IComponent* This,
-    LONG LangID);
-void __RPC_STUB IComponent_put_DescLangID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponent_get_Status_Proxy(
-    IComponent* This,
-    ComponentStatus *Status);
-void __RPC_STUB IComponent_get_Status_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponent_put_Status_Proxy(
-    IComponent* This,
-    ComponentStatus Status);
-void __RPC_STUB IComponent_put_Status_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponent_get_Description_Proxy(
-    IComponent* This,
-    BSTR *Description);
-void __RPC_STUB IComponent_get_Description_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponent_put_Description_Proxy(
-    IComponent* This,
-    BSTR Description);
-void __RPC_STUB IComponent_put_Description_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponent_Clone_Proxy(
-    IComponent* This,
-    IComponent **NewComponent);
-void __RPC_STUB IComponent_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IComponent_INTERFACE_DEFINED__ */
 
@@ -11091,29 +9923,29 @@ typedef struct IAnalogAudioComponentTypeVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAnalogAudioComponentType* This);
+        IAnalogAudioComponentType *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAnalogAudioComponentType* This);
+        IAnalogAudioComponentType *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -11121,7 +9953,7 @@ typedef struct IAnalogAudioComponentTypeVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -11133,84 +9965,85 @@ typedef struct IAnalogAudioComponentTypeVtbl {
 
     /*** IComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Category)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         ComponentCategory *Category);
 
     HRESULT (STDMETHODCALLTYPE *put_Category)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         ComponentCategory Category);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaMajorType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         BSTR *MediaMajorType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaMajorType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         BSTR MediaMajorType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaMajorType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         GUID *MediaMajorTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaMajorType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         REFCLSID MediaMajorTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaSubType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         BSTR *MediaSubType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaSubType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         BSTR MediaSubType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaSubType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         GUID *MediaSubTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaSubType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         REFCLSID MediaSubTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaFormatType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         BSTR *MediaFormatType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaFormatType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         BSTR MediaFormatType);
 
     HRESULT (STDMETHODCALLTYPE *get__MediaFormatType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         GUID *MediaFormatTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *put__MediaFormatType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         REFCLSID MediaFormatTypeGuid);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         AM_MEDIA_TYPE *MediaType);
 
     HRESULT (STDMETHODCALLTYPE *put_MediaType)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         AM_MEDIA_TYPE *MediaType);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         IComponentType **NewCT);
 
     /*** IAnalogAudioComponentType methods ***/
     HRESULT (STDMETHODCALLTYPE *get_AnalogAudioMode)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         TVAudioMode *Mode);
 
     HRESULT (STDMETHODCALLTYPE *put_AnalogAudioMode)(
-        IAnalogAudioComponentType* This,
+        IAnalogAudioComponentType *This,
         TVAudioMode Mode);
 
     END_INTERFACE
 } IAnalogAudioComponentTypeVtbl;
+
 interface IAnalogAudioComponentType {
     CONST_VTBL IAnalogAudioComponentTypeVtbl* lpVtbl;
 };
@@ -11335,22 +10168,6 @@ static FORCEINLINE HRESULT IAnalogAudioComponentType_put_AnalogAudioMode(IAnalog
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAnalogAudioComponentType_get_AnalogAudioMode_Proxy(
-    IAnalogAudioComponentType* This,
-    TVAudioMode *Mode);
-void __RPC_STUB IAnalogAudioComponentType_get_AnalogAudioMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogAudioComponentType_put_AnalogAudioMode_Proxy(
-    IAnalogAudioComponentType* This,
-    TVAudioMode Mode);
-void __RPC_STUB IAnalogAudioComponentType_put_AnalogAudioMode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IAnalogAudioComponentType_INTERFACE_DEFINED__ */
 
@@ -11393,29 +10210,29 @@ typedef struct IMPEG2ComponentVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IMPEG2Component* This);
+        IMPEG2Component *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IMPEG2Component* This);
+        IMPEG2Component *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -11423,7 +10240,7 @@ typedef struct IMPEG2ComponentVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -11435,68 +10252,69 @@ typedef struct IMPEG2ComponentVtbl {
 
     /*** IComponent methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Type)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         IComponentType **CT);
 
     HRESULT (STDMETHODCALLTYPE *put_Type)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         IComponentType *CT);
 
     HRESULT (STDMETHODCALLTYPE *get_DescLangID)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         LONG *LangID);
 
     HRESULT (STDMETHODCALLTYPE *put_DescLangID)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         LONG LangID);
 
     HRESULT (STDMETHODCALLTYPE *get_Status)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         ComponentStatus *Status);
 
     HRESULT (STDMETHODCALLTYPE *put_Status)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         ComponentStatus Status);
 
     HRESULT (STDMETHODCALLTYPE *get_Description)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         BSTR *Description);
 
     HRESULT (STDMETHODCALLTYPE *put_Description)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         BSTR Description);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         IComponent **NewComponent);
 
     /*** IMPEG2Component methods ***/
     HRESULT (STDMETHODCALLTYPE *get_PID)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         LONG *PID);
 
     HRESULT (STDMETHODCALLTYPE *put_PID)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         LONG PID);
 
     HRESULT (STDMETHODCALLTYPE *get_PCRPID)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         LONG *PCRPID);
 
     HRESULT (STDMETHODCALLTYPE *put_PCRPID)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         LONG PCRPID);
 
     HRESULT (STDMETHODCALLTYPE *get_ProgramNumber)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         LONG *ProgramNumber);
 
     HRESULT (STDMETHODCALLTYPE *put_ProgramNumber)(
-        IMPEG2Component* This,
+        IMPEG2Component *This,
         LONG ProgramNumber);
 
     END_INTERFACE
 } IMPEG2ComponentVtbl;
+
 interface IMPEG2Component {
     CONST_VTBL IMPEG2ComponentVtbl* lpVtbl;
 };
@@ -11605,54 +10423,6 @@ static FORCEINLINE HRESULT IMPEG2Component_put_ProgramNumber(IMPEG2Component* Th
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IMPEG2Component_get_PID_Proxy(
-    IMPEG2Component* This,
-    LONG *PID);
-void __RPC_STUB IMPEG2Component_get_PID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2Component_put_PID_Proxy(
-    IMPEG2Component* This,
-    LONG PID);
-void __RPC_STUB IMPEG2Component_put_PID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2Component_get_PCRPID_Proxy(
-    IMPEG2Component* This,
-    LONG *PCRPID);
-void __RPC_STUB IMPEG2Component_get_PCRPID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2Component_put_PCRPID_Proxy(
-    IMPEG2Component* This,
-    LONG PCRPID);
-void __RPC_STUB IMPEG2Component_put_PCRPID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2Component_get_ProgramNumber_Proxy(
-    IMPEG2Component* This,
-    LONG *ProgramNumber);
-void __RPC_STUB IMPEG2Component_get_ProgramNumber_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IMPEG2Component_put_ProgramNumber_Proxy(
-    IMPEG2Component* This,
-    LONG ProgramNumber);
-void __RPC_STUB IMPEG2Component_put_ProgramNumber_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IMPEG2Component_INTERFACE_DEFINED__ */
 
@@ -11691,36 +10461,37 @@ typedef struct IEnumComponentsVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IEnumComponents* This,
+        IEnumComponents *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IEnumComponents* This);
+        IEnumComponents *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IEnumComponents* This);
+        IEnumComponents *This);
 
     /*** IEnumComponents methods ***/
     HRESULT (STDMETHODCALLTYPE *Next)(
-        IEnumComponents* This,
+        IEnumComponents *This,
         ULONG celt,
         IComponent **rgelt,
         ULONG *pceltFetched);
 
     HRESULT (STDMETHODCALLTYPE *Skip)(
-        IEnumComponents* This,
+        IEnumComponents *This,
         ULONG celt);
 
     HRESULT (STDMETHODCALLTYPE *Reset)(
-        IEnumComponents* This);
+        IEnumComponents *This);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IEnumComponents* This,
+        IEnumComponents *This,
         IEnumComponents **ppEnum);
 
     END_INTERFACE
 } IEnumComponentsVtbl;
+
 interface IEnumComponents {
     CONST_VTBL IEnumComponentsVtbl* lpVtbl;
 };
@@ -11765,39 +10536,6 @@ static FORCEINLINE HRESULT IEnumComponents_Clone(IEnumComponents* This,IEnumComp
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IEnumComponents_Next_Proxy(
-    IEnumComponents* This,
-    ULONG celt,
-    IComponent **rgelt,
-    ULONG *pceltFetched);
-void __RPC_STUB IEnumComponents_Next_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumComponents_Skip_Proxy(
-    IEnumComponents* This,
-    ULONG celt);
-void __RPC_STUB IEnumComponents_Skip_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumComponents_Reset_Proxy(
-    IEnumComponents* This);
-void __RPC_STUB IEnumComponents_Reset_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IEnumComponents_Clone_Proxy(
-    IEnumComponents* This,
-    IEnumComponents **ppEnum);
-void __RPC_STUB IEnumComponents_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IEnumComponents_INTERFACE_DEFINED__ */
 
@@ -11849,29 +10587,29 @@ typedef struct IComponentsVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IComponents* This,
+        IComponents *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IComponents* This);
+        IComponents *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IComponents* This);
+        IComponents *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IComponents* This,
+        IComponents *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IComponents* This,
+        IComponents *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IComponents* This,
+        IComponents *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -11879,7 +10617,7 @@ typedef struct IComponentsVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IComponents* This,
+        IComponents *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -11891,42 +10629,43 @@ typedef struct IComponentsVtbl {
 
     /*** IComponents methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Count)(
-        IComponents* This,
+        IComponents *This,
         LONG *Count);
 
     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
-        IComponents* This,
+        IComponents *This,
         IEnumVARIANT **ppNewEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumComponents)(
-        IComponents* This,
+        IComponents *This,
         IEnumComponents **ppNewEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_Item)(
-        IComponents* This,
+        IComponents *This,
         VARIANT Index,
         IComponent **ppComponent);
 
     HRESULT (STDMETHODCALLTYPE *Add)(
-        IComponents* This,
+        IComponents *This,
         IComponent *Component,
         VARIANT *NewIndex);
 
     HRESULT (STDMETHODCALLTYPE *Remove)(
-        IComponents* This,
+        IComponents *This,
         VARIANT Index);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IComponents* This,
+        IComponents *This,
         IComponents **NewList);
 
     HRESULT (STDMETHODCALLTYPE *put_Item)(
-        IComponents* This,
+        IComponents *This,
         VARIANT Index,
         IComponent *ppComponent);
 
     END_INTERFACE
 } IComponentsVtbl;
+
 interface IComponents {
     CONST_VTBL IComponentsVtbl* lpVtbl;
 };
@@ -12005,73 +10744,6 @@ static FORCEINLINE HRESULT IComponents_put_Item(IComponents* This,VARIANT Index,
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IComponents_get_Count_Proxy(
-    IComponents* This,
-    LONG *Count);
-void __RPC_STUB IComponents_get_Count_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponents_get__NewEnum_Proxy(
-    IComponents* This,
-    IEnumVARIANT **ppNewEnum);
-void __RPC_STUB IComponents_get__NewEnum_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponents_EnumComponents_Proxy(
-    IComponents* This,
-    IEnumComponents **ppNewEnum);
-void __RPC_STUB IComponents_EnumComponents_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponents_get_Item_Proxy(
-    IComponents* This,
-    VARIANT Index,
-    IComponent **ppComponent);
-void __RPC_STUB IComponents_get_Item_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponents_Add_Proxy(
-    IComponents* This,
-    IComponent *Component,
-    VARIANT *NewIndex);
-void __RPC_STUB IComponents_Add_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponents_Remove_Proxy(
-    IComponents* This,
-    VARIANT Index);
-void __RPC_STUB IComponents_Remove_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponents_Clone_Proxy(
-    IComponents* This,
-    IComponents **NewList);
-void __RPC_STUB IComponents_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponents_put_Item_Proxy(
-    IComponents* This,
-    VARIANT Index,
-    IComponent *ppComponent);
-void __RPC_STUB IComponents_put_Item_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IComponents_INTERFACE_DEFINED__ */
 
@@ -12119,29 +10791,29 @@ typedef struct IComponentsOldVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IComponentsOld* This);
+        IComponentsOld *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IComponentsOld* This);
+        IComponentsOld *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -12149,7 +10821,7 @@ typedef struct IComponentsOldVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -12161,37 +10833,38 @@ typedef struct IComponentsOldVtbl {
 
     /*** IComponentsOld methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Count)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         LONG *Count);
 
     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         IEnumVARIANT **ppNewEnum);
 
     HRESULT (STDMETHODCALLTYPE *EnumComponents)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         IEnumComponents **ppNewEnum);
 
     HRESULT (STDMETHODCALLTYPE *get_Item)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         VARIANT Index,
         IComponent **ppComponent);
 
     HRESULT (STDMETHODCALLTYPE *Add)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         IComponent *Component,
         VARIANT *NewIndex);
 
     HRESULT (STDMETHODCALLTYPE *Remove)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         VARIANT Index);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IComponentsOld* This,
+        IComponentsOld *This,
         IComponents **NewList);
 
     END_INTERFACE
 } IComponentsOldVtbl;
+
 interface IComponentsOld {
     CONST_VTBL IComponentsOldVtbl* lpVtbl;
 };
@@ -12266,64 +10939,6 @@ static FORCEINLINE HRESULT IComponentsOld_Clone(IComponentsOld* This,IComponents
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IComponentsOld_get_Count_Proxy(
-    IComponentsOld* This,
-    LONG *Count);
-void __RPC_STUB IComponentsOld_get_Count_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentsOld_get__NewEnum_Proxy(
-    IComponentsOld* This,
-    IEnumVARIANT **ppNewEnum);
-void __RPC_STUB IComponentsOld_get__NewEnum_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentsOld_EnumComponents_Proxy(
-    IComponentsOld* This,
-    IEnumComponents **ppNewEnum);
-void __RPC_STUB IComponentsOld_EnumComponents_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentsOld_get_Item_Proxy(
-    IComponentsOld* This,
-    VARIANT Index,
-    IComponent **ppComponent);
-void __RPC_STUB IComponentsOld_get_Item_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentsOld_Add_Proxy(
-    IComponentsOld* This,
-    IComponent *Component,
-    VARIANT *NewIndex);
-void __RPC_STUB IComponentsOld_Add_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentsOld_Remove_Proxy(
-    IComponentsOld* This,
-    VARIANT Index);
-void __RPC_STUB IComponentsOld_Remove_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IComponentsOld_Clone_Proxy(
-    IComponentsOld* This,
-    IComponents **NewList);
-void __RPC_STUB IComponentsOld_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IComponentsOld_INTERFACE_DEFINED__ */
 
@@ -12393,29 +11008,29 @@ typedef struct ILocatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ILocator* This,
+        ILocator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ILocator* This);
+        ILocator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ILocator* This);
+        ILocator *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        ILocator* This,
+        ILocator *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        ILocator* This,
+        ILocator *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        ILocator* This,
+        ILocator *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -12423,7 +11038,7 @@ typedef struct ILocatorVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        ILocator* This,
+        ILocator *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -12435,67 +11050,68 @@ typedef struct ILocatorVtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        ILocator* This,
+        ILocator *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        ILocator* This,
+        ILocator *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        ILocator* This,
+        ILocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        ILocator* This,
+        ILocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        ILocator* This,
+        ILocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        ILocator* This,
+        ILocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        ILocator* This,
+        ILocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        ILocator* This,
+        ILocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        ILocator* This,
+        ILocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        ILocator* This,
+        ILocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        ILocator* This,
+        ILocator *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        ILocator* This,
+        ILocator *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        ILocator* This,
+        ILocator *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        ILocator* This,
+        ILocator *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        ILocator* This,
+        ILocator *This,
         ILocator **NewLocator);
 
     END_INTERFACE
 } ILocatorVtbl;
+
 interface ILocator {
     CONST_VTBL ILocatorVtbl* lpVtbl;
 };
@@ -12602,126 +11218,6 @@ static FORCEINLINE HRESULT ILocator_Clone(ILocator* This,ILocator **NewLocator)
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ILocator_get_CarrierFrequency_Proxy(
-    ILocator* This,
-    LONG *Frequency);
-void __RPC_STUB ILocator_get_CarrierFrequency_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_put_CarrierFrequency_Proxy(
-    ILocator* This,
-    LONG Frequency);
-void __RPC_STUB ILocator_put_CarrierFrequency_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_get_InnerFEC_Proxy(
-    ILocator* This,
-    FECMethod *FEC);
-void __RPC_STUB ILocator_get_InnerFEC_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_put_InnerFEC_Proxy(
-    ILocator* This,
-    FECMethod FEC);
-void __RPC_STUB ILocator_put_InnerFEC_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_get_InnerFECRate_Proxy(
-    ILocator* This,
-    BinaryConvolutionCodeRate *FEC);
-void __RPC_STUB ILocator_get_InnerFECRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_put_InnerFECRate_Proxy(
-    ILocator* This,
-    BinaryConvolutionCodeRate FEC);
-void __RPC_STUB ILocator_put_InnerFECRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_get_OuterFEC_Proxy(
-    ILocator* This,
-    FECMethod *FEC);
-void __RPC_STUB ILocator_get_OuterFEC_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_put_OuterFEC_Proxy(
-    ILocator* This,
-    FECMethod FEC);
-void __RPC_STUB ILocator_put_OuterFEC_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_get_OuterFECRate_Proxy(
-    ILocator* This,
-    BinaryConvolutionCodeRate *FEC);
-void __RPC_STUB ILocator_get_OuterFECRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_put_OuterFECRate_Proxy(
-    ILocator* This,
-    BinaryConvolutionCodeRate FEC);
-void __RPC_STUB ILocator_put_OuterFECRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_get_Modulation_Proxy(
-    ILocator* This,
-    ModulationType *Modulation);
-void __RPC_STUB ILocator_get_Modulation_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_put_Modulation_Proxy(
-    ILocator* This,
-    ModulationType Modulation);
-void __RPC_STUB ILocator_put_Modulation_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_get_SymbolRate_Proxy(
-    ILocator* This,
-    LONG *Rate);
-void __RPC_STUB ILocator_get_SymbolRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_put_SymbolRate_Proxy(
-    ILocator* This,
-    LONG Rate);
-void __RPC_STUB ILocator_put_SymbolRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ILocator_Clone_Proxy(
-    ILocator* This,
-    ILocator **NewLocator);
-void __RPC_STUB ILocator_Clone_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __ILocator_INTERFACE_DEFINED__ */
 
@@ -12752,29 +11248,29 @@ typedef struct IAnalogLocatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAnalogLocator* This);
+        IAnalogLocator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAnalogLocator* This);
+        IAnalogLocator *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -12782,7 +11278,7 @@ typedef struct IAnalogLocatorVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -12794,76 +11290,77 @@ typedef struct IAnalogLocatorVtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         ILocator **NewLocator);
 
     /*** IAnalogLocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_VideoStandard)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         AnalogVideoStandard *AVS);
 
     HRESULT (STDMETHODCALLTYPE *put_VideoStandard)(
-        IAnalogLocator* This,
+        IAnalogLocator *This,
         AnalogVideoStandard AVS);
 
     END_INTERFACE
 } IAnalogLocatorVtbl;
+
 interface IAnalogLocator {
     CONST_VTBL IAnalogLocatorVtbl* lpVtbl;
 };
@@ -12980,22 +11477,6 @@ static FORCEINLINE HRESULT IAnalogLocator_put_VideoStandard(IAnalogLocator* This
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAnalogLocator_get_VideoStandard_Proxy(
-    IAnalogLocator* This,
-    AnalogVideoStandard *AVS);
-void __RPC_STUB IAnalogLocator_get_VideoStandard_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAnalogLocator_put_VideoStandard_Proxy(
-    IAnalogLocator* This,
-    AnalogVideoStandard AVS);
-void __RPC_STUB IAnalogLocator_put_VideoStandard_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IAnalogLocator_INTERFACE_DEFINED__ */
 
@@ -13020,29 +11501,29 @@ typedef struct IDigitalLocatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDigitalLocator* This);
+        IDigitalLocator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDigitalLocator* This);
+        IDigitalLocator *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -13050,7 +11531,7 @@ typedef struct IDigitalLocatorVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -13062,67 +11543,68 @@ typedef struct IDigitalLocatorVtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDigitalLocator* This,
+        IDigitalLocator *This,
         ILocator **NewLocator);
 
     END_INTERFACE
 } IDigitalLocatorVtbl;
+
 interface IDigitalLocator {
     CONST_VTBL IDigitalLocatorVtbl* lpVtbl;
 };
@@ -13265,29 +11747,29 @@ typedef struct IATSCLocatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IATSCLocator* This);
+        IATSCLocator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IATSCLocator* This);
+        IATSCLocator *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -13295,7 +11777,7 @@ typedef struct IATSCLocatorVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -13307,84 +11789,85 @@ typedef struct IATSCLocatorVtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         ILocator **NewLocator);
 
     /*** IATSCLocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_PhysicalChannel)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         LONG *PhysicalChannel);
 
     HRESULT (STDMETHODCALLTYPE *put_PhysicalChannel)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         LONG PhysicalChannel);
 
     HRESULT (STDMETHODCALLTYPE *get_TSID)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         LONG *TSID);
 
     HRESULT (STDMETHODCALLTYPE *put_TSID)(
-        IATSCLocator* This,
+        IATSCLocator *This,
         LONG TSID);
 
     END_INTERFACE
 } IATSCLocatorVtbl;
+
 interface IATSCLocator {
     CONST_VTBL IATSCLocatorVtbl* lpVtbl;
 };
@@ -13509,38 +11992,6 @@ static FORCEINLINE HRESULT IATSCLocator_put_TSID(IATSCLocator* This,LONG TSID) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IATSCLocator_get_PhysicalChannel_Proxy(
-    IATSCLocator* This,
-    LONG *PhysicalChannel);
-void __RPC_STUB IATSCLocator_get_PhysicalChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCLocator_put_PhysicalChannel_Proxy(
-    IATSCLocator* This,
-    LONG PhysicalChannel);
-void __RPC_STUB IATSCLocator_put_PhysicalChannel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCLocator_get_TSID_Proxy(
-    IATSCLocator* This,
-    LONG *TSID);
-void __RPC_STUB IATSCLocator_get_TSID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCLocator_put_TSID_Proxy(
-    IATSCLocator* This,
-    LONG TSID);
-void __RPC_STUB IATSCLocator_put_TSID_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IATSCLocator_INTERFACE_DEFINED__ */
 
@@ -13571,29 +12022,29 @@ typedef struct IATSCLocator2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IATSCLocator2* This);
+        IATSCLocator2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IATSCLocator2* This);
+        IATSCLocator2 *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -13601,7 +12052,7 @@ typedef struct IATSCLocator2Vtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -13613,93 +12064,94 @@ typedef struct IATSCLocator2Vtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         ILocator **NewLocator);
 
     /*** IATSCLocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_PhysicalChannel)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         LONG *PhysicalChannel);
 
     HRESULT (STDMETHODCALLTYPE *put_PhysicalChannel)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         LONG PhysicalChannel);
 
     HRESULT (STDMETHODCALLTYPE *get_TSID)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         LONG *TSID);
 
     HRESULT (STDMETHODCALLTYPE *put_TSID)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         LONG TSID);
 
     /*** IATSCLocator2 methods ***/
     HRESULT (STDMETHODCALLTYPE *get_ProgramNumber)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         LONG *ProgramNumber);
 
     HRESULT (STDMETHODCALLTYPE *put_ProgramNumber)(
-        IATSCLocator2* This,
+        IATSCLocator2 *This,
         LONG ProgramNumber);
 
     END_INTERFACE
 } IATSCLocator2Vtbl;
+
 interface IATSCLocator2 {
     CONST_VTBL IATSCLocator2Vtbl* lpVtbl;
 };
@@ -13834,22 +12286,6 @@ static FORCEINLINE HRESULT IATSCLocator2_put_ProgramNumber(IATSCLocator2* This,L
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IATSCLocator2_get_ProgramNumber_Proxy(
-    IATSCLocator2* This,
-    LONG *ProgramNumber);
-void __RPC_STUB IATSCLocator2_get_ProgramNumber_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IATSCLocator2_put_ProgramNumber_Proxy(
-    IATSCLocator2* This,
-    LONG ProgramNumber);
-void __RPC_STUB IATSCLocator2_put_ProgramNumber_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IATSCLocator2_INTERFACE_DEFINED__ */
 
@@ -13874,29 +12310,29 @@ typedef struct IDigitalCableLocatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDigitalCableLocator* This);
+        IDigitalCableLocator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDigitalCableLocator* This);
+        IDigitalCableLocator *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -13904,7 +12340,7 @@ typedef struct IDigitalCableLocatorVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -13916,93 +12352,94 @@ typedef struct IDigitalCableLocatorVtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         ILocator **NewLocator);
 
     /*** IATSCLocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_PhysicalChannel)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         LONG *PhysicalChannel);
 
     HRESULT (STDMETHODCALLTYPE *put_PhysicalChannel)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         LONG PhysicalChannel);
 
     HRESULT (STDMETHODCALLTYPE *get_TSID)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         LONG *TSID);
 
     HRESULT (STDMETHODCALLTYPE *put_TSID)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         LONG TSID);
 
     /*** IATSCLocator2 methods ***/
     HRESULT (STDMETHODCALLTYPE *get_ProgramNumber)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         LONG *ProgramNumber);
 
     HRESULT (STDMETHODCALLTYPE *put_ProgramNumber)(
-        IDigitalCableLocator* This,
+        IDigitalCableLocator *This,
         LONG ProgramNumber);
 
     END_INTERFACE
 } IDigitalCableLocatorVtbl;
+
 interface IDigitalCableLocator {
     CONST_VTBL IDigitalCableLocatorVtbl* lpVtbl;
 };
@@ -14203,29 +12640,29 @@ typedef struct IDVBTLocatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDVBTLocator* This);
+        IDVBTLocator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDVBTLocator* This);
+        IDVBTLocator *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -14233,7 +12670,7 @@ typedef struct IDVBTLocatorVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -14245,124 +12682,125 @@ typedef struct IDVBTLocatorVtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         ILocator **NewLocator);
 
     /*** IDVBTLocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Bandwidth)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         LONG *BandWidthVal);
 
     HRESULT (STDMETHODCALLTYPE *put_Bandwidth)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         LONG BandwidthVal);
 
     HRESULT (STDMETHODCALLTYPE *get_LPInnerFEC)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_LPInnerFEC)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_LPInnerFECRate)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_LPInnerFECRate)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_HAlpha)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         HierarchyAlpha *Alpha);
 
     HRESULT (STDMETHODCALLTYPE *put_HAlpha)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         HierarchyAlpha Alpha);
 
     HRESULT (STDMETHODCALLTYPE *get_Guard)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         GuardInterval *GI);
 
     HRESULT (STDMETHODCALLTYPE *put_Guard)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         GuardInterval GI);
 
     HRESULT (STDMETHODCALLTYPE *get_Mode)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         TransmissionMode *mode);
 
     HRESULT (STDMETHODCALLTYPE *put_Mode)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         TransmissionMode mode);
 
     HRESULT (STDMETHODCALLTYPE *get_OtherFrequencyInUse)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         VARIANT_BOOL *OtherFrequencyInUseVal);
 
     HRESULT (STDMETHODCALLTYPE *put_OtherFrequencyInUse)(
-        IDVBTLocator* This,
+        IDVBTLocator *This,
         VARIANT_BOOL OtherFrequencyInUseVal);
 
     END_INTERFACE
 } IDVBTLocatorVtbl;
+
 interface IDVBTLocator {
     CONST_VTBL IDVBTLocatorVtbl* lpVtbl;
 };
@@ -14527,118 +12965,6 @@ static FORCEINLINE HRESULT IDVBTLocator_put_OtherFrequencyInUse(IDVBTLocator* Th
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDVBTLocator_get_Bandwidth_Proxy(
-    IDVBTLocator* This,
-    LONG *BandWidthVal);
-void __RPC_STUB IDVBTLocator_get_Bandwidth_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_put_Bandwidth_Proxy(
-    IDVBTLocator* This,
-    LONG BandwidthVal);
-void __RPC_STUB IDVBTLocator_put_Bandwidth_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_get_LPInnerFEC_Proxy(
-    IDVBTLocator* This,
-    FECMethod *FEC);
-void __RPC_STUB IDVBTLocator_get_LPInnerFEC_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_put_LPInnerFEC_Proxy(
-    IDVBTLocator* This,
-    FECMethod FEC);
-void __RPC_STUB IDVBTLocator_put_LPInnerFEC_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_get_LPInnerFECRate_Proxy(
-    IDVBTLocator* This,
-    BinaryConvolutionCodeRate *FEC);
-void __RPC_STUB IDVBTLocator_get_LPInnerFECRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_put_LPInnerFECRate_Proxy(
-    IDVBTLocator* This,
-    BinaryConvolutionCodeRate FEC);
-void __RPC_STUB IDVBTLocator_put_LPInnerFECRate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_get_HAlpha_Proxy(
-    IDVBTLocator* This,
-    HierarchyAlpha *Alpha);
-void __RPC_STUB IDVBTLocator_get_HAlpha_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_put_HAlpha_Proxy(
-    IDVBTLocator* This,
-    HierarchyAlpha Alpha);
-void __RPC_STUB IDVBTLocator_put_HAlpha_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_get_Guard_Proxy(
-    IDVBTLocator* This,
-    GuardInterval *GI);
-void __RPC_STUB IDVBTLocator_get_Guard_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_put_Guard_Proxy(
-    IDVBTLocator* This,
-    GuardInterval GI);
-void __RPC_STUB IDVBTLocator_put_Guard_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_get_Mode_Proxy(
-    IDVBTLocator* This,
-    TransmissionMode *mode);
-void __RPC_STUB IDVBTLocator_get_Mode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_put_Mode_Proxy(
-    IDVBTLocator* This,
-    TransmissionMode mode);
-void __RPC_STUB IDVBTLocator_put_Mode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_get_OtherFrequencyInUse_Proxy(
-    IDVBTLocator* This,
-    VARIANT_BOOL *OtherFrequencyInUseVal);
-void __RPC_STUB IDVBTLocator_get_OtherFrequencyInUse_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator_put_OtherFrequencyInUse_Proxy(
-    IDVBTLocator* This,
-    VARIANT_BOOL OtherFrequencyInUseVal);
-void __RPC_STUB IDVBTLocator_put_OtherFrequencyInUse_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDVBTLocator_INTERFACE_DEFINED__ */
 
@@ -14669,29 +12995,29 @@ typedef struct IDVBTLocator2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDVBTLocator2* This);
+        IDVBTLocator2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDVBTLocator2* This);
+        IDVBTLocator2 *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -14699,7 +13025,7 @@ typedef struct IDVBTLocator2Vtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -14711,133 +13037,134 @@ typedef struct IDVBTLocator2Vtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         ILocator **NewLocator);
 
     /*** IDVBTLocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Bandwidth)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         LONG *BandWidthVal);
 
     HRESULT (STDMETHODCALLTYPE *put_Bandwidth)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         LONG BandwidthVal);
 
     HRESULT (STDMETHODCALLTYPE *get_LPInnerFEC)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_LPInnerFEC)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_LPInnerFECRate)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_LPInnerFECRate)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_HAlpha)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         HierarchyAlpha *Alpha);
 
     HRESULT (STDMETHODCALLTYPE *put_HAlpha)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         HierarchyAlpha Alpha);
 
     HRESULT (STDMETHODCALLTYPE *get_Guard)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         GuardInterval *GI);
 
     HRESULT (STDMETHODCALLTYPE *put_Guard)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         GuardInterval GI);
 
     HRESULT (STDMETHODCALLTYPE *get_Mode)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         TransmissionMode *mode);
 
     HRESULT (STDMETHODCALLTYPE *put_Mode)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         TransmissionMode mode);
 
     HRESULT (STDMETHODCALLTYPE *get_OtherFrequencyInUse)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         VARIANT_BOOL *OtherFrequencyInUseVal);
 
     HRESULT (STDMETHODCALLTYPE *put_OtherFrequencyInUse)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         VARIANT_BOOL OtherFrequencyInUseVal);
 
     /*** IDVBTLocator2 methods ***/
     HRESULT (STDMETHODCALLTYPE *get_PhysicalLayerPipeId)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         LONG *PhysicalLayerPipeIdVal);
 
     HRESULT (STDMETHODCALLTYPE *put_PhysicalLayerPipeId)(
-        IDVBTLocator2* This,
+        IDVBTLocator2 *This,
         LONG PhysicalLayerPipeIdVal);
 
     END_INTERFACE
 } IDVBTLocator2Vtbl;
+
 interface IDVBTLocator2 {
     CONST_VTBL IDVBTLocator2Vtbl* lpVtbl;
 };
@@ -15012,22 +13339,6 @@ static FORCEINLINE HRESULT IDVBTLocator2_put_PhysicalLayerPipeId(IDVBTLocator2*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDVBTLocator2_get_PhysicalLayerPipeId_Proxy(
-    IDVBTLocator2* This,
-    LONG *PhysicalLayerPipeIdVal);
-void __RPC_STUB IDVBTLocator2_get_PhysicalLayerPipeId_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBTLocator2_put_PhysicalLayerPipeId_Proxy(
-    IDVBTLocator2* This,
-    LONG PhysicalLayerPipeIdVal);
-void __RPC_STUB IDVBTLocator2_put_PhysicalLayerPipeId_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDVBTLocator2_INTERFACE_DEFINED__ */
 
@@ -15082,29 +13393,29 @@ typedef struct IDVBSLocatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDVBSLocator* This);
+        IDVBSLocator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDVBSLocator* This);
+        IDVBSLocator *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -15112,7 +13423,7 @@ typedef struct IDVBSLocatorVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -15124,108 +13435,109 @@ typedef struct IDVBSLocatorVtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         ILocator **NewLocator);
 
     /*** IDVBSLocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_SignalPolarisation)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         Polarisation *PolarisationVal);
 
     HRESULT (STDMETHODCALLTYPE *put_SignalPolarisation)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         Polarisation PolarisationVal);
 
     HRESULT (STDMETHODCALLTYPE *get_WestPosition)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         VARIANT_BOOL *WestLongitude);
 
     HRESULT (STDMETHODCALLTYPE *put_WestPosition)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         VARIANT_BOOL WestLongitude);
 
     HRESULT (STDMETHODCALLTYPE *get_OrbitalPosition)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         LONG *longitude);
 
     HRESULT (STDMETHODCALLTYPE *put_OrbitalPosition)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         LONG longitude);
 
     HRESULT (STDMETHODCALLTYPE *get_Azimuth)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         LONG *Azimuth);
 
     HRESULT (STDMETHODCALLTYPE *put_Azimuth)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         LONG Azimuth);
 
     HRESULT (STDMETHODCALLTYPE *get_Elevation)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         LONG *Elevation);
 
     HRESULT (STDMETHODCALLTYPE *put_Elevation)(
-        IDVBSLocator* This,
+        IDVBSLocator *This,
         LONG Elevation);
 
     END_INTERFACE
 } IDVBSLocatorVtbl;
+
 interface IDVBSLocator {
     CONST_VTBL IDVBSLocatorVtbl* lpVtbl;
 };
@@ -15374,86 +13686,6 @@ static FORCEINLINE HRESULT IDVBSLocator_put_Elevation(IDVBSLocator* This,LONG El
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDVBSLocator_get_SignalPolarisation_Proxy(
-    IDVBSLocator* This,
-    Polarisation *PolarisationVal);
-void __RPC_STUB IDVBSLocator_get_SignalPolarisation_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator_put_SignalPolarisation_Proxy(
-    IDVBSLocator* This,
-    Polarisation PolarisationVal);
-void __RPC_STUB IDVBSLocator_put_SignalPolarisation_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator_get_WestPosition_Proxy(
-    IDVBSLocator* This,
-    VARIANT_BOOL *WestLongitude);
-void __RPC_STUB IDVBSLocator_get_WestPosition_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator_put_WestPosition_Proxy(
-    IDVBSLocator* This,
-    VARIANT_BOOL WestLongitude);
-void __RPC_STUB IDVBSLocator_put_WestPosition_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator_get_OrbitalPosition_Proxy(
-    IDVBSLocator* This,
-    LONG *longitude);
-void __RPC_STUB IDVBSLocator_get_OrbitalPosition_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator_put_OrbitalPosition_Proxy(
-    IDVBSLocator* This,
-    LONG longitude);
-void __RPC_STUB IDVBSLocator_put_OrbitalPosition_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator_get_Azimuth_Proxy(
-    IDVBSLocator* This,
-    LONG *Azimuth);
-void __RPC_STUB IDVBSLocator_get_Azimuth_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator_put_Azimuth_Proxy(
-    IDVBSLocator* This,
-    LONG Azimuth);
-void __RPC_STUB IDVBSLocator_put_Azimuth_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator_get_Elevation_Proxy(
-    IDVBSLocator* This,
-    LONG *Elevation);
-void __RPC_STUB IDVBSLocator_get_Elevation_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator_put_Elevation_Proxy(
-    IDVBSLocator* This,
-    LONG Elevation);
-void __RPC_STUB IDVBSLocator_put_Elevation_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDVBSLocator_INTERFACE_DEFINED__ */
 
@@ -15520,29 +13752,29 @@ typedef struct IDVBSLocator2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDVBSLocator2* This);
+        IDVBSLocator2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDVBSLocator2* This);
+        IDVBSLocator2 *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -15550,7 +13782,7 @@ typedef struct IDVBSLocator2Vtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -15562,165 +13794,166 @@ typedef struct IDVBSLocator2Vtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         ILocator **NewLocator);
 
     /*** IDVBSLocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_SignalPolarisation)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         Polarisation *PolarisationVal);
 
     HRESULT (STDMETHODCALLTYPE *put_SignalPolarisation)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         Polarisation PolarisationVal);
 
     HRESULT (STDMETHODCALLTYPE *get_WestPosition)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         VARIANT_BOOL *WestLongitude);
 
     HRESULT (STDMETHODCALLTYPE *put_WestPosition)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         VARIANT_BOOL WestLongitude);
 
     HRESULT (STDMETHODCALLTYPE *get_OrbitalPosition)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG *longitude);
 
     HRESULT (STDMETHODCALLTYPE *put_OrbitalPosition)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG longitude);
 
     HRESULT (STDMETHODCALLTYPE *get_Azimuth)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG *Azimuth);
 
     HRESULT (STDMETHODCALLTYPE *put_Azimuth)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG Azimuth);
 
     HRESULT (STDMETHODCALLTYPE *get_Elevation)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG *Elevation);
 
     HRESULT (STDMETHODCALLTYPE *put_Elevation)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG Elevation);
 
     /*** IDVBSLocator2 methods ***/
     HRESULT (STDMETHODCALLTYPE *get_DiseqLNBSource)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LNB_Source *DiseqLNBSourceVal);
 
     HRESULT (STDMETHODCALLTYPE *put_DiseqLNBSource)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LNB_Source DiseqLNBSourceVal);
 
     HRESULT (STDMETHODCALLTYPE *get_LocalOscillatorOverrideLow)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG *LocalOscillatorOverrideLowVal);
 
     HRESULT (STDMETHODCALLTYPE *put_LocalOscillatorOverrideLow)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG LocalOscillatorOverrideLowVal);
 
     HRESULT (STDMETHODCALLTYPE *get_LocalOscillatorOverrideHigh)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG *LocalOscillatorOverrideHighVal);
 
     HRESULT (STDMETHODCALLTYPE *put_LocalOscillatorOverrideHigh)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG LocalOscillatorOverrideHighVal);
 
     HRESULT (STDMETHODCALLTYPE *get_LocalLNBSwitchOverride)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG *LocalLNBSwitchOverrideVal);
 
     HRESULT (STDMETHODCALLTYPE *put_LocalLNBSwitchOverride)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         LONG LocalLNBSwitchOverrideVal);
 
     HRESULT (STDMETHODCALLTYPE *get_LocalSpectralInversionOverride)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         SpectralInversion *LocalSpectralInversionOverrideVal);
 
     HRESULT (STDMETHODCALLTYPE *put_LocalSpectralInversionOverride)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         SpectralInversion LocalSpectralInversionOverrideVal);
 
     HRESULT (STDMETHODCALLTYPE *get_SignalRollOff)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         RollOff *RollOffVal);
 
     HRESULT (STDMETHODCALLTYPE *put_SignalRollOff)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         RollOff RollOffVal);
 
     HRESULT (STDMETHODCALLTYPE *get_SignalPilot)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         Pilot *PilotVal);
 
     HRESULT (STDMETHODCALLTYPE *put_SignalPilot)(
-        IDVBSLocator2* This,
+        IDVBSLocator2 *This,
         Pilot PilotVal);
 
     END_INTERFACE
 } IDVBSLocator2Vtbl;
+
 interface IDVBSLocator2 {
     CONST_VTBL IDVBSLocator2Vtbl* lpVtbl;
 };
@@ -15927,118 +14160,6 @@ static FORCEINLINE HRESULT IDVBSLocator2_put_SignalPilot(IDVBSLocator2* This,Pil
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_get_DiseqLNBSource_Proxy(
-    IDVBSLocator2* This,
-    LNB_Source *DiseqLNBSourceVal);
-void __RPC_STUB IDVBSLocator2_get_DiseqLNBSource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_put_DiseqLNBSource_Proxy(
-    IDVBSLocator2* This,
-    LNB_Source DiseqLNBSourceVal);
-void __RPC_STUB IDVBSLocator2_put_DiseqLNBSource_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_get_LocalOscillatorOverrideLow_Proxy(
-    IDVBSLocator2* This,
-    LONG *LocalOscillatorOverrideLowVal);
-void __RPC_STUB IDVBSLocator2_get_LocalOscillatorOverrideLow_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_put_LocalOscillatorOverrideLow_Proxy(
-    IDVBSLocator2* This,
-    LONG LocalOscillatorOverrideLowVal);
-void __RPC_STUB IDVBSLocator2_put_LocalOscillatorOverrideLow_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_get_LocalOscillatorOverrideHigh_Proxy(
-    IDVBSLocator2* This,
-    LONG *LocalOscillatorOverrideHighVal);
-void __RPC_STUB IDVBSLocator2_get_LocalOscillatorOverrideHigh_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_put_LocalOscillatorOverrideHigh_Proxy(
-    IDVBSLocator2* This,
-    LONG LocalOscillatorOverrideHighVal);
-void __RPC_STUB IDVBSLocator2_put_LocalOscillatorOverrideHigh_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_get_LocalLNBSwitchOverride_Proxy(
-    IDVBSLocator2* This,
-    LONG *LocalLNBSwitchOverrideVal);
-void __RPC_STUB IDVBSLocator2_get_LocalLNBSwitchOverride_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_put_LocalLNBSwitchOverride_Proxy(
-    IDVBSLocator2* This,
-    LONG LocalLNBSwitchOverrideVal);
-void __RPC_STUB IDVBSLocator2_put_LocalLNBSwitchOverride_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_get_LocalSpectralInversionOverride_Proxy(
-    IDVBSLocator2* This,
-    SpectralInversion *LocalSpectralInversionOverrideVal);
-void __RPC_STUB IDVBSLocator2_get_LocalSpectralInversionOverride_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_put_LocalSpectralInversionOverride_Proxy(
-    IDVBSLocator2* This,
-    SpectralInversion LocalSpectralInversionOverrideVal);
-void __RPC_STUB IDVBSLocator2_put_LocalSpectralInversionOverride_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_get_SignalRollOff_Proxy(
-    IDVBSLocator2* This,
-    RollOff *RollOffVal);
-void __RPC_STUB IDVBSLocator2_get_SignalRollOff_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_put_SignalRollOff_Proxy(
-    IDVBSLocator2* This,
-    RollOff RollOffVal);
-void __RPC_STUB IDVBSLocator2_put_SignalRollOff_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_get_SignalPilot_Proxy(
-    IDVBSLocator2* This,
-    Pilot *PilotVal);
-void __RPC_STUB IDVBSLocator2_get_SignalPilot_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IDVBSLocator2_put_SignalPilot_Proxy(
-    IDVBSLocator2* This,
-    Pilot PilotVal);
-void __RPC_STUB IDVBSLocator2_put_SignalPilot_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IDVBSLocator2_INTERFACE_DEFINED__ */
 
@@ -16063,29 +14184,29 @@ typedef struct IDVBCLocatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IDVBCLocator* This);
+        IDVBCLocator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IDVBCLocator* This);
+        IDVBCLocator *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -16093,7 +14214,7 @@ typedef struct IDVBCLocatorVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -16105,67 +14226,68 @@ typedef struct IDVBCLocatorVtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IDVBCLocator* This,
+        IDVBCLocator *This,
         ILocator **NewLocator);
 
     END_INTERFACE
 } IDVBCLocatorVtbl;
+
 interface IDVBCLocator {
     CONST_VTBL IDVBCLocatorVtbl* lpVtbl;
 };
@@ -16296,29 +14418,29 @@ typedef struct IISDBSLocatorVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IISDBSLocator* This);
+        IISDBSLocator *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IISDBSLocator* This);
+        IISDBSLocator *This);
 
     /*** IDispatch methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         UINT *pctinfo);
 
     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         UINT iTInfo,
         LCID lcid,
         ITypeInfo **ppTInfo);
 
     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         REFIID riid,
         LPOLESTR *rgszNames,
         UINT cNames,
@@ -16326,7 +14448,7 @@ typedef struct IISDBSLocatorVtbl {
         DISPID *rgDispId);
 
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         DISPID dispIdMember,
         REFIID riid,
         LCID lcid,
@@ -16338,108 +14460,109 @@ typedef struct IISDBSLocatorVtbl {
 
     /*** ILocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CarrierFrequency)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         LONG *Frequency);
 
     HRESULT (STDMETHODCALLTYPE *put_CarrierFrequency)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         LONG Frequency);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFEC)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFEC)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_InnerFECRate)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_InnerFECRate)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFEC)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         FECMethod *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFEC)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         FECMethod FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_OuterFECRate)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         BinaryConvolutionCodeRate *FEC);
 
     HRESULT (STDMETHODCALLTYPE *put_OuterFECRate)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         BinaryConvolutionCodeRate FEC);
 
     HRESULT (STDMETHODCALLTYPE *get_Modulation)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         ModulationType *Modulation);
 
     HRESULT (STDMETHODCALLTYPE *put_Modulation)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         ModulationType Modulation);
 
     HRESULT (STDMETHODCALLTYPE *get_SymbolRate)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         LONG *Rate);
 
     HRESULT (STDMETHODCALLTYPE *put_SymbolRate)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         LONG Rate);
 
     HRESULT (STDMETHODCALLTYPE *Clone)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         ILocator **NewLocator);
 
     /*** IDVBSLocator methods ***/
     HRESULT (STDMETHODCALLTYPE *get_SignalPolarisation)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         Polarisation *PolarisationVal);
 
     HRESULT (STDMETHODCALLTYPE *put_SignalPolarisation)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         Polarisation PolarisationVal);
 
     HRESULT (STDMETHODCALLTYPE *get_WestPosition)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         VARIANT_BOOL *WestLongitude);
 
     HRESULT (STDMETHODCALLTYPE *put_WestPosition)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         VARIANT_BOOL WestLongitude);
 
     HRESULT (STDMETHODCALLTYPE *get_OrbitalPosition)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         LONG *longitude);
 
     HRESULT (STDMETHODCALLTYPE *put_OrbitalPosition)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         LONG longitude);
 
     HRESULT (STDMETHODCALLTYPE *get_Azimuth)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         LONG *Azimuth);
 
     HRESULT (STDMETHODCALLTYPE *put_Azimuth)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         LONG Azimuth);
 
     HRESULT (STDMETHODCALLTYPE *get_Elevation)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         LONG *Elevation);
 
     HRESULT (STDMETHODCALLTYPE *put_Elevation)(
-        IISDBSLocator* This,
+        IISDBSLocator *This,
         LONG Elevation);
 
     END_INTERFACE
 } IISDBSLocatorVtbl;
+
 interface IISDBSLocator {
     CONST_VTBL IISDBSLocatorVtbl* lpVtbl;
 };
@@ -16627,39 +14750,40 @@ typedef struct IESEventVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESEvent* This,
+        IESEvent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESEvent* This);
+        IESEvent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESEvent* This);
+        IESEvent *This);
 
     /*** IESEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetEventId)(
-        IESEvent* This,
+        IESEvent *This,
         DWORD *pdwEventId);
 
     HRESULT (STDMETHODCALLTYPE *GetEventType)(
-        IESEvent* This,
+        IESEvent *This,
         GUID *pguidEventType);
 
     HRESULT (STDMETHODCALLTYPE *SetCompletionStatus)(
-        IESEvent* This,
+        IESEvent *This,
         DWORD dwResult);
 
     HRESULT (STDMETHODCALLTYPE *GetData)(
-        IESEvent* This,
+        IESEvent *This,
         SAFEARRAY **pbData);
 
     HRESULT (STDMETHODCALLTYPE *GetStringData)(
-        IESEvent* This,
+        IESEvent *This,
         BSTR *pbstrData);
 
     END_INTERFACE
 } IESEventVtbl;
+
 interface IESEvent {
     CONST_VTBL IESEventVtbl* lpVtbl;
 };
@@ -16708,46 +14832,6 @@ static FORCEINLINE HRESULT IESEvent_GetStringData(IESEvent* This,BSTR *pbstrData
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESEvent_GetEventId_Proxy(
-    IESEvent* This,
-    DWORD *pdwEventId);
-void __RPC_STUB IESEvent_GetEventId_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESEvent_GetEventType_Proxy(
-    IESEvent* This,
-    GUID *pguidEventType);
-void __RPC_STUB IESEvent_GetEventType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESEvent_SetCompletionStatus_Proxy(
-    IESEvent* This,
-    DWORD dwResult);
-void __RPC_STUB IESEvent_SetCompletionStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESEvent_GetData_Proxy(
-    IESEvent* This,
-    SAFEARRAY **pbData);
-void __RPC_STUB IESEvent_GetData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESEvent_GetStringData_Proxy(
-    IESEvent* This,
-    BSTR *pbstrData);
-void __RPC_STUB IESEvent_GetStringData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESEvent_INTERFACE_DEFINED__ */
 
@@ -16786,58 +14870,59 @@ typedef struct IESOpenMmiEventVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESOpenMmiEvent* This,
+        IESOpenMmiEvent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESOpenMmiEvent* This);
+        IESOpenMmiEvent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESOpenMmiEvent* This);
+        IESOpenMmiEvent *This);
 
     /*** IESEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetEventId)(
-        IESOpenMmiEvent* This,
+        IESOpenMmiEvent *This,
         DWORD *pdwEventId);
 
     HRESULT (STDMETHODCALLTYPE *GetEventType)(
-        IESOpenMmiEvent* This,
+        IESOpenMmiEvent *This,
         GUID *pguidEventType);
 
     HRESULT (STDMETHODCALLTYPE *SetCompletionStatus)(
-        IESOpenMmiEvent* This,
+        IESOpenMmiEvent *This,
         DWORD dwResult);
 
     HRESULT (STDMETHODCALLTYPE *GetData)(
-        IESOpenMmiEvent* This,
+        IESOpenMmiEvent *This,
         SAFEARRAY **pbData);
 
     HRESULT (STDMETHODCALLTYPE *GetStringData)(
-        IESOpenMmiEvent* This,
+        IESOpenMmiEvent *This,
         BSTR *pbstrData);
 
     /*** IESOpenMmiEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetDialogNumber)(
-        IESOpenMmiEvent* This,
+        IESOpenMmiEvent *This,
         DWORD *pDialogRequest,
         DWORD *pDialogNumber);
 
     HRESULT (STDMETHODCALLTYPE *GetDialogType)(
-        IESOpenMmiEvent* This,
+        IESOpenMmiEvent *This,
         GUID *guidDialogType);
 
     HRESULT (STDMETHODCALLTYPE *GetDialogData)(
-        IESOpenMmiEvent* This,
+        IESOpenMmiEvent *This,
         SAFEARRAY **pbData);
 
     HRESULT (STDMETHODCALLTYPE *GetDialogStringData)(
-        IESOpenMmiEvent* This,
+        IESOpenMmiEvent *This,
         BSTR *pbstrBaseUrl,
         BSTR *pbstrData);
 
     END_INTERFACE
 } IESOpenMmiEventVtbl;
+
 interface IESOpenMmiEvent {
     CONST_VTBL IESOpenMmiEventVtbl* lpVtbl;
 };
@@ -16904,40 +14989,6 @@ static FORCEINLINE HRESULT IESOpenMmiEvent_GetDialogStringData(IESOpenMmiEvent*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESOpenMmiEvent_GetDialogNumber_Proxy(
-    IESOpenMmiEvent* This,
-    DWORD *pDialogRequest,
-    DWORD *pDialogNumber);
-void __RPC_STUB IESOpenMmiEvent_GetDialogNumber_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESOpenMmiEvent_GetDialogType_Proxy(
-    IESOpenMmiEvent* This,
-    GUID *guidDialogType);
-void __RPC_STUB IESOpenMmiEvent_GetDialogType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESOpenMmiEvent_GetDialogData_Proxy(
-    IESOpenMmiEvent* This,
-    SAFEARRAY **pbData);
-void __RPC_STUB IESOpenMmiEvent_GetDialogData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESOpenMmiEvent_GetDialogStringData_Proxy(
-    IESOpenMmiEvent* This,
-    BSTR *pbstrBaseUrl,
-    BSTR *pbstrData);
-void __RPC_STUB IESOpenMmiEvent_GetDialogStringData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESOpenMmiEvent_INTERFACE_DEFINED__ */
 
@@ -16965,44 +15016,45 @@ typedef struct IESCloseMmiEventVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESCloseMmiEvent* This,
+        IESCloseMmiEvent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESCloseMmiEvent* This);
+        IESCloseMmiEvent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESCloseMmiEvent* This);
+        IESCloseMmiEvent *This);
 
     /*** IESEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetEventId)(
-        IESCloseMmiEvent* This,
+        IESCloseMmiEvent *This,
         DWORD *pdwEventId);
 
     HRESULT (STDMETHODCALLTYPE *GetEventType)(
-        IESCloseMmiEvent* This,
+        IESCloseMmiEvent *This,
         GUID *pguidEventType);
 
     HRESULT (STDMETHODCALLTYPE *SetCompletionStatus)(
-        IESCloseMmiEvent* This,
+        IESCloseMmiEvent *This,
         DWORD dwResult);
 
     HRESULT (STDMETHODCALLTYPE *GetData)(
-        IESCloseMmiEvent* This,
+        IESCloseMmiEvent *This,
         SAFEARRAY **pbData);
 
     HRESULT (STDMETHODCALLTYPE *GetStringData)(
-        IESCloseMmiEvent* This,
+        IESCloseMmiEvent *This,
         BSTR *pbstrData);
 
     /*** IESCloseMmiEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetDialogNumber)(
-        IESCloseMmiEvent* This,
+        IESCloseMmiEvent *This,
         DWORD *pDialogNumber);
 
     END_INTERFACE
 } IESCloseMmiEventVtbl;
+
 interface IESCloseMmiEvent {
     CONST_VTBL IESCloseMmiEventVtbl* lpVtbl;
 };
@@ -17057,14 +15109,6 @@ static FORCEINLINE HRESULT IESCloseMmiEvent_GetDialogNumber(IESCloseMmiEvent* Th
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESCloseMmiEvent_GetDialogNumber_Proxy(
-    IESCloseMmiEvent* This,
-    DWORD *pDialogNumber);
-void __RPC_STUB IESCloseMmiEvent_GetDialogNumber_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESCloseMmiEvent_INTERFACE_DEFINED__ */
 
@@ -17092,44 +15136,45 @@ typedef struct IESValueUpdatedEventVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESValueUpdatedEvent* This,
+        IESValueUpdatedEvent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESValueUpdatedEvent* This);
+        IESValueUpdatedEvent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESValueUpdatedEvent* This);
+        IESValueUpdatedEvent *This);
 
     /*** IESEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetEventId)(
-        IESValueUpdatedEvent* This,
+        IESValueUpdatedEvent *This,
         DWORD *pdwEventId);
 
     HRESULT (STDMETHODCALLTYPE *GetEventType)(
-        IESValueUpdatedEvent* This,
+        IESValueUpdatedEvent *This,
         GUID *pguidEventType);
 
     HRESULT (STDMETHODCALLTYPE *SetCompletionStatus)(
-        IESValueUpdatedEvent* This,
+        IESValueUpdatedEvent *This,
         DWORD dwResult);
 
     HRESULT (STDMETHODCALLTYPE *GetData)(
-        IESValueUpdatedEvent* This,
+        IESValueUpdatedEvent *This,
         SAFEARRAY **pbData);
 
     HRESULT (STDMETHODCALLTYPE *GetStringData)(
-        IESValueUpdatedEvent* This,
+        IESValueUpdatedEvent *This,
         BSTR *pbstrData);
 
     /*** IESValueUpdatedEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetValueNames)(
-        IESValueUpdatedEvent* This,
+        IESValueUpdatedEvent *This,
         SAFEARRAY **pbstrNames);
 
     END_INTERFACE
 } IESValueUpdatedEventVtbl;
+
 interface IESValueUpdatedEvent {
     CONST_VTBL IESValueUpdatedEventVtbl* lpVtbl;
 };
@@ -17184,14 +15229,6 @@ static FORCEINLINE HRESULT IESValueUpdatedEvent_GetValueNames(IESValueUpdatedEve
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESValueUpdatedEvent_GetValueNames_Proxy(
-    IESValueUpdatedEvent* This,
-    SAFEARRAY **pbstrNames);
-void __RPC_STUB IESValueUpdatedEvent_GetValueNames_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESValueUpdatedEvent_INTERFACE_DEFINED__ */
 
@@ -17228,56 +15265,57 @@ typedef struct IESRequestTunerEventVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESRequestTunerEvent* This,
+        IESRequestTunerEvent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESRequestTunerEvent* This);
+        IESRequestTunerEvent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESRequestTunerEvent* This);
+        IESRequestTunerEvent *This);
 
     /*** IESEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetEventId)(
-        IESRequestTunerEvent* This,
+        IESRequestTunerEvent *This,
         DWORD *pdwEventId);
 
     HRESULT (STDMETHODCALLTYPE *GetEventType)(
-        IESRequestTunerEvent* This,
+        IESRequestTunerEvent *This,
         GUID *pguidEventType);
 
     HRESULT (STDMETHODCALLTYPE *SetCompletionStatus)(
-        IESRequestTunerEvent* This,
+        IESRequestTunerEvent *This,
         DWORD dwResult);
 
     HRESULT (STDMETHODCALLTYPE *GetData)(
-        IESRequestTunerEvent* This,
+        IESRequestTunerEvent *This,
         SAFEARRAY **pbData);
 
     HRESULT (STDMETHODCALLTYPE *GetStringData)(
-        IESRequestTunerEvent* This,
+        IESRequestTunerEvent *This,
         BSTR *pbstrData);
 
     /*** IESRequestTunerEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetPriority)(
-        IESRequestTunerEvent* This,
+        IESRequestTunerEvent *This,
         BYTE *pbyPriority);
 
     HRESULT (STDMETHODCALLTYPE *GetReason)(
-        IESRequestTunerEvent* This,
+        IESRequestTunerEvent *This,
         BYTE *pbyReason);
 
     HRESULT (STDMETHODCALLTYPE *GetConsequences)(
-        IESRequestTunerEvent* This,
+        IESRequestTunerEvent *This,
         BYTE *pbyConsequences);
 
     HRESULT (STDMETHODCALLTYPE *GetEstimatedTime)(
-        IESRequestTunerEvent* This,
+        IESRequestTunerEvent *This,
         DWORD *pdwEstimatedTime);
 
     END_INTERFACE
 } IESRequestTunerEventVtbl;
+
 interface IESRequestTunerEvent {
     CONST_VTBL IESRequestTunerEventVtbl* lpVtbl;
 };
@@ -17344,38 +15382,6 @@ static FORCEINLINE HRESULT IESRequestTunerEvent_GetEstimatedTime(IESRequestTuner
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESRequestTunerEvent_GetPriority_Proxy(
-    IESRequestTunerEvent* This,
-    BYTE *pbyPriority);
-void __RPC_STUB IESRequestTunerEvent_GetPriority_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESRequestTunerEvent_GetReason_Proxy(
-    IESRequestTunerEvent* This,
-    BYTE *pbyReason);
-void __RPC_STUB IESRequestTunerEvent_GetReason_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESRequestTunerEvent_GetConsequences_Proxy(
-    IESRequestTunerEvent* This,
-    BYTE *pbyConsequences);
-void __RPC_STUB IESRequestTunerEvent_GetConsequences_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESRequestTunerEvent_GetEstimatedTime_Proxy(
-    IESRequestTunerEvent* This,
-    DWORD *pdwEstimatedTime);
-void __RPC_STUB IESRequestTunerEvent_GetEstimatedTime_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESRequestTunerEvent_INTERFACE_DEFINED__ */
 
@@ -17412,56 +15418,57 @@ typedef struct IESIsdbCasResponseEventVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESIsdbCasResponseEvent* This,
+        IESIsdbCasResponseEvent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESIsdbCasResponseEvent* This);
+        IESIsdbCasResponseEvent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESIsdbCasResponseEvent* This);
+        IESIsdbCasResponseEvent *This);
 
     /*** IESEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetEventId)(
-        IESIsdbCasResponseEvent* This,
+        IESIsdbCasResponseEvent *This,
         DWORD *pdwEventId);
 
     HRESULT (STDMETHODCALLTYPE *GetEventType)(
-        IESIsdbCasResponseEvent* This,
+        IESIsdbCasResponseEvent *This,
         GUID *pguidEventType);
 
     HRESULT (STDMETHODCALLTYPE *SetCompletionStatus)(
-        IESIsdbCasResponseEvent* This,
+        IESIsdbCasResponseEvent *This,
         DWORD dwResult);
 
     HRESULT (STDMETHODCALLTYPE *GetData)(
-        IESIsdbCasResponseEvent* This,
+        IESIsdbCasResponseEvent *This,
         SAFEARRAY **pbData);
 
     HRESULT (STDMETHODCALLTYPE *GetStringData)(
-        IESIsdbCasResponseEvent* This,
+        IESIsdbCasResponseEvent *This,
         BSTR *pbstrData);
 
     /*** IESIsdbCasResponseEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetRequestId)(
-        IESIsdbCasResponseEvent* This,
+        IESIsdbCasResponseEvent *This,
         DWORD *pRequestId);
 
     HRESULT (STDMETHODCALLTYPE *GetStatus)(
-        IESIsdbCasResponseEvent* This,
+        IESIsdbCasResponseEvent *This,
         DWORD *pStatus);
 
     HRESULT (STDMETHODCALLTYPE *GetDataLength)(
-        IESIsdbCasResponseEvent* This,
+        IESIsdbCasResponseEvent *This,
         DWORD *pRequestLength);
 
     HRESULT (STDMETHODCALLTYPE *GetResponseData)(
-        IESIsdbCasResponseEvent* This,
+        IESIsdbCasResponseEvent *This,
         SAFEARRAY **pbData);
 
     END_INTERFACE
 } IESIsdbCasResponseEventVtbl;
+
 interface IESIsdbCasResponseEvent {
     CONST_VTBL IESIsdbCasResponseEventVtbl* lpVtbl;
 };
@@ -17528,38 +15535,6 @@ static FORCEINLINE HRESULT IESIsdbCasResponseEvent_GetResponseData(IESIsdbCasRes
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESIsdbCasResponseEvent_GetRequestId_Proxy(
-    IESIsdbCasResponseEvent* This,
-    DWORD *pRequestId);
-void __RPC_STUB IESIsdbCasResponseEvent_GetRequestId_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESIsdbCasResponseEvent_GetStatus_Proxy(
-    IESIsdbCasResponseEvent* This,
-    DWORD *pStatus);
-void __RPC_STUB IESIsdbCasResponseEvent_GetStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESIsdbCasResponseEvent_GetDataLength_Proxy(
-    IESIsdbCasResponseEvent* This,
-    DWORD *pRequestLength);
-void __RPC_STUB IESIsdbCasResponseEvent_GetDataLength_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESIsdbCasResponseEvent_GetResponseData_Proxy(
-    IESIsdbCasResponseEvent* This,
-    SAFEARRAY **pbData);
-void __RPC_STUB IESIsdbCasResponseEvent_GetResponseData_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESIsdbCasResponseEvent_INTERFACE_DEFINED__ */
 
@@ -17587,23 +15562,24 @@ typedef struct IGpnvsCommonBaseVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IGpnvsCommonBase* This,
+        IGpnvsCommonBase *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IGpnvsCommonBase* This);
+        IGpnvsCommonBase *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IGpnvsCommonBase* This);
+        IGpnvsCommonBase *This);
 
     /*** IGpnvsCommonBase methods ***/
     HRESULT (STDMETHODCALLTYPE *GetValueUpdateName)(
-        IGpnvsCommonBase* This,
+        IGpnvsCommonBase *This,
         BSTR *pbstrName);
 
     END_INTERFACE
 } IGpnvsCommonBaseVtbl;
+
 interface IGpnvsCommonBase {
     CONST_VTBL IGpnvsCommonBaseVtbl* lpVtbl;
 };
@@ -17636,14 +15612,6 @@ static FORCEINLINE HRESULT IGpnvsCommonBase_GetValueUpdateName(IGpnvsCommonBase*
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IGpnvsCommonBase_GetValueUpdateName_Proxy(
-    IGpnvsCommonBase* This,
-    BSTR *pbstrName);
-void __RPC_STUB IGpnvsCommonBase_GetValueUpdateName_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IGpnvsCommonBase_INTERFACE_DEFINED__ */
 
@@ -17678,19 +15646,19 @@ typedef struct IESEventFactoryVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESEventFactory* This,
+        IESEventFactory *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESEventFactory* This);
+        IESEventFactory *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESEventFactory* This);
+        IESEventFactory *This);
 
     /*** IESEventFactory methods ***/
     HRESULT (STDMETHODCALLTYPE *CreateESEvent)(
-        IESEventFactory* This,
+        IESEventFactory *This,
         IUnknown *pServiceProvider,
         DWORD dwEventId,
         GUID guidEventType,
@@ -17702,6 +15670,7 @@ typedef struct IESEventFactoryVtbl {
 
     END_INTERFACE
 } IESEventFactoryVtbl;
+
 interface IESEventFactory {
     CONST_VTBL IESEventFactoryVtbl* lpVtbl;
 };
@@ -17734,21 +15703,6 @@ static FORCEINLINE HRESULT IESEventFactory_CreateESEvent(IESEventFactory* This,I
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESEventFactory_CreateESEvent_Proxy(
-    IESEventFactory* This,
-    IUnknown *pServiceProvider,
-    DWORD dwEventId,
-    GUID guidEventType,
-    DWORD dwEventDataLength,
-    BYTE *pEventData,
-    BSTR bstrBaseUrl,
-    IUnknown *pInitContext,
-    IESEvent **ppESEvent);
-void __RPC_STUB IESEventFactory_CreateESEvent_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESEventFactory_INTERFACE_DEFINED__ */
 
@@ -17806,84 +15760,85 @@ typedef struct IESLicenseRenewalResultEventVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESLicenseRenewalResultEvent* This);
+        IESLicenseRenewalResultEvent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESLicenseRenewalResultEvent* This);
+        IESLicenseRenewalResultEvent *This);
 
     /*** IESEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetEventId)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         DWORD *pdwEventId);
 
     HRESULT (STDMETHODCALLTYPE *GetEventType)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         GUID *pguidEventType);
 
     HRESULT (STDMETHODCALLTYPE *SetCompletionStatus)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         DWORD dwResult);
 
     HRESULT (STDMETHODCALLTYPE *GetData)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         SAFEARRAY **pbData);
 
     HRESULT (STDMETHODCALLTYPE *GetStringData)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         BSTR *pbstrData);
 
     /*** IESLicenseRenewalResultEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetCallersId)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         DWORD *pdwCallersId);
 
     HRESULT (STDMETHODCALLTYPE *GetFileName)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         BSTR *pbstrFilename);
 
     HRESULT (STDMETHODCALLTYPE *IsRenewalSuccessful)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         WINBOOL *pfRenewalSuccessful);
 
     HRESULT (STDMETHODCALLTYPE *IsCheckEntitlementCallRequired)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         WINBOOL *pfCheckEntTokenCallNeeded);
 
     HRESULT (STDMETHODCALLTYPE *GetDescrambledStatus)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         DWORD *pDescrambledStatus);
 
     HRESULT (STDMETHODCALLTYPE *GetRenewalResultCode)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         DWORD *pdwRenewalResultCode);
 
     HRESULT (STDMETHODCALLTYPE *GetCASFailureCode)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         DWORD *pdwCASFailureCode);
 
     HRESULT (STDMETHODCALLTYPE *GetRenewalHResult)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         HRESULT *phr);
 
     HRESULT (STDMETHODCALLTYPE *GetEntitlementTokenLength)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         DWORD *pdwLength);
 
     HRESULT (STDMETHODCALLTYPE *GetEntitlementToken)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         SAFEARRAY **pbData);
 
     HRESULT (STDMETHODCALLTYPE *GetExpiryDate)(
-        IESLicenseRenewalResultEvent* This,
+        IESLicenseRenewalResultEvent *This,
         DWORD64 *pqwExpiryDate);
 
     END_INTERFACE
 } IESLicenseRenewalResultEventVtbl;
+
 interface IESLicenseRenewalResultEvent {
     CONST_VTBL IESLicenseRenewalResultEventVtbl* lpVtbl;
 };
@@ -17978,94 +15933,6 @@ static FORCEINLINE HRESULT IESLicenseRenewalResultEvent_GetExpiryDate(IESLicense
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_GetCallersId_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    DWORD *pdwCallersId);
-void __RPC_STUB IESLicenseRenewalResultEvent_GetCallersId_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_GetFileName_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    BSTR *pbstrFilename);
-void __RPC_STUB IESLicenseRenewalResultEvent_GetFileName_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_IsRenewalSuccessful_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    WINBOOL *pfRenewalSuccessful);
-void __RPC_STUB IESLicenseRenewalResultEvent_IsRenewalSuccessful_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_IsCheckEntitlementCallRequired_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    WINBOOL *pfCheckEntTokenCallNeeded);
-void __RPC_STUB IESLicenseRenewalResultEvent_IsCheckEntitlementCallRequired_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_GetDescrambledStatus_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    DWORD *pDescrambledStatus);
-void __RPC_STUB IESLicenseRenewalResultEvent_GetDescrambledStatus_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_GetRenewalResultCode_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    DWORD *pdwRenewalResultCode);
-void __RPC_STUB IESLicenseRenewalResultEvent_GetRenewalResultCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_GetCASFailureCode_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    DWORD *pdwCASFailureCode);
-void __RPC_STUB IESLicenseRenewalResultEvent_GetCASFailureCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_GetRenewalHResult_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    HRESULT *phr);
-void __RPC_STUB IESLicenseRenewalResultEvent_GetRenewalHResult_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_GetEntitlementTokenLength_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    DWORD *pdwLength);
-void __RPC_STUB IESLicenseRenewalResultEvent_GetEntitlementTokenLength_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_GetEntitlementToken_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    SAFEARRAY **pbData);
-void __RPC_STUB IESLicenseRenewalResultEvent_GetEntitlementToken_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESLicenseRenewalResultEvent_GetExpiryDate_Proxy(
-    IESLicenseRenewalResultEvent* This,
-    DWORD64 *pqwExpiryDate);
-void __RPC_STUB IESLicenseRenewalResultEvent_GetExpiryDate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESLicenseRenewalResultEvent_INTERFACE_DEFINED__ */
 
@@ -18108,64 +15975,65 @@ typedef struct IESFileExpiryDateEventVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESFileExpiryDateEvent* This);
+        IESFileExpiryDateEvent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESFileExpiryDateEvent* This);
+        IESFileExpiryDateEvent *This);
 
     /*** IESEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetEventId)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         DWORD *pdwEventId);
 
     HRESULT (STDMETHODCALLTYPE *GetEventType)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         GUID *pguidEventType);
 
     HRESULT (STDMETHODCALLTYPE *SetCompletionStatus)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         DWORD dwResult);
 
     HRESULT (STDMETHODCALLTYPE *GetData)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         SAFEARRAY **pbData);
 
     HRESULT (STDMETHODCALLTYPE *GetStringData)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         BSTR *pbstrData);
 
     /*** IESFileExpiryDateEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *GetTunerId)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         GUID *pguidTunerId);
 
     HRESULT (STDMETHODCALLTYPE *GetExpiryDate)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         DWORD64 *pqwExpiryDate);
 
     HRESULT (STDMETHODCALLTYPE *GetFinalExpiryDate)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         DWORD64 *pqwExpiryDate);
 
     HRESULT (STDMETHODCALLTYPE *GetMaxRenewalCount)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         DWORD *dwMaxRenewalCount);
 
     HRESULT (STDMETHODCALLTYPE *IsEntitlementTokenPresent)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         WINBOOL *pfEntTokenPresent);
 
     HRESULT (STDMETHODCALLTYPE *DoesExpireAfterFirstUse)(
-        IESFileExpiryDateEvent* This,
+        IESFileExpiryDateEvent *This,
         WINBOOL *pfExpireAfterFirstUse);
 
     END_INTERFACE
 } IESFileExpiryDateEventVtbl;
+
 interface IESFileExpiryDateEvent {
     CONST_VTBL IESFileExpiryDateEventVtbl* lpVtbl;
 };
@@ -18240,54 +16108,6 @@ static FORCEINLINE HRESULT IESFileExpiryDateEvent_DoesExpireAfterFirstUse(IESFil
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESFileExpiryDateEvent_GetTunerId_Proxy(
-    IESFileExpiryDateEvent* This,
-    GUID *pguidTunerId);
-void __RPC_STUB IESFileExpiryDateEvent_GetTunerId_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESFileExpiryDateEvent_GetExpiryDate_Proxy(
-    IESFileExpiryDateEvent* This,
-    DWORD64 *pqwExpiryDate);
-void __RPC_STUB IESFileExpiryDateEvent_GetExpiryDate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESFileExpiryDateEvent_GetFinalExpiryDate_Proxy(
-    IESFileExpiryDateEvent* This,
-    DWORD64 *pqwExpiryDate);
-void __RPC_STUB IESFileExpiryDateEvent_GetFinalExpiryDate_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESFileExpiryDateEvent_GetMaxRenewalCount_Proxy(
-    IESFileExpiryDateEvent* This,
-    DWORD *dwMaxRenewalCount);
-void __RPC_STUB IESFileExpiryDateEvent_GetMaxRenewalCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESFileExpiryDateEvent_IsEntitlementTokenPresent_Proxy(
-    IESFileExpiryDateEvent* This,
-    WINBOOL *pfEntTokenPresent);
-void __RPC_STUB IESFileExpiryDateEvent_IsEntitlementTokenPresent_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESFileExpiryDateEvent_DoesExpireAfterFirstUse_Proxy(
-    IESFileExpiryDateEvent* This,
-    WINBOOL *pfExpireAfterFirstUse);
-void __RPC_STUB IESFileExpiryDateEvent_DoesExpireAfterFirstUse_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESFileExpiryDateEvent_INTERFACE_DEFINED__ */
 
@@ -18316,24 +16136,25 @@ typedef struct IESEventsVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESEvents* This,
+        IESEvents *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESEvents* This);
+        IESEvents *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESEvents* This);
+        IESEvents *This);
 
     /*** IESEvents methods ***/
     HRESULT (STDMETHODCALLTYPE *OnESEventReceived)(
-        IESEvents* This,
+        IESEvents *This,
         GUID guidEventType,
         IESEvent *pESEvent);
 
     END_INTERFACE
 } IESEventsVtbl;
+
 interface IESEvents {
     CONST_VTBL IESEventsVtbl* lpVtbl;
 };
@@ -18366,15 +16187,6 @@ static FORCEINLINE HRESULT IESEvents_OnESEventReceived(IESEvents* This,GUID guid
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESEvents_OnESEventReceived_Proxy(
-    IESEvents* This,
-    GUID guidEventType,
-    IESEvent *pESEvent);
-void __RPC_STUB IESEvents_OnESEventReceived_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESEvents_INTERFACE_DEFINED__ */
 
@@ -18402,23 +16214,24 @@ typedef struct IESEventServiceVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESEventService* This,
+        IESEventService *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESEventService* This);
+        IESEventService *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESEventService* This);
+        IESEventService *This);
 
     /*** IESEventService methods ***/
     HRESULT (STDMETHODCALLTYPE *FireESEvent)(
-        IESEventService* This,
+        IESEventService *This,
         IESEvent *pESEvent);
 
     END_INTERFACE
 } IESEventServiceVtbl;
+
 interface IESEventService {
     CONST_VTBL IESEventServiceVtbl* lpVtbl;
 };
@@ -18451,14 +16264,6 @@ static FORCEINLINE HRESULT IESEventService_FireESEvent(IESEventService* This,IES
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESEventService_FireESEvent_Proxy(
-    IESEventService* This,
-    IESEvent *pESEvent);
-void __RPC_STUB IESEventService_FireESEvent_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESEventService_INTERFACE_DEFINED__ */
 
@@ -18501,41 +16306,42 @@ typedef struct IESEventServiceConfigurationVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IESEventServiceConfiguration* This,
+        IESEventServiceConfiguration *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IESEventServiceConfiguration* This);
+        IESEventServiceConfiguration *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IESEventServiceConfiguration* This);
+        IESEventServiceConfiguration *This);
 
     /*** IESEventServiceConfiguration methods ***/
     HRESULT (STDMETHODCALLTYPE *SetParent)(
-        IESEventServiceConfiguration* This,
+        IESEventServiceConfiguration *This,
         IESEventService *pEventService);
 
     HRESULT (STDMETHODCALLTYPE *RemoveParent)(
-        IESEventServiceConfiguration* This);
+        IESEventServiceConfiguration *This);
 
     HRESULT (STDMETHODCALLTYPE *SetOwner)(
-        IESEventServiceConfiguration* This,
+        IESEventServiceConfiguration *This,
         IESEvents *pESEvents);
 
     HRESULT (STDMETHODCALLTYPE *RemoveOwner)(
-        IESEventServiceConfiguration* This);
+        IESEventServiceConfiguration *This);
 
     HRESULT (STDMETHODCALLTYPE *SetGraph)(
-        IESEventServiceConfiguration* This,
+        IESEventServiceConfiguration *This,
         IFilterGraph *pGraph);
 
     HRESULT (STDMETHODCALLTYPE *RemoveGraph)(
-        IESEventServiceConfiguration* This,
+        IESEventServiceConfiguration *This,
         IFilterGraph *pGraph);
 
     END_INTERFACE
 } IESEventServiceConfigurationVtbl;
+
 interface IESEventServiceConfiguration {
     CONST_VTBL IESEventServiceConfigurationVtbl* lpVtbl;
 };
@@ -18588,52 +16394,6 @@ static FORCEINLINE HRESULT IESEventServiceConfiguration_RemoveGraph(IESEventServ
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IESEventServiceConfiguration_SetParent_Proxy(
-    IESEventServiceConfiguration* This,
-    IESEventService *pEventService);
-void __RPC_STUB IESEventServiceConfiguration_SetParent_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESEventServiceConfiguration_RemoveParent_Proxy(
-    IESEventServiceConfiguration* This);
-void __RPC_STUB IESEventServiceConfiguration_RemoveParent_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESEventServiceConfiguration_SetOwner_Proxy(
-    IESEventServiceConfiguration* This,
-    IESEvents *pESEvents);
-void __RPC_STUB IESEventServiceConfiguration_SetOwner_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESEventServiceConfiguration_RemoveOwner_Proxy(
-    IESEventServiceConfiguration* This);
-void __RPC_STUB IESEventServiceConfiguration_RemoveOwner_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESEventServiceConfiguration_SetGraph_Proxy(
-    IESEventServiceConfiguration* This,
-    IFilterGraph *pGraph);
-void __RPC_STUB IESEventServiceConfiguration_SetGraph_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IESEventServiceConfiguration_RemoveGraph_Proxy(
-    IESEventServiceConfiguration* This,
-    IFilterGraph *pGraph);
-void __RPC_STUB IESEventServiceConfiguration_RemoveGraph_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IESEventServiceConfiguration_INTERFACE_DEFINED__ */
 
@@ -18661,23 +16421,24 @@ typedef struct IBroadcastEventVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBroadcastEvent* This,
+        IBroadcastEvent *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBroadcastEvent* This);
+        IBroadcastEvent *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBroadcastEvent* This);
+        IBroadcastEvent *This);
 
     /*** IBroadcastEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *Fire)(
-        IBroadcastEvent* This,
+        IBroadcastEvent *This,
         GUID EventID);
 
     END_INTERFACE
 } IBroadcastEventVtbl;
+
 interface IBroadcastEvent {
     CONST_VTBL IBroadcastEventVtbl* lpVtbl;
 };
@@ -18710,14 +16471,6 @@ static FORCEINLINE HRESULT IBroadcastEvent_Fire(IBroadcastEvent* This,GUID Event
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBroadcastEvent_Fire_Proxy(
-    IBroadcastEvent* This,
-    GUID EventID);
-void __RPC_STUB IBroadcastEvent_Fire_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBroadcastEvent_INTERFACE_DEFINED__ */
 
@@ -18749,24 +16502,24 @@ typedef struct IBroadcastEventExVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBroadcastEventEx* This,
+        IBroadcastEventEx *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBroadcastEventEx* This);
+        IBroadcastEventEx *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBroadcastEventEx* This);
+        IBroadcastEventEx *This);
 
     /*** IBroadcastEvent methods ***/
     HRESULT (STDMETHODCALLTYPE *Fire)(
-        IBroadcastEventEx* This,
+        IBroadcastEventEx *This,
         GUID EventID);
 
     /*** IBroadcastEventEx methods ***/
     HRESULT (STDMETHODCALLTYPE *FireEx)(
-        IBroadcastEventEx* This,
+        IBroadcastEventEx *This,
         GUID EventID,
         ULONG Param1,
         ULONG Param2,
@@ -18775,6 +16528,7 @@ typedef struct IBroadcastEventExVtbl {
 
     END_INTERFACE
 } IBroadcastEventExVtbl;
+
 interface IBroadcastEventEx {
     CONST_VTBL IBroadcastEventExVtbl* lpVtbl;
 };
@@ -18813,18 +16567,6 @@ static FORCEINLINE HRESULT IBroadcastEventEx_FireEx(IBroadcastEventEx* This,GUID
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBroadcastEventEx_FireEx_Proxy(
-    IBroadcastEventEx* This,
-    GUID EventID,
-    ULONG Param1,
-    ULONG Param2,
-    ULONG Param3,
-    ULONG Param4);
-void __RPC_STUB IBroadcastEventEx_FireEx_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBroadcastEventEx_INTERFACE_DEFINED__ */
 
@@ -18856,27 +16598,28 @@ typedef struct IRegisterTunerVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IRegisterTuner* This,
+        IRegisterTuner *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IRegisterTuner* This);
+        IRegisterTuner *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IRegisterTuner* This);
+        IRegisterTuner *This);
 
     /*** IRegisterTuner methods ***/
     HRESULT (STDMETHODCALLTYPE *Register)(
-        IRegisterTuner* This,
+        IRegisterTuner *This,
         ITuner *pTuner,
         IGraphBuilder *pGraph);
 
     HRESULT (STDMETHODCALLTYPE *Unregister)(
-        IRegisterTuner* This);
+        IRegisterTuner *This);
 
     END_INTERFACE
 } IRegisterTunerVtbl;
+
 interface IRegisterTuner {
     CONST_VTBL IRegisterTunerVtbl* lpVtbl;
 };
@@ -18913,22 +16656,6 @@ static FORCEINLINE HRESULT IRegisterTuner_Unregister(IRegisterTuner* This) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IRegisterTuner_Register_Proxy(
-    IRegisterTuner* This,
-    ITuner *pTuner,
-    IGraphBuilder *pGraph);
-void __RPC_STUB IRegisterTuner_Register_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IRegisterTuner_Unregister_Proxy(
-    IRegisterTuner* This);
-void __RPC_STUB IRegisterTuner_Unregister_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IRegisterTuner_INTERFACE_DEFINED__ */
 
@@ -18978,50 +16705,51 @@ typedef struct IBDAComparableVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDAComparable* This,
+        IBDAComparable *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDAComparable* This);
+        IBDAComparable *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDAComparable* This);
+        IBDAComparable *This);
 
     /*** IBDAComparable methods ***/
     HRESULT (STDMETHODCALLTYPE *CompareExact)(
-        IBDAComparable* This,
+        IBDAComparable *This,
         IDispatch *CompareTo,
         LONG *Result);
 
     HRESULT (STDMETHODCALLTYPE *CompareEquivalent)(
-        IBDAComparable* This,
+        IBDAComparable *This,
         IDispatch *CompareTo,
         DWORD dwFlags,
         LONG *Result);
 
     HRESULT (STDMETHODCALLTYPE *HashExact)(
-        IBDAComparable* This,
+        IBDAComparable *This,
         INT64 *Result);
 
     HRESULT (STDMETHODCALLTYPE *HashExactIncremental)(
-        IBDAComparable* This,
+        IBDAComparable *This,
         INT64 PartialResult,
         INT64 *Result);
 
     HRESULT (STDMETHODCALLTYPE *HashEquivalent)(
-        IBDAComparable* This,
+        IBDAComparable *This,
         DWORD dwFlags,
         INT64 *Result);
 
     HRESULT (STDMETHODCALLTYPE *HashEquivalentIncremental)(
-        IBDAComparable* This,
+        IBDAComparable *This,
         INT64 PartialResult,
         DWORD dwFlags,
         INT64 *Result);
 
     END_INTERFACE
 } IBDAComparableVtbl;
+
 interface IBDAComparable {
     CONST_VTBL IBDAComparableVtbl* lpVtbl;
 };
@@ -19074,61 +16802,6 @@ static FORCEINLINE HRESULT IBDAComparable_HashEquivalentIncremental(IBDAComparab
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDAComparable_CompareExact_Proxy(
-    IBDAComparable* This,
-    IDispatch *CompareTo,
-    LONG *Result);
-void __RPC_STUB IBDAComparable_CompareExact_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDAComparable_CompareEquivalent_Proxy(
-    IBDAComparable* This,
-    IDispatch *CompareTo,
-    DWORD dwFlags,
-    LONG *Result);
-void __RPC_STUB IBDAComparable_CompareEquivalent_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDAComparable_HashExact_Proxy(
-    IBDAComparable* This,
-    INT64 *Result);
-void __RPC_STUB IBDAComparable_HashExact_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDAComparable_HashExactIncremental_Proxy(
-    IBDAComparable* This,
-    INT64 PartialResult,
-    INT64 *Result);
-void __RPC_STUB IBDAComparable_HashExactIncremental_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDAComparable_HashEquivalent_Proxy(
-    IBDAComparable* This,
-    DWORD dwFlags,
-    INT64 *Result);
-void __RPC_STUB IBDAComparable_HashEquivalent_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBDAComparable_HashEquivalentIncremental_Proxy(
-    IBDAComparable* This,
-    INT64 PartialResult,
-    DWORD dwFlags,
-    INT64 *Result);
-void __RPC_STUB IBDAComparable_HashEquivalentIncremental_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDAComparable_INTERFACE_DEFINED__ */
 
@@ -19162,35 +16835,36 @@ typedef struct IPersistTuneXmlVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPersistTuneXml* This,
+        IPersistTuneXml *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPersistTuneXml* This);
+        IPersistTuneXml *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPersistTuneXml* This);
+        IPersistTuneXml *This);
 
     /*** IPersist methods ***/
     HRESULT (STDMETHODCALLTYPE *GetClassID)(
-        IPersistTuneXml* This,
+        IPersistTuneXml *This,
         CLSID *pClassID);
 
     /*** IPersistTuneXml methods ***/
     HRESULT (STDMETHODCALLTYPE *InitNew)(
-        IPersistTuneXml* This);
+        IPersistTuneXml *This);
 
     HRESULT (STDMETHODCALLTYPE *Load)(
-        IPersistTuneXml* This,
+        IPersistTuneXml *This,
         VARIANT varValue);
 
     HRESULT (STDMETHODCALLTYPE *Save)(
-        IPersistTuneXml* This,
+        IPersistTuneXml *This,
         VARIANT *pvarFragment);
 
     END_INTERFACE
 } IPersistTuneXmlVtbl;
+
 interface IPersistTuneXml {
     CONST_VTBL IPersistTuneXmlVtbl* lpVtbl;
 };
@@ -19237,29 +16911,6 @@ static FORCEINLINE HRESULT IPersistTuneXml_Save(IPersistTuneXml* This,VARIANT *p
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPersistTuneXml_InitNew_Proxy(
-    IPersistTuneXml* This);
-void __RPC_STUB IPersistTuneXml_InitNew_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistTuneXml_Load_Proxy(
-    IPersistTuneXml* This,
-    VARIANT varValue);
-void __RPC_STUB IPersistTuneXml_Load_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IPersistTuneXml_Save_Proxy(
-    IPersistTuneXml* This,
-    VARIANT *pvarFragment);
-void __RPC_STUB IPersistTuneXml_Save_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPersistTuneXml_INTERFACE_DEFINED__ */
 
@@ -19288,24 +16939,25 @@ typedef struct IPersistTuneXmlUtilityVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPersistTuneXmlUtility* This,
+        IPersistTuneXmlUtility *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPersistTuneXmlUtility* This);
+        IPersistTuneXmlUtility *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPersistTuneXmlUtility* This);
+        IPersistTuneXmlUtility *This);
 
     /*** IPersistTuneXmlUtility methods ***/
     HRESULT (STDMETHODCALLTYPE *Deserialize)(
-        IPersistTuneXmlUtility* This,
+        IPersistTuneXmlUtility *This,
         VARIANT varValue,
         IUnknown **ppObject);
 
     END_INTERFACE
 } IPersistTuneXmlUtilityVtbl;
+
 interface IPersistTuneXmlUtility {
     CONST_VTBL IPersistTuneXmlUtilityVtbl* lpVtbl;
 };
@@ -19338,15 +16990,6 @@ static FORCEINLINE HRESULT IPersistTuneXmlUtility_Deserialize(IPersistTuneXmlUti
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPersistTuneXmlUtility_Deserialize_Proxy(
-    IPersistTuneXmlUtility* This,
-    VARIANT varValue,
-    IUnknown **ppObject);
-void __RPC_STUB IPersistTuneXmlUtility_Deserialize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPersistTuneXmlUtility_INTERFACE_DEFINED__ */
 
@@ -19375,30 +17018,31 @@ typedef struct IPersistTuneXmlUtility2Vtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IPersistTuneXmlUtility2* This,
+        IPersistTuneXmlUtility2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IPersistTuneXmlUtility2* This);
+        IPersistTuneXmlUtility2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IPersistTuneXmlUtility2* This);
+        IPersistTuneXmlUtility2 *This);
 
     /*** IPersistTuneXmlUtility methods ***/
     HRESULT (STDMETHODCALLTYPE *Deserialize)(
-        IPersistTuneXmlUtility2* This,
+        IPersistTuneXmlUtility2 *This,
         VARIANT varValue,
         IUnknown **ppObject);
 
     /*** IPersistTuneXmlUtility2 methods ***/
     HRESULT (STDMETHODCALLTYPE *Serialize)(
-        IPersistTuneXmlUtility2* This,
+        IPersistTuneXmlUtility2 *This,
         ITuneRequest *piTuneRequest,
         BSTR *pString);
 
     END_INTERFACE
 } IPersistTuneXmlUtility2Vtbl;
+
 interface IPersistTuneXmlUtility2 {
     CONST_VTBL IPersistTuneXmlUtility2Vtbl* lpVtbl;
 };
@@ -19437,15 +17081,6 @@ static FORCEINLINE HRESULT IPersistTuneXmlUtility2_Serialize(IPersistTuneXmlUtil
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IPersistTuneXmlUtility2_Serialize_Proxy(
-    IPersistTuneXmlUtility2* This,
-    ITuneRequest *piTuneRequest,
-    BSTR *pString);
-void __RPC_STUB IPersistTuneXmlUtility2_Serialize_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IPersistTuneXmlUtility2_INTERFACE_DEFINED__ */
 
@@ -19474,24 +17109,25 @@ typedef struct IBDACreateTuneRequestExVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBDACreateTuneRequestEx* This,
+        IBDACreateTuneRequestEx *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBDACreateTuneRequestEx* This);
+        IBDACreateTuneRequestEx *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBDACreateTuneRequestEx* This);
+        IBDACreateTuneRequestEx *This);
 
     /*** IBDACreateTuneRequestEx methods ***/
     HRESULT (STDMETHODCALLTYPE *CreateTuneRequestEx)(
-        IBDACreateTuneRequestEx* This,
+        IBDACreateTuneRequestEx *This,
         REFCLSID TuneRequestIID,
         ITuneRequest **TuneRequest);
 
     END_INTERFACE
 } IBDACreateTuneRequestExVtbl;
+
 interface IBDACreateTuneRequestEx {
     CONST_VTBL IBDACreateTuneRequestExVtbl* lpVtbl;
 };
@@ -19524,18 +17160,11 @@ static FORCEINLINE HRESULT IBDACreateTuneRequestEx_CreateTuneRequestEx(IBDACreat
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBDACreateTuneRequestEx_CreateTuneRequestEx_Proxy(
-    IBDACreateTuneRequestEx* This,
-    REFCLSID TuneRequestIID,
-    ITuneRequest **TuneRequest);
-void __RPC_STUB IBDACreateTuneRequestEx_CreateTuneRequestEx_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IBDACreateTuneRequestEx_INTERFACE_DEFINED__ */
 
+#ifndef __TunerLib_LIBRARY_DEFINED__
+#define __TunerLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_TunerLib, 0x9b085638, 0x018e, 0x11d3, 0x9d,0x8e, 0x00,0xc0,0x4f,0x72,0xd9,0x80);
 
@@ -20098,6 +17727,7 @@ __CRT_UUID_DECL(ESEventFactory, 0x8e8a07da, 0x71f8, 0x40c1, 0xa9,0x29, 0x5e,0x3a
 #endif
 #endif
 
+#endif /* __TunerLib_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/uianimation.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/uianimation.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/uianimation.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -602,14 +602,14 @@ interface IUIAnimationTimerEventHandler;
 #endif
 
 typedef DOUBLE UI_ANIMATION_SECONDS;
-typedef enum __WIDL_uianimation_generated_name_00000002 {
+typedef enum __WIDL_uianimation_generated_name_0000000C {
     UI_ANIMATION_SCHEDULING_UNEXPECTED_FAILURE = 0,
     UI_ANIMATION_SCHEDULING_INSUFFICIENT_PRIORITY = 1,
     UI_ANIMATION_SCHEDULING_ALREADY_SCHEDULED = 2,
     UI_ANIMATION_SCHEDULING_SUCCEEDED = 3,
     UI_ANIMATION_SCHEDULING_DEFERRED = 4
 } UI_ANIMATION_SCHEDULING_RESULT;
-typedef enum __WIDL_uianimation_generated_name_00000003 {
+typedef enum __WIDL_uianimation_generated_name_0000000D {
     UI_ANIMATION_STORYBOARD_BUILDING = 0,
     UI_ANIMATION_STORYBOARD_SCHEDULED = 1,
     UI_ANIMATION_STORYBOARD_CANCELLED = 2,
@@ -619,52 +619,52 @@ typedef enum __WIDL_uianimation_generated_name_00000003 {
     UI_ANIMATION_STORYBOARD_READY = 6,
     UI_ANIMATION_STORYBOARD_INSUFFICIENT_PRIORITY = 7
 } UI_ANIMATION_STORYBOARD_STATUS;
-typedef enum __WIDL_uianimation_generated_name_00000004 {
+typedef enum __WIDL_uianimation_generated_name_0000000E {
     UI_ANIMATION_ROUNDING_NEAREST = 0,
     UI_ANIMATION_ROUNDING_FLOOR = 1,
     UI_ANIMATION_ROUNDING_CEILING = 2
 } UI_ANIMATION_ROUNDING_MODE;
-typedef enum __WIDL_uianimation_generated_name_00000005 {
+typedef enum __WIDL_uianimation_generated_name_0000000F {
     UI_ANIMATION_UPDATE_NO_CHANGE = 0,
     UI_ANIMATION_UPDATE_VARIABLES_CHANGED = 1
 } UI_ANIMATION_UPDATE_RESULT;
-typedef enum __WIDL_uianimation_generated_name_00000006 {
+typedef enum __WIDL_uianimation_generated_name_00000010 {
     UI_ANIMATION_MANAGER_IDLE = 0,
     UI_ANIMATION_MANAGER_BUSY = 1
 } UI_ANIMATION_MANAGER_STATUS;
-typedef enum __WIDL_uianimation_generated_name_00000007 {
+typedef enum __WIDL_uianimation_generated_name_00000011 {
     UI_ANIMATION_MODE_DISABLED = 0,
     UI_ANIMATION_MODE_SYSTEM_DEFAULT = 1,
     UI_ANIMATION_MODE_ENABLED = 2
 } UI_ANIMATION_MODE;
-typedef enum __WIDL_uianimation_generated_name_00000008 {
+typedef enum __WIDL_uianimation_generated_name_00000012 {
     UI_ANIMATION_PRIORITY_EFFECT_FAILURE = 0,
     UI_ANIMATION_PRIORITY_EFFECT_DELAY = 1
 } UI_ANIMATION_PRIORITY_EFFECT;
-typedef enum __WIDL_uianimation_generated_name_00000009 {
+typedef enum __WIDL_uianimation_generated_name_00000013 {
     UI_ANIMATION_REPEAT_MODE_NORMAL = 0,
     UI_ANIMATION_REPEAT_MODE_ALTERNATE = 1
 } UI_ANIMATION_REPEAT_MODE;
-typedef enum __WIDL_uianimation_generated_name_0000000A {
+typedef enum __WIDL_uianimation_generated_name_00000014 {
     UI_ANIMATION_SLOPE_INCREASING = 0,
     UI_ANIMATION_SLOPE_DECREASING = 1
 } UI_ANIMATION_SLOPE;
-typedef enum __WIDL_uianimation_generated_name_0000000B {
+typedef enum __WIDL_uianimation_generated_name_00000015 {
     UI_ANIMATION_DEPENDENCY_NONE = 0,
     UI_ANIMATION_DEPENDENCY_INTERMEDIATE_VALUES = 0x1,
     UI_ANIMATION_DEPENDENCY_FINAL_VALUE = 0x2,
     UI_ANIMATION_DEPENDENCY_FINAL_VELOCITY = 0x4,
     UI_ANIMATION_DEPENDENCY_DURATION = 0x8
 } UI_ANIMATION_DEPENDENCIES;
-typedef enum __WIDL_uianimation_generated_name_0000000C {
+typedef enum __WIDL_uianimation_generated_name_00000016 {
     UI_ANIMATION_TIMER_CLIENT_IDLE = 0,
     UI_ANIMATION_TIMER_CLIENT_BUSY = 1
 } UI_ANIMATION_TIMER_CLIENT_STATUS;
-typedef enum __WIDL_uianimation_generated_name_0000000D {
+typedef enum __WIDL_uianimation_generated_name_00000017 {
     UI_ANIMATION_IDLE_BEHAVIOR_CONTINUE = 0,
     UI_ANIMATION_IDLE_BEHAVIOR_DISABLE = 1
 } UI_ANIMATION_IDLE_BEHAVIOR;
-typedef struct __WIDL_uianimation_generated_name_0000000E {
+typedef struct __WIDL_uianimation_generated_name_00000018 {
     int _;
 } *UI_ANIMATION_KEYFRAME;
 #define UI_ANIMATION_KEYFRAME_STORYBOARD_START ((UI_ANIMATION_KEYFRAME)-1)
@@ -675,6 +675,8 @@ typedef struct __WIDL_uianimation_generated_name_0000000E {
 
 #define UI_ANIMATION_REPEAT_INDEFINITELY_CONCLUDE_AT_START (-2)
 
+#ifndef __uianimation_LIBRARY_DEFINED__
+#define __uianimation_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_uianimation, 0x44ca24db, 0x1a92, 0x4149, 0xba,0xb5, 0xfb,0x14,0xd6,0x4b,0x40,0x1e);
 
@@ -769,6 +771,7 @@ __CRT_UUID_DECL(UIAnimationTimer, 0xbfcd4a0c, 0x06b6, 0x4384, 0xb7,0x68, 0x0d,0x
 #endif
 #endif
 
+#endif /* __uianimation_LIBRARY_DEFINED__ */
 /*****************************************************************************
  * IUIAnimationManager interface
  */
lib/libc/include/any-windows-any/uiautomationclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/uiautomationclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/uiautomationclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -26,6 +26,8 @@
 extern "C" {
 #endif
 
+#ifndef __UIAutomationClient_LIBRARY_DEFINED__
+#define __UIAutomationClient_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc4,0x77,0xac,0xb2,0xf8,0x97);
 
@@ -251,6 +253,7 @@ DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc
 
 #define UIA_IsSynchronizedInputPatternAvailablePropertyId (30110)
 
+#endif /* __UIAutomationClient_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 
lib/libc/include/any-windows-any/uiautomationcore.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/uiautomationcore.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/uiautomationcore.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -56,6 +56,8 @@ typedef int PATTERNID;
 typedef int EVENTID;
 typedef int TEXTATTRIBUTEID;
 typedef int CONTROLTYPEID;
+#ifndef __UIA_LIBRARY_DEFINED__
+#define __UIA_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_UIA, 0x930299ce, 0x9965, 0x4dec, 0xb0,0xf4, 0xa5,0x48,0x48,0xd4,0xb6,0x67);
 
@@ -289,6 +291,7 @@ static FORCEINLINE HRESULT IAccessibleEx_ConvertReturnedElement(IAccessibleEx* T
 
 #endif  /* __IAccessibleEx_INTERFACE_DEFINED__ */
 
+#endif /* __UIA_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
lib/libc/include/any-windows-any/uiautomationcoreapi.h
@@ -52,11 +52,21 @@ enum AutomationIdentifierType
     AutomationIdentifierType_Style
 };
 
+enum ProviderType
+{
+    ProviderType_BaseHwnd,
+    ProviderType_Proxy,
+    ProviderType_NonClientArea,
+};
+
+typedef SAFEARRAY * WINAPI UiaProviderCallback(HWND hwnd,enum ProviderType providerType);
+
 HRESULT WINAPI UiaGetReservedMixedAttributeValue(IUnknown **value);
 HRESULT WINAPI UiaGetReservedNotSupportedValue(IUnknown **value);
 int WINAPI UiaLookupId(enum AutomationIdentifierType type, const GUID *guid);
 WINBOOL WINAPI UiaPatternRelease(HUIAPATTERNOBJECT hobj);
 HRESULT WINAPI UiaRaiseAutomationEvent(IRawElementProviderSimple *provider, EVENTID id);
+void WINAPI UiaRegisterProviderCallback(UiaProviderCallback *pCallback);
 LRESULT WINAPI UiaReturnRawElementProvider(HWND hwnd, WPARAM wParam, LPARAM lParam, IRawElementProviderSimple *elprov);
 WINBOOL WINAPI UiaTextRangeRelease(HUIATEXTRANGE hobj);
 HRESULT WINAPI UiaHostProviderFromHwnd(HWND hwnd, IRawElementProviderSimple **elprov);
lib/libc/include/any-windows-any/uiviewsettingsinterop.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/uiviewsettingsinterop.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/uiviewsettingsinterop.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/unknwn.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.6 from include/unknwn.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/unknwn.idl - Do not edit ***/
 
+#ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
-
 #include <rpc.h>
 #include <rpcndr.h>
+#endif
 
 #ifndef COM_NO_WINDOWS_H
 #include <windows.h>
@@ -20,16 +21,25 @@
 #ifndef __IUnknown_FWD_DEFINED__
 #define __IUnknown_FWD_DEFINED__
 typedef interface IUnknown IUnknown;
+#ifdef __cplusplus
+interface IUnknown;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __AsyncIUnknown_FWD_DEFINED__
 #define __AsyncIUnknown_FWD_DEFINED__
 typedef interface AsyncIUnknown AsyncIUnknown;
+#ifdef __cplusplus
+interface AsyncIUnknown;
+#endif /* __cplusplus */
 #endif
 
 #ifndef __IClassFactory_FWD_DEFINED__
 #define __IClassFactory_FWD_DEFINED__
 typedef interface IClassFactory IClassFactory;
+#ifdef __cplusplus
+interface IClassFactory;
+#endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
@@ -93,6 +103,7 @@ DEFINE_GUID(IID_IUnknown, 0x00000000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,
 MIDL_INTERFACE("00000000-0000-0000-c000-000000000046")
 IUnknown
 {
+
     BEGIN_INTERFACE
 
     virtual HRESULT STDMETHODCALLTYPE QueryInterface(
@@ -106,6 +117,7 @@ IUnknown
         ) = 0;
 
     END_INTERFACE
+
 };
 #ifdef __CRT_UUID_DECL
 __CRT_UUID_DECL(IUnknown, 0x00000000, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
@@ -116,18 +128,19 @@ typedef struct IUnknownVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IUnknown* This,
+        IUnknown *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IUnknown* This);
+        IUnknown *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IUnknown* This);
+        IUnknown *This);
 
     END_INTERFACE
 } IUnknownVtbl;
+
 interface IUnknown {
     CONST_VTBL IUnknownVtbl* lpVtbl;
 };
@@ -154,29 +167,6 @@ static FORCEINLINE ULONG IUnknown_Release(IUnknown* This) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IUnknown_QueryInterface_Proxy(
-    IUnknown* This,
-    REFIID riid,
-    void **ppvObject);
-void __RPC_STUB IUnknown_QueryInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-ULONG STDMETHODCALLTYPE IUnknown_AddRef_Proxy(
-    IUnknown* This);
-void __RPC_STUB IUnknown_AddRef_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-ULONG STDMETHODCALLTYPE IUnknown_Release_Proxy(
-    IUnknown* This);
-void __RPC_STUB IUnknown_Release_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __IUnknown_INTERFACE_DEFINED__ */
 
@@ -223,39 +213,40 @@ typedef struct AsyncIUnknownVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        AsyncIUnknown* This,
+        AsyncIUnknown *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        AsyncIUnknown* This);
+        AsyncIUnknown *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        AsyncIUnknown* This);
+        AsyncIUnknown *This);
 
     /*** AsyncIUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *Begin_QueryInterface)(
-        AsyncIUnknown* This,
+        AsyncIUnknown *This,
         REFIID riid);
 
     HRESULT (STDMETHODCALLTYPE *Finish_QueryInterface)(
-        AsyncIUnknown* This,
+        AsyncIUnknown *This,
         void **ppvObject);
 
     HRESULT (STDMETHODCALLTYPE *Begin_AddRef)(
-        AsyncIUnknown* This);
+        AsyncIUnknown *This);
 
     ULONG (STDMETHODCALLTYPE *Finish_AddRef)(
-        AsyncIUnknown* This);
+        AsyncIUnknown *This);
 
     HRESULT (STDMETHODCALLTYPE *Begin_Release)(
-        AsyncIUnknown* This);
+        AsyncIUnknown *This);
 
     ULONG (STDMETHODCALLTYPE *Finish_Release)(
-        AsyncIUnknown* This);
+        AsyncIUnknown *This);
 
     END_INTERFACE
 } AsyncIUnknownVtbl;
+
 interface AsyncIUnknown {
     CONST_VTBL AsyncIUnknownVtbl* lpVtbl;
 };
@@ -308,50 +299,6 @@ static FORCEINLINE ULONG AsyncIUnknown_Finish_Release(AsyncIUnknown* This) {
 
 #endif
 
-HRESULT STDMETHODCALLTYPE AsyncIUnknown_Begin_QueryInterface_Proxy(
-    AsyncIUnknown* This,
-    REFIID riid);
-void __RPC_STUB AsyncIUnknown_Begin_QueryInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIUnknown_Finish_QueryInterface_Proxy(
-    AsyncIUnknown* This,
-    void **ppvObject);
-void __RPC_STUB AsyncIUnknown_Finish_QueryInterface_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIUnknown_Begin_AddRef_Proxy(
-    AsyncIUnknown* This);
-void __RPC_STUB AsyncIUnknown_Begin_AddRef_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-ULONG STDMETHODCALLTYPE AsyncIUnknown_Finish_AddRef_Proxy(
-    AsyncIUnknown* This);
-void __RPC_STUB AsyncIUnknown_Finish_AddRef_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE AsyncIUnknown_Begin_Release_Proxy(
-    AsyncIUnknown* This);
-void __RPC_STUB AsyncIUnknown_Begin_Release_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-ULONG STDMETHODCALLTYPE AsyncIUnknown_Finish_Release_Proxy(
-    AsyncIUnknown* This);
-void __RPC_STUB AsyncIUnknown_Finish_Release_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
 
 #endif  /* __AsyncIUnknown_INTERFACE_DEFINED__ */
 
@@ -389,29 +336,30 @@ typedef struct IClassFactoryVtbl {
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IClassFactory* This,
+        IClassFactory *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IClassFactory* This);
+        IClassFactory *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IClassFactory* This);
+        IClassFactory *This);
 
     /*** IClassFactory methods ***/
     HRESULT (STDMETHODCALLTYPE *CreateInstance)(
-        IClassFactory* This,
+        IClassFactory *This,
         IUnknown *pUnkOuter,
         REFIID riid,
         void **ppvObject);
 
     HRESULT (STDMETHODCALLTYPE *LockServer)(
-        IClassFactory* This,
+        IClassFactory *This,
         WINBOOL fLock);
 
     END_INTERFACE
 } IClassFactoryVtbl;
+
 interface IClassFactory {
     CONST_VTBL IClassFactoryVtbl* lpVtbl;
 };
lib/libc/include/any-windows-any/unknwnbase.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.14 from include/unknwnbase.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/unknwnbase.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/urlhist.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/urlhist.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/urlhist.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/urlmon.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/urlmon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/urlmon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -943,7 +943,7 @@ static FORCEINLINE HRESULT IPersistMoniker_GetCurMoniker(IPersistMoniker* This,I
 
 typedef IMonikerProp *LPMONIKERPROP;
 
-typedef enum __WIDL_urlmon_generated_name_00000002 {
+typedef enum __WIDL_urlmon_generated_name_0000000F {
     MIMETYPEPROP = 0x0,
     USE_SRC_URL = 0x1,
     CLASSIDPROP = 0x2,
@@ -1292,7 +1292,7 @@ HRESULT __RPC_STUB IBinding_GetBindResult_Stub(
 
 typedef IBindStatusCallback *LPBINDSTATUSCALLBACK;
 
-typedef enum __WIDL_urlmon_generated_name_00000003 {
+typedef enum __WIDL_urlmon_generated_name_00000010 {
     BINDVERB_GET = 0x0,
     BINDVERB_POST = 0x1,
     BINDVERB_PUT = 0x2,
@@ -1300,12 +1300,12 @@ typedef enum __WIDL_urlmon_generated_name_00000003 {
     BINDVERB_RESERVED1 = 0x4
 } BINDVERB;
 
-typedef enum __WIDL_urlmon_generated_name_00000004 {
+typedef enum __WIDL_urlmon_generated_name_00000011 {
     BINDINFOF_URLENCODESTGMEDDATA = 0x1,
     BINDINFOF_URLENCODEDEXTRAINFO = 0x2
 } BINDINFOF;
 
-typedef enum __WIDL_urlmon_generated_name_00000005 {
+typedef enum __WIDL_urlmon_generated_name_00000012 {
     BINDF_ASYNCHRONOUS = 0x1,
     BINDF_ASYNCSTORAGE = 0x2,
     BINDF_NOPROGRESSIVERENDERING = 0x4,
@@ -1339,7 +1339,7 @@ typedef enum __WIDL_urlmon_generated_name_00000005 {
     BINDF_RESERVED_8 = 0x20000000
 } BINDF;
 
-typedef enum __WIDL_urlmon_generated_name_00000006 {
+typedef enum __WIDL_urlmon_generated_name_00000013 {
     URL_ENCODING_NONE = 0x0,
     URL_ENCODING_ENABLE_UTF8 = 0x10000000,
     URL_ENCODING_DISABLE_UTF8 = 0x20000000
@@ -1395,7 +1395,7 @@ typedef struct tagRemFORMATETC {
 } RemFORMATETC;
 typedef struct tagRemFORMATETC *LPREMFORMATETC;
 
-typedef enum __WIDL_urlmon_generated_name_00000007 {
+typedef enum __WIDL_urlmon_generated_name_00000014 {
     BINDINFO_OPTIONS_WININETFLAG = 0x10000,
     BINDINFO_OPTIONS_ENABLE_UTF8 = 0x20000,
     BINDINFO_OPTIONS_DISABLE_UTF8 = 0x40000,
@@ -1413,7 +1413,7 @@ typedef enum __WIDL_urlmon_generated_name_00000007 {
     BINDINFO_OPTIONS_SHDOCVW_NAVIGATE = (int)0x80000000
 } BINDINFO_OPTIONS;
 
-typedef enum __WIDL_urlmon_generated_name_00000008 {
+typedef enum __WIDL_urlmon_generated_name_00000015 {
     BSCF_FIRSTDATANOTIFICATION = 0x1,
     BSCF_INTERMEDIATEDATANOTIFICATION = 0x2,
     BSCF_LASTDATANOTIFICATION = 0x4,
@@ -1719,7 +1719,7 @@ HRESULT __RPC_STUB IBindStatusCallback_OnDataAvailable_Stub(
 
 typedef IBindStatusCallbackEx *LPBINDSTATUSCALLBACKEX;
 
-typedef enum __WIDL_urlmon_generated_name_00000009 {
+typedef enum __WIDL_urlmon_generated_name_00000016 {
     BINDF2_DISABLEBASICOVERHTTP = 0x1,
     BINDF2_DISABLEAUTOCOOKIEHANDLING = 0x2,
     BINDF2_READ_DATA_GREATER_THAN_4GB = 0x4,
@@ -2025,7 +2025,7 @@ static FORCEINLINE HRESULT IAuthenticate_Authenticate(IAuthenticate* This,HWND *
 
 typedef IAuthenticateEx *LPAUTHENTICATIONEX;
 
-typedef enum __WIDL_urlmon_generated_name_0000000A {
+typedef enum __WIDL_urlmon_generated_name_00000017 {
     AUTHENTICATEF_PROXY = 0x1,
     AUTHENTICATEF_BASIC = 0x2,
     AUTHENTICATEF_HTTP = 0x4
@@ -2666,7 +2666,7 @@ static FORCEINLINE HRESULT IWindowForBindingUI_GetWindow(IWindowForBindingUI* Th
 
 typedef ICodeInstall *LPCODEINSTALL;
 
-typedef enum __WIDL_urlmon_generated_name_0000000B {
+typedef enum __WIDL_urlmon_generated_name_00000018 {
     CIP_DISK_FULL = 0,
     CIP_ACCESS_DENIED = 1,
     CIP_NEWER_VERSION_EXISTS = 2,
@@ -2781,7 +2781,7 @@ static FORCEINLINE HRESULT ICodeInstall_OnCodeInstallProblem(ICodeInstall* This,
 #ifndef __IUri_INTERFACE_DEFINED__
 #define __IUri_INTERFACE_DEFINED__
 
-typedef enum __WIDL_urlmon_generated_name_0000000C {
+typedef enum __WIDL_urlmon_generated_name_00000019 {
     Uri_PROPERTY_ABSOLUTE_URI = 0,
     Uri_PROPERTY_STRING_START = Uri_PROPERTY_ABSOLUTE_URI,
     Uri_PROPERTY_AUTHORITY = 1,
@@ -2807,7 +2807,7 @@ typedef enum __WIDL_urlmon_generated_name_0000000C {
     Uri_PROPERTY_DWORD_LAST = Uri_PROPERTY_ZONE
 } Uri_PROPERTY;
 
-typedef enum __WIDL_urlmon_generated_name_0000000D {
+typedef enum __WIDL_urlmon_generated_name_0000001A {
     Uri_HOST_UNKNOWN = 0,
     Uri_HOST_DNS = 1,
     Uri_HOST_IPV4 = 2,
@@ -6650,7 +6650,7 @@ static FORCEINLINE HRESULT IInternetSecurityMgrSite_EnableModeless(IInternetSecu
 #define MAX_SIZE_SECURITY_ID 512
 
 
-typedef enum __WIDL_urlmon_generated_name_0000000E {
+typedef enum __WIDL_urlmon_generated_name_0000001B {
     PUAF_DEFAULT = 0x0,
     PUAF_NOUI = 0x1,
     PUAF_ISFILE = 0x2,
@@ -6673,13 +6673,13 @@ typedef enum __WIDL_urlmon_generated_name_0000000E {
     PUAF_NOUIIFLOCKED = 0x100000,
     PUAF_DRAGPROTOCOLCHECK = 0x200000
 } PUAF;
-typedef enum __WIDL_urlmon_generated_name_0000000F {
+typedef enum __WIDL_urlmon_generated_name_0000001C {
     PUAFOUT_DEFAULT = 0x0,
     PUAFOUT_ISLOCKZONEPOLICY = 0x1
 } PUAFOUT;
 
 
-typedef enum __WIDL_urlmon_generated_name_00000010 {
+typedef enum __WIDL_urlmon_generated_name_0000001D {
     SZM_CREATE = 0x0,
     SZM_DELETE = 0x1
 } SZM_FLAGS;
@@ -7810,7 +7810,7 @@ enum {
     MAX_ZONE_DESCRIPTION = 200
 };
 
-typedef enum __WIDL_urlmon_generated_name_00000011 {
+typedef enum __WIDL_urlmon_generated_name_0000001E {
     ZAFLAGS_CUSTOM_EDIT = 0x1,
     ZAFLAGS_ADD_SITES = 0x2,
     ZAFLAGS_REQUIRE_VERIFICATION = 0x4,
@@ -9289,7 +9289,7 @@ static FORCEINLINE HRESULT IWrappedProtocol_GetWrapperCode(IWrappedProtocol* Thi
 
 typedef IGetBindHandle *LPGETBINDHANDLE;
 
-typedef enum __WIDL_urlmon_generated_name_00000012 {
+typedef enum __WIDL_urlmon_generated_name_0000001F {
     BINDHANDLETYPES_APPCACHE = 0x0,
     BINDHANDLETYPES_DEPENDENCY = 0x1,
     BINDHANDLETYPES_COUNT = 0x2
lib/libc/include/any-windows-any/uxtheme.h
@@ -353,7 +353,7 @@ THEMEAPI_(COLORREF) GetThemeSysColor(HTHEME hTheme,int iColorId);
 THEMEAPI_(HBRUSH) GetThemeSysColorBrush(HTHEME hTheme,int iColorId);
 THEMEAPI_(WINBOOL) GetThemeSysBool(HTHEME hTheme,int iBoolId);
 THEMEAPI_(int) GetThemeSysSize(HTHEME hTheme,int iSizeId);
-THEMEAPI GetThemeSysFont(HTHEME hTheme,int iFontId,LOGFONT *plf);
+THEMEAPI GetThemeSysFont(HTHEME hTheme,int iFontId,LOGFONTW *plf);
 THEMEAPI GetThemeSysString(HTHEME hTheme,int iStringId,LPWSTR pszStringBuff,int cchMaxStringChars);
 THEMEAPI GetThemeSysInt(HTHEME hTheme,int iIntId,int *piValue);
 THEMEAPI_(WINBOOL) IsThemeActive();
lib/libc/include/any-windows-any/vmr9.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/vmr9.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/vmr9.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vmr9.idl
@@ -1,525 +0,0 @@
-/*
- * Copyright 2008 Maarten Lankhorst
- *
- * 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 "unknwn.idl";
-
-cpp_quote("#if 0")
-interface IDirect3DSurface9;
-interface IDirect3DDevice9;
-typedef LONGLONG REFERENCE_TIME;
-typedef DWORD D3DFORMAT;
-typedef DWORD D3DPOOL;
-typedef HANDLE HMONITOR;
-typedef struct { char dummy; } AM_MEDIA_TYPE;
-typedef struct { char dummy; } D3DCOLOR;
-cpp_quote("#endif")
-
-interface IVMRSurface9;
-interface IVMRSurfaceAllocator9;
-interface IVMRSurfaceAllocatorEx9;
-interface IVMRSurfaceAllocatorNotify9;
-interface IVMRImagePresenter9;
-interface IVMRImagePresenterConfig9;
-interface IVMRMonitorConfig9;
-interface IVMRWindowlessControl9;
-interface IVMRMixerControl9;
-interface IVMRImageCompositor9;
-interface IVMRMixerBitmap9;
-interface IVMRFilterConfig9;
-interface IVMRAspectRatioControl9;
-interface IVMRVideoStreamControl9;
-
-typedef enum _VMR9PresentationFlags
-{
-    VMR9Sample_SyncPoint = 0x1,
-    VMR9Sample_Preroll = 0x2,
-    VMR9Sample_Discontinuity = 0x4,
-    VMR9Sample_TimeValid = 0x8,
-    VMR9Sample_SrcDstRectsValid = 0x10
-} VMR9PresentationFlags;
-
-typedef struct _VMR9PresentationInfo
-{
-    DWORD dwFlags; /* Flags defined above */
-    IDirect3DSurface9 *lpSurf;
-    REFERENCE_TIME rtStart;
-    REFERENCE_TIME rtEnd;
-    SIZE szAspectRatio;
-    RECT rcSrc;
-    RECT rcDst;
-    DWORD dwReserved1;
-    DWORD dwReserved2;
-} VMR9PresentationInfo;
-
-[
-    local,
-    object,
-    uuid(69188c61-12a3-40f0-8ffc-342e7b433fd7),
-    helpstring("IVMRImagePresenter9 interface"),
-    pointer_default(unique)
-]
-interface IVMRImagePresenter9 : IUnknown
-{
-    HRESULT StartPresenting([in] DWORD_PTR id);
-    HRESULT StopPresenting([in] DWORD_PTR id);
-    HRESULT PresentImage([in] DWORD_PTR id, [in] VMR9PresentationInfo *info);
-}
-
-typedef enum _VMR9SurfaceAllocationFlags
-{
-    VMR9AllocFlag_3DRenderTarget = 0x1,
-    VMR9AllocFlag_DXVATarget = 0x2,
-    VMR9AllocFlag_TextureSurface = 0x4,
-    VMR9AllocFlag_OffscreenSurface = 0x8,
-    VMR9AllocFlag_RGBDynamicSwitch = 0x10,
-    VMR9AllocFlag_UsageReserved = 0xe0,
-    VMR9AllocFlag_UsageMask = 0xff,
-} VMR9SurfaceAllocationFlags;
-
-typedef struct _VMR9AllocationInfo
-{
-    DWORD dwFlags; /* Flags defined above */
-    DWORD dwWidth;
-    DWORD dwHeight;
-    D3DFORMAT Format;
-    D3DPOOL Pool;
-    DWORD MinBuffers;
-    SIZE szAspectRatio;
-    SIZE szNativeSize;
-} VMR9AllocationInfo;
-
-[
-    local,
-    object,
-    uuid(8d5148ea-3f5d-46cf-9df1-d1b896eedb1f),
-    helpstring("IVMRSurfaceAllocator9 interface"),
-    pointer_default(unique)
-]
-interface IVMRSurfaceAllocator9 : IUnknown
-{
-    HRESULT InitializeDevice([in] DWORD_PTR id, [in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers);
-    HRESULT TerminateDevice([in] DWORD_PTR id);
-    HRESULT GetSurface([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface);
-    HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify9 *allocnotify);
-}
-
-[
-    local,
-    object,
-    uuid(6de9a68a-a928-4522-bf57-655ae3866456),
-    helpstring("IVMRSurfaceAllocatorEx9 interface"),
-    pointer_default(unique)
-]
-interface IVMRSurfaceAllocatorEx9 : IVMRSurfaceAllocator9
-{
-    HRESULT GetSurfaceEx([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface, [out] RECT *dest);
-}
-
-[
-    local,
-    object,
-    uuid(dca3f5df-bb3a-4d03-bd81-84614bfbfa0c),
-    helpstring("IVMRSurfaceAllocatorNotify9 interface"),
-    pointer_default(unique)
-]
-interface IVMRSurfaceAllocatorNotify9 : IUnknown
-{
-    HRESULT AdviseSurfaceAllocator([in] DWORD_PTR id, [in] IVMRSurfaceAllocator9 *alloc);
-    HRESULT SetD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
-    HRESULT ChangeD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
-    HRESULT AllocateSurfaceHelper([in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers, [out] IDirect3DSurface9 **surface);
-    HRESULT NotifyEvent([in] LONG code, [in] LONG_PTR param1, [in] LONG_PTR param2);
-}
-
-typedef enum _VMR9AspectRatioMode
-{
-    VMR9ARMode_None,
-    VMR9ARMode_LetterBox
-} VMR9AspectRatioMode;
-
-[
-    local,
-    object,
-    uuid(8f537d09-f85e-4414-b23b-502e54c79927),
-    helpstring("IVMRWindowlessControl interface"),
-    pointer_default(unique)
-]
-interface IVMRWindowlessControl9 : IUnknown
-{
-    HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *arwidth, [out] LONG *arheight);
-    HRESULT GetMinIdealVideoSize([out] LONG *width, [out] LONG *height);
-    HRESULT GetMaxIdealVideoSize([out] LONG *width, [out] LONG *height);
-    HRESULT SetVideoPosition([in] const RECT *source, [in] const RECT *dest);
-    HRESULT GetVideoPosition([out] RECT *source, [out] RECT *dest);
-    HRESULT GetAspectRatioMode([out] DWORD *mode);
-    HRESULT SetAspectRatioMode([in] DWORD mode);
-    HRESULT SetVideoClippingWindow([in] HWND hwnd);
-    HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc);
-    HRESULT DisplayModeChanged();
-    HRESULT GetCurrentImage([out] BYTE **dib);
-    HRESULT SetBorderColor([in] COLORREF color);
-    HRESULT GetBorderColor([out] COLORREF *color);
-}
-
-typedef enum _VMR9MixerPrefs
-{
-    /* Decimation */
-    MixerPref9_NoDecimation = 0x1,
-    MixerPref9_DecimateOutput = 0x2,
-    MixerPref9_ARAdjustXorY = 0x4,
-    MixerPref9_NonSquareMixing = 0x8,
-    MixerPref9_DecimateMask = 0xf,
-
-    /* Filtering */
-    MixerPref9_BiLinearFiltering = 0x10,
-    MixerPref9_PointFiltering = 0x20,
-    MixerPref9_AnisotropicFiltering = 0x40,
-    MixerPref9_PyramidalQuadFiltering = 0x80,
-    MixerPref9_GaussianQuadFiltering = 0x100,
-    MixerPref9_FilteringReserved = 0xe00,
-    MixerPref9_FilteringMask = 0xff0,
-
-    /* Render target */
-    MixerPref9_RenderTargetRGB = 0x1000,
-    MixerPref9_RenderTargetYUV = 0x2000,
-    MixerPref9_RenderTargetReserved = 0xfc000,
-
-    MixerPref9_DynamicSwitchToBOB = 0x100000,
-    MixerPref9_DynamicDecimateBy2 = 0x200000,
-    MixerPref9_DynamicReserved = 0xc00000,
-    MixerPref9_DynamicMask = 0xf00000,
-} VMR9MixerPrefs;
-
-typedef struct _VMR9NormalizedRect
-{
-    FLOAT left;
-    FLOAT top;
-    FLOAT right;
-    FLOAT bottom;
-} VMR9NormalizedRect;
-
-typedef enum _VMR9ProcAmpControlFlags
-{
-    ProcAmpControl9_Brightness = 0x1,
-    ProcAmpControl9_Contrast = 0x2,
-    ProcAmpControl9_Hue = 0x4,
-    ProcAmpControl9_Saturation = 0x8,
-    ProcAmpControl9_Mask = 0xf
-} VMR9ProcAmpControlFlags;
-
-typedef struct _VMR9ProcAmpControl
-{
-    DWORD dwSize;
-    DWORD dwFlags;
-    FLOAT Brightness;
-    FLOAT Contrast;
-    FLOAT Hue;
-    FLOAT Saturation;
-} VMR9ProcAmpControl;
-
-typedef struct _VMR9ProcAmpControlRange
-{
-    DWORD dwSize;
-    VMR9ProcAmpControlFlags dwProperty;
-    FLOAT MinValue;
-    FLOAT MaxValue;
-    FLOAT DefaultValue;
-    FLOAT StepSize;
-} VMR9ProcAmpControlRange;
-
-[
-    local,
-    object,
-    uuid(1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b),
-    helpstring("IVMRMixerControl9 interface"),
-    pointer_default(unique)
-]
-interface IVMRMixerControl9 : IUnknown
-{
-    HRESULT SetAlpha([in] DWORD streamid, [in] FLOAT alpha);
-    HRESULT GetAlpha([in] DWORD streamid, [out] FLOAT *alpha);
-    HRESULT SetZOrder([in] DWORD streamid, [in] DWORD zorder);
-    HRESULT GetZOrder([in] DWORD streamid, [out] DWORD *zorder);
-    HRESULT SetOutputRect([in] DWORD streamid, [in] const VMR9NormalizedRect *rect);
-    HRESULT GetOutputRect([in] DWORD streamid, [out] VMR9NormalizedRect *rect);
-    HRESULT SetBackgroundClr([in] COLORREF back);
-    HRESULT GetBackgroundClr([out] COLORREF *back);
-    HRESULT SetMixingPrefs([in] DWORD mixingprefs);
-    HRESULT GetMixingPrefs([out] DWORD *mixingprefs);
-    HRESULT SetProcAmpControl([in] DWORD streamid, [in] VMR9ProcAmpControl *control);
-    HRESULT GetProcAmpControl([in] DWORD streamid, [in, out] VMR9ProcAmpControl *control);
-    HRESULT GetProcAmpControlRange([in] DWORD streamid, [in, out] VMR9ProcAmpControlRange *controlrange);
-}
-
-typedef struct _VMR9AlphaBitmap
-{
-    DWORD dwFlags;
-    HDC hdc;
-    IDirect3DSurface9 *pDDS;
-    RECT rSrc;
-    VMR9NormalizedRect rDest;
-    FLOAT fAlpha;
-    COLORREF clrSrcKey;
-    DWORD dwFilterMode;
-} VMR9AlphaBitmap;
-
-typedef enum _VMR9AlphaBitmapFlags
-{
-    VMR9AlphaBitmap_Disable = 0x1,
-    VMR9AlphaBitmap_hDC = 0x2,
-    VMR9AlphaBitmap_EntireDDS = 0x4,
-    VMR9AlphaBitmap_SrcColorKey = 0x8,
-    VMR9AlphaBitmap_SrcRect = 0x10,
-    VMR9AlphaBitmap_FilterMode = 0x20
-} VMR9AlphaBitmapFlags;
-
-[
-    local,
-    object,
-    uuid(ced175e5-1935-4820-81bd-ff6ad00c9108),
-    helpstring("IVMRMixerBitmap interface"),
-    pointer_default(unique)
-]
-interface IVMRMixerBitmap9 : IUnknown
-{
-    HRESULT SetAlphaBitmap([in] const VMR9AlphaBitmap *bitmap);
-    HRESULT UpdateAlphaBitmapParameters([in] const VMR9AlphaBitmap *bitmap);
-    HRESULT GetAlphaBitmapParameters([out] VMR9AlphaBitmap *bitmap);
-}
-
-[
-    local,
-    object,
-    uuid(dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc),
-    helpstring("IVMRSurface interface"),
-    pointer_default(unique)
-]
-interface IVMRSurface9 : IUnknown
-{
-    HRESULT IsSurfaceLocked();
-    HRESULT LockSurface([out] BYTE **surface);
-    HRESULT UnlockSurface();
-    HRESULT GetSurface([out] IDirect3DSurface9 **surface);
-}
-
-typedef enum _VMR9RenderPrefs
-{
-   RenderPrefs9_DoNotRenderBorder = 0x1,
-   RenderPrefs9_Mask = 0x1
-} VMR9RenderPrefs;
-
-[
-    local,
-    object,
-    uuid(45c15cab-6e22-420a-8043-ae1f0ac02c7d),
-    helpstring("IVMRImagePresenterConfig9 interface"),
-    pointer_default(unique)
-]
-interface IVMRImagePresenterConfig9 : IUnknown
-{
-    HRESULT SetRenderingPrefs([in] DWORD renderflags);
-    HRESULT GetRenderingPrefs([out] DWORD *renderflags);
-}
-
-[
-    local,
-    object,
-    uuid(d0cfe38b-93e7-4772-8957-0400c49a4485),
-    helpstring("IVMRMixerStreamConfig interface"),
-    pointer_default(unique)
-]
-interface IVMRVideoStreamControl9: IUnknown
-{
-    HRESULT SetStreamActiveState([in] BOOL active);
-    HRESULT GetStreamActiveState([out] BOOL *active);
-}
-
-typedef enum _VMR9Mode
-{
-    VMR9Mode_Windowed = 0x1,
-    VMR9Mode_Windowless = 0x2,
-    VMR9Mode_Renderless = 0x4,
-    VMR9Mode_Mask = 0x7
-} VMR9Mode;
-
-[
-    local,
-    object,
-    uuid(5a804648-4f66-4867-9c43-4f5c822cf1b8),
-    helpstring("IVMRFilterConfig9 interface"),
-    pointer_default(unique)
-]
-interface IVMRFilterConfig9 : IUnknown
-{
-    HRESULT SetImageCompositor([in] IVMRImageCompositor9 *compositor);
-    HRESULT SetNumberOfStreams([in] DWORD max);
-    HRESULT GetNumberOfStreams([out] DWORD *max);
-    HRESULT SetRenderingPrefs([in] DWORD renderflags);
-    HRESULT GetRenderingPrefs([out] DWORD *renderflags);
-    HRESULT SetRenderingMode([in] DWORD mode);
-    HRESULT GetRenderingMode([out] DWORD *mode);
-}
-
-[
-    local,
-    object,
-    uuid(00d96c29-bbde-4efc-9901-bb5036392146),
-    helpstring("IVMRAspectRatioControl9 interface"),
-    pointer_default(unique)
-]
-interface IVMRAspectRatioControl9 : IUnknown
-{
-    HRESULT GetAspectRatioMode([out] DWORD *mode);
-    HRESULT SetAspectRatioMode([in] DWORD mode);
-}
-
-#define VMR9DEVICENAMELEN 32
-#define VMR9DEVICEDESCRIPTIONLEN 512
-
-typedef struct _VMR9MonitorInfo
-{
-    UINT uDevID;
-    RECT rcMonitor;
-    HMONITOR hMon;
-    DWORD dwFlags;
-    WCHAR szDevice[VMR9DEVICENAMELEN];
-    WCHAR szDescription[VMR9DEVICEDESCRIPTIONLEN];
-    LARGE_INTEGER liDriverVersion;
-    DWORD dwVendorId;
-    DWORD dwDeviceId;
-    DWORD dwSubSysId;
-    DWORD dwRevision;
-} VMR9MonitorInfo;
-
-[
-    local,
-    object,
-    uuid(46c2e457-8ba0-4eef-b80b-0680f0978749),
-    helpstring("IVMRMonitorConfig9 interface"),
-    pointer_default(unique)
-]
-interface IVMRMonitorConfig9 : IUnknown
-{
-    HRESULT SetMonitor([in] UINT uDev);
-    HRESULT GetMonitor([out] UINT *uDev);
-    HRESULT SetDefaultMonitor([in] UINT uDev);
-    HRESULT GetDefaultMonitor([out] UINT *uDev);
-    HRESULT GetAvailableMonitors([out, size_is(arraysize)] VMR9MonitorInfo *info, [in] DWORD arraysize, [out] DWORD *numdev);
-}
-
-typedef enum _VMR9DeinterlacePrefs
-{
-    DeinterlacePref9_NextBest = 0x1,
-    DeinterlacePref9_BOB = 0x2,
-    DeinterlacePref9_Weave = 0x4,
-    DeinterlacePref9_Mask = 0x7
-} VMR9DeinterlacePrefs;
-
-typedef enum _VMR9DeinterlaceTech
-{
-    DeinterlaceTech9_Unknown = 0,
-    DeinterlaceTech9_BOBLineReplicate = 0x1,
-    DeinterlaceTech9_BOBVerticalStretch = 0x2,
-    DeinterlaceTech9_MedianFiltering = 0x4,
-    DeinterlaceTech9_EdgeFiltering = 0x10,
-    DeinterlaceTech9_FieldAdaptive = 0x20,
-    DeinterlaceTech9_PixelAdaptive = 0x40,
-    DeinterlaceTech9_MotionVectorSteered = 0x80
-} VMR9DeinterlaceTech;
-
-typedef struct _VMR9Frequency
-{
-    DWORD dwNumerator;
-    DWORD dwDenominator;
-} VMR9Frequency;
-
-typedef enum _VMR9_SampleFormat
-{
-    VMR9_SampleReserved = 1,
-    VMR9_SampleProgressiveFrame = 2,
-    VMR9_SampleFieldInterleavedEvenFirst = 3,
-    VMR9_SampleFieldInterleavedOddFirst = 4,
-    VMR9_SampleFieldSingleEven = 5,
-    VMR9_SampleFieldSingleOdd = 6,
-} VMR9_SampleFormat;
-
-typedef struct _VMR9VideoDesc
-{
-    DWORD dwSize;
-    DWORD dwSampleWidth;
-    DWORD dwSampleHeight;
-    VMR9_SampleFormat SampleFormat;
-    DWORD dwFourCC;
-    VMR9Frequency InputSampleFreq;
-    VMR9Frequency OutputFrameFreq;
-} VMR9VideoDesc;
-
-typedef struct _VMR9DeinterlaceCaps {
-    DWORD dwSize;
-    DWORD dwNumPreviousOutputFrames;
-    DWORD dwNumForwardRefSamples;
-    DWORD dwNumBackwardRefSamples;
-    VMR9DeinterlaceTech DeinterlaceTechnology;
-} VMR9DeinterlaceCaps;
-
-[
-    local,
-    object,
-    uuid(a215fb8d-13c2-4f7f-993c-003d6271a459),
-    helpstring("IVMRDeinterlaceControl9 interface"),
-    pointer_default(unique)
-]
-interface IVMRDeinterlaceControl9 : IUnknown
-{
-    HRESULT GetNumberOfDeinterlaceModes([in] VMR9VideoDesc *desc, [in, out] DWORD *nummodes, [out] GUID *modes);
-    HRESULT GetDeinterlaceModeCaps([in] GUID *mode, [in] VMR9VideoDesc *desc, [out] VMR9DeinterlaceCaps *caps);
-    HRESULT GetDeinterlaceMode([in] DWORD streamid, [out] GUID *mode);
-    HRESULT SetDeinterlaceMode([in] DWORD streamid, [in] GUID *mode);
-    HRESULT GetDeinterlacePrefs([out] DWORD *prefs);
-    HRESULT SetDeinterlacePrefs([in] DWORD prefs);
-    HRESULT GetActualDeinterlaceMode([in] DWORD streamid, [out] GUID *mode);
-}
-
-typedef struct _VMR9VideoStreamInfo {
-    IDirect3DSurface9 *pddsVideoSurface;
-    DWORD dwWidth;
-    DWORD dwHeight;
-    DWORD dwStrmID;
-    FLOAT fAlpha;
-    VMR9NormalizedRect rNormal;
-    REFERENCE_TIME rtStart;
-    REFERENCE_TIME rtEnd;
-    VMR9_SampleFormat SampleFormat;
-} VMR9VideoStreamInfo;
-
-[
-    local,
-    object,
-    uuid(4a5c89eb-df51-4654-ac2a-e48e02bbabf6),
-    helpstring("IVMRImageCompositor9 interface"),
-    pointer_default(unique)
-]
-interface IVMRImageCompositor9 : IUnknown
-{
-    HRESULT InitCompositionDevice([in] IUnknown *d3ddev);
-    HRESULT TermCompositionDevice([in] IUnknown *d3ddev);
-    HRESULT SetStreamMediaType([in] DWORD stream, [in] AM_MEDIA_TYPE *mt, [in] BOOL texture);
-    HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirect3DSurface9 *d3dtarget, [in] AM_MEDIA_TYPE *mttarget,
-                           [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop, D3DCOLOR back,
-                           [in] VMR9VideoStreamInfo *info, [in] UINT streams);
-}
lib/libc/include/any-windows-any/vss.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.0-rc1 from vss.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/vss.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wbemads.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wbemads.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wbemads.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -53,6 +53,8 @@ extern "C" {
 #include <winapifamily.h>
 
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __WMIEXTENSIONLib_LIBRARY_DEFINED__
+#define __WMIEXTENSIONLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_WMIEXTENSIONLib, 0xe503d000, 0x5c7f, 0x11d2, 0x8b,0x74, 0x00,0x10,0x4b,0x2a,0xfb,0x41);
 
@@ -77,6 +79,7 @@ __CRT_UUID_DECL(WMIExtension, 0xf0975afe, 0x5c7f, 0x11d2, 0x8b,0x74, 0x00,0x10,0
 #endif
 #endif
 
+#endif /* __WMIEXTENSIONLib_LIBRARY_DEFINED__ */
 /*****************************************************************************
  * IWMIExtension interface
  */
lib/libc/include/any-windows-any/wbemcli.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wbemcli.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wbemcli.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -446,6 +446,8 @@ interface IWbemUnsecuredApartment;
 #include <winapifamily.h>
 
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __WbemClient_v1_LIBRARY_DEFINED__
+#define __WbemClient_v1_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_WbemClient_v1, 0x7ec196fe, 0x7005, 0x11d1, 0xad,0x90, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
 
@@ -966,6 +968,7 @@ __CRT_UUID_DECL(WbemRefresher, 0xc71566f2, 0x561e, 0x11d1, 0xad,0x87, 0x00,0xc0,
 #endif
 #endif
 
+#endif /* __WbemClient_v1_LIBRARY_DEFINED__ */
 /*****************************************************************************
  * IWbemClassObject interface
  */
lib/libc/include/any-windows-any/wbemdisp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wbemdisp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wbemdisp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -450,6 +450,8 @@ extern "C" {
 #include <winapifamily.h>
 
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __WbemScripting_LIBRARY_DEFINED__
+#define __WbemScripting_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_WbemScripting, 0x565783c6, 0xcb41, 0x11d1, 0x8b,0x02, 0x00,0x60,0x08,0x06,0xd9,0xb6);
 
@@ -1223,6 +1225,7 @@ __CRT_UUID_DECL(SWbemRefreshableItem, 0x8c6854bc, 0xde4b, 0x11d3, 0xb3,0x90, 0x0
 #endif
 #endif
 
+#endif /* __WbemScripting_LIBRARY_DEFINED__ */
 /*****************************************************************************
  * ISWbemLocator interface
  */
lib/libc/include/any-windows-any/wbemprov.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wbemprov.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wbemprov.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -274,6 +274,8 @@ interface IWbemDecoupledRegistrar;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __WbemProviders_v1_LIBRARY_DEFINED__
+#define __WbemProviders_v1_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_WbemProviders_v1, 0x092df710, 0x7010, 0x11d1, 0xad,0x90, 0x00,0xc0,0x4f,0xd8,0xfd,0xff);
 
@@ -342,6 +344,7 @@ __CRT_UUID_DECL(WbemDecoupledBasicEventProvider, 0xf5f75737, 0x2843, 0x4f22, 0x9
 #endif
 #endif
 
+#endif /* __WbemProviders_v1_LIBRARY_DEFINED__ */
 typedef enum tag_WBEM_BATCH_TYPE {
     WBEM_FLAG_BATCH_IF_NEEDED = 0,
     WBEM_FLAG_MUST_BATCH = 0x1,
lib/libc/include/any-windows-any/wbemtran.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wbemtran.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wbemtran.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -185,6 +185,8 @@ typedef enum tag_WBEM_LOGIN_TYPE {
     WBEM_FLAG_USE_MULTIPLE_CHALLENGES = 0x10
 } WBEM_LOGIN_TYPE;
 typedef BYTE *WBEM_128BITS;
+#ifndef __WbemTransports_v1_LIBRARY_DEFINED__
+#define __WbemTransports_v1_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_WbemTransports_v1, 0x027947f3, 0xd731, 0x11ce, 0xa3,0x57, 0x00,0x00,0x00,0x00,0x00,0x01);
 
@@ -240,6 +242,7 @@ __CRT_UUID_DECL(WbemDCOMTransport, 0xf7ce2e13, 0x8c90, 0x11d1, 0x9e,0x7b, 0x00,0
 #endif
 #endif
 
+#endif /* __WbemTransports_v1_LIBRARY_DEFINED__ */
 /*****************************************************************************
  * IWbemLevel1Login interface
  */
lib/libc/include/any-windows-any/wchar.h
@@ -270,11 +270,13 @@ extern FILE (* __MINGW_IMP_SYMBOL(_iob))[];	/* A pointer to an array of FILE */
   wint_t __cdecl towlower(wint_t _C);
   _CRTIMP wint_t __cdecl _towlower_l(wint_t _C,_locale_t _Locale);
   int __cdecl iswctype(wint_t _C,wctype_t _Type);
+#if __MSVCRT_VERSION__ >= 0x800
   _CRTIMP int __cdecl _iswctype_l(wint_t _C,wctype_t _Type,_locale_t _Locale);
   _CRTIMP int __cdecl __iswcsymf(wint_t _C);
   _CRTIMP int __cdecl _iswcsymf_l(wint_t _C,_locale_t _Locale);
   _CRTIMP int __cdecl __iswcsym(wint_t _C);
   _CRTIMP int __cdecl _iswcsym_l(wint_t _C,_locale_t _Locale);
+#endif
 #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
   int __cdecl is_wctype(wint_t _C,wctype_t _Type);
 #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
@@ -290,7 +292,9 @@ extern FILE (* __MINGW_IMP_SYMBOL(_iob))[];	/* A pointer to an array of FILE */
 
   _CRTIMP wchar_t *__cdecl _wgetcwd(wchar_t *_DstBuf,int _SizeInWords);
   _CRTIMP wchar_t *__cdecl _wgetdcwd(int _Drive,wchar_t *_DstBuf,int _SizeInWords);
+#if __MSVCRT_VERSION__ >= 0x800
   wchar_t *__cdecl _wgetdcwd_nolock(int _Drive,wchar_t *_DstBuf,int _SizeInWords);
+#endif
   _CRTIMP int __cdecl _wchdir(const wchar_t *_Path);
   _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path);
   _CRTIMP int __cdecl _wrmdir(const wchar_t *_Path);
@@ -442,11 +446,13 @@ extern FILE (* __MINGW_IMP_SYMBOL(_iob))[];	/* A pointer to an array of FILE */
   _CRTIMP int __cdecl _vcwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
   _CRTIMP int __cdecl _cwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,...);
   _CRTIMP int __cdecl _vcwprintf_p_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
+#if __MSVCRT_VERSION__ >= 0x800
   wint_t __cdecl _putwch_nolock(wchar_t _WCh);
   wint_t __cdecl _getwch_nolock(void);
   wint_t __cdecl _getwche_nolock(void);
   wint_t __cdecl _ungetwch_nolock(wint_t _WCh);
 #endif
+#endif
 
 #ifdef _UCRT
   int __cdecl __stdio_common_vswprintf_p(unsigned __int64 _Options, wchar_t *_Str, size_t _Len, const wchar_t *_Format, _locale_t _Locale, va_list _ArgList);
@@ -648,8 +654,8 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 #else /* !__USE_MINGW_ANSI_STDIO */
 
 #ifdef _UCRT
-  __mingw_ovr
-  int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -658,8 +664,8 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
     __builtin_va_end(__ap);
     return __ret;
   }
-  __mingw_ovr
-  int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -668,8 +674,8 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
     __builtin_va_end(__ap);
     return __ret;
   }
-  __mingw_ovr
-  int __cdecl wscanf(const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl wscanf(const wchar_t * __restrict__ _Format,...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -803,8 +809,8 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
     __builtin_va_end(__ap);
     return __ret;
   }
-  __mingw_static_ovr
-  int __cdecl _snwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_static_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl _snwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -813,8 +819,8 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
     __builtin_va_end(__ap);
     return __ret;
   }
-  __mingw_ovr
-  int __cdecl _vsnwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args) __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  __mingw_ovr __MINGW_ATTRIB_DEPRECATED_SEC_WARN
+  int __cdecl _vsnwprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args)
   {
     return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_LEGACY_VSPRINTF_NULL_TERMINATION, _Dest, _Count, _Format, NULL, _Args);
   }
@@ -1217,9 +1223,11 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 #endif
   _CRTIMP int __cdecl _wremove(const wchar_t *_Filename);
   _CRTIMP wchar_t *__cdecl _wtmpnam(wchar_t *_Buffer);
+#if __MSVCRT_VERSION__ >= 0x800
   _CRTIMP wint_t __cdecl _fgetwc_nolock(FILE *_File);
   _CRTIMP wint_t __cdecl _fputwc_nolock(wchar_t _Ch,FILE *_File);
   _CRTIMP wint_t __cdecl _ungetwc_nolock(wint_t _Ch,FILE *_File);
+#endif
 
 #undef _CRT_GETPUTWCHAR_NOINLINE
 
@@ -1233,9 +1241,11 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 
 #define getwc(_stm) fgetwc(_stm)
 #define putwc(_c,_stm) fputwc(_c,_stm)
+#if __MSVCRT_VERSION__ >= 0x800
 #define _putwc_nolock(_c,_stm) _fputwc_nolock(_c,_stm)
 #define _getwc_nolock(_c) _fgetwc_nolock(_c)
 #endif
+#endif
 
 #ifndef _WSTDLIB_DEFINED
 #define _WSTDLIB_DEFINED
@@ -1325,7 +1335,11 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
   _CONST_RETURN wchar_t *__cdecl wcsrchr(const wchar_t *_Str,wchar_t _Ch);
   size_t __cdecl wcsspn(const wchar_t *_Str,const wchar_t *_Control);
   _CONST_RETURN wchar_t *__cdecl wcsstr(const wchar_t *_Str,const wchar_t *_SubStr);
+#if defined(_UCRT)
+  wchar_t *__cdecl wcstok(wchar_t * __restrict__ _Str,const wchar_t * __restrict__ _Delim,wchar_t **_Ptr) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
+#else
   wchar_t *__cdecl wcstok(wchar_t * __restrict__ _Str,const wchar_t * __restrict__ _Delim) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
+#endif
   _CRTIMP wchar_t *__cdecl _wcserror(int _ErrNum) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _CRTIMP wchar_t *__cdecl __wcserror(const wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _CRTIMP int __cdecl _wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2);
lib/libc/include/any-windows-any/wctype.h
@@ -128,8 +128,10 @@ extern "C" {
   wint_t __cdecl towupper(wint_t);
   wint_t __cdecl towlower(wint_t);
   int __cdecl iswctype(wint_t,wctype_t);
+#if __MSVCRT_VERSION__ >= 0x800
   _CRTIMP int __cdecl __iswcsymf(wint_t);
   _CRTIMP int __cdecl __iswcsym(wint_t);
+#endif
   int __cdecl is_wctype(wint_t,wctype_t);
 #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) || defined (__cplusplus)
 int __cdecl iswblank(wint_t _C);
lib/libc/include/any-windows-any/wdstptmgmt.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wdstptmgmt.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wdstptmgmt.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -622,59 +622,59 @@ interface IWdsTransportTftpClient;
 #endif
 
 
-typedef enum __WIDL_wdstptmgmt_generated_name_00000013 {
+typedef enum __WIDL_wdstptmgmt_generated_name_00000020 {
     WdsTptProtocolUnicast = 0x1,
     WdsTptProtocolMulticast = 0x2
 } WDSTRANSPORT_PROTOCOL_FLAGS;
 
-typedef enum __WIDL_wdstptmgmt_generated_name_00000014 {
+typedef enum __WIDL_wdstptmgmt_generated_name_00000021 {
     WdsTptNamespaceTypeUnknown = 0,
     WdsTptNamespaceTypeAutoCast = 1,
     WdsTptNamespaceTypeScheduledCastManualStart = 2,
     WdsTptNamespaceTypeScheduledCastAutoStart = 3
 } WDSTRANSPORT_NAMESPACE_TYPE;
 
-typedef enum __WIDL_wdstptmgmt_generated_name_00000015 {
+typedef enum __WIDL_wdstptmgmt_generated_name_00000022 {
     WdsTptDisconnectUnknown = 0,
     WdsTptDisconnectFallback = 1,
     WdsTptDisconnectAbort = 2
 } WDSTRANSPORT_DISCONNECT_TYPE;
 
-typedef enum __WIDL_wdstptmgmt_generated_name_00000016 {
+typedef enum __WIDL_wdstptmgmt_generated_name_00000023 {
     WdsTptSlowClientHandlingUnknown = 0,
     WdsTptSlowClientHandlingNone = 1,
     WdsTptSlowClientHandlingAutoDisconnect = 2,
     WdsTptSlowClientHandlingMultistream = 3
 } WDSTRANSPORT_SLOW_CLIENT_HANDLING_TYPE;
 
-typedef enum __WIDL_wdstptmgmt_generated_name_00000017 {
+typedef enum __WIDL_wdstptmgmt_generated_name_00000024 {
     WdsTptUdpPortPolicyDynamic = 0,
     WdsTptUdpPortPolicyFixed = 1
 } WDSTRANSPORT_UDP_PORT_POLICY;
 
-typedef enum __WIDL_wdstptmgmt_generated_name_00000018 {
+typedef enum __WIDL_wdstptmgmt_generated_name_00000025 {
     WdsTptTftpCapMaximumBlockSize = 0x1,
     WdsTptTftpCapVariableWindow = 0x2
 } WDSTRANSPORT_TFTP_CAPABILITY;
 
-typedef enum __WIDL_wdstptmgmt_generated_name_00000019 {
+typedef enum __WIDL_wdstptmgmt_generated_name_00000026 {
     WdsTptServiceNotifyUnknown = 0,
     WdsTptServiceNotifyReadSettings = 1
 } WDSTRANSPORT_SERVICE_NOTIFICATION;
 
-typedef enum __WIDL_wdstptmgmt_generated_name_0000001A {
+typedef enum __WIDL_wdstptmgmt_generated_name_00000027 {
     WdsTptIpAddressUnknown = 0,
     WdsTptIpAddressIpv4 = 1,
     WdsTptIpAddressIpv6 = 2
 } WDSTRANSPORT_IP_ADDRESS_TYPE;
 
-typedef enum __WIDL_wdstptmgmt_generated_name_0000001B {
+typedef enum __WIDL_wdstptmgmt_generated_name_00000028 {
     WdsTptIpAddressSourceUnknown = 0,
     WdsTptIpAddressSourceDhcp = 1,
     WdsTptIpAddressSourceRange = 2
 } WDSTRANSPORT_IP_ADDRESS_SOURCE_TYPE;
 
-typedef enum __WIDL_wdstptmgmt_generated_name_0000001C {
+typedef enum __WIDL_wdstptmgmt_generated_name_00000029 {
     WdsTptNetworkProfileUnknown = 0,
     WdsTptNetworkProfileCustom = 1,
     WdsTptNetworkProfile10Mbps = 2,
@@ -682,7 +682,7 @@ typedef enum __WIDL_wdstptmgmt_generated_name_0000001C {
     WdsTptNetworkProfile1Gbps = 4
 } WDSTRANSPORT_NETWORK_PROFILE_TYPE;
 
-typedef enum __WIDL_wdstptmgmt_generated_name_0000001D {
+typedef enum __WIDL_wdstptmgmt_generated_name_0000002A {
     WdsTptFeatureAdminPack = 0x1,
     WdsTptFeatureTransportServer = 0x2,
     WdsTptFeatureDeploymentServer = 0x4
@@ -690,7 +690,7 @@ typedef enum __WIDL_wdstptmgmt_generated_name_0000001D {
 
 #define WDSTRANSPORT_FEATURE_FLAGS_ALL (WdsTptFeatureAdminPack | WdsTptFeatureTransportServer | WdsTptFeatureDeploymentServer)
 
-typedef enum __WIDL_wdstptmgmt_generated_name_0000001E {
+typedef enum __WIDL_wdstptmgmt_generated_name_0000002B {
     WdsTptDiagnosticsComponentPxe = 0x1,
     WdsTptDiagnosticsComponentTftp = 0x2,
     WdsTptDiagnosticsComponentImageServer = 0x4,
@@ -6098,6 +6098,8 @@ static FORCEINLINE HRESULT IWdsTransportContentProvider_get_InitializationRoutin
 #endif  /* __IWdsTransportContentProvider_INTERFACE_DEFINED__ */
 
 
+#ifndef __WdsTptMgmtLib_LIBRARY_DEFINED__
+#define __WdsTptMgmtLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_WdsTptMgmtLib, 0x9212887f, 0xf5bc, 0x45dd, 0xa5,0x10, 0x26,0x54,0x13,0xa1,0x8e,0xd7);
 
@@ -6374,6 +6376,7 @@ __CRT_UUID_DECL(WdsTransportContentProvider, 0xe0be741f, 0x5a75, 0x4eb9, 0x8a,0x
 #endif
 #endif
 
+#endif /* __WdsTptMgmtLib_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/winbase.h
@@ -118,6 +118,19 @@ extern "C" {
 #define COPY_FILE_RESUME_FROM_PAUSE 0x4000
 #define COPY_FILE_NO_OFFLOAD 0x40000
 #endif
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10
+#define COPY_FILE_IGNORE_EDP_BLOCK 0x00400000
+#define COPY_FILE_IGNORE_SOURCE_ENCRYPTION 0x00800000
+#define COPY_FILE_DONT_REQUEST_DEST_WRITE_DAC 0x02000000
+#define COPY_FILE_REQUEST_COMPRESSED_TRAFFIC 0x10000000
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_VB
+#define COPY_FILE_OPEN_AND_COPY_REPARSE_POINT 0x00200000
+#define COPY_FILE_DIRECTORY 0x00000080
+#define COPY_FILE_SKIP_ALTERNATE_STREAMS 0x00008000
+#define COPY_FILE_DISABLE_PRE_ALLOCATION 0x04000000
+#define COPY_FILE_ENABLE_LOW_FREE_SPACE_MODE 0x08000000
+#endif
 
 #define REPLACEFILE_WRITE_THROUGH 0x1
 #define REPLACEFILE_IGNORE_MERGE_ERRORS 0x2
@@ -159,6 +172,7 @@ extern "C" {
 
   typedef VOID (WINAPI *PFIBER_START_ROUTINE) (LPVOID lpFiberParameter);
   typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
+  typedef LPVOID (WINAPI *PFIBER_CALLOUT_ROUTINE) (LPVOID lpParameter);
 
 #if defined (__i386__)
   typedef PLDT_ENTRY LPLDT_ENTRY;
@@ -396,6 +410,7 @@ extern "C" {
 #define EXTENDED_STARTUPINFO_PRESENT 0x80000
 #define PROCESS_MODE_BACKGROUND_BEGIN 0x100000
 #define PROCESS_MODE_BACKGROUND_END 0x200000
+#define CREATE_SECURE_PROCESS 0x400000
 #define CREATE_BREAKAWAY_FROM_JOB 0x1000000
 #define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x2000000
 #define CREATE_DEFAULT_ERROR_MODE 0x4000000
@@ -1184,6 +1199,8 @@ extern "C" {
   typedef enum _THREAD_INFORMATION_CLASS {
     ThreadMemoryPriority,
     ThreadAbsoluteCpuPriority,
+    ThreadDynamicCodePolicy,
+    ThreadPowerThrottling,
     ThreadInformationClassMax
   } THREAD_INFORMATION_CLASS;
 
@@ -1354,6 +1371,10 @@ extern "C" {
   WINBASEAPI WINBOOL WINAPI SetCommTimeouts (HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts);
   WINBASEAPI WINBOOL WINAPI TransmitCommChar (HANDLE hFile, char cChar);
   WINBASEAPI WINBOOL WINAPI WaitCommEvent (HANDLE hFile, LPDWORD lpEvtMask, LPOVERLAPPED lpOverlapped);
+#if NTDDI_VERSION >= NTDDI_WIN10_RS3
+  WINBASEAPI HANDLE WINAPI OpenCommPort (ULONG uPortNumber, DWORD dwDesiredAccess, DWORD dwFlagsAndAttributes);
+  WINBASEAPI ULONG WINAPI GetCommPorts (PULONG lpPortNumbers, ULONG uPortNumbersCount, PULONG puPortNumbersFound);
+#endif
 
   WINBASEAPI WINBOOL WINAPI GetProcessPriorityBoost (HANDLE hProcess, PBOOL pDisablePriorityBoost);
   WINBASEAPI WINBOOL WINAPI SetProcessPriorityBoost (HANDLE hProcess, WINBOOL bDisablePriorityBoost);
@@ -1397,6 +1418,7 @@ extern "C" {
 #define CREATE_FOR_DIR (2)
 #define OVERWRITE_HIDDEN (4)
 #define EFSRPC_SECURE_ONLY (8)
+#define EFS_DROP_ALTERNATE_STREAMS (0x10)
 
   WINBASEAPI WINBOOL WINAPI GetNamedPipeInfo (HANDLE hNamedPipe, LPDWORD lpFlags, LPDWORD lpOutBufferSize, LPDWORD lpInBufferSize, LPDWORD lpMaxInstances);
   WINBASEAPI HANDLE WINAPI CreateMailslotA (LPCSTR lpName, DWORD nMaxMessageSize, DWORD lReadTimeout, LPSECURITY_ATTRIBUTES lpSecurityAttributes);
@@ -1472,12 +1494,14 @@ extern "C" {
 #define BACKUP_REPARSE_DATA 0x00000008
 #define BACKUP_SPARSE_BLOCK 0x00000009
 #define BACKUP_TXFS_DATA 0x0000000a
+#define BACKUP_GHOSTED_FILE_EXTENTS 0x0000000b
 
 #define STREAM_NORMAL_ATTRIBUTE 0x00000000
 #define STREAM_MODIFIED_WHEN_READ 0x00000001
 #define STREAM_CONTAINS_SECURITY 0x00000002
 #define STREAM_CONTAINS_PROPERTIES 0x00000004
 #define STREAM_SPARSE_ATTRIBUTE 0x00000008
+#define STREAM_CONTAINS_GHOSTED_FILE_EXTENTS 0x00000010
 
 #define STARTF_USESHOWWINDOW 0x00000001
 #define STARTF_USESIZE 0x00000002
@@ -1488,11 +1512,15 @@ extern "C" {
 #define STARTF_FORCEONFEEDBACK 0x00000040
 #define STARTF_FORCEOFFFEEDBACK 0x00000080
 #define STARTF_USESTDHANDLES 0x00000100
-
+#if WINVER >= 0x0400
 #define STARTF_USEHOTKEY 0x00000200
 #define STARTF_TITLEISLINKNAME 0x00000800
 #define STARTF_TITLEISAPPID 0x00001000
 #define STARTF_PREVENTPINNING 0x00002000
+#endif
+#if WINVER >= 0x0600
+#define STARTF_UNTRUSTEDSOURCE 0x00008000
+#endif
 
 #if _WIN32_WINNT >= 0x0600
   typedef struct _STARTUPINFOEXA {
@@ -1569,6 +1597,14 @@ extern "C" {
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
   typedef enum _PROCESS_INFORMATION_CLASS {
     ProcessMemoryPriority,
+    ProcessMemoryExhaustionInfo,
+    ProcessAppMemoryInfo,
+    ProcessInPrivateInfo,
+    ProcessPowerThrottling,
+    ProcessReservedValue1,
+    ProcessTelemetryCoverageInfo,
+    ProcessProtectionLevelInfo,
+    ProcessLeapSecondInfo,
     ProcessInformationClassMax
   } PROCESS_INFORMATION_CLASS;
 #endif
@@ -1579,6 +1615,20 @@ extern "C" {
   WINBASEAPI WINBOOL WINAPI SetProcessInformation (HANDLE hProcess, PROCESS_INFORMATION_CLASS ProcessInformationClass, LPVOID ProcessInformation, DWORD ProcessInformationSize);
 #endif
 
+#if _WIN32_WINNT >= 0x0600
+#define PROTECTION_LEVEL_WINTCB_LIGHT 0x00000000
+#define PROTECTION_LEVEL_WINDOWS 0x00000001
+#define PROTECTION_LEVEL_WINDOWS_LIGHT 0x00000002
+#define PROTECTION_LEVEL_ANTIMALWARE_LIGHT 0x00000003
+#define PROTECTION_LEVEL_LSA_LIGHT 0x00000004
+#define PROTECTION_LEVEL_WINTCB 0x00000005
+#define PROTECTION_LEVEL_CODEGEN_LIGHT 0x00000006
+#define PROTECTION_LEVEL_AUTHENTICODE 0x00000007
+#define PROTECTION_LEVEL_PPL_APP 0x00000008
+#define PROTECTION_LEVEL_SAME 0xffffffff
+#define PROTECTION_LEVEL_NONE 0xfffffffe
+#endif
+
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
 #if _WIN32_WINNT >= 0x0600
 
@@ -1598,33 +1648,38 @@ extern "C" {
   typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
     ProcThreadAttributeParentProcess = 0,
     ProcThreadAttributeHandleList = 2
-#if _WIN32_WINNT >= 0x0601
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
     ,ProcThreadAttributeGroupAffinity = 3,
     ProcThreadAttributePreferredNode = 4,
     ProcThreadAttributeIdealProcessor = 5,
     ProcThreadAttributeUmsThread = 6,
     ProcThreadAttributeMitigationPolicy = 7
 #endif
-#if _WIN32_WINNT >= 0x0602
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
     ,ProcThreadAttributeSecurityCapabilities = 9
 #endif
     ,ProcThreadAttributeProtectionLevel = 11
-#if _WIN32_WINNT >= 0x0603
+#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE
 #endif
-#if _WIN32_WINNT >= 0x0A00
+#if _WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD
     ,ProcThreadAttributeJobList = 13
     ,ProcThreadAttributeChildProcessPolicy = 14
     ,ProcThreadAttributeAllApplicationPackagesPolicy = 15
     ,ProcThreadAttributeWin32kFilter = 16
 #endif
-#if NTDDI_VERSION >= 0x0A000002
+#if NTDDI_VERSION >= NTDDI_WIN10_RS1
     ,ProcThreadAttributeSafeOpenPromptOriginClaim = 17
 #endif
-#if NTDDI_VERSION >= 0x0A000003
+#if NTDDI_VERSION >= NTDDI_WIN10_RS2
     ,ProcThreadAttributeDesktopAppPolicy = 18
 #endif
-#if NTDDI_VERSION >= 0x0A000006
+#if NTDDI_VERSION >= NTDDI_WIN10_RS5
     ,ProcThreadAttributePseudoConsole = 22
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_19H1
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_MN
+    ,ProcThreadAttributeMitigationAuditPolicy = 24
 #endif
   } PROC_THREAD_ATTRIBUTE_NUM;
 #endif
@@ -1635,7 +1690,7 @@ extern "C" {
 #define PROC_THREAD_ATTRIBUTE_HANDLE_LIST ProcThreadAttributeValue (ProcThreadAttributeHandleList, FALSE, TRUE, FALSE)
 #endif
 
-#if _WIN32_WINNT >= 0x0601
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
 #define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY ProcThreadAttributeValue (ProcThreadAttributeGroupAffinity, TRUE, TRUE, FALSE)
 #define PROC_THREAD_ATTRIBUTE_PREFERRED_NODE ProcThreadAttributeValue (ProcThreadAttributePreferredNode, FALSE, TRUE, FALSE)
 #define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR ProcThreadAttributeValue (ProcThreadAttributeIdealProcessor, TRUE, TRUE, FALSE)
@@ -1643,26 +1698,26 @@ extern "C" {
 #define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY ProcThreadAttributeValue (ProcThreadAttributeMitigationPolicy, FALSE, TRUE, FALSE)
 #endif
 
-#if _WIN32_WINNT >= 0x0602
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
 #define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES ProcThreadAttributeValue (ProcThreadAttributeSecurityCapabilities, FALSE, TRUE, FALSE)
 #endif
 
 #define PROC_THREAD_ATTRIBUTE_PROTECTION_LEVEL ProcThreadAttributeValue (ProcThreadAttributeProtectionLevel, FALSE, TRUE, FALSE)
 
-#if _WIN32_WINNT >= 0x0603
+#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE
 #endif
 
-#if NTDDI_VERSION >= 0x0A000006
+#if NTDDI_VERSION >= NTDDI_WIN10_RS5
 #define PROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE ProcThreadAttributeValue (ProcThreadAttributePseudoConsole, FALSE, TRUE, FALSE)
 #endif
 
-#if _WIN32_WINNT >= 0x0601
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
 #define PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE 0x01
 #define PROCESS_CREATION_MITIGATION_POLICY_DEP_ATL_THUNK_ENABLE 0x02
 #define PROCESS_CREATION_MITIGATION_POLICY_SEHOP_ENABLE 0x04
 #endif
 
-#if _WIN32_WINNT >= 0x0602
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
 #define PROC_THREAD_ATTRIBUTE_SECURITY_CAPABILITIES ProcThreadAttributeValue (ProcThreadAttributeSecurityCapabilities, FALSE, TRUE, FALSE)
 
 #define PROCESS_CREATION_MITIGATION_POLICY_FORCE_RELOCATE_IMAGES_MASK (0x00000003 << 8)
@@ -1707,6 +1762,8 @@ extern "C" {
 #define PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_ALWAYS_OFF (0x00000002ULL << 32)
 #define PROCESS_CREATION_MITIGATION_POLICY_EXTENSION_POINT_DISABLE_RESERVED (0x00000003ULL << 32)
 
+#if _WIN32_WINNT >= _WIN32_WINNT_WINBLUE
+
 #define PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_MASK (0x0003ULL << 36)
 #define PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_DEFER (0x0000ULL << 36)
 #define PROCESS_CREATION_MITIGATION_POLICY_PROHIBIT_DYNAMIC_CODE_ALWAYS_ON (0x0001ULL << 36)
@@ -1725,6 +1782,8 @@ extern "C" {
 #define PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_OFF (0x0002ULL << 44)
 #define PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALLOW_STORE (0x0003ULL << 44)
 
+#if _WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD
+
 #define PROCESS_CREATION_MITIGATION_POLICY_FONT_DISABLE_MASK (0x0003ULL << 48)
 #define PROCESS_CREATION_MITIGATION_POLICY_FONT_DISABLE_DEFER (0x0000ULL << 48)
 #define PROCESS_CREATION_MITIGATION_POLICY_FONT_DISABLE_ALWAYS_ON (0x0001ULL << 48)
@@ -1767,8 +1826,103 @@ extern "C" {
 #define PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_ALWAYS_OFF (0x0002ULL << 12)
 #define PROCESS_CREATION_MITIGATION_POLICY2_MODULE_TAMPERING_PROTECTION_NOINHERIT (0x0003ULL << 12)
 
+#define PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_MASK (0x00000003ULL << 16)
+#define PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_DEFER (0x00000000ULL << 16)
+#define PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_ALWAYS_ON (0x00000001ULL << 16)
+#define PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_ALWAYS_OFF (0x00000002ULL << 16)
+#define PROCESS_CREATION_MITIGATION_POLICY2_RESTRICT_INDIRECT_BRANCH_PREDICTION_RESERVED (0x00000003ULL << 16)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_MASK (0x00000003ULL << 20)
+#define PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_DEFER (0x00000000ULL << 20)
+#define PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_ALWAYS_ON (0x00000001ULL << 20)
+#define PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_ALWAYS_OFF (0x00000002ULL << 20)
+#define PROCESS_CREATION_MITIGATION_POLICY2_ALLOW_DOWNGRADE_DYNAMIC_CODE_POLICY_RESERVED (0x00000003ULL << 20)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_MASK (0x00000003ULL << 24)
+#define PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_DEFER (0x00000000ULL << 24)
+#define PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_ALWAYS_ON (0x00000001ULL << 24)
+#define PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_ALWAYS_OFF (0x00000002ULL << 24)
+#define PROCESS_CREATION_MITIGATION_POLICY2_SPECULATIVE_STORE_BYPASS_DISABLE_RESERVED (0x00000003ULL << 24)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_MASK (0x00000003ULL << 28)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_DEFER (0x00000000ULL << 28)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_ALWAYS_ON (0x00000001ULL << 28)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_ALWAYS_OFF (0x00000002ULL << 28)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_USER_SHADOW_STACKS_STRICT_MODE (0x00000003ULL << 28)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_MASK (0x00000003ULL << 32)
+#define PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_DEFER (0x00000000ULL << 32)
+#define PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_ON (0x00000001ULL << 32)
+#define PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_OFF (0x00000002ULL << 32)
+#define PROCESS_CREATION_MITIGATION_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_RELAXED_MODE (0x00000003ULL << 32)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_MASK (0x00000003ULL << 36)
+#define PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_DEFER (0x00000000ULL << 36)
+#define PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_ALWAYS_ON (0x00000001ULL << 36)
+#define PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_ALWAYS_OFF (0x00000002ULL << 36)
+#define PROCESS_CREATION_MITIGATION_POLICY2_BLOCK_NON_CET_BINARIES_NON_EHCONT (0x00000003ULL << 36)
+
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_MASK (0x00000003ULL << 48)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_DEFER (0x00000000ULL << 48)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_ALWAYS_ON (0x00000001ULL << 48)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_ALWAYS_OFF (0x00000002ULL << 48)
+#define PROCESS_CREATION_MITIGATION_POLICY2_CET_DYNAMIC_APIS_OUT_OF_PROC_ONLY_RESERVED (0x00000003ULL << 48)
+
+#endif /* _WIN32_WINNT_WINTHRESHOLD */
+#endif /* _WIN32_WINNT_WINBLUE */
+#endif /* _WIN32_WINNT_WIN8 */
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD
+#define PROC_THREAD_ATTRIBUTE_JOB_LIST ProcThreadAttributeValue (ProcThreadAttributeJobList, FALSE, TRUE, FALSE)
+
+#define PROCESS_CREATION_CHILD_PROCESS_RESTRICTED 0x01
+#define PROCESS_CREATION_CHILD_PROCESS_OVERRIDE 0x02
+#define PROCESS_CREATION_CHILD_PROCESS_RESTRICTED_UNLESS_SECURE 0x04
+
+#define PROC_THREAD_ATTRIBUTE_CHILD_PROCESS_POLICY ProcThreadAttributeValue (ProcThreadAttributeChildProcessPolicy, FALSE, TRUE, FALSE)
+
+#define PROCESS_CREATION_ALL_APPLICATION_PACKAGES_OPT_OUT 0x01
+
+#define PROC_THREAD_ATTRIBUTE_ALL_APPLICATION_PACKAGES_POLICY ProcThreadAttributeValue (ProcThreadAttributeAllApplicationPackagesPolicy, FALSE, TRUE, FALSE)
+#define PROC_THREAD_ATTRIBUTE_WIN32K_FILTER ProcThreadAttributeValue (ProcThreadAttributeWin32kFilter, FALSE, TRUE, FALSE)
+#endif /* _WIN32_WINNT_WINTHRESHOLD */
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS1
+#endif
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS2
+#define PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_ENABLE_PROCESS_TREE 0x01
+#define PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_DISABLE_PROCESS_TREE 0x02
+#define PROCESS_CREATION_DESKTOP_APP_BREAKAWAY_OVERRIDE 0x04
+
+#define PROC_THREAD_ATTRIBUTE_DESKTOP_APP_POLICY ProcThreadAttributeValue (ProcThreadAttributeDesktopAppPolicy, FALSE, TRUE, FALSE)
+#endif /* NTDDI_WIN10_RS2 */
+
+#if NTDDI_VERSION >= NTDDI_WIN10_RS5
 #endif
 
+#if (NTDDI_VERSION >= NTDDI_WIN10_MN)
+#define PROC_THREAD_ATTRIBUTE_MITIGATION_AUDIT_POLICY ProcThreadAttributeValue (ProcThreadAttributeMitigationAuditPolicy, FALSE, TRUE, FALSE)
+
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_CET_USER_SHADOW_STACKS_MASK (0x00000003ULL << 28)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_CET_USER_SHADOW_STACKS_DEFER (0x00000000ULL << 28)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_CET_USER_SHADOW_STACKS_ALWAYS_ON (0x00000001ULL << 28)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_CET_USER_SHADOW_STACKS_ALWAYS_OFF (0x00000002ULL << 28)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_CET_USER_SHADOW_STACKS_RESERVED (0x00000003ULL << 28)
+
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_MASK (0x00000003ULL << 32)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_DEFER (0x00000000ULL << 32)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_ON (0x00000001ULL << 32)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_ALWAYS_OFF (0x00000002ULL << 32)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_USER_CET_SET_CONTEXT_IP_VALIDATION_RESERVED (0x00000003ULL << 32)
+
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_BLOCK_NON_CET_BINARIES_MASK (0x00000003ULL << 36)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_BLOCK_NON_CET_BINARIES_DEFER (0x00000000ULL << 36)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_BLOCK_NON_CET_BINARIES_ALWAYS_ON (0x00000001ULL << 36)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_BLOCK_NON_CET_BINARIES_ALWAYS_OFF (0x00000002ULL << 36)
+#define PROCESS_CREATION_MITIGATION_AUDIT_POLICY2_BLOCK_NON_CET_BINARIES_RESERVED (0x00000003ULL << 36)
+#endif /* NTDDI_WIN10_MN */
+
 #define ATOM_FLAG_GLOBAL 0x2
 
   WINBASEAPI WINBOOL WINAPI GetProcessShutdownParameters (LPDWORD lpdwLevel, LPDWORD lpdwFlags);
@@ -2566,6 +2720,8 @@ extern "C" {
 
 #define BATTERY_PERCENTAGE_UNKNOWN 0xff
 
+#define SYSTEM_STATUS_FLAG_POWER_SAVING_ON 0x01
+
 #define BATTERY_LIFE_UNKNOWN 0xffffffff
 
   typedef struct _SYSTEM_POWER_STATUS {
@@ -2762,7 +2918,13 @@ extern "C" {
 
   typedef WINBOOL (WINAPI *PQUERYACTCTXW_FUNC) (DWORD dwFlags, HANDLE hActCtx, PVOID pvSubInstance, ULONG ulInfoClass, PVOID pvBuffer, SIZE_T cbBuffer, SIZE_T *pcbWrittenOrRequired);
 
+#if _WIN32_WINNT >= 0x0501
   WINBASEAPI DWORD WINAPI WTSGetActiveConsoleSessionId (VOID);
+#endif
+#if _WIN32_WINNT >= _WIN32_WINNT_WINTHRESHOLD
+  WINBASEAPI DWORD WINAPI WTSGetServiceSessionId (VOID);
+  WINBASEAPI BOOLEAN WINAPI WTSIsServerContainer (VOID);
+#endif
   WINBASEAPI WINBOOL WINAPI GetNumaProcessorNode (UCHAR Processor, PUCHAR NodeNumber);
   WINBASEAPI WINBOOL WINAPI GetNumaNodeProcessorMask (UCHAR Node, PULONGLONG ProcessorMask);
   WINBASEAPI WINBOOL WINAPI GetNumaAvailableMemoryNode (UCHAR Node, PULONGLONG AvailableBytes);
@@ -2835,8 +2997,28 @@ extern "C" {
     WCHAR FileName[1];
   } FILE_NAME_INFO,*PFILE_NAME_INFO;
 
+  typedef struct _FILE_CASE_SENSITIVE_INFO {
+    ULONG Flags;
+  } FILE_CASE_SENSITIVE_INFO,*PFILE_CASE_SENSITIVE_INFO;
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS1
+#define FILE_RENAME_FLAG_REPLACE_IF_EXISTS 0x00000001
+#define FILE_RENAME_FLAG_POSIX_SEMANTICS 0x00000002
+#endif
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS3
+#define FILE_RENAME_FLAG_SUPPRESS_PIN_STATE_INHERITANCE 0x00000004
+#endif
+
   typedef struct _FILE_RENAME_INFO {
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS1
+    __C89_NAMELESS union {
+        BOOLEAN ReplaceIfExists;
+        DWORD Flags;
+    };
+#else
     BOOLEAN ReplaceIfExists;
+#endif
     HANDLE RootDirectory;
     DWORD FileNameLength;
     WCHAR FileName[1];
@@ -2876,6 +3058,21 @@ extern "C" {
     BOOLEAN DeleteFile;
   } FILE_DISPOSITION_INFO,*PFILE_DISPOSITION_INFO;
 
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS1
+#define FILE_DISPOSITION_FLAG_DO_NOT_DELETE 0x00000000
+#define FILE_DISPOSITION_FLAG_DELETE 0x00000001
+#define FILE_DISPOSITION_FLAG_POSIX_SEMANTICS 0x00000002
+#define FILE_DISPOSITION_FLAG_FORCE_IMAGE_SECTION_CHECK 0x00000004
+#define FILE_DISPOSITION_FLAG_ON_CLOSE 0x00000008
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN10_RS5
+#define FILE_DISPOSITION_FLAG_IGNORE_READONLY_ATTRIBUTE 0x00000010
+#endif
+
+  typedef struct _FILE_DISPOSITION_INFO_EX {
+    DWORD Flags;
+  } FILE_DISPOSITION_INFO_EX,*PFILE_DISPOSITION_INFO_EX;
+#endif
+
   typedef struct _FILE_ID_BOTH_DIR_INFO {
     DWORD NextEntryOffset;
     DWORD FileIndex;
@@ -2919,7 +3116,8 @@ extern "C" {
   typedef struct _FILE_IO_PRIORITY_HINT_INFO {
     PRIORITY_HINT PriorityHint;
   } FILE_IO_PRIORITY_HINT_INFO,*PFILE_IO_PRIORITY_HINT_INFO;
-#if _WIN32_WINNT >= 0x0602
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
   typedef struct _FILE_ALIGNMENT_INFO {
     ULONG AlignmentRequirement;
   } FILE_ALIGNMENT_INFO,*PFILE_ALIGNMENT_INFO;
@@ -2965,7 +3163,7 @@ extern "C" {
 #define REMOTE_PROTOCOL_INFO_FLAG_LOOPBACK 0x00000001
 #define REMOTE_PROTOCOL_INFO_FLAG_OFFLINE 0x00000002
 
-#if _WIN32_WINNT >= 0x0602
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
 #define REMOTE_PROTOCOL_INFO_FLAG_PERSISTENT_HANDLE 0x00000004
 
 #define RPI_FLAG_SMB2_SHARECAP_TIMEWARP 0x00000002
@@ -2994,7 +3192,7 @@ extern "C" {
     struct {
       ULONG Reserved[8];
     } GenericReserved;
-#if _WIN32_WINNT < 0x0602
+#if _WIN32_WINNT < _WIN32_WINNT_WIN8
     struct {
       ULONG Reserved[16];
     } ProtocolSpecificReserved;
@@ -3031,7 +3229,7 @@ extern "C" {
     __C89_NAMELESS union {
       LARGE_INTEGER FileId;
       GUID ObjectId;
-#if _WIN32_WINNT >= 0x0602
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN8
       FILE_ID_128 ExtendedFileId;
 #endif
     } DUMMYUNIONNAME;
@@ -3071,6 +3269,9 @@ extern "C" {
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
   WINBASEAPI WINBOOL WINAPI InitializeContext (PVOID Buffer, DWORD ContextFlags, PCONTEXT *Context, PDWORD ContextLength);
+#if NTDDI_VERSION >= NTDDI_WIN10_RS5
+  WINBASEAPI WINBOOL WINAPI InitializeContext2 (PVOID Buffer, DWORD ContextFlags, PCONTEXT *Context, PDWORD ContextLength, ULONG64 XStateCompactionMask);
+#endif
 #if defined (__x86_64__) || defined (__i386__)
   WINBASEAPI DWORD64 WINAPI GetEnabledXStateFeatures (VOID);
   WINBASEAPI WINBOOL WINAPI GetXStateFeaturesMask (PCONTEXT Context, PDWORD64 FeatureMask);
@@ -3091,11 +3292,50 @@ extern "C" {
 #endif
 #endif
 
-#ifdef __cplusplus
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+#if _WIN32_WINNT >= 0x0600
+#if !defined(__WIDL__)
+
+FORCEINLINE VOID InitializeThreadpoolEnvironment(PTP_CALLBACK_ENVIRON cbe) {
+  TpInitializeCallbackEnviron(cbe);
+}
+
+FORCEINLINE VOID SetThreadpoolCallbackPool(PTP_CALLBACK_ENVIRON cbe, PTP_POOL pool) {
+  TpSetCallbackThreadpool(cbe, pool);
+}
+
+FORCEINLINE VOID SetThreadpoolCallbackCleanupGroup(PTP_CALLBACK_ENVIRON cbe, PTP_CLEANUP_GROUP cleanup_group, PTP_CLEANUP_GROUP_CANCEL_CALLBACK cleanup_group_cb) {
+  TpSetCallbackCleanupGroup(cbe, cleanup_group, cleanup_group_cb);
+}
+
+FORCEINLINE VOID SetThreadpoolCallbackRunsLong(PTP_CALLBACK_ENVIRON cbe) {
+  TpSetCallbackLongFunction(cbe);
+}
+
+FORCEINLINE VOID SetThreadpoolCallbackLibrary(PTP_CALLBACK_ENVIRON cbe, PVOID h) {
+  TpSetCallbackRaceWithDll(cbe, h);
+}
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WIN7
+FORCEINLINE VOID SetThreadpoolCallbackPriority(PTP_CALLBACK_ENVIRON cbe, TP_CALLBACK_PRIORITY prio) {
+  TpSetCallbackPriority(cbe, prio);
 }
 #endif
+
+FORCEINLINE VOID DestroyThreadpoolEnvironment(PTP_CALLBACK_ENVIRON cbe) {
+  TpDestroyCallbackEnviron(cbe);
+}
+
+#endif /* !__WIDL__ */
+#endif /* _WIN32_WINNT >= 0x0600 */
+#endif /* WINAPI_PARTITION_APP */
+
+#ifdef __cplusplus
+}
 #endif
 
+#endif /* _WINBASE_ */
+
 #if !defined (RC_INVOKED) && !defined (NOWINBASEINTERLOCK) && !defined (_NTOS_) && !defined (MICROSOFT_WINDOWS_WINBASE_INTERLOCKED_CPLUSPLUS_H_INCLUDED)
 #define MICROSOFT_WINDOWS_WINBASE_INTERLOCKED_CPLUSPLUS_H_INCLUDED
 #if !defined (__WIDL__)
lib/libc/include/any-windows-any/wincodec.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/wincodec.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wincodec.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -258,6 +258,14 @@ interface IWICDdsDecoder;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IWICDdsEncoder_FWD_DEFINED__
+#define __IWICDdsEncoder_FWD_DEFINED__
+typedef interface IWICDdsEncoder IWICDdsEncoder;
+#ifdef __cplusplus
+interface IWICDdsEncoder;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IWICDdsFrameDecode_FWD_DEFINED__
 #define __IWICDdsFrameDecode_FWD_DEFINED__
 typedef interface IWICDdsFrameDecode IWICDdsFrameDecode;
@@ -5987,6 +5995,111 @@ static FORCEINLINE HRESULT IWICDdsDecoder_GetFrame(IWICDdsDecoder* This,UINT arr
 
 #endif  /* __IWICDdsDecoder_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IWICDdsEncoder interface
+ */
+#ifndef __IWICDdsEncoder_INTERFACE_DEFINED__
+#define __IWICDdsEncoder_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWICDdsEncoder, 0x5cacdb4c, 0x407e, 0x41b3, 0xb9,0x36, 0xd0,0xf0,0x10,0xcd,0x67,0x32);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5cacdb4c-407e-41b3-b936-d0f010cd6732")
+IWICDdsEncoder : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetParameters(
+        WICDdsParameters *parameters) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetParameters(
+        WICDdsParameters *parameters) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateNewFrame(
+        IWICBitmapFrameEncode **frameEncode,
+        UINT *arrayIndex,
+        UINT *mipLevel,
+        UINT *sliceIndex) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWICDdsEncoder, 0x5cacdb4c, 0x407e, 0x41b3, 0xb9,0x36, 0xd0,0xf0,0x10,0xcd,0x67,0x32)
+#endif
+#else
+typedef struct IWICDdsEncoderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWICDdsEncoder *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWICDdsEncoder *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWICDdsEncoder *This);
+
+    /*** IWICDdsEncoder methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetParameters)(
+        IWICDdsEncoder *This,
+        WICDdsParameters *parameters);
+
+    HRESULT (STDMETHODCALLTYPE *GetParameters)(
+        IWICDdsEncoder *This,
+        WICDdsParameters *parameters);
+
+    HRESULT (STDMETHODCALLTYPE *CreateNewFrame)(
+        IWICDdsEncoder *This,
+        IWICBitmapFrameEncode **frameEncode,
+        UINT *arrayIndex,
+        UINT *mipLevel,
+        UINT *sliceIndex);
+
+    END_INTERFACE
+} IWICDdsEncoderVtbl;
+
+interface IWICDdsEncoder {
+    CONST_VTBL IWICDdsEncoderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWICDdsEncoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWICDdsEncoder_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWICDdsEncoder_Release(This) (This)->lpVtbl->Release(This)
+/*** IWICDdsEncoder methods ***/
+#define IWICDdsEncoder_SetParameters(This,parameters) (This)->lpVtbl->SetParameters(This,parameters)
+#define IWICDdsEncoder_GetParameters(This,parameters) (This)->lpVtbl->GetParameters(This,parameters)
+#define IWICDdsEncoder_CreateNewFrame(This,frameEncode,arrayIndex,mipLevel,sliceIndex) (This)->lpVtbl->CreateNewFrame(This,frameEncode,arrayIndex,mipLevel,sliceIndex)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWICDdsEncoder_QueryInterface(IWICDdsEncoder* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWICDdsEncoder_AddRef(IWICDdsEncoder* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWICDdsEncoder_Release(IWICDdsEncoder* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWICDdsEncoder methods ***/
+static FORCEINLINE HRESULT IWICDdsEncoder_SetParameters(IWICDdsEncoder* This,WICDdsParameters *parameters) {
+    return This->lpVtbl->SetParameters(This,parameters);
+}
+static FORCEINLINE HRESULT IWICDdsEncoder_GetParameters(IWICDdsEncoder* This,WICDdsParameters *parameters) {
+    return This->lpVtbl->GetParameters(This,parameters);
+}
+static FORCEINLINE HRESULT IWICDdsEncoder_CreateNewFrame(IWICDdsEncoder* This,IWICBitmapFrameEncode **frameEncode,UINT *arrayIndex,UINT *mipLevel,UINT *sliceIndex) {
+    return This->lpVtbl->CreateNewFrame(This,frameEncode,arrayIndex,mipLevel,sliceIndex);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWICDdsEncoder_INTERFACE_DEFINED__ */
+
 /*****************************************************************************
  * IWICDdsFrameDecode interface
  */
lib/libc/include/any-windows-any/wincodecsdk.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/wincodecsdk.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wincodecsdk.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/windows.foundation.collections.h
@@ -0,0 +1,319 @@
+/*** Autogenerated by WIDL 6.4 from include/windows.foundation.collections.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_foundation_collections_h__
+#define __windows_foundation_collections_h__
+
+/* Forward declarations */
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class T>
+            struct IEventHandler_impl;
+
+            template <class T>
+            struct IEventHandler : IEventHandler_impl<T> {};
+        }
+    }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class TResult>
+            struct IAsyncOperationCompletedHandler_impl;
+
+            template <class TResult>
+            struct IAsyncOperationCompletedHandler : IAsyncOperationCompletedHandler_impl<TResult> {};
+        }
+    }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class TResult>
+            struct IAsyncOperation_impl;
+
+            template <class TResult>
+            struct IAsyncOperation : IAsyncOperation_impl<TResult> {};
+        }
+    }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class TSender, class TArgs>
+            struct ITypedEventHandler_impl;
+
+            template <class TSender, class TArgs>
+            struct ITypedEventHandler : ITypedEventHandler_impl<TSender, TArgs> {};
+        }
+    }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template <class T>
+                struct IIterator_impl;
+
+                template <class T>
+                struct IIterator : IIterator_impl<T> {};
+            }
+        }
+    }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template <class T>
+                struct IIterable_impl;
+
+                template <class T>
+                struct IIterable : IIterable_impl<T> {};
+            }
+        }
+    }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template <class T>
+                struct IVectorView_impl;
+
+                template <class T>
+                struct IVectorView : IVectorView_impl<T> {};
+            }
+        }
+    }
+}
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <asyncinfo.h>
+#include <windowscontracts.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI { namespace Windows { namespace Foundation { namespace Internal {
+template <class T> struct GetAbiType { typedef T type; };
+template <class T> struct GetLogicalType { typedef T type; };
+template <class L, class A> struct AggregateType {};
+template <class L, class A> struct GetAbiType<AggregateType<L, A> > { typedef A type; };
+template <class L, class A> struct GetLogicalType<AggregateType<L, A> > { typedef L type; };
+}}}}
+extern "C" {
+#endif
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class T>
+            struct IEventHandler_impl : IUnknown
+            {
+            private:
+                typedef typename Windows::Foundation::Internal::GetAbiType<T>::type     T_abi;
+                typedef typename Windows::Foundation::Internal::GetLogicalType<T>::type T_logical;
+            public:
+                typedef T T_complex;
+                virtual HRESULT STDMETHODCALLTYPE Invoke(IInspectable *sender,T_abi args) = 0;
+            };
+        }
+    }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class TResult>
+            struct IAsyncOperationCompletedHandler_impl : IUnknown
+            {
+            private:
+                typedef typename Windows::Foundation::Internal::GetAbiType<TResult>::type     TResult_abi;
+                typedef typename Windows::Foundation::Internal::GetLogicalType<TResult>::type TResult_logical;
+            public:
+                typedef TResult TResult_complex;
+                virtual HRESULT STDMETHODCALLTYPE Invoke(IAsyncOperation<TResult_logical> *info,AsyncStatus status) = 0;
+            };
+        }
+    }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class TResult>
+            struct IAsyncOperation_impl : IInspectable
+            {
+            private:
+                typedef typename Windows::Foundation::Internal::GetAbiType<TResult>::type     TResult_abi;
+                typedef typename Windows::Foundation::Internal::GetLogicalType<TResult>::type TResult_logical;
+            public:
+                typedef TResult TResult_complex;
+                virtual HRESULT STDMETHODCALLTYPE put_Completed(IAsyncOperationCompletedHandler<TResult_logical> *handler) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_Completed(IAsyncOperationCompletedHandler<TResult_logical> **handler) = 0;
+                virtual HRESULT STDMETHODCALLTYPE GetResults(TResult_abi **results) = 0;
+            };
+        }
+    }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class TSender, class TArgs>
+            struct ITypedEventHandler_impl : IUnknown
+            {
+            private:
+                typedef typename Windows::Foundation::Internal::GetAbiType<TSender>::type     TSender_abi;
+                typedef typename Windows::Foundation::Internal::GetLogicalType<TSender>::type TSender_logical;
+                typedef typename Windows::Foundation::Internal::GetAbiType<TArgs>::type     TArgs_abi;
+                typedef typename Windows::Foundation::Internal::GetLogicalType<TArgs>::type TArgs_logical;
+            public:
+                typedef TSender TSender_complex;
+                typedef TArgs TArgs_complex;
+                virtual HRESULT STDMETHODCALLTYPE Invoke(TSender_abi sender,TArgs_abi args) = 0;
+            };
+        }
+    }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template <class T>
+                struct IIterator_impl : IInspectable
+                {
+                private:
+                    typedef typename Windows::Foundation::Internal::GetAbiType<T>::type     T_abi;
+                    typedef typename Windows::Foundation::Internal::GetLogicalType<T>::type T_logical;
+                public:
+                    typedef T T_complex;
+                    virtual HRESULT STDMETHODCALLTYPE get_Current(T_abi *value) = 0;
+                    virtual HRESULT STDMETHODCALLTYPE get_HasCurrent(WINBOOL *value) = 0;
+                    virtual HRESULT STDMETHODCALLTYPE MoveNext(WINBOOL *value) = 0;
+                    virtual HRESULT STDMETHODCALLTYPE GetMany(UINT32 count,UINT32 items_size,T_abi *items,UINT32 *value) = 0;
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template <class T>
+                struct IIterable_impl : IInspectable
+                {
+                private:
+                    typedef typename Windows::Foundation::Internal::GetAbiType<T>::type     T_abi;
+                    typedef typename Windows::Foundation::Internal::GetLogicalType<T>::type T_logical;
+                public:
+                    typedef T T_complex;
+                    virtual HRESULT STDMETHODCALLTYPE First(IIterator<T_logical> **value) = 0;
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template <class T>
+                struct IVectorView_impl : IInspectable
+                {
+                private:
+                    typedef typename Windows::Foundation::Internal::GetAbiType<T>::type     T_abi;
+                    typedef typename Windows::Foundation::Internal::GetLogicalType<T>::type T_logical;
+                public:
+                    typedef T T_complex;
+                    virtual HRESULT STDMETHODCALLTYPE GetAt(UINT32 index,T_abi *value) = 0;
+                    virtual HRESULT STDMETHODCALLTYPE get_Size(UINT32 *value) = 0;
+                    virtual HRESULT STDMETHODCALLTYPE IndexOf(T_abi element,UINT32 *index,BOOLEAN *value) = 0;
+                    virtual HRESULT STDMETHODCALLTYPE GetMany(UINT32 start_index,UINT32 items_size,T_abi *items,UINT32 *value) = 0;
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#endif
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_foundation_collections_h__ */
lib/libc/include/any-windows-any/windows.foundation.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.5.31 from include/windows.foundation.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/windows.foundation.idl - Do not edit ***/
 
+#ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
-
 #include <rpc.h>
 #include <rpcndr.h>
+#endif
 
 #ifndef COM_NO_WINDOWS_H
 #include <windows.h>
@@ -17,695 +18,821 @@
 
 /* Forward declarations */
 
-#ifndef __IAsyncInfo_FWD_DEFINED__
-#define __IAsyncInfo_FWD_DEFINED__
-typedef interface IAsyncInfo IAsyncInfo;
+#ifndef ____x_ABI_CWindows_CFoundation_CIStringable_FWD_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CIStringable_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CFoundation_CIStringable __x_ABI_CWindows_CFoundation_CIStringable;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CFoundation_CIStringable ABI::Windows::Foundation::IStringable
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            interface IStringable;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IASyncAction_FWD_DEFINED__
-#define __IASyncAction_FWD_DEFINED__
-typedef interface IASyncAction IASyncAction;
+#ifndef ____FIAsyncOperationCompletedHandler_1_boolean_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_boolean_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_boolean __FIAsyncOperationCompletedHandler_1_boolean;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_boolean ABI::Windows::Foundation::IAsyncOperationCompletedHandler<boolean >
+#endif /* __cplusplus */
 #endif
 
-#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
-#define __AsyncActionCompletedHandler_FWD_DEFINED__
-typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
+#ifndef ____FIAsyncOperation_1_boolean_FWD_DEFINED__
+#define ____FIAsyncOperation_1_boolean_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_boolean __FIAsyncOperation_1_boolean;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_boolean ABI::Windows::Foundation::IAsyncOperation<boolean >
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IAsyncOperation_FWD_DEFINED__
-#define __IAsyncOperation_FWD_DEFINED__
-typedef interface IAsyncOperation IAsyncOperation;
+#ifndef ____FIVectorView_1_HSTRING_FWD_DEFINED__
+#define ____FIVectorView_1_HSTRING_FWD_DEFINED__
+typedef interface __FIVectorView_1_HSTRING __FIVectorView_1_HSTRING;
+#ifdef __cplusplus
+#define __FIVectorView_1_HSTRING ABI::Windows::Foundation::Collections::IVectorView<HSTRING >
+#endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
 
 #include <inspectable.h>
+#include <asyncinfo.h>
+#include <windowscontracts.h>
+#include <windows.foundation.collections.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifndef __IAsyncInfo_FWD_DEFINED__
-#define __IAsyncInfo_FWD_DEFINED__
-typedef interface IAsyncInfo IAsyncInfo;
-#endif
-
-#ifndef __IAsyncAction_FWD_DEFINED__
-#define __IAsyncAction_FWD_DEFINED__
-typedef interface IAsyncAction IAsyncAction;
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            enum PropertyType {
+                PropertyType_Empty = 0,
+                PropertyType_UInt8 = 1,
+                PropertyType_Int16 = 2,
+                PropertyType_UInt16 = 3,
+                PropertyType_Int32 = 4,
+                PropertyType_UInt32 = 5,
+                PropertyType_Int64 = 6,
+                PropertyType_UInt64 = 7,
+                PropertyType_Single = 8,
+                PropertyType_Double = 9,
+                PropertyType_Char16 = 10,
+                PropertyType_Boolean = 11,
+                PropertyType_String = 12,
+                PropertyType_Inspectable = 13,
+                PropertyType_DateTime = 14,
+                PropertyType_TimeSpan = 15,
+                PropertyType_Guid = 16,
+                PropertyType_Point = 17,
+                PropertyType_Size = 18,
+                PropertyType_Rect = 19,
+                PropertyType_OtherType = 20,
+                PropertyType_UInt8Array = 1025,
+                PropertyType_Int16Array = 1026,
+                PropertyType_UInt16Array = 1027,
+                PropertyType_Int32Array = 1028,
+                PropertyType_UInt32Array = 1029,
+                PropertyType_Int64Array = 1030,
+                PropertyType_UInt64Array = 1031,
+                PropertyType_SingleArray = 1032,
+                PropertyType_DoubleArray = 1033,
+                PropertyType_Char16Array = 1034,
+                PropertyType_BooleanArray = 1035,
+                PropertyType_StringArray = 1036,
+                PropertyType_InspectableArray = 1037,
+                PropertyType_DateTimeArray = 1038,
+                PropertyType_TimeSpanArray = 1039,
+                PropertyType_GuidArray = 1040,
+                PropertyType_PointArray = 1041,
+                PropertyType_SizeArray = 1042,
+                PropertyType_RectArray = 1043,
+                PropertyType_OtherTypeArray = 1044
+            };
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CFoundation_CPropertyType {
+    PropertyType_Empty = 0,
+    PropertyType_UInt8 = 1,
+    PropertyType_Int16 = 2,
+    PropertyType_UInt16 = 3,
+    PropertyType_Int32 = 4,
+    PropertyType_UInt32 = 5,
+    PropertyType_Int64 = 6,
+    PropertyType_UInt64 = 7,
+    PropertyType_Single = 8,
+    PropertyType_Double = 9,
+    PropertyType_Char16 = 10,
+    PropertyType_Boolean = 11,
+    PropertyType_String = 12,
+    PropertyType_Inspectable = 13,
+    PropertyType_DateTime = 14,
+    PropertyType_TimeSpan = 15,
+    PropertyType_Guid = 16,
+    PropertyType_Point = 17,
+    PropertyType_Size = 18,
+    PropertyType_Rect = 19,
+    PropertyType_OtherType = 20,
+    PropertyType_UInt8Array = 1025,
+    PropertyType_Int16Array = 1026,
+    PropertyType_UInt16Array = 1027,
+    PropertyType_Int32Array = 1028,
+    PropertyType_UInt32Array = 1029,
+    PropertyType_Int64Array = 1030,
+    PropertyType_UInt64Array = 1031,
+    PropertyType_SingleArray = 1032,
+    PropertyType_DoubleArray = 1033,
+    PropertyType_Char16Array = 1034,
+    PropertyType_BooleanArray = 1035,
+    PropertyType_StringArray = 1036,
+    PropertyType_InspectableArray = 1037,
+    PropertyType_DateTimeArray = 1038,
+    PropertyType_TimeSpanArray = 1039,
+    PropertyType_GuidArray = 1040,
+    PropertyType_PointArray = 1041,
+    PropertyType_SizeArray = 1042,
+    PropertyType_RectArray = 1043,
+    PropertyType_OtherTypeArray = 1044
+};
+#ifdef WIDL_using_Windows_Foundation
+#define PropertyType __x_ABI_CWindows_CFoundation_CPropertyType
+#endif /* WIDL_using_Windows_Foundation */
 #endif
 
-#ifndef __IAsyncOperation_FWD_DEFINED__
-#define __IAsyncOperation_FWD_DEFINED__
-typedef interface IAsyncOperation IAsyncOperation;
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct Point {
+                FLOAT X;
+                FLOAT Y;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CPoint {
+    FLOAT X;
+    FLOAT Y;
+};
+#ifdef WIDL_using_Windows_Foundation
+#define Point __x_ABI_CWindows_CFoundation_CPoint
+#endif /* WIDL_using_Windows_Foundation */
 #endif
 
-#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
-#define __AsyncActionCompletedHandler_FWD_DEFINED__
-typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct Size {
+                FLOAT Width;
+                FLOAT Height;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CSize {
+    FLOAT Width;
+    FLOAT Height;
+};
+#ifdef WIDL_using_Windows_Foundation
+#define Size __x_ABI_CWindows_CFoundation_CSize
+#endif /* WIDL_using_Windows_Foundation */
 #endif
 
-#ifndef __TypedEventHandler_FWD_DEFINED__
-#define __TypedEventHandler_FWD_DEFINED__
-typedef interface TypedEventHandler TypedEventHandler;
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct Rect {
+                FLOAT X;
+                FLOAT Y;
+                FLOAT Width;
+                FLOAT Height;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CRect {
+    FLOAT X;
+    FLOAT Y;
+    FLOAT Width;
+    FLOAT Height;
+};
+#ifdef WIDL_using_Windows_Foundation
+#define Rect __x_ABI_CWindows_CFoundation_CRect
+#endif /* WIDL_using_Windows_Foundation */
 #endif
 
-struct DateTime;
-
-struct EventRegistrationToken;
-
-#ifndef __IVectorView_FWD_DEFINED__
-#define __IVectorView_FWD_DEFINED__
-typedef interface IVectorView IVectorView;
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct DateTime {
+                INT64 UniversalTime;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CDateTime {
+    INT64 UniversalTime;
+};
+#ifdef WIDL_using_Windows_Foundation
+#define DateTime __x_ABI_CWindows_CFoundation_CDateTime
+#endif /* WIDL_using_Windows_Foundation */
 #endif
 
-#ifndef __IPropertySet_FWD_DEFINED__
-#define __IPropertySet_FWD_DEFINED__
-typedef interface IPropertySet IPropertySet;
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct TimeSpan {
+                INT64 Duration;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CTimeSpan {
+    INT64 Duration;
+};
+#ifdef WIDL_using_Windows_Foundation
+#define TimeSpan __x_ABI_CWindows_CFoundation_CTimeSpan
+#endif /* WIDL_using_Windows_Foundation */
 #endif
 
-typedef enum AsyncStatus {
-    Started = 0,
-    Completed = 1,
-    Canceled = 2,
-    Error = 3
-} AsyncStatus;
-typedef struct DateTime {
-    UINT64 UniversalTime;
-} DateTime;
-typedef struct EventRegistrationToken {
-    UINT64 Value;
-} EventRegistrationToken;
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
 /*****************************************************************************
- * IAsyncInfo interface
+ * IStringable interface
  */
-#ifndef __IAsyncInfo_INTERFACE_DEFINED__
-#define __IAsyncInfo_INTERFACE_DEFINED__
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIStringable, 0x96369f54, 0x8eb6, 0x48f0, 0xab,0xce, 0xc1,0xb2,0x11,0xe6,0x27,0xc3);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("00000036-0000-0000-c000-000000000046")
-IAsyncInfo : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE get_Id(
-        unsigned int *id) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Status(
-        AsyncStatus *status) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_ErrorCode(
-        HRESULT *errorCode) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Cancel(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Close(
-        ) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            MIDL_INTERFACE("96369f54-8eb6-48f0-abce-c1b211e627c3")
+            IStringable : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE ToString(
+                    HSTRING *value) = 0;
+
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
+__CRT_UUID_DECL(__x_ABI_CWindows_CFoundation_CIStringable, 0x96369f54, 0x8eb6, 0x48f0, 0xab,0xce, 0xc1,0xb2,0x11,0xe6,0x27,0xc3)
 #endif
 #else
-typedef struct IAsyncInfoVtbl {
+typedef struct __x_ABI_CWindows_CFoundation_CIStringableVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAsyncInfo* This,
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAsyncInfo* This);
+        __x_ABI_CWindows_CFoundation_CIStringable *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAsyncInfo* This);
+        __x_ABI_CWindows_CFoundation_CIStringable *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IAsyncInfo* This,
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IAsyncInfo* This,
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IAsyncInfo* This,
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
         TrustLevel *trustLevel);
 
-    /*** IAsyncInfo methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_Id)(
-        IAsyncInfo* This,
-        unsigned int *id);
-
-    HRESULT (STDMETHODCALLTYPE *get_Status)(
-        IAsyncInfo* This,
-        AsyncStatus *status);
-
-    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-        IAsyncInfo* This,
-        HRESULT *errorCode);
-
-    HRESULT (STDMETHODCALLTYPE *Cancel)(
-        IAsyncInfo* This);
-
-    HRESULT (STDMETHODCALLTYPE *Close)(
-        IAsyncInfo* This);
+    /*** IStringable methods ***/
+    HRESULT (STDMETHODCALLTYPE *ToString)(
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
+        HSTRING *value);
 
     END_INTERFACE
-} IAsyncInfoVtbl;
-interface IAsyncInfo {
-    CONST_VTBL IAsyncInfoVtbl* lpVtbl;
+} __x_ABI_CWindows_CFoundation_CIStringableVtbl;
+
+interface __x_ABI_CWindows_CFoundation_CIStringable {
+    CONST_VTBL __x_ABI_CWindows_CFoundation_CIStringableVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IAsyncInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAsyncInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAsyncInfo_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CFoundation_CIStringable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CFoundation_CIStringable_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CFoundation_CIStringable_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IAsyncInfo_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IAsyncInfo_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IAsyncInfo_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-/*** IAsyncInfo methods ***/
-#define IAsyncInfo_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IAsyncInfo_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
-#define IAsyncInfo_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
-#define IAsyncInfo_Cancel(This) (This)->lpVtbl->Cancel(This)
-#define IAsyncInfo_Close(This) (This)->lpVtbl->Close(This)
+#define __x_ABI_CWindows_CFoundation_CIStringable_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IStringable methods ***/
+#define __x_ABI_CWindows_CFoundation_CIStringable_ToString(This,value) (This)->lpVtbl->ToString(This,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IAsyncInfo_QueryInterface(IAsyncInfo* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_QueryInterface(__x_ABI_CWindows_CFoundation_CIStringable* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IAsyncInfo_AddRef(IAsyncInfo* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIStringable_AddRef(__x_ABI_CWindows_CFoundation_CIStringable* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IAsyncInfo_Release(IAsyncInfo* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIStringable_Release(__x_ABI_CWindows_CFoundation_CIStringable* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IAsyncInfo_GetIids(IAsyncInfo* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetIids(__x_ABI_CWindows_CFoundation_CIStringable* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IAsyncInfo_GetRuntimeClassName(IAsyncInfo* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIStringable* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IAsyncInfo_GetTrustLevel(IAsyncInfo* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIStringable* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
-/*** IAsyncInfo methods ***/
-static FORCEINLINE HRESULT IAsyncInfo_get_Id(IAsyncInfo* This,unsigned int *id) {
-    return This->lpVtbl->get_Id(This,id);
-}
-static FORCEINLINE HRESULT IAsyncInfo_get_Status(IAsyncInfo* This,AsyncStatus *status) {
-    return This->lpVtbl->get_Status(This,status);
-}
-static FORCEINLINE HRESULT IAsyncInfo_get_ErrorCode(IAsyncInfo* This,HRESULT *errorCode) {
-    return This->lpVtbl->get_ErrorCode(This,errorCode);
-}
-static FORCEINLINE HRESULT IAsyncInfo_Cancel(IAsyncInfo* This) {
-    return This->lpVtbl->Cancel(This);
-}
-static FORCEINLINE HRESULT IAsyncInfo_Close(IAsyncInfo* This) {
-    return This->lpVtbl->Close(This);
-}
-#endif
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Id_Proxy(
-    IAsyncInfo* This,
-    unsigned int *id);
-void __RPC_STUB IAsyncInfo_get_Id_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Status_Proxy(
-    IAsyncInfo* This,
-    AsyncStatus *status);
-void __RPC_STUB IAsyncInfo_get_Status_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncInfo_get_ErrorCode_Proxy(
-    IAsyncInfo* This,
-    HRESULT *errorCode);
-void __RPC_STUB IAsyncInfo_get_ErrorCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncInfo_Cancel_Proxy(
-    IAsyncInfo* This);
-void __RPC_STUB IAsyncInfo_Cancel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncInfo_Close_Proxy(
-    IAsyncInfo* This);
-void __RPC_STUB IAsyncInfo_Close_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IAsyncInfo_INTERFACE_DEFINED__ */
+/*** IStringable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_ToString(__x_ABI_CWindows_CFoundation_CIStringable* This,HSTRING *value) {
+    return This->lpVtbl->ToString(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IStringable IID___x_ABI_CWindows_CFoundation_CIStringable
+#define IStringableVtbl __x_ABI_CWindows_CFoundation_CIStringableVtbl
+#define IStringable __x_ABI_CWindows_CFoundation_CIStringable
+#define IStringable_QueryInterface __x_ABI_CWindows_CFoundation_CIStringable_QueryInterface
+#define IStringable_AddRef __x_ABI_CWindows_CFoundation_CIStringable_AddRef
+#define IStringable_Release __x_ABI_CWindows_CFoundation_CIStringable_Release
+#define IStringable_GetIids __x_ABI_CWindows_CFoundation_CIStringable_GetIids
+#define IStringable_GetRuntimeClassName __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName
+#define IStringable_GetTrustLevel __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel
+#define IStringable_ToString __x_ABI_CWindows_CFoundation_CIStringable_ToString
+#endif /* WIDL_using_Windows_Foundation */
+#endif
 
-/*****************************************************************************
- * IASyncAction interface
- */
-#ifndef __IASyncAction_INTERFACE_DEFINED__
-#define __IASyncAction_INTERFACE_DEFINED__
+#endif
 
-DEFINE_GUID(IID_IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("5a648006-843a-4da9-865b-9d26e5dfad7b")
-IASyncAction : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE put_Completed(
-        AsyncActionCompletedHandler *handler) = 0;
+#endif  /* ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+
+#ifndef ____FIAsyncOperation_1_boolean_FWD_DEFINED__
+#define ____FIAsyncOperation_1_boolean_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_boolean __FIAsyncOperation_1_boolean;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_boolean ABI::Windows::Foundation::IAsyncOperation<boolean >
+#endif /* __cplusplus */
+#endif
 
-    virtual HRESULT STDMETHODCALLTYPE get_Completed(
-        AsyncActionCompletedHandler **handler) = 0;
+#ifndef ____FIVectorView_1_HSTRING_FWD_DEFINED__
+#define ____FIVectorView_1_HSTRING_FWD_DEFINED__
+typedef interface __FIVectorView_1_HSTRING __FIVectorView_1_HSTRING;
+#ifdef __cplusplus
+#define __FIVectorView_1_HSTRING ABI::Windows::Foundation::Collections::IVectorView<HSTRING >
+#endif /* __cplusplus */
+#endif
 
-    virtual HRESULT STDMETHODCALLTYPE GetResults(
-        ) = 0;
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<boolean > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_boolean_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_boolean_INTERFACE_DEFINED__
 
-};
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_boolean, 0xc1d3d1a2, 0xae17, 0x5a5f, 0xb5,0xa2, 0xbd,0xcc,0x88,0x44,0x88,0x9a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("c1d3d1a2-ae17-5a5f-b5a2-bdcc8844889a")
+            IAsyncOperationCompletedHandler<boolean > : IAsyncOperationCompletedHandler_impl<boolean >
+            {
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b)
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_boolean, 0xc1d3d1a2, 0xae17, 0x5a5f, 0xb5,0xa2, 0xbd,0xcc,0x88,0x44,0x88,0x9a)
 #endif
 #else
-typedef struct IASyncActionVtbl {
+typedef struct __FIAsyncOperationCompletedHandler_1_booleanVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IASyncAction* This,
+        __FIAsyncOperationCompletedHandler_1_boolean *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IASyncAction* This);
+        __FIAsyncOperationCompletedHandler_1_boolean *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IASyncAction* This);
-
-    /*** IInspectable methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IASyncAction* This,
-        ULONG *iidCount,
-        IID **iids);
-
-    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IASyncAction* This,
-        HSTRING *className);
-
-    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IASyncAction* This,
-        TrustLevel *trustLevel);
-
-    /*** IASyncAction methods ***/
-    HRESULT (STDMETHODCALLTYPE *put_Completed)(
-        IASyncAction* This,
-        AsyncActionCompletedHandler *handler);
+        __FIAsyncOperationCompletedHandler_1_boolean *This);
 
-    HRESULT (STDMETHODCALLTYPE *get_Completed)(
-        IASyncAction* This,
-        AsyncActionCompletedHandler **handler);
-
-    HRESULT (STDMETHODCALLTYPE *GetResults)(
-        IASyncAction* This);
+    /*** IAsyncOperationCompletedHandler<boolean > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_boolean *This,
+        __FIAsyncOperation_1_boolean *info,
+        AsyncStatus status);
 
     END_INTERFACE
-} IASyncActionVtbl;
-interface IASyncAction {
-    CONST_VTBL IASyncActionVtbl* lpVtbl;
+} __FIAsyncOperationCompletedHandler_1_booleanVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_boolean {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_booleanVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IASyncAction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IASyncAction_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IASyncAction_Release(This) (This)->lpVtbl->Release(This)
-/*** IInspectable methods ***/
-#define IASyncAction_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IASyncAction_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IASyncAction_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-/*** IASyncAction methods ***/
-#define IASyncAction_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
-#define IASyncAction_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
-#define IASyncAction_GetResults(This) (This)->lpVtbl->GetResults(This)
+#define __FIAsyncOperationCompletedHandler_1_boolean_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_boolean_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_boolean_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<boolean > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_boolean_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IASyncAction_QueryInterface(IASyncAction* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_boolean_QueryInterface(__FIAsyncOperationCompletedHandler_1_boolean* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IASyncAction_AddRef(IASyncAction* This) {
+static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_boolean_AddRef(__FIAsyncOperationCompletedHandler_1_boolean* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IASyncAction_Release(IASyncAction* This) {
+static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_boolean_Release(__FIAsyncOperationCompletedHandler_1_boolean* This) {
     return This->lpVtbl->Release(This);
 }
-/*** IInspectable methods ***/
-static FORCEINLINE HRESULT IASyncAction_GetIids(IASyncAction* This,ULONG *iidCount,IID **iids) {
-    return This->lpVtbl->GetIids(This,iidCount,iids);
-}
-static FORCEINLINE HRESULT IASyncAction_GetRuntimeClassName(IASyncAction* This,HSTRING *className) {
-    return This->lpVtbl->GetRuntimeClassName(This,className);
-}
-static FORCEINLINE HRESULT IASyncAction_GetTrustLevel(IASyncAction* This,TrustLevel *trustLevel) {
-    return This->lpVtbl->GetTrustLevel(This,trustLevel);
-}
-/*** IASyncAction methods ***/
-static FORCEINLINE HRESULT IASyncAction_put_Completed(IASyncAction* This,AsyncActionCompletedHandler *handler) {
-    return This->lpVtbl->put_Completed(This,handler);
-}
-static FORCEINLINE HRESULT IASyncAction_get_Completed(IASyncAction* This,AsyncActionCompletedHandler **handler) {
-    return This->lpVtbl->get_Completed(This,handler);
-}
-static FORCEINLINE HRESULT IASyncAction_GetResults(IASyncAction* This) {
-    return This->lpVtbl->GetResults(This);
+/*** IAsyncOperationCompletedHandler<boolean > methods ***/
+static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_boolean_Invoke(__FIAsyncOperationCompletedHandler_1_boolean* This,__FIAsyncOperation_1_boolean *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
 }
 #endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_boolean IID___FIAsyncOperationCompletedHandler_1_boolean
+#define IAsyncOperationCompletedHandler_booleanVtbl __FIAsyncOperationCompletedHandler_1_booleanVtbl
+#define IAsyncOperationCompletedHandler_boolean __FIAsyncOperationCompletedHandler_1_boolean
+#define IAsyncOperationCompletedHandler_boolean_QueryInterface __FIAsyncOperationCompletedHandler_1_boolean_QueryInterface
+#define IAsyncOperationCompletedHandler_boolean_AddRef __FIAsyncOperationCompletedHandler_1_boolean_AddRef
+#define IAsyncOperationCompletedHandler_boolean_Release __FIAsyncOperationCompletedHandler_1_boolean_Release
+#define IAsyncOperationCompletedHandler_boolean_Invoke __FIAsyncOperationCompletedHandler_1_boolean_Invoke
+#endif /* WIDL_using_Windows_Foundation */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IASyncAction_put_Completed_Proxy(
-    IASyncAction* This,
-    AsyncActionCompletedHandler *handler);
-void __RPC_STUB IASyncAction_put_Completed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IASyncAction_get_Completed_Proxy(
-    IASyncAction* This,
-    AsyncActionCompletedHandler **handler);
-void __RPC_STUB IASyncAction_get_Completed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IASyncAction_GetResults_Proxy(
-    IASyncAction* This);
-void __RPC_STUB IASyncAction_GetResults_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IASyncAction_INTERFACE_DEFINED__ */
+#endif  /* ____FIAsyncOperationCompletedHandler_1_boolean_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * AsyncActionCompletedHandler interface
+ * IAsyncOperation<boolean > interface
  */
-#ifndef __AsyncActionCompletedHandler_INTERFACE_DEFINED__
-#define __AsyncActionCompletedHandler_INTERFACE_DEFINED__
+#ifndef ____FIAsyncOperation_1_boolean_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_boolean_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7);
+DEFINE_GUID(IID___FIAsyncOperation_1_boolean, 0xcdb5efb3, 0x5788, 0x509d, 0x9b,0xe1, 0x71,0xcc,0xb8,0xa3,0x36,0x2a);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7")
-AsyncActionCompletedHandler : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE Invoke(
-        IInspectable *asyncAction,
-        AsyncStatus status) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("cdb5efb3-5788-509d-9be1-71ccb8a3362a")
+            IAsyncOperation<boolean > : IAsyncOperation_impl<boolean >
+            {
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7)
+__CRT_UUID_DECL(__FIAsyncOperation_1_boolean, 0xcdb5efb3, 0x5788, 0x509d, 0x9b,0xe1, 0x71,0xcc,0xb8,0xa3,0x36,0x2a)
 #endif
 #else
-typedef struct AsyncActionCompletedHandlerVtbl {
+typedef struct __FIAsyncOperation_1_booleanVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        AsyncActionCompletedHandler* This,
+        __FIAsyncOperation_1_boolean *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        AsyncActionCompletedHandler* This);
+        __FIAsyncOperation_1_boolean *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        AsyncActionCompletedHandler* This);
+        __FIAsyncOperation_1_boolean *This);
 
-    /*** AsyncActionCompletedHandler methods ***/
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        AsyncActionCompletedHandler* This,
-        IInspectable *asyncAction,
-        AsyncStatus status);
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_boolean *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_boolean *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_boolean *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<boolean > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_boolean *This,
+        __FIAsyncOperationCompletedHandler_1_boolean *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_boolean *This,
+        __FIAsyncOperationCompletedHandler_1_boolean **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_boolean *This,
+        boolean **results);
 
     END_INTERFACE
-} AsyncActionCompletedHandlerVtbl;
-interface AsyncActionCompletedHandler {
-    CONST_VTBL AsyncActionCompletedHandlerVtbl* lpVtbl;
+} __FIAsyncOperation_1_booleanVtbl;
+
+interface __FIAsyncOperation_1_boolean {
+    CONST_VTBL __FIAsyncOperation_1_booleanVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define AsyncActionCompletedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define AsyncActionCompletedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define AsyncActionCompletedHandler_Release(This) (This)->lpVtbl->Release(This)
-/*** AsyncActionCompletedHandler methods ***/
-#define AsyncActionCompletedHandler_Invoke(This,asyncAction,status) (This)->lpVtbl->Invoke(This,asyncAction,status)
+#define __FIAsyncOperation_1_boolean_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_boolean_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_boolean_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_boolean_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_boolean_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_boolean_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<boolean > methods ***/
+#define __FIAsyncOperation_1_boolean_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_boolean_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_boolean_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT AsyncActionCompletedHandler_QueryInterface(AsyncActionCompletedHandler* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_QueryInterface(__FIAsyncOperation_1_boolean* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG AsyncActionCompletedHandler_AddRef(AsyncActionCompletedHandler* This) {
+static FORCEINLINE ULONG __FIAsyncOperation_1_boolean_AddRef(__FIAsyncOperation_1_boolean* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG AsyncActionCompletedHandler_Release(AsyncActionCompletedHandler* This) {
+static FORCEINLINE ULONG __FIAsyncOperation_1_boolean_Release(__FIAsyncOperation_1_boolean* This) {
     return This->lpVtbl->Release(This);
 }
-/*** AsyncActionCompletedHandler methods ***/
-static FORCEINLINE HRESULT AsyncActionCompletedHandler_Invoke(AsyncActionCompletedHandler* This,IInspectable *asyncAction,AsyncStatus status) {
-    return This->lpVtbl->Invoke(This,asyncAction,status);
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_GetIids(__FIAsyncOperation_1_boolean* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_GetRuntimeClassName(__FIAsyncOperation_1_boolean* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_GetTrustLevel(__FIAsyncOperation_1_boolean* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<boolean > methods ***/
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_put_Completed(__FIAsyncOperation_1_boolean* This,__FIAsyncOperationCompletedHandler_1_boolean *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_get_Completed(__FIAsyncOperation_1_boolean* This,__FIAsyncOperationCompletedHandler_1_boolean **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_GetResults(__FIAsyncOperation_1_boolean* This,boolean **results) {
+    return This->lpVtbl->GetResults(This,results);
 }
 #endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_boolean IID___FIAsyncOperation_1_boolean
+#define IAsyncOperation_booleanVtbl __FIAsyncOperation_1_booleanVtbl
+#define IAsyncOperation_boolean __FIAsyncOperation_1_boolean
+#define IAsyncOperation_boolean_QueryInterface __FIAsyncOperation_1_boolean_QueryInterface
+#define IAsyncOperation_boolean_AddRef __FIAsyncOperation_1_boolean_AddRef
+#define IAsyncOperation_boolean_Release __FIAsyncOperation_1_boolean_Release
+#define IAsyncOperation_boolean_GetIids __FIAsyncOperation_1_boolean_GetIids
+#define IAsyncOperation_boolean_GetRuntimeClassName __FIAsyncOperation_1_boolean_GetRuntimeClassName
+#define IAsyncOperation_boolean_GetTrustLevel __FIAsyncOperation_1_boolean_GetTrustLevel
+#define IAsyncOperation_boolean_put_Completed __FIAsyncOperation_1_boolean_put_Completed
+#define IAsyncOperation_boolean_get_Completed __FIAsyncOperation_1_boolean_get_Completed
+#define IAsyncOperation_boolean_GetResults __FIAsyncOperation_1_boolean_GetResults
+#endif /* WIDL_using_Windows_Foundation */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE AsyncActionCompletedHandler_Invoke_Proxy(
-    AsyncActionCompletedHandler* This,
-    IInspectable *asyncAction,
-    AsyncStatus status);
-void __RPC_STUB AsyncActionCompletedHandler_Invoke_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __AsyncActionCompletedHandler_INTERFACE_DEFINED__ */
+#endif  /* ____FIAsyncOperation_1_boolean_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * IAsyncOperation interface
+ * IVectorView<HSTRING > interface
  */
-#ifndef __IAsyncOperation_INTERFACE_DEFINED__
-#define __IAsyncOperation_INTERFACE_DEFINED__
+#ifndef ____FIVectorView_1_HSTRING_INTERFACE_DEFINED__
+#define ____FIVectorView_1_HSTRING_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2);
+DEFINE_GUID(IID___FIVectorView_1_HSTRING, 0xfca5679c, 0xbfd4, 0x5187, 0x8b,0x2d, 0xde,0x22,0x50,0x49,0xb3,0x46);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("9fc2b0bb-e446-44e2-aa61-9cab8f636af2")
-IAsyncOperation : public IAsyncInfo
-{
-    virtual HRESULT STDMETHODCALLTYPE put_Completed(
-        AsyncActionCompletedHandler *handler) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Completed(
-        AsyncActionCompletedHandler **handler) = 0;
-
-    virtual IInspectable * STDMETHODCALLTYPE GetResults(
-        ) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("fca5679c-bfd4-5187-8b2d-de225049b346")
+                IVectorView<HSTRING > : IVectorView_impl<HSTRING >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2)
+__CRT_UUID_DECL(__FIVectorView_1_HSTRING, 0xfca5679c, 0xbfd4, 0x5187, 0x8b,0x2d, 0xde,0x22,0x50,0x49,0xb3,0x46)
 #endif
 #else
-typedef struct IAsyncOperationVtbl {
+typedef struct __FIVectorView_1_HSTRINGVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAsyncOperation* This,
+        __FIVectorView_1_HSTRING *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAsyncOperation* This);
+        __FIVectorView_1_HSTRING *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAsyncOperation* This);
+        __FIVectorView_1_HSTRING *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IAsyncOperation* This,
+        __FIVectorView_1_HSTRING *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IAsyncOperation* This,
+        __FIVectorView_1_HSTRING *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IAsyncOperation* This,
+        __FIVectorView_1_HSTRING *This,
         TrustLevel *trustLevel);
 
-    /*** IAsyncInfo methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_Id)(
-        IAsyncOperation* This,
-        unsigned int *id);
-
-    HRESULT (STDMETHODCALLTYPE *get_Status)(
-        IAsyncOperation* This,
-        AsyncStatus *status);
-
-    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-        IAsyncOperation* This,
-        HRESULT *errorCode);
-
-    HRESULT (STDMETHODCALLTYPE *Cancel)(
-        IAsyncOperation* This);
-
-    HRESULT (STDMETHODCALLTYPE *Close)(
-        IAsyncOperation* This);
-
-    /*** IAsyncOperation methods ***/
-    HRESULT (STDMETHODCALLTYPE *put_Completed)(
-        IAsyncOperation* This,
-        AsyncActionCompletedHandler *handler);
-
-    HRESULT (STDMETHODCALLTYPE *get_Completed)(
-        IAsyncOperation* This,
-        AsyncActionCompletedHandler **handler);
-
-    IInspectable * (STDMETHODCALLTYPE *GetResults)(
-        IAsyncOperation* This);
+    /*** IVectorView<HSTRING > methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAt)(
+        __FIVectorView_1_HSTRING *This,
+        UINT32 index,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIVectorView_1_HSTRING *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *IndexOf)(
+        __FIVectorView_1_HSTRING *This,
+        HSTRING element,
+        UINT32 *index,
+        BOOLEAN *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIVectorView_1_HSTRING *This,
+        UINT32 start_index,
+        UINT32 items_size,
+        HSTRING *items,
+        UINT32 *value);
 
     END_INTERFACE
-} IAsyncOperationVtbl;
-interface IAsyncOperation {
-    CONST_VTBL IAsyncOperationVtbl* lpVtbl;
+} __FIVectorView_1_HSTRINGVtbl;
+
+interface __FIVectorView_1_HSTRING {
+    CONST_VTBL __FIVectorView_1_HSTRINGVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
+#define __FIVectorView_1_HSTRING_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_HSTRING_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_HSTRING_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IAsyncOperation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IAsyncOperation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IAsyncOperation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-/*** IAsyncInfo methods ***/
-#define IAsyncOperation_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IAsyncOperation_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
-#define IAsyncOperation_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
-#define IAsyncOperation_Cancel(This) (This)->lpVtbl->Cancel(This)
-#define IAsyncOperation_Close(This) (This)->lpVtbl->Close(This)
-/*** IAsyncOperation methods ***/
-#define IAsyncOperation_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
-#define IAsyncOperation_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
-#define IAsyncOperation_GetResults(This) (This)->lpVtbl->GetResults(This)
+#define __FIVectorView_1_HSTRING_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_HSTRING_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_HSTRING_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<HSTRING > methods ***/
+#define __FIVectorView_1_HSTRING_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_HSTRING_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_HSTRING_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_HSTRING_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IAsyncOperation_QueryInterface(IAsyncOperation* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __FIVectorView_1_HSTRING_QueryInterface(__FIVectorView_1_HSTRING* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IAsyncOperation_AddRef(IAsyncOperation* This) {
+static FORCEINLINE ULONG __FIVectorView_1_HSTRING_AddRef(__FIVectorView_1_HSTRING* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IAsyncOperation_Release(IAsyncOperation* This) {
+static FORCEINLINE ULONG __FIVectorView_1_HSTRING_Release(__FIVectorView_1_HSTRING* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IAsyncOperation_GetIids(IAsyncOperation* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __FIVectorView_1_HSTRING_GetIids(__FIVectorView_1_HSTRING* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IAsyncOperation_GetRuntimeClassName(IAsyncOperation* This,HSTRING *className) {
+static FORCEINLINE HRESULT __FIVectorView_1_HSTRING_GetRuntimeClassName(__FIVectorView_1_HSTRING* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IAsyncOperation_GetTrustLevel(IAsyncOperation* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __FIVectorView_1_HSTRING_GetTrustLevel(__FIVectorView_1_HSTRING* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
-/*** IAsyncInfo methods ***/
-static FORCEINLINE HRESULT IAsyncOperation_get_Id(IAsyncOperation* This,unsigned int *id) {
-    return This->lpVtbl->get_Id(This,id);
-}
-static FORCEINLINE HRESULT IAsyncOperation_get_Status(IAsyncOperation* This,AsyncStatus *status) {
-    return This->lpVtbl->get_Status(This,status);
-}
-static FORCEINLINE HRESULT IAsyncOperation_get_ErrorCode(IAsyncOperation* This,HRESULT *errorCode) {
-    return This->lpVtbl->get_ErrorCode(This,errorCode);
+/*** IVectorView<HSTRING > methods ***/
+static FORCEINLINE HRESULT __FIVectorView_1_HSTRING_GetAt(__FIVectorView_1_HSTRING* This,UINT32 index,HSTRING *value) {
+    return This->lpVtbl->GetAt(This,index,value);
 }
-static FORCEINLINE HRESULT IAsyncOperation_Cancel(IAsyncOperation* This) {
-    return This->lpVtbl->Cancel(This);
+static FORCEINLINE HRESULT __FIVectorView_1_HSTRING_get_Size(__FIVectorView_1_HSTRING* This,UINT32 *value) {
+    return This->lpVtbl->get_Size(This,value);
 }
-static FORCEINLINE HRESULT IAsyncOperation_Close(IAsyncOperation* This) {
-    return This->lpVtbl->Close(This);
+static FORCEINLINE HRESULT __FIVectorView_1_HSTRING_IndexOf(__FIVectorView_1_HSTRING* This,HSTRING element,UINT32 *index,BOOLEAN *value) {
+    return This->lpVtbl->IndexOf(This,element,index,value);
 }
-/*** IAsyncOperation methods ***/
-static FORCEINLINE HRESULT IAsyncOperation_put_Completed(IAsyncOperation* This,AsyncActionCompletedHandler *handler) {
-    return This->lpVtbl->put_Completed(This,handler);
-}
-static FORCEINLINE HRESULT IAsyncOperation_get_Completed(IAsyncOperation* This,AsyncActionCompletedHandler **handler) {
-    return This->lpVtbl->get_Completed(This,handler);
-}
-static FORCEINLINE IInspectable * IAsyncOperation_GetResults(IAsyncOperation* This) {
-    return This->lpVtbl->GetResults(This);
+static FORCEINLINE HRESULT __FIVectorView_1_HSTRING_GetMany(__FIVectorView_1_HSTRING* This,UINT32 start_index,UINT32 items_size,HSTRING *items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
 }
 #endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_HSTRING IID___FIVectorView_1_HSTRING
+#define IVectorView_HSTRINGVtbl __FIVectorView_1_HSTRINGVtbl
+#define IVectorView_HSTRING __FIVectorView_1_HSTRING
+#define IVectorView_HSTRING_QueryInterface __FIVectorView_1_HSTRING_QueryInterface
+#define IVectorView_HSTRING_AddRef __FIVectorView_1_HSTRING_AddRef
+#define IVectorView_HSTRING_Release __FIVectorView_1_HSTRING_Release
+#define IVectorView_HSTRING_GetIids __FIVectorView_1_HSTRING_GetIids
+#define IVectorView_HSTRING_GetRuntimeClassName __FIVectorView_1_HSTRING_GetRuntimeClassName
+#define IVectorView_HSTRING_GetTrustLevel __FIVectorView_1_HSTRING_GetTrustLevel
+#define IVectorView_HSTRING_GetAt __FIVectorView_1_HSTRING_GetAt
+#define IVectorView_HSTRING_get_Size __FIVectorView_1_HSTRING_get_Size
+#define IVectorView_HSTRING_IndexOf __FIVectorView_1_HSTRING_IndexOf
+#define IVectorView_HSTRING_GetMany __FIVectorView_1_HSTRING_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAsyncOperation_put_Completed_Proxy(
-    IAsyncOperation* This,
-    AsyncActionCompletedHandler *handler);
-void __RPC_STUB IAsyncOperation_put_Completed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncOperation_get_Completed_Proxy(
-    IAsyncOperation* This,
-    AsyncActionCompletedHandler **handler);
-void __RPC_STUB IAsyncOperation_get_Completed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-IInspectable * STDMETHODCALLTYPE IAsyncOperation_GetResults_Proxy(
-    IAsyncOperation* This);
-void __RPC_STUB IAsyncOperation_GetResults_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IAsyncOperation_INTERFACE_DEFINED__ */
+#endif  /* ____FIVectorView_1_HSTRING_INTERFACE_DEFINED__ */
 
 /* Begin additional prototypes for all interfaces */
 
+ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
+void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);
 
 /* End additional prototypes */
 
lib/libc/include/any-windows-any/windows.media.speechsynthesis.h
@@ -0,0 +1,1069 @@
+/*** Autogenerated by WIDL 6.4 from include/windows.media.speechsynthesis.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_media_speechsynthesis_h__
+#define __windows_media_speechsynthesis_h__
+
+/* Forward declarations */
+
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation ABI::Windows::Media::SpeechSynthesis::IVoiceInformation
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                interface IVoiceInformation;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic ABI::Windows::Media::SpeechSynthesis::IInstalledVoicesStatic
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                interface IInstalledVoicesStatic;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceInformation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceInformation_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                class VoiceInformation;
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceInformation __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceInformation;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceInformation_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesizer_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesizer_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                class SpeechSynthesizer;
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesizer __x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesizer;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CSpeechSynthesizer_FWD_DEFINED__ */
+
+#ifndef ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* >
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CFoundation_CIClosable __x_ABI_CWindows_CFoundation_CIClosable;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CFoundation_CIClosable ABI::Windows::Foundation::IClosable
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            interface IClosable;
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic ABI::Windows::Media::SpeechSynthesis::IInstalledVoicesStatic
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                interface IInstalledVoicesStatic;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic2 __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic2 ABI::Windows::Media::SpeechSynthesis::IInstalledVoicesStatic2
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                interface IInstalledVoicesStatic2;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesizer
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                interface ISpeechSynthesizer;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer2 __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CISpeechSynthesizer2 ABI::Windows::Media::SpeechSynthesis::ISpeechSynthesizer2
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                interface ISpeechSynthesizer2;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation ABI::Windows::Media::SpeechSynthesis::IVoiceInformation
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                interface IVoiceInformation;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* >
+#endif /* __cplusplus */
+#endif
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                enum VoiceGender {
+                    VoiceGender_Male = 0,
+                    VoiceGender_Female = 1
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender {
+    VoiceGender_Male = 0,
+    VoiceGender_Female = 1
+};
+#ifdef WIDL_using_Windows_Media_SpeechSynthesis
+#define VoiceGender __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender
+#endif /* WIDL_using_Windows_Media_SpeechSynthesis */
+#endif
+
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+/*****************************************************************************
+ * IVoiceInformation interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation, 0xb127d6a4, 0x1291, 0x4604, 0xaa,0x9c, 0x83,0x13,0x40,0x83,0x35,0x2c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                MIDL_INTERFACE("b127d6a4-1291-4604-aa9c-83134083352c")
+                IVoiceInformation : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_DisplayName(
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Id(
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Language(
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Description(
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Gender(
+                        enum VoiceGender *value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation, 0xb127d6a4, 0x1291, 0x4604, 0xaa,0x9c, 0x83,0x13,0x40,0x83,0x35,0x2c)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This,
+        TrustLevel *trustLevel);
+
+    /*** IVoiceInformation methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_DisplayName)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Language)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Description)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Gender)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *This,
+        enum __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformationVtbl;
+
+interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation {
+    CONST_VTBL __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVoiceInformation methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_DisplayName(This,value) (This)->lpVtbl->get_DisplayName(This,value)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Id(This,value) (This)->lpVtbl->get_Id(This,value)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Language(This,value) (This)->lpVtbl->get_Language(This,value)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Description(This,value) (This)->lpVtbl->get_Description(This,value)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Gender(This,value) (This)->lpVtbl->get_Gender(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_QueryInterface(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_AddRef(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_Release(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_GetIids(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_GetTrustLevel(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVoiceInformation methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_DisplayName(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This,HSTRING *value) {
+    return This->lpVtbl->get_DisplayName(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Id(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This,HSTRING *value) {
+    return This->lpVtbl->get_Id(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Language(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This,HSTRING *value) {
+    return This->lpVtbl->get_Language(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Description(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This,HSTRING *value) {
+    return This->lpVtbl->get_Description(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Gender(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation* This,enum __x_ABI_CWindows_CMedia_CSpeechSynthesis_CVoiceGender *value) {
+    return This->lpVtbl->get_Gender(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Media_SpeechSynthesis
+#define IID_IVoiceInformation IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation
+#define IVoiceInformationVtbl __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformationVtbl
+#define IVoiceInformation __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation
+#define IVoiceInformation_QueryInterface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_QueryInterface
+#define IVoiceInformation_AddRef __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_AddRef
+#define IVoiceInformation_Release __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_Release
+#define IVoiceInformation_GetIids __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_GetIids
+#define IVoiceInformation_GetRuntimeClassName __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_GetRuntimeClassName
+#define IVoiceInformation_GetTrustLevel __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_GetTrustLevel
+#define IVoiceInformation_get_DisplayName __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_DisplayName
+#define IVoiceInformation_get_Id __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Id
+#define IVoiceInformation_get_Language __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Language
+#define IVoiceInformation_get_Description __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Description
+#define IVoiceInformation_get_Gender __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_get_Gender
+#endif /* WIDL_using_Windows_Media_SpeechSynthesis */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IInstalledVoicesStatic interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic, 0x7d526ecc, 0x7533, 0x4c3f, 0x85,0xbe, 0x88,0x8c,0x2b,0xae,0xeb,0xdc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Media {
+            namespace SpeechSynthesis {
+                MIDL_INTERFACE("7d526ecc-7533-4c3f-85be-888c2baeebdc")
+                IInstalledVoicesStatic : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_AllVoices(
+                        ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_DefaultVoice(
+                        IVoiceInformation **value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic, 0x7d526ecc, 0x7533, 0x4c3f, 0x85,0xbe, 0x88,0x8c,0x2b,0xae,0xeb,0xdc)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStaticVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic *This,
+        TrustLevel *trustLevel);
+
+    /*** IInstalledVoicesStatic methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_AllVoices)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic *This,
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_DefaultVoice)(
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic *This,
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStaticVtbl;
+
+interface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic {
+    CONST_VTBL __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStaticVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IInstalledVoicesStatic methods ***/
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_get_AllVoices(This,value) (This)->lpVtbl->get_AllVoices(This,value)
+#define __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_get_DefaultVoice(This,value) (This)->lpVtbl->get_DefaultVoice(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_QueryInterface(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_AddRef(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_Release(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_GetIids(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_GetRuntimeClassName(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_GetTrustLevel(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IInstalledVoicesStatic methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_get_AllVoices(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic* This,__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation **value) {
+    return This->lpVtbl->get_AllVoices(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_get_DefaultVoice(__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic* This,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **value) {
+    return This->lpVtbl->get_DefaultVoice(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Media_SpeechSynthesis
+#define IID_IInstalledVoicesStatic IID___x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic
+#define IInstalledVoicesStaticVtbl __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStaticVtbl
+#define IInstalledVoicesStatic __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic
+#define IInstalledVoicesStatic_QueryInterface __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_QueryInterface
+#define IInstalledVoicesStatic_AddRef __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_AddRef
+#define IInstalledVoicesStatic_Release __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_Release
+#define IInstalledVoicesStatic_GetIids __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_GetIids
+#define IInstalledVoicesStatic_GetRuntimeClassName __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_GetRuntimeClassName
+#define IInstalledVoicesStatic_GetTrustLevel __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_GetTrustLevel
+#define IInstalledVoicesStatic_get_AllVoices __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_get_AllVoices
+#define IInstalledVoicesStatic_get_DefaultVoice __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_get_DefaultVoice
+#endif /* WIDL_using_Windows_Media_SpeechSynthesis */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CMedia_CSpeechSynthesis_CIInstalledVoicesStatic_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Media.SpeechSynthesis.VoiceInformation
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Media_SpeechSynthesis_VoiceInformation_DEFINED
+#define RUNTIMECLASS_Windows_Media_SpeechSynthesis_VoiceInformation_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Media_SpeechSynthesis_VoiceInformation[] = {'W','i','n','d','o','w','s','.','M','e','d','i','a','.','S','p','e','e','c','h','S','y','n','t','h','e','s','i','s','.','V','o','i','c','e','I','n','f','o','r','m','a','t','i','o','n',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_SpeechSynthesis_VoiceInformation[] = L"Windows.Media.SpeechSynthesis.VoiceInformation";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_SpeechSynthesis_VoiceInformation[] = {'W','i','n','d','o','w','s','.','M','e','d','i','a','.','S','p','e','e','c','h','S','y','n','t','h','e','s','i','s','.','V','o','i','c','e','I','n','f','o','r','m','a','t','i','o','n',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Media_SpeechSynthesis_VoiceInformation_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Media.SpeechSynthesis.SpeechSynthesizer
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Media_SpeechSynthesis_SpeechSynthesizer_DEFINED
+#define RUNTIMECLASS_Windows_Media_SpeechSynthesis_SpeechSynthesizer_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Media_SpeechSynthesis_SpeechSynthesizer[] = {'W','i','n','d','o','w','s','.','M','e','d','i','a','.','S','p','e','e','c','h','S','y','n','t','h','e','s','i','s','.','S','p','e','e','c','h','S','y','n','t','h','e','s','i','z','e','r',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_SpeechSynthesis_SpeechSynthesizer[] = L"Windows.Media.SpeechSynthesis.SpeechSynthesizer";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Media_SpeechSynthesis_SpeechSynthesizer[] = {'W','i','n','d','o','w','s','.','M','e','d','i','a','.','S','p','e','e','c','h','S','y','n','t','h','e','s','i','s','.','S','p','e','e','c','h','S','y','n','t','h','e','s','i','z','e','r',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Media_SpeechSynthesis_SpeechSynthesizer_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IIterator<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > interface
+ */
+#ifndef ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__
+#define ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation, 0x12d40a27, 0xae8d, 0x5fb0, 0x8f,0xed, 0x00,0x16,0x5d,0x59,0xc6,0xab);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("12d40a27-ae8d-5fb0-8fed-00165d59c6ab")
+                IIterator<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Media::SpeechSynthesis::VoiceInformation*, ABI::Windows::Media::SpeechSynthesis::IVoiceInformation* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation, 0x12d40a27, 0xae8d, 0x5fb0, 0x8f,0xed, 0x00,0x16,0x5d,0x59,0xc6,0xab)
+#endif
+#else
+typedef struct __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterator<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Current)(
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_HasCurrent)(
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        WINBOOL *value);
+
+    HRESULT (STDMETHODCALLTYPE *MoveNext)(
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        WINBOOL *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        UINT32 count,
+        UINT32 items_size,
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl;
+
+interface __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation {
+    CONST_VTBL __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterator<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > methods ***/
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_get_Current(This,value) (This)->lpVtbl->get_Current(This,value)
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_get_HasCurrent(This,value) (This)->lpVtbl->get_HasCurrent(This,value)
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_MoveNext(This,value) (This)->lpVtbl->MoveNext(This,value)
+#define __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetMany(This,count,items_size,items,value) (This)->lpVtbl->GetMany(This,count,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_QueryInterface(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_AddRef(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_Release(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetIids(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetRuntimeClassName(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetTrustLevel(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterator<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > methods ***/
+static FORCEINLINE HRESULT __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_get_Current(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **value) {
+    return This->lpVtbl->get_Current(This,value);
+}
+static FORCEINLINE HRESULT __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_get_HasCurrent(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,WINBOOL *value) {
+    return This->lpVtbl->get_HasCurrent(This,value);
+}
+static FORCEINLINE HRESULT __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_MoveNext(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,WINBOOL *value) {
+    return This->lpVtbl->MoveNext(This,value);
+}
+static FORCEINLINE HRESULT __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetMany(__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,UINT32 count,UINT32 items_size,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,count,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterator_VoiceInformation IID___FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation
+#define IIterator_VoiceInformationVtbl __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl
+#define IIterator_VoiceInformation __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation
+#define IIterator_VoiceInformation_QueryInterface __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_QueryInterface
+#define IIterator_VoiceInformation_AddRef __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_AddRef
+#define IIterator_VoiceInformation_Release __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_Release
+#define IIterator_VoiceInformation_GetIids __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetIids
+#define IIterator_VoiceInformation_GetRuntimeClassName __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetRuntimeClassName
+#define IIterator_VoiceInformation_GetTrustLevel __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetTrustLevel
+#define IIterator_VoiceInformation_get_Current __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_get_Current
+#define IIterator_VoiceInformation_get_HasCurrent __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_get_HasCurrent
+#define IIterator_VoiceInformation_MoveNext __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_MoveNext
+#define IIterator_VoiceInformation_GetMany __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IIterable<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > interface
+ */
+#ifndef ____FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__
+#define ____FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation, 0x3c33bb52, 0xbd98, 0x5c8c, 0xad,0xee, 0xee,0x8d,0xa0,0x62,0x8e,0xfc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("3c33bb52-bd98-5c8c-adee-ee8da0628efc")
+                IIterable<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Media::SpeechSynthesis::VoiceInformation*, ABI::Windows::Media::SpeechSynthesis::IVoiceInformation* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation, 0x3c33bb52, 0xbd98, 0x5c8c, 0xad,0xee, 0xee,0x8d,0xa0,0x62,0x8e,0xfc)
+#endif
+#else
+typedef struct __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterable<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *First)(
+        __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        __FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation **value);
+
+    END_INTERFACE
+} __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl;
+
+interface __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation {
+    CONST_VTBL __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterable<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > methods ***/
+#define __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_First(This,value) (This)->lpVtbl->First(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_QueryInterface(__FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_AddRef(__FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_Release(__FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetIids(__FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetRuntimeClassName(__FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetTrustLevel(__FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterable<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > methods ***/
+static FORCEINLINE HRESULT __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_First(__FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,__FIIterator_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation **value) {
+    return This->lpVtbl->First(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterable_VoiceInformation IID___FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation
+#define IIterable_VoiceInformationVtbl __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl
+#define IIterable_VoiceInformation __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation
+#define IIterable_VoiceInformation_QueryInterface __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_QueryInterface
+#define IIterable_VoiceInformation_AddRef __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_AddRef
+#define IIterable_VoiceInformation_Release __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_Release
+#define IIterable_VoiceInformation_GetIids __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetIids
+#define IIterable_VoiceInformation_GetRuntimeClassName __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetRuntimeClassName
+#define IIterable_VoiceInformation_GetTrustLevel __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetTrustLevel
+#define IIterable_VoiceInformation_First __FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_First
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterable_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVectorView<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > interface
+ */
+#ifndef ____FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__
+#define ____FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation, 0xee8d63ce, 0x51ac, 0x5984, 0x89,0x1b, 0xd2,0x32,0xfa,0x7f,0x64,0x53);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("ee8d63ce-51ac-5984-891b-d232fa7f6453")
+                IVectorView<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Media::SpeechSynthesis::VoiceInformation*, ABI::Windows::Media::SpeechSynthesis::IVoiceInformation* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation, 0xee8d63ce, 0x51ac, 0x5984, 0x89,0x1b, 0xd2,0x32,0xfa,0x7f,0x64,0x53)
+#endif
+#else
+typedef struct __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        TrustLevel *trustLevel);
+
+    /*** IVectorView<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAt)(
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        UINT32 index,
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *IndexOf)(
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *element,
+        UINT32 *index,
+        BOOLEAN *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation *This,
+        UINT32 start_index,
+        UINT32 items_size,
+        __x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl;
+
+interface __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation {
+    CONST_VTBL __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > methods ***/
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_QueryInterface(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_AddRef(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_Release(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetIids(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetRuntimeClassName(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetTrustLevel(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVectorView<ABI::Windows::Media::SpeechSynthesis::VoiceInformation* > methods ***/
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetAt(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,UINT32 index,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **value) {
+    return This->lpVtbl->GetAt(This,index,value);
+}
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_get_Size(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,UINT32 *value) {
+    return This->lpVtbl->get_Size(This,value);
+}
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_IndexOf(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation *element,UINT32 *index,BOOLEAN *value) {
+    return This->lpVtbl->IndexOf(This,element,index,value);
+}
+static FORCEINLINE HRESULT __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetMany(__FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CMedia_CSpeechSynthesis_CIVoiceInformation **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_VoiceInformation IID___FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation
+#define IVectorView_VoiceInformationVtbl __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformationVtbl
+#define IVectorView_VoiceInformation __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation
+#define IVectorView_VoiceInformation_QueryInterface __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_QueryInterface
+#define IVectorView_VoiceInformation_AddRef __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_AddRef
+#define IVectorView_VoiceInformation_Release __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_Release
+#define IVectorView_VoiceInformation_GetIids __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetIids
+#define IVectorView_VoiceInformation_GetRuntimeClassName __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetRuntimeClassName
+#define IVectorView_VoiceInformation_GetTrustLevel __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetTrustLevel
+#define IVectorView_VoiceInformation_GetAt __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetAt
+#define IVectorView_VoiceInformation_get_Size __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_get_Size
+#define IVectorView_VoiceInformation_IndexOf __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_IndexOf
+#define IVectorView_VoiceInformation_GetMany __FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIVectorView_1_Windows__CMedia__CSpeechSynthesis__CVoiceInformation_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
+void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_media_speechsynthesis_h__ */
lib/libc/include/any-windows-any/windows.security.cryptography.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.5.31 from include/windows.security.cryptography.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/windows.security.cryptography.idl - Do not edit ***/
 
+#ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
-
 #include <rpc.h>
 #include <rpcndr.h>
+#endif
 
 #ifndef COM_NO_WINDOWS_H
 #include <windows.h>
@@ -17,9 +18,21 @@
 
 /* Forward declarations */
 
-#ifndef __ICryptographicBufferStatics_FWD_DEFINED__
-#define __ICryptographicBufferStatics_FWD_DEFINED__
-typedef interface ICryptographicBufferStatics ICryptographicBufferStatics;
+#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics ABI::Windows::Security::Cryptography::ICryptographicBufferStatics
+namespace ABI {
+    namespace Windows {
+        namespace Security {
+            namespace Cryptography {
+                interface ICryptographicBufferStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
@@ -31,369 +44,342 @@ typedef interface ICryptographicBufferStatics ICryptographicBufferStatics;
 extern "C" {
 #endif
 
-#ifndef __IBuffer_FWD_DEFINED__
-#define __IBuffer_FWD_DEFINED__
-typedef interface IBuffer IBuffer;
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIBuffer __x_ABI_CWindows_CStorage_CStreams_CIBuffer;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer ABI::Windows::Storage::Streams::IBuffer
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            namespace Streams {
+                interface IBuffer;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __ICryptographicBufferStatics_FWD_DEFINED__
-#define __ICryptographicBufferStatics_FWD_DEFINED__
-typedef interface ICryptographicBufferStatics ICryptographicBufferStatics;
+#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics ABI::Windows::Security::Cryptography::ICryptographicBufferStatics
+namespace ABI {
+    namespace Windows {
+        namespace Security {
+            namespace Cryptography {
+                interface ICryptographicBufferStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-enum BinaryStringEncoding;
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Security {
+            namespace Cryptography {
+                enum BinaryStringEncoding {
+                    BinaryStringEncoding_Utf8 = 0,
+                    BinaryStringEncoding_Utf16LE = 1,
+                    BinaryStringEncoding_Utf16BE = 2
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CSecurity_CCryptography_CBinaryStringEncoding {
+    BinaryStringEncoding_Utf8 = 0,
+    BinaryStringEncoding_Utf16LE = 1,
+    BinaryStringEncoding_Utf16BE = 2
+};
+#ifdef WIDL_using_Windows_Security_Cryptography
+#define BinaryStringEncoding __x_ABI_CWindows_CSecurity_CCryptography_CBinaryStringEncoding
+#endif /* WIDL_using_Windows_Security_Cryptography */
+#endif
 
-typedef enum BinaryStringEncoding {
-    Utf8 = 0,
-    Utf16LE = 1,
-    Utf16BE = 2
-} BinaryStringEncoding;
 /*****************************************************************************
  * ICryptographicBufferStatics interface
  */
-#ifndef __ICryptographicBufferStatics_INTERFACE_DEFINED__
-#define __ICryptographicBufferStatics_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ICryptographicBufferStatics, 0x320b7e22, 0x3cb0, 0x4cdf, 0x86,0x63, 0x1d,0x28,0x91,0x00,0x65,0xeb);
+DEFINE_GUID(IID___x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics, 0x320b7e22, 0x3cb0, 0x4cdf, 0x86,0x63, 0x1d,0x28,0x91,0x00,0x65,0xeb);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("320b7e22-3cb0-4cdf-8663-1d28910065eb")
-ICryptographicBufferStatics : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE Compare(
-        IBuffer *object1,
-        IBuffer *object2,
-        boolean *isEqual) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GenerateRandom(
-        UINT32 length,
-        IBuffer **buffer) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GenerateRandomNumber(
-        UINT32 *value) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateFromByteArray(
-        UINT32 __valueSize,
-        BYTE *value,
-        IBuffer **buffer) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CopyToByteArray(
-        IBuffer *buffer,
-        UINT32 *__valueSize,
-        BYTE **value) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE DecodeFromHexString(
-        HSTRING value,
-        IBuffer **buffer) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE EncodeToHexString(
-        IBuffer *buffer,
-        HSTRING *value) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE DecodeFromBase64String(
-        HSTRING value,
-        IBuffer **buffer) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE EncodeToBase64String(
-        IBuffer *buffer,
-        HSTRING *value) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE ConvertStringToBinary(
-        HSTRING value,
-        BinaryStringEncoding encoding,
-        IBuffer **buffer) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE ConvertBinaryToString(
-        BinaryStringEncoding encoding,
-        IBuffer *buffer,
-        HSTRING *value) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Security {
+            namespace Cryptography {
+                MIDL_INTERFACE("320b7e22-3cb0-4cdf-8663-1d28910065eb")
+                ICryptographicBufferStatics : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE Compare(
+                        ABI::Windows::Storage::Streams::IBuffer *object1,
+                        ABI::Windows::Storage::Streams::IBuffer *object2,
+                        boolean *isEqual) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE GenerateRandom(
+                        UINT32 length,
+                        ABI::Windows::Storage::Streams::IBuffer **buffer) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE GenerateRandomNumber(
+                        UINT32 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateFromByteArray(
+                        UINT32 __valueSize,
+                        BYTE *value,
+                        ABI::Windows::Storage::Streams::IBuffer **buffer) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CopyToByteArray(
+                        ABI::Windows::Storage::Streams::IBuffer *buffer,
+                        UINT32 *__valueSize,
+                        BYTE **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE DecodeFromHexString(
+                        HSTRING value,
+                        ABI::Windows::Storage::Streams::IBuffer **buffer) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE EncodeToHexString(
+                        ABI::Windows::Storage::Streams::IBuffer *buffer,
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE DecodeFromBase64String(
+                        HSTRING value,
+                        ABI::Windows::Storage::Streams::IBuffer **buffer) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE EncodeToBase64String(
+                        ABI::Windows::Storage::Streams::IBuffer *buffer,
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE ConvertStringToBinary(
+                        HSTRING value,
+                        enum BinaryStringEncoding encoding,
+                        ABI::Windows::Storage::Streams::IBuffer **buffer) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE ConvertBinaryToString(
+                        enum BinaryStringEncoding encoding,
+                        ABI::Windows::Storage::Streams::IBuffer *buffer,
+                        HSTRING *value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ICryptographicBufferStatics, 0x320b7e22, 0x3cb0, 0x4cdf, 0x86,0x63, 0x1d,0x28,0x91,0x00,0x65,0xeb)
+__CRT_UUID_DECL(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics, 0x320b7e22, 0x3cb0, 0x4cdf, 0x86,0x63, 0x1d,0x28,0x91,0x00,0x65,0xeb)
 #endif
 #else
-typedef struct ICryptographicBufferStaticsVtbl {
+typedef struct __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStaticsVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ICryptographicBufferStatics* This,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ICryptographicBufferStatics* This);
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ICryptographicBufferStatics* This);
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        ICryptographicBufferStatics* This,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        ICryptographicBufferStatics* This,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        ICryptographicBufferStatics* This,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
         TrustLevel *trustLevel);
 
     /*** ICryptographicBufferStatics methods ***/
     HRESULT (STDMETHODCALLTYPE *Compare)(
-        ICryptographicBufferStatics* This,
-        IBuffer *object1,
-        IBuffer *object2,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *object1,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *object2,
         boolean *isEqual);
 
     HRESULT (STDMETHODCALLTYPE *GenerateRandom)(
-        ICryptographicBufferStatics* This,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
         UINT32 length,
-        IBuffer **buffer);
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **buffer);
 
     HRESULT (STDMETHODCALLTYPE *GenerateRandomNumber)(
-        ICryptographicBufferStatics* This,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
         UINT32 *value);
 
     HRESULT (STDMETHODCALLTYPE *CreateFromByteArray)(
-        ICryptographicBufferStatics* This,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
         UINT32 __valueSize,
         BYTE *value,
-        IBuffer **buffer);
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **buffer);
 
     HRESULT (STDMETHODCALLTYPE *CopyToByteArray)(
-        ICryptographicBufferStatics* This,
-        IBuffer *buffer,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *buffer,
         UINT32 *__valueSize,
         BYTE **value);
 
     HRESULT (STDMETHODCALLTYPE *DecodeFromHexString)(
-        ICryptographicBufferStatics* This,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
         HSTRING value,
-        IBuffer **buffer);
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **buffer);
 
     HRESULT (STDMETHODCALLTYPE *EncodeToHexString)(
-        ICryptographicBufferStatics* This,
-        IBuffer *buffer,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *buffer,
         HSTRING *value);
 
     HRESULT (STDMETHODCALLTYPE *DecodeFromBase64String)(
-        ICryptographicBufferStatics* This,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
         HSTRING value,
-        IBuffer **buffer);
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **buffer);
 
     HRESULT (STDMETHODCALLTYPE *EncodeToBase64String)(
-        ICryptographicBufferStatics* This,
-        IBuffer *buffer,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *buffer,
         HSTRING *value);
 
     HRESULT (STDMETHODCALLTYPE *ConvertStringToBinary)(
-        ICryptographicBufferStatics* This,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
         HSTRING value,
-        BinaryStringEncoding encoding,
-        IBuffer **buffer);
+        enum __x_ABI_CWindows_CSecurity_CCryptography_CBinaryStringEncoding encoding,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **buffer);
 
     HRESULT (STDMETHODCALLTYPE *ConvertBinaryToString)(
-        ICryptographicBufferStatics* This,
-        BinaryStringEncoding encoding,
-        IBuffer *buffer,
+        __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics *This,
+        enum __x_ABI_CWindows_CSecurity_CCryptography_CBinaryStringEncoding encoding,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *buffer,
         HSTRING *value);
 
     END_INTERFACE
-} ICryptographicBufferStaticsVtbl;
-interface ICryptographicBufferStatics {
-    CONST_VTBL ICryptographicBufferStaticsVtbl* lpVtbl;
+} __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStaticsVtbl;
+
+interface __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics {
+    CONST_VTBL __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStaticsVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define ICryptographicBufferStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ICryptographicBufferStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ICryptographicBufferStatics_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define ICryptographicBufferStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define ICryptographicBufferStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define ICryptographicBufferStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** ICryptographicBufferStatics methods ***/
-#define ICryptographicBufferStatics_Compare(This,object1,object2,isEqual) (This)->lpVtbl->Compare(This,object1,object2,isEqual)
-#define ICryptographicBufferStatics_GenerateRandom(This,length,buffer) (This)->lpVtbl->GenerateRandom(This,length,buffer)
-#define ICryptographicBufferStatics_GenerateRandomNumber(This,value) (This)->lpVtbl->GenerateRandomNumber(This,value)
-#define ICryptographicBufferStatics_CreateFromByteArray(This,__valueSize,value,buffer) (This)->lpVtbl->CreateFromByteArray(This,__valueSize,value,buffer)
-#define ICryptographicBufferStatics_CopyToByteArray(This,buffer,__valueSize,value) (This)->lpVtbl->CopyToByteArray(This,buffer,__valueSize,value)
-#define ICryptographicBufferStatics_DecodeFromHexString(This,value,buffer) (This)->lpVtbl->DecodeFromHexString(This,value,buffer)
-#define ICryptographicBufferStatics_EncodeToHexString(This,buffer,value) (This)->lpVtbl->EncodeToHexString(This,buffer,value)
-#define ICryptographicBufferStatics_DecodeFromBase64String(This,value,buffer) (This)->lpVtbl->DecodeFromBase64String(This,value,buffer)
-#define ICryptographicBufferStatics_EncodeToBase64String(This,buffer,value) (This)->lpVtbl->EncodeToBase64String(This,buffer,value)
-#define ICryptographicBufferStatics_ConvertStringToBinary(This,value,encoding,buffer) (This)->lpVtbl->ConvertStringToBinary(This,value,encoding,buffer)
-#define ICryptographicBufferStatics_ConvertBinaryToString(This,encoding,buffer,value) (This)->lpVtbl->ConvertBinaryToString(This,encoding,buffer,value)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_Compare(This,object1,object2,isEqual) (This)->lpVtbl->Compare(This,object1,object2,isEqual)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GenerateRandom(This,length,buffer) (This)->lpVtbl->GenerateRandom(This,length,buffer)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GenerateRandomNumber(This,value) (This)->lpVtbl->GenerateRandomNumber(This,value)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_CreateFromByteArray(This,__valueSize,value,buffer) (This)->lpVtbl->CreateFromByteArray(This,__valueSize,value,buffer)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_CopyToByteArray(This,buffer,__valueSize,value) (This)->lpVtbl->CopyToByteArray(This,buffer,__valueSize,value)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_DecodeFromHexString(This,value,buffer) (This)->lpVtbl->DecodeFromHexString(This,value,buffer)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_EncodeToHexString(This,buffer,value) (This)->lpVtbl->EncodeToHexString(This,buffer,value)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_DecodeFromBase64String(This,value,buffer) (This)->lpVtbl->DecodeFromBase64String(This,value,buffer)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_EncodeToBase64String(This,buffer,value) (This)->lpVtbl->EncodeToBase64String(This,buffer,value)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_ConvertStringToBinary(This,value,encoding,buffer) (This)->lpVtbl->ConvertStringToBinary(This,value,encoding,buffer)
+#define __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_ConvertBinaryToString(This,encoding,buffer,value) (This)->lpVtbl->ConvertBinaryToString(This,encoding,buffer,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT ICryptographicBufferStatics_QueryInterface(ICryptographicBufferStatics* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_QueryInterface(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG ICryptographicBufferStatics_AddRef(ICryptographicBufferStatics* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_AddRef(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG ICryptographicBufferStatics_Release(ICryptographicBufferStatics* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_Release(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT ICryptographicBufferStatics_GetIids(ICryptographicBufferStatics* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GetIids(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_GetRuntimeClassName(ICryptographicBufferStatics* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GetRuntimeClassName(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_GetTrustLevel(ICryptographicBufferStatics* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GetTrustLevel(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** ICryptographicBufferStatics methods ***/
-static FORCEINLINE HRESULT ICryptographicBufferStatics_Compare(ICryptographicBufferStatics* This,IBuffer *object1,IBuffer *object2,boolean *isEqual) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_Compare(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *object1,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *object2,boolean *isEqual) {
     return This->lpVtbl->Compare(This,object1,object2,isEqual);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_GenerateRandom(ICryptographicBufferStatics* This,UINT32 length,IBuffer **buffer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GenerateRandom(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,UINT32 length,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **buffer) {
     return This->lpVtbl->GenerateRandom(This,length,buffer);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_GenerateRandomNumber(ICryptographicBufferStatics* This,UINT32 *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GenerateRandomNumber(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,UINT32 *value) {
     return This->lpVtbl->GenerateRandomNumber(This,value);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_CreateFromByteArray(ICryptographicBufferStatics* This,UINT32 __valueSize,BYTE *value,IBuffer **buffer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_CreateFromByteArray(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,UINT32 __valueSize,BYTE *value,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **buffer) {
     return This->lpVtbl->CreateFromByteArray(This,__valueSize,value,buffer);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_CopyToByteArray(ICryptographicBufferStatics* This,IBuffer *buffer,UINT32 *__valueSize,BYTE **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_CopyToByteArray(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *buffer,UINT32 *__valueSize,BYTE **value) {
     return This->lpVtbl->CopyToByteArray(This,buffer,__valueSize,value);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_DecodeFromHexString(ICryptographicBufferStatics* This,HSTRING value,IBuffer **buffer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_DecodeFromHexString(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,HSTRING value,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **buffer) {
     return This->lpVtbl->DecodeFromHexString(This,value,buffer);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_EncodeToHexString(ICryptographicBufferStatics* This,IBuffer *buffer,HSTRING *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_EncodeToHexString(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *buffer,HSTRING *value) {
     return This->lpVtbl->EncodeToHexString(This,buffer,value);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_DecodeFromBase64String(ICryptographicBufferStatics* This,HSTRING value,IBuffer **buffer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_DecodeFromBase64String(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,HSTRING value,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **buffer) {
     return This->lpVtbl->DecodeFromBase64String(This,value,buffer);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_EncodeToBase64String(ICryptographicBufferStatics* This,IBuffer *buffer,HSTRING *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_EncodeToBase64String(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *buffer,HSTRING *value) {
     return This->lpVtbl->EncodeToBase64String(This,buffer,value);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_ConvertStringToBinary(ICryptographicBufferStatics* This,HSTRING value,BinaryStringEncoding encoding,IBuffer **buffer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_ConvertStringToBinary(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,HSTRING value,enum __x_ABI_CWindows_CSecurity_CCryptography_CBinaryStringEncoding encoding,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **buffer) {
     return This->lpVtbl->ConvertStringToBinary(This,value,encoding,buffer);
 }
-static FORCEINLINE HRESULT ICryptographicBufferStatics_ConvertBinaryToString(ICryptographicBufferStatics* This,BinaryStringEncoding encoding,IBuffer *buffer,HSTRING *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_ConvertBinaryToString(__x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics* This,enum __x_ABI_CWindows_CSecurity_CCryptography_CBinaryStringEncoding encoding,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *buffer,HSTRING *value) {
     return This->lpVtbl->ConvertBinaryToString(This,encoding,buffer,value);
 }
 #endif
+#ifdef WIDL_using_Windows_Security_Cryptography
+#define IID_ICryptographicBufferStatics IID___x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics
+#define ICryptographicBufferStaticsVtbl __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStaticsVtbl
+#define ICryptographicBufferStatics __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics
+#define ICryptographicBufferStatics_QueryInterface __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_QueryInterface
+#define ICryptographicBufferStatics_AddRef __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_AddRef
+#define ICryptographicBufferStatics_Release __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_Release
+#define ICryptographicBufferStatics_GetIids __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GetIids
+#define ICryptographicBufferStatics_GetRuntimeClassName __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GetRuntimeClassName
+#define ICryptographicBufferStatics_GetTrustLevel __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GetTrustLevel
+#define ICryptographicBufferStatics_Compare __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_Compare
+#define ICryptographicBufferStatics_GenerateRandom __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GenerateRandom
+#define ICryptographicBufferStatics_GenerateRandomNumber __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_GenerateRandomNumber
+#define ICryptographicBufferStatics_CreateFromByteArray __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_CreateFromByteArray
+#define ICryptographicBufferStatics_CopyToByteArray __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_CopyToByteArray
+#define ICryptographicBufferStatics_DecodeFromHexString __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_DecodeFromHexString
+#define ICryptographicBufferStatics_EncodeToHexString __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_EncodeToHexString
+#define ICryptographicBufferStatics_DecodeFromBase64String __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_DecodeFromBase64String
+#define ICryptographicBufferStatics_EncodeToBase64String __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_EncodeToBase64String
+#define ICryptographicBufferStatics_ConvertStringToBinary __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_ConvertStringToBinary
+#define ICryptographicBufferStatics_ConvertBinaryToString __x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_ConvertBinaryToString
+#endif /* WIDL_using_Windows_Security_Cryptography */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_Compare_Proxy(
-    ICryptographicBufferStatics* This,
-    IBuffer *object1,
-    IBuffer *object2,
-    boolean *isEqual);
-void __RPC_STUB ICryptographicBufferStatics_Compare_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_GenerateRandom_Proxy(
-    ICryptographicBufferStatics* This,
-    UINT32 length,
-    IBuffer **buffer);
-void __RPC_STUB ICryptographicBufferStatics_GenerateRandom_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_GenerateRandomNumber_Proxy(
-    ICryptographicBufferStatics* This,
-    UINT32 *value);
-void __RPC_STUB ICryptographicBufferStatics_GenerateRandomNumber_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_CreateFromByteArray_Proxy(
-    ICryptographicBufferStatics* This,
-    UINT32 __valueSize,
-    BYTE *value,
-    IBuffer **buffer);
-void __RPC_STUB ICryptographicBufferStatics_CreateFromByteArray_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_CopyToByteArray_Proxy(
-    ICryptographicBufferStatics* This,
-    IBuffer *buffer,
-    UINT32 *__valueSize,
-    BYTE **value);
-void __RPC_STUB ICryptographicBufferStatics_CopyToByteArray_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_DecodeFromHexString_Proxy(
-    ICryptographicBufferStatics* This,
-    HSTRING value,
-    IBuffer **buffer);
-void __RPC_STUB ICryptographicBufferStatics_DecodeFromHexString_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_EncodeToHexString_Proxy(
-    ICryptographicBufferStatics* This,
-    IBuffer *buffer,
-    HSTRING *value);
-void __RPC_STUB ICryptographicBufferStatics_EncodeToHexString_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_DecodeFromBase64String_Proxy(
-    ICryptographicBufferStatics* This,
-    HSTRING value,
-    IBuffer **buffer);
-void __RPC_STUB ICryptographicBufferStatics_DecodeFromBase64String_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_EncodeToBase64String_Proxy(
-    ICryptographicBufferStatics* This,
-    IBuffer *buffer,
-    HSTRING *value);
-void __RPC_STUB ICryptographicBufferStatics_EncodeToBase64String_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_ConvertStringToBinary_Proxy(
-    ICryptographicBufferStatics* This,
-    HSTRING value,
-    BinaryStringEncoding encoding,
-    IBuffer **buffer);
-void __RPC_STUB ICryptographicBufferStatics_ConvertStringToBinary_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ICryptographicBufferStatics_ConvertBinaryToString_Proxy(
-    ICryptographicBufferStatics* This,
-    BinaryStringEncoding encoding,
-    IBuffer *buffer,
-    HSTRING *value);
-void __RPC_STUB ICryptographicBufferStatics_ConvertBinaryToString_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ICryptographicBufferStatics_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CSecurity_CCryptography_CICryptographicBufferStatics_INTERFACE_DEFINED__ */
 
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/windows.storage.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.6 from include/windows.storage.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/windows.storage.idl - Do not edit ***/
 
+#ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
-
 #include <rpc.h>
 #include <rpcndr.h>
+#endif
 
 #ifndef COM_NO_WINDOWS_H
 #include <windows.h>
@@ -17,2120 +18,2260 @@
 
 /* Forward declarations */
 
-#ifndef __IStorageItem_FWD_DEFINED__
-#define __IStorageItem_FWD_DEFINED__
-typedef interface IStorageItem IStorageItem;
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageItem_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageItem_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIStorageItem __x_ABI_CWindows_CStorage_CIStorageItem;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIStorageItem ABI::Windows::Storage::IStorageItem
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IStorageItem;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IKnownFoldersStatics_FWD_DEFINED__
-#define __IKnownFoldersStatics_FWD_DEFINED__
-typedef interface IKnownFoldersStatics IKnownFoldersStatics;
+#ifndef ____x_ABI_CWindows_CStorage_CIKnownFoldersStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIKnownFoldersStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIKnownFoldersStatics __x_ABI_CWindows_CStorage_CIKnownFoldersStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics ABI::Windows::Storage::IKnownFoldersStatics
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IKnownFoldersStatics;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IStorageFolder_FWD_DEFINED__
-#define __IStorageFolder_FWD_DEFINED__
-typedef interface IStorageFolder IStorageFolder;
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageFolder_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageFolder_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIStorageFolder __x_ABI_CWindows_CStorage_CIStorageFolder;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIStorageFolder ABI::Windows::Storage::IStorageFolder
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IStorageFolder;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IApplicationDataContainer_FWD_DEFINED__
-#define __IApplicationDataContainer_FWD_DEFINED__
-typedef interface IApplicationDataContainer IApplicationDataContainer;
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationDataContainer_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationDataContainer_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIApplicationDataContainer __x_ABI_CWindows_CStorage_CIApplicationDataContainer;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer ABI::Windows::Storage::IApplicationDataContainer
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IApplicationDataContainer;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IApplicationData_FWD_DEFINED__
-#define __IApplicationData_FWD_DEFINED__
-typedef interface IApplicationData IApplicationData;
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationData_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationData_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIApplicationData __x_ABI_CWindows_CStorage_CIApplicationData;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIApplicationData ABI::Windows::Storage::IApplicationData
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IApplicationData;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IApplicationData2_FWD_DEFINED__
-#define __IApplicationData2_FWD_DEFINED__
-typedef interface IApplicationData2 IApplicationData2;
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationData2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationData2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIApplicationData2 __x_ABI_CWindows_CStorage_CIApplicationData2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIApplicationData2 ABI::Windows::Storage::IApplicationData2
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IApplicationData2;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IApplicationDataStatics_FWD_DEFINED__
-#define __IApplicationDataStatics_FWD_DEFINED__
-typedef interface IApplicationDataStatics IApplicationDataStatics;
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationDataStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationDataStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIApplicationDataStatics __x_ABI_CWindows_CStorage_CIApplicationDataStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIApplicationDataStatics ABI::Windows::Storage::IApplicationDataStatics
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IApplicationDataStatics;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __ApplicationDataSetVersionHandler_FWD_DEFINED__
-#define __ApplicationDataSetVersionHandler_FWD_DEFINED__
-typedef interface ApplicationDataSetVersionHandler ApplicationDataSetVersionHandler;
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler ABI::Windows::Storage::IApplicationDataSetVersionHandler
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IApplicationDataSetVersionHandler;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __ISetVersionRequest_FWD_DEFINED__
-#define __ISetVersionRequest_FWD_DEFINED__
-typedef interface ISetVersionRequest ISetVersionRequest;
+#ifndef ____x_ABI_CWindows_CStorage_CISetVersionRequest_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CISetVersionRequest_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CISetVersionRequest __x_ABI_CWindows_CStorage_CISetVersionRequest;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest ABI::Windows::Storage::ISetVersionRequest
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface ISetVersionRequest;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __ISetVersionDeferral_FWD_DEFINED__
-#define __ISetVersionDeferral_FWD_DEFINED__
-typedef interface ISetVersionDeferral ISetVersionDeferral;
+#ifndef ____x_ABI_CWindows_CStorage_CISetVersionDeferral_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CISetVersionDeferral_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CISetVersionDeferral __x_ABI_CWindows_CStorage_CISetVersionDeferral;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CISetVersionDeferral ABI::Windows::Storage::ISetVersionDeferral
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface ISetVersionDeferral;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
 
 #include <inspectable.h>
-#include <hstring.h>
+#include <eventtoken.h>
 #include <windows.foundation.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#ifndef __IAsyncAction_FWD_DEFINED__
-#define __IAsyncAction_FWD_DEFINED__
-typedef interface IAsyncAction IAsyncAction;
-#endif
-
-#ifndef __TypedEventHandler_FWD_DEFINED__
-#define __TypedEventHandler_FWD_DEFINED__
-typedef interface TypedEventHandler TypedEventHandler;
-#endif
-
-#ifndef __IPropertySet_FWD_DEFINED__
-#define __IPropertySet_FWD_DEFINED__
-typedef interface IPropertySet IPropertySet;
-#endif
-
-#ifndef __IMapView_FWD_DEFINED__
-#define __IMapView_FWD_DEFINED__
-typedef interface IMapView IMapView;
-#endif
-
-#ifndef __IStorageItem_FWD_DEFINED__
-#define __IStorageItem_FWD_DEFINED__
-typedef interface IStorageItem IStorageItem;
+#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CFoundation_CIAsyncAction __x_ABI_CWindows_CFoundation_CIAsyncAction;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CFoundation_CIAsyncAction ABI::Windows::Foundation::IAsyncAction
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            interface IAsyncAction;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IStorageFolder_FWD_DEFINED__
-#define __IStorageFolder_FWD_DEFINED__
-typedef interface IStorageFolder IStorageFolder;
+#ifndef ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet ABI::Windows::Foundation::Collections::IPropertySet
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                interface IPropertySet;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CFoundation_CCollections_CIMapView_FWD_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CCollections_CIMapView_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CFoundation_CCollections_CIMapView __x_ABI_CWindows_CFoundation_CCollections_CIMapView;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CFoundation_CCollections_CIMapView ABI::Windows::Foundation::Collections::IMapView
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                interface IMapView;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageItem_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageItem_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIStorageItem __x_ABI_CWindows_CStorage_CIStorageItem;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIStorageItem ABI::Windows::Storage::IStorageItem
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IStorageItem;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IApplicationData_FWD_DEFINED__
-#define __IApplicationData_FWD_DEFINED__
-typedef interface IApplicationData IApplicationData;
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageFolder_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageFolder_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIStorageFolder __x_ABI_CWindows_CStorage_CIStorageFolder;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIStorageFolder ABI::Windows::Storage::IStorageFolder
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IStorageFolder;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IApplicationData2_FWD_DEFINED__
-#define __IApplicationData2_FWD_DEFINED__
-typedef interface IApplicationData2 IApplicationData2;
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationData_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationData_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIApplicationData __x_ABI_CWindows_CStorage_CIApplicationData;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIApplicationData ABI::Windows::Storage::IApplicationData
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IApplicationData;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IApplicationDataStatics_FWD_DEFINED__
-#define __IApplicationDataStatics_FWD_DEFINED__
-typedef interface IApplicationDataStatics IApplicationDataStatics;
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationDataStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationDataStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIApplicationDataStatics __x_ABI_CWindows_CStorage_CIApplicationDataStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIApplicationDataStatics ABI::Windows::Storage::IApplicationDataStatics
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IApplicationDataStatics;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IApplicationDataSetVersionHandler_FWD_DEFINED__
-#define __IApplicationDataSetVersionHandler_FWD_DEFINED__
-typedef interface IApplicationDataSetVersionHandler IApplicationDataSetVersionHandler;
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler ABI::Windows::Storage::IApplicationDataSetVersionHandler
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface IApplicationDataSetVersionHandler;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __ApplicationDataContainer_FWD_DEFINED__
-#define __ApplicationDataContainer_FWD_DEFINED__
-typedef interface ApplicationDataContainer ApplicationDataContainer;
+#ifndef ____x_ABI_CWindows_CStorage_CApplicationDataContainer_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CApplicationDataContainer_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CApplicationDataContainer __x_ABI_CWindows_CStorage_CApplicationDataContainer;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CApplicationDataContainer ABI::Windows::Storage::ApplicationDataContainer
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface ApplicationDataContainer;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __ApplicationDataSetVersionHandler_FWD_DEFINED__
-#define __ApplicationDataSetVersionHandler_FWD_DEFINED__
-typedef interface ApplicationDataSetVersionHandler ApplicationDataSetVersionHandler;
+#ifndef ____x_ABI_CWindows_CStorage_CISetVersionRequest_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CISetVersionRequest_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CISetVersionRequest __x_ABI_CWindows_CStorage_CISetVersionRequest;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest ABI::Windows::Storage::ISetVersionRequest
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface ISetVersionRequest;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __ISetVersionRequest_FWD_DEFINED__
-#define __ISetVersionRequest_FWD_DEFINED__
-typedef interface ISetVersionRequest ISetVersionRequest;
+#ifndef ____x_ABI_CWindows_CStorage_CISetVersionDeferral_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CISetVersionDeferral_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CISetVersionDeferral __x_ABI_CWindows_CStorage_CISetVersionDeferral;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CISetVersionDeferral ABI::Windows::Storage::ISetVersionDeferral
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            interface ISetVersionDeferral;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __ISetVersionDeferral_FWD_DEFINED__
-#define __ISetVersionDeferral_FWD_DEFINED__
-typedef interface ISetVersionDeferral ISetVersionDeferral;
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            enum NameCollisionOption {
+                NameCollisionOption_GenerateUniqueName = 0,
+                NameCollisionOption_ReplaceExisting = 1,
+                NameCollisionOption_FailIfExists = 2
+            };
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CStorage_CNameCollisionOption {
+    NameCollisionOption_GenerateUniqueName = 0,
+    NameCollisionOption_ReplaceExisting = 1,
+    NameCollisionOption_FailIfExists = 2
+};
+#ifdef WIDL_using_Windows_Storage
+#define NameCollisionOption __x_ABI_CWindows_CStorage_CNameCollisionOption
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
-enum StorageDeleteOption;
-
-enum NameCollisionOption;
-
-enum StorageItemTypes;
-
-enum ApplicationDataLocality;
-
-enum ApplicationDataCreateDisposition;
-
-enum FileAttributes;
-
-enum CreationCollisionOption;
-
-typedef enum NameCollisionoption {
-    NameCollisionoption_GenerateUniqueName = 0,
-    NameCollisionoption_ReplaceExisting = 1,
-    NameCollisionoption_FailIfExists = 2
-} NameCollisionOption;
-typedef enum StorageDeleteOption {
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            enum StorageDeleteOption {
+                StorageDeleteOption_Default = 0,
+                StorageDeleteOption_PermanentDelete = 1
+            };
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CStorage_CStorageDeleteOption {
     StorageDeleteOption_Default = 0,
     StorageDeleteOption_PermanentDelete = 1
-} StorageDeleteOption;
-typedef enum StorageItemTypes {
+};
+#ifdef WIDL_using_Windows_Storage
+#define StorageDeleteOption __x_ABI_CWindows_CStorage_CStorageDeleteOption
+#endif /* WIDL_using_Windows_Storage */
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            enum StorageItemTypes {
+                StorageItemTypes_None = 0,
+                StorageItemTypes_File = 1,
+                StorageItemTypes_Folder = 2
+            };
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CStorage_CStorageItemTypes {
     StorageItemTypes_None = 0,
     StorageItemTypes_File = 1,
     StorageItemTypes_Folder = 2
-} StorageItemTypes;
-typedef enum ApplicationDataCreateDisposition {
+};
+#ifdef WIDL_using_Windows_Storage
+#define StorageItemTypes __x_ABI_CWindows_CStorage_CStorageItemTypes
+#endif /* WIDL_using_Windows_Storage */
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            enum ApplicationDataCreateDisposition {
+                ApplicationDataCreateDisposition_Always = 0,
+                ApplicationDataCreateDisposition_Existing = 1
+            };
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CStorage_CApplicationDataCreateDisposition {
     ApplicationDataCreateDisposition_Always = 0,
     ApplicationDataCreateDisposition_Existing = 1
-} ApplicationDataCreateDisposition;
-typedef enum ApplicationDataLocality {
+};
+#ifdef WIDL_using_Windows_Storage
+#define ApplicationDataCreateDisposition __x_ABI_CWindows_CStorage_CApplicationDataCreateDisposition
+#endif /* WIDL_using_Windows_Storage */
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            enum ApplicationDataLocality {
+                ApplicationDataLocality_Local = 0,
+                ApplicationDataLocality_Roaming = 1,
+                ApplicationDataLocality_Temporary = 2
+            };
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CStorage_CApplicationDataLocality {
     ApplicationDataLocality_Local = 0,
     ApplicationDataLocality_Roaming = 1,
     ApplicationDataLocality_Temporary = 2
-} ApplicationDataLocality;
-typedef enum FileAttributes {
+};
+#ifdef WIDL_using_Windows_Storage
+#define ApplicationDataLocality __x_ABI_CWindows_CStorage_CApplicationDataLocality
+#endif /* WIDL_using_Windows_Storage */
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            enum FileAttributes {
+                FileAttributes_Normal = 0,
+                FileAttributes_ReadOnly = 1,
+                FileAttributes_Directory = 2,
+                FileAttributes_Archive = 3,
+                FileAttributes_Temporary = 4
+            };
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CStorage_CFileAttributes {
     FileAttributes_Normal = 0,
     FileAttributes_ReadOnly = 1,
     FileAttributes_Directory = 2,
     FileAttributes_Archive = 3,
     FileAttributes_Temporary = 4
-} FileAttributes;
-typedef enum CreationCollisionOption {
+};
+#ifdef WIDL_using_Windows_Storage
+#define FileAttributes __x_ABI_CWindows_CStorage_CFileAttributes
+#endif /* WIDL_using_Windows_Storage */
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            enum CreationCollisionOption {
+                CreationCollisionOption_GenerateUniqueName = 0,
+                CreationCollisionOption_ReplaceExisting = 1,
+                CreationCollisionOption_FailIfExists = 2,
+                CreationCollisionOption_OpenIfExists = 3
+            };
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CStorage_CCreationCollisionOption {
     CreationCollisionOption_GenerateUniqueName = 0,
     CreationCollisionOption_ReplaceExisting = 1,
     CreationCollisionOption_FailIfExists = 2,
     CreationCollisionOption_OpenIfExists = 3
-} CreationCollisionOption;
+};
+#ifdef WIDL_using_Windows_Storage
+#define CreationCollisionOption __x_ABI_CWindows_CStorage_CCreationCollisionOption
+#endif /* WIDL_using_Windows_Storage */
+#endif
+
 /*****************************************************************************
  * IStorageItem interface
  */
-#ifndef __IStorageItem_INTERFACE_DEFINED__
-#define __IStorageItem_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageItem_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageItem_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IStorageItem, 0x4207a996, 0xca2f, 0x42f7, 0xbd,0xe8, 0x8b,0x10,0x45,0x7a,0x7f,0x30);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CIStorageItem, 0x4207a996, 0xca2f, 0x42f7, 0xbd,0xe8, 0x8b,0x10,0x45,0x7a,0x7f,0x30);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("4207a996-ca2f-42f7-bde8-8b10457a7f30")
-IStorageItem : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE RenameAsyncOverloadDefaultOptions(
-        HSTRING desiredName,
-        IInspectable **action) = 0;
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("4207a996-ca2f-42f7-bde8-8b10457a7f30")
+            IStorageItem : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE RenameAsyncOverloadDefaultOptions(
+                    HSTRING desiredName,
+                    IInspectable **action) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE RenameAsync(
-        HSTRING desiredName,
-        NameCollisionOption option,
-        IInspectable **action) = 0;
+                virtual HRESULT STDMETHODCALLTYPE RenameAsync(
+                    HSTRING desiredName,
+                    enum NameCollisionOption option,
+                    IInspectable **action) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE DeleteAsyncOverloadDefaultOptions(
-        IInspectable **action) = 0;
+                virtual HRESULT STDMETHODCALLTYPE DeleteAsyncOverloadDefaultOptions(
+                    IInspectable **action) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE DeleteAsync(
-        StorageDeleteOption option,
-        IInspectable **action) = 0;
+                virtual HRESULT STDMETHODCALLTYPE DeleteAsync(
+                    enum StorageDeleteOption option,
+                    IInspectable **action) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE GetBasicPropertiesAsync(
-        IInspectable **action) = 0;
+                virtual HRESULT STDMETHODCALLTYPE GetBasicPropertiesAsync(
+                    IInspectable **action) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Name(
-        HSTRING *value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_Name(
+                    HSTRING *value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Path(
-        HSTRING *value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_Path(
+                    HSTRING *value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Attributes(
-        FileAttributes *value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_Attributes(
+                    enum FileAttributes *value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_DateCreated(
-        DateTime *value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_DateCreated(
+                    struct DateTime *value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE IsOfType(
-        StorageItemTypes itemType,
-        boolean *value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE IsOfType(
+                    enum StorageItemTypes itemType,
+                    boolean *value) = 0;
 
-};
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IStorageItem, 0x4207a996, 0xca2f, 0x42f7, 0xbd,0xe8, 0x8b,0x10,0x45,0x7a,0x7f,0x30)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CIStorageItem, 0x4207a996, 0xca2f, 0x42f7, 0xbd,0xe8, 0x8b,0x10,0x45,0x7a,0x7f,0x30)
 #endif
 #else
-typedef struct IStorageItemVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CIStorageItemVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IStorageItem* This,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IStorageItem* This);
+        __x_ABI_CWindows_CStorage_CIStorageItem *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IStorageItem* This);
+        __x_ABI_CWindows_CStorage_CIStorageItem *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IStorageItem* This,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IStorageItem* This,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IStorageItem* This,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
         TrustLevel *trustLevel);
 
     /*** IStorageItem methods ***/
     HRESULT (STDMETHODCALLTYPE *RenameAsyncOverloadDefaultOptions)(
-        IStorageItem* This,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
         HSTRING desiredName,
         IInspectable **action);
 
     HRESULT (STDMETHODCALLTYPE *RenameAsync)(
-        IStorageItem* This,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
         HSTRING desiredName,
-        NameCollisionOption option,
+        enum __x_ABI_CWindows_CStorage_CNameCollisionOption option,
         IInspectable **action);
 
     HRESULT (STDMETHODCALLTYPE *DeleteAsyncOverloadDefaultOptions)(
-        IStorageItem* This,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
         IInspectable **action);
 
     HRESULT (STDMETHODCALLTYPE *DeleteAsync)(
-        IStorageItem* This,
-        StorageDeleteOption option,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
+        enum __x_ABI_CWindows_CStorage_CStorageDeleteOption option,
         IInspectable **action);
 
     HRESULT (STDMETHODCALLTYPE *GetBasicPropertiesAsync)(
-        IStorageItem* This,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
         IInspectable **action);
 
     HRESULT (STDMETHODCALLTYPE *get_Name)(
-        IStorageItem* This,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
         HSTRING *value);
 
     HRESULT (STDMETHODCALLTYPE *get_Path)(
-        IStorageItem* This,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
         HSTRING *value);
 
     HRESULT (STDMETHODCALLTYPE *get_Attributes)(
-        IStorageItem* This,
-        FileAttributes *value);
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
+        enum __x_ABI_CWindows_CStorage_CFileAttributes *value);
 
     HRESULT (STDMETHODCALLTYPE *get_DateCreated)(
-        IStorageItem* This,
-        DateTime *value);
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
+        struct __x_ABI_CWindows_CFoundation_CDateTime *value);
 
     HRESULT (STDMETHODCALLTYPE *IsOfType)(
-        IStorageItem* This,
-        StorageItemTypes itemType,
+        __x_ABI_CWindows_CStorage_CIStorageItem *This,
+        enum __x_ABI_CWindows_CStorage_CStorageItemTypes itemType,
         boolean *value);
 
     END_INTERFACE
-} IStorageItemVtbl;
-interface IStorageItem {
-    CONST_VTBL IStorageItemVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CIStorageItemVtbl;
+
+interface __x_ABI_CWindows_CStorage_CIStorageItem {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CIStorageItemVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IStorageItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IStorageItem_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IStorageItem_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IStorageItem_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IStorageItem_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IStorageItem_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IStorageItem methods ***/
-#define IStorageItem_RenameAsyncOverloadDefaultOptions(This,desiredName,action) (This)->lpVtbl->RenameAsyncOverloadDefaultOptions(This,desiredName,action)
-#define IStorageItem_RenameAsync(This,desiredName,option,action) (This)->lpVtbl->RenameAsync(This,desiredName,option,action)
-#define IStorageItem_DeleteAsyncOverloadDefaultOptions(This,action) (This)->lpVtbl->DeleteAsyncOverloadDefaultOptions(This,action)
-#define IStorageItem_DeleteAsync(This,option,action) (This)->lpVtbl->DeleteAsync(This,option,action)
-#define IStorageItem_GetBasicPropertiesAsync(This,action) (This)->lpVtbl->GetBasicPropertiesAsync(This,action)
-#define IStorageItem_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
-#define IStorageItem_get_Path(This,value) (This)->lpVtbl->get_Path(This,value)
-#define IStorageItem_get_Attributes(This,value) (This)->lpVtbl->get_Attributes(This,value)
-#define IStorageItem_get_DateCreated(This,value) (This)->lpVtbl->get_DateCreated(This,value)
-#define IStorageItem_IsOfType(This,itemType,value) (This)->lpVtbl->IsOfType(This,itemType,value)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_RenameAsyncOverloadDefaultOptions(This,desiredName,action) (This)->lpVtbl->RenameAsyncOverloadDefaultOptions(This,desiredName,action)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_RenameAsync(This,desiredName,option,action) (This)->lpVtbl->RenameAsync(This,desiredName,option,action)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_DeleteAsyncOverloadDefaultOptions(This,action) (This)->lpVtbl->DeleteAsyncOverloadDefaultOptions(This,action)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_DeleteAsync(This,option,action) (This)->lpVtbl->DeleteAsync(This,option,action)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_GetBasicPropertiesAsync(This,action) (This)->lpVtbl->GetBasicPropertiesAsync(This,action)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_get_Path(This,value) (This)->lpVtbl->get_Path(This,value)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_get_Attributes(This,value) (This)->lpVtbl->get_Attributes(This,value)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_get_DateCreated(This,value) (This)->lpVtbl->get_DateCreated(This,value)
+#define __x_ABI_CWindows_CStorage_CIStorageItem_IsOfType(This,itemType,value) (This)->lpVtbl->IsOfType(This,itemType,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IStorageItem_QueryInterface(IStorageItem* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_QueryInterface(__x_ABI_CWindows_CStorage_CIStorageItem* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IStorageItem_AddRef(IStorageItem* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIStorageItem_AddRef(__x_ABI_CWindows_CStorage_CIStorageItem* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IStorageItem_Release(IStorageItem* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIStorageItem_Release(__x_ABI_CWindows_CStorage_CIStorageItem* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IStorageItem_GetIids(IStorageItem* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_GetIids(__x_ABI_CWindows_CStorage_CIStorageItem* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IStorageItem_GetRuntimeClassName(IStorageItem* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CIStorageItem* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IStorageItem_GetTrustLevel(IStorageItem* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_GetTrustLevel(__x_ABI_CWindows_CStorage_CIStorageItem* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IStorageItem methods ***/
-static FORCEINLINE HRESULT IStorageItem_RenameAsyncOverloadDefaultOptions(IStorageItem* This,HSTRING desiredName,IInspectable **action) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_RenameAsyncOverloadDefaultOptions(__x_ABI_CWindows_CStorage_CIStorageItem* This,HSTRING desiredName,IInspectable **action) {
     return This->lpVtbl->RenameAsyncOverloadDefaultOptions(This,desiredName,action);
 }
-static FORCEINLINE HRESULT IStorageItem_RenameAsync(IStorageItem* This,HSTRING desiredName,NameCollisionOption option,IInspectable **action) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_RenameAsync(__x_ABI_CWindows_CStorage_CIStorageItem* This,HSTRING desiredName,enum __x_ABI_CWindows_CStorage_CNameCollisionOption option,IInspectable **action) {
     return This->lpVtbl->RenameAsync(This,desiredName,option,action);
 }
-static FORCEINLINE HRESULT IStorageItem_DeleteAsyncOverloadDefaultOptions(IStorageItem* This,IInspectable **action) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_DeleteAsyncOverloadDefaultOptions(__x_ABI_CWindows_CStorage_CIStorageItem* This,IInspectable **action) {
     return This->lpVtbl->DeleteAsyncOverloadDefaultOptions(This,action);
 }
-static FORCEINLINE HRESULT IStorageItem_DeleteAsync(IStorageItem* This,StorageDeleteOption option,IInspectable **action) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_DeleteAsync(__x_ABI_CWindows_CStorage_CIStorageItem* This,enum __x_ABI_CWindows_CStorage_CStorageDeleteOption option,IInspectable **action) {
     return This->lpVtbl->DeleteAsync(This,option,action);
 }
-static FORCEINLINE HRESULT IStorageItem_GetBasicPropertiesAsync(IStorageItem* This,IInspectable **action) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_GetBasicPropertiesAsync(__x_ABI_CWindows_CStorage_CIStorageItem* This,IInspectable **action) {
     return This->lpVtbl->GetBasicPropertiesAsync(This,action);
 }
-static FORCEINLINE HRESULT IStorageItem_get_Name(IStorageItem* This,HSTRING *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_get_Name(__x_ABI_CWindows_CStorage_CIStorageItem* This,HSTRING *value) {
     return This->lpVtbl->get_Name(This,value);
 }
-static FORCEINLINE HRESULT IStorageItem_get_Path(IStorageItem* This,HSTRING *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_get_Path(__x_ABI_CWindows_CStorage_CIStorageItem* This,HSTRING *value) {
     return This->lpVtbl->get_Path(This,value);
 }
-static FORCEINLINE HRESULT IStorageItem_get_Attributes(IStorageItem* This,FileAttributes *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_get_Attributes(__x_ABI_CWindows_CStorage_CIStorageItem* This,enum __x_ABI_CWindows_CStorage_CFileAttributes *value) {
     return This->lpVtbl->get_Attributes(This,value);
 }
-static FORCEINLINE HRESULT IStorageItem_get_DateCreated(IStorageItem* This,DateTime *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_get_DateCreated(__x_ABI_CWindows_CStorage_CIStorageItem* This,struct __x_ABI_CWindows_CFoundation_CDateTime *value) {
     return This->lpVtbl->get_DateCreated(This,value);
 }
-static FORCEINLINE HRESULT IStorageItem_IsOfType(IStorageItem* This,StorageItemTypes itemType,boolean *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageItem_IsOfType(__x_ABI_CWindows_CStorage_CIStorageItem* This,enum __x_ABI_CWindows_CStorage_CStorageItemTypes itemType,boolean *value) {
     return This->lpVtbl->IsOfType(This,itemType,value);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage
+#define IID_IStorageItem IID___x_ABI_CWindows_CStorage_CIStorageItem
+#define IStorageItemVtbl __x_ABI_CWindows_CStorage_CIStorageItemVtbl
+#define IStorageItem __x_ABI_CWindows_CStorage_CIStorageItem
+#define IStorageItem_QueryInterface __x_ABI_CWindows_CStorage_CIStorageItem_QueryInterface
+#define IStorageItem_AddRef __x_ABI_CWindows_CStorage_CIStorageItem_AddRef
+#define IStorageItem_Release __x_ABI_CWindows_CStorage_CIStorageItem_Release
+#define IStorageItem_GetIids __x_ABI_CWindows_CStorage_CIStorageItem_GetIids
+#define IStorageItem_GetRuntimeClassName __x_ABI_CWindows_CStorage_CIStorageItem_GetRuntimeClassName
+#define IStorageItem_GetTrustLevel __x_ABI_CWindows_CStorage_CIStorageItem_GetTrustLevel
+#define IStorageItem_RenameAsyncOverloadDefaultOptions __x_ABI_CWindows_CStorage_CIStorageItem_RenameAsyncOverloadDefaultOptions
+#define IStorageItem_RenameAsync __x_ABI_CWindows_CStorage_CIStorageItem_RenameAsync
+#define IStorageItem_DeleteAsyncOverloadDefaultOptions __x_ABI_CWindows_CStorage_CIStorageItem_DeleteAsyncOverloadDefaultOptions
+#define IStorageItem_DeleteAsync __x_ABI_CWindows_CStorage_CIStorageItem_DeleteAsync
+#define IStorageItem_GetBasicPropertiesAsync __x_ABI_CWindows_CStorage_CIStorageItem_GetBasicPropertiesAsync
+#define IStorageItem_get_Name __x_ABI_CWindows_CStorage_CIStorageItem_get_Name
+#define IStorageItem_get_Path __x_ABI_CWindows_CStorage_CIStorageItem_get_Path
+#define IStorageItem_get_Attributes __x_ABI_CWindows_CStorage_CIStorageItem_get_Attributes
+#define IStorageItem_get_DateCreated __x_ABI_CWindows_CStorage_CIStorageItem_get_DateCreated
+#define IStorageItem_IsOfType __x_ABI_CWindows_CStorage_CIStorageItem_IsOfType
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IStorageItem_RenameAsyncOverloadDefaultOptions_Proxy(
-    IStorageItem* This,
-    HSTRING desiredName,
-    IInspectable **action);
-void __RPC_STUB IStorageItem_RenameAsyncOverloadDefaultOptions_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageItem_RenameAsync_Proxy(
-    IStorageItem* This,
-    HSTRING desiredName,
-    NameCollisionOption option,
-    IInspectable **action);
-void __RPC_STUB IStorageItem_RenameAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageItem_DeleteAsyncOverloadDefaultOptions_Proxy(
-    IStorageItem* This,
-    IInspectable **action);
-void __RPC_STUB IStorageItem_DeleteAsyncOverloadDefaultOptions_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageItem_DeleteAsync_Proxy(
-    IStorageItem* This,
-    StorageDeleteOption option,
-    IInspectable **action);
-void __RPC_STUB IStorageItem_DeleteAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageItem_GetBasicPropertiesAsync_Proxy(
-    IStorageItem* This,
-    IInspectable **action);
-void __RPC_STUB IStorageItem_GetBasicPropertiesAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageItem_get_Name_Proxy(
-    IStorageItem* This,
-    HSTRING *value);
-void __RPC_STUB IStorageItem_get_Name_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageItem_get_Path_Proxy(
-    IStorageItem* This,
-    HSTRING *value);
-void __RPC_STUB IStorageItem_get_Path_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageItem_get_Attributes_Proxy(
-    IStorageItem* This,
-    FileAttributes *value);
-void __RPC_STUB IStorageItem_get_Attributes_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageItem_get_DateCreated_Proxy(
-    IStorageItem* This,
-    DateTime *value);
-void __RPC_STUB IStorageItem_get_DateCreated_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageItem_IsOfType_Proxy(
-    IStorageItem* This,
-    StorageItemTypes itemType,
-    boolean *value);
-void __RPC_STUB IStorageItem_IsOfType_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IStorageItem_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CIStorageItem_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * IKnownFoldersStatics interface
  */
-#ifndef __IKnownFoldersStatics_INTERFACE_DEFINED__
-#define __IKnownFoldersStatics_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CIKnownFoldersStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIKnownFoldersStatics_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IKnownFoldersStatics, 0x5a2a7520, 0x4802, 0x452d, 0x9a,0xd9, 0x43,0x51,0xad,0xa7,0xec,0x35);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CIKnownFoldersStatics, 0x5a2a7520, 0x4802, 0x452d, 0x9a,0xd9, 0x43,0x51,0xad,0xa7,0xec,0x35);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("5a2a7520-4802-452d-9ad9-4351ada7ec35")
-IKnownFoldersStatics : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE get_MusicLibrary(
-        IStorageFolder **value) = 0;
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("5a2a7520-4802-452d-9ad9-4351ada7ec35")
+            IKnownFoldersStatics : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE get_MusicLibrary(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_PicturesLibrary(
-        IStorageFolder **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_PicturesLibrary(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_VideosLibrary(
-        IStorageFolder **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_VideosLibrary(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_DocumentsLibrary(
-        IStorageFolder **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_DocumentsLibrary(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_HomeGroup(
-        IStorageFolder **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_HomeGroup(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_RemovableDevices(
-        IStorageFolder **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_RemovableDevices(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_MediaServerDevices(
-        IStorageFolder **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_MediaServerDevices(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
 
-};
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IKnownFoldersStatics, 0x5a2a7520, 0x4802, 0x452d, 0x9a,0xd9, 0x43,0x51,0xad,0xa7,0xec,0x35)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics, 0x5a2a7520, 0x4802, 0x452d, 0x9a,0xd9, 0x43,0x51,0xad,0xa7,0xec,0x35)
 #endif
 #else
-typedef struct IKnownFoldersStaticsVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CIKnownFoldersStaticsVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IKnownFoldersStatics* This,
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IKnownFoldersStatics* This);
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IKnownFoldersStatics* This);
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IKnownFoldersStatics* This,
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IKnownFoldersStatics* This,
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IKnownFoldersStatics* This,
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
         TrustLevel *trustLevel);
 
     /*** IKnownFoldersStatics methods ***/
     HRESULT (STDMETHODCALLTYPE *get_MusicLibrary)(
-        IKnownFoldersStatics* This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     HRESULT (STDMETHODCALLTYPE *get_PicturesLibrary)(
-        IKnownFoldersStatics* This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     HRESULT (STDMETHODCALLTYPE *get_VideosLibrary)(
-        IKnownFoldersStatics* This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     HRESULT (STDMETHODCALLTYPE *get_DocumentsLibrary)(
-        IKnownFoldersStatics* This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     HRESULT (STDMETHODCALLTYPE *get_HomeGroup)(
-        IKnownFoldersStatics* This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     HRESULT (STDMETHODCALLTYPE *get_RemovableDevices)(
-        IKnownFoldersStatics* This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     HRESULT (STDMETHODCALLTYPE *get_MediaServerDevices)(
-        IKnownFoldersStatics* This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIKnownFoldersStatics *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     END_INTERFACE
-} IKnownFoldersStaticsVtbl;
-interface IKnownFoldersStatics {
-    CONST_VTBL IKnownFoldersStaticsVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CIKnownFoldersStaticsVtbl;
+
+interface __x_ABI_CWindows_CStorage_CIKnownFoldersStatics {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CIKnownFoldersStaticsVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IKnownFoldersStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IKnownFoldersStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IKnownFoldersStatics_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IKnownFoldersStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IKnownFoldersStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IKnownFoldersStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IKnownFoldersStatics methods ***/
-#define IKnownFoldersStatics_get_MusicLibrary(This,value) (This)->lpVtbl->get_MusicLibrary(This,value)
-#define IKnownFoldersStatics_get_PicturesLibrary(This,value) (This)->lpVtbl->get_PicturesLibrary(This,value)
-#define IKnownFoldersStatics_get_VideosLibrary(This,value) (This)->lpVtbl->get_VideosLibrary(This,value)
-#define IKnownFoldersStatics_get_DocumentsLibrary(This,value) (This)->lpVtbl->get_DocumentsLibrary(This,value)
-#define IKnownFoldersStatics_get_HomeGroup(This,value) (This)->lpVtbl->get_HomeGroup(This,value)
-#define IKnownFoldersStatics_get_RemovableDevices(This,value) (This)->lpVtbl->get_RemovableDevices(This,value)
-#define IKnownFoldersStatics_get_MediaServerDevices(This,value) (This)->lpVtbl->get_MediaServerDevices(This,value)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_MusicLibrary(This,value) (This)->lpVtbl->get_MusicLibrary(This,value)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_PicturesLibrary(This,value) (This)->lpVtbl->get_PicturesLibrary(This,value)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_VideosLibrary(This,value) (This)->lpVtbl->get_VideosLibrary(This,value)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_DocumentsLibrary(This,value) (This)->lpVtbl->get_DocumentsLibrary(This,value)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_HomeGroup(This,value) (This)->lpVtbl->get_HomeGroup(This,value)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_RemovableDevices(This,value) (This)->lpVtbl->get_RemovableDevices(This,value)
+#define __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_MediaServerDevices(This,value) (This)->lpVtbl->get_MediaServerDevices(This,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IKnownFoldersStatics_QueryInterface(IKnownFoldersStatics* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_QueryInterface(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IKnownFoldersStatics_AddRef(IKnownFoldersStatics* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_AddRef(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IKnownFoldersStatics_Release(IKnownFoldersStatics* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_Release(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IKnownFoldersStatics_GetIids(IKnownFoldersStatics* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_GetIids(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IKnownFoldersStatics_GetRuntimeClassName(IKnownFoldersStatics* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IKnownFoldersStatics_GetTrustLevel(IKnownFoldersStatics* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_GetTrustLevel(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IKnownFoldersStatics methods ***/
-static FORCEINLINE HRESULT IKnownFoldersStatics_get_MusicLibrary(IKnownFoldersStatics* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_MusicLibrary(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_MusicLibrary(This,value);
 }
-static FORCEINLINE HRESULT IKnownFoldersStatics_get_PicturesLibrary(IKnownFoldersStatics* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_PicturesLibrary(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_PicturesLibrary(This,value);
 }
-static FORCEINLINE HRESULT IKnownFoldersStatics_get_VideosLibrary(IKnownFoldersStatics* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_VideosLibrary(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_VideosLibrary(This,value);
 }
-static FORCEINLINE HRESULT IKnownFoldersStatics_get_DocumentsLibrary(IKnownFoldersStatics* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_DocumentsLibrary(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_DocumentsLibrary(This,value);
 }
-static FORCEINLINE HRESULT IKnownFoldersStatics_get_HomeGroup(IKnownFoldersStatics* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_HomeGroup(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_HomeGroup(This,value);
 }
-static FORCEINLINE HRESULT IKnownFoldersStatics_get_RemovableDevices(IKnownFoldersStatics* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_RemovableDevices(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_RemovableDevices(This,value);
 }
-static FORCEINLINE HRESULT IKnownFoldersStatics_get_MediaServerDevices(IKnownFoldersStatics* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_MediaServerDevices(__x_ABI_CWindows_CStorage_CIKnownFoldersStatics* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_MediaServerDevices(This,value);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage
+#define IID_IKnownFoldersStatics IID___x_ABI_CWindows_CStorage_CIKnownFoldersStatics
+#define IKnownFoldersStaticsVtbl __x_ABI_CWindows_CStorage_CIKnownFoldersStaticsVtbl
+#define IKnownFoldersStatics __x_ABI_CWindows_CStorage_CIKnownFoldersStatics
+#define IKnownFoldersStatics_QueryInterface __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_QueryInterface
+#define IKnownFoldersStatics_AddRef __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_AddRef
+#define IKnownFoldersStatics_Release __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_Release
+#define IKnownFoldersStatics_GetIids __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_GetIids
+#define IKnownFoldersStatics_GetRuntimeClassName __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_GetRuntimeClassName
+#define IKnownFoldersStatics_GetTrustLevel __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_GetTrustLevel
+#define IKnownFoldersStatics_get_MusicLibrary __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_MusicLibrary
+#define IKnownFoldersStatics_get_PicturesLibrary __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_PicturesLibrary
+#define IKnownFoldersStatics_get_VideosLibrary __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_VideosLibrary
+#define IKnownFoldersStatics_get_DocumentsLibrary __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_DocumentsLibrary
+#define IKnownFoldersStatics_get_HomeGroup __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_HomeGroup
+#define IKnownFoldersStatics_get_RemovableDevices __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_RemovableDevices
+#define IKnownFoldersStatics_get_MediaServerDevices __x_ABI_CWindows_CStorage_CIKnownFoldersStatics_get_MediaServerDevices
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_MusicLibrary_Proxy(
-    IKnownFoldersStatics* This,
-    IStorageFolder **value);
-void __RPC_STUB IKnownFoldersStatics_get_MusicLibrary_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_PicturesLibrary_Proxy(
-    IKnownFoldersStatics* This,
-    IStorageFolder **value);
-void __RPC_STUB IKnownFoldersStatics_get_PicturesLibrary_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_VideosLibrary_Proxy(
-    IKnownFoldersStatics* This,
-    IStorageFolder **value);
-void __RPC_STUB IKnownFoldersStatics_get_VideosLibrary_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_DocumentsLibrary_Proxy(
-    IKnownFoldersStatics* This,
-    IStorageFolder **value);
-void __RPC_STUB IKnownFoldersStatics_get_DocumentsLibrary_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_HomeGroup_Proxy(
-    IKnownFoldersStatics* This,
-    IStorageFolder **value);
-void __RPC_STUB IKnownFoldersStatics_get_HomeGroup_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_RemovableDevices_Proxy(
-    IKnownFoldersStatics* This,
-    IStorageFolder **value);
-void __RPC_STUB IKnownFoldersStatics_get_RemovableDevices_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IKnownFoldersStatics_get_MediaServerDevices_Proxy(
-    IKnownFoldersStatics* This,
-    IStorageFolder **value);
-void __RPC_STUB IKnownFoldersStatics_get_MediaServerDevices_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IKnownFoldersStatics_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CIKnownFoldersStatics_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * IStorageFolder interface
  */
-#ifndef __IStorageFolder_INTERFACE_DEFINED__
-#define __IStorageFolder_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CIStorageFolder_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIStorageFolder_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IStorageFolder, 0x72d1cb78, 0xb3ef, 0x4f75, 0xa8,0x0b, 0x6f,0xd9,0xda,0xe2,0x94,0x4b);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CIStorageFolder, 0x72d1cb78, 0xb3ef, 0x4f75, 0xa8,0x0b, 0x6f,0xd9,0xda,0xe2,0x94,0x4b);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("72d1cb78-b3ef-4f75-a80b-6fd9dae2944b")
-IStorageFolder : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE CreateFileAsyncOverloadDefaultOptions(
-        HSTRING desiredName,
-        IInspectable **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateFileAsync(
-        HSTRING desiredName,
-        CreationCollisionOption options,
-        IInspectable **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateFolderAsyncOverloadDefaultOptions(
-        HSTRING desiredName,
-        IInspectable **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateFolderAsync(
-        HSTRING desiredName,
-        CreationCollisionOption options,
-        IInspectable **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetFileAsync(
-        HSTRING name,
-        IInspectable **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetFolderAsync(
-        HSTRING name,
-        IInspectable **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetItemAsync(
-        HSTRING name,
-        IInspectable **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetFilesAsyncOverloadDefaultOptionsStartAndCount(
-        IInspectable **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetFoldersAsyncOverloadDefaultOptionsStartAndCount(
-        IInspectable **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetItemsAsyncOverloadDefaultStartAndCount(
-        IInspectable **operation) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("72d1cb78-b3ef-4f75-a80b-6fd9dae2944b")
+            IStorageFolder : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE CreateFileAsyncOverloadDefaultOptions(
+                    HSTRING desiredName,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE CreateFileAsync(
+                    HSTRING desiredName,
+                    enum CreationCollisionOption options,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE CreateFolderAsyncOverloadDefaultOptions(
+                    HSTRING desiredName,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE CreateFolderAsync(
+                    HSTRING desiredName,
+                    enum CreationCollisionOption options,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE GetFileAsync(
+                    HSTRING name,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE GetFolderAsync(
+                    HSTRING name,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE GetItemAsync(
+                    HSTRING name,
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE GetFilesAsyncOverloadDefaultOptionsStartAndCount(
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE GetFoldersAsyncOverloadDefaultOptionsStartAndCount(
+                    IInspectable **operation) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE GetItemsAsyncOverloadDefaultStartAndCount(
+                    IInspectable **operation) = 0;
+
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IStorageFolder, 0x72d1cb78, 0xb3ef, 0x4f75, 0xa8,0x0b, 0x6f,0xd9,0xda,0xe2,0x94,0x4b)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CIStorageFolder, 0x72d1cb78, 0xb3ef, 0x4f75, 0xa8,0x0b, 0x6f,0xd9,0xda,0xe2,0x94,0x4b)
 #endif
 #else
-typedef struct IStorageFolderVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CIStorageFolderVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IStorageFolder* This);
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IStorageFolder* This);
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         TrustLevel *trustLevel);
 
     /*** IStorageFolder methods ***/
     HRESULT (STDMETHODCALLTYPE *CreateFileAsyncOverloadDefaultOptions)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         HSTRING desiredName,
         IInspectable **operation);
 
     HRESULT (STDMETHODCALLTYPE *CreateFileAsync)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         HSTRING desiredName,
-        CreationCollisionOption options,
+        enum __x_ABI_CWindows_CStorage_CCreationCollisionOption options,
         IInspectable **operation);
 
     HRESULT (STDMETHODCALLTYPE *CreateFolderAsyncOverloadDefaultOptions)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         HSTRING desiredName,
         IInspectable **operation);
 
     HRESULT (STDMETHODCALLTYPE *CreateFolderAsync)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         HSTRING desiredName,
-        CreationCollisionOption options,
+        enum __x_ABI_CWindows_CStorage_CCreationCollisionOption options,
         IInspectable **operation);
 
     HRESULT (STDMETHODCALLTYPE *GetFileAsync)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         HSTRING name,
         IInspectable **operation);
 
     HRESULT (STDMETHODCALLTYPE *GetFolderAsync)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         HSTRING name,
         IInspectable **operation);
 
     HRESULT (STDMETHODCALLTYPE *GetItemAsync)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         HSTRING name,
         IInspectable **operation);
 
     HRESULT (STDMETHODCALLTYPE *GetFilesAsyncOverloadDefaultOptionsStartAndCount)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         IInspectable **operation);
 
     HRESULT (STDMETHODCALLTYPE *GetFoldersAsyncOverloadDefaultOptionsStartAndCount)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         IInspectable **operation);
 
     HRESULT (STDMETHODCALLTYPE *GetItemsAsyncOverloadDefaultStartAndCount)(
-        IStorageFolder* This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder *This,
         IInspectable **operation);
 
     END_INTERFACE
-} IStorageFolderVtbl;
-interface IStorageFolder {
-    CONST_VTBL IStorageFolderVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CIStorageFolderVtbl;
+
+interface __x_ABI_CWindows_CStorage_CIStorageFolder {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CIStorageFolderVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IStorageFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IStorageFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IStorageFolder_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IStorageFolder_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IStorageFolder_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IStorageFolder_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IStorageFolder methods ***/
-#define IStorageFolder_CreateFileAsyncOverloadDefaultOptions(This,desiredName,operation) (This)->lpVtbl->CreateFileAsyncOverloadDefaultOptions(This,desiredName,operation)
-#define IStorageFolder_CreateFileAsync(This,desiredName,options,operation) (This)->lpVtbl->CreateFileAsync(This,desiredName,options,operation)
-#define IStorageFolder_CreateFolderAsyncOverloadDefaultOptions(This,desiredName,operation) (This)->lpVtbl->CreateFolderAsyncOverloadDefaultOptions(This,desiredName,operation)
-#define IStorageFolder_CreateFolderAsync(This,desiredName,options,operation) (This)->lpVtbl->CreateFolderAsync(This,desiredName,options,operation)
-#define IStorageFolder_GetFileAsync(This,name,operation) (This)->lpVtbl->GetFileAsync(This,name,operation)
-#define IStorageFolder_GetFolderAsync(This,name,operation) (This)->lpVtbl->GetFolderAsync(This,name,operation)
-#define IStorageFolder_GetItemAsync(This,name,operation) (This)->lpVtbl->GetItemAsync(This,name,operation)
-#define IStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount(This,operation) (This)->lpVtbl->GetFilesAsyncOverloadDefaultOptionsStartAndCount(This,operation)
-#define IStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount(This,operation) (This)->lpVtbl->GetFoldersAsyncOverloadDefaultOptionsStartAndCount(This,operation)
-#define IStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount(This,operation) (This)->lpVtbl->GetItemsAsyncOverloadDefaultStartAndCount(This,operation)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFileAsyncOverloadDefaultOptions(This,desiredName,operation) (This)->lpVtbl->CreateFileAsyncOverloadDefaultOptions(This,desiredName,operation)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFileAsync(This,desiredName,options,operation) (This)->lpVtbl->CreateFileAsync(This,desiredName,options,operation)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFolderAsyncOverloadDefaultOptions(This,desiredName,operation) (This)->lpVtbl->CreateFolderAsyncOverloadDefaultOptions(This,desiredName,operation)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFolderAsync(This,desiredName,options,operation) (This)->lpVtbl->CreateFolderAsync(This,desiredName,options,operation)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_GetFileAsync(This,name,operation) (This)->lpVtbl->GetFileAsync(This,name,operation)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_GetFolderAsync(This,name,operation) (This)->lpVtbl->GetFolderAsync(This,name,operation)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_GetItemAsync(This,name,operation) (This)->lpVtbl->GetItemAsync(This,name,operation)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount(This,operation) (This)->lpVtbl->GetFilesAsyncOverloadDefaultOptionsStartAndCount(This,operation)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount(This,operation) (This)->lpVtbl->GetFoldersAsyncOverloadDefaultOptionsStartAndCount(This,operation)
+#define __x_ABI_CWindows_CStorage_CIStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount(This,operation) (This)->lpVtbl->GetItemsAsyncOverloadDefaultStartAndCount(This,operation)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IStorageFolder_QueryInterface(IStorageFolder* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_QueryInterface(__x_ABI_CWindows_CStorage_CIStorageFolder* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IStorageFolder_AddRef(IStorageFolder* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIStorageFolder_AddRef(__x_ABI_CWindows_CStorage_CIStorageFolder* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IStorageFolder_Release(IStorageFolder* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIStorageFolder_Release(__x_ABI_CWindows_CStorage_CIStorageFolder* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IStorageFolder_GetIids(IStorageFolder* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_GetIids(__x_ABI_CWindows_CStorage_CIStorageFolder* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IStorageFolder_GetRuntimeClassName(IStorageFolder* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CIStorageFolder* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IStorageFolder_GetTrustLevel(IStorageFolder* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_GetTrustLevel(__x_ABI_CWindows_CStorage_CIStorageFolder* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IStorageFolder methods ***/
-static FORCEINLINE HRESULT IStorageFolder_CreateFileAsyncOverloadDefaultOptions(IStorageFolder* This,HSTRING desiredName,IInspectable **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFileAsyncOverloadDefaultOptions(__x_ABI_CWindows_CStorage_CIStorageFolder* This,HSTRING desiredName,IInspectable **operation) {
     return This->lpVtbl->CreateFileAsyncOverloadDefaultOptions(This,desiredName,operation);
 }
-static FORCEINLINE HRESULT IStorageFolder_CreateFileAsync(IStorageFolder* This,HSTRING desiredName,CreationCollisionOption options,IInspectable **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFileAsync(__x_ABI_CWindows_CStorage_CIStorageFolder* This,HSTRING desiredName,enum __x_ABI_CWindows_CStorage_CCreationCollisionOption options,IInspectable **operation) {
     return This->lpVtbl->CreateFileAsync(This,desiredName,options,operation);
 }
-static FORCEINLINE HRESULT IStorageFolder_CreateFolderAsyncOverloadDefaultOptions(IStorageFolder* This,HSTRING desiredName,IInspectable **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFolderAsyncOverloadDefaultOptions(__x_ABI_CWindows_CStorage_CIStorageFolder* This,HSTRING desiredName,IInspectable **operation) {
     return This->lpVtbl->CreateFolderAsyncOverloadDefaultOptions(This,desiredName,operation);
 }
-static FORCEINLINE HRESULT IStorageFolder_CreateFolderAsync(IStorageFolder* This,HSTRING desiredName,CreationCollisionOption options,IInspectable **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFolderAsync(__x_ABI_CWindows_CStorage_CIStorageFolder* This,HSTRING desiredName,enum __x_ABI_CWindows_CStorage_CCreationCollisionOption options,IInspectable **operation) {
     return This->lpVtbl->CreateFolderAsync(This,desiredName,options,operation);
 }
-static FORCEINLINE HRESULT IStorageFolder_GetFileAsync(IStorageFolder* This,HSTRING name,IInspectable **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_GetFileAsync(__x_ABI_CWindows_CStorage_CIStorageFolder* This,HSTRING name,IInspectable **operation) {
     return This->lpVtbl->GetFileAsync(This,name,operation);
 }
-static FORCEINLINE HRESULT IStorageFolder_GetFolderAsync(IStorageFolder* This,HSTRING name,IInspectable **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_GetFolderAsync(__x_ABI_CWindows_CStorage_CIStorageFolder* This,HSTRING name,IInspectable **operation) {
     return This->lpVtbl->GetFolderAsync(This,name,operation);
 }
-static FORCEINLINE HRESULT IStorageFolder_GetItemAsync(IStorageFolder* This,HSTRING name,IInspectable **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_GetItemAsync(__x_ABI_CWindows_CStorage_CIStorageFolder* This,HSTRING name,IInspectable **operation) {
     return This->lpVtbl->GetItemAsync(This,name,operation);
 }
-static FORCEINLINE HRESULT IStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount(IStorageFolder* This,IInspectable **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount(__x_ABI_CWindows_CStorage_CIStorageFolder* This,IInspectable **operation) {
     return This->lpVtbl->GetFilesAsyncOverloadDefaultOptionsStartAndCount(This,operation);
 }
-static FORCEINLINE HRESULT IStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount(IStorageFolder* This,IInspectable **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount(__x_ABI_CWindows_CStorage_CIStorageFolder* This,IInspectable **operation) {
     return This->lpVtbl->GetFoldersAsyncOverloadDefaultOptionsStartAndCount(This,operation);
 }
-static FORCEINLINE HRESULT IStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount(IStorageFolder* This,IInspectable **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount(__x_ABI_CWindows_CStorage_CIStorageFolder* This,IInspectable **operation) {
     return This->lpVtbl->GetItemsAsyncOverloadDefaultStartAndCount(This,operation);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage
+#define IID_IStorageFolder IID___x_ABI_CWindows_CStorage_CIStorageFolder
+#define IStorageFolderVtbl __x_ABI_CWindows_CStorage_CIStorageFolderVtbl
+#define IStorageFolder __x_ABI_CWindows_CStorage_CIStorageFolder
+#define IStorageFolder_QueryInterface __x_ABI_CWindows_CStorage_CIStorageFolder_QueryInterface
+#define IStorageFolder_AddRef __x_ABI_CWindows_CStorage_CIStorageFolder_AddRef
+#define IStorageFolder_Release __x_ABI_CWindows_CStorage_CIStorageFolder_Release
+#define IStorageFolder_GetIids __x_ABI_CWindows_CStorage_CIStorageFolder_GetIids
+#define IStorageFolder_GetRuntimeClassName __x_ABI_CWindows_CStorage_CIStorageFolder_GetRuntimeClassName
+#define IStorageFolder_GetTrustLevel __x_ABI_CWindows_CStorage_CIStorageFolder_GetTrustLevel
+#define IStorageFolder_CreateFileAsyncOverloadDefaultOptions __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFileAsyncOverloadDefaultOptions
+#define IStorageFolder_CreateFileAsync __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFileAsync
+#define IStorageFolder_CreateFolderAsyncOverloadDefaultOptions __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFolderAsyncOverloadDefaultOptions
+#define IStorageFolder_CreateFolderAsync __x_ABI_CWindows_CStorage_CIStorageFolder_CreateFolderAsync
+#define IStorageFolder_GetFileAsync __x_ABI_CWindows_CStorage_CIStorageFolder_GetFileAsync
+#define IStorageFolder_GetFolderAsync __x_ABI_CWindows_CStorage_CIStorageFolder_GetFolderAsync
+#define IStorageFolder_GetItemAsync __x_ABI_CWindows_CStorage_CIStorageFolder_GetItemAsync
+#define IStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount __x_ABI_CWindows_CStorage_CIStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount
+#define IStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount __x_ABI_CWindows_CStorage_CIStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount
+#define IStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount __x_ABI_CWindows_CStorage_CIStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IStorageFolder_CreateFileAsyncOverloadDefaultOptions_Proxy(
-    IStorageFolder* This,
-    HSTRING desiredName,
-    IInspectable **operation);
-void __RPC_STUB IStorageFolder_CreateFileAsyncOverloadDefaultOptions_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageFolder_CreateFileAsync_Proxy(
-    IStorageFolder* This,
-    HSTRING desiredName,
-    CreationCollisionOption options,
-    IInspectable **operation);
-void __RPC_STUB IStorageFolder_CreateFileAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageFolder_CreateFolderAsyncOverloadDefaultOptions_Proxy(
-    IStorageFolder* This,
-    HSTRING desiredName,
-    IInspectable **operation);
-void __RPC_STUB IStorageFolder_CreateFolderAsyncOverloadDefaultOptions_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageFolder_CreateFolderAsync_Proxy(
-    IStorageFolder* This,
-    HSTRING desiredName,
-    CreationCollisionOption options,
-    IInspectable **operation);
-void __RPC_STUB IStorageFolder_CreateFolderAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageFolder_GetFileAsync_Proxy(
-    IStorageFolder* This,
-    HSTRING name,
-    IInspectable **operation);
-void __RPC_STUB IStorageFolder_GetFileAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageFolder_GetFolderAsync_Proxy(
-    IStorageFolder* This,
-    HSTRING name,
-    IInspectable **operation);
-void __RPC_STUB IStorageFolder_GetFolderAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageFolder_GetItemAsync_Proxy(
-    IStorageFolder* This,
-    HSTRING name,
-    IInspectable **operation);
-void __RPC_STUB IStorageFolder_GetItemAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount_Proxy(
-    IStorageFolder* This,
-    IInspectable **operation);
-void __RPC_STUB IStorageFolder_GetFilesAsyncOverloadDefaultOptionsStartAndCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount_Proxy(
-    IStorageFolder* This,
-    IInspectable **operation);
-void __RPC_STUB IStorageFolder_GetFoldersAsyncOverloadDefaultOptionsStartAndCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount_Proxy(
-    IStorageFolder* This,
-    IInspectable **operation);
-void __RPC_STUB IStorageFolder_GetItemsAsyncOverloadDefaultStartAndCount_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IStorageFolder_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CIStorageFolder_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * IApplicationDataContainer interface
  */
-#ifndef __IApplicationDataContainer_INTERFACE_DEFINED__
-#define __IApplicationDataContainer_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationDataContainer_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationDataContainer_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IApplicationDataContainer, 0xc5aefd1e, 0xf467, 0x40ba, 0x85,0x66, 0xab,0x64,0x0a,0x44,0x1e,0x1d);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CIApplicationDataContainer, 0xc5aefd1e, 0xf467, 0x40ba, 0x85,0x66, 0xab,0x64,0x0a,0x44,0x1e,0x1d);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("c5aefd1e-f467-40ba-8566-ab640a441e1d")
-IApplicationDataContainer : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE get_Name(
-        HSTRING *value) = 0;
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("c5aefd1e-f467-40ba-8566-ab640a441e1d")
+            IApplicationDataContainer : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE get_Name(
+                    HSTRING *value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Locality(
-        ApplicationDataLocality *value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_Locality(
+                    enum ApplicationDataLocality *value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Values(
-        IInspectable **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_Values(
+                    IInspectable **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_Containers(
-        IInspectable **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_Containers(
+                    IInspectable **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE CreateContainer(
-        HSTRING name,
-        ApplicationDataCreateDisposition disposition,
-        IApplicationDataContainer **container) = 0;
+                virtual HRESULT STDMETHODCALLTYPE CreateContainer(
+                    HSTRING name,
+                    enum ApplicationDataCreateDisposition disposition,
+                    ABI::Windows::Storage::IApplicationDataContainer **container) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE DeleteContainer(
-        HSTRING name) = 0;
+                virtual HRESULT STDMETHODCALLTYPE DeleteContainer(
+                    HSTRING name) = 0;
 
-};
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IApplicationDataContainer, 0xc5aefd1e, 0xf467, 0x40ba, 0x85,0x66, 0xab,0x64,0x0a,0x44,0x1e,0x1d)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CIApplicationDataContainer, 0xc5aefd1e, 0xf467, 0x40ba, 0x85,0x66, 0xab,0x64,0x0a,0x44,0x1e,0x1d)
 #endif
 #else
-typedef struct IApplicationDataContainerVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CIApplicationDataContainerVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IApplicationDataContainer* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IApplicationDataContainer* This);
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IApplicationDataContainer* This);
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IApplicationDataContainer* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IApplicationDataContainer* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IApplicationDataContainer* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This,
         TrustLevel *trustLevel);
 
     /*** IApplicationDataContainer methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Name)(
-        IApplicationDataContainer* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This,
         HSTRING *value);
 
     HRESULT (STDMETHODCALLTYPE *get_Locality)(
-        IApplicationDataContainer* This,
-        ApplicationDataLocality *value);
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This,
+        enum __x_ABI_CWindows_CStorage_CApplicationDataLocality *value);
 
     HRESULT (STDMETHODCALLTYPE *get_Values)(
-        IApplicationDataContainer* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This,
         IInspectable **value);
 
     HRESULT (STDMETHODCALLTYPE *get_Containers)(
-        IApplicationDataContainer* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This,
         IInspectable **value);
 
     HRESULT (STDMETHODCALLTYPE *CreateContainer)(
-        IApplicationDataContainer* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This,
         HSTRING name,
-        ApplicationDataCreateDisposition disposition,
-        IApplicationDataContainer **container);
+        enum __x_ABI_CWindows_CStorage_CApplicationDataCreateDisposition disposition,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer **container);
 
     HRESULT (STDMETHODCALLTYPE *DeleteContainer)(
-        IApplicationDataContainer* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer *This,
         HSTRING name);
 
     END_INTERFACE
-} IApplicationDataContainerVtbl;
-interface IApplicationDataContainer {
-    CONST_VTBL IApplicationDataContainerVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CIApplicationDataContainerVtbl;
+
+interface __x_ABI_CWindows_CStorage_CIApplicationDataContainer {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CIApplicationDataContainerVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IApplicationDataContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IApplicationDataContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IApplicationDataContainer_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IApplicationDataContainer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IApplicationDataContainer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IApplicationDataContainer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IApplicationDataContainer methods ***/
-#define IApplicationDataContainer_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
-#define IApplicationDataContainer_get_Locality(This,value) (This)->lpVtbl->get_Locality(This,value)
-#define IApplicationDataContainer_get_Values(This,value) (This)->lpVtbl->get_Values(This,value)
-#define IApplicationDataContainer_get_Containers(This,value) (This)->lpVtbl->get_Containers(This,value)
-#define IApplicationDataContainer_CreateContainer(This,name,disposition,container) (This)->lpVtbl->CreateContainer(This,name,disposition,container)
-#define IApplicationDataContainer_DeleteContainer(This,name) (This)->lpVtbl->DeleteContainer(This,name)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Locality(This,value) (This)->lpVtbl->get_Locality(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Values(This,value) (This)->lpVtbl->get_Values(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Containers(This,value) (This)->lpVtbl->get_Containers(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_CreateContainer(This,name,disposition,container) (This)->lpVtbl->CreateContainer(This,name,disposition,container)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataContainer_DeleteContainer(This,name) (This)->lpVtbl->DeleteContainer(This,name)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IApplicationDataContainer_QueryInterface(IApplicationDataContainer* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataContainer_QueryInterface(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IApplicationDataContainer_AddRef(IApplicationDataContainer* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIApplicationDataContainer_AddRef(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IApplicationDataContainer_Release(IApplicationDataContainer* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIApplicationDataContainer_Release(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IApplicationDataContainer_GetIids(IApplicationDataContainer* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataContainer_GetIids(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IApplicationDataContainer_GetRuntimeClassName(IApplicationDataContainer* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataContainer_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IApplicationDataContainer_GetTrustLevel(IApplicationDataContainer* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataContainer_GetTrustLevel(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IApplicationDataContainer methods ***/
-static FORCEINLINE HRESULT IApplicationDataContainer_get_Name(IApplicationDataContainer* This,HSTRING *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Name(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This,HSTRING *value) {
     return This->lpVtbl->get_Name(This,value);
 }
-static FORCEINLINE HRESULT IApplicationDataContainer_get_Locality(IApplicationDataContainer* This,ApplicationDataLocality *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Locality(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This,enum __x_ABI_CWindows_CStorage_CApplicationDataLocality *value) {
     return This->lpVtbl->get_Locality(This,value);
 }
-static FORCEINLINE HRESULT IApplicationDataContainer_get_Values(IApplicationDataContainer* This,IInspectable **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Values(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This,IInspectable **value) {
     return This->lpVtbl->get_Values(This,value);
 }
-static FORCEINLINE HRESULT IApplicationDataContainer_get_Containers(IApplicationDataContainer* This,IInspectable **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Containers(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This,IInspectable **value) {
     return This->lpVtbl->get_Containers(This,value);
 }
-static FORCEINLINE HRESULT IApplicationDataContainer_CreateContainer(IApplicationDataContainer* This,HSTRING name,ApplicationDataCreateDisposition disposition,IApplicationDataContainer **container) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataContainer_CreateContainer(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This,HSTRING name,enum __x_ABI_CWindows_CStorage_CApplicationDataCreateDisposition disposition,__x_ABI_CWindows_CStorage_CIApplicationDataContainer **container) {
     return This->lpVtbl->CreateContainer(This,name,disposition,container);
 }
-static FORCEINLINE HRESULT IApplicationDataContainer_DeleteContainer(IApplicationDataContainer* This,HSTRING name) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataContainer_DeleteContainer(__x_ABI_CWindows_CStorage_CIApplicationDataContainer* This,HSTRING name) {
     return This->lpVtbl->DeleteContainer(This,name);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage
+#define IID_IApplicationDataContainer IID___x_ABI_CWindows_CStorage_CIApplicationDataContainer
+#define IApplicationDataContainerVtbl __x_ABI_CWindows_CStorage_CIApplicationDataContainerVtbl
+#define IApplicationDataContainer __x_ABI_CWindows_CStorage_CIApplicationDataContainer
+#define IApplicationDataContainer_QueryInterface __x_ABI_CWindows_CStorage_CIApplicationDataContainer_QueryInterface
+#define IApplicationDataContainer_AddRef __x_ABI_CWindows_CStorage_CIApplicationDataContainer_AddRef
+#define IApplicationDataContainer_Release __x_ABI_CWindows_CStorage_CIApplicationDataContainer_Release
+#define IApplicationDataContainer_GetIids __x_ABI_CWindows_CStorage_CIApplicationDataContainer_GetIids
+#define IApplicationDataContainer_GetRuntimeClassName __x_ABI_CWindows_CStorage_CIApplicationDataContainer_GetRuntimeClassName
+#define IApplicationDataContainer_GetTrustLevel __x_ABI_CWindows_CStorage_CIApplicationDataContainer_GetTrustLevel
+#define IApplicationDataContainer_get_Name __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Name
+#define IApplicationDataContainer_get_Locality __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Locality
+#define IApplicationDataContainer_get_Values __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Values
+#define IApplicationDataContainer_get_Containers __x_ABI_CWindows_CStorage_CIApplicationDataContainer_get_Containers
+#define IApplicationDataContainer_CreateContainer __x_ABI_CWindows_CStorage_CIApplicationDataContainer_CreateContainer
+#define IApplicationDataContainer_DeleteContainer __x_ABI_CWindows_CStorage_CIApplicationDataContainer_DeleteContainer
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IApplicationDataContainer_get_Name_Proxy(
-    IApplicationDataContainer* This,
-    HSTRING *value);
-void __RPC_STUB IApplicationDataContainer_get_Name_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationDataContainer_get_Locality_Proxy(
-    IApplicationDataContainer* This,
-    ApplicationDataLocality *value);
-void __RPC_STUB IApplicationDataContainer_get_Locality_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationDataContainer_get_Values_Proxy(
-    IApplicationDataContainer* This,
-    IInspectable **value);
-void __RPC_STUB IApplicationDataContainer_get_Values_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationDataContainer_get_Containers_Proxy(
-    IApplicationDataContainer* This,
-    IInspectable **value);
-void __RPC_STUB IApplicationDataContainer_get_Containers_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationDataContainer_CreateContainer_Proxy(
-    IApplicationDataContainer* This,
-    HSTRING name,
-    ApplicationDataCreateDisposition disposition,
-    IApplicationDataContainer **container);
-void __RPC_STUB IApplicationDataContainer_CreateContainer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationDataContainer_DeleteContainer_Proxy(
-    IApplicationDataContainer* This,
-    HSTRING name);
-void __RPC_STUB IApplicationDataContainer_DeleteContainer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IApplicationDataContainer_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CIApplicationDataContainer_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * IApplicationData interface
  */
-#ifndef __IApplicationData_INTERFACE_DEFINED__
-#define __IApplicationData_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationData_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationData_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IApplicationData, 0xc3da6fb7, 0xb744, 0x4b45, 0xb0,0xb8, 0x22,0x3a,0x09,0x38,0xd0,0xdc);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CIApplicationData, 0xc3da6fb7, 0xb744, 0x4b45, 0xb0,0xb8, 0x22,0x3a,0x09,0x38,0xd0,0xdc);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("c3da6fb7-b744-4b45-b0b8-223a0938d0dc")
-IApplicationData : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE get_Version(
-        int *value) = 0;
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("c3da6fb7-b744-4b45-b0b8-223a0938d0dc")
+            IApplicationData : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE get_Version(
+                    int *value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE SetVersionAsync(
-        int desiredVersion,
-        ApplicationDataSetVersionHandler *handler,
-        IInspectable **setVersionOperation) = 0;
+                virtual HRESULT STDMETHODCALLTYPE SetVersionAsync(
+                    int desiredVersion,
+                    ABI::Windows::Storage::IApplicationDataSetVersionHandler *handler,
+                    IInspectable **setVersionOperation) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE ClearAllAsync(
-        IInspectable **clearOperation) = 0;
+                virtual HRESULT STDMETHODCALLTYPE ClearAllAsync(
+                    IInspectable **clearOperation) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE ClearAsync(
-        ApplicationDataLocality locality,
-        IInspectable **clearOperation) = 0;
+                virtual HRESULT STDMETHODCALLTYPE ClearAsync(
+                    enum ApplicationDataLocality locality,
+                    IInspectable **clearOperation) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_LocalSettings(
-        IApplicationDataContainer **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_LocalSettings(
+                    ABI::Windows::Storage::IApplicationDataContainer **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_RoamingSettings(
-        IApplicationDataContainer **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_RoamingSettings(
+                    ABI::Windows::Storage::IApplicationDataContainer **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_LocalFolder(
-        IStorageFolder **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_LocalFolder(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_RoamingFolder(
-        IStorageFolder **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_RoamingFolder(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE get_TemporaryFolder(
-        IStorageFolder **value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_TemporaryFolder(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE DataChanged(
-        EventRegistrationToken token) = 0;
+                virtual HRESULT STDMETHODCALLTYPE DataChanged(
+                    EventRegistrationToken token) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE SignalDataChanged(
-        ) = 0;
+                virtual HRESULT STDMETHODCALLTYPE SignalDataChanged(
+                    ) = 0;
 
-    virtual HRESULT STDMETHODCALLTYPE RoamingStorageQuota(
-        UINT64 *value) = 0;
+                virtual HRESULT STDMETHODCALLTYPE RoamingStorageQuota(
+                    UINT64 *value) = 0;
 
-};
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IApplicationData, 0xc3da6fb7, 0xb744, 0x4b45, 0xb0,0xb8, 0x22,0x3a,0x09,0x38,0xd0,0xdc)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CIApplicationData, 0xc3da6fb7, 0xb744, 0x4b45, 0xb0,0xb8, 0x22,0x3a,0x09,0x38,0xd0,0xdc)
 #endif
 #else
-typedef struct IApplicationDataVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CIApplicationDataVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IApplicationData* This,
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IApplicationData* This);
+        __x_ABI_CWindows_CStorage_CIApplicationData *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IApplicationData* This);
+        __x_ABI_CWindows_CStorage_CIApplicationData *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IApplicationData* This,
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IApplicationData* This,
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IApplicationData* This,
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
         TrustLevel *trustLevel);
 
     /*** IApplicationData methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Version)(
-        IApplicationData* This,
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
         int *value);
 
     HRESULT (STDMETHODCALLTYPE *SetVersionAsync)(
-        IApplicationData* This,
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
         int desiredVersion,
-        ApplicationDataSetVersionHandler *handler,
+        __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler *handler,
         IInspectable **setVersionOperation);
 
     HRESULT (STDMETHODCALLTYPE *ClearAllAsync)(
-        IApplicationData* This,
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
         IInspectable **clearOperation);
 
     HRESULT (STDMETHODCALLTYPE *ClearAsync)(
-        IApplicationData* This,
-        ApplicationDataLocality locality,
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
+        enum __x_ABI_CWindows_CStorage_CApplicationDataLocality locality,
         IInspectable **clearOperation);
 
     HRESULT (STDMETHODCALLTYPE *get_LocalSettings)(
-        IApplicationData* This,
-        IApplicationDataContainer **value);
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer **value);
 
     HRESULT (STDMETHODCALLTYPE *get_RoamingSettings)(
-        IApplicationData* This,
-        IApplicationDataContainer **value);
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataContainer **value);
 
     HRESULT (STDMETHODCALLTYPE *get_LocalFolder)(
-        IApplicationData* This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     HRESULT (STDMETHODCALLTYPE *get_RoamingFolder)(
-        IApplicationData* This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     HRESULT (STDMETHODCALLTYPE *get_TemporaryFolder)(
-        IApplicationData* This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     HRESULT (STDMETHODCALLTYPE *DataChanged)(
-        IApplicationData* This,
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
         EventRegistrationToken token);
 
     HRESULT (STDMETHODCALLTYPE *SignalDataChanged)(
-        IApplicationData* This);
+        __x_ABI_CWindows_CStorage_CIApplicationData *This);
 
     HRESULT (STDMETHODCALLTYPE *RoamingStorageQuota)(
-        IApplicationData* This,
+        __x_ABI_CWindows_CStorage_CIApplicationData *This,
         UINT64 *value);
 
     END_INTERFACE
-} IApplicationDataVtbl;
-interface IApplicationData {
-    CONST_VTBL IApplicationDataVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CIApplicationDataVtbl;
+
+interface __x_ABI_CWindows_CStorage_CIApplicationData {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CIApplicationDataVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IApplicationData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IApplicationData_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IApplicationData_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IApplicationData_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IApplicationData_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IApplicationData_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IApplicationData methods ***/
-#define IApplicationData_get_Version(This,value) (This)->lpVtbl->get_Version(This,value)
-#define IApplicationData_SetVersionAsync(This,desiredVersion,handler,setVersionOperation) (This)->lpVtbl->SetVersionAsync(This,desiredVersion,handler,setVersionOperation)
-#define IApplicationData_ClearAllAsync(This,clearOperation) (This)->lpVtbl->ClearAllAsync(This,clearOperation)
-#define IApplicationData_ClearAsync(This,locality,clearOperation) (This)->lpVtbl->ClearAsync(This,locality,clearOperation)
-#define IApplicationData_get_LocalSettings(This,value) (This)->lpVtbl->get_LocalSettings(This,value)
-#define IApplicationData_get_RoamingSettings(This,value) (This)->lpVtbl->get_RoamingSettings(This,value)
-#define IApplicationData_get_LocalFolder(This,value) (This)->lpVtbl->get_LocalFolder(This,value)
-#define IApplicationData_get_RoamingFolder(This,value) (This)->lpVtbl->get_RoamingFolder(This,value)
-#define IApplicationData_get_TemporaryFolder(This,value) (This)->lpVtbl->get_TemporaryFolder(This,value)
-#define IApplicationData_DataChanged(This,token) (This)->lpVtbl->DataChanged(This,token)
-#define IApplicationData_SignalDataChanged(This) (This)->lpVtbl->SignalDataChanged(This)
-#define IApplicationData_RoamingStorageQuota(This,value) (This)->lpVtbl->RoamingStorageQuota(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_get_Version(This,value) (This)->lpVtbl->get_Version(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_SetVersionAsync(This,desiredVersion,handler,setVersionOperation) (This)->lpVtbl->SetVersionAsync(This,desiredVersion,handler,setVersionOperation)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_ClearAllAsync(This,clearOperation) (This)->lpVtbl->ClearAllAsync(This,clearOperation)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_ClearAsync(This,locality,clearOperation) (This)->lpVtbl->ClearAsync(This,locality,clearOperation)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_get_LocalSettings(This,value) (This)->lpVtbl->get_LocalSettings(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_get_RoamingSettings(This,value) (This)->lpVtbl->get_RoamingSettings(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_get_LocalFolder(This,value) (This)->lpVtbl->get_LocalFolder(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_get_RoamingFolder(This,value) (This)->lpVtbl->get_RoamingFolder(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_get_TemporaryFolder(This,value) (This)->lpVtbl->get_TemporaryFolder(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_DataChanged(This,token) (This)->lpVtbl->DataChanged(This,token)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_SignalDataChanged(This) (This)->lpVtbl->SignalDataChanged(This)
+#define __x_ABI_CWindows_CStorage_CIApplicationData_RoamingStorageQuota(This,value) (This)->lpVtbl->RoamingStorageQuota(This,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IApplicationData_QueryInterface(IApplicationData* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_QueryInterface(__x_ABI_CWindows_CStorage_CIApplicationData* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IApplicationData_AddRef(IApplicationData* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIApplicationData_AddRef(__x_ABI_CWindows_CStorage_CIApplicationData* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IApplicationData_Release(IApplicationData* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIApplicationData_Release(__x_ABI_CWindows_CStorage_CIApplicationData* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IApplicationData_GetIids(IApplicationData* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_GetIids(__x_ABI_CWindows_CStorage_CIApplicationData* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IApplicationData_GetRuntimeClassName(IApplicationData* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CIApplicationData* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IApplicationData_GetTrustLevel(IApplicationData* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_GetTrustLevel(__x_ABI_CWindows_CStorage_CIApplicationData* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IApplicationData methods ***/
-static FORCEINLINE HRESULT IApplicationData_get_Version(IApplicationData* This,int *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_get_Version(__x_ABI_CWindows_CStorage_CIApplicationData* This,int *value) {
     return This->lpVtbl->get_Version(This,value);
 }
-static FORCEINLINE HRESULT IApplicationData_SetVersionAsync(IApplicationData* This,int desiredVersion,ApplicationDataSetVersionHandler *handler,IInspectable **setVersionOperation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_SetVersionAsync(__x_ABI_CWindows_CStorage_CIApplicationData* This,int desiredVersion,__x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler *handler,IInspectable **setVersionOperation) {
     return This->lpVtbl->SetVersionAsync(This,desiredVersion,handler,setVersionOperation);
 }
-static FORCEINLINE HRESULT IApplicationData_ClearAllAsync(IApplicationData* This,IInspectable **clearOperation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_ClearAllAsync(__x_ABI_CWindows_CStorage_CIApplicationData* This,IInspectable **clearOperation) {
     return This->lpVtbl->ClearAllAsync(This,clearOperation);
 }
-static FORCEINLINE HRESULT IApplicationData_ClearAsync(IApplicationData* This,ApplicationDataLocality locality,IInspectable **clearOperation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_ClearAsync(__x_ABI_CWindows_CStorage_CIApplicationData* This,enum __x_ABI_CWindows_CStorage_CApplicationDataLocality locality,IInspectable **clearOperation) {
     return This->lpVtbl->ClearAsync(This,locality,clearOperation);
 }
-static FORCEINLINE HRESULT IApplicationData_get_LocalSettings(IApplicationData* This,IApplicationDataContainer **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_get_LocalSettings(__x_ABI_CWindows_CStorage_CIApplicationData* This,__x_ABI_CWindows_CStorage_CIApplicationDataContainer **value) {
     return This->lpVtbl->get_LocalSettings(This,value);
 }
-static FORCEINLINE HRESULT IApplicationData_get_RoamingSettings(IApplicationData* This,IApplicationDataContainer **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_get_RoamingSettings(__x_ABI_CWindows_CStorage_CIApplicationData* This,__x_ABI_CWindows_CStorage_CIApplicationDataContainer **value) {
     return This->lpVtbl->get_RoamingSettings(This,value);
 }
-static FORCEINLINE HRESULT IApplicationData_get_LocalFolder(IApplicationData* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_get_LocalFolder(__x_ABI_CWindows_CStorage_CIApplicationData* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_LocalFolder(This,value);
 }
-static FORCEINLINE HRESULT IApplicationData_get_RoamingFolder(IApplicationData* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_get_RoamingFolder(__x_ABI_CWindows_CStorage_CIApplicationData* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_RoamingFolder(This,value);
 }
-static FORCEINLINE HRESULT IApplicationData_get_TemporaryFolder(IApplicationData* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_get_TemporaryFolder(__x_ABI_CWindows_CStorage_CIApplicationData* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_TemporaryFolder(This,value);
 }
-static FORCEINLINE HRESULT IApplicationData_DataChanged(IApplicationData* This,EventRegistrationToken token) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_DataChanged(__x_ABI_CWindows_CStorage_CIApplicationData* This,EventRegistrationToken token) {
     return This->lpVtbl->DataChanged(This,token);
 }
-static FORCEINLINE HRESULT IApplicationData_SignalDataChanged(IApplicationData* This) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_SignalDataChanged(__x_ABI_CWindows_CStorage_CIApplicationData* This) {
     return This->lpVtbl->SignalDataChanged(This);
 }
-static FORCEINLINE HRESULT IApplicationData_RoamingStorageQuota(IApplicationData* This,UINT64 *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_RoamingStorageQuota(__x_ABI_CWindows_CStorage_CIApplicationData* This,UINT64 *value) {
     return This->lpVtbl->RoamingStorageQuota(This,value);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage
+#define IID_IApplicationData IID___x_ABI_CWindows_CStorage_CIApplicationData
+#define IApplicationDataVtbl __x_ABI_CWindows_CStorage_CIApplicationDataVtbl
+#define IApplicationData __x_ABI_CWindows_CStorage_CIApplicationData
+#define IApplicationData_QueryInterface __x_ABI_CWindows_CStorage_CIApplicationData_QueryInterface
+#define IApplicationData_AddRef __x_ABI_CWindows_CStorage_CIApplicationData_AddRef
+#define IApplicationData_Release __x_ABI_CWindows_CStorage_CIApplicationData_Release
+#define IApplicationData_GetIids __x_ABI_CWindows_CStorage_CIApplicationData_GetIids
+#define IApplicationData_GetRuntimeClassName __x_ABI_CWindows_CStorage_CIApplicationData_GetRuntimeClassName
+#define IApplicationData_GetTrustLevel __x_ABI_CWindows_CStorage_CIApplicationData_GetTrustLevel
+#define IApplicationData_get_Version __x_ABI_CWindows_CStorage_CIApplicationData_get_Version
+#define IApplicationData_SetVersionAsync __x_ABI_CWindows_CStorage_CIApplicationData_SetVersionAsync
+#define IApplicationData_ClearAllAsync __x_ABI_CWindows_CStorage_CIApplicationData_ClearAllAsync
+#define IApplicationData_ClearAsync __x_ABI_CWindows_CStorage_CIApplicationData_ClearAsync
+#define IApplicationData_get_LocalSettings __x_ABI_CWindows_CStorage_CIApplicationData_get_LocalSettings
+#define IApplicationData_get_RoamingSettings __x_ABI_CWindows_CStorage_CIApplicationData_get_RoamingSettings
+#define IApplicationData_get_LocalFolder __x_ABI_CWindows_CStorage_CIApplicationData_get_LocalFolder
+#define IApplicationData_get_RoamingFolder __x_ABI_CWindows_CStorage_CIApplicationData_get_RoamingFolder
+#define IApplicationData_get_TemporaryFolder __x_ABI_CWindows_CStorage_CIApplicationData_get_TemporaryFolder
+#define IApplicationData_DataChanged __x_ABI_CWindows_CStorage_CIApplicationData_DataChanged
+#define IApplicationData_SignalDataChanged __x_ABI_CWindows_CStorage_CIApplicationData_SignalDataChanged
+#define IApplicationData_RoamingStorageQuota __x_ABI_CWindows_CStorage_CIApplicationData_RoamingStorageQuota
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IApplicationData_get_Version_Proxy(
-    IApplicationData* This,
-    int *value);
-void __RPC_STUB IApplicationData_get_Version_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_SetVersionAsync_Proxy(
-    IApplicationData* This,
-    int desiredVersion,
-    ApplicationDataSetVersionHandler *handler,
-    IInspectable **setVersionOperation);
-void __RPC_STUB IApplicationData_SetVersionAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_ClearAllAsync_Proxy(
-    IApplicationData* This,
-    IInspectable **clearOperation);
-void __RPC_STUB IApplicationData_ClearAllAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_ClearAsync_Proxy(
-    IApplicationData* This,
-    ApplicationDataLocality locality,
-    IInspectable **clearOperation);
-void __RPC_STUB IApplicationData_ClearAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_get_LocalSettings_Proxy(
-    IApplicationData* This,
-    IApplicationDataContainer **value);
-void __RPC_STUB IApplicationData_get_LocalSettings_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_get_RoamingSettings_Proxy(
-    IApplicationData* This,
-    IApplicationDataContainer **value);
-void __RPC_STUB IApplicationData_get_RoamingSettings_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_get_LocalFolder_Proxy(
-    IApplicationData* This,
-    IStorageFolder **value);
-void __RPC_STUB IApplicationData_get_LocalFolder_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_get_RoamingFolder_Proxy(
-    IApplicationData* This,
-    IStorageFolder **value);
-void __RPC_STUB IApplicationData_get_RoamingFolder_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_get_TemporaryFolder_Proxy(
-    IApplicationData* This,
-    IStorageFolder **value);
-void __RPC_STUB IApplicationData_get_TemporaryFolder_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_DataChanged_Proxy(
-    IApplicationData* This,
-    EventRegistrationToken token);
-void __RPC_STUB IApplicationData_DataChanged_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_SignalDataChanged_Proxy(
-    IApplicationData* This);
-void __RPC_STUB IApplicationData_SignalDataChanged_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IApplicationData_RoamingStorageQuota_Proxy(
-    IApplicationData* This,
-    UINT64 *value);
-void __RPC_STUB IApplicationData_RoamingStorageQuota_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IApplicationData_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CIApplicationData_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * IApplicationData2 interface
  */
-#ifndef __IApplicationData2_INTERFACE_DEFINED__
-#define __IApplicationData2_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationData2_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationData2_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IApplicationData2, 0x9e65cd69, 0x0ba3, 0x4e32, 0xbe,0x29, 0xb0,0x2d,0xe6,0x60,0x76,0x38);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CIApplicationData2, 0x9e65cd69, 0x0ba3, 0x4e32, 0xbe,0x29, 0xb0,0x2d,0xe6,0x60,0x76,0x38);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("9e65cd69-0ba3-4e32-be29-b02de6607638")
-IApplicationData2 : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE get_LocalCacheFolder(
-        IStorageFolder **value) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("9e65cd69-0ba3-4e32-be29-b02de6607638")
+            IApplicationData2 : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE get_LocalCacheFolder(
+                    ABI::Windows::Storage::IStorageFolder **value) = 0;
+
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IApplicationData2, 0x9e65cd69, 0x0ba3, 0x4e32, 0xbe,0x29, 0xb0,0x2d,0xe6,0x60,0x76,0x38)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CIApplicationData2, 0x9e65cd69, 0x0ba3, 0x4e32, 0xbe,0x29, 0xb0,0x2d,0xe6,0x60,0x76,0x38)
 #endif
 #else
-typedef struct IApplicationData2Vtbl {
+typedef struct __x_ABI_CWindows_CStorage_CIApplicationData2Vtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IApplicationData2 *This,
+        __x_ABI_CWindows_CStorage_CIApplicationData2 *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IApplicationData2 *This);
+        __x_ABI_CWindows_CStorage_CIApplicationData2 *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IApplicationData2 *This);
+        __x_ABI_CWindows_CStorage_CIApplicationData2 *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IApplicationData2 *This,
+        __x_ABI_CWindows_CStorage_CIApplicationData2 *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IApplicationData2 *This,
+        __x_ABI_CWindows_CStorage_CIApplicationData2 *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IApplicationData2 *This,
+        __x_ABI_CWindows_CStorage_CIApplicationData2 *This,
         TrustLevel *trustLevel);
 
     /*** IApplicationData2 methods ***/
     HRESULT (STDMETHODCALLTYPE *get_LocalCacheFolder)(
-        IApplicationData2 *This,
-        IStorageFolder **value);
+        __x_ABI_CWindows_CStorage_CIApplicationData2 *This,
+        __x_ABI_CWindows_CStorage_CIStorageFolder **value);
 
     END_INTERFACE
-} IApplicationData2Vtbl;
+} __x_ABI_CWindows_CStorage_CIApplicationData2Vtbl;
 
-interface IApplicationData2 {
-    CONST_VTBL IApplicationData2Vtbl* lpVtbl;
+interface __x_ABI_CWindows_CStorage_CIApplicationData2 {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CIApplicationData2Vtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IApplicationData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IApplicationData2_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IApplicationData2_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CIApplicationData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CIApplicationData2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CIApplicationData2_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IApplicationData2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IApplicationData2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IApplicationData2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CIApplicationData2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CIApplicationData2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CIApplicationData2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IApplicationData2 methods ***/
-#define IApplicationData2_get_LocalCacheFolder(This,value) (This)->lpVtbl->get_LocalCacheFolder(This,value)
+#define __x_ABI_CWindows_CStorage_CIApplicationData2_get_LocalCacheFolder(This,value) (This)->lpVtbl->get_LocalCacheFolder(This,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IApplicationData2_QueryInterface(IApplicationData2* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData2_QueryInterface(__x_ABI_CWindows_CStorage_CIApplicationData2* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IApplicationData2_AddRef(IApplicationData2* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIApplicationData2_AddRef(__x_ABI_CWindows_CStorage_CIApplicationData2* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IApplicationData2_Release(IApplicationData2* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIApplicationData2_Release(__x_ABI_CWindows_CStorage_CIApplicationData2* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IApplicationData2_GetIids(IApplicationData2* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData2_GetIids(__x_ABI_CWindows_CStorage_CIApplicationData2* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IApplicationData2_GetRuntimeClassName(IApplicationData2* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData2_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CIApplicationData2* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IApplicationData2_GetTrustLevel(IApplicationData2* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData2_GetTrustLevel(__x_ABI_CWindows_CStorage_CIApplicationData2* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IApplicationData2 methods ***/
-static FORCEINLINE HRESULT IApplicationData2_get_LocalCacheFolder(IApplicationData2* This,IStorageFolder **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData2_get_LocalCacheFolder(__x_ABI_CWindows_CStorage_CIApplicationData2* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_LocalCacheFolder(This,value);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage
+#define IID_IApplicationData2 IID___x_ABI_CWindows_CStorage_CIApplicationData2
+#define IApplicationData2Vtbl __x_ABI_CWindows_CStorage_CIApplicationData2Vtbl
+#define IApplicationData2 __x_ABI_CWindows_CStorage_CIApplicationData2
+#define IApplicationData2_QueryInterface __x_ABI_CWindows_CStorage_CIApplicationData2_QueryInterface
+#define IApplicationData2_AddRef __x_ABI_CWindows_CStorage_CIApplicationData2_AddRef
+#define IApplicationData2_Release __x_ABI_CWindows_CStorage_CIApplicationData2_Release
+#define IApplicationData2_GetIids __x_ABI_CWindows_CStorage_CIApplicationData2_GetIids
+#define IApplicationData2_GetRuntimeClassName __x_ABI_CWindows_CStorage_CIApplicationData2_GetRuntimeClassName
+#define IApplicationData2_GetTrustLevel __x_ABI_CWindows_CStorage_CIApplicationData2_GetTrustLevel
+#define IApplicationData2_get_LocalCacheFolder __x_ABI_CWindows_CStorage_CIApplicationData2_get_LocalCacheFolder
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
 #endif
 
-#endif  /* __IApplicationData2_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CIApplicationData2_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * IApplicationDataStatics interface
  */
-#ifndef __IApplicationDataStatics_INTERFACE_DEFINED__
-#define __IApplicationDataStatics_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationDataStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationDataStatics_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IApplicationDataStatics, 0x5612147b, 0xe843, 0x45e3, 0x94,0xd8, 0x06,0x16,0x9e,0x3c,0x8e,0x17);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CIApplicationDataStatics, 0x5612147b, 0xe843, 0x45e3, 0x94,0xd8, 0x06,0x16,0x9e,0x3c,0x8e,0x17);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("5612147b-e843-45e3-94d8-06169e3c8e17")
-IApplicationDataStatics : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE get_Current(
-        IApplicationData **data) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("5612147b-e843-45e3-94d8-06169e3c8e17")
+            IApplicationDataStatics : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE get_Current(
+                    ABI::Windows::Storage::IApplicationData **data) = 0;
+
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IApplicationDataStatics, 0x5612147b, 0xe843, 0x45e3, 0x94,0xd8, 0x06,0x16,0x9e,0x3c,0x8e,0x17)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CIApplicationDataStatics, 0x5612147b, 0xe843, 0x45e3, 0x94,0xd8, 0x06,0x16,0x9e,0x3c,0x8e,0x17)
 #endif
 #else
-typedef struct IApplicationDataStaticsVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CIApplicationDataStaticsVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IApplicationDataStatics* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataStatics *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IApplicationDataStatics* This);
+        __x_ABI_CWindows_CStorage_CIApplicationDataStatics *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IApplicationDataStatics* This);
+        __x_ABI_CWindows_CStorage_CIApplicationDataStatics *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IApplicationDataStatics* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataStatics *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IApplicationDataStatics* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataStatics *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IApplicationDataStatics* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataStatics *This,
         TrustLevel *trustLevel);
 
     /*** IApplicationDataStatics methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Current)(
-        IApplicationDataStatics* This,
-        IApplicationData **data);
+        __x_ABI_CWindows_CStorage_CIApplicationDataStatics *This,
+        __x_ABI_CWindows_CStorage_CIApplicationData **data);
 
     END_INTERFACE
-} IApplicationDataStaticsVtbl;
-interface IApplicationDataStatics {
-    CONST_VTBL IApplicationDataStaticsVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CIApplicationDataStaticsVtbl;
+
+interface __x_ABI_CWindows_CStorage_CIApplicationDataStatics {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CIApplicationDataStaticsVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IApplicationDataStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IApplicationDataStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IApplicationDataStatics_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataStatics_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IApplicationDataStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IApplicationDataStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IApplicationDataStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IApplicationDataStatics methods ***/
-#define IApplicationDataStatics_get_Current(This,data) (This)->lpVtbl->get_Current(This,data)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataStatics_get_Current(This,data) (This)->lpVtbl->get_Current(This,data)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IApplicationDataStatics_QueryInterface(IApplicationDataStatics* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataStatics_QueryInterface(__x_ABI_CWindows_CStorage_CIApplicationDataStatics* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IApplicationDataStatics_AddRef(IApplicationDataStatics* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIApplicationDataStatics_AddRef(__x_ABI_CWindows_CStorage_CIApplicationDataStatics* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IApplicationDataStatics_Release(IApplicationDataStatics* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIApplicationDataStatics_Release(__x_ABI_CWindows_CStorage_CIApplicationDataStatics* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IApplicationDataStatics_GetIids(IApplicationDataStatics* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataStatics_GetIids(__x_ABI_CWindows_CStorage_CIApplicationDataStatics* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IApplicationDataStatics_GetRuntimeClassName(IApplicationDataStatics* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataStatics_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CIApplicationDataStatics* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IApplicationDataStatics_GetTrustLevel(IApplicationDataStatics* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataStatics_GetTrustLevel(__x_ABI_CWindows_CStorage_CIApplicationDataStatics* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IApplicationDataStatics methods ***/
-static FORCEINLINE HRESULT IApplicationDataStatics_get_Current(IApplicationDataStatics* This,IApplicationData **data) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataStatics_get_Current(__x_ABI_CWindows_CStorage_CIApplicationDataStatics* This,__x_ABI_CWindows_CStorage_CIApplicationData **data) {
     return This->lpVtbl->get_Current(This,data);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage
+#define IID_IApplicationDataStatics IID___x_ABI_CWindows_CStorage_CIApplicationDataStatics
+#define IApplicationDataStaticsVtbl __x_ABI_CWindows_CStorage_CIApplicationDataStaticsVtbl
+#define IApplicationDataStatics __x_ABI_CWindows_CStorage_CIApplicationDataStatics
+#define IApplicationDataStatics_QueryInterface __x_ABI_CWindows_CStorage_CIApplicationDataStatics_QueryInterface
+#define IApplicationDataStatics_AddRef __x_ABI_CWindows_CStorage_CIApplicationDataStatics_AddRef
+#define IApplicationDataStatics_Release __x_ABI_CWindows_CStorage_CIApplicationDataStatics_Release
+#define IApplicationDataStatics_GetIids __x_ABI_CWindows_CStorage_CIApplicationDataStatics_GetIids
+#define IApplicationDataStatics_GetRuntimeClassName __x_ABI_CWindows_CStorage_CIApplicationDataStatics_GetRuntimeClassName
+#define IApplicationDataStatics_GetTrustLevel __x_ABI_CWindows_CStorage_CIApplicationDataStatics_GetTrustLevel
+#define IApplicationDataStatics_get_Current __x_ABI_CWindows_CStorage_CIApplicationDataStatics_get_Current
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IApplicationDataStatics_get_Current_Proxy(
-    IApplicationDataStatics* This,
-    IApplicationData **data);
-void __RPC_STUB IApplicationDataStatics_get_Current_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IApplicationDataStatics_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CIApplicationDataStatics_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * ApplicationDataSetVersionHandler interface
+ * IApplicationDataSetVersionHandler interface
  */
-#ifndef __ApplicationDataSetVersionHandler_INTERFACE_DEFINED__
-#define __ApplicationDataSetVersionHandler_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ApplicationDataSetVersionHandler, 0xa05791e6, 0xcc9f, 0x4687, 0xac,0xab, 0xa3,0x64,0xfd,0x78,0x54,0x63);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler, 0xa05791e6, 0xcc9f, 0x4687, 0xac,0xab, 0xa3,0x64,0xfd,0x78,0x54,0x63);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("a05791e6-cc9f-4687-acab-a364fd785463")
-ApplicationDataSetVersionHandler : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE ApplicationDataSetVersionHandler(
-        ISetVersionRequest *setVersionRequest) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("a05791e6-cc9f-4687-acab-a364fd785463")
+            IApplicationDataSetVersionHandler : public IUnknown
+            {
+                virtual HRESULT STDMETHODCALLTYPE Invoke(
+                    ABI::Windows::Storage::ISetVersionRequest *setVersionRequest) = 0;
+
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ApplicationDataSetVersionHandler, 0xa05791e6, 0xcc9f, 0x4687, 0xac,0xab, 0xa3,0x64,0xfd,0x78,0x54,0x63)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler, 0xa05791e6, 0xcc9f, 0x4687, 0xac,0xab, 0xa3,0x64,0xfd,0x78,0x54,0x63)
 #endif
 #else
-typedef struct ApplicationDataSetVersionHandlerVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandlerVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ApplicationDataSetVersionHandler* This,
+        __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ApplicationDataSetVersionHandler* This);
+        __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ApplicationDataSetVersionHandler* This);
+        __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler *This);
 
-    /*** ApplicationDataSetVersionHandler methods ***/
-    HRESULT (STDMETHODCALLTYPE *ApplicationDataSetVersionHandler)(
-        ApplicationDataSetVersionHandler* This,
-        ISetVersionRequest *setVersionRequest);
+    /*** IApplicationDataSetVersionHandler methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler *This,
+        __x_ABI_CWindows_CStorage_CISetVersionRequest *setVersionRequest);
 
     END_INTERFACE
-} ApplicationDataSetVersionHandlerVtbl;
-interface ApplicationDataSetVersionHandler {
-    CONST_VTBL ApplicationDataSetVersionHandlerVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandlerVtbl;
+
+interface __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandlerVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define ApplicationDataSetVersionHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ApplicationDataSetVersionHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ApplicationDataSetVersionHandler_Release(This) (This)->lpVtbl->Release(This)
-/*** ApplicationDataSetVersionHandler methods ***/
-#define ApplicationDataSetVersionHandler_ApplicationDataSetVersionHandler(This,setVersionRequest) (This)->lpVtbl->ApplicationDataSetVersionHandler(This,setVersionRequest)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_Release(This) (This)->lpVtbl->Release(This)
+/*** IApplicationDataSetVersionHandler methods ***/
+#define __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_Invoke(This,setVersionRequest) (This)->lpVtbl->Invoke(This,setVersionRequest)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT ApplicationDataSetVersionHandler_QueryInterface(ApplicationDataSetVersionHandler* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_QueryInterface(__x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG ApplicationDataSetVersionHandler_AddRef(ApplicationDataSetVersionHandler* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_AddRef(__x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG ApplicationDataSetVersionHandler_Release(ApplicationDataSetVersionHandler* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_Release(__x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler* This) {
     return This->lpVtbl->Release(This);
 }
-/*** ApplicationDataSetVersionHandler methods ***/
-static FORCEINLINE HRESULT ApplicationDataSetVersionHandler_ApplicationDataSetVersionHandler(ApplicationDataSetVersionHandler* This,ISetVersionRequest *setVersionRequest) {
-    return This->lpVtbl->ApplicationDataSetVersionHandler(This,setVersionRequest);
+/*** IApplicationDataSetVersionHandler methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_Invoke(__x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler* This,__x_ABI_CWindows_CStorage_CISetVersionRequest *setVersionRequest) {
+    return This->lpVtbl->Invoke(This,setVersionRequest);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage
+#define IID_IApplicationDataSetVersionHandler IID___x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler
+#define IApplicationDataSetVersionHandlerVtbl __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandlerVtbl
+#define IApplicationDataSetVersionHandler __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler
+#define IApplicationDataSetVersionHandler_QueryInterface __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_QueryInterface
+#define IApplicationDataSetVersionHandler_AddRef __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_AddRef
+#define IApplicationDataSetVersionHandler_Release __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_Release
+#define IApplicationDataSetVersionHandler_Invoke __x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_Invoke
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ApplicationDataSetVersionHandler_ApplicationDataSetVersionHandler_Proxy(
-    ApplicationDataSetVersionHandler* This,
-    ISetVersionRequest *setVersionRequest);
-void __RPC_STUB ApplicationDataSetVersionHandler_ApplicationDataSetVersionHandler_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ApplicationDataSetVersionHandler_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CIApplicationDataSetVersionHandler_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * ISetVersionRequest interface
  */
-#ifndef __ISetVersionRequest_INTERFACE_DEFINED__
-#define __ISetVersionRequest_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CISetVersionRequest_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CISetVersionRequest_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ISetVersionRequest, 0xb9c76b9b, 0x1056, 0x4e69, 0x83,0x30, 0x16,0x26,0x19,0x95,0x6f,0x9b);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CISetVersionRequest, 0xb9c76b9b, 0x1056, 0x4e69, 0x83,0x30, 0x16,0x26,0x19,0x95,0x6f,0x9b);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("b9c76b9b-1056-4e69-8330-162619956f9b")
-ISetVersionRequest : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE get_CurrentVersion(
-        UINT32 *currentVersion) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_DesiredVersion(
-        UINT32 *desiredVersion) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetDeferral(
-        ISetVersionDeferral **deferral) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("b9c76b9b-1056-4e69-8330-162619956f9b")
+            ISetVersionRequest : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE get_CurrentVersion(
+                    UINT32 *currentVersion) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE get_DesiredVersion(
+                    UINT32 *desiredVersion) = 0;
+
+                virtual HRESULT STDMETHODCALLTYPE GetDeferral(
+                    ABI::Windows::Storage::ISetVersionDeferral **deferral) = 0;
+
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ISetVersionRequest, 0xb9c76b9b, 0x1056, 0x4e69, 0x83,0x30, 0x16,0x26,0x19,0x95,0x6f,0x9b)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CISetVersionRequest, 0xb9c76b9b, 0x1056, 0x4e69, 0x83,0x30, 0x16,0x26,0x19,0x95,0x6f,0x9b)
 #endif
 #else
-typedef struct ISetVersionRequestVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CISetVersionRequestVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ISetVersionRequest* This,
+        __x_ABI_CWindows_CStorage_CISetVersionRequest *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ISetVersionRequest* This);
+        __x_ABI_CWindows_CStorage_CISetVersionRequest *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ISetVersionRequest* This);
+        __x_ABI_CWindows_CStorage_CISetVersionRequest *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        ISetVersionRequest* This,
+        __x_ABI_CWindows_CStorage_CISetVersionRequest *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        ISetVersionRequest* This,
+        __x_ABI_CWindows_CStorage_CISetVersionRequest *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        ISetVersionRequest* This,
+        __x_ABI_CWindows_CStorage_CISetVersionRequest *This,
         TrustLevel *trustLevel);
 
     /*** ISetVersionRequest methods ***/
     HRESULT (STDMETHODCALLTYPE *get_CurrentVersion)(
-        ISetVersionRequest* This,
+        __x_ABI_CWindows_CStorage_CISetVersionRequest *This,
         UINT32 *currentVersion);
 
     HRESULT (STDMETHODCALLTYPE *get_DesiredVersion)(
-        ISetVersionRequest* This,
+        __x_ABI_CWindows_CStorage_CISetVersionRequest *This,
         UINT32 *desiredVersion);
 
     HRESULT (STDMETHODCALLTYPE *GetDeferral)(
-        ISetVersionRequest* This,
-        ISetVersionDeferral **deferral);
+        __x_ABI_CWindows_CStorage_CISetVersionRequest *This,
+        __x_ABI_CWindows_CStorage_CISetVersionDeferral **deferral);
 
     END_INTERFACE
-} ISetVersionRequestVtbl;
-interface ISetVersionRequest {
-    CONST_VTBL ISetVersionRequestVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CISetVersionRequestVtbl;
+
+interface __x_ABI_CWindows_CStorage_CISetVersionRequest {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CISetVersionRequestVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define ISetVersionRequest_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISetVersionRequest_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISetVersionRequest_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define ISetVersionRequest_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define ISetVersionRequest_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define ISetVersionRequest_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** ISetVersionRequest methods ***/
-#define ISetVersionRequest_get_CurrentVersion(This,currentVersion) (This)->lpVtbl->get_CurrentVersion(This,currentVersion)
-#define ISetVersionRequest_get_DesiredVersion(This,desiredVersion) (This)->lpVtbl->get_DesiredVersion(This,desiredVersion)
-#define ISetVersionRequest_GetDeferral(This,deferral) (This)->lpVtbl->GetDeferral(This,deferral)
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest_get_CurrentVersion(This,currentVersion) (This)->lpVtbl->get_CurrentVersion(This,currentVersion)
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest_get_DesiredVersion(This,desiredVersion) (This)->lpVtbl->get_DesiredVersion(This,desiredVersion)
+#define __x_ABI_CWindows_CStorage_CISetVersionRequest_GetDeferral(This,deferral) (This)->lpVtbl->GetDeferral(This,deferral)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT ISetVersionRequest_QueryInterface(ISetVersionRequest* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionRequest_QueryInterface(__x_ABI_CWindows_CStorage_CISetVersionRequest* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG ISetVersionRequest_AddRef(ISetVersionRequest* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CISetVersionRequest_AddRef(__x_ABI_CWindows_CStorage_CISetVersionRequest* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG ISetVersionRequest_Release(ISetVersionRequest* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CISetVersionRequest_Release(__x_ABI_CWindows_CStorage_CISetVersionRequest* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT ISetVersionRequest_GetIids(ISetVersionRequest* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionRequest_GetIids(__x_ABI_CWindows_CStorage_CISetVersionRequest* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT ISetVersionRequest_GetRuntimeClassName(ISetVersionRequest* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionRequest_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CISetVersionRequest* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT ISetVersionRequest_GetTrustLevel(ISetVersionRequest* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionRequest_GetTrustLevel(__x_ABI_CWindows_CStorage_CISetVersionRequest* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** ISetVersionRequest methods ***/
-static FORCEINLINE HRESULT ISetVersionRequest_get_CurrentVersion(ISetVersionRequest* This,UINT32 *currentVersion) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionRequest_get_CurrentVersion(__x_ABI_CWindows_CStorage_CISetVersionRequest* This,UINT32 *currentVersion) {
     return This->lpVtbl->get_CurrentVersion(This,currentVersion);
 }
-static FORCEINLINE HRESULT ISetVersionRequest_get_DesiredVersion(ISetVersionRequest* This,UINT32 *desiredVersion) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionRequest_get_DesiredVersion(__x_ABI_CWindows_CStorage_CISetVersionRequest* This,UINT32 *desiredVersion) {
     return This->lpVtbl->get_DesiredVersion(This,desiredVersion);
 }
-static FORCEINLINE HRESULT ISetVersionRequest_GetDeferral(ISetVersionRequest* This,ISetVersionDeferral **deferral) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionRequest_GetDeferral(__x_ABI_CWindows_CStorage_CISetVersionRequest* This,__x_ABI_CWindows_CStorage_CISetVersionDeferral **deferral) {
     return This->lpVtbl->GetDeferral(This,deferral);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage
+#define IID_ISetVersionRequest IID___x_ABI_CWindows_CStorage_CISetVersionRequest
+#define ISetVersionRequestVtbl __x_ABI_CWindows_CStorage_CISetVersionRequestVtbl
+#define ISetVersionRequest __x_ABI_CWindows_CStorage_CISetVersionRequest
+#define ISetVersionRequest_QueryInterface __x_ABI_CWindows_CStorage_CISetVersionRequest_QueryInterface
+#define ISetVersionRequest_AddRef __x_ABI_CWindows_CStorage_CISetVersionRequest_AddRef
+#define ISetVersionRequest_Release __x_ABI_CWindows_CStorage_CISetVersionRequest_Release
+#define ISetVersionRequest_GetIids __x_ABI_CWindows_CStorage_CISetVersionRequest_GetIids
+#define ISetVersionRequest_GetRuntimeClassName __x_ABI_CWindows_CStorage_CISetVersionRequest_GetRuntimeClassName
+#define ISetVersionRequest_GetTrustLevel __x_ABI_CWindows_CStorage_CISetVersionRequest_GetTrustLevel
+#define ISetVersionRequest_get_CurrentVersion __x_ABI_CWindows_CStorage_CISetVersionRequest_get_CurrentVersion
+#define ISetVersionRequest_get_DesiredVersion __x_ABI_CWindows_CStorage_CISetVersionRequest_get_DesiredVersion
+#define ISetVersionRequest_GetDeferral __x_ABI_CWindows_CStorage_CISetVersionRequest_GetDeferral
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ISetVersionRequest_get_CurrentVersion_Proxy(
-    ISetVersionRequest* This,
-    UINT32 *currentVersion);
-void __RPC_STUB ISetVersionRequest_get_CurrentVersion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ISetVersionRequest_get_DesiredVersion_Proxy(
-    ISetVersionRequest* This,
-    UINT32 *desiredVersion);
-void __RPC_STUB ISetVersionRequest_get_DesiredVersion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE ISetVersionRequest_GetDeferral_Proxy(
-    ISetVersionRequest* This,
-    ISetVersionDeferral **deferral);
-void __RPC_STUB ISetVersionRequest_GetDeferral_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ISetVersionRequest_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CISetVersionRequest_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * ISetVersionDeferral interface
  */
-#ifndef __ISetVersionDeferral_INTERFACE_DEFINED__
-#define __ISetVersionDeferral_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CISetVersionDeferral_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CISetVersionDeferral_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_ISetVersionDeferral, 0x033508a2, 0x781a, 0x437a, 0xb0,0x78, 0x3f,0x32,0xba,0xdc,0xfe,0x47);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CISetVersionDeferral, 0x033508a2, 0x781a, 0x437a, 0xb0,0x78, 0x3f,0x32,0xba,0xdc,0xfe,0x47);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("033508a2-781a-437a-b078-3f32badcfe47")
-ISetVersionDeferral : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE Complete(
-        ) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            MIDL_INTERFACE("033508a2-781a-437a-b078-3f32badcfe47")
+            ISetVersionDeferral : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE Complete(
+                    ) = 0;
+
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ISetVersionDeferral, 0x033508a2, 0x781a, 0x437a, 0xb0,0x78, 0x3f,0x32,0xba,0xdc,0xfe,0x47)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CISetVersionDeferral, 0x033508a2, 0x781a, 0x437a, 0xb0,0x78, 0x3f,0x32,0xba,0xdc,0xfe,0x47)
 #endif
 #else
-typedef struct ISetVersionDeferralVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CISetVersionDeferralVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        ISetVersionDeferral* This,
+        __x_ABI_CWindows_CStorage_CISetVersionDeferral *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        ISetVersionDeferral* This);
+        __x_ABI_CWindows_CStorage_CISetVersionDeferral *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        ISetVersionDeferral* This);
+        __x_ABI_CWindows_CStorage_CISetVersionDeferral *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        ISetVersionDeferral* This,
+        __x_ABI_CWindows_CStorage_CISetVersionDeferral *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        ISetVersionDeferral* This,
+        __x_ABI_CWindows_CStorage_CISetVersionDeferral *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        ISetVersionDeferral* This,
+        __x_ABI_CWindows_CStorage_CISetVersionDeferral *This,
         TrustLevel *trustLevel);
 
     /*** ISetVersionDeferral methods ***/
     HRESULT (STDMETHODCALLTYPE *Complete)(
-        ISetVersionDeferral* This);
+        __x_ABI_CWindows_CStorage_CISetVersionDeferral *This);
 
     END_INTERFACE
-} ISetVersionDeferralVtbl;
-interface ISetVersionDeferral {
-    CONST_VTBL ISetVersionDeferralVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CISetVersionDeferralVtbl;
+
+interface __x_ABI_CWindows_CStorage_CISetVersionDeferral {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CISetVersionDeferralVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define ISetVersionDeferral_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define ISetVersionDeferral_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define ISetVersionDeferral_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CISetVersionDeferral_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CISetVersionDeferral_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CISetVersionDeferral_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define ISetVersionDeferral_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define ISetVersionDeferral_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define ISetVersionDeferral_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CISetVersionDeferral_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CISetVersionDeferral_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CISetVersionDeferral_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** ISetVersionDeferral methods ***/
-#define ISetVersionDeferral_Complete(This) (This)->lpVtbl->Complete(This)
+#define __x_ABI_CWindows_CStorage_CISetVersionDeferral_Complete(This) (This)->lpVtbl->Complete(This)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT ISetVersionDeferral_QueryInterface(ISetVersionDeferral* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionDeferral_QueryInterface(__x_ABI_CWindows_CStorage_CISetVersionDeferral* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG ISetVersionDeferral_AddRef(ISetVersionDeferral* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CISetVersionDeferral_AddRef(__x_ABI_CWindows_CStorage_CISetVersionDeferral* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG ISetVersionDeferral_Release(ISetVersionDeferral* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CISetVersionDeferral_Release(__x_ABI_CWindows_CStorage_CISetVersionDeferral* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT ISetVersionDeferral_GetIids(ISetVersionDeferral* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionDeferral_GetIids(__x_ABI_CWindows_CStorage_CISetVersionDeferral* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT ISetVersionDeferral_GetRuntimeClassName(ISetVersionDeferral* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionDeferral_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CISetVersionDeferral* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT ISetVersionDeferral_GetTrustLevel(ISetVersionDeferral* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionDeferral_GetTrustLevel(__x_ABI_CWindows_CStorage_CISetVersionDeferral* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** ISetVersionDeferral methods ***/
-static FORCEINLINE HRESULT ISetVersionDeferral_Complete(ISetVersionDeferral* This) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CISetVersionDeferral_Complete(__x_ABI_CWindows_CStorage_CISetVersionDeferral* This) {
     return This->lpVtbl->Complete(This);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage
+#define IID_ISetVersionDeferral IID___x_ABI_CWindows_CStorage_CISetVersionDeferral
+#define ISetVersionDeferralVtbl __x_ABI_CWindows_CStorage_CISetVersionDeferralVtbl
+#define ISetVersionDeferral __x_ABI_CWindows_CStorage_CISetVersionDeferral
+#define ISetVersionDeferral_QueryInterface __x_ABI_CWindows_CStorage_CISetVersionDeferral_QueryInterface
+#define ISetVersionDeferral_AddRef __x_ABI_CWindows_CStorage_CISetVersionDeferral_AddRef
+#define ISetVersionDeferral_Release __x_ABI_CWindows_CStorage_CISetVersionDeferral_Release
+#define ISetVersionDeferral_GetIids __x_ABI_CWindows_CStorage_CISetVersionDeferral_GetIids
+#define ISetVersionDeferral_GetRuntimeClassName __x_ABI_CWindows_CStorage_CISetVersionDeferral_GetRuntimeClassName
+#define ISetVersionDeferral_GetTrustLevel __x_ABI_CWindows_CStorage_CISetVersionDeferral_GetTrustLevel
+#define ISetVersionDeferral_Complete __x_ABI_CWindows_CStorage_CISetVersionDeferral_Complete
+#endif /* WIDL_using_Windows_Storage */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE ISetVersionDeferral_Complete_Proxy(
-    ISetVersionDeferral* This);
-void __RPC_STUB ISetVersionDeferral_Complete_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __ISetVersionDeferral_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CISetVersionDeferral_INTERFACE_DEFINED__ */
 
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/windows.storage.streams.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.5.31 from include/windows.storage.streams.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/windows.storage.streams.idl - Do not edit ***/
 
+#ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
-
 #include <rpc.h>
 #include <rpcndr.h>
+#endif
 
 #ifndef COM_NO_WINDOWS_H
 #include <windows.h>
@@ -17,14 +18,38 @@
 
 /* Forward declarations */
 
-#ifndef __IBuffer_FWD_DEFINED__
-#define __IBuffer_FWD_DEFINED__
-typedef interface IBuffer IBuffer;
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIBuffer __x_ABI_CWindows_CStorage_CStreams_CIBuffer;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer ABI::Windows::Storage::Streams::IBuffer
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            namespace Streams {
+                interface IBuffer;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IBufferFactory_FWD_DEFINED__
-#define __IBufferFactory_FWD_DEFINED__
-typedef interface IBufferFactory IBufferFactory;
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory ABI::Windows::Storage::Streams::IBufferFactory
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            namespace Streams {
+                interface IBufferFactory;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
@@ -35,280 +60,317 @@ typedef interface IBufferFactory IBufferFactory;
 extern "C" {
 #endif
 
-#ifndef __IBufferFactory_FWD_DEFINED__
-#define __IBufferFactory_FWD_DEFINED__
-typedef interface IBufferFactory IBufferFactory;
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory ABI::Windows::Storage::Streams::IBufferFactory
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            namespace Streams {
+                interface IBufferFactory;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IBuffer_FWD_DEFINED__
-#define __IBuffer_FWD_DEFINED__
-typedef interface IBuffer IBuffer;
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CStorage_CStreams_CIBuffer __x_ABI_CWindows_CStorage_CStreams_CIBuffer;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer ABI::Windows::Storage::Streams::IBuffer
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            namespace Streams {
+                interface IBuffer;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
 /*****************************************************************************
  * IBuffer interface
  */
-#ifndef __IBuffer_INTERFACE_DEFINED__
-#define __IBuffer_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IBuffer, 0x905a0fe0, 0xbc53, 0x11df, 0x8c,0x49, 0x00,0x1e,0x4f,0xc6,0x86,0xda);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CStreams_CIBuffer, 0x905a0fe0, 0xbc53, 0x11df, 0x8c,0x49, 0x00,0x1e,0x4f,0xc6,0x86,0xda);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("905a0fe0-bc53-11df-8c49-001e4fc686da")
-IBuffer : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE get_Capacity(
-        UINT32 *value) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Length(
-        UINT32 *value) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE put_Length(
-        UINT32 value) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            namespace Streams {
+                MIDL_INTERFACE("905a0fe0-bc53-11df-8c49-001e4fc686da")
+                IBuffer : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_Capacity(
+                        UINT32 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Length(
+                        UINT32 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Length(
+                        UINT32 value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IBuffer, 0x905a0fe0, 0xbc53, 0x11df, 0x8c,0x49, 0x00,0x1e,0x4f,0xc6,0x86,0xda)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CStreams_CIBuffer, 0x905a0fe0, 0xbc53, 0x11df, 0x8c,0x49, 0x00,0x1e,0x4f,0xc6,0x86,0xda)
 #endif
 #else
-typedef struct IBufferVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CStreams_CIBufferVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBuffer* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBuffer* This);
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBuffer* This);
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IBuffer* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IBuffer* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IBuffer* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *This,
         TrustLevel *trustLevel);
 
     /*** IBuffer methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Capacity)(
-        IBuffer* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *This,
         UINT32 *value);
 
     HRESULT (STDMETHODCALLTYPE *get_Length)(
-        IBuffer* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *This,
         UINT32 *value);
 
     HRESULT (STDMETHODCALLTYPE *put_Length)(
-        IBuffer* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *This,
         UINT32 value);
 
     END_INTERFACE
-} IBufferVtbl;
-interface IBuffer {
-    CONST_VTBL IBufferVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CStreams_CIBufferVtbl;
+
+interface __x_ABI_CWindows_CStorage_CStreams_CIBuffer {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CStreams_CIBufferVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IBuffer_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IBuffer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IBuffer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IBuffer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IBuffer methods ***/
-#define IBuffer_get_Capacity(This,value) (This)->lpVtbl->get_Capacity(This,value)
-#define IBuffer_get_Length(This,value) (This)->lpVtbl->get_Length(This,value)
-#define IBuffer_put_Length(This,value) (This)->lpVtbl->put_Length(This,value)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer_get_Capacity(This,value) (This)->lpVtbl->get_Capacity(This,value)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer_get_Length(This,value) (This)->lpVtbl->get_Length(This,value)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBuffer_put_Length(This,value) (This)->lpVtbl->put_Length(This,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IBuffer_QueryInterface(IBuffer* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBuffer_QueryInterface(__x_ABI_CWindows_CStorage_CStreams_CIBuffer* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IBuffer_AddRef(IBuffer* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CStreams_CIBuffer_AddRef(__x_ABI_CWindows_CStorage_CStreams_CIBuffer* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IBuffer_Release(IBuffer* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CStreams_CIBuffer_Release(__x_ABI_CWindows_CStorage_CStreams_CIBuffer* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IBuffer_GetIids(IBuffer* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBuffer_GetIids(__x_ABI_CWindows_CStorage_CStreams_CIBuffer* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IBuffer_GetRuntimeClassName(IBuffer* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBuffer_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CStreams_CIBuffer* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IBuffer_GetTrustLevel(IBuffer* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBuffer_GetTrustLevel(__x_ABI_CWindows_CStorage_CStreams_CIBuffer* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IBuffer methods ***/
-static FORCEINLINE HRESULT IBuffer_get_Capacity(IBuffer* This,UINT32 *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBuffer_get_Capacity(__x_ABI_CWindows_CStorage_CStreams_CIBuffer* This,UINT32 *value) {
     return This->lpVtbl->get_Capacity(This,value);
 }
-static FORCEINLINE HRESULT IBuffer_get_Length(IBuffer* This,UINT32 *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBuffer_get_Length(__x_ABI_CWindows_CStorage_CStreams_CIBuffer* This,UINT32 *value) {
     return This->lpVtbl->get_Length(This,value);
 }
-static FORCEINLINE HRESULT IBuffer_put_Length(IBuffer* This,UINT32 value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBuffer_put_Length(__x_ABI_CWindows_CStorage_CStreams_CIBuffer* This,UINT32 value) {
     return This->lpVtbl->put_Length(This,value);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage_Streams
+#define IID_IBuffer IID___x_ABI_CWindows_CStorage_CStreams_CIBuffer
+#define IBufferVtbl __x_ABI_CWindows_CStorage_CStreams_CIBufferVtbl
+#define IBuffer __x_ABI_CWindows_CStorage_CStreams_CIBuffer
+#define IBuffer_QueryInterface __x_ABI_CWindows_CStorage_CStreams_CIBuffer_QueryInterface
+#define IBuffer_AddRef __x_ABI_CWindows_CStorage_CStreams_CIBuffer_AddRef
+#define IBuffer_Release __x_ABI_CWindows_CStorage_CStreams_CIBuffer_Release
+#define IBuffer_GetIids __x_ABI_CWindows_CStorage_CStreams_CIBuffer_GetIids
+#define IBuffer_GetRuntimeClassName __x_ABI_CWindows_CStorage_CStreams_CIBuffer_GetRuntimeClassName
+#define IBuffer_GetTrustLevel __x_ABI_CWindows_CStorage_CStreams_CIBuffer_GetTrustLevel
+#define IBuffer_get_Capacity __x_ABI_CWindows_CStorage_CStreams_CIBuffer_get_Capacity
+#define IBuffer_get_Length __x_ABI_CWindows_CStorage_CStreams_CIBuffer_get_Length
+#define IBuffer_put_Length __x_ABI_CWindows_CStorage_CStreams_CIBuffer_put_Length
+#endif /* WIDL_using_Windows_Storage_Streams */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBuffer_get_Capacity_Proxy(
-    IBuffer* This,
-    UINT32 *value);
-void __RPC_STUB IBuffer_get_Capacity_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBuffer_get_Length_Proxy(
-    IBuffer* This,
-    UINT32 *value);
-void __RPC_STUB IBuffer_get_Length_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IBuffer_put_Length_Proxy(
-    IBuffer* This,
-    UINT32 value);
-void __RPC_STUB IBuffer_put_Length_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IBuffer_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * IBufferFactory interface
  */
-#ifndef __IBufferFactory_INTERFACE_DEFINED__
-#define __IBufferFactory_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IBufferFactory, 0x71af914d, 0xc10f, 0x484b, 0xbc,0x50, 0x14,0xbc,0x62,0x3b,0x3a,0x27);
+DEFINE_GUID(IID___x_ABI_CWindows_CStorage_CStreams_CIBufferFactory, 0x71af914d, 0xc10f, 0x484b, 0xbc,0x50, 0x14,0xbc,0x62,0x3b,0x3a,0x27);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("71af914d-c10f-484b-bc50-14bc623b3a27")
-IBufferFactory : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE Create(
-        UINT32 capacity,
-        IBuffer **value) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Storage {
+            namespace Streams {
+                MIDL_INTERFACE("71af914d-c10f-484b-bc50-14bc623b3a27")
+                IBufferFactory : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE Create(
+                        UINT32 capacity,
+                        ABI::Windows::Storage::Streams::IBuffer **value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IBufferFactory, 0x71af914d, 0xc10f, 0x484b, 0xbc,0x50, 0x14,0xbc,0x62,0x3b,0x3a,0x27)
+__CRT_UUID_DECL(__x_ABI_CWindows_CStorage_CStreams_CIBufferFactory, 0x71af914d, 0xc10f, 0x484b, 0xbc,0x50, 0x14,0xbc,0x62,0x3b,0x3a,0x27)
 #endif
 #else
-typedef struct IBufferFactoryVtbl {
+typedef struct __x_ABI_CWindows_CStorage_CStreams_CIBufferFactoryVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IBufferFactory* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IBufferFactory* This);
+        __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IBufferFactory* This);
+        __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IBufferFactory* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IBufferFactory* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IBufferFactory* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory *This,
         TrustLevel *trustLevel);
 
     /*** IBufferFactory methods ***/
     HRESULT (STDMETHODCALLTYPE *Create)(
-        IBufferFactory* This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory *This,
         UINT32 capacity,
-        IBuffer **value);
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
 
     END_INTERFACE
-} IBufferFactoryVtbl;
-interface IBufferFactory {
-    CONST_VTBL IBufferFactoryVtbl* lpVtbl;
+} __x_ABI_CWindows_CStorage_CStreams_CIBufferFactoryVtbl;
+
+interface __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory {
+    CONST_VTBL __x_ABI_CWindows_CStorage_CStreams_CIBufferFactoryVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IBufferFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IBufferFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IBufferFactory_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IBufferFactory_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IBufferFactory_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IBufferFactory_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IBufferFactory methods ***/
-#define IBufferFactory_Create(This,capacity,value) (This)->lpVtbl->Create(This,capacity,value)
+#define __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_Create(This,capacity,value) (This)->lpVtbl->Create(This,capacity,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IBufferFactory_QueryInterface(IBufferFactory* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_QueryInterface(__x_ABI_CWindows_CStorage_CStreams_CIBufferFactory* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IBufferFactory_AddRef(IBufferFactory* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_AddRef(__x_ABI_CWindows_CStorage_CStreams_CIBufferFactory* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IBufferFactory_Release(IBufferFactory* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_Release(__x_ABI_CWindows_CStorage_CStreams_CIBufferFactory* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IBufferFactory_GetIids(IBufferFactory* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_GetIids(__x_ABI_CWindows_CStorage_CStreams_CIBufferFactory* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IBufferFactory_GetRuntimeClassName(IBufferFactory* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_GetRuntimeClassName(__x_ABI_CWindows_CStorage_CStreams_CIBufferFactory* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IBufferFactory_GetTrustLevel(IBufferFactory* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_GetTrustLevel(__x_ABI_CWindows_CStorage_CStreams_CIBufferFactory* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IBufferFactory methods ***/
-static FORCEINLINE HRESULT IBufferFactory_Create(IBufferFactory* This,UINT32 capacity,IBuffer **value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_Create(__x_ABI_CWindows_CStorage_CStreams_CIBufferFactory* This,UINT32 capacity,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **value) {
     return This->lpVtbl->Create(This,capacity,value);
 }
 #endif
+#ifdef WIDL_using_Windows_Storage_Streams
+#define IID_IBufferFactory IID___x_ABI_CWindows_CStorage_CStreams_CIBufferFactory
+#define IBufferFactoryVtbl __x_ABI_CWindows_CStorage_CStreams_CIBufferFactoryVtbl
+#define IBufferFactory __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory
+#define IBufferFactory_QueryInterface __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_QueryInterface
+#define IBufferFactory_AddRef __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_AddRef
+#define IBufferFactory_Release __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_Release
+#define IBufferFactory_GetIids __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_GetIids
+#define IBufferFactory_GetRuntimeClassName __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_GetRuntimeClassName
+#define IBufferFactory_GetTrustLevel __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_GetTrustLevel
+#define IBufferFactory_Create __x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_Create
+#endif /* WIDL_using_Windows_Storage_Streams */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IBufferFactory_Create_Proxy(
-    IBufferFactory* This,
-    UINT32 capacity,
-    IBuffer **value);
-void __RPC_STUB IBufferFactory_Create_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IBufferFactory_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CStorage_CStreams_CIBufferFactory_INTERFACE_DEFINED__ */
 
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/windows.system.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.4 from include/windows.system.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/windows.system.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -22,6 +22,7 @@
 #define ____x_ABI_CWindows_CSystem_CIDispatcherQueueController_FWD_DEFINED__
 typedef interface __x_ABI_CWindows_CSystem_CIDispatcherQueueController __x_ABI_CWindows_CSystem_CIDispatcherQueueController;
 #ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CIDispatcherQueueController ABI::Windows::System::IDispatcherQueueController
 namespace ABI {
     namespace Windows {
         namespace System {
@@ -61,7 +62,7 @@ namespace ABI {
 }
 extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(ABI::Windows::System::IDispatcherQueueController, 0x22f34e66, 0x50db, 0x4e36, 0xa9,0x8d, 0x61,0xc0,0x1b,0x38,0x4d,0x20)
+__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CIDispatcherQueueController, 0x22f34e66, 0x50db, 0x4e36, 0xa9,0x8d, 0x61,0xc0,0x1b,0x38,0x4d,0x20)
 #endif
 #else
 typedef struct __x_ABI_CWindows_CSystem_CIDispatcherQueueControllerVtbl {
@@ -132,6 +133,17 @@ static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CIDispatcherQueueController_
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 #endif
+#ifdef WIDL_using_Windows_System
+#define IID_IDispatcherQueueController IID___x_ABI_CWindows_CSystem_CIDispatcherQueueController
+#define IDispatcherQueueControllerVtbl __x_ABI_CWindows_CSystem_CIDispatcherQueueControllerVtbl
+#define IDispatcherQueueController __x_ABI_CWindows_CSystem_CIDispatcherQueueController
+#define IDispatcherQueueController_QueryInterface __x_ABI_CWindows_CSystem_CIDispatcherQueueController_QueryInterface
+#define IDispatcherQueueController_AddRef __x_ABI_CWindows_CSystem_CIDispatcherQueueController_AddRef
+#define IDispatcherQueueController_Release __x_ABI_CWindows_CSystem_CIDispatcherQueueController_Release
+#define IDispatcherQueueController_GetIids __x_ABI_CWindows_CSystem_CIDispatcherQueueController_GetIids
+#define IDispatcherQueueController_GetRuntimeClassName __x_ABI_CWindows_CSystem_CIDispatcherQueueController_GetRuntimeClassName
+#define IDispatcherQueueController_GetTrustLevel __x_ABI_CWindows_CSystem_CIDispatcherQueueController_GetTrustLevel
+#endif /* WIDL_using_Windows_System */
 #endif
 
 #endif
lib/libc/include/any-windows-any/windows.system.threading.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.6 from include/windows.system.threading.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/windows.system.threading.idl - Do not edit ***/
 
+#ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
 #define __REQUIRED_RPCNDR_H_VERSION__ 475
 #endif
-
 #include <rpc.h>
 #include <rpcndr.h>
+#endif
 
 #ifndef COM_NO_WINDOWS_H
 #include <windows.h>
@@ -17,34 +18,106 @@
 
 /* Forward declarations */
 
-#ifndef __TimerElapsedHandler_FWD_DEFINED__
-#define __TimerElapsedHandler_FWD_DEFINED__
-typedef interface TimerElapsedHandler TimerElapsedHandler;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler ABI::Windows::System::Threading::TimerElapsedHandler
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface TimerElapsedHandler;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __TimerDestroyedHandler_FWD_DEFINED__
-#define __TimerDestroyedHandler_FWD_DEFINED__
-typedef interface TimerDestroyedHandler TimerDestroyedHandler;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler ABI::Windows::System::Threading::TimerDestroyedHandler
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface TimerDestroyedHandler;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __WorkItemHandler_FWD_DEFINED__
-#define __WorkItemHandler_FWD_DEFINED__
-typedef interface WorkItemHandler WorkItemHandler;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler ABI::Windows::System::Threading::WorkItemHandler
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface WorkItemHandler;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IThreadPoolStatics_FWD_DEFINED__
-#define __IThreadPoolStatics_FWD_DEFINED__
-typedef interface IThreadPoolStatics IThreadPoolStatics;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics ABI::Windows::System::Threading::IThreadPoolStatics
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface IThreadPoolStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IThreadPoolTimer_FWD_DEFINED__
-#define __IThreadPoolTimer_FWD_DEFINED__
-typedef interface IThreadPoolTimer IThreadPoolTimer;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer ABI::Windows::System::Threading::IThreadPoolTimer
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface IThreadPoolTimer;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IThreadPoolTimerStatics_FWD_DEFINED__
-#define __IThreadPoolTimerStatics_FWD_DEFINED__
-typedef interface IThreadPoolTimerStatics IThreadPoolTimerStatics;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics ABI::Windows::System::Threading::IThreadPoolTimerStatics
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface IThreadPoolTimerStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
@@ -56,825 +129,952 @@ typedef interface IThreadPoolTimerStatics IThreadPoolTimerStatics;
 extern "C" {
 #endif
 
-#ifndef __IAsyncAction_FWD_DEFINED__
-#define __IAsyncAction_FWD_DEFINED__
-typedef interface IAsyncAction IAsyncAction;
+#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CFoundation_CIAsyncAction __x_ABI_CWindows_CFoundation_CIAsyncAction;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CFoundation_CIAsyncAction ABI::Windows::Foundation::IAsyncAction
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            interface IAsyncAction;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-struct TimeSpan;
-
-enum WorkItemPriority;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler ABI::Windows::System::Threading::TimerElapsedHandler
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface TimerElapsedHandler;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
 
-enum WorkItemOptions;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler ABI::Windows::System::Threading::TimerDestroyedHandler
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface TimerDestroyedHandler;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
 
-#ifndef __TimerElapsedHandler_FWD_DEFINED__
-#define __TimerElapsedHandler_FWD_DEFINED__
-typedef interface TimerElapsedHandler TimerElapsedHandler;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler ABI::Windows::System::Threading::WorkItemHandler
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface WorkItemHandler;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __TimerDestroyedHandler_FWD_DEFINED__
-#define __TimerDestroyedHandler_FWD_DEFINED__
-typedef interface TimerDestroyedHandler TimerDestroyedHandler;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics ABI::Windows::System::Threading::IThreadPoolStatics
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface IThreadPoolStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __WorkItemHandler_FWD_DEFINED__
-#define __WorkItemHandler_FWD_DEFINED__
-typedef interface WorkItemHandler WorkItemHandler;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer ABI::Windows::System::Threading::IThreadPoolTimer
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface IThreadPoolTimer;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IThreadPoolStatics_FWD_DEFINED__
-#define __IThreadPoolStatics_FWD_DEFINED__
-typedef interface IThreadPoolStatics IThreadPoolStatics;
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics ABI::Windows::System::Threading::IThreadPoolTimerStatics
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                interface IThreadPoolTimerStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
-#ifndef __IThreadPoolTimer_FWD_DEFINED__
-#define __IThreadPoolTimer_FWD_DEFINED__
-typedef interface IThreadPoolTimer IThreadPoolTimer;
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                enum WorkItemPriority {
+                    WorkItemPriority_Low = -1,
+                    WorkItemPriority_Normal = 0,
+                    WorkItemPriority_High = 1
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority {
+    WorkItemPriority_Low = -1,
+    WorkItemPriority_Normal = 0,
+    WorkItemPriority_High = 1
+};
+#ifdef WIDL_using_Windows_System_Threading
+#define WorkItemPriority __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority
+#endif /* WIDL_using_Windows_System_Threading */
 #endif
 
-#ifndef __IThreadPoolTimerStatics_FWD_DEFINED__
-#define __IThreadPoolTimerStatics_FWD_DEFINED__
-typedef interface IThreadPoolTimerStatics IThreadPoolTimerStatics;
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                enum WorkItemOptions {
+                    WorkItemOptions_None = 0,
+                    WorkItemOptions_TimeSliced = 1
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions {
+    WorkItemOptions_None = 0,
+    WorkItemOptions_TimeSliced = 1
+};
+#ifdef WIDL_using_Windows_System_Threading
+#define WorkItemOptions __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions
+#endif /* WIDL_using_Windows_System_Threading */
 #endif
 
-typedef enum WorkItemPriority {
-    Low = -1,
-    Normal = 0,
-    High = 1
-} WorkItemPriority;
-typedef enum WorkItemOptions {
-    None = 0,
-    TimeSliced = 1
-} WorkItemOptions;
-typedef struct TimeSpan {
-    INT64 Duration;
-} TimeSpan;
 /*****************************************************************************
  * TimerElapsedHandler interface
  */
-#ifndef __TimerElapsedHandler_INTERFACE_DEFINED__
-#define __TimerElapsedHandler_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_TimerElapsedHandler, 0xfaaea667, 0xfbeb, 0x49cb, 0xad,0xb2, 0x71,0x18,0x4c,0x55,0x6e,0x43);
+DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler, 0xfaaea667, 0xfbeb, 0x49cb, 0xad,0xb2, 0x71,0x18,0x4c,0x55,0x6e,0x43);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("faaea667-fbeb-49cb-adb2-71184c556e43")
-TimerElapsedHandler : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE Invoke(
-        IThreadPoolTimer *timer) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                MIDL_INTERFACE("faaea667-fbeb-49cb-adb2-71184c556e43")
+                TimerElapsedHandler : public IUnknown
+                {
+                    virtual HRESULT STDMETHODCALLTYPE Invoke(
+                        ABI::Windows::System::Threading::IThreadPoolTimer *timer) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(TimerElapsedHandler, 0xfaaea667, 0xfbeb, 0x49cb, 0xad,0xb2, 0x71,0x18,0x4c,0x55,0x6e,0x43)
+__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler, 0xfaaea667, 0xfbeb, 0x49cb, 0xad,0xb2, 0x71,0x18,0x4c,0x55,0x6e,0x43)
 #endif
 #else
-typedef struct TimerElapsedHandlerVtbl {
+typedef struct __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandlerVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        TimerElapsedHandler* This,
+        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        TimerElapsedHandler* This);
+        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        TimerElapsedHandler* This);
+        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *This);
 
     /*** TimerElapsedHandler methods ***/
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        TimerElapsedHandler* This,
-        IThreadPoolTimer *timer);
+        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *timer);
 
     END_INTERFACE
-} TimerElapsedHandlerVtbl;
-interface TimerElapsedHandler {
-    CONST_VTBL TimerElapsedHandlerVtbl* lpVtbl;
+} __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandlerVtbl;
+
+interface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler {
+    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandlerVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define TimerElapsedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define TimerElapsedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define TimerElapsedHandler_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Release(This) (This)->lpVtbl->Release(This)
 /*** TimerElapsedHandler methods ***/
-#define TimerElapsedHandler_Invoke(This,timer) (This)->lpVtbl->Invoke(This,timer)
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Invoke(This,timer) (This)->lpVtbl->Invoke(This,timer)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT TimerElapsedHandler_QueryInterface(TimerElapsedHandler* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG TimerElapsedHandler_AddRef(TimerElapsedHandler* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_AddRef(__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG TimerElapsedHandler_Release(TimerElapsedHandler* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Release(__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler* This) {
     return This->lpVtbl->Release(This);
 }
 /*** TimerElapsedHandler methods ***/
-static FORCEINLINE HRESULT TimerElapsedHandler_Invoke(TimerElapsedHandler* This,IThreadPoolTimer *timer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Invoke(__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler* This,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *timer) {
     return This->lpVtbl->Invoke(This,timer);
 }
 #endif
+#ifdef WIDL_using_Windows_System_Threading
+#define IID_TimerElapsedHandler IID___x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler
+#define TimerElapsedHandlerVtbl __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandlerVtbl
+#define TimerElapsedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler
+#define TimerElapsedHandler_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_QueryInterface
+#define TimerElapsedHandler_AddRef __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_AddRef
+#define TimerElapsedHandler_Release __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Release
+#define TimerElapsedHandler_Invoke __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_Invoke
+#endif /* WIDL_using_Windows_System_Threading */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE TimerElapsedHandler_Invoke_Proxy(
-    TimerElapsedHandler* This,
-    IThreadPoolTimer *timer);
-void __RPC_STUB TimerElapsedHandler_Invoke_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __TimerElapsedHandler_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * TimerDestroyedHandler interface
  */
-#ifndef __TimerDestroyedHandler_INTERFACE_DEFINED__
-#define __TimerDestroyedHandler_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_TimerDestroyedHandler, 0x34ed19fa, 0x8384, 0x4eb9, 0x82,0x09, 0xfb,0x50,0x94,0xee,0xec,0x35);
+DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler, 0x34ed19fa, 0x8384, 0x4eb9, 0x82,0x09, 0xfb,0x50,0x94,0xee,0xec,0x35);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("34ed19fa-8384-4eb9-8209-fb5094eeec35")
-TimerDestroyedHandler : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE Invoke(
-        IThreadPoolTimer *timer) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                MIDL_INTERFACE("34ed19fa-8384-4eb9-8209-fb5094eeec35")
+                TimerDestroyedHandler : public IUnknown
+                {
+                    virtual HRESULT STDMETHODCALLTYPE Invoke(
+                        ABI::Windows::System::Threading::IThreadPoolTimer *timer) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(TimerDestroyedHandler, 0x34ed19fa, 0x8384, 0x4eb9, 0x82,0x09, 0xfb,0x50,0x94,0xee,0xec,0x35)
+__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler, 0x34ed19fa, 0x8384, 0x4eb9, 0x82,0x09, 0xfb,0x50,0x94,0xee,0xec,0x35)
 #endif
 #else
-typedef struct TimerDestroyedHandlerVtbl {
+typedef struct __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandlerVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        TimerDestroyedHandler* This,
+        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        TimerDestroyedHandler* This);
+        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        TimerDestroyedHandler* This);
+        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *This);
 
     /*** TimerDestroyedHandler methods ***/
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        TimerDestroyedHandler* This,
-        IThreadPoolTimer *timer);
+        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *timer);
 
     END_INTERFACE
-} TimerDestroyedHandlerVtbl;
-interface TimerDestroyedHandler {
-    CONST_VTBL TimerDestroyedHandlerVtbl* lpVtbl;
+} __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandlerVtbl;
+
+interface __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler {
+    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandlerVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define TimerDestroyedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define TimerDestroyedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define TimerDestroyedHandler_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Release(This) (This)->lpVtbl->Release(This)
 /*** TimerDestroyedHandler methods ***/
-#define TimerDestroyedHandler_Invoke(This,timer) (This)->lpVtbl->Invoke(This,timer)
+#define __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Invoke(This,timer) (This)->lpVtbl->Invoke(This,timer)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT TimerDestroyedHandler_QueryInterface(TimerDestroyedHandler* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG TimerDestroyedHandler_AddRef(TimerDestroyedHandler* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_AddRef(__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG TimerDestroyedHandler_Release(TimerDestroyedHandler* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Release(__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler* This) {
     return This->lpVtbl->Release(This);
 }
 /*** TimerDestroyedHandler methods ***/
-static FORCEINLINE HRESULT TimerDestroyedHandler_Invoke(TimerDestroyedHandler* This,IThreadPoolTimer *timer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Invoke(__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler* This,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *timer) {
     return This->lpVtbl->Invoke(This,timer);
 }
 #endif
+#ifdef WIDL_using_Windows_System_Threading
+#define IID_TimerDestroyedHandler IID___x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler
+#define TimerDestroyedHandlerVtbl __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandlerVtbl
+#define TimerDestroyedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler
+#define TimerDestroyedHandler_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_QueryInterface
+#define TimerDestroyedHandler_AddRef __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_AddRef
+#define TimerDestroyedHandler_Release __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Release
+#define TimerDestroyedHandler_Invoke __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_Invoke
+#endif /* WIDL_using_Windows_System_Threading */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE TimerDestroyedHandler_Invoke_Proxy(
-    TimerDestroyedHandler* This,
-    IThreadPoolTimer *timer);
-void __RPC_STUB TimerDestroyedHandler_Invoke_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __TimerDestroyedHandler_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * WorkItemHandler interface
  */
-#ifndef __WorkItemHandler_INTERFACE_DEFINED__
-#define __WorkItemHandler_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_WorkItemHandler, 0x1d1a8b8b, 0xfa66, 0x414f, 0x9c,0xbd, 0xb6,0x5f,0xc9,0x9d,0x17,0xfa);
+DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler, 0x1d1a8b8b, 0xfa66, 0x414f, 0x9c,0xbd, 0xb6,0x5f,0xc9,0x9d,0x17,0xfa);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("1d1a8b8b-fa66-414f-9cbd-b65fc99d17fa")
-WorkItemHandler : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE Invoke(
-        IAsyncAction *operation) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                MIDL_INTERFACE("1d1a8b8b-fa66-414f-9cbd-b65fc99d17fa")
+                WorkItemHandler : public IUnknown
+                {
+                    virtual HRESULT STDMETHODCALLTYPE Invoke(
+                        ABI::Windows::Foundation::IAsyncAction *operation) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(WorkItemHandler, 0x1d1a8b8b, 0xfa66, 0x414f, 0x9c,0xbd, 0xb6,0x5f,0xc9,0x9d,0x17,0xfa)
+__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler, 0x1d1a8b8b, 0xfa66, 0x414f, 0x9c,0xbd, 0xb6,0x5f,0xc9,0x9d,0x17,0xfa)
 #endif
 #else
-typedef struct WorkItemHandlerVtbl {
+typedef struct __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandlerVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        WorkItemHandler* This,
+        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        WorkItemHandler* This);
+        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        WorkItemHandler* This);
+        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *This);
 
     /*** WorkItemHandler methods ***/
     HRESULT (STDMETHODCALLTYPE *Invoke)(
-        WorkItemHandler* This,
-        IAsyncAction *operation);
+        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *This,
+        __x_ABI_CWindows_CFoundation_CIAsyncAction *operation);
 
     END_INTERFACE
-} WorkItemHandlerVtbl;
-interface WorkItemHandler {
-    CONST_VTBL WorkItemHandlerVtbl* lpVtbl;
+} __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandlerVtbl;
+
+interface __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler {
+    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandlerVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define WorkItemHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define WorkItemHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define WorkItemHandler_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Release(This) (This)->lpVtbl->Release(This)
 /*** WorkItemHandler methods ***/
-#define WorkItemHandler_Invoke(This,operation) (This)->lpVtbl->Invoke(This,operation)
+#define __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Invoke(This,operation) (This)->lpVtbl->Invoke(This,operation)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT WorkItemHandler_QueryInterface(WorkItemHandler* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG WorkItemHandler_AddRef(WorkItemHandler* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_AddRef(__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG WorkItemHandler_Release(WorkItemHandler* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Release(__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler* This) {
     return This->lpVtbl->Release(This);
 }
 /*** WorkItemHandler methods ***/
-static FORCEINLINE HRESULT WorkItemHandler_Invoke(WorkItemHandler* This,IAsyncAction *operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Invoke(__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler* This,__x_ABI_CWindows_CFoundation_CIAsyncAction *operation) {
     return This->lpVtbl->Invoke(This,operation);
 }
 #endif
+#ifdef WIDL_using_Windows_System_Threading
+#define IID_WorkItemHandler IID___x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler
+#define WorkItemHandlerVtbl __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandlerVtbl
+#define WorkItemHandler __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler
+#define WorkItemHandler_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_QueryInterface
+#define WorkItemHandler_AddRef __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_AddRef
+#define WorkItemHandler_Release __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Release
+#define WorkItemHandler_Invoke __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_Invoke
+#endif /* WIDL_using_Windows_System_Threading */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE WorkItemHandler_Invoke_Proxy(
-    WorkItemHandler* This,
-    IAsyncAction *operation);
-void __RPC_STUB WorkItemHandler_Invoke_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __WorkItemHandler_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * IThreadPoolStatics interface
  */
-#ifndef __IThreadPoolStatics_INTERFACE_DEFINED__
-#define __IThreadPoolStatics_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IThreadPoolStatics, 0xb6bf67dd, 0x84bd, 0x44f8, 0xac,0x1c, 0x93,0xeb,0xcb,0x9d,0xba,0x91);
+DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics, 0xb6bf67dd, 0x84bd, 0x44f8, 0xac,0x1c, 0x93,0xeb,0xcb,0x9d,0xba,0x91);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("b6bf67dd-84bd-44f8-ac1c-93ebcb9dba91")
-IThreadPoolStatics : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE RunAsync(
-        WorkItemHandler *handler,
-        IAsyncAction **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE RunWithPriorityAsync(
-        WorkItemHandler *handler,
-        WorkItemPriority priority,
-        IAsyncAction **operation) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE RunWithPriorityAndOptionsAsync(
-        WorkItemHandler *handler,
-        WorkItemPriority priority,
-        WorkItemOptions options,
-        IAsyncAction **operation) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                MIDL_INTERFACE("b6bf67dd-84bd-44f8-ac1c-93ebcb9dba91")
+                IThreadPoolStatics : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE RunAsync(
+                        ABI::Windows::System::Threading::WorkItemHandler *handler,
+                        ABI::Windows::Foundation::IAsyncAction **operation) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE RunWithPriorityAsync(
+                        ABI::Windows::System::Threading::WorkItemHandler *handler,
+                        enum WorkItemPriority priority,
+                        ABI::Windows::Foundation::IAsyncAction **operation) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE RunWithPriorityAndOptionsAsync(
+                        ABI::Windows::System::Threading::WorkItemHandler *handler,
+                        enum WorkItemPriority priority,
+                        enum WorkItemOptions options,
+                        ABI::Windows::Foundation::IAsyncAction **operation) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IThreadPoolStatics, 0xb6bf67dd, 0x84bd, 0x44f8, 0xac,0x1c, 0x93,0xeb,0xcb,0x9d,0xba,0x91)
+__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics, 0xb6bf67dd, 0x84bd, 0x44f8, 0xac,0x1c, 0x93,0xeb,0xcb,0x9d,0xba,0x91)
 #endif
 #else
-typedef struct IThreadPoolStaticsVtbl {
+typedef struct __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStaticsVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IThreadPoolStatics* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IThreadPoolStatics* This);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IThreadPoolStatics* This);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IThreadPoolStatics* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IThreadPoolStatics* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IThreadPoolStatics* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
         TrustLevel *trustLevel);
 
     /*** IThreadPoolStatics methods ***/
     HRESULT (STDMETHODCALLTYPE *RunAsync)(
-        IThreadPoolStatics* This,
-        WorkItemHandler *handler,
-        IAsyncAction **operation);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
+        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,
+        __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);
 
     HRESULT (STDMETHODCALLTYPE *RunWithPriorityAsync)(
-        IThreadPoolStatics* This,
-        WorkItemHandler *handler,
-        WorkItemPriority priority,
-        IAsyncAction **operation);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
+        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,
+        enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority priority,
+        __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);
 
     HRESULT (STDMETHODCALLTYPE *RunWithPriorityAndOptionsAsync)(
-        IThreadPoolStatics* This,
-        WorkItemHandler *handler,
-        WorkItemPriority priority,
-        WorkItemOptions options,
-        IAsyncAction **operation);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics *This,
+        __x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,
+        enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority priority,
+        enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions options,
+        __x_ABI_CWindows_CFoundation_CIAsyncAction **operation);
 
     END_INTERFACE
-} IThreadPoolStaticsVtbl;
-interface IThreadPoolStatics {
-    CONST_VTBL IThreadPoolStaticsVtbl* lpVtbl;
+} __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStaticsVtbl;
+
+interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics {
+    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStaticsVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IThreadPoolStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IThreadPoolStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IThreadPoolStatics_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IThreadPoolStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IThreadPoolStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IThreadPoolStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IThreadPoolStatics methods ***/
-#define IThreadPoolStatics_RunAsync(This,handler,operation) (This)->lpVtbl->RunAsync(This,handler,operation)
-#define IThreadPoolStatics_RunWithPriorityAsync(This,handler,priority,operation) (This)->lpVtbl->RunWithPriorityAsync(This,handler,priority,operation)
-#define IThreadPoolStatics_RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation) (This)->lpVtbl->RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunAsync(This,handler,operation) (This)->lpVtbl->RunAsync(This,handler,operation)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAsync(This,handler,priority,operation) (This)->lpVtbl->RunWithPriorityAsync(This,handler,priority,operation)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation) (This)->lpVtbl->RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IThreadPoolStatics_QueryInterface(IThreadPoolStatics* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IThreadPoolStatics_AddRef(IThreadPoolStatics* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_AddRef(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IThreadPoolStatics_Release(IThreadPoolStatics* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_Release(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IThreadPoolStatics_GetIids(IThreadPoolStatics* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetIids(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IThreadPoolStatics_GetRuntimeClassName(IThreadPoolStatics* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetRuntimeClassName(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IThreadPoolStatics_GetTrustLevel(IThreadPoolStatics* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetTrustLevel(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IThreadPoolStatics methods ***/
-static FORCEINLINE HRESULT IThreadPoolStatics_RunAsync(IThreadPoolStatics* This,WorkItemHandler *handler,IAsyncAction **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunAsync(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,__x_ABI_CWindows_CFoundation_CIAsyncAction **operation) {
     return This->lpVtbl->RunAsync(This,handler,operation);
 }
-static FORCEINLINE HRESULT IThreadPoolStatics_RunWithPriorityAsync(IThreadPoolStatics* This,WorkItemHandler *handler,WorkItemPriority priority,IAsyncAction **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAsync(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority priority,__x_ABI_CWindows_CFoundation_CIAsyncAction **operation) {
     return This->lpVtbl->RunWithPriorityAsync(This,handler,priority,operation);
 }
-static FORCEINLINE HRESULT IThreadPoolStatics_RunWithPriorityAndOptionsAsync(IThreadPoolStatics* This,WorkItemHandler *handler,WorkItemPriority priority,WorkItemOptions options,IAsyncAction **operation) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAndOptionsAsync(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics* This,__x_ABI_CWindows_CSystem_CThreading_CWorkItemHandler *handler,enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemPriority priority,enum __x_ABI_CWindows_CSystem_CThreading_CWorkItemOptions options,__x_ABI_CWindows_CFoundation_CIAsyncAction **operation) {
     return This->lpVtbl->RunWithPriorityAndOptionsAsync(This,handler,priority,options,operation);
 }
 #endif
+#ifdef WIDL_using_Windows_System_Threading
+#define IID_IThreadPoolStatics IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics
+#define IThreadPoolStaticsVtbl __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStaticsVtbl
+#define IThreadPoolStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics
+#define IThreadPoolStatics_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_QueryInterface
+#define IThreadPoolStatics_AddRef __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_AddRef
+#define IThreadPoolStatics_Release __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_Release
+#define IThreadPoolStatics_GetIids __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetIids
+#define IThreadPoolStatics_GetRuntimeClassName __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetRuntimeClassName
+#define IThreadPoolStatics_GetTrustLevel __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_GetTrustLevel
+#define IThreadPoolStatics_RunAsync __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunAsync
+#define IThreadPoolStatics_RunWithPriorityAsync __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAsync
+#define IThreadPoolStatics_RunWithPriorityAndOptionsAsync __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_RunWithPriorityAndOptionsAsync
+#endif /* WIDL_using_Windows_System_Threading */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IThreadPoolStatics_RunAsync_Proxy(
-    IThreadPoolStatics* This,
-    WorkItemHandler *handler,
-    IAsyncAction **operation);
-void __RPC_STUB IThreadPoolStatics_RunAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IThreadPoolStatics_RunWithPriorityAsync_Proxy(
-    IThreadPoolStatics* This,
-    WorkItemHandler *handler,
-    WorkItemPriority priority,
-    IAsyncAction **operation);
-void __RPC_STUB IThreadPoolStatics_RunWithPriorityAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IThreadPoolStatics_RunWithPriorityAndOptionsAsync_Proxy(
-    IThreadPoolStatics* This,
-    WorkItemHandler *handler,
-    WorkItemPriority priority,
-    WorkItemOptions options,
-    IAsyncAction **operation);
-void __RPC_STUB IThreadPoolStatics_RunWithPriorityAndOptionsAsync_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IThreadPoolStatics_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolStatics_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * IThreadPoolTimer interface
  */
-#ifndef __IThreadPoolTimer_INTERFACE_DEFINED__
-#define __IThreadPoolTimer_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IThreadPoolTimer, 0x594ebe78, 0x55ea, 0x4a88, 0xa5,0x0d, 0x34,0x02,0xae,0x1f,0x9c,0xf2);
+DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer, 0x594ebe78, 0x55ea, 0x4a88, 0xa5,0x0d, 0x34,0x02,0xae,0x1f,0x9c,0xf2);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("594ebe78-55ea-4a88-a50d-3402ae1f9cf2")
-IThreadPoolTimer : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE get_Period(
-        TimeSpan *value) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Delay(
-        TimeSpan *value) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Cancel(
-        ) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                MIDL_INTERFACE("594ebe78-55ea-4a88-a50d-3402ae1f9cf2")
+                IThreadPoolTimer : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_Period(
+                        struct TimeSpan *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Delay(
+                        struct TimeSpan *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE Cancel(
+                        ) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IThreadPoolTimer, 0x594ebe78, 0x55ea, 0x4a88, 0xa5,0x0d, 0x34,0x02,0xae,0x1f,0x9c,0xf2)
+__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer, 0x594ebe78, 0x55ea, 0x4a88, 0xa5,0x0d, 0x34,0x02,0xae,0x1f,0x9c,0xf2)
 #endif
 #else
-typedef struct IThreadPoolTimerVtbl {
+typedef struct __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IThreadPoolTimer* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IThreadPoolTimer* This);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IThreadPoolTimer* This);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IThreadPoolTimer* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IThreadPoolTimer* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IThreadPoolTimer* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
         TrustLevel *trustLevel);
 
     /*** IThreadPoolTimer methods ***/
     HRESULT (STDMETHODCALLTYPE *get_Period)(
-        IThreadPoolTimer* This,
-        TimeSpan *value);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
+        struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan *value);
 
     HRESULT (STDMETHODCALLTYPE *get_Delay)(
-        IThreadPoolTimer* This,
-        TimeSpan *value);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This,
+        struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan *value);
 
     HRESULT (STDMETHODCALLTYPE *Cancel)(
-        IThreadPoolTimer* This);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer *This);
 
     END_INTERFACE
-} IThreadPoolTimerVtbl;
-interface IThreadPoolTimer {
-    CONST_VTBL IThreadPoolTimerVtbl* lpVtbl;
+} __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerVtbl;
+
+interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer {
+    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IThreadPoolTimer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IThreadPoolTimer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IThreadPoolTimer_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IThreadPoolTimer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IThreadPoolTimer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IThreadPoolTimer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IThreadPoolTimer methods ***/
-#define IThreadPoolTimer_get_Period(This,value) (This)->lpVtbl->get_Period(This,value)
-#define IThreadPoolTimer_get_Delay(This,value) (This)->lpVtbl->get_Delay(This,value)
-#define IThreadPoolTimer_Cancel(This) (This)->lpVtbl->Cancel(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Period(This,value) (This)->lpVtbl->get_Period(This,value)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Delay(This,value) (This)->lpVtbl->get_Delay(This,value)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Cancel(This) (This)->lpVtbl->Cancel(This)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IThreadPoolTimer_QueryInterface(IThreadPoolTimer* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IThreadPoolTimer_AddRef(IThreadPoolTimer* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_AddRef(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IThreadPoolTimer_Release(IThreadPoolTimer* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Release(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IThreadPoolTimer_GetIids(IThreadPoolTimer* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetIids(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IThreadPoolTimer_GetRuntimeClassName(IThreadPoolTimer* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetRuntimeClassName(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IThreadPoolTimer_GetTrustLevel(IThreadPoolTimer* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetTrustLevel(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IThreadPoolTimer methods ***/
-static FORCEINLINE HRESULT IThreadPoolTimer_get_Period(IThreadPoolTimer* This,TimeSpan *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Period(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan *value) {
     return This->lpVtbl->get_Period(This,value);
 }
-static FORCEINLINE HRESULT IThreadPoolTimer_get_Delay(IThreadPoolTimer* This,TimeSpan *value) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Delay(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan *value) {
     return This->lpVtbl->get_Delay(This,value);
 }
-static FORCEINLINE HRESULT IThreadPoolTimer_Cancel(IThreadPoolTimer* This) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Cancel(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer* This) {
     return This->lpVtbl->Cancel(This);
 }
 #endif
+#ifdef WIDL_using_Windows_System_Threading
+#define IID_IThreadPoolTimer IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer
+#define IThreadPoolTimerVtbl __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerVtbl
+#define IThreadPoolTimer __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer
+#define IThreadPoolTimer_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_QueryInterface
+#define IThreadPoolTimer_AddRef __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_AddRef
+#define IThreadPoolTimer_Release __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Release
+#define IThreadPoolTimer_GetIids __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetIids
+#define IThreadPoolTimer_GetRuntimeClassName __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetRuntimeClassName
+#define IThreadPoolTimer_GetTrustLevel __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_GetTrustLevel
+#define IThreadPoolTimer_get_Period __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Period
+#define IThreadPoolTimer_get_Delay __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_get_Delay
+#define IThreadPoolTimer_Cancel __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_Cancel
+#endif /* WIDL_using_Windows_System_Threading */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IThreadPoolTimer_get_Period_Proxy(
-    IThreadPoolTimer* This,
-    TimeSpan *value);
-void __RPC_STUB IThreadPoolTimer_get_Period_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IThreadPoolTimer_get_Delay_Proxy(
-    IThreadPoolTimer* This,
-    TimeSpan *value);
-void __RPC_STUB IThreadPoolTimer_get_Delay_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IThreadPoolTimer_Cancel_Proxy(
-    IThreadPoolTimer* This);
-void __RPC_STUB IThreadPoolTimer_Cancel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IThreadPoolTimer_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
  * IThreadPoolTimerStatics interface
  */
-#ifndef __IThreadPoolTimerStatics_INTERFACE_DEFINED__
-#define __IThreadPoolTimerStatics_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IThreadPoolTimerStatics, 0x1a8a9d02, 0xe482, 0x461b, 0xb8,0xc7, 0x8e,0xfa,0xd1,0xcc,0xe5,0x90);
+DEFINE_GUID(IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics, 0x1a8a9d02, 0xe482, 0x461b, 0xb8,0xc7, 0x8e,0xfa,0xd1,0xcc,0xe5,0x90);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("1a8a9d02-e482-461b-b8c7-8efad1cce590")
-IThreadPoolTimerStatics : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE CreatePeriodicTimer(
-        TimerElapsedHandler *handler,
-        TimeSpan period,
-        IThreadPoolTimer **timer) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateTimer(
-        TimerElapsedHandler *handler,
-        TimeSpan delay,
-        IThreadPoolTimer **timer) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreatePeriodicTimerWithCompletion(
-        TimerElapsedHandler *handler,
-        TimeSpan period,
-        TimerDestroyedHandler *destroyed,
-        IThreadPoolTimer **timer) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE CreateTimerWithCompletion(
-        TimerElapsedHandler *handler,
-        TimeSpan delay,
-        TimerDestroyedHandler *destroyed,
-        IThreadPoolTimer **timer) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace System {
+            namespace Threading {
+                MIDL_INTERFACE("1a8a9d02-e482-461b-b8c7-8efad1cce590")
+                IThreadPoolTimerStatics : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE CreatePeriodicTimer(
+                        ABI::Windows::System::Threading::TimerElapsedHandler *handler,
+                        struct TimeSpan period,
+                        ABI::Windows::System::Threading::IThreadPoolTimer **timer) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateTimer(
+                        ABI::Windows::System::Threading::TimerElapsedHandler *handler,
+                        struct TimeSpan delay,
+                        ABI::Windows::System::Threading::IThreadPoolTimer **timer) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreatePeriodicTimerWithCompletion(
+                        ABI::Windows::System::Threading::TimerElapsedHandler *handler,
+                        struct TimeSpan period,
+                        ABI::Windows::System::Threading::TimerDestroyedHandler *destroyed,
+                        ABI::Windows::System::Threading::IThreadPoolTimer **timer) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateTimerWithCompletion(
+                        ABI::Windows::System::Threading::TimerElapsedHandler *handler,
+                        struct TimeSpan delay,
+                        ABI::Windows::System::Threading::TimerDestroyedHandler *destroyed,
+                        ABI::Windows::System::Threading::IThreadPoolTimer **timer) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IThreadPoolTimerStatics, 0x1a8a9d02, 0xe482, 0x461b, 0xb8,0xc7, 0x8e,0xfa,0xd1,0xcc,0xe5,0x90)
+__CRT_UUID_DECL(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics, 0x1a8a9d02, 0xe482, 0x461b, 0xb8,0xc7, 0x8e,0xfa,0xd1,0xcc,0xe5,0x90)
 #endif
 #else
-typedef struct IThreadPoolTimerStaticsVtbl {
+typedef struct __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStaticsVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IThreadPoolTimerStatics* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IThreadPoolTimerStatics* This);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IThreadPoolTimerStatics* This);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IThreadPoolTimerStatics* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IThreadPoolTimerStatics* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IThreadPoolTimerStatics* This,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
         TrustLevel *trustLevel);
 
     /*** IThreadPoolTimerStatics methods ***/
     HRESULT (STDMETHODCALLTYPE *CreatePeriodicTimer)(
-        IThreadPoolTimerStatics* This,
-        TimerElapsedHandler *handler,
-        TimeSpan period,
-        IThreadPoolTimer **timer);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
+        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,
+        struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan period,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer);
 
     HRESULT (STDMETHODCALLTYPE *CreateTimer)(
-        IThreadPoolTimerStatics* This,
-        TimerElapsedHandler *handler,
-        TimeSpan delay,
-        IThreadPoolTimer **timer);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
+        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,
+        struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan delay,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer);
 
     HRESULT (STDMETHODCALLTYPE *CreatePeriodicTimerWithCompletion)(
-        IThreadPoolTimerStatics* This,
-        TimerElapsedHandler *handler,
-        TimeSpan period,
-        TimerDestroyedHandler *destroyed,
-        IThreadPoolTimer **timer);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
+        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,
+        struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan period,
+        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer);
 
     HRESULT (STDMETHODCALLTYPE *CreateTimerWithCompletion)(
-        IThreadPoolTimerStatics* This,
-        TimerElapsedHandler *handler,
-        TimeSpan delay,
-        TimerDestroyedHandler *destroyed,
-        IThreadPoolTimer **timer);
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics *This,
+        __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,
+        struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan delay,
+        __x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,
+        __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer);
 
     END_INTERFACE
-} IThreadPoolTimerStaticsVtbl;
-interface IThreadPoolTimerStatics {
-    CONST_VTBL IThreadPoolTimerStaticsVtbl* lpVtbl;
+} __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStaticsVtbl;
+
+interface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics {
+    CONST_VTBL __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStaticsVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IThreadPoolTimerStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IThreadPoolTimerStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IThreadPoolTimerStatics_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IThreadPoolTimerStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IThreadPoolTimerStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IThreadPoolTimerStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
 /*** IThreadPoolTimerStatics methods ***/
-#define IThreadPoolTimerStatics_CreatePeriodicTimer(This,handler,period,timer) (This)->lpVtbl->CreatePeriodicTimer(This,handler,period,timer)
-#define IThreadPoolTimerStatics_CreateTimer(This,handler,delay,timer) (This)->lpVtbl->CreateTimer(This,handler,delay,timer)
-#define IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer) (This)->lpVtbl->CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer)
-#define IThreadPoolTimerStatics_CreateTimerWithCompletion(This,handler,delay,destroyed,timer) (This)->lpVtbl->CreateTimerWithCompletion(This,handler,delay,destroyed,timer)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimer(This,handler,period,timer) (This)->lpVtbl->CreatePeriodicTimer(This,handler,period,timer)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimer(This,handler,delay,timer) (This)->lpVtbl->CreateTimer(This,handler,delay,timer)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer) (This)->lpVtbl->CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer)
+#define __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimerWithCompletion(This,handler,delay,destroyed,timer) (This)->lpVtbl->CreateTimerWithCompletion(This,handler,delay,destroyed,timer)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IThreadPoolTimerStatics_QueryInterface(IThreadPoolTimerStatics* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_QueryInterface(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IThreadPoolTimerStatics_AddRef(IThreadPoolTimerStatics* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_AddRef(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IThreadPoolTimerStatics_Release(IThreadPoolTimerStatics* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_Release(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IThreadPoolTimerStatics_GetIids(IThreadPoolTimerStatics* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetIids(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IThreadPoolTimerStatics_GetRuntimeClassName(IThreadPoolTimerStatics* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetRuntimeClassName(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IThreadPoolTimerStatics_GetTrustLevel(IThreadPoolTimerStatics* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetTrustLevel(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
 /*** IThreadPoolTimerStatics methods ***/
-static FORCEINLINE HRESULT IThreadPoolTimerStatics_CreatePeriodicTimer(IThreadPoolTimerStatics* This,TimerElapsedHandler *handler,TimeSpan period,IThreadPoolTimer **timer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimer(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan period,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) {
     return This->lpVtbl->CreatePeriodicTimer(This,handler,period,timer);
 }
-static FORCEINLINE HRESULT IThreadPoolTimerStatics_CreateTimer(IThreadPoolTimerStatics* This,TimerElapsedHandler *handler,TimeSpan delay,IThreadPoolTimer **timer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimer(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan delay,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) {
     return This->lpVtbl->CreateTimer(This,handler,delay,timer);
 }
-static FORCEINLINE HRESULT IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(IThreadPoolTimerStatics* This,TimerElapsedHandler *handler,TimeSpan period,TimerDestroyedHandler *destroyed,IThreadPoolTimer **timer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan period,__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) {
     return This->lpVtbl->CreatePeriodicTimerWithCompletion(This,handler,period,destroyed,timer);
 }
-static FORCEINLINE HRESULT IThreadPoolTimerStatics_CreateTimerWithCompletion(IThreadPoolTimerStatics* This,TimerElapsedHandler *handler,TimeSpan delay,TimerDestroyedHandler *destroyed,IThreadPoolTimer **timer) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimerWithCompletion(__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics* This,__x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler *handler,struct __x_ABI_CWindows_CSystem_CThreading_CTimeSpan delay,__x_ABI_CWindows_CSystem_CThreading_CTimerDestroyedHandler *destroyed,__x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimer **timer) {
     return This->lpVtbl->CreateTimerWithCompletion(This,handler,delay,destroyed,timer);
 }
 #endif
+#ifdef WIDL_using_Windows_System_Threading
+#define IID_IThreadPoolTimerStatics IID___x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics
+#define IThreadPoolTimerStaticsVtbl __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStaticsVtbl
+#define IThreadPoolTimerStatics __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics
+#define IThreadPoolTimerStatics_QueryInterface __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_QueryInterface
+#define IThreadPoolTimerStatics_AddRef __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_AddRef
+#define IThreadPoolTimerStatics_Release __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_Release
+#define IThreadPoolTimerStatics_GetIids __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetIids
+#define IThreadPoolTimerStatics_GetRuntimeClassName __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetRuntimeClassName
+#define IThreadPoolTimerStatics_GetTrustLevel __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_GetTrustLevel
+#define IThreadPoolTimerStatics_CreatePeriodicTimer __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimer
+#define IThreadPoolTimerStatics_CreateTimer __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimer
+#define IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion
+#define IThreadPoolTimerStatics_CreateTimerWithCompletion __x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_CreateTimerWithCompletion
+#endif /* WIDL_using_Windows_System_Threading */
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IThreadPoolTimerStatics_CreatePeriodicTimer_Proxy(
-    IThreadPoolTimerStatics* This,
-    TimerElapsedHandler *handler,
-    TimeSpan period,
-    IThreadPoolTimer **timer);
-void __RPC_STUB IThreadPoolTimerStatics_CreatePeriodicTimer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IThreadPoolTimerStatics_CreateTimer_Proxy(
-    IThreadPoolTimerStatics* This,
-    TimerElapsedHandler *handler,
-    TimeSpan delay,
-    IThreadPoolTimer **timer);
-void __RPC_STUB IThreadPoolTimerStatics_CreateTimer_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion_Proxy(
-    IThreadPoolTimerStatics* This,
-    TimerElapsedHandler *handler,
-    TimeSpan period,
-    TimerDestroyedHandler *destroyed,
-    IThreadPoolTimer **timer);
-void __RPC_STUB IThreadPoolTimerStatics_CreatePeriodicTimerWithCompletion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IThreadPoolTimerStatics_CreateTimerWithCompletion_Proxy(
-    IThreadPoolTimerStatics* This,
-    TimerElapsedHandler *handler,
-    TimeSpan delay,
-    TimerDestroyedHandler *destroyed,
-    IThreadPoolTimer **timer);
-void __RPC_STUB IThreadPoolTimerStatics_CreateTimerWithCompletion_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IThreadPoolTimerStatics_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CSystem_CThreading_CIThreadPoolTimerStatics_INTERFACE_DEFINED__ */
 
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/windowscontracts.h
@@ -0,0 +1,45 @@
+/*** Autogenerated by WIDL 6.4 from include/windowscontracts.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windowscontracts_h__
+#define __windowscontracts_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION)
+#define WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION 0x40000
+#endif // defined(WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION)
+
+#if !defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+#define WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION 0xa0000
+#endif // defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windowscontracts_h__ */
lib/libc/include/any-windows-any/winerror.h
@@ -244,6 +244,9 @@
 #define ERROR_INVALID_TOKEN __MSABI_LONG(315)
 #define ERROR_MR_MID_NOT_FOUND __MSABI_LONG(317)
 #define ERROR_SCOPE_NOT_FOUND __MSABI_LONG(318)
+#define ERROR_OBJECT_NOT_EXTERNALLY_BACKED __MSABI_LONG(342)
+#define ERROR_EXTERNAL_BACKING_PROVIDER_UNKNOWN __MSABI_LONG(343)
+#define ERROR_COMPRESSION_NOT_BENEFICIAL __MSABI_LONG(344)
 #define ERROR_INVALID_ADDRESS __MSABI_LONG(487)
 #define ERROR_ARITHMETIC_OVERFLOW __MSABI_LONG(534)
 #define ERROR_PIPE_CONNECTED __MSABI_LONG(535)
@@ -718,6 +721,7 @@
 #define RPC_S_CALL_FAILED __MSABI_LONG(1726)
 #define RPC_S_CALL_FAILED_DNE __MSABI_LONG(1727)
 #define RPC_S_PROTOCOL_ERROR __MSABI_LONG(1728)
+#define RPC_S_PROXY_ACCESS_DENIED __MSABI_LONG(1729)
 #define RPC_S_UNSUPPORTED_TRANS_SYN __MSABI_LONG(1730)
 #define RPC_S_UNSUPPORTED_TYPE __MSABI_LONG(1732)
 #define RPC_S_INVALID_TAG __MSABI_LONG(1733)
@@ -818,6 +822,10 @@
 #define RPC_X_INVALID_PIPE_OBJECT __MSABI_LONG(1830)
 #define RPC_X_WRONG_PIPE_ORDER __MSABI_LONG(1831)
 #define RPC_X_WRONG_PIPE_VERSION __MSABI_LONG(1832)
+#define RPC_S_COOKIE_AUTH_FAILED __MSABI_LONG(1833)
+#define RPC_S_DO_NOT_DISTURB __MSABI_LONG(1834)
+#define RPC_S_SYSTEM_HANDLE_COUNT_EXCEEDED __MSABI_LONG(1835)
+#define RPC_S_SYSTEM_HANDLE_TYPE_MISMATCH __MSABI_LONG(1836)
 #define RPC_S_GROUP_MEMBER_NOT_FOUND __MSABI_LONG(1898)
 #define EPT_S_CANT_CREATE __MSABI_LONG(1899)
 #define RPC_S_INVALID_OBJECT __MSABI_LONG(1900)
@@ -3324,6 +3332,9 @@ __CRT_INLINE HRESULT HRESULT_FROM_WIN32(__LONG32 x) { return x <= 0 ? (HRESULT)x
 #define SCARD_E_COMM_DATA_LOST _HRESULT_TYPEDEF_(0x8010002F)
 #define SCARD_E_NO_KEY_CONTAINER _HRESULT_TYPEDEF_(0x80100030)
 #define SCARD_E_SERVER_TOO_BUSY _HRESULT_TYPEDEF_(0x80100031)
+#define SCARD_E_PIN_CACHE_EXPIRED _HRESULT_TYPEDEF_(0x80100032)
+#define SCARD_E_NO_PIN_CACHE _HRESULT_TYPEDEF_(0x80100033)
+#define SCARD_E_READ_ONLY_CARD _HRESULT_TYPEDEF_(0x80100034)
 #define SCARD_W_UNSUPPORTED_CARD _HRESULT_TYPEDEF_(0x80100065)
 #define SCARD_W_UNRESPONSIVE_CARD _HRESULT_TYPEDEF_(0x80100066)
 #define SCARD_W_UNPOWERED_CARD _HRESULT_TYPEDEF_(0x80100067)
@@ -3337,6 +3348,7 @@ __CRT_INLINE HRESULT HRESULT_FROM_WIN32(__LONG32 x) { return x <= 0 ? (HRESULT)x
 #define SCARD_W_CARD_NOT_AUTHENTICATED _HRESULT_TYPEDEF_(0x8010006F)
 #define SCARD_W_CACHE_ITEM_NOT_FOUND _HRESULT_TYPEDEF_(0x80100070)
 #define SCARD_W_CACHE_ITEM_STALE _HRESULT_TYPEDEF_(0x80100071)
+#define SCARD_W_CACHE_ITEM_TOO_BIG _HRESULT_TYPEDEF_(0x80100072)
 #define COMADMIN_E_OBJECTERRORS _HRESULT_TYPEDEF_(0x80110401)
 #define COMADMIN_E_OBJECTINVALID _HRESULT_TYPEDEF_(0x80110402)
 #define COMADMIN_E_KEYMISSING _HRESULT_TYPEDEF_(0x80110403)
lib/libc/include/any-windows-any/winioctl.h
@@ -19,6 +19,7 @@ DEFINE_GUID(GUID_DEVINTERFACE_MEDIUMCHANGER,0x53f56310,0xb6bf,0x11d0,0x94,0xf2,0
 DEFINE_GUID(GUID_DEVINTERFACE_FLOPPY,0x53f56311,0xb6bf,0x11d0,0x94,0xf2,0x00,0xa0,0xc9,0x1e,0xfb,0x8b);
 DEFINE_GUID(GUID_DEVINTERFACE_CDCHANGER,0x53f56312,0xb6bf,0x11d0,0x94,0xf2,0x00,0xa0,0xc9,0x1e,0xfb,0x8b);
 DEFINE_GUID(GUID_DEVINTERFACE_STORAGEPORT,0x2accfe60,0xc130,0x11d2,0xb0,0x82,0x00,0xa0,0xc9,0x1e,0xfb,0x8b);
+DEFINE_GUID(GUID_DEVINTERFACE_HIDDEN_VOLUME,0x7f108a28,0x9833,0x4b3b,0xb7,0x80,0x2c,0x6b,0x5f,0xa5,0xc0,0x62);
 DEFINE_GUID(GUID_DEVINTERFACE_COMPORT,0x86e0d1e0,0x8089,0x11d0,0x9c,0xe4,0x08,0x00,0x3e,0x30,0x1f,0x73);
 DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,0x4D36E978,0xE325,0x11CE,0xBF,0xC1,0x08,0x00,0x2B,0xE1,0x03,0x18);
 
@@ -32,6 +33,7 @@ DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR,0x4D36E978,0xE325,0x11CE,0x
 #define FloppyClassGuid GUID_DEVINTERFACE_FLOPPY
 #define CdChangerClassGuid GUID_DEVINTERFACE_CDCHANGER
 #define StoragePortClassGuid GUID_DEVINTERFACE_STORAGEPORT
+#define HiddenVolumeClassGuid GUID_DEVINTERFACE_HIDDEN_VOLUME
 #define GUID_CLASS_COMPORT GUID_DEVINTERFACE_COMPORT
 #define GUID_SERENUM_BUS_ENUMERATOR GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR
 #endif /* DEFINE_GUID */
@@ -183,11 +185,18 @@ extern "C" {
 #define IOCTL_STORAGE_RESET_BUS CTL_CODE(IOCTL_STORAGE_BASE,0x0400,METHOD_BUFFERED,FILE_READ_ACCESS)
 #define IOCTL_STORAGE_RESET_DEVICE CTL_CODE(IOCTL_STORAGE_BASE,0x0401,METHOD_BUFFERED,FILE_READ_ACCESS)
 #define IOCTL_STORAGE_BREAK_RESERVATION CTL_CODE(IOCTL_STORAGE_BASE,0x0405,METHOD_BUFFERED,FILE_READ_ACCESS)
+#define IOCTL_STORAGE_PERSISTENT_RESERVE_IN CTL_CODE(IOCTL_STORAGE_BASE, 0x0406, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_PERSISTENT_RESERVE_OUT CTL_CODE(IOCTL_STORAGE_BASE, 0x0407, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
 #define IOCTL_STORAGE_GET_DEVICE_NUMBER CTL_CODE(IOCTL_STORAGE_BASE,0x0420,METHOD_BUFFERED,FILE_ANY_ACCESS)
 #define IOCTL_STORAGE_PREDICT_FAILURE CTL_CODE(IOCTL_STORAGE_BASE,0x0440,METHOD_BUFFERED,FILE_ANY_ACCESS)
 #define IOCTL_STORAGE_READ_CAPACITY CTL_CODE(IOCTL_STORAGE_BASE,0x0450,METHOD_BUFFERED,FILE_READ_ACCESS)
 
+#define IOCTL_STORAGE_GET_BC_PROPERTIES CTL_CODE(IOCTL_STORAGE_BASE, 0x0600, METHOD_BUFFERED, FILE_READ_ACCESS)
+#define IOCTL_STORAGE_ALLOCATE_BC_STREAM CTL_CODE(IOCTL_STORAGE_BASE, 0x0601, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_STORAGE_FREE_BC_STREAM CTL_CODE(IOCTL_STORAGE_BASE, 0x0602, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
+#define IOCTL_STORAGE_CHECK_PRIORITY_HINT_SUPPORT CTL_CODE(IOCTL_STORAGE_BASE, 0x0620, METHOD_BUFFERED, FILE_ANY_ACCESS)
+
 #define OBSOLETE_IOCTL_STORAGE_RESET_BUS CTL_CODE(IOCTL_STORAGE_BASE,0x0400,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 #define OBSOLETE_IOCTL_STORAGE_RESET_DEVICE CTL_CODE(IOCTL_STORAGE_BASE,0x0401,METHOD_BUFFERED,FILE_READ_ACCESS | FILE_WRITE_ACCESS)
 
@@ -199,7 +208,6 @@ typedef struct _STORAGE_READ_CAPACITY {
   LARGE_INTEGER DiskLength;
 } STORAGE_READ_CAPACITY, *PSTORAGE_READ_CAPACITY;
 
-#if (_WIN32_WINNT >= 0x0601)
 #define IOCTL_STORAGE_MANAGE_DATA_SET_ATTRIBUTES CTL_CODE(IOCTL_STORAGE_BASE, 0x0501, METHOD_BUFFERED, FILE_WRITE_ACCESS)
 #define DeviceDsmActionFlag_NonDestructive 0x80000000
 #define DeviceDsmAction_None 0
@@ -210,23 +218,93 @@ typedef struct _STORAGE_READ_CAPACITY {
 
 #define DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE __MSABI_LONG(0x00000001)
 
-typedef DWORD DEVICE_DATA_MANAGEMENT_SET_ACTION;
-typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES {
-  DWORD                             Size;
-  DEVICE_DATA_MANAGEMENT_SET_ACTION Action;
-  DWORD                             Flags;
-  DWORD                             ParameterBlockOffset;
-  DWORD                             ParameterBlockLength;
-  DWORD                             DataSetRangesOffset;
-  DWORD                             DataSetRangesLength;
-} DEVICE_MANAGE_DATA_SET_ATTRIBUTES, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES;
-
-typedef struct _DEVICE_DATA_SET_RANGE {
-  LONGLONG  StartingOffset;
-  DWORDLONG LengthInBytes;
-} DEVICE_DATA_SET_RANGE, *PDEVICE_DATA_SET_RANGE;
+#define DEVICE_DSM_NOTIFY_FLAG_BEGIN             0x00000001
+#define DEVICE_DSM_NOTIFY_FLAG_END               0x00000002
+
+#define IOCTL_STORAGE_BC_VERSION                 1
+
+#define STORAGE_PRIORITY_HINT_SUPPORTED          0x0001
+
+  typedef DWORD DEVICE_DATA_MANAGEMENT_SET_ACTION;
+  typedef struct _DEVICE_MANAGE_DATA_SET_ATTRIBUTES {
+    DWORD                             Size;
+    DEVICE_DATA_MANAGEMENT_SET_ACTION Action;
+    DWORD                             Flags;
+    DWORD                             ParameterBlockOffset;
+    DWORD                             ParameterBlockLength;
+    DWORD                             DataSetRangesOffset;
+    DWORD                             DataSetRangesLength;
+  } DEVICE_MANAGE_DATA_SET_ATTRIBUTES, *PDEVICE_MANAGE_DATA_SET_ATTRIBUTES;
+
+  typedef struct _DEVICE_DATA_SET_RANGE {
+    LONGLONG  StartingOffset;
+    DWORDLONG LengthInBytes;
+  } DEVICE_DATA_SET_RANGE, *PDEVICE_DATA_SET_RANGE;
+
+  typedef struct _DEVICE_DSM_NOTIFICATION_PARAMETERS {
+    ULONG Size;
+    ULONG Flags;
+    ULONG NumFileTypeIDs;
+    GUID FileTypeID[1];
+  } DEVICE_DSM_NOTIFICATION_PARAMETERS, *PDEVICE_DSM_NOTIFICATION_PARAMETERS;
+
+  typedef struct _STORAGE_GET_BC_PROPERTIES_OUTPUT {
+    ULONG MaximumRequestsPerPeriod;
+    ULONG MinimumPeriod;
+    ULONGLONG MaximumRequestSize;
+    ULONG EstimatedTimePerRequest;
+    ULONG NumOutStandingRequests;
+    ULONGLONG RequestSize;
+  } STORAGE_GET_BC_PROPERTIES_OUTPUT, *PSTORAGE_GET_BC_PROPERTIES_OUTPUT;
+
+  typedef struct _STORAGE_ALLOCATE_BC_STREAM_INPUT {
+    ULONG Version;
+    ULONG RequestsPerPeriod;
+    ULONG Period;
+    BOOLEAN RetryFailures;
+    BOOLEAN Discardable;
+    BOOLEAN Reserved1[2];
+    ULONG AccessType;
+    ULONG AccessMode;
+  } STORAGE_ALLOCATE_BC_STREAM_INPUT, *PSTORAGE_ALLOCATE_BC_STREAM_INPUT;
+
+  typedef struct _STORAGE_ALLOCATE_BC_STREAM_OUTPUT {
+    ULONGLONG RequestSize;
+    ULONG NumOutStandingRequests;
+  } STORAGE_ALLOCATE_BC_STREAM_OUTPUT, *PSTORAGE_ALLOCATE_BC_STREAM_OUTPUT;
+
+  typedef struct _STORAGE_PRIORITY_HINT_SUPPORT {
+    ULONG SupportFlags;
+  } STORAGE_PRIORITY_HINT_SUPPORT, *PSTORAGE_PRIORITY_HINT_SUPPORT;
+
+#if defined(_MSC_EXTENSIONS) || defined(__GNUC__)
+
+  typedef struct _STORAGE_MEDIA_SERIAL_NUMBER_DATA {
+    USHORT Reserved;
+    USHORT SerialNumberLength;
+    UCHAR SerialNumber[0];
+  } STORAGE_MEDIA_SERIAL_NUMBER_DATA, *PSTORAGE_MEDIA_SERIAL_NUMBER_DATA;
+
+  typedef struct _PERSISTENT_RESERVE_COMMAND {
+    ULONG Version;
+    ULONG Size;
+    __C89_NAMELESS union {
+      struct {
+        UCHAR ServiceAction:5;
+        UCHAR Reserved1:3;
+        USHORT AllocationLength;
+      } PR_IN;
+      struct {
+        UCHAR ServiceAction:5;
+        UCHAR Reserved1:3;
+        UCHAR Type:4;
+        UCHAR Scope:4;
+        UCHAR ParameterList[0];
+      } PR_OUT;
+    } DUMMYUNIONNAME;
+  } PERSISTENT_RESERVE_COMMAND, *PPERSISTENT_RESERVE_COMMAND;
 
-#endif /*(_WIN32_WINNT >= 0x0601)*/
+#endif /* defined(_MSC_EXTENSIONS) */
 
   typedef struct _STORAGE_HOTPLUG_INFO {
     DWORD Size;
@@ -383,6 +461,10 @@ typedef struct _DEVICE_DATA_SET_RANGE {
 #if (_WIN32_WINNT >= 0x0601)
     BusTypeVirtual             = 0xE,
     BusTypeFileBackedVirtual   = 0xF,
+    BusTypeSpaces              = 0x10,
+    BusTypeNvme                = 0x11,
+    BusTypeSCM                 = 0x12,
+    BusTypeUfs                 = 0x13,
 #endif /*(_WIN32_WINNT >= 0x0601)*/
     BusTypeMax,
     BusTypeMaxReserved         = 0x7F 
@@ -1285,7 +1367,8 @@ typedef enum _CHANGER_DEVICE_PROBLEM_TYPE {
 #define FSCTL_GET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,15,METHOD_BUFFERED,FILE_ANY_ACCESS)
 #define FSCTL_SET_COMPRESSION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,16,METHOD_BUFFERED,FILE_READ_DATA | FILE_WRITE_DATA)
 
-#define FSCTL_MARK_AS_SYSTEM_HIVE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,19,METHOD_NEITHER,FILE_ANY_ACCESS)
+#define FSCTL_SET_BOOTLOADER_ACCESSED CTL_CODE(FILE_DEVICE_FILE_SYSTEM,19,METHOD_NEITHER,FILE_ANY_ACCESS)
+#define FSCTL_MARK_AS_SYSTEM_HIVE FSCTL_SET_BOOTLOADER_ACCESSED
 #define FSCTL_OPLOCK_BREAK_ACK_NO_2 CTL_CODE(FILE_DEVICE_FILE_SYSTEM,20,METHOD_BUFFERED,FILE_ANY_ACCESS)
 #define FSCTL_INVALIDATE_VOLUMES CTL_CODE(FILE_DEVICE_FILE_SYSTEM,21,METHOD_BUFFERED,FILE_ANY_ACCESS)
 #define FSCTL_QUERY_FAT_BPB CTL_CODE(FILE_DEVICE_FILE_SYSTEM,22,METHOD_BUFFERED,FILE_ANY_ACCESS)
@@ -1313,6 +1396,7 @@ typedef enum _CHANGER_DEVICE_PROBLEM_TYPE {
 #define FSCTL_SET_SPARSE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,49,METHOD_BUFFERED,FILE_SPECIAL_ACCESS)
 #define FSCTL_SET_ZERO_DATA CTL_CODE(FILE_DEVICE_FILE_SYSTEM,50,METHOD_BUFFERED,FILE_WRITE_DATA)
 #define FSCTL_QUERY_ALLOCATED_RANGES CTL_CODE(FILE_DEVICE_FILE_SYSTEM,51,METHOD_NEITHER,FILE_READ_DATA)
+#define FSCTL_ENABLE_UPGRADE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,52,METHOD_BUFFERED,FILE_WRITE_DATA)
 #define FSCTL_SET_ENCRYPTION CTL_CODE(FILE_DEVICE_FILE_SYSTEM,53,METHOD_NEITHER,FILE_ANY_ACCESS)
 #define FSCTL_ENCRYPTION_FSCTL_IO CTL_CODE(FILE_DEVICE_FILE_SYSTEM,54,METHOD_NEITHER,FILE_ANY_ACCESS)
 #define FSCTL_WRITE_RAW_ENCRYPTED CTL_CODE(FILE_DEVICE_FILE_SYSTEM,55,METHOD_NEITHER,FILE_SPECIAL_ACCESS)
@@ -1404,6 +1488,12 @@ typedef struct {
   DWORD ClusterCount;
 } MOVE_FILE_DATA,*PMOVE_FILE_DATA;
 
+typedef struct _MOVE_FILE_RECORD_DATA {
+  HANDLE FileHandle;
+  LARGE_INTEGER SourceFileRecord;
+  LARGE_INTEGER TargetFileRecord;
+} MOVE_FILE_RECORD_DATA, *PMOVE_FILE_RECORD_DATA;
+
 #ifdef _WIN64
 typedef struct _MOVE_FILE_DATA32 {
   UINT32 FileHandle;
@@ -1484,6 +1574,7 @@ typedef struct {
 #define USN_REASON_OBJECT_ID_CHANGE (0x00080000)
 #define USN_REASON_REPARSE_POINT_CHANGE (0x00100000)
 #define USN_REASON_STREAM_CHANGE (0x00200000)
+#define USN_REASON_TRANSACTED_CHANGE (0x00400000)
 
 #define USN_REASON_CLOSE (0x80000000)
 
@@ -1538,8 +1629,9 @@ typedef struct {
   DWORD SecurityIds[1];
 } BULK_SECURITY_TEST_DATA,*PBULK_SECURITY_TEST_DATA;
 
-#define VOLUME_IS_DIRTY (0x00000001)
-#define VOLUME_UPGRADE_SCHEDULED (0x00000002)
+#define VOLUME_IS_DIRTY                  (0x00000001)
+#define VOLUME_UPGRADE_SCHEDULED         (0x00000002)
+#define VOLUME_SESSION_OPEN              (0x00000004)
 
 typedef struct _FILE_PREFETCH {
   DWORD Type;
@@ -1547,7 +1639,19 @@ typedef struct _FILE_PREFETCH {
   DWORDLONG Prefetch[1];
 } FILE_PREFETCH,*PFILE_PREFETCH;
 
-#define FILE_PREFETCH_TYPE_FOR_CREATE 0x1
+typedef struct _FILE_PREFETCH_EX {
+  ULONG Type;
+  ULONG Count;
+  PVOID Context;
+  ULONGLONG Prefetch[1];
+} FILE_PREFETCH_EX, *PFILE_PREFETCH_EX;
+
+#define FILE_PREFETCH_TYPE_FOR_CREATE       0x1
+#define FILE_PREFETCH_TYPE_FOR_DIRENUM      0x2
+#define FILE_PREFETCH_TYPE_FOR_CREATE_EX    0x3
+#define FILE_PREFETCH_TYPE_FOR_DIRENUM_EX   0x4
+
+#define FILE_PREFETCH_TYPE_MAX              0x4
 
 typedef struct _FILESYSTEM_STATISTICS {
   WORD FileSystemType;
@@ -1569,6 +1673,7 @@ typedef struct _FILESYSTEM_STATISTICS {
 
 #define FILESYSTEM_STATISTICS_TYPE_NTFS 1
 #define FILESYSTEM_STATISTICS_TYPE_FAT 2
+#define FILESYSTEM_STATISTICS_TYPE_EXFAT 3
 
 typedef struct _FAT_STATISTICS {
   DWORD CreateHits;
@@ -1768,7 +1873,8 @@ typedef enum _STORAGE_PROPERTY_ID {
   StorageMiniportProperty            = 5,
   StorageAccessAlignmentProperty     = 6,
   StorageDeviceSeekPenaltyProperty   = 7,
-  StorageDeviceTrimProperty          = 8 
+  StorageDeviceTrimProperty          = 8,
+  StorageDeviceWriteAggregationProperty = 9
 } STORAGE_PROPERTY_ID, *PSTORAGE_PROPERTY_ID;
 
 typedef enum _STORAGE_QUERY_TYPE {
@@ -1904,7 +2010,7 @@ typedef struct _FILE_QUERY_ON_DISK_VOL_INFO_BUFFER {
 #define SET_REPAIR_VALID_MASK                       0x0000001F
 
 typedef enum _SHRINK_VOLUME_REQUEST_TYPES {
-  ShrinkPrepare,
+  ShrinkPrepare = 1,
   ShrinkCommit,
   ShrinkAbort
 } SHRINK_VOLUME_REQUEST_TYPES;
@@ -1972,8 +2078,8 @@ typedef struct _TXFS_MODIFY_RM {
 
 #define TXFS_RM_STATE_NOT_STARTED 0
 #define TXFS_RM_STATE_STARTING 1
-#define TXFS_RM_STATE_ACTIVE 3
-#define TXFS_RM_STATE_SHUTTING_DOWN 4
+#define TXFS_RM_STATE_ACTIVE 2
+#define TXFS_RM_STATE_SHUTTING_DOWN 3
 
 #define TXFS_QUERY_RM_INFORMATION_VALID_FLAGS                           \
                 (TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS   |   \
@@ -2082,7 +2188,7 @@ typedef struct _TXFS_GET_METADATA_INFO_OUT {
 } TXFS_GET_METADATA_INFO_OUT, *PTXFS_GET_METADATA_INFO_OUT;
 
 #define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED 0x00000001
-#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED 0x000000012
+#define TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED 0x00000002
 
 typedef struct _TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY {
   ULONGLONG Offset;
@@ -2155,7 +2261,7 @@ typedef struct _TXFS_CREATE_MINIVERSION_INFO {
 } TXFS_CREATE_MINIVERSION_INFO, *PTXFS_CREATE_MINIVERSION_INFO;
 
 typedef struct _TXFS_TRANSACTION_ACTIVE_INFO {
-  WINBOOL TransactionsActiveAtSnapshot;
+  BOOLEAN TransactionsActiveAtSnapshot;
 } TXFS_TRANSACTION_ACTIVE_INFO, *PTXFS_TRANSACTION_ACTIVE_INFO;
 
 typedef enum _WRITE_CACHE_TYPE {
@@ -2209,6 +2315,48 @@ typedef struct _STORAGE_MINIPORT_DESCRIPTOR {
   BOOLEAN               TargetResetSupported;
 } STORAGE_MINIPORT_DESCRIPTOR, *PSTORAGE_MINIPORT_DESCRIPTOR;
 
+typedef enum _STORAGE_IDENTIFIER_CODE_SET {
+  StorageIdCodeSetReserved = 0,
+  StorageIdCodeSetBinary = 1,
+  StorageIdCodeSetAscii = 2,
+  StorageIdCodeSetUtf8 = 3
+} STORAGE_IDENTIFIER_CODE_SET, *PSTORAGE_IDENTIFIER_CODE_SET;
+
+typedef enum _STORAGE_IDENTIFIER_TYPE {
+  StorageIdTypeVendorSpecific = 0,
+  StorageIdTypeVendorId = 1,
+  StorageIdTypeEUI64 = 2,
+  StorageIdTypeFCPHName = 3,
+  StorageIdTypePortRelative = 4,
+  StorageIdTypeTargetPortGroup = 5,
+  StorageIdTypeLogicalUnitGroup = 6,
+  StorageIdTypeMD5LogicalUnitIdentifier = 7,
+  StorageIdTypeScsiNameString = 8
+} STORAGE_IDENTIFIER_TYPE, *PSTORAGE_IDENTIFIER_TYPE;
+
+#define StorageIdTypeNAA StorageIdTypeFCPHName
+
+typedef enum _STORAGE_ID_NAA_FORMAT {
+  StorageIdNAAFormatIEEEExtended = 2,
+  StorageIdNAAFormatIEEERegistered = 3,
+  StorageIdNAAFormatIEEEERegisteredExtended = 5
+} STORAGE_ID_NAA_FORMAT, *PSTORAGE_ID_NAA_FORMAT;
+
+typedef enum _STORAGE_ASSOCIATION_TYPE {
+  StorageIdAssocDevice = 0,
+  StorageIdAssocPort = 1,
+  StorageIdAssocTarget = 2
+} STORAGE_ASSOCIATION_TYPE, *PSTORAGE_ASSOCIATION_TYPE;
+
+typedef struct _STORAGE_IDENTIFIER {
+  STORAGE_IDENTIFIER_CODE_SET CodeSet;
+  STORAGE_IDENTIFIER_TYPE Type;
+  USHORT IdentifierSize;
+  USHORT NextOffset;
+  STORAGE_ASSOCIATION_TYPE Association;
+  UCHAR Identifier[1];
+} STORAGE_IDENTIFIER, *PSTORAGE_IDENTIFIER;
+
 typedef struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {
   DWORD Version;
   DWORD Size;
@@ -2220,19 +2368,25 @@ typedef struct _STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR {
 } STORAGE_ACCESS_ALIGNMENT_DESCRIPTOR, *PSTORAGE_ACCESS_ALIGNMENT_DESCRIPTOR;
 #endif /*(_WIN32_WINNT >= 0x0600)*/
 
-#if (_WIN32_WINNT >= 0x0601)
 typedef struct _DEVICE_SEEK_PENALTY_DESCRIPTOR {
   DWORD   Version;
   DWORD   Size;
   BOOLEAN IncursSeekPenalty;
 } DEVICE_SEEK_PENALTY_DESCRIPTOR, *PDEVICE_SEEK_PENALTY_DESCRIPTOR;
 
+typedef struct _DEVICE_WRITE_AGGREGATION_DESCRIPTOR {
+  ULONG Version;
+  ULONG Size;
+  BOOLEAN BenefitsFromWriteAggregation;
+} DEVICE_WRITE_AGGREGATION_DESCRIPTOR, *PDEVICE_WRITE_AGGREGATION_DESCRIPTOR;
+
 typedef struct _DEVICE_TRIM_DESCRIPTOR {
   DWORD   Version;
   DWORD   Size;
   BOOLEAN TrimEnabled;
 } DEVICE_TRIM_DESCRIPTOR, *PDEVICE_TRIM_DESCRIPTOR;
 
+#if (_WIN32_WINNT >= 0x0601)
 typedef struct _REQUEST_OPLOCK_INPUT_BUFFER {
   WORD  StructureVersion;
   WORD  StructureLength;
@@ -2250,6 +2404,8 @@ typedef struct _REQUEST_OPLOCK_OUTPUT_BUFFER {
   WORD        ShareMode;
 } REQUEST_OPLOCK_OUTPUT_BUFFER, *PREQUEST_OPLOCK_OUTPUT_BUFFER;
 
+#define PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED        (0x00000001)
+
 typedef struct _BOOT_AREA_INFO {
   ULONG BootSectorCount;
   struct {
@@ -2261,6 +2417,13 @@ typedef struct _RETRIEVAL_POINTER_BASE {
   LARGE_INTEGER FileAreaOffset;
 } RETRIEVAL_POINTER_BASE, *PRETRIEVAL_POINTER_BASE;
 
+typedef struct _FILE_FS_PERSISTENT_VOLUME_INFORMATION {
+  ULONG VolumeFlags;
+  ULONG FlagMask;
+  ULONG Version;
+  ULONG Reserved;
+} FILE_FS_PERSISTENT_VOLUME_INFORMATION, *PFILE_FS_PERSISTENT_VOLUME_INFORMATION;
+
 typedef struct _FILE_SYSTEM_RECOGNITION_INFORMATION {
   CHAR FileSystem[9];
 } FILE_SYSTEM_RECOGNITION_INFORMATION, *PFILE_SYSTEM_RECOGNITION_INFORMATION;
@@ -2274,6 +2437,47 @@ typedef struct _FILE_SYSTEM_RECOGNITION_STRUCTURE {
   USHORT Checksum;
 } FILE_SYSTEM_RECOGNITION_STRUCTURE;
 
+#define OPLOCK_LEVEL_CACHE_READ         (0x00000001)
+#define OPLOCK_LEVEL_CACHE_HANDLE       (0x00000002)
+#define OPLOCK_LEVEL_CACHE_WRITE        (0x00000004)
+
+#define REQUEST_OPLOCK_INPUT_FLAG_REQUEST               (0x00000001)
+#define REQUEST_OPLOCK_INPUT_FLAG_ACK                   (0x00000002)
+#define REQUEST_OPLOCK_INPUT_FLAG_COMPLETE_ACK_ON_CLOSE (0x00000004)
+
+#define REQUEST_OPLOCK_CURRENT_VERSION          1
+
+#define REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED     (0x00000001)
+#define REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED   (0x00000002)
+
+#define SD_GLOBAL_CHANGE_TYPE_MACHINE_SID   1
+
+typedef struct _SD_CHANGE_MACHINE_SID_INPUT {
+  USHORT CurrentMachineSIDOffset;
+  USHORT CurrentMachineSIDLength;
+  USHORT NewMachineSIDOffset;
+  USHORT NewMachineSIDLength;
+} SD_CHANGE_MACHINE_SID_INPUT, *PSD_CHANGE_MACHINE_SID_INPUT;
+
+typedef struct _SD_CHANGE_MACHINE_SID_OUTPUT {
+  ULONGLONG NumSDChangedSuccess;
+  ULONGLONG NumSDChangedFail;
+  ULONGLONG NumSDUnused;
+  ULONGLONG NumSDTotal;
+  ULONGLONG NumMftSDChangedSuccess;
+  ULONGLONG NumMftSDChangedFail;
+  ULONGLONG NumMftSDTotal;
+} SD_CHANGE_MACHINE_SID_OUTPUT, *PSD_CHANGE_MACHINE_SID_OUTPUT;
+
+#define ENCRYPTED_DATA_INFO_SPARSE_FILE    1
+
+typedef struct _EXTENDED_ENCRYPTED_DATA_INFO {
+  ULONG ExtendedCode;
+  ULONG Length;
+  ULONG Flags;
+  ULONG Reserved;
+} EXTENDED_ENCRYPTED_DATA_INFO, *PEXTENDED_ENCRYPTED_DATA_INFO;
+
 typedef struct _LOOKUP_STREAM_FROM_CLUSTER_INPUT {
   DWORD         Flags;
   DWORD         NumberOfClusters;
@@ -2303,6 +2507,15 @@ typedef struct _LOOKUP_STREAM_FROM_CLUSTER_ENTRY {
 #define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX 0x02000000
 #define LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM 0x03000000
 
+typedef struct _FILE_TYPE_NOTIFICATION_INPUT {
+  ULONG Flags;
+  ULONG NumFileTypeIDs;
+  GUID FileTypeID[1];
+} FILE_TYPE_NOTIFICATION_INPUT, *PFILE_TYPE_NOTIFICATION_INPUT;
+
+#define FILE_TYPE_NOTIFICATION_FLAG_USAGE_BEGIN     0x00000001
+#define FILE_TYPE_NOTIFICATION_FLAG_USAGE_END       0x00000002
+
 #define FSCTL_QUERY_DEPENDENT_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM,124, METHOD_BUFFERED, FILE_ANY_ACCESS)
 #define FSCTL_SD_GLOBAL_CHANGE CTL_CODE(FILE_DEVICE_FILE_SYSTEM,125, METHOD_BUFFERED, FILE_ANY_ACCESS)
 #define FSCTL_LOOKUP_STREAM_FROM_CLUSTER CTL_CODE(FILE_DEVICE_FILE_SYSTEM,127, METHOD_BUFFERED, FILE_ANY_ACCESS)
@@ -2321,6 +2534,16 @@ typedef struct _LOOKUP_STREAM_FROM_CLUSTER_ENTRY {
 #define FSCTL_CSV_GET_VOLUME_PATH_NAMES_FOR_VOLUME_NAME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 150, METHOD_BUFFERED, FILE_ANY_ACCESS)
 #define FSCTL_IS_FILE_ON_CSV_VOLUME CTL_CODE(FILE_DEVICE_FILE_SYSTEM, 151, METHOD_BUFFERED, FILE_ANY_ACCESS)
 
+typedef struct _CSV_NAMESPACE_INFO {
+  ULONG Version;
+  ULONG DeviceNumber;
+  LARGE_INTEGER StartingOffset;
+  ULONG SectorSize;
+} CSV_NAMESPACE_INFO, *PCSV_NAMESPACE_INFO;
+
+#define CSV_NAMESPACE_INFO_V1 (sizeof(CSV_NAMESPACE_INFO))
+#define CSV_INVALID_DEVICE_NUMBER 0xFFFFFFFF
+
 #endif /*(_WIN32_WINNT >= 0x0601)*/
 
 #endif /* _FILESYSTEMFSCTL_ */
@@ -2352,5 +2575,44 @@ typedef struct _VOLUME_DISK_EXTENTS {
   DISK_EXTENT Extents[1];
 } VOLUME_DISK_EXTENTS,*PVOLUME_DISK_EXTENTS;
 
+#if (_WIN32_WINNT >= 0x0603)
+
+#define FSCTL_SET_EXTERNAL_BACKING CTL_CODE(FILE_DEVICE_FILE_SYSTEM,195,METHOD_BUFFERED,FILE_SPECIAL_ACCESS)
+#define FSCTL_GET_EXTERNAL_BACKING CTL_CODE(FILE_DEVICE_FILE_SYSTEM,196,METHOD_BUFFERED,FILE_ANY_ACCESS)
+#define FSCTL_DELETE_EXTERNAL_BACKING CTL_CODE(FILE_DEVICE_FILE_SYSTEM,197,METHOD_BUFFERED,FILE_SPECIAL_ACCESS)
+
+#define WOF_CURRENT_VERSION 1
+
+typedef struct _WOF_EXTERNAL_INFO {
+  DWORD Version;
+  DWORD Provider;
+} WOF_EXTERNAL_INFO, *PWOF_EXTERNAL_INFO;
+
+#endif /*(_WIN32_WINNT >= 0x0603)*/
+
+#if (_WIN32_WINNT >= 0x0A00)
+
+#define WOF_PROVIDER_FILE 2
+
+#define FILE_PROVIDER_CURRENT_VERSION 1
+
+#define FILE_PROVIDER_COMPRESSION_XPRESS4K 0
+#define FILE_PROVIDER_COMPRESSION_LZX 1
+#define FILE_PROVIDER_COMPRESSION_XPRESS8K 2
+#define FILE_PROVIDER_COMPRESSION_XPRESS16K 3
+
+typedef struct _FILE_PROVIDER_EXTERNAL_INFO_V0 {
+  DWORD Version;
+  DWORD Algorithm;
+} FILE_PROVIDER_EXTERNAL_INFO_V0, *PFILE_PROVIDER_EXTERNAL_INFO_V0;
+
+typedef struct _FILE_PROVIDER_EXTERNAL_INFO_V1 {
+  DWORD Version;
+  DWORD Algorithm;
+  DWORD Flags;
+} FILE_PROVIDER_EXTERNAL_INFO_V1, *PFILE_PROVIDER_EXTERNAL_INFO_V1;
+
+#endif /*(_WIN32_WINNT >= 0x0A00)*/
+
 #endif /* _WINIOCTL_ */
 
lib/libc/include/any-windows-any/winnls.h
@@ -346,6 +346,8 @@ extern "C" {
 #define LOCALE_IDEFAULTANSICODEPAGE 0x00001004
 #define LOCALE_IDEFAULTMACCODEPAGE 0x00001011
 
+#define LOCALE_IDIALINGCODE 0x00000005
+
 #define LOCALE_SLIST 0x0000000c
 #define LOCALE_IMEASURE 0x0000000d
 
@@ -372,6 +374,8 @@ extern "C" {
 #define LOCALE_SSHORTDATE 0x0000001f
 #define LOCALE_SLONGDATE 0x00000020
 #define LOCALE_STIMEFORMAT 0x00001003
+#define LOCALE_SAM 0x00000028
+#define LOCALE_SPM 0x00000029
 #define LOCALE_IDATE 0x00000021
 #define LOCALE_ILDATE 0x00000022
 #define LOCALE_ITIME 0x00000023
@@ -485,6 +489,15 @@ extern "C" {
 #define LOCALE_SSORTLOCALE 0x0000007b
 #endif
 
+#if WINVER >= _WIN32_WINNT_WIN8
+#define LOCALE_SRELATIVELONGDATE 0x0000007c
+#endif
+
+#if WINVER >= _WIN32_WINNT_WIN10
+#define LOCALE_SSHORTESTAM 0x0000007e
+#define LOCALE_SSHORTESTPM 0x0000007f
+#endif
+
 #define TIME_NOMINUTESORSECONDS 0x00000001
 #define TIME_NOSECONDS 0x00000002
 #define TIME_NOTIMEMARKER 0x00000004
@@ -500,6 +513,9 @@ extern "C" {
 #if WINVER >= 0x0601
 #define DATE_AUTOLAYOUT 0x00000040
 #endif
+#if WINVER >= _WIN32_WINNT_WINTHRESHOLD
+#define DATE_MONTHDAY 0x00000080
+#endif
 
 #define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE
 #define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
@@ -570,6 +586,14 @@ extern "C" {
 #define CAL_SMONTHDAY 0x00000038
 #define CAL_SABBREVERASTRING 0x00000039
 #endif
+#if WINVER >= _WIN32_WINNT_WIN8
+#define CAL_SRELATIVELONGDATE 0x0000003a
+#endif
+#if NTDDI_VERSION >= NTDDI_WIN10_RS2
+#define CAL_SENGLISHERANAME 0x0000003b
+#define CAL_SENGLISHABBREVERANAME 0x0000003c
+#endif
+#define CAL_SJAPANESEERAFIRSTYEAR 0x0000003d
 
 #define ENUM_ALL_CALENDARS 0xffffffff
 
@@ -766,7 +790,14 @@ extern "C" {
     GEO_TIMEZONES = 0x000a,
     GEO_OFFICIALLANGUAGES = 0x000b,
     GEO_ISO_UN_NUMBER = 0x000c,
-    GEO_PARENT = 0x000d
+    GEO_PARENT = 0x000d,
+    GEO_DIALINGCODE = 0x000e,
+    GEO_CURRENCYCODE= 0x000f,
+    GEO_CURRENCYSYMBOL= 0x0010,
+#if NTDDI_VERSION >= NTDDI_WIN10_RS3
+    GEO_NAME = 0x0011,
+    GEO_ID = 0x0012
+#endif
   };
 
   enum SYSGEOCLASS {
@@ -816,6 +847,9 @@ extern "C" {
   typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCW) (LPWSTR);
   typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXW) (LPWSTR, CALID);
   typedef WINBOOL (CALLBACK *GEO_ENUMPROC) (GEOID);
+  #if NTDDI_VERSION >= NTDDI_WIN10_RS3
+  typedef WINBOOL (CALLBACK *GEO_ENUMNAMEPROC) (PWSTR, LPARAM);
+  #endif
 #else
   typedef FARPROC LANGUAGEGROUP_ENUMPROCA;
   typedef FARPROC LANGGROUPLOCALE_ENUMPROCA;
@@ -838,6 +872,9 @@ extern "C" {
   typedef FARPROC TIMEFMT_ENUMPROCW;
   typedef FARPROC CALINFO_ENUMPROCW;
   typedef FARPROC CALINFO_ENUMPROCEXW;
+  #if NTDDI_VERSION >= NTDDI_WIN10_RS3
+  typedef FARPROC GEO_ENUMNAMEPROC;
+  #endif
 #endif
 
 #ifdef UNICODE
@@ -987,6 +1024,7 @@ extern "C" {
   WINBASEAPI int WINAPI GetGeoInfoW (GEOID Location, GEOTYPE GeoType, LPWSTR lpGeoData, int cchData, LANGID LangId);
   WINBASEAPI WINBOOL WINAPI EnumSystemGeoID (GEOCLASS GeoClass, GEOID ParentGeoId, GEO_ENUMPROC lpGeoEnumProc);
   WINBASEAPI GEOID WINAPI GetUserGeoID (GEOCLASS GeoClass);
+  WINBASEAPI int WINAPI GetUserDefaultGeoName (LPWSTR geoName, int geoNameCount);
   WINBASEAPI WINBOOL WINAPI GetCPInfo (UINT CodePage, LPCPINFO lpCPInfo);
   WINBASEAPI WINBOOL WINAPI GetCPInfoExA (UINT CodePage, DWORD dwFlags, LPCPINFOEXA lpCPInfoEx);
   WINBASEAPI WINBOOL WINAPI GetCPInfoExW (UINT CodePage, DWORD dwFlags, LPCPINFOEXW lpCPInfoEx);
@@ -996,6 +1034,11 @@ extern "C" {
   WINBASEAPI LCID WINAPI LocaleNameToLCID (LPCWSTR lpName, DWORD dwFlags);
 #endif
 
+#if NTDDI_VERSION >= NTDDI_WIN10_RS3
+  WINBASEAPI int WINAPI GetGeoInfoEx (PWSTR location, GEOTYPE geoType, PWSTR geoData, int geoDataCount);
+  WINBASEAPI WINBOOL WINAPI SetUserGeoName (PWSTR geoName);
+#endif
+
 #define GetGeoInfo __MINGW_NAME_AW(GetGeoInfo)
 #define GetCPInfoEx __MINGW_NAME_AW(GetCPInfoEx)
 
@@ -1042,6 +1085,16 @@ extern "C" {
 #define EnumLanguageGroupLocales __MINGW_NAME_AW(EnumLanguageGroupLocales)
 #define EnumUILanguages __MINGW_NAME_AW(EnumUILanguages)
 
+#if NTDDI_VERSION >= NTDDI_WIN10_RS3
+  WINBASEAPI WINBOOL WINAPI EnumSystemGeoNames (GEOCLASS geoClass, GEO_ENUMNAMEPROC geoEnumProc, LPARAM data);
+#endif
+
+#if NTDDI_VERSION >= NTDDI_WIN10_VB
+  DECLARE_HANDLE(HSAVEDUILANGUAGES);
+  WINBASEAPI WINBOOL WINAPI SetThreadPreferredUILanguages2 (ULONG flags, PCZZWSTR languages, PULONG numLanguagesSet, HSAVEDUILANGUAGES *snapshot);
+  WINBASEAPI void WINAPI RestoreThreadPreferredUILanguages (const HSAVEDUILANGUAGES snapshot);
+#endif /* NTDDI_WIN10_VB */
+
 #endif
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
lib/libc/include/any-windows-any/winnt.h
@@ -1846,6 +1846,9 @@ extern "C" {
 #define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer
 #define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer
 
+#define YieldProcessor() __asm__ __volatile__("dmb ishst\n\tyield":::"memory")
+#define MemoryBarrier() __asm__ __volatile__("dmb":::"memory")
+
 #ifdef __cplusplus
   }
 #endif
@@ -2055,6 +2058,9 @@ extern "C" {
 #define InterlockedCompareExchangePointerAcquire _InterlockedCompareExchangePointer
 #define InterlockedCompareExchangePointerRelease _InterlockedCompareExchangePointer
 
+#define YieldProcessor() __asm__ __volatile__("dmb ishst\n\tyield":::"memory")
+#define MemoryBarrier() __asm__ __volatile__("dmb sy":::"memory")
+
 #ifdef __cplusplus
   }
 #endif
@@ -4242,6 +4248,10 @@ __buildmemorybarrier()
       ProcessSignaturePolicy,
       ProcessFontDisablePolicy,
       ProcessImageLoadPolicy,
+      ProcessSystemCallFilterPolicy,
+      ProcessPayloadRestrictionPolicy,
+      ProcessChildProcessPolicy,
+      ProcessSideChannelIsolationPolicy,
       MaxProcessMitigationPolicy
     } PROCESS_MITIGATION_POLICY,*PPROCESS_MITIGATION_POLICY;
 
@@ -4360,6 +4370,62 @@ __buildmemorybarrier()
       };
     } PROCESS_MITIGATION_IMAGE_LOAD_POLICY, *PPROCESS_MITIGATION_IMAGE_LOAD_POLICY;
 
+    typedef struct _PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY {
+      __C89_NAMELESS union {
+        DWORD Flags;
+        __C89_NAMELESS struct {
+          DWORD FilterId  :4;
+          DWORD ReservedFlags  :28;
+        };
+      };
+    } PROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY, *PPROCESS_MITIGATION_SYSTEM_CALL_FILTER_POLICY;
+
+    typedef struct _PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY {
+      __C89_NAMELESS union {
+        DWORD Flags;
+        __C89_NAMELESS struct {
+          DWORD EnableExportAddressFilter  :1;
+          DWORD AuditExportAddressFilter  :1;
+          DWORD EnableExportAddressFilterPlus  :1;
+          DWORD AuditExportAddressFilterPlus  :1;
+          DWORD EnableImportAddressFilter  :1;
+          DWORD AuditImportAddressFilter  :1;
+          DWORD EnableRopStackPivot  :1;
+          DWORD AuditRopStackPivot  :1;
+          DWORD EnableRopCallerCheck  :1;
+          DWORD AuditRopCallerCheck  :1;
+          DWORD EnableRopSimExec  :1;
+          DWORD AuditRopSimExec  :1;
+          DWORD ReservedFlags  :20;
+        };
+      };
+    } PROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY, *PPROCESS_MITIGATION_PAYLOAD_RESTRICTION_POLICY;
+
+    typedef struct _PROCESS_MITIGATION_CHILD_PROCESS_POLICY {
+      __C89_NAMELESS union {
+        DWORD Flags;
+        __C89_NAMELESS struct {
+          DWORD NoChildProcessCreation  :1;
+          DWORD AuditNoChildProcessCreation  :1;
+          DWORD AllowSecureProcessCreation  :1;
+          DWORD ReservedFlags  :29;
+        };
+      };
+    } PROCESS_MITIGATION_CHILD_PROCESS_POLICY, *PPROCESS_MITIGATION_CHILD_PROCESS_POLICY;
+
+    typedef struct _PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY {
+      __C89_NAMELESS union {
+        DWORD Flags;
+        __C89_NAMELESS struct {
+          DWORD SmtBranchTargetIsolation  :1;
+          DWORD IsolateSecurityDomain  :1;
+          DWORD DisablePageCombine  :1;
+          DWORD SpeculativeStoreBypassDisable  :1;
+          DWORD ReservedFlags  :28;
+        };
+      };
+    } PROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY, *PPROCESS_MITIGATION_SIDE_CHANNEL_ISOLATION_POLICY;
+
     typedef struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
       LARGE_INTEGER TotalUserTime;
       LARGE_INTEGER TotalKernelTime;
lib/libc/include/any-windows-any/winres.h
@@ -5,3 +5,8 @@
  */
 
 #include <winresrc.h>
+
+#ifdef IDC_STATIC
+#undef IDC_STATIC
+#endif
+#define IDC_STATIC (-1)
lib/libc/include/any-windows-any/wmcodecdsp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wmcodecdsp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wmcodecdsp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -18,6 +18,14 @@
 
 /* Forward declarations */
 
+#ifndef __IWMColorConvProps_FWD_DEFINED__
+#define __IWMColorConvProps_FWD_DEFINED__
+typedef interface IWMColorConvProps IWMColorConvProps;
+#ifdef __cplusplus
+interface IWMColorConvProps;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IWMValidate_FWD_DEFINED__
 #define __IWMValidate_FWD_DEFINED__
 typedef interface IWMValidate IWMValidate;
@@ -728,6 +736,104 @@ typedef struct CMSVideoDSPMFT CMSVideoDSPMFT;
 extern "C" {
 #endif
 
+/*****************************************************************************
+ * IWMColorConvProps interface
+ */
+#ifndef __IWMColorConvProps_INTERFACE_DEFINED__
+#define __IWMColorConvProps_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMColorConvProps, 0xe6a49e22, 0xc099, 0x421d, 0xaa,0xd3, 0xc0,0x61,0xfb,0x4a,0xe8,0x5b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("e6a49e22-c099-421d-aad3-c061fb4ae85b")
+IWMColorConvProps : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetMode(
+        LONG mode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetFullCroppingParam(
+        LONG src_left,
+        LONG src_top,
+        LONG dst_left,
+        LONG dst_top,
+        LONG width,
+        LONG height) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMColorConvProps, 0xe6a49e22, 0xc099, 0x421d, 0xaa,0xd3, 0xc0,0x61,0xfb,0x4a,0xe8,0x5b)
+#endif
+#else
+typedef struct IWMColorConvPropsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMColorConvProps *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMColorConvProps *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMColorConvProps *This);
+
+    /*** IWMColorConvProps methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetMode)(
+        IWMColorConvProps *This,
+        LONG mode);
+
+    HRESULT (STDMETHODCALLTYPE *SetFullCroppingParam)(
+        IWMColorConvProps *This,
+        LONG src_left,
+        LONG src_top,
+        LONG dst_left,
+        LONG dst_top,
+        LONG width,
+        LONG height);
+
+    END_INTERFACE
+} IWMColorConvPropsVtbl;
+
+interface IWMColorConvProps {
+    CONST_VTBL IWMColorConvPropsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMColorConvProps_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMColorConvProps_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMColorConvProps_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMColorConvProps methods ***/
+#define IWMColorConvProps_SetMode(This,mode) (This)->lpVtbl->SetMode(This,mode)
+#define IWMColorConvProps_SetFullCroppingParam(This,src_left,src_top,dst_left,dst_top,width,height) (This)->lpVtbl->SetFullCroppingParam(This,src_left,src_top,dst_left,dst_top,width,height)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMColorConvProps_QueryInterface(IWMColorConvProps* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMColorConvProps_AddRef(IWMColorConvProps* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMColorConvProps_Release(IWMColorConvProps* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMColorConvProps methods ***/
+static FORCEINLINE HRESULT IWMColorConvProps_SetMode(IWMColorConvProps* This,LONG mode) {
+    return This->lpVtbl->SetMode(This,mode);
+}
+static FORCEINLINE HRESULT IWMColorConvProps_SetFullCroppingParam(IWMColorConvProps* This,LONG src_left,LONG src_top,LONG dst_left,LONG dst_top,LONG width,LONG height) {
+    return This->lpVtbl->SetFullCroppingParam(This,src_left,src_top,dst_left,dst_top,width,height);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMColorConvProps_INTERFACE_DEFINED__ */
+
 /*****************************************************************************
  * IWMValidate interface
  */
lib/libc/include/any-windows-any/wmcontainer.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wmcontainer.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wmcontainer.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmdrmsdk.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/wmdrmsdk.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wmdrmsdk.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -67,6 +67,8 @@ typedef struct __tagDRM_PLAY_OPL {
     DRM_OPL_OUTPUT_IDS oplIdReserved;
     DRM_VIDEO_OUTPUT_PROTECTION_IDS vopi;
 } DRM_PLAY_OPL;
+#ifndef __WMDRMContentEnablerLib_LIBRARY_DEFINED__
+#define __WMDRMContentEnablerLib_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_WMDRMContentEnablerLib, 0x82435be0, 0xf7c1, 0x4df9, 0x81,0x03, 0xee,0xab,0xeb,0xf3,0xd6,0xe1);
 
@@ -83,6 +85,7 @@ __CRT_UUID_DECL(WMDRMContentEnablerActivate, 0x82435bdf, 0xf7c1, 0x4df9, 0x81,0x
 #endif
 #endif
 
+#endif /* __WMDRMContentEnablerLib_LIBRARY_DEFINED__ */
 /* Begin additional prototypes for all interfaces */
 
 
lib/libc/include/any-windows-any/wmp.h
@@ -0,0 +1,10255 @@
+/*** Autogenerated by WIDL 6.4 from include/wmp.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __wmp_h__
+#define __wmp_h__
+
+/* Forward declarations */
+
+#ifndef __IWMPPlaylist_FWD_DEFINED__
+#define __IWMPPlaylist_FWD_DEFINED__
+typedef interface IWMPPlaylist IWMPPlaylist;
+#ifdef __cplusplus
+interface IWMPPlaylist;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPMedia_FWD_DEFINED__
+#define __IWMPMedia_FWD_DEFINED__
+typedef interface IWMPMedia IWMPMedia;
+#ifdef __cplusplus
+interface IWMPMedia;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPControls_FWD_DEFINED__
+#define __IWMPControls_FWD_DEFINED__
+typedef interface IWMPControls IWMPControls;
+#ifdef __cplusplus
+interface IWMPControls;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPControls2_FWD_DEFINED__
+#define __IWMPControls2_FWD_DEFINED__
+typedef interface IWMPControls2 IWMPControls2;
+#ifdef __cplusplus
+interface IWMPControls2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPRemoteMediaServices_FWD_DEFINED__
+#define __IWMPRemoteMediaServices_FWD_DEFINED__
+typedef interface IWMPRemoteMediaServices IWMPRemoteMediaServices;
+#ifdef __cplusplus
+interface IWMPRemoteMediaServices;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPSettings_FWD_DEFINED__
+#define __IWMPSettings_FWD_DEFINED__
+typedef interface IWMPSettings IWMPSettings;
+#ifdef __cplusplus
+interface IWMPSettings;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPStringCollection_FWD_DEFINED__
+#define __IWMPStringCollection_FWD_DEFINED__
+typedef interface IWMPStringCollection IWMPStringCollection;
+#ifdef __cplusplus
+interface IWMPStringCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPMediaCollection_FWD_DEFINED__
+#define __IWMPMediaCollection_FWD_DEFINED__
+typedef interface IWMPMediaCollection IWMPMediaCollection;
+#ifdef __cplusplus
+interface IWMPMediaCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPPlaylistArray_FWD_DEFINED__
+#define __IWMPPlaylistArray_FWD_DEFINED__
+typedef interface IWMPPlaylistArray IWMPPlaylistArray;
+#ifdef __cplusplus
+interface IWMPPlaylistArray;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPPlaylistCollection_FWD_DEFINED__
+#define __IWMPPlaylistCollection_FWD_DEFINED__
+typedef interface IWMPPlaylistCollection IWMPPlaylistCollection;
+#ifdef __cplusplus
+interface IWMPPlaylistCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPNetwork_FWD_DEFINED__
+#define __IWMPNetwork_FWD_DEFINED__
+typedef interface IWMPNetwork IWMPNetwork;
+#ifdef __cplusplus
+interface IWMPNetwork;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPCdrom_FWD_DEFINED__
+#define __IWMPCdrom_FWD_DEFINED__
+typedef interface IWMPCdrom IWMPCdrom;
+#ifdef __cplusplus
+interface IWMPCdrom;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPCdromCollection_FWD_DEFINED__
+#define __IWMPCdromCollection_FWD_DEFINED__
+typedef interface IWMPCdromCollection IWMPCdromCollection;
+#ifdef __cplusplus
+interface IWMPCdromCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPDVD_FWD_DEFINED__
+#define __IWMPDVD_FWD_DEFINED__
+typedef interface IWMPDVD IWMPDVD;
+#ifdef __cplusplus
+interface IWMPDVD;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPClosedCaption_FWD_DEFINED__
+#define __IWMPClosedCaption_FWD_DEFINED__
+typedef interface IWMPClosedCaption IWMPClosedCaption;
+#ifdef __cplusplus
+interface IWMPClosedCaption;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPErrorItem_FWD_DEFINED__
+#define __IWMPErrorItem_FWD_DEFINED__
+typedef interface IWMPErrorItem IWMPErrorItem;
+#ifdef __cplusplus
+interface IWMPErrorItem;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPMedia2_FWD_DEFINED__
+#define __IWMPMedia2_FWD_DEFINED__
+typedef interface IWMPMedia2 IWMPMedia2;
+#ifdef __cplusplus
+interface IWMPMedia2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPMedia3_FWD_DEFINED__
+#define __IWMPMedia3_FWD_DEFINED__
+typedef interface IWMPMedia3 IWMPMedia3;
+#ifdef __cplusplus
+interface IWMPMedia3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPError_FWD_DEFINED__
+#define __IWMPError_FWD_DEFINED__
+typedef interface IWMPError IWMPError;
+#ifdef __cplusplus
+interface IWMPError;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPPlayerApplication_FWD_DEFINED__
+#define __IWMPPlayerApplication_FWD_DEFINED__
+typedef interface IWMPPlayerApplication IWMPPlayerApplication;
+#ifdef __cplusplus
+interface IWMPPlayerApplication;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPCore_FWD_DEFINED__
+#define __IWMPCore_FWD_DEFINED__
+typedef interface IWMPCore IWMPCore;
+#ifdef __cplusplus
+interface IWMPCore;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPCore2_FWD_DEFINED__
+#define __IWMPCore2_FWD_DEFINED__
+typedef interface IWMPCore2 IWMPCore2;
+#ifdef __cplusplus
+interface IWMPCore2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPCore3_FWD_DEFINED__
+#define __IWMPCore3_FWD_DEFINED__
+typedef interface IWMPCore3 IWMPCore3;
+#ifdef __cplusplus
+interface IWMPCore3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPPlayer4_FWD_DEFINED__
+#define __IWMPPlayer4_FWD_DEFINED__
+typedef interface IWMPPlayer4 IWMPPlayer4;
+#ifdef __cplusplus
+interface IWMPPlayer4;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPPlayer_FWD_DEFINED__
+#define __IWMPPlayer_FWD_DEFINED__
+typedef interface IWMPPlayer IWMPPlayer;
+#ifdef __cplusplus
+interface IWMPPlayer;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPSyncDevice_FWD_DEFINED__
+#define __IWMPSyncDevice_FWD_DEFINED__
+typedef interface IWMPSyncDevice IWMPSyncDevice;
+#ifdef __cplusplus
+interface IWMPSyncDevice;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPSyncDevice2_FWD_DEFINED__
+#define __IWMPSyncDevice2_FWD_DEFINED__
+typedef interface IWMPSyncDevice2 IWMPSyncDevice2;
+#ifdef __cplusplus
+interface IWMPSyncDevice2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPCdromRip_FWD_DEFINED__
+#define __IWMPCdromRip_FWD_DEFINED__
+typedef interface IWMPCdromRip IWMPCdromRip;
+#ifdef __cplusplus
+interface IWMPCdromRip;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPCdromBurn_FWD_DEFINED__
+#define __IWMPCdromBurn_FWD_DEFINED__
+typedef interface IWMPCdromBurn IWMPCdromBurn;
+#ifdef __cplusplus
+interface IWMPCdromBurn;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPLibrary_FWD_DEFINED__
+#define __IWMPLibrary_FWD_DEFINED__
+typedef interface IWMPLibrary IWMPLibrary;
+#ifdef __cplusplus
+interface IWMPLibrary;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPEvents_FWD_DEFINED__
+#define __IWMPEvents_FWD_DEFINED__
+typedef interface IWMPEvents IWMPEvents;
+#ifdef __cplusplus
+interface IWMPEvents;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPEvents2_FWD_DEFINED__
+#define __IWMPEvents2_FWD_DEFINED__
+typedef interface IWMPEvents2 IWMPEvents2;
+#ifdef __cplusplus
+interface IWMPEvents2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPEvents3_FWD_DEFINED__
+#define __IWMPEvents3_FWD_DEFINED__
+typedef interface IWMPEvents3 IWMPEvents3;
+#ifdef __cplusplus
+interface IWMPEvents3;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPEvents4_FWD_DEFINED__
+#define __IWMPEvents4_FWD_DEFINED__
+typedef interface IWMPEvents4 IWMPEvents4;
+#ifdef __cplusplus
+interface IWMPEvents4;
+#endif /* __cplusplus */
+#endif
+
+#ifndef ___WMPOCXEvents_FWD_DEFINED__
+#define ___WMPOCXEvents_FWD_DEFINED__
+typedef interface _WMPOCXEvents _WMPOCXEvents;
+#ifdef __cplusplus
+interface _WMPOCXEvents;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __WindowsMediaPlayer_FWD_DEFINED__
+#define __WindowsMediaPlayer_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class WindowsMediaPlayer WindowsMediaPlayer;
+#else
+typedef struct WindowsMediaPlayer WindowsMediaPlayer;
+#endif /* defined __cplusplus */
+#endif /* defined __WindowsMediaPlayer_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef __WMPLib_LIBRARY_DEFINED__
+#define __WMPLib_LIBRARY_DEFINED__
+
+DEFINE_GUID(LIBID_WMPLib, 0x6bf52a50, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);
+
+typedef enum __WIDL_wmp_generated_name_00000020 {
+    wmposUndefined = 0,
+    wmposPlaylistChanging = 1,
+    wmposPlaylistLocating = 2,
+    wmposPlaylistConnecting = 3,
+    wmposPlaylistLoading = 4,
+    wmposPlaylistOpening = 5,
+    wmposPlaylistOpenNoMedia = 6,
+    wmposPlaylistChanged = 7,
+    wmposMediaChanging = 8,
+    wmposMediaLocating = 9,
+    wmposMediaConnecting = 10,
+    wmposMediaLoading = 11,
+    wmposMediaOpening = 12,
+    wmposMediaOpen = 13,
+    wmposBeginCodecAcquisition = 14,
+    wmposEndCodecAcquisition = 15,
+    wmposBeginLicenseAcquisition = 16,
+    wmposEndLicenseAcquisition = 17,
+    wmposBeginIndividualization = 18,
+    wmposEndIndividualization = 19,
+    wmposMediaWaiting = 20,
+    wmposOpeningUnknownURL = 21
+} WMPOpenState;
+typedef enum __WIDL_wmp_generated_name_00000021 {
+    wmppsUndefined = 0,
+    wmppsStopped = 1,
+    wmppsPaused = 2,
+    wmppsPlaying = 3,
+    wmppsScanForward = 4,
+    wmppsScanReverse = 5,
+    wmppsBuffering = 6,
+    wmppsWaiting = 7,
+    wmppsMediaEnded = 8,
+    wmppsTransitioning = 9,
+    wmppsReady = 10,
+    wmppsReconnecting = 11,
+    wmppsLast = 12
+} WMPPlayState;
+typedef enum __WIDL_wmp_generated_name_00000022 {
+    wmplcUnknown = 0,
+    wmplcClear = 1,
+    wmplcInfoChange = 2,
+    wmplcMove = 3,
+    wmplcDelete = 4,
+    wmplcInsert = 5,
+    wmplcAppend = 6,
+    wmplcPrivate = 7,
+    wmplcNameChange = 8,
+    wmplcMorph = 9,
+    wmplcSort = 10,
+    wmplcLast = 11
+} WMPPlaylistChangeEventType;
+typedef enum __WIDL_wmp_generated_name_00000023 {
+    wmpdsUnknown = 0,
+    wmpdsPartnershipExists = 1,
+    wmpdsPartnershipDeclined = 2,
+    wmpdsPartnershipAnother = 3,
+    wmpdsManualDevice = 4,
+    wmpdsNewDevice = 5,
+    wmpdsLast = 6
+} WMPDeviceStatus;
+typedef enum __WIDL_wmp_generated_name_00000024 {
+    wmpssUnknown = 0,
+    wmpssSynchronizing = 1,
+    wmpssStopped = 2,
+    wmpssEstimating = 3,
+    wmpssLast = 4
+} WMPSyncState;
+typedef enum __WIDL_wmp_generated_name_00000025 {
+    wmprsUnknown = 0,
+    wmprsRipping = 1,
+    wmprsStopped = 2
+} WMPRipState;
+typedef enum __WIDL_wmp_generated_name_00000026 {
+    wmpbfAudioCD = 0,
+    wmpbfDataCD = 1
+} WMPBurnFormat;
+typedef enum __WIDL_wmp_generated_name_00000027 {
+    wmpbsUnknown = 0,
+    wmpbsBusy = 1,
+    wmpbsReady = 2,
+    wmpbsWaitingForDisc = 3,
+    wmpbsRefreshStatusPending = 4,
+    wmpbsPreparingToBurn = 5,
+    wmpbsBurning = 6,
+    wmpbsStopped = 7,
+    wmpbsErasing = 8,
+    wmpbsDownloading = 9
+} WMPBurnState;
+typedef enum __WIDL_wmp_generated_name_00000028 {
+    wmpltUnknown = 0,
+    wmpltAll = 1,
+    wmpltLocal = 2,
+    wmpltRemote = 3,
+    wmpltDisc = 4,
+    wmpltPortableDevice = 5
+} WMPLibraryType;
+typedef enum __WIDL_wmp_generated_name_00000029 {
+    wmpfssUnknown = 0,
+    wmpfssScanning = 1,
+    wmpfssUpdating = 2,
+    wmpfssStopped = 3
+} WMPFolderScanState;
+typedef enum __WIDL_wmp_generated_name_0000002A {
+    wmpsccetUnknown = 0,
+    wmpsccetInsert = 1,
+    wmpsccetChange = 2,
+    wmpsccetDelete = 3,
+    wmpsccetClear = 4,
+    wmpsccetBeginUpdates = 5,
+    wmpsccetEndUpdates = 6
+} WMPStringCollectionChangeEventType;
+#ifndef __IWMPMedia_FWD_DEFINED__
+#define __IWMPMedia_FWD_DEFINED__
+typedef interface IWMPMedia IWMPMedia;
+#ifdef __cplusplus
+interface IWMPMedia;
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * IWMPPlaylist interface
+ */
+#ifndef __IWMPPlaylist_INTERFACE_DEFINED__
+#define __IWMPPlaylist_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPPlaylist, 0xd5f0f4f1, 0x130c, 0x11d3, 0xb1,0x4e, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d5f0f4f1-130c-11d3-b14e-00c04f79faa6")
+IWMPPlaylist : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_count(
+        LONG *plCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_name(
+        BSTR *pbstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_name(
+        BSTR pbstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_attributeCount(
+        LONG *plCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_attributeName(
+        LONG lIndex,
+        BSTR *pbstrAttributeName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG lIndex,
+        IWMPMedia **ppIWMPMedia) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getItemInfo(
+        BSTR bstrName,
+        BSTR *pbstrVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE setItemInfo(
+        BSTR bstrName,
+        BSTR bstrValue) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_isIdentical(
+        IWMPPlaylist *pIWMPPlaylist,
+        VARIANT_BOOL *pvbool) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE clear(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE insertItem(
+        LONG lIndex,
+        IWMPMedia *pIWMPMedia) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE appendItem(
+        IWMPMedia *pIWMPMedia) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE removeItem(
+        IWMPMedia *pIWMPMedia) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE moveItem(
+        LONG lIndexOld,
+        LONG lIndexNew) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPPlaylist, 0xd5f0f4f1, 0x130c, 0x11d3, 0xb1,0x4e, 0x00,0xc0,0x4f,0x79,0xfa,0xa6)
+#endif
+#else
+typedef struct IWMPPlaylistVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPPlaylist *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPPlaylist *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPPlaylist *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPPlaylist *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPPlaylist *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPPlaylist *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPPlaylist *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPPlaylist methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_count)(
+        IWMPPlaylist *This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *get_name)(
+        IWMPPlaylist *This,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *put_name)(
+        IWMPPlaylist *This,
+        BSTR pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *get_attributeCount)(
+        IWMPPlaylist *This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *get_attributeName)(
+        IWMPPlaylist *This,
+        LONG lIndex,
+        BSTR *pbstrAttributeName);
+
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IWMPPlaylist *This,
+        LONG lIndex,
+        IWMPMedia **ppIWMPMedia);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfo)(
+        IWMPPlaylist *This,
+        BSTR bstrName,
+        BSTR *pbstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *setItemInfo)(
+        IWMPPlaylist *This,
+        BSTR bstrName,
+        BSTR bstrValue);
+
+    HRESULT (STDMETHODCALLTYPE *get_isIdentical)(
+        IWMPPlaylist *This,
+        IWMPPlaylist *pIWMPPlaylist,
+        VARIANT_BOOL *pvbool);
+
+    HRESULT (STDMETHODCALLTYPE *clear)(
+        IWMPPlaylist *This);
+
+    HRESULT (STDMETHODCALLTYPE *insertItem)(
+        IWMPPlaylist *This,
+        LONG lIndex,
+        IWMPMedia *pIWMPMedia);
+
+    HRESULT (STDMETHODCALLTYPE *appendItem)(
+        IWMPPlaylist *This,
+        IWMPMedia *pIWMPMedia);
+
+    HRESULT (STDMETHODCALLTYPE *removeItem)(
+        IWMPPlaylist *This,
+        IWMPMedia *pIWMPMedia);
+
+    HRESULT (STDMETHODCALLTYPE *moveItem)(
+        IWMPPlaylist *This,
+        LONG lIndexOld,
+        LONG lIndexNew);
+
+    END_INTERFACE
+} IWMPPlaylistVtbl;
+
+interface IWMPPlaylist {
+    CONST_VTBL IWMPPlaylistVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPPlaylist_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPPlaylist_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPPlaylist_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPPlaylist_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPPlaylist_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPPlaylist_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPPlaylist_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPPlaylist methods ***/
+#define IWMPPlaylist_get_count(This,plCount) (This)->lpVtbl->get_count(This,plCount)
+#define IWMPPlaylist_get_name(This,pbstrName) (This)->lpVtbl->get_name(This,pbstrName)
+#define IWMPPlaylist_put_name(This,pbstrName) (This)->lpVtbl->put_name(This,pbstrName)
+#define IWMPPlaylist_get_attributeCount(This,plCount) (This)->lpVtbl->get_attributeCount(This,plCount)
+#define IWMPPlaylist_get_attributeName(This,lIndex,pbstrAttributeName) (This)->lpVtbl->get_attributeName(This,lIndex,pbstrAttributeName)
+#define IWMPPlaylist_get_Item(This,lIndex,ppIWMPMedia) (This)->lpVtbl->get_Item(This,lIndex,ppIWMPMedia)
+#define IWMPPlaylist_getItemInfo(This,bstrName,pbstrVal) (This)->lpVtbl->getItemInfo(This,bstrName,pbstrVal)
+#define IWMPPlaylist_setItemInfo(This,bstrName,bstrValue) (This)->lpVtbl->setItemInfo(This,bstrName,bstrValue)
+#define IWMPPlaylist_get_isIdentical(This,pIWMPPlaylist,pvbool) (This)->lpVtbl->get_isIdentical(This,pIWMPPlaylist,pvbool)
+#define IWMPPlaylist_clear(This) (This)->lpVtbl->clear(This)
+#define IWMPPlaylist_insertItem(This,lIndex,pIWMPMedia) (This)->lpVtbl->insertItem(This,lIndex,pIWMPMedia)
+#define IWMPPlaylist_appendItem(This,pIWMPMedia) (This)->lpVtbl->appendItem(This,pIWMPMedia)
+#define IWMPPlaylist_removeItem(This,pIWMPMedia) (This)->lpVtbl->removeItem(This,pIWMPMedia)
+#define IWMPPlaylist_moveItem(This,lIndexOld,lIndexNew) (This)->lpVtbl->moveItem(This,lIndexOld,lIndexNew)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPPlaylist_QueryInterface(IWMPPlaylist* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPPlaylist_AddRef(IWMPPlaylist* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPPlaylist_Release(IWMPPlaylist* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPPlaylist_GetTypeInfoCount(IWMPPlaylist* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_GetTypeInfo(IWMPPlaylist* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_GetIDsOfNames(IWMPPlaylist* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_Invoke(IWMPPlaylist* 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);
+}
+/*** IWMPPlaylist methods ***/
+static FORCEINLINE HRESULT IWMPPlaylist_get_count(IWMPPlaylist* This,LONG *plCount) {
+    return This->lpVtbl->get_count(This,plCount);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_get_name(IWMPPlaylist* This,BSTR *pbstrName) {
+    return This->lpVtbl->get_name(This,pbstrName);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_put_name(IWMPPlaylist* This,BSTR pbstrName) {
+    return This->lpVtbl->put_name(This,pbstrName);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_get_attributeCount(IWMPPlaylist* This,LONG *plCount) {
+    return This->lpVtbl->get_attributeCount(This,plCount);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_get_attributeName(IWMPPlaylist* This,LONG lIndex,BSTR *pbstrAttributeName) {
+    return This->lpVtbl->get_attributeName(This,lIndex,pbstrAttributeName);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_get_Item(IWMPPlaylist* This,LONG lIndex,IWMPMedia **ppIWMPMedia) {
+    return This->lpVtbl->get_Item(This,lIndex,ppIWMPMedia);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_getItemInfo(IWMPPlaylist* This,BSTR bstrName,BSTR *pbstrVal) {
+    return This->lpVtbl->getItemInfo(This,bstrName,pbstrVal);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_setItemInfo(IWMPPlaylist* This,BSTR bstrName,BSTR bstrValue) {
+    return This->lpVtbl->setItemInfo(This,bstrName,bstrValue);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_get_isIdentical(IWMPPlaylist* This,IWMPPlaylist *pIWMPPlaylist,VARIANT_BOOL *pvbool) {
+    return This->lpVtbl->get_isIdentical(This,pIWMPPlaylist,pvbool);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_clear(IWMPPlaylist* This) {
+    return This->lpVtbl->clear(This);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_insertItem(IWMPPlaylist* This,LONG lIndex,IWMPMedia *pIWMPMedia) {
+    return This->lpVtbl->insertItem(This,lIndex,pIWMPMedia);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_appendItem(IWMPPlaylist* This,IWMPMedia *pIWMPMedia) {
+    return This->lpVtbl->appendItem(This,pIWMPMedia);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_removeItem(IWMPPlaylist* This,IWMPMedia *pIWMPMedia) {
+    return This->lpVtbl->removeItem(This,pIWMPMedia);
+}
+static FORCEINLINE HRESULT IWMPPlaylist_moveItem(IWMPPlaylist* This,LONG lIndexOld,LONG lIndexNew) {
+    return This->lpVtbl->moveItem(This,lIndexOld,lIndexNew);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPPlaylist_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPMedia interface
+ */
+#ifndef __IWMPMedia_INTERFACE_DEFINED__
+#define __IWMPMedia_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPMedia, 0x94d55e95, 0x3fac, 0x11d3, 0xb1,0x55, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("94d55e95-3fac-11d3-b155-00c04f79faa6")
+IWMPMedia : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_isIdentical(
+        IWMPMedia *pIWMPMedia,
+        VARIANT_BOOL *pvbool) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_sourceURL(
+        BSTR *pbstrSourceURL) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_name(
+        BSTR *pbstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_name(
+        BSTR pbstrName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_imageSourceWidth(
+        LONG *pWidth) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_imageSourceHeight(
+        LONG *pHeight) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_markerCount(
+        LONG *pMarkerCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getMarkerTime(
+        LONG MarkerNum,
+        double *pMarkerTime) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getMarkerName(
+        LONG MarkerNum,
+        BSTR *pbstrMarkerName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_duration(
+        double *pDuration) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_durationString(
+        BSTR *pbstrDuration) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_attributeCount(
+        LONG *plCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getAttributeName(
+        LONG lIndex,
+        BSTR *pbstrItemName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getItemInfo(
+        BSTR bstrItemName,
+        BSTR *pbstrVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE setItemInfo(
+        BSTR bstrItemName,
+        BSTR bstrVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getItemInfoByAtom(
+        LONG lAtom,
+        BSTR *pbstrVal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE isMemberOf(
+        IWMPPlaylist *pPlaylist,
+        VARIANT_BOOL *pvarfIsMemberOf) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE isReadOnlyItem(
+        BSTR bstrItemName,
+        VARIANT_BOOL *pvarfIsReadOnly) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPMedia, 0x94d55e95, 0x3fac, 0x11d3, 0xb1,0x55, 0x00,0xc0,0x4f,0x79,0xfa,0xa6)
+#endif
+#else
+typedef struct IWMPMediaVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPMedia *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPMedia *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPMedia *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPMedia *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPMedia *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPMedia *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPMedia *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPMedia methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_isIdentical)(
+        IWMPMedia *This,
+        IWMPMedia *pIWMPMedia,
+        VARIANT_BOOL *pvbool);
+
+    HRESULT (STDMETHODCALLTYPE *get_sourceURL)(
+        IWMPMedia *This,
+        BSTR *pbstrSourceURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_name)(
+        IWMPMedia *This,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *put_name)(
+        IWMPMedia *This,
+        BSTR pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *get_imageSourceWidth)(
+        IWMPMedia *This,
+        LONG *pWidth);
+
+    HRESULT (STDMETHODCALLTYPE *get_imageSourceHeight)(
+        IWMPMedia *This,
+        LONG *pHeight);
+
+    HRESULT (STDMETHODCALLTYPE *get_markerCount)(
+        IWMPMedia *This,
+        LONG *pMarkerCount);
+
+    HRESULT (STDMETHODCALLTYPE *getMarkerTime)(
+        IWMPMedia *This,
+        LONG MarkerNum,
+        double *pMarkerTime);
+
+    HRESULT (STDMETHODCALLTYPE *getMarkerName)(
+        IWMPMedia *This,
+        LONG MarkerNum,
+        BSTR *pbstrMarkerName);
+
+    HRESULT (STDMETHODCALLTYPE *get_duration)(
+        IWMPMedia *This,
+        double *pDuration);
+
+    HRESULT (STDMETHODCALLTYPE *get_durationString)(
+        IWMPMedia *This,
+        BSTR *pbstrDuration);
+
+    HRESULT (STDMETHODCALLTYPE *get_attributeCount)(
+        IWMPMedia *This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *getAttributeName)(
+        IWMPMedia *This,
+        LONG lIndex,
+        BSTR *pbstrItemName);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfo)(
+        IWMPMedia *This,
+        BSTR bstrItemName,
+        BSTR *pbstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *setItemInfo)(
+        IWMPMedia *This,
+        BSTR bstrItemName,
+        BSTR bstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfoByAtom)(
+        IWMPMedia *This,
+        LONG lAtom,
+        BSTR *pbstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *isMemberOf)(
+        IWMPMedia *This,
+        IWMPPlaylist *pPlaylist,
+        VARIANT_BOOL *pvarfIsMemberOf);
+
+    HRESULT (STDMETHODCALLTYPE *isReadOnlyItem)(
+        IWMPMedia *This,
+        BSTR bstrItemName,
+        VARIANT_BOOL *pvarfIsReadOnly);
+
+    END_INTERFACE
+} IWMPMediaVtbl;
+
+interface IWMPMedia {
+    CONST_VTBL IWMPMediaVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPMedia_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPMedia_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPMedia_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPMedia_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPMedia_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPMedia_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPMedia_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPMedia methods ***/
+#define IWMPMedia_get_isIdentical(This,pIWMPMedia,pvbool) (This)->lpVtbl->get_isIdentical(This,pIWMPMedia,pvbool)
+#define IWMPMedia_get_sourceURL(This,pbstrSourceURL) (This)->lpVtbl->get_sourceURL(This,pbstrSourceURL)
+#define IWMPMedia_get_name(This,pbstrName) (This)->lpVtbl->get_name(This,pbstrName)
+#define IWMPMedia_put_name(This,pbstrName) (This)->lpVtbl->put_name(This,pbstrName)
+#define IWMPMedia_get_imageSourceWidth(This,pWidth) (This)->lpVtbl->get_imageSourceWidth(This,pWidth)
+#define IWMPMedia_get_imageSourceHeight(This,pHeight) (This)->lpVtbl->get_imageSourceHeight(This,pHeight)
+#define IWMPMedia_get_markerCount(This,pMarkerCount) (This)->lpVtbl->get_markerCount(This,pMarkerCount)
+#define IWMPMedia_getMarkerTime(This,MarkerNum,pMarkerTime) (This)->lpVtbl->getMarkerTime(This,MarkerNum,pMarkerTime)
+#define IWMPMedia_getMarkerName(This,MarkerNum,pbstrMarkerName) (This)->lpVtbl->getMarkerName(This,MarkerNum,pbstrMarkerName)
+#define IWMPMedia_get_duration(This,pDuration) (This)->lpVtbl->get_duration(This,pDuration)
+#define IWMPMedia_get_durationString(This,pbstrDuration) (This)->lpVtbl->get_durationString(This,pbstrDuration)
+#define IWMPMedia_get_attributeCount(This,plCount) (This)->lpVtbl->get_attributeCount(This,plCount)
+#define IWMPMedia_getAttributeName(This,lIndex,pbstrItemName) (This)->lpVtbl->getAttributeName(This,lIndex,pbstrItemName)
+#define IWMPMedia_getItemInfo(This,bstrItemName,pbstrVal) (This)->lpVtbl->getItemInfo(This,bstrItemName,pbstrVal)
+#define IWMPMedia_setItemInfo(This,bstrItemName,bstrVal) (This)->lpVtbl->setItemInfo(This,bstrItemName,bstrVal)
+#define IWMPMedia_getItemInfoByAtom(This,lAtom,pbstrVal) (This)->lpVtbl->getItemInfoByAtom(This,lAtom,pbstrVal)
+#define IWMPMedia_isMemberOf(This,pPlaylist,pvarfIsMemberOf) (This)->lpVtbl->isMemberOf(This,pPlaylist,pvarfIsMemberOf)
+#define IWMPMedia_isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly) (This)->lpVtbl->isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPMedia_QueryInterface(IWMPMedia* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPMedia_AddRef(IWMPMedia* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPMedia_Release(IWMPMedia* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPMedia_GetTypeInfoCount(IWMPMedia* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPMedia_GetTypeInfo(IWMPMedia* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPMedia_GetIDsOfNames(IWMPMedia* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPMedia_Invoke(IWMPMedia* 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);
+}
+/*** IWMPMedia methods ***/
+static FORCEINLINE HRESULT IWMPMedia_get_isIdentical(IWMPMedia* This,IWMPMedia *pIWMPMedia,VARIANT_BOOL *pvbool) {
+    return This->lpVtbl->get_isIdentical(This,pIWMPMedia,pvbool);
+}
+static FORCEINLINE HRESULT IWMPMedia_get_sourceURL(IWMPMedia* This,BSTR *pbstrSourceURL) {
+    return This->lpVtbl->get_sourceURL(This,pbstrSourceURL);
+}
+static FORCEINLINE HRESULT IWMPMedia_get_name(IWMPMedia* This,BSTR *pbstrName) {
+    return This->lpVtbl->get_name(This,pbstrName);
+}
+static FORCEINLINE HRESULT IWMPMedia_put_name(IWMPMedia* This,BSTR pbstrName) {
+    return This->lpVtbl->put_name(This,pbstrName);
+}
+static FORCEINLINE HRESULT IWMPMedia_get_imageSourceWidth(IWMPMedia* This,LONG *pWidth) {
+    return This->lpVtbl->get_imageSourceWidth(This,pWidth);
+}
+static FORCEINLINE HRESULT IWMPMedia_get_imageSourceHeight(IWMPMedia* This,LONG *pHeight) {
+    return This->lpVtbl->get_imageSourceHeight(This,pHeight);
+}
+static FORCEINLINE HRESULT IWMPMedia_get_markerCount(IWMPMedia* This,LONG *pMarkerCount) {
+    return This->lpVtbl->get_markerCount(This,pMarkerCount);
+}
+static FORCEINLINE HRESULT IWMPMedia_getMarkerTime(IWMPMedia* This,LONG MarkerNum,double *pMarkerTime) {
+    return This->lpVtbl->getMarkerTime(This,MarkerNum,pMarkerTime);
+}
+static FORCEINLINE HRESULT IWMPMedia_getMarkerName(IWMPMedia* This,LONG MarkerNum,BSTR *pbstrMarkerName) {
+    return This->lpVtbl->getMarkerName(This,MarkerNum,pbstrMarkerName);
+}
+static FORCEINLINE HRESULT IWMPMedia_get_duration(IWMPMedia* This,double *pDuration) {
+    return This->lpVtbl->get_duration(This,pDuration);
+}
+static FORCEINLINE HRESULT IWMPMedia_get_durationString(IWMPMedia* This,BSTR *pbstrDuration) {
+    return This->lpVtbl->get_durationString(This,pbstrDuration);
+}
+static FORCEINLINE HRESULT IWMPMedia_get_attributeCount(IWMPMedia* This,LONG *plCount) {
+    return This->lpVtbl->get_attributeCount(This,plCount);
+}
+static FORCEINLINE HRESULT IWMPMedia_getAttributeName(IWMPMedia* This,LONG lIndex,BSTR *pbstrItemName) {
+    return This->lpVtbl->getAttributeName(This,lIndex,pbstrItemName);
+}
+static FORCEINLINE HRESULT IWMPMedia_getItemInfo(IWMPMedia* This,BSTR bstrItemName,BSTR *pbstrVal) {
+    return This->lpVtbl->getItemInfo(This,bstrItemName,pbstrVal);
+}
+static FORCEINLINE HRESULT IWMPMedia_setItemInfo(IWMPMedia* This,BSTR bstrItemName,BSTR bstrVal) {
+    return This->lpVtbl->setItemInfo(This,bstrItemName,bstrVal);
+}
+static FORCEINLINE HRESULT IWMPMedia_getItemInfoByAtom(IWMPMedia* This,LONG lAtom,BSTR *pbstrVal) {
+    return This->lpVtbl->getItemInfoByAtom(This,lAtom,pbstrVal);
+}
+static FORCEINLINE HRESULT IWMPMedia_isMemberOf(IWMPMedia* This,IWMPPlaylist *pPlaylist,VARIANT_BOOL *pvarfIsMemberOf) {
+    return This->lpVtbl->isMemberOf(This,pPlaylist,pvarfIsMemberOf);
+}
+static FORCEINLINE HRESULT IWMPMedia_isReadOnlyItem(IWMPMedia* This,BSTR bstrItemName,VARIANT_BOOL *pvarfIsReadOnly) {
+    return This->lpVtbl->isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPMedia_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPControls interface
+ */
+#ifndef __IWMPControls_INTERFACE_DEFINED__
+#define __IWMPControls_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPControls, 0x74c09e02, 0xf828, 0x11d2, 0xa7,0x4b, 0x00,0xa0,0xc9,0x05,0xf3,0x6e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("74c09e02-f828-11d2-a74b-00a0c905f36e")
+IWMPControls : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_isAvailable(
+        BSTR bstrItem,
+        VARIANT_BOOL *pIsAvailable) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE play(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE stop(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE pause(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE fastForward(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE fastReverse(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_currentPosition(
+        double *pdCurrentPosition) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_currentPosition(
+        double pdCurrentPosition) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_currentPositionString(
+        BSTR *pbstrCurrentPosition) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE next(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE previous(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE currentItem(
+        IWMPMedia **ppIWMPMedia) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_currentItem(
+        IWMPMedia *ppIWMPMedia) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_currentMarker(
+        LONG *plMarker) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_currentMarker(
+        LONG plMarker) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE playItem(
+        IWMPMedia *pIWMPMedia) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPControls, 0x74c09e02, 0xf828, 0x11d2, 0xa7,0x4b, 0x00,0xa0,0xc9,0x05,0xf3,0x6e)
+#endif
+#else
+typedef struct IWMPControlsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPControls *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPControls *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPControls *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPControls *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPControls *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPControls *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPControls *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPControls methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_isAvailable)(
+        IWMPControls *This,
+        BSTR bstrItem,
+        VARIANT_BOOL *pIsAvailable);
+
+    HRESULT (STDMETHODCALLTYPE *play)(
+        IWMPControls *This);
+
+    HRESULT (STDMETHODCALLTYPE *stop)(
+        IWMPControls *This);
+
+    HRESULT (STDMETHODCALLTYPE *pause)(
+        IWMPControls *This);
+
+    HRESULT (STDMETHODCALLTYPE *fastForward)(
+        IWMPControls *This);
+
+    HRESULT (STDMETHODCALLTYPE *fastReverse)(
+        IWMPControls *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentPosition)(
+        IWMPControls *This,
+        double *pdCurrentPosition);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentPosition)(
+        IWMPControls *This,
+        double pdCurrentPosition);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentPositionString)(
+        IWMPControls *This,
+        BSTR *pbstrCurrentPosition);
+
+    HRESULT (STDMETHODCALLTYPE *next)(
+        IWMPControls *This);
+
+    HRESULT (STDMETHODCALLTYPE *previous)(
+        IWMPControls *This);
+
+    HRESULT (STDMETHODCALLTYPE *currentItem)(
+        IWMPControls *This,
+        IWMPMedia **ppIWMPMedia);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentItem)(
+        IWMPControls *This,
+        IWMPMedia *ppIWMPMedia);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentMarker)(
+        IWMPControls *This,
+        LONG *plMarker);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentMarker)(
+        IWMPControls *This,
+        LONG plMarker);
+
+    HRESULT (STDMETHODCALLTYPE *playItem)(
+        IWMPControls *This,
+        IWMPMedia *pIWMPMedia);
+
+    END_INTERFACE
+} IWMPControlsVtbl;
+
+interface IWMPControls {
+    CONST_VTBL IWMPControlsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPControls_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPControls_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPControls_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPControls_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPControls_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPControls_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPControls_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPControls methods ***/
+#define IWMPControls_get_isAvailable(This,bstrItem,pIsAvailable) (This)->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable)
+#define IWMPControls_play(This) (This)->lpVtbl->play(This)
+#define IWMPControls_stop(This) (This)->lpVtbl->stop(This)
+#define IWMPControls_pause(This) (This)->lpVtbl->pause(This)
+#define IWMPControls_fastForward(This) (This)->lpVtbl->fastForward(This)
+#define IWMPControls_fastReverse(This) (This)->lpVtbl->fastReverse(This)
+#define IWMPControls_get_currentPosition(This,pdCurrentPosition) (This)->lpVtbl->get_currentPosition(This,pdCurrentPosition)
+#define IWMPControls_put_currentPosition(This,pdCurrentPosition) (This)->lpVtbl->put_currentPosition(This,pdCurrentPosition)
+#define IWMPControls_get_currentPositionString(This,pbstrCurrentPosition) (This)->lpVtbl->get_currentPositionString(This,pbstrCurrentPosition)
+#define IWMPControls_next(This) (This)->lpVtbl->next(This)
+#define IWMPControls_previous(This) (This)->lpVtbl->previous(This)
+#define IWMPControls_currentItem(This,ppIWMPMedia) (This)->lpVtbl->currentItem(This,ppIWMPMedia)
+#define IWMPControls_put_currentItem(This,ppIWMPMedia) (This)->lpVtbl->put_currentItem(This,ppIWMPMedia)
+#define IWMPControls_get_currentMarker(This,plMarker) (This)->lpVtbl->get_currentMarker(This,plMarker)
+#define IWMPControls_put_currentMarker(This,plMarker) (This)->lpVtbl->put_currentMarker(This,plMarker)
+#define IWMPControls_playItem(This,pIWMPMedia) (This)->lpVtbl->playItem(This,pIWMPMedia)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPControls_QueryInterface(IWMPControls* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPControls_AddRef(IWMPControls* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPControls_Release(IWMPControls* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPControls_GetTypeInfoCount(IWMPControls* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPControls_GetTypeInfo(IWMPControls* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPControls_GetIDsOfNames(IWMPControls* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPControls_Invoke(IWMPControls* 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);
+}
+/*** IWMPControls methods ***/
+static FORCEINLINE HRESULT IWMPControls_get_isAvailable(IWMPControls* This,BSTR bstrItem,VARIANT_BOOL *pIsAvailable) {
+    return This->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable);
+}
+static FORCEINLINE HRESULT IWMPControls_play(IWMPControls* This) {
+    return This->lpVtbl->play(This);
+}
+static FORCEINLINE HRESULT IWMPControls_stop(IWMPControls* This) {
+    return This->lpVtbl->stop(This);
+}
+static FORCEINLINE HRESULT IWMPControls_pause(IWMPControls* This) {
+    return This->lpVtbl->pause(This);
+}
+static FORCEINLINE HRESULT IWMPControls_fastForward(IWMPControls* This) {
+    return This->lpVtbl->fastForward(This);
+}
+static FORCEINLINE HRESULT IWMPControls_fastReverse(IWMPControls* This) {
+    return This->lpVtbl->fastReverse(This);
+}
+static FORCEINLINE HRESULT IWMPControls_get_currentPosition(IWMPControls* This,double *pdCurrentPosition) {
+    return This->lpVtbl->get_currentPosition(This,pdCurrentPosition);
+}
+static FORCEINLINE HRESULT IWMPControls_put_currentPosition(IWMPControls* This,double pdCurrentPosition) {
+    return This->lpVtbl->put_currentPosition(This,pdCurrentPosition);
+}
+static FORCEINLINE HRESULT IWMPControls_get_currentPositionString(IWMPControls* This,BSTR *pbstrCurrentPosition) {
+    return This->lpVtbl->get_currentPositionString(This,pbstrCurrentPosition);
+}
+static FORCEINLINE HRESULT IWMPControls_next(IWMPControls* This) {
+    return This->lpVtbl->next(This);
+}
+static FORCEINLINE HRESULT IWMPControls_previous(IWMPControls* This) {
+    return This->lpVtbl->previous(This);
+}
+static FORCEINLINE HRESULT IWMPControls_currentItem(IWMPControls* This,IWMPMedia **ppIWMPMedia) {
+    return This->lpVtbl->currentItem(This,ppIWMPMedia);
+}
+static FORCEINLINE HRESULT IWMPControls_put_currentItem(IWMPControls* This,IWMPMedia *ppIWMPMedia) {
+    return This->lpVtbl->put_currentItem(This,ppIWMPMedia);
+}
+static FORCEINLINE HRESULT IWMPControls_get_currentMarker(IWMPControls* This,LONG *plMarker) {
+    return This->lpVtbl->get_currentMarker(This,plMarker);
+}
+static FORCEINLINE HRESULT IWMPControls_put_currentMarker(IWMPControls* This,LONG plMarker) {
+    return This->lpVtbl->put_currentMarker(This,plMarker);
+}
+static FORCEINLINE HRESULT IWMPControls_playItem(IWMPControls* This,IWMPMedia *pIWMPMedia) {
+    return This->lpVtbl->playItem(This,pIWMPMedia);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPControls_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPControls2 interface
+ */
+#ifndef __IWMPControls2_INTERFACE_DEFINED__
+#define __IWMPControls2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPControls2, 0x6f030d25, 0x0890, 0x480f, 0x97,0x75, 0x1f,0x7e,0x40,0xab,0x5b,0x8e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6f030d25-0890-480f-9775-1f7e40ab5b8e")
+IWMPControls2 : public IWMPControls
+{
+    virtual HRESULT STDMETHODCALLTYPE step(
+        LONG lStep) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPControls2, 0x6f030d25, 0x0890, 0x480f, 0x97,0x75, 0x1f,0x7e,0x40,0xab,0x5b,0x8e)
+#endif
+#else
+typedef struct IWMPControls2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPControls2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPControls2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPControls2 *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPControls2 *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPControls2 *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPControls2 *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPControls2 *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPControls methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_isAvailable)(
+        IWMPControls2 *This,
+        BSTR bstrItem,
+        VARIANT_BOOL *pIsAvailable);
+
+    HRESULT (STDMETHODCALLTYPE *play)(
+        IWMPControls2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *stop)(
+        IWMPControls2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *pause)(
+        IWMPControls2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *fastForward)(
+        IWMPControls2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *fastReverse)(
+        IWMPControls2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentPosition)(
+        IWMPControls2 *This,
+        double *pdCurrentPosition);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentPosition)(
+        IWMPControls2 *This,
+        double pdCurrentPosition);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentPositionString)(
+        IWMPControls2 *This,
+        BSTR *pbstrCurrentPosition);
+
+    HRESULT (STDMETHODCALLTYPE *next)(
+        IWMPControls2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *previous)(
+        IWMPControls2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *currentItem)(
+        IWMPControls2 *This,
+        IWMPMedia **ppIWMPMedia);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentItem)(
+        IWMPControls2 *This,
+        IWMPMedia *ppIWMPMedia);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentMarker)(
+        IWMPControls2 *This,
+        LONG *plMarker);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentMarker)(
+        IWMPControls2 *This,
+        LONG plMarker);
+
+    HRESULT (STDMETHODCALLTYPE *playItem)(
+        IWMPControls2 *This,
+        IWMPMedia *pIWMPMedia);
+
+    /*** IWMPControls2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *step)(
+        IWMPControls2 *This,
+        LONG lStep);
+
+    END_INTERFACE
+} IWMPControls2Vtbl;
+
+interface IWMPControls2 {
+    CONST_VTBL IWMPControls2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPControls2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPControls2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPControls2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPControls2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPControls2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPControls2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPControls2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPControls methods ***/
+#define IWMPControls2_get_isAvailable(This,bstrItem,pIsAvailable) (This)->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable)
+#define IWMPControls2_play(This) (This)->lpVtbl->play(This)
+#define IWMPControls2_stop(This) (This)->lpVtbl->stop(This)
+#define IWMPControls2_pause(This) (This)->lpVtbl->pause(This)
+#define IWMPControls2_fastForward(This) (This)->lpVtbl->fastForward(This)
+#define IWMPControls2_fastReverse(This) (This)->lpVtbl->fastReverse(This)
+#define IWMPControls2_get_currentPosition(This,pdCurrentPosition) (This)->lpVtbl->get_currentPosition(This,pdCurrentPosition)
+#define IWMPControls2_put_currentPosition(This,pdCurrentPosition) (This)->lpVtbl->put_currentPosition(This,pdCurrentPosition)
+#define IWMPControls2_get_currentPositionString(This,pbstrCurrentPosition) (This)->lpVtbl->get_currentPositionString(This,pbstrCurrentPosition)
+#define IWMPControls2_next(This) (This)->lpVtbl->next(This)
+#define IWMPControls2_previous(This) (This)->lpVtbl->previous(This)
+#define IWMPControls2_currentItem(This,ppIWMPMedia) (This)->lpVtbl->currentItem(This,ppIWMPMedia)
+#define IWMPControls2_put_currentItem(This,ppIWMPMedia) (This)->lpVtbl->put_currentItem(This,ppIWMPMedia)
+#define IWMPControls2_get_currentMarker(This,plMarker) (This)->lpVtbl->get_currentMarker(This,plMarker)
+#define IWMPControls2_put_currentMarker(This,plMarker) (This)->lpVtbl->put_currentMarker(This,plMarker)
+#define IWMPControls2_playItem(This,pIWMPMedia) (This)->lpVtbl->playItem(This,pIWMPMedia)
+/*** IWMPControls2 methods ***/
+#define IWMPControls2_step(This,lStep) (This)->lpVtbl->step(This,lStep)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPControls2_QueryInterface(IWMPControls2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPControls2_AddRef(IWMPControls2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPControls2_Release(IWMPControls2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPControls2_GetTypeInfoCount(IWMPControls2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPControls2_GetTypeInfo(IWMPControls2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPControls2_GetIDsOfNames(IWMPControls2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPControls2_Invoke(IWMPControls2* 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);
+}
+/*** IWMPControls methods ***/
+static FORCEINLINE HRESULT IWMPControls2_get_isAvailable(IWMPControls2* This,BSTR bstrItem,VARIANT_BOOL *pIsAvailable) {
+    return This->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable);
+}
+static FORCEINLINE HRESULT IWMPControls2_play(IWMPControls2* This) {
+    return This->lpVtbl->play(This);
+}
+static FORCEINLINE HRESULT IWMPControls2_stop(IWMPControls2* This) {
+    return This->lpVtbl->stop(This);
+}
+static FORCEINLINE HRESULT IWMPControls2_pause(IWMPControls2* This) {
+    return This->lpVtbl->pause(This);
+}
+static FORCEINLINE HRESULT IWMPControls2_fastForward(IWMPControls2* This) {
+    return This->lpVtbl->fastForward(This);
+}
+static FORCEINLINE HRESULT IWMPControls2_fastReverse(IWMPControls2* This) {
+    return This->lpVtbl->fastReverse(This);
+}
+static FORCEINLINE HRESULT IWMPControls2_get_currentPosition(IWMPControls2* This,double *pdCurrentPosition) {
+    return This->lpVtbl->get_currentPosition(This,pdCurrentPosition);
+}
+static FORCEINLINE HRESULT IWMPControls2_put_currentPosition(IWMPControls2* This,double pdCurrentPosition) {
+    return This->lpVtbl->put_currentPosition(This,pdCurrentPosition);
+}
+static FORCEINLINE HRESULT IWMPControls2_get_currentPositionString(IWMPControls2* This,BSTR *pbstrCurrentPosition) {
+    return This->lpVtbl->get_currentPositionString(This,pbstrCurrentPosition);
+}
+static FORCEINLINE HRESULT IWMPControls2_next(IWMPControls2* This) {
+    return This->lpVtbl->next(This);
+}
+static FORCEINLINE HRESULT IWMPControls2_previous(IWMPControls2* This) {
+    return This->lpVtbl->previous(This);
+}
+static FORCEINLINE HRESULT IWMPControls2_currentItem(IWMPControls2* This,IWMPMedia **ppIWMPMedia) {
+    return This->lpVtbl->currentItem(This,ppIWMPMedia);
+}
+static FORCEINLINE HRESULT IWMPControls2_put_currentItem(IWMPControls2* This,IWMPMedia *ppIWMPMedia) {
+    return This->lpVtbl->put_currentItem(This,ppIWMPMedia);
+}
+static FORCEINLINE HRESULT IWMPControls2_get_currentMarker(IWMPControls2* This,LONG *plMarker) {
+    return This->lpVtbl->get_currentMarker(This,plMarker);
+}
+static FORCEINLINE HRESULT IWMPControls2_put_currentMarker(IWMPControls2* This,LONG plMarker) {
+    return This->lpVtbl->put_currentMarker(This,plMarker);
+}
+static FORCEINLINE HRESULT IWMPControls2_playItem(IWMPControls2* This,IWMPMedia *pIWMPMedia) {
+    return This->lpVtbl->playItem(This,pIWMPMedia);
+}
+/*** IWMPControls2 methods ***/
+static FORCEINLINE HRESULT IWMPControls2_step(IWMPControls2* This,LONG lStep) {
+    return This->lpVtbl->step(This,lStep);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPControls2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPRemoteMediaServices interface
+ */
+#ifndef __IWMPRemoteMediaServices_INTERFACE_DEFINED__
+#define __IWMPRemoteMediaServices_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPRemoteMediaServices, 0xcbb92747, 0x741f, 0x44fe, 0xab,0x5b, 0xf1,0xa4,0x8f,0x3b,0x2a,0x59);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cbb92747-741f-44fe-ab5b-f1a48f3b2a59")
+IWMPRemoteMediaServices : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetServiceType(
+        BSTR *type) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetApplicationName(
+        BSTR *name) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetScriptableObject(
+        BSTR *name,
+        IDispatch **out) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCustomUIMode(
+        BSTR *file) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPRemoteMediaServices, 0xcbb92747, 0x741f, 0x44fe, 0xab,0x5b, 0xf1,0xa4,0x8f,0x3b,0x2a,0x59)
+#endif
+#else
+typedef struct IWMPRemoteMediaServicesVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPRemoteMediaServices *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPRemoteMediaServices *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPRemoteMediaServices *This);
+
+    /*** IWMPRemoteMediaServices methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetServiceType)(
+        IWMPRemoteMediaServices *This,
+        BSTR *type);
+
+    HRESULT (STDMETHODCALLTYPE *GetApplicationName)(
+        IWMPRemoteMediaServices *This,
+        BSTR *name);
+
+    HRESULT (STDMETHODCALLTYPE *GetScriptableObject)(
+        IWMPRemoteMediaServices *This,
+        BSTR *name,
+        IDispatch **out);
+
+    HRESULT (STDMETHODCALLTYPE *GetCustomUIMode)(
+        IWMPRemoteMediaServices *This,
+        BSTR *file);
+
+    END_INTERFACE
+} IWMPRemoteMediaServicesVtbl;
+
+interface IWMPRemoteMediaServices {
+    CONST_VTBL IWMPRemoteMediaServicesVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPRemoteMediaServices_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPRemoteMediaServices_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPRemoteMediaServices_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPRemoteMediaServices methods ***/
+#define IWMPRemoteMediaServices_GetServiceType(This,type) (This)->lpVtbl->GetServiceType(This,type)
+#define IWMPRemoteMediaServices_GetApplicationName(This,name) (This)->lpVtbl->GetApplicationName(This,name)
+#define IWMPRemoteMediaServices_GetScriptableObject(This,name,out) (This)->lpVtbl->GetScriptableObject(This,name,out)
+#define IWMPRemoteMediaServices_GetCustomUIMode(This,file) (This)->lpVtbl->GetCustomUIMode(This,file)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPRemoteMediaServices_QueryInterface(IWMPRemoteMediaServices* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPRemoteMediaServices_AddRef(IWMPRemoteMediaServices* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPRemoteMediaServices_Release(IWMPRemoteMediaServices* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPRemoteMediaServices methods ***/
+static FORCEINLINE HRESULT IWMPRemoteMediaServices_GetServiceType(IWMPRemoteMediaServices* This,BSTR *type) {
+    return This->lpVtbl->GetServiceType(This,type);
+}
+static FORCEINLINE HRESULT IWMPRemoteMediaServices_GetApplicationName(IWMPRemoteMediaServices* This,BSTR *name) {
+    return This->lpVtbl->GetApplicationName(This,name);
+}
+static FORCEINLINE HRESULT IWMPRemoteMediaServices_GetScriptableObject(IWMPRemoteMediaServices* This,BSTR *name,IDispatch **out) {
+    return This->lpVtbl->GetScriptableObject(This,name,out);
+}
+static FORCEINLINE HRESULT IWMPRemoteMediaServices_GetCustomUIMode(IWMPRemoteMediaServices* This,BSTR *file) {
+    return This->lpVtbl->GetCustomUIMode(This,file);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPRemoteMediaServices_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPSettings interface
+ */
+#ifndef __IWMPSettings_INTERFACE_DEFINED__
+#define __IWMPSettings_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPSettings, 0x9104d1ab, 0x80c9, 0x4fed, 0xab,0xf0, 0x2e,0x64,0x17,0xa6,0xdf,0x14);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9104d1ab-80c9-4fed-abf0-2e6417a6df14")
+IWMPSettings : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_isAvailable(
+        BSTR bstrItem,
+        VARIANT_BOOL *pIsAvailable) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_autoStart(
+        VARIANT_BOOL *pfAutoStart) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_autoStart(
+        VARIANT_BOOL pfAutoStart) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_baseURL(
+        BSTR *pbstrBaseURL) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_baseURL(
+        BSTR pbstrBaseURL) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_defaultFrame(
+        BSTR *pbstrDefaultFrame) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_defaultFrame(
+        BSTR pbstrDefaultFrame) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_invokeURLs(
+        VARIANT_BOOL *pfInvokeURLs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_invokeURLs(
+        VARIANT_BOOL pfInvokeURLs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_mute(
+        VARIANT_BOOL *pfMute) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_mute(
+        VARIANT_BOOL pfMute) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_playCount(
+        LONG *plCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_playCount(
+        LONG plCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_rate(
+        double *pdRate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_rate(
+        double pdRate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_balance(
+        LONG *plBalance) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_balance(
+        LONG plBalance) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_volume(
+        LONG *plVolume) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_volume(
+        LONG plVolume) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getMode(
+        BSTR bstrMode,
+        VARIANT_BOOL *pvarfMode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE setMode(
+        BSTR bstrMode,
+        VARIANT_BOOL varfMode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_enableErrorDialogs(
+        VARIANT_BOOL *pfEnableErrorDialogs) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_enableErrorDialogs(
+        VARIANT_BOOL pfEnableErrorDialogs) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPSettings, 0x9104d1ab, 0x80c9, 0x4fed, 0xab,0xf0, 0x2e,0x64,0x17,0xa6,0xdf,0x14)
+#endif
+#else
+typedef struct IWMPSettingsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPSettings *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPSettings *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPSettings *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPSettings *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPSettings *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPSettings *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPSettings *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPSettings methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_isAvailable)(
+        IWMPSettings *This,
+        BSTR bstrItem,
+        VARIANT_BOOL *pIsAvailable);
+
+    HRESULT (STDMETHODCALLTYPE *get_autoStart)(
+        IWMPSettings *This,
+        VARIANT_BOOL *pfAutoStart);
+
+    HRESULT (STDMETHODCALLTYPE *put_autoStart)(
+        IWMPSettings *This,
+        VARIANT_BOOL pfAutoStart);
+
+    HRESULT (STDMETHODCALLTYPE *get_baseURL)(
+        IWMPSettings *This,
+        BSTR *pbstrBaseURL);
+
+    HRESULT (STDMETHODCALLTYPE *put_baseURL)(
+        IWMPSettings *This,
+        BSTR pbstrBaseURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_defaultFrame)(
+        IWMPSettings *This,
+        BSTR *pbstrDefaultFrame);
+
+    HRESULT (STDMETHODCALLTYPE *put_defaultFrame)(
+        IWMPSettings *This,
+        BSTR pbstrDefaultFrame);
+
+    HRESULT (STDMETHODCALLTYPE *get_invokeURLs)(
+        IWMPSettings *This,
+        VARIANT_BOOL *pfInvokeURLs);
+
+    HRESULT (STDMETHODCALLTYPE *put_invokeURLs)(
+        IWMPSettings *This,
+        VARIANT_BOOL pfInvokeURLs);
+
+    HRESULT (STDMETHODCALLTYPE *get_mute)(
+        IWMPSettings *This,
+        VARIANT_BOOL *pfMute);
+
+    HRESULT (STDMETHODCALLTYPE *put_mute)(
+        IWMPSettings *This,
+        VARIANT_BOOL pfMute);
+
+    HRESULT (STDMETHODCALLTYPE *get_playCount)(
+        IWMPSettings *This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *put_playCount)(
+        IWMPSettings *This,
+        LONG plCount);
+
+    HRESULT (STDMETHODCALLTYPE *get_rate)(
+        IWMPSettings *This,
+        double *pdRate);
+
+    HRESULT (STDMETHODCALLTYPE *put_rate)(
+        IWMPSettings *This,
+        double pdRate);
+
+    HRESULT (STDMETHODCALLTYPE *get_balance)(
+        IWMPSettings *This,
+        LONG *plBalance);
+
+    HRESULT (STDMETHODCALLTYPE *put_balance)(
+        IWMPSettings *This,
+        LONG plBalance);
+
+    HRESULT (STDMETHODCALLTYPE *get_volume)(
+        IWMPSettings *This,
+        LONG *plVolume);
+
+    HRESULT (STDMETHODCALLTYPE *put_volume)(
+        IWMPSettings *This,
+        LONG plVolume);
+
+    HRESULT (STDMETHODCALLTYPE *getMode)(
+        IWMPSettings *This,
+        BSTR bstrMode,
+        VARIANT_BOOL *pvarfMode);
+
+    HRESULT (STDMETHODCALLTYPE *setMode)(
+        IWMPSettings *This,
+        BSTR bstrMode,
+        VARIANT_BOOL varfMode);
+
+    HRESULT (STDMETHODCALLTYPE *get_enableErrorDialogs)(
+        IWMPSettings *This,
+        VARIANT_BOOL *pfEnableErrorDialogs);
+
+    HRESULT (STDMETHODCALLTYPE *put_enableErrorDialogs)(
+        IWMPSettings *This,
+        VARIANT_BOOL pfEnableErrorDialogs);
+
+    END_INTERFACE
+} IWMPSettingsVtbl;
+
+interface IWMPSettings {
+    CONST_VTBL IWMPSettingsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPSettings_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPSettings_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPSettings methods ***/
+#define IWMPSettings_get_isAvailable(This,bstrItem,pIsAvailable) (This)->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable)
+#define IWMPSettings_get_autoStart(This,pfAutoStart) (This)->lpVtbl->get_autoStart(This,pfAutoStart)
+#define IWMPSettings_put_autoStart(This,pfAutoStart) (This)->lpVtbl->put_autoStart(This,pfAutoStart)
+#define IWMPSettings_get_baseURL(This,pbstrBaseURL) (This)->lpVtbl->get_baseURL(This,pbstrBaseURL)
+#define IWMPSettings_put_baseURL(This,pbstrBaseURL) (This)->lpVtbl->put_baseURL(This,pbstrBaseURL)
+#define IWMPSettings_get_defaultFrame(This,pbstrDefaultFrame) (This)->lpVtbl->get_defaultFrame(This,pbstrDefaultFrame)
+#define IWMPSettings_put_defaultFrame(This,pbstrDefaultFrame) (This)->lpVtbl->put_defaultFrame(This,pbstrDefaultFrame)
+#define IWMPSettings_get_invokeURLs(This,pfInvokeURLs) (This)->lpVtbl->get_invokeURLs(This,pfInvokeURLs)
+#define IWMPSettings_put_invokeURLs(This,pfInvokeURLs) (This)->lpVtbl->put_invokeURLs(This,pfInvokeURLs)
+#define IWMPSettings_get_mute(This,pfMute) (This)->lpVtbl->get_mute(This,pfMute)
+#define IWMPSettings_put_mute(This,pfMute) (This)->lpVtbl->put_mute(This,pfMute)
+#define IWMPSettings_get_playCount(This,plCount) (This)->lpVtbl->get_playCount(This,plCount)
+#define IWMPSettings_put_playCount(This,plCount) (This)->lpVtbl->put_playCount(This,plCount)
+#define IWMPSettings_get_rate(This,pdRate) (This)->lpVtbl->get_rate(This,pdRate)
+#define IWMPSettings_put_rate(This,pdRate) (This)->lpVtbl->put_rate(This,pdRate)
+#define IWMPSettings_get_balance(This,plBalance) (This)->lpVtbl->get_balance(This,plBalance)
+#define IWMPSettings_put_balance(This,plBalance) (This)->lpVtbl->put_balance(This,plBalance)
+#define IWMPSettings_get_volume(This,plVolume) (This)->lpVtbl->get_volume(This,plVolume)
+#define IWMPSettings_put_volume(This,plVolume) (This)->lpVtbl->put_volume(This,plVolume)
+#define IWMPSettings_getMode(This,bstrMode,pvarfMode) (This)->lpVtbl->getMode(This,bstrMode,pvarfMode)
+#define IWMPSettings_setMode(This,bstrMode,varfMode) (This)->lpVtbl->setMode(This,bstrMode,varfMode)
+#define IWMPSettings_get_enableErrorDialogs(This,pfEnableErrorDialogs) (This)->lpVtbl->get_enableErrorDialogs(This,pfEnableErrorDialogs)
+#define IWMPSettings_put_enableErrorDialogs(This,pfEnableErrorDialogs) (This)->lpVtbl->put_enableErrorDialogs(This,pfEnableErrorDialogs)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPSettings_QueryInterface(IWMPSettings* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPSettings_AddRef(IWMPSettings* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPSettings_Release(IWMPSettings* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPSettings_GetTypeInfoCount(IWMPSettings* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPSettings_GetTypeInfo(IWMPSettings* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPSettings_GetIDsOfNames(IWMPSettings* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPSettings_Invoke(IWMPSettings* 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);
+}
+/*** IWMPSettings methods ***/
+static FORCEINLINE HRESULT IWMPSettings_get_isAvailable(IWMPSettings* This,BSTR bstrItem,VARIANT_BOOL *pIsAvailable) {
+    return This->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable);
+}
+static FORCEINLINE HRESULT IWMPSettings_get_autoStart(IWMPSettings* This,VARIANT_BOOL *pfAutoStart) {
+    return This->lpVtbl->get_autoStart(This,pfAutoStart);
+}
+static FORCEINLINE HRESULT IWMPSettings_put_autoStart(IWMPSettings* This,VARIANT_BOOL pfAutoStart) {
+    return This->lpVtbl->put_autoStart(This,pfAutoStart);
+}
+static FORCEINLINE HRESULT IWMPSettings_get_baseURL(IWMPSettings* This,BSTR *pbstrBaseURL) {
+    return This->lpVtbl->get_baseURL(This,pbstrBaseURL);
+}
+static FORCEINLINE HRESULT IWMPSettings_put_baseURL(IWMPSettings* This,BSTR pbstrBaseURL) {
+    return This->lpVtbl->put_baseURL(This,pbstrBaseURL);
+}
+static FORCEINLINE HRESULT IWMPSettings_get_defaultFrame(IWMPSettings* This,BSTR *pbstrDefaultFrame) {
+    return This->lpVtbl->get_defaultFrame(This,pbstrDefaultFrame);
+}
+static FORCEINLINE HRESULT IWMPSettings_put_defaultFrame(IWMPSettings* This,BSTR pbstrDefaultFrame) {
+    return This->lpVtbl->put_defaultFrame(This,pbstrDefaultFrame);
+}
+static FORCEINLINE HRESULT IWMPSettings_get_invokeURLs(IWMPSettings* This,VARIANT_BOOL *pfInvokeURLs) {
+    return This->lpVtbl->get_invokeURLs(This,pfInvokeURLs);
+}
+static FORCEINLINE HRESULT IWMPSettings_put_invokeURLs(IWMPSettings* This,VARIANT_BOOL pfInvokeURLs) {
+    return This->lpVtbl->put_invokeURLs(This,pfInvokeURLs);
+}
+static FORCEINLINE HRESULT IWMPSettings_get_mute(IWMPSettings* This,VARIANT_BOOL *pfMute) {
+    return This->lpVtbl->get_mute(This,pfMute);
+}
+static FORCEINLINE HRESULT IWMPSettings_put_mute(IWMPSettings* This,VARIANT_BOOL pfMute) {
+    return This->lpVtbl->put_mute(This,pfMute);
+}
+static FORCEINLINE HRESULT IWMPSettings_get_playCount(IWMPSettings* This,LONG *plCount) {
+    return This->lpVtbl->get_playCount(This,plCount);
+}
+static FORCEINLINE HRESULT IWMPSettings_put_playCount(IWMPSettings* This,LONG plCount) {
+    return This->lpVtbl->put_playCount(This,plCount);
+}
+static FORCEINLINE HRESULT IWMPSettings_get_rate(IWMPSettings* This,double *pdRate) {
+    return This->lpVtbl->get_rate(This,pdRate);
+}
+static FORCEINLINE HRESULT IWMPSettings_put_rate(IWMPSettings* This,double pdRate) {
+    return This->lpVtbl->put_rate(This,pdRate);
+}
+static FORCEINLINE HRESULT IWMPSettings_get_balance(IWMPSettings* This,LONG *plBalance) {
+    return This->lpVtbl->get_balance(This,plBalance);
+}
+static FORCEINLINE HRESULT IWMPSettings_put_balance(IWMPSettings* This,LONG plBalance) {
+    return This->lpVtbl->put_balance(This,plBalance);
+}
+static FORCEINLINE HRESULT IWMPSettings_get_volume(IWMPSettings* This,LONG *plVolume) {
+    return This->lpVtbl->get_volume(This,plVolume);
+}
+static FORCEINLINE HRESULT IWMPSettings_put_volume(IWMPSettings* This,LONG plVolume) {
+    return This->lpVtbl->put_volume(This,plVolume);
+}
+static FORCEINLINE HRESULT IWMPSettings_getMode(IWMPSettings* This,BSTR bstrMode,VARIANT_BOOL *pvarfMode) {
+    return This->lpVtbl->getMode(This,bstrMode,pvarfMode);
+}
+static FORCEINLINE HRESULT IWMPSettings_setMode(IWMPSettings* This,BSTR bstrMode,VARIANT_BOOL varfMode) {
+    return This->lpVtbl->setMode(This,bstrMode,varfMode);
+}
+static FORCEINLINE HRESULT IWMPSettings_get_enableErrorDialogs(IWMPSettings* This,VARIANT_BOOL *pfEnableErrorDialogs) {
+    return This->lpVtbl->get_enableErrorDialogs(This,pfEnableErrorDialogs);
+}
+static FORCEINLINE HRESULT IWMPSettings_put_enableErrorDialogs(IWMPSettings* This,VARIANT_BOOL pfEnableErrorDialogs) {
+    return This->lpVtbl->put_enableErrorDialogs(This,pfEnableErrorDialogs);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPSettings_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPStringCollection interface
+ */
+#ifndef __IWMPStringCollection_INTERFACE_DEFINED__
+#define __IWMPStringCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPStringCollection, 0x4a976298, 0x8c0d, 0x11d3, 0xb3,0x89, 0x00,0xc0,0x4f,0x68,0x57,0x4b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4a976298-8c0d-11d3-b389-00c04f68574b")
+IWMPStringCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_count(
+        LONG *plCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        LONG lIndex,
+        BSTR *pbstrString) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPStringCollection, 0x4a976298, 0x8c0d, 0x11d3, 0xb3,0x89, 0x00,0xc0,0x4f,0x68,0x57,0x4b)
+#endif
+#else
+typedef struct IWMPStringCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPStringCollection *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPStringCollection *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPStringCollection *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPStringCollection *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPStringCollection *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPStringCollection *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPStringCollection *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPStringCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_count)(
+        IWMPStringCollection *This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        IWMPStringCollection *This,
+        LONG lIndex,
+        BSTR *pbstrString);
+
+    END_INTERFACE
+} IWMPStringCollectionVtbl;
+
+interface IWMPStringCollection {
+    CONST_VTBL IWMPStringCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPStringCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPStringCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPStringCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPStringCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPStringCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPStringCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPStringCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPStringCollection methods ***/
+#define IWMPStringCollection_get_count(This,plCount) (This)->lpVtbl->get_count(This,plCount)
+#define IWMPStringCollection_Item(This,lIndex,pbstrString) (This)->lpVtbl->Item(This,lIndex,pbstrString)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPStringCollection_QueryInterface(IWMPStringCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPStringCollection_AddRef(IWMPStringCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPStringCollection_Release(IWMPStringCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPStringCollection_GetTypeInfoCount(IWMPStringCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPStringCollection_GetTypeInfo(IWMPStringCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPStringCollection_GetIDsOfNames(IWMPStringCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPStringCollection_Invoke(IWMPStringCollection* 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);
+}
+/*** IWMPStringCollection methods ***/
+static FORCEINLINE HRESULT IWMPStringCollection_get_count(IWMPStringCollection* This,LONG *plCount) {
+    return This->lpVtbl->get_count(This,plCount);
+}
+static FORCEINLINE HRESULT IWMPStringCollection_Item(IWMPStringCollection* This,LONG lIndex,BSTR *pbstrString) {
+    return This->lpVtbl->Item(This,lIndex,pbstrString);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPStringCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPMediaCollection interface
+ */
+#ifndef __IWMPMediaCollection_INTERFACE_DEFINED__
+#define __IWMPMediaCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPMediaCollection, 0x8363bc22, 0xb4b4, 0x4b19, 0x98,0x9d, 0x1c,0xd7,0x65,0x74,0x9d,0xd1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8363bc22-b4b4-4b19-989d-1cd765749dd1")
+IWMPMediaCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE add(
+        BSTR bstrURL,
+        IWMPMedia **ppItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getAll(
+        IWMPPlaylist **ppMediaItems) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getByName(
+        BSTR bstrName,
+        IWMPPlaylist **ppMediaItems) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getByGenre(
+        BSTR bstrGenre,
+        IWMPPlaylist **ppMediaItems) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getByAuthor(
+        BSTR bstrAuthor,
+        IWMPPlaylist **ppMediaItems) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getByAlbum(
+        BSTR bstrAlbum,
+        IWMPPlaylist **ppMediaItems) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getByAttribute(
+        BSTR bstrAttribute,
+        BSTR bstrValue,
+        IWMPPlaylist **ppMediaItems) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE remove(
+        IWMPMedia *pItem,
+        VARIANT_BOOL varfDeleteFile) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getAttributeStringCollection(
+        BSTR bstrAttribute,
+        BSTR bstrMediaType,
+        IWMPStringCollection **ppStringCollection) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getMediaAtom(
+        BSTR bstrItemName,
+        LONG *plAtom) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE setDeleted(
+        IWMPMedia *pItem,
+        VARIANT_BOOL varfIsDeleted) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE isDeleted(
+        IWMPMedia *pItem,
+        VARIANT_BOOL *pvarfIsDeleted) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPMediaCollection, 0x8363bc22, 0xb4b4, 0x4b19, 0x98,0x9d, 0x1c,0xd7,0x65,0x74,0x9d,0xd1)
+#endif
+#else
+typedef struct IWMPMediaCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPMediaCollection *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPMediaCollection *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPMediaCollection *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPMediaCollection *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPMediaCollection *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPMediaCollection *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPMediaCollection *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPMediaCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *add)(
+        IWMPMediaCollection *This,
+        BSTR bstrURL,
+        IWMPMedia **ppItem);
+
+    HRESULT (STDMETHODCALLTYPE *getAll)(
+        IWMPMediaCollection *This,
+        IWMPPlaylist **ppMediaItems);
+
+    HRESULT (STDMETHODCALLTYPE *getByName)(
+        IWMPMediaCollection *This,
+        BSTR bstrName,
+        IWMPPlaylist **ppMediaItems);
+
+    HRESULT (STDMETHODCALLTYPE *getByGenre)(
+        IWMPMediaCollection *This,
+        BSTR bstrGenre,
+        IWMPPlaylist **ppMediaItems);
+
+    HRESULT (STDMETHODCALLTYPE *getByAuthor)(
+        IWMPMediaCollection *This,
+        BSTR bstrAuthor,
+        IWMPPlaylist **ppMediaItems);
+
+    HRESULT (STDMETHODCALLTYPE *getByAlbum)(
+        IWMPMediaCollection *This,
+        BSTR bstrAlbum,
+        IWMPPlaylist **ppMediaItems);
+
+    HRESULT (STDMETHODCALLTYPE *getByAttribute)(
+        IWMPMediaCollection *This,
+        BSTR bstrAttribute,
+        BSTR bstrValue,
+        IWMPPlaylist **ppMediaItems);
+
+    HRESULT (STDMETHODCALLTYPE *remove)(
+        IWMPMediaCollection *This,
+        IWMPMedia *pItem,
+        VARIANT_BOOL varfDeleteFile);
+
+    HRESULT (STDMETHODCALLTYPE *getAttributeStringCollection)(
+        IWMPMediaCollection *This,
+        BSTR bstrAttribute,
+        BSTR bstrMediaType,
+        IWMPStringCollection **ppStringCollection);
+
+    HRESULT (STDMETHODCALLTYPE *getMediaAtom)(
+        IWMPMediaCollection *This,
+        BSTR bstrItemName,
+        LONG *plAtom);
+
+    HRESULT (STDMETHODCALLTYPE *setDeleted)(
+        IWMPMediaCollection *This,
+        IWMPMedia *pItem,
+        VARIANT_BOOL varfIsDeleted);
+
+    HRESULT (STDMETHODCALLTYPE *isDeleted)(
+        IWMPMediaCollection *This,
+        IWMPMedia *pItem,
+        VARIANT_BOOL *pvarfIsDeleted);
+
+    END_INTERFACE
+} IWMPMediaCollectionVtbl;
+
+interface IWMPMediaCollection {
+    CONST_VTBL IWMPMediaCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPMediaCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPMediaCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPMediaCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPMediaCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPMediaCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPMediaCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPMediaCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPMediaCollection methods ***/
+#define IWMPMediaCollection_add(This,bstrURL,ppItem) (This)->lpVtbl->add(This,bstrURL,ppItem)
+#define IWMPMediaCollection_getAll(This,ppMediaItems) (This)->lpVtbl->getAll(This,ppMediaItems)
+#define IWMPMediaCollection_getByName(This,bstrName,ppMediaItems) (This)->lpVtbl->getByName(This,bstrName,ppMediaItems)
+#define IWMPMediaCollection_getByGenre(This,bstrGenre,ppMediaItems) (This)->lpVtbl->getByGenre(This,bstrGenre,ppMediaItems)
+#define IWMPMediaCollection_getByAuthor(This,bstrAuthor,ppMediaItems) (This)->lpVtbl->getByAuthor(This,bstrAuthor,ppMediaItems)
+#define IWMPMediaCollection_getByAlbum(This,bstrAlbum,ppMediaItems) (This)->lpVtbl->getByAlbum(This,bstrAlbum,ppMediaItems)
+#define IWMPMediaCollection_getByAttribute(This,bstrAttribute,bstrValue,ppMediaItems) (This)->lpVtbl->getByAttribute(This,bstrAttribute,bstrValue,ppMediaItems)
+#define IWMPMediaCollection_remove(This,pItem,varfDeleteFile) (This)->lpVtbl->remove(This,pItem,varfDeleteFile)
+#define IWMPMediaCollection_getAttributeStringCollection(This,bstrAttribute,bstrMediaType,ppStringCollection) (This)->lpVtbl->getAttributeStringCollection(This,bstrAttribute,bstrMediaType,ppStringCollection)
+#define IWMPMediaCollection_getMediaAtom(This,bstrItemName,plAtom) (This)->lpVtbl->getMediaAtom(This,bstrItemName,plAtom)
+#define IWMPMediaCollection_setDeleted(This,pItem,varfIsDeleted) (This)->lpVtbl->setDeleted(This,pItem,varfIsDeleted)
+#define IWMPMediaCollection_isDeleted(This,pItem,pvarfIsDeleted) (This)->lpVtbl->isDeleted(This,pItem,pvarfIsDeleted)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPMediaCollection_QueryInterface(IWMPMediaCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPMediaCollection_AddRef(IWMPMediaCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPMediaCollection_Release(IWMPMediaCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPMediaCollection_GetTypeInfoCount(IWMPMediaCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_GetTypeInfo(IWMPMediaCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_GetIDsOfNames(IWMPMediaCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_Invoke(IWMPMediaCollection* 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);
+}
+/*** IWMPMediaCollection methods ***/
+static FORCEINLINE HRESULT IWMPMediaCollection_add(IWMPMediaCollection* This,BSTR bstrURL,IWMPMedia **ppItem) {
+    return This->lpVtbl->add(This,bstrURL,ppItem);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_getAll(IWMPMediaCollection* This,IWMPPlaylist **ppMediaItems) {
+    return This->lpVtbl->getAll(This,ppMediaItems);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_getByName(IWMPMediaCollection* This,BSTR bstrName,IWMPPlaylist **ppMediaItems) {
+    return This->lpVtbl->getByName(This,bstrName,ppMediaItems);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_getByGenre(IWMPMediaCollection* This,BSTR bstrGenre,IWMPPlaylist **ppMediaItems) {
+    return This->lpVtbl->getByGenre(This,bstrGenre,ppMediaItems);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_getByAuthor(IWMPMediaCollection* This,BSTR bstrAuthor,IWMPPlaylist **ppMediaItems) {
+    return This->lpVtbl->getByAuthor(This,bstrAuthor,ppMediaItems);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_getByAlbum(IWMPMediaCollection* This,BSTR bstrAlbum,IWMPPlaylist **ppMediaItems) {
+    return This->lpVtbl->getByAlbum(This,bstrAlbum,ppMediaItems);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_getByAttribute(IWMPMediaCollection* This,BSTR bstrAttribute,BSTR bstrValue,IWMPPlaylist **ppMediaItems) {
+    return This->lpVtbl->getByAttribute(This,bstrAttribute,bstrValue,ppMediaItems);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_remove(IWMPMediaCollection* This,IWMPMedia *pItem,VARIANT_BOOL varfDeleteFile) {
+    return This->lpVtbl->remove(This,pItem,varfDeleteFile);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_getAttributeStringCollection(IWMPMediaCollection* This,BSTR bstrAttribute,BSTR bstrMediaType,IWMPStringCollection **ppStringCollection) {
+    return This->lpVtbl->getAttributeStringCollection(This,bstrAttribute,bstrMediaType,ppStringCollection);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_getMediaAtom(IWMPMediaCollection* This,BSTR bstrItemName,LONG *plAtom) {
+    return This->lpVtbl->getMediaAtom(This,bstrItemName,plAtom);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_setDeleted(IWMPMediaCollection* This,IWMPMedia *pItem,VARIANT_BOOL varfIsDeleted) {
+    return This->lpVtbl->setDeleted(This,pItem,varfIsDeleted);
+}
+static FORCEINLINE HRESULT IWMPMediaCollection_isDeleted(IWMPMediaCollection* This,IWMPMedia *pItem,VARIANT_BOOL *pvarfIsDeleted) {
+    return This->lpVtbl->isDeleted(This,pItem,pvarfIsDeleted);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPMediaCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPPlaylistArray interface
+ */
+#ifndef __IWMPPlaylistArray_INTERFACE_DEFINED__
+#define __IWMPPlaylistArray_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPPlaylistArray, 0x679409c0, 0x99f7, 0x11d3, 0x9f,0xb7, 0x00,0x10,0x5a,0xa6,0x20,0xbb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("679409c0-99f7-11d3-9fb7-00105aa620bb")
+IWMPPlaylistArray : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_count(
+        LONG *plCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        LONG lIndex,
+        IWMPPlaylist **ppItem) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPPlaylistArray, 0x679409c0, 0x99f7, 0x11d3, 0x9f,0xb7, 0x00,0x10,0x5a,0xa6,0x20,0xbb)
+#endif
+#else
+typedef struct IWMPPlaylistArrayVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPPlaylistArray *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPPlaylistArray *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPPlaylistArray *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPPlaylistArray *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPPlaylistArray *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPPlaylistArray *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPPlaylistArray *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPPlaylistArray methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_count)(
+        IWMPPlaylistArray *This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        IWMPPlaylistArray *This,
+        LONG lIndex,
+        IWMPPlaylist **ppItem);
+
+    END_INTERFACE
+} IWMPPlaylistArrayVtbl;
+
+interface IWMPPlaylistArray {
+    CONST_VTBL IWMPPlaylistArrayVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPPlaylistArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPPlaylistArray_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPPlaylistArray_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPPlaylistArray_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPPlaylistArray_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPPlaylistArray_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPPlaylistArray_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPPlaylistArray methods ***/
+#define IWMPPlaylistArray_get_count(This,plCount) (This)->lpVtbl->get_count(This,plCount)
+#define IWMPPlaylistArray_Item(This,lIndex,ppItem) (This)->lpVtbl->Item(This,lIndex,ppItem)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPPlaylistArray_QueryInterface(IWMPPlaylistArray* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPPlaylistArray_AddRef(IWMPPlaylistArray* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPPlaylistArray_Release(IWMPPlaylistArray* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPPlaylistArray_GetTypeInfoCount(IWMPPlaylistArray* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPPlaylistArray_GetTypeInfo(IWMPPlaylistArray* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPPlaylistArray_GetIDsOfNames(IWMPPlaylistArray* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPPlaylistArray_Invoke(IWMPPlaylistArray* 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);
+}
+/*** IWMPPlaylistArray methods ***/
+static FORCEINLINE HRESULT IWMPPlaylistArray_get_count(IWMPPlaylistArray* This,LONG *plCount) {
+    return This->lpVtbl->get_count(This,plCount);
+}
+static FORCEINLINE HRESULT IWMPPlaylistArray_Item(IWMPPlaylistArray* This,LONG lIndex,IWMPPlaylist **ppItem) {
+    return This->lpVtbl->Item(This,lIndex,ppItem);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPPlaylistArray_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPPlaylistCollection interface
+ */
+#ifndef __IWMPPlaylistCollection_INTERFACE_DEFINED__
+#define __IWMPPlaylistCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPPlaylistCollection, 0x10a13217, 0x23a7, 0x439b, 0xb1,0xc0, 0xd8,0x47,0xc7,0x9b,0x77,0x74);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("10a13217-23a7-439b-b1c0-d847c79b7774")
+IWMPPlaylistCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE newPlaylist(
+        BSTR bstrName,
+        IWMPPlaylist **ppItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getAll(
+        IWMPPlaylistArray **ppPlaylistArray) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getByName(
+        BSTR bstrName,
+        IWMPPlaylistArray **ppPlaylistArray) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE remove(
+        IWMPPlaylist *pItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE setDeleted(
+        IWMPPlaylist *pItem,
+        VARIANT_BOOL varfIsDeleted) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE isDeleted(
+        IWMPPlaylist *pItem,
+        VARIANT_BOOL *pvarfIsDeleted) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE importPlaylist(
+        IWMPPlaylist *pItem,
+        IWMPPlaylist **ppImportedItem) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPPlaylistCollection, 0x10a13217, 0x23a7, 0x439b, 0xb1,0xc0, 0xd8,0x47,0xc7,0x9b,0x77,0x74)
+#endif
+#else
+typedef struct IWMPPlaylistCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPPlaylistCollection *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPPlaylistCollection *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPPlaylistCollection *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPPlaylistCollection *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPPlaylistCollection *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPPlaylistCollection *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPPlaylistCollection *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPPlaylistCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *newPlaylist)(
+        IWMPPlaylistCollection *This,
+        BSTR bstrName,
+        IWMPPlaylist **ppItem);
+
+    HRESULT (STDMETHODCALLTYPE *getAll)(
+        IWMPPlaylistCollection *This,
+        IWMPPlaylistArray **ppPlaylistArray);
+
+    HRESULT (STDMETHODCALLTYPE *getByName)(
+        IWMPPlaylistCollection *This,
+        BSTR bstrName,
+        IWMPPlaylistArray **ppPlaylistArray);
+
+    HRESULT (STDMETHODCALLTYPE *remove)(
+        IWMPPlaylistCollection *This,
+        IWMPPlaylist *pItem);
+
+    HRESULT (STDMETHODCALLTYPE *setDeleted)(
+        IWMPPlaylistCollection *This,
+        IWMPPlaylist *pItem,
+        VARIANT_BOOL varfIsDeleted);
+
+    HRESULT (STDMETHODCALLTYPE *isDeleted)(
+        IWMPPlaylistCollection *This,
+        IWMPPlaylist *pItem,
+        VARIANT_BOOL *pvarfIsDeleted);
+
+    HRESULT (STDMETHODCALLTYPE *importPlaylist)(
+        IWMPPlaylistCollection *This,
+        IWMPPlaylist *pItem,
+        IWMPPlaylist **ppImportedItem);
+
+    END_INTERFACE
+} IWMPPlaylistCollectionVtbl;
+
+interface IWMPPlaylistCollection {
+    CONST_VTBL IWMPPlaylistCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPPlaylistCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPPlaylistCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPPlaylistCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPPlaylistCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPPlaylistCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPPlaylistCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPPlaylistCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPPlaylistCollection methods ***/
+#define IWMPPlaylistCollection_newPlaylist(This,bstrName,ppItem) (This)->lpVtbl->newPlaylist(This,bstrName,ppItem)
+#define IWMPPlaylistCollection_getAll(This,ppPlaylistArray) (This)->lpVtbl->getAll(This,ppPlaylistArray)
+#define IWMPPlaylistCollection_getByName(This,bstrName,ppPlaylistArray) (This)->lpVtbl->getByName(This,bstrName,ppPlaylistArray)
+#define IWMPPlaylistCollection_remove(This,pItem) (This)->lpVtbl->remove(This,pItem)
+#define IWMPPlaylistCollection_setDeleted(This,pItem,varfIsDeleted) (This)->lpVtbl->setDeleted(This,pItem,varfIsDeleted)
+#define IWMPPlaylistCollection_isDeleted(This,pItem,pvarfIsDeleted) (This)->lpVtbl->isDeleted(This,pItem,pvarfIsDeleted)
+#define IWMPPlaylistCollection_importPlaylist(This,pItem,ppImportedItem) (This)->lpVtbl->importPlaylist(This,pItem,ppImportedItem)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPPlaylistCollection_QueryInterface(IWMPPlaylistCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPPlaylistCollection_AddRef(IWMPPlaylistCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPPlaylistCollection_Release(IWMPPlaylistCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPPlaylistCollection_GetTypeInfoCount(IWMPPlaylistCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPPlaylistCollection_GetTypeInfo(IWMPPlaylistCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPPlaylistCollection_GetIDsOfNames(IWMPPlaylistCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPPlaylistCollection_Invoke(IWMPPlaylistCollection* 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);
+}
+/*** IWMPPlaylistCollection methods ***/
+static FORCEINLINE HRESULT IWMPPlaylistCollection_newPlaylist(IWMPPlaylistCollection* This,BSTR bstrName,IWMPPlaylist **ppItem) {
+    return This->lpVtbl->newPlaylist(This,bstrName,ppItem);
+}
+static FORCEINLINE HRESULT IWMPPlaylistCollection_getAll(IWMPPlaylistCollection* This,IWMPPlaylistArray **ppPlaylistArray) {
+    return This->lpVtbl->getAll(This,ppPlaylistArray);
+}
+static FORCEINLINE HRESULT IWMPPlaylistCollection_getByName(IWMPPlaylistCollection* This,BSTR bstrName,IWMPPlaylistArray **ppPlaylistArray) {
+    return This->lpVtbl->getByName(This,bstrName,ppPlaylistArray);
+}
+static FORCEINLINE HRESULT IWMPPlaylistCollection_remove(IWMPPlaylistCollection* This,IWMPPlaylist *pItem) {
+    return This->lpVtbl->remove(This,pItem);
+}
+static FORCEINLINE HRESULT IWMPPlaylistCollection_setDeleted(IWMPPlaylistCollection* This,IWMPPlaylist *pItem,VARIANT_BOOL varfIsDeleted) {
+    return This->lpVtbl->setDeleted(This,pItem,varfIsDeleted);
+}
+static FORCEINLINE HRESULT IWMPPlaylistCollection_isDeleted(IWMPPlaylistCollection* This,IWMPPlaylist *pItem,VARIANT_BOOL *pvarfIsDeleted) {
+    return This->lpVtbl->isDeleted(This,pItem,pvarfIsDeleted);
+}
+static FORCEINLINE HRESULT IWMPPlaylistCollection_importPlaylist(IWMPPlaylistCollection* This,IWMPPlaylist *pItem,IWMPPlaylist **ppImportedItem) {
+    return This->lpVtbl->importPlaylist(This,pItem,ppImportedItem);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPPlaylistCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPNetwork interface
+ */
+#ifndef __IWMPNetwork_INTERFACE_DEFINED__
+#define __IWMPNetwork_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPNetwork, 0xec21b779, 0xedef, 0x462d, 0xbb,0xa4, 0xad,0x9d,0xde,0x2b,0x29,0xa7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ec21b779-edef-462d-bba4-ad9dde2b29a7")
+IWMPNetwork : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_bandWidth(
+        LONG *plBandwidth) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_recoveredPackets(
+        LONG *plRecoveredPackets) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_sourceProtocol(
+        BSTR *pbstrSourceProtocol) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_receivedPackets(
+        LONG *plReceivedPackets) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_lostPackets(
+        LONG *plLostPackets) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_receptionQuality(
+        LONG *plReceptionQuality) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_bufferingCount(
+        LONG *plBufferingCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_bufferingProgress(
+        LONG *plBufferingProgress) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_bufferingTime(
+        LONG *plBufferingTime) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_bufferingTime(
+        LONG plBufferingTime) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_frameRate(
+        LONG *plFrameRate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_maxBitRate(
+        LONG *plBitRate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_bitRate(
+        LONG *plBitRate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getProxySettings(
+        BSTR bstrProtocol,
+        LONG *plProxySetting) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE setProxySettings(
+        BSTR bstrProtocol,
+        LONG lProxySetting) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getProxyName(
+        BSTR bstrProtocol,
+        BSTR *pbstrProxyName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE setProxyName(
+        BSTR bstrProtocol,
+        BSTR bstrProxyName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getProxyPort(
+        BSTR bstrProtocol,
+        LONG *lProxyPort) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE setProxyPort(
+        BSTR bstrProtocol,
+        LONG lProxyPort) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getProxyExceptionList(
+        BSTR bstrProtocol,
+        BSTR *pbstrExceptionList) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE setProxyExceptionList(
+        BSTR bstrProtocol,
+        BSTR pbstrExceptionList) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getProxyBypassForLocal(
+        BSTR bstrProtocol,
+        VARIANT_BOOL *pfBypassForLocal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE setProxyBypassForLocal(
+        BSTR bstrProtocol,
+        VARIANT_BOOL fBypassForLocal) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_maxBandwidth(
+        LONG *lMaxBandwidth) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_maxBandwidth(
+        LONG lMaxBandwidth) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_downloadProgress(
+        LONG *plDownloadProgress) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_encodedFrameRate(
+        LONG *plFrameRate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_framesSkipped(
+        LONG *plFrames) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPNetwork, 0xec21b779, 0xedef, 0x462d, 0xbb,0xa4, 0xad,0x9d,0xde,0x2b,0x29,0xa7)
+#endif
+#else
+typedef struct IWMPNetworkVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPNetwork *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPNetwork *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPNetwork *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPNetwork *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPNetwork *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPNetwork *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPNetwork *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPNetwork methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_bandWidth)(
+        IWMPNetwork *This,
+        LONG *plBandwidth);
+
+    HRESULT (STDMETHODCALLTYPE *get_recoveredPackets)(
+        IWMPNetwork *This,
+        LONG *plRecoveredPackets);
+
+    HRESULT (STDMETHODCALLTYPE *get_sourceProtocol)(
+        IWMPNetwork *This,
+        BSTR *pbstrSourceProtocol);
+
+    HRESULT (STDMETHODCALLTYPE *get_receivedPackets)(
+        IWMPNetwork *This,
+        LONG *plReceivedPackets);
+
+    HRESULT (STDMETHODCALLTYPE *get_lostPackets)(
+        IWMPNetwork *This,
+        LONG *plLostPackets);
+
+    HRESULT (STDMETHODCALLTYPE *get_receptionQuality)(
+        IWMPNetwork *This,
+        LONG *plReceptionQuality);
+
+    HRESULT (STDMETHODCALLTYPE *get_bufferingCount)(
+        IWMPNetwork *This,
+        LONG *plBufferingCount);
+
+    HRESULT (STDMETHODCALLTYPE *get_bufferingProgress)(
+        IWMPNetwork *This,
+        LONG *plBufferingProgress);
+
+    HRESULT (STDMETHODCALLTYPE *get_bufferingTime)(
+        IWMPNetwork *This,
+        LONG *plBufferingTime);
+
+    HRESULT (STDMETHODCALLTYPE *put_bufferingTime)(
+        IWMPNetwork *This,
+        LONG plBufferingTime);
+
+    HRESULT (STDMETHODCALLTYPE *get_frameRate)(
+        IWMPNetwork *This,
+        LONG *plFrameRate);
+
+    HRESULT (STDMETHODCALLTYPE *get_maxBitRate)(
+        IWMPNetwork *This,
+        LONG *plBitRate);
+
+    HRESULT (STDMETHODCALLTYPE *get_bitRate)(
+        IWMPNetwork *This,
+        LONG *plBitRate);
+
+    HRESULT (STDMETHODCALLTYPE *getProxySettings)(
+        IWMPNetwork *This,
+        BSTR bstrProtocol,
+        LONG *plProxySetting);
+
+    HRESULT (STDMETHODCALLTYPE *setProxySettings)(
+        IWMPNetwork *This,
+        BSTR bstrProtocol,
+        LONG lProxySetting);
+
+    HRESULT (STDMETHODCALLTYPE *getProxyName)(
+        IWMPNetwork *This,
+        BSTR bstrProtocol,
+        BSTR *pbstrProxyName);
+
+    HRESULT (STDMETHODCALLTYPE *setProxyName)(
+        IWMPNetwork *This,
+        BSTR bstrProtocol,
+        BSTR bstrProxyName);
+
+    HRESULT (STDMETHODCALLTYPE *getProxyPort)(
+        IWMPNetwork *This,
+        BSTR bstrProtocol,
+        LONG *lProxyPort);
+
+    HRESULT (STDMETHODCALLTYPE *setProxyPort)(
+        IWMPNetwork *This,
+        BSTR bstrProtocol,
+        LONG lProxyPort);
+
+    HRESULT (STDMETHODCALLTYPE *getProxyExceptionList)(
+        IWMPNetwork *This,
+        BSTR bstrProtocol,
+        BSTR *pbstrExceptionList);
+
+    HRESULT (STDMETHODCALLTYPE *setProxyExceptionList)(
+        IWMPNetwork *This,
+        BSTR bstrProtocol,
+        BSTR pbstrExceptionList);
+
+    HRESULT (STDMETHODCALLTYPE *getProxyBypassForLocal)(
+        IWMPNetwork *This,
+        BSTR bstrProtocol,
+        VARIANT_BOOL *pfBypassForLocal);
+
+    HRESULT (STDMETHODCALLTYPE *setProxyBypassForLocal)(
+        IWMPNetwork *This,
+        BSTR bstrProtocol,
+        VARIANT_BOOL fBypassForLocal);
+
+    HRESULT (STDMETHODCALLTYPE *get_maxBandwidth)(
+        IWMPNetwork *This,
+        LONG *lMaxBandwidth);
+
+    HRESULT (STDMETHODCALLTYPE *put_maxBandwidth)(
+        IWMPNetwork *This,
+        LONG lMaxBandwidth);
+
+    HRESULT (STDMETHODCALLTYPE *get_downloadProgress)(
+        IWMPNetwork *This,
+        LONG *plDownloadProgress);
+
+    HRESULT (STDMETHODCALLTYPE *get_encodedFrameRate)(
+        IWMPNetwork *This,
+        LONG *plFrameRate);
+
+    HRESULT (STDMETHODCALLTYPE *get_framesSkipped)(
+        IWMPNetwork *This,
+        LONG *plFrames);
+
+    END_INTERFACE
+} IWMPNetworkVtbl;
+
+interface IWMPNetwork {
+    CONST_VTBL IWMPNetworkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPNetwork_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPNetwork_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPNetwork_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPNetwork_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPNetwork_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPNetwork_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPNetwork_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPNetwork methods ***/
+#define IWMPNetwork_get_bandWidth(This,plBandwidth) (This)->lpVtbl->get_bandWidth(This,plBandwidth)
+#define IWMPNetwork_get_recoveredPackets(This,plRecoveredPackets) (This)->lpVtbl->get_recoveredPackets(This,plRecoveredPackets)
+#define IWMPNetwork_get_sourceProtocol(This,pbstrSourceProtocol) (This)->lpVtbl->get_sourceProtocol(This,pbstrSourceProtocol)
+#define IWMPNetwork_get_receivedPackets(This,plReceivedPackets) (This)->lpVtbl->get_receivedPackets(This,plReceivedPackets)
+#define IWMPNetwork_get_lostPackets(This,plLostPackets) (This)->lpVtbl->get_lostPackets(This,plLostPackets)
+#define IWMPNetwork_get_receptionQuality(This,plReceptionQuality) (This)->lpVtbl->get_receptionQuality(This,plReceptionQuality)
+#define IWMPNetwork_get_bufferingCount(This,plBufferingCount) (This)->lpVtbl->get_bufferingCount(This,plBufferingCount)
+#define IWMPNetwork_get_bufferingProgress(This,plBufferingProgress) (This)->lpVtbl->get_bufferingProgress(This,plBufferingProgress)
+#define IWMPNetwork_get_bufferingTime(This,plBufferingTime) (This)->lpVtbl->get_bufferingTime(This,plBufferingTime)
+#define IWMPNetwork_put_bufferingTime(This,plBufferingTime) (This)->lpVtbl->put_bufferingTime(This,plBufferingTime)
+#define IWMPNetwork_get_frameRate(This,plFrameRate) (This)->lpVtbl->get_frameRate(This,plFrameRate)
+#define IWMPNetwork_get_maxBitRate(This,plBitRate) (This)->lpVtbl->get_maxBitRate(This,plBitRate)
+#define IWMPNetwork_get_bitRate(This,plBitRate) (This)->lpVtbl->get_bitRate(This,plBitRate)
+#define IWMPNetwork_getProxySettings(This,bstrProtocol,plProxySetting) (This)->lpVtbl->getProxySettings(This,bstrProtocol,plProxySetting)
+#define IWMPNetwork_setProxySettings(This,bstrProtocol,lProxySetting) (This)->lpVtbl->setProxySettings(This,bstrProtocol,lProxySetting)
+#define IWMPNetwork_getProxyName(This,bstrProtocol,pbstrProxyName) (This)->lpVtbl->getProxyName(This,bstrProtocol,pbstrProxyName)
+#define IWMPNetwork_setProxyName(This,bstrProtocol,bstrProxyName) (This)->lpVtbl->setProxyName(This,bstrProtocol,bstrProxyName)
+#define IWMPNetwork_getProxyPort(This,bstrProtocol,lProxyPort) (This)->lpVtbl->getProxyPort(This,bstrProtocol,lProxyPort)
+#define IWMPNetwork_setProxyPort(This,bstrProtocol,lProxyPort) (This)->lpVtbl->setProxyPort(This,bstrProtocol,lProxyPort)
+#define IWMPNetwork_getProxyExceptionList(This,bstrProtocol,pbstrExceptionList) (This)->lpVtbl->getProxyExceptionList(This,bstrProtocol,pbstrExceptionList)
+#define IWMPNetwork_setProxyExceptionList(This,bstrProtocol,pbstrExceptionList) (This)->lpVtbl->setProxyExceptionList(This,bstrProtocol,pbstrExceptionList)
+#define IWMPNetwork_getProxyBypassForLocal(This,bstrProtocol,pfBypassForLocal) (This)->lpVtbl->getProxyBypassForLocal(This,bstrProtocol,pfBypassForLocal)
+#define IWMPNetwork_setProxyBypassForLocal(This,bstrProtocol,fBypassForLocal) (This)->lpVtbl->setProxyBypassForLocal(This,bstrProtocol,fBypassForLocal)
+#define IWMPNetwork_get_maxBandwidth(This,lMaxBandwidth) (This)->lpVtbl->get_maxBandwidth(This,lMaxBandwidth)
+#define IWMPNetwork_put_maxBandwidth(This,lMaxBandwidth) (This)->lpVtbl->put_maxBandwidth(This,lMaxBandwidth)
+#define IWMPNetwork_get_downloadProgress(This,plDownloadProgress) (This)->lpVtbl->get_downloadProgress(This,plDownloadProgress)
+#define IWMPNetwork_get_encodedFrameRate(This,plFrameRate) (This)->lpVtbl->get_encodedFrameRate(This,plFrameRate)
+#define IWMPNetwork_get_framesSkipped(This,plFrames) (This)->lpVtbl->get_framesSkipped(This,plFrames)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPNetwork_QueryInterface(IWMPNetwork* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPNetwork_AddRef(IWMPNetwork* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPNetwork_Release(IWMPNetwork* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPNetwork_GetTypeInfoCount(IWMPNetwork* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPNetwork_GetTypeInfo(IWMPNetwork* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPNetwork_GetIDsOfNames(IWMPNetwork* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPNetwork_Invoke(IWMPNetwork* 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);
+}
+/*** IWMPNetwork methods ***/
+static FORCEINLINE HRESULT IWMPNetwork_get_bandWidth(IWMPNetwork* This,LONG *plBandwidth) {
+    return This->lpVtbl->get_bandWidth(This,plBandwidth);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_recoveredPackets(IWMPNetwork* This,LONG *plRecoveredPackets) {
+    return This->lpVtbl->get_recoveredPackets(This,plRecoveredPackets);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_sourceProtocol(IWMPNetwork* This,BSTR *pbstrSourceProtocol) {
+    return This->lpVtbl->get_sourceProtocol(This,pbstrSourceProtocol);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_receivedPackets(IWMPNetwork* This,LONG *plReceivedPackets) {
+    return This->lpVtbl->get_receivedPackets(This,plReceivedPackets);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_lostPackets(IWMPNetwork* This,LONG *plLostPackets) {
+    return This->lpVtbl->get_lostPackets(This,plLostPackets);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_receptionQuality(IWMPNetwork* This,LONG *plReceptionQuality) {
+    return This->lpVtbl->get_receptionQuality(This,plReceptionQuality);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_bufferingCount(IWMPNetwork* This,LONG *plBufferingCount) {
+    return This->lpVtbl->get_bufferingCount(This,plBufferingCount);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_bufferingProgress(IWMPNetwork* This,LONG *plBufferingProgress) {
+    return This->lpVtbl->get_bufferingProgress(This,plBufferingProgress);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_bufferingTime(IWMPNetwork* This,LONG *plBufferingTime) {
+    return This->lpVtbl->get_bufferingTime(This,plBufferingTime);
+}
+static FORCEINLINE HRESULT IWMPNetwork_put_bufferingTime(IWMPNetwork* This,LONG plBufferingTime) {
+    return This->lpVtbl->put_bufferingTime(This,plBufferingTime);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_frameRate(IWMPNetwork* This,LONG *plFrameRate) {
+    return This->lpVtbl->get_frameRate(This,plFrameRate);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_maxBitRate(IWMPNetwork* This,LONG *plBitRate) {
+    return This->lpVtbl->get_maxBitRate(This,plBitRate);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_bitRate(IWMPNetwork* This,LONG *plBitRate) {
+    return This->lpVtbl->get_bitRate(This,plBitRate);
+}
+static FORCEINLINE HRESULT IWMPNetwork_getProxySettings(IWMPNetwork* This,BSTR bstrProtocol,LONG *plProxySetting) {
+    return This->lpVtbl->getProxySettings(This,bstrProtocol,plProxySetting);
+}
+static FORCEINLINE HRESULT IWMPNetwork_setProxySettings(IWMPNetwork* This,BSTR bstrProtocol,LONG lProxySetting) {
+    return This->lpVtbl->setProxySettings(This,bstrProtocol,lProxySetting);
+}
+static FORCEINLINE HRESULT IWMPNetwork_getProxyName(IWMPNetwork* This,BSTR bstrProtocol,BSTR *pbstrProxyName) {
+    return This->lpVtbl->getProxyName(This,bstrProtocol,pbstrProxyName);
+}
+static FORCEINLINE HRESULT IWMPNetwork_setProxyName(IWMPNetwork* This,BSTR bstrProtocol,BSTR bstrProxyName) {
+    return This->lpVtbl->setProxyName(This,bstrProtocol,bstrProxyName);
+}
+static FORCEINLINE HRESULT IWMPNetwork_getProxyPort(IWMPNetwork* This,BSTR bstrProtocol,LONG *lProxyPort) {
+    return This->lpVtbl->getProxyPort(This,bstrProtocol,lProxyPort);
+}
+static FORCEINLINE HRESULT IWMPNetwork_setProxyPort(IWMPNetwork* This,BSTR bstrProtocol,LONG lProxyPort) {
+    return This->lpVtbl->setProxyPort(This,bstrProtocol,lProxyPort);
+}
+static FORCEINLINE HRESULT IWMPNetwork_getProxyExceptionList(IWMPNetwork* This,BSTR bstrProtocol,BSTR *pbstrExceptionList) {
+    return This->lpVtbl->getProxyExceptionList(This,bstrProtocol,pbstrExceptionList);
+}
+static FORCEINLINE HRESULT IWMPNetwork_setProxyExceptionList(IWMPNetwork* This,BSTR bstrProtocol,BSTR pbstrExceptionList) {
+    return This->lpVtbl->setProxyExceptionList(This,bstrProtocol,pbstrExceptionList);
+}
+static FORCEINLINE HRESULT IWMPNetwork_getProxyBypassForLocal(IWMPNetwork* This,BSTR bstrProtocol,VARIANT_BOOL *pfBypassForLocal) {
+    return This->lpVtbl->getProxyBypassForLocal(This,bstrProtocol,pfBypassForLocal);
+}
+static FORCEINLINE HRESULT IWMPNetwork_setProxyBypassForLocal(IWMPNetwork* This,BSTR bstrProtocol,VARIANT_BOOL fBypassForLocal) {
+    return This->lpVtbl->setProxyBypassForLocal(This,bstrProtocol,fBypassForLocal);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_maxBandwidth(IWMPNetwork* This,LONG *lMaxBandwidth) {
+    return This->lpVtbl->get_maxBandwidth(This,lMaxBandwidth);
+}
+static FORCEINLINE HRESULT IWMPNetwork_put_maxBandwidth(IWMPNetwork* This,LONG lMaxBandwidth) {
+    return This->lpVtbl->put_maxBandwidth(This,lMaxBandwidth);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_downloadProgress(IWMPNetwork* This,LONG *plDownloadProgress) {
+    return This->lpVtbl->get_downloadProgress(This,plDownloadProgress);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_encodedFrameRate(IWMPNetwork* This,LONG *plFrameRate) {
+    return This->lpVtbl->get_encodedFrameRate(This,plFrameRate);
+}
+static FORCEINLINE HRESULT IWMPNetwork_get_framesSkipped(IWMPNetwork* This,LONG *plFrames) {
+    return This->lpVtbl->get_framesSkipped(This,plFrames);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPNetwork_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPCdrom interface
+ */
+#ifndef __IWMPCdrom_INTERFACE_DEFINED__
+#define __IWMPCdrom_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPCdrom, 0xcfab6e98, 0x8730, 0x11d3, 0xb3,0x88, 0x00,0xc0,0x4f,0x68,0x57,0x4b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("cfab6e98-8730-11d3-b388-00c04f68574b")
+IWMPCdrom : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_driveSpecifier(
+        BSTR *pbstrDrive) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Playlist(
+        IWMPPlaylist **ppPlaylist) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE eject(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPCdrom, 0xcfab6e98, 0x8730, 0x11d3, 0xb3,0x88, 0x00,0xc0,0x4f,0x68,0x57,0x4b)
+#endif
+#else
+typedef struct IWMPCdromVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPCdrom *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPCdrom *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPCdrom *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPCdrom *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPCdrom *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPCdrom *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPCdrom *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPCdrom methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_driveSpecifier)(
+        IWMPCdrom *This,
+        BSTR *pbstrDrive);
+
+    HRESULT (STDMETHODCALLTYPE *get_Playlist)(
+        IWMPCdrom *This,
+        IWMPPlaylist **ppPlaylist);
+
+    HRESULT (STDMETHODCALLTYPE *eject)(
+        IWMPCdrom *This);
+
+    END_INTERFACE
+} IWMPCdromVtbl;
+
+interface IWMPCdrom {
+    CONST_VTBL IWMPCdromVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPCdrom_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPCdrom_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPCdrom_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPCdrom_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPCdrom_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPCdrom_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPCdrom_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPCdrom methods ***/
+#define IWMPCdrom_get_driveSpecifier(This,pbstrDrive) (This)->lpVtbl->get_driveSpecifier(This,pbstrDrive)
+#define IWMPCdrom_get_Playlist(This,ppPlaylist) (This)->lpVtbl->get_Playlist(This,ppPlaylist)
+#define IWMPCdrom_eject(This) (This)->lpVtbl->eject(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPCdrom_QueryInterface(IWMPCdrom* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPCdrom_AddRef(IWMPCdrom* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPCdrom_Release(IWMPCdrom* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPCdrom_GetTypeInfoCount(IWMPCdrom* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPCdrom_GetTypeInfo(IWMPCdrom* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPCdrom_GetIDsOfNames(IWMPCdrom* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPCdrom_Invoke(IWMPCdrom* 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);
+}
+/*** IWMPCdrom methods ***/
+static FORCEINLINE HRESULT IWMPCdrom_get_driveSpecifier(IWMPCdrom* This,BSTR *pbstrDrive) {
+    return This->lpVtbl->get_driveSpecifier(This,pbstrDrive);
+}
+static FORCEINLINE HRESULT IWMPCdrom_get_Playlist(IWMPCdrom* This,IWMPPlaylist **ppPlaylist) {
+    return This->lpVtbl->get_Playlist(This,ppPlaylist);
+}
+static FORCEINLINE HRESULT IWMPCdrom_eject(IWMPCdrom* This) {
+    return This->lpVtbl->eject(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPCdrom_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPCdromCollection interface
+ */
+#ifndef __IWMPCdromCollection_INTERFACE_DEFINED__
+#define __IWMPCdromCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPCdromCollection, 0xee4c8fe2, 0x34b2, 0x11d3, 0xa3,0xbf, 0x00,0x60,0x97,0xc9,0xb3,0x44);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ee4c8fe2-34b2-11d3-a3bf-006097c9b344")
+IWMPCdromCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_count(
+        LONG *plCount) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Item(
+        LONG lIndex,
+        IWMPCdrom **ppItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getByDriveSpecifier(
+        BSTR bstrDriveSpecifier,
+        IWMPCdrom **ppCdrom) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPCdromCollection, 0xee4c8fe2, 0x34b2, 0x11d3, 0xa3,0xbf, 0x00,0x60,0x97,0xc9,0xb3,0x44)
+#endif
+#else
+typedef struct IWMPCdromCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPCdromCollection *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPCdromCollection *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPCdromCollection *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPCdromCollection *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPCdromCollection *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPCdromCollection *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPCdromCollection *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPCdromCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_count)(
+        IWMPCdromCollection *This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *Item)(
+        IWMPCdromCollection *This,
+        LONG lIndex,
+        IWMPCdrom **ppItem);
+
+    HRESULT (STDMETHODCALLTYPE *getByDriveSpecifier)(
+        IWMPCdromCollection *This,
+        BSTR bstrDriveSpecifier,
+        IWMPCdrom **ppCdrom);
+
+    END_INTERFACE
+} IWMPCdromCollectionVtbl;
+
+interface IWMPCdromCollection {
+    CONST_VTBL IWMPCdromCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPCdromCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPCdromCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPCdromCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPCdromCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPCdromCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPCdromCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPCdromCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPCdromCollection methods ***/
+#define IWMPCdromCollection_get_count(This,plCount) (This)->lpVtbl->get_count(This,plCount)
+#define IWMPCdromCollection_Item(This,lIndex,ppItem) (This)->lpVtbl->Item(This,lIndex,ppItem)
+#define IWMPCdromCollection_getByDriveSpecifier(This,bstrDriveSpecifier,ppCdrom) (This)->lpVtbl->getByDriveSpecifier(This,bstrDriveSpecifier,ppCdrom)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPCdromCollection_QueryInterface(IWMPCdromCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPCdromCollection_AddRef(IWMPCdromCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPCdromCollection_Release(IWMPCdromCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPCdromCollection_GetTypeInfoCount(IWMPCdromCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPCdromCollection_GetTypeInfo(IWMPCdromCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPCdromCollection_GetIDsOfNames(IWMPCdromCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPCdromCollection_Invoke(IWMPCdromCollection* 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);
+}
+/*** IWMPCdromCollection methods ***/
+static FORCEINLINE HRESULT IWMPCdromCollection_get_count(IWMPCdromCollection* This,LONG *plCount) {
+    return This->lpVtbl->get_count(This,plCount);
+}
+static FORCEINLINE HRESULT IWMPCdromCollection_Item(IWMPCdromCollection* This,LONG lIndex,IWMPCdrom **ppItem) {
+    return This->lpVtbl->Item(This,lIndex,ppItem);
+}
+static FORCEINLINE HRESULT IWMPCdromCollection_getByDriveSpecifier(IWMPCdromCollection* This,BSTR bstrDriveSpecifier,IWMPCdrom **ppCdrom) {
+    return This->lpVtbl->getByDriveSpecifier(This,bstrDriveSpecifier,ppCdrom);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPCdromCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPDVD interface
+ */
+#ifndef __IWMPDVD_INTERFACE_DEFINED__
+#define __IWMPDVD_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPDVD, 0x8da61686, 0x4668, 0x4a5c, 0xae,0x5d, 0x80,0x31,0x93,0x29,0x3d,0xbe);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8da61686-4668-4a5c-ae5d-803193293dbe")
+IWMPDVD : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_isAvailable(
+        BSTR bstrItem,
+        VARIANT_BOOL *pIsAvailable) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_domain(
+        BSTR *strDomain) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE topMenu(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE titleMenu(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE back(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE resume(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPDVD, 0x8da61686, 0x4668, 0x4a5c, 0xae,0x5d, 0x80,0x31,0x93,0x29,0x3d,0xbe)
+#endif
+#else
+typedef struct IWMPDVDVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPDVD *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPDVD *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPDVD *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPDVD *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPDVD *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPDVD *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPDVD *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPDVD methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_isAvailable)(
+        IWMPDVD *This,
+        BSTR bstrItem,
+        VARIANT_BOOL *pIsAvailable);
+
+    HRESULT (STDMETHODCALLTYPE *get_domain)(
+        IWMPDVD *This,
+        BSTR *strDomain);
+
+    HRESULT (STDMETHODCALLTYPE *topMenu)(
+        IWMPDVD *This);
+
+    HRESULT (STDMETHODCALLTYPE *titleMenu)(
+        IWMPDVD *This);
+
+    HRESULT (STDMETHODCALLTYPE *back)(
+        IWMPDVD *This);
+
+    HRESULT (STDMETHODCALLTYPE *resume)(
+        IWMPDVD *This);
+
+    END_INTERFACE
+} IWMPDVDVtbl;
+
+interface IWMPDVD {
+    CONST_VTBL IWMPDVDVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPDVD_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPDVD_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPDVD_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPDVD_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPDVD_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPDVD_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPDVD_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPDVD methods ***/
+#define IWMPDVD_get_isAvailable(This,bstrItem,pIsAvailable) (This)->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable)
+#define IWMPDVD_get_domain(This,strDomain) (This)->lpVtbl->get_domain(This,strDomain)
+#define IWMPDVD_topMenu(This) (This)->lpVtbl->topMenu(This)
+#define IWMPDVD_titleMenu(This) (This)->lpVtbl->titleMenu(This)
+#define IWMPDVD_back(This) (This)->lpVtbl->back(This)
+#define IWMPDVD_resume(This) (This)->lpVtbl->resume(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPDVD_QueryInterface(IWMPDVD* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPDVD_AddRef(IWMPDVD* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPDVD_Release(IWMPDVD* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPDVD_GetTypeInfoCount(IWMPDVD* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPDVD_GetTypeInfo(IWMPDVD* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPDVD_GetIDsOfNames(IWMPDVD* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPDVD_Invoke(IWMPDVD* 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);
+}
+/*** IWMPDVD methods ***/
+static FORCEINLINE HRESULT IWMPDVD_get_isAvailable(IWMPDVD* This,BSTR bstrItem,VARIANT_BOOL *pIsAvailable) {
+    return This->lpVtbl->get_isAvailable(This,bstrItem,pIsAvailable);
+}
+static FORCEINLINE HRESULT IWMPDVD_get_domain(IWMPDVD* This,BSTR *strDomain) {
+    return This->lpVtbl->get_domain(This,strDomain);
+}
+static FORCEINLINE HRESULT IWMPDVD_topMenu(IWMPDVD* This) {
+    return This->lpVtbl->topMenu(This);
+}
+static FORCEINLINE HRESULT IWMPDVD_titleMenu(IWMPDVD* This) {
+    return This->lpVtbl->titleMenu(This);
+}
+static FORCEINLINE HRESULT IWMPDVD_back(IWMPDVD* This) {
+    return This->lpVtbl->back(This);
+}
+static FORCEINLINE HRESULT IWMPDVD_resume(IWMPDVD* This) {
+    return This->lpVtbl->resume(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPDVD_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPClosedCaption interface
+ */
+#ifndef __IWMPClosedCaption_INTERFACE_DEFINED__
+#define __IWMPClosedCaption_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPClosedCaption, 0x4f2df574, 0xc588, 0x11d3, 0x9e,0xd0, 0x00,0xc0,0x4f,0xb6,0xe9,0x37);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4f2df574-c588-11d3-9ed0-00c04fb6e937")
+IWMPClosedCaption : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_SAMIStyle(
+        BSTR *pbstrSAMIStyle) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_SAMIStyle(
+        BSTR pbstrSAMIStyle) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SAMILang(
+        BSTR *pbstrSAMILang) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_SAMILang(
+        BSTR pbstrSAMILang) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SAMIFileName(
+        BSTR *pbstrSAMIFileName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_SAMIFileName(
+        BSTR pbstrSAMIFileName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_captioningId(
+        BSTR *pbstrCaptioningID) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_captioningId(
+        BSTR pbstrCaptioningID) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPClosedCaption, 0x4f2df574, 0xc588, 0x11d3, 0x9e,0xd0, 0x00,0xc0,0x4f,0xb6,0xe9,0x37)
+#endif
+#else
+typedef struct IWMPClosedCaptionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPClosedCaption *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPClosedCaption *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPClosedCaption *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPClosedCaption *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPClosedCaption *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPClosedCaption *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPClosedCaption *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPClosedCaption methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_SAMIStyle)(
+        IWMPClosedCaption *This,
+        BSTR *pbstrSAMIStyle);
+
+    HRESULT (STDMETHODCALLTYPE *put_SAMIStyle)(
+        IWMPClosedCaption *This,
+        BSTR pbstrSAMIStyle);
+
+    HRESULT (STDMETHODCALLTYPE *get_SAMILang)(
+        IWMPClosedCaption *This,
+        BSTR *pbstrSAMILang);
+
+    HRESULT (STDMETHODCALLTYPE *put_SAMILang)(
+        IWMPClosedCaption *This,
+        BSTR pbstrSAMILang);
+
+    HRESULT (STDMETHODCALLTYPE *get_SAMIFileName)(
+        IWMPClosedCaption *This,
+        BSTR *pbstrSAMIFileName);
+
+    HRESULT (STDMETHODCALLTYPE *put_SAMIFileName)(
+        IWMPClosedCaption *This,
+        BSTR pbstrSAMIFileName);
+
+    HRESULT (STDMETHODCALLTYPE *get_captioningId)(
+        IWMPClosedCaption *This,
+        BSTR *pbstrCaptioningID);
+
+    HRESULT (STDMETHODCALLTYPE *put_captioningId)(
+        IWMPClosedCaption *This,
+        BSTR pbstrCaptioningID);
+
+    END_INTERFACE
+} IWMPClosedCaptionVtbl;
+
+interface IWMPClosedCaption {
+    CONST_VTBL IWMPClosedCaptionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPClosedCaption_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPClosedCaption_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPClosedCaption_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPClosedCaption_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPClosedCaption_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPClosedCaption_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPClosedCaption_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPClosedCaption methods ***/
+#define IWMPClosedCaption_get_SAMIStyle(This,pbstrSAMIStyle) (This)->lpVtbl->get_SAMIStyle(This,pbstrSAMIStyle)
+#define IWMPClosedCaption_put_SAMIStyle(This,pbstrSAMIStyle) (This)->lpVtbl->put_SAMIStyle(This,pbstrSAMIStyle)
+#define IWMPClosedCaption_get_SAMILang(This,pbstrSAMILang) (This)->lpVtbl->get_SAMILang(This,pbstrSAMILang)
+#define IWMPClosedCaption_put_SAMILang(This,pbstrSAMILang) (This)->lpVtbl->put_SAMILang(This,pbstrSAMILang)
+#define IWMPClosedCaption_get_SAMIFileName(This,pbstrSAMIFileName) (This)->lpVtbl->get_SAMIFileName(This,pbstrSAMIFileName)
+#define IWMPClosedCaption_put_SAMIFileName(This,pbstrSAMIFileName) (This)->lpVtbl->put_SAMIFileName(This,pbstrSAMIFileName)
+#define IWMPClosedCaption_get_captioningId(This,pbstrCaptioningID) (This)->lpVtbl->get_captioningId(This,pbstrCaptioningID)
+#define IWMPClosedCaption_put_captioningId(This,pbstrCaptioningID) (This)->lpVtbl->put_captioningId(This,pbstrCaptioningID)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPClosedCaption_QueryInterface(IWMPClosedCaption* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPClosedCaption_AddRef(IWMPClosedCaption* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPClosedCaption_Release(IWMPClosedCaption* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPClosedCaption_GetTypeInfoCount(IWMPClosedCaption* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPClosedCaption_GetTypeInfo(IWMPClosedCaption* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPClosedCaption_GetIDsOfNames(IWMPClosedCaption* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPClosedCaption_Invoke(IWMPClosedCaption* 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);
+}
+/*** IWMPClosedCaption methods ***/
+static FORCEINLINE HRESULT IWMPClosedCaption_get_SAMIStyle(IWMPClosedCaption* This,BSTR *pbstrSAMIStyle) {
+    return This->lpVtbl->get_SAMIStyle(This,pbstrSAMIStyle);
+}
+static FORCEINLINE HRESULT IWMPClosedCaption_put_SAMIStyle(IWMPClosedCaption* This,BSTR pbstrSAMIStyle) {
+    return This->lpVtbl->put_SAMIStyle(This,pbstrSAMIStyle);
+}
+static FORCEINLINE HRESULT IWMPClosedCaption_get_SAMILang(IWMPClosedCaption* This,BSTR *pbstrSAMILang) {
+    return This->lpVtbl->get_SAMILang(This,pbstrSAMILang);
+}
+static FORCEINLINE HRESULT IWMPClosedCaption_put_SAMILang(IWMPClosedCaption* This,BSTR pbstrSAMILang) {
+    return This->lpVtbl->put_SAMILang(This,pbstrSAMILang);
+}
+static FORCEINLINE HRESULT IWMPClosedCaption_get_SAMIFileName(IWMPClosedCaption* This,BSTR *pbstrSAMIFileName) {
+    return This->lpVtbl->get_SAMIFileName(This,pbstrSAMIFileName);
+}
+static FORCEINLINE HRESULT IWMPClosedCaption_put_SAMIFileName(IWMPClosedCaption* This,BSTR pbstrSAMIFileName) {
+    return This->lpVtbl->put_SAMIFileName(This,pbstrSAMIFileName);
+}
+static FORCEINLINE HRESULT IWMPClosedCaption_get_captioningId(IWMPClosedCaption* This,BSTR *pbstrCaptioningID) {
+    return This->lpVtbl->get_captioningId(This,pbstrCaptioningID);
+}
+static FORCEINLINE HRESULT IWMPClosedCaption_put_captioningId(IWMPClosedCaption* This,BSTR pbstrCaptioningID) {
+    return This->lpVtbl->put_captioningId(This,pbstrCaptioningID);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPClosedCaption_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPErrorItem interface
+ */
+#ifndef __IWMPErrorItem_INTERFACE_DEFINED__
+#define __IWMPErrorItem_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPErrorItem, 0x3614c646, 0x3b3b, 0x4de7, 0xa8,0x1e, 0x93,0x0e,0x3f,0x21,0x27,0xb3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3614c646-3b3b-4de7-a81e-930e3f2127b3")
+IWMPErrorItem : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_errorCode(
+        LONG *phr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_errorDescription(
+        BSTR *pbstrDescription) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_errorContext(
+        VARIANT *pvarContext) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_remedy(
+        LONG *plRemedy) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_customUrl(
+        BSTR *pbstrCustomUrl) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPErrorItem, 0x3614c646, 0x3b3b, 0x4de7, 0xa8,0x1e, 0x93,0x0e,0x3f,0x21,0x27,0xb3)
+#endif
+#else
+typedef struct IWMPErrorItemVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPErrorItem *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPErrorItem *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPErrorItem *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPErrorItem *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPErrorItem *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPErrorItem *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPErrorItem *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPErrorItem methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_errorCode)(
+        IWMPErrorItem *This,
+        LONG *phr);
+
+    HRESULT (STDMETHODCALLTYPE *get_errorDescription)(
+        IWMPErrorItem *This,
+        BSTR *pbstrDescription);
+
+    HRESULT (STDMETHODCALLTYPE *get_errorContext)(
+        IWMPErrorItem *This,
+        VARIANT *pvarContext);
+
+    HRESULT (STDMETHODCALLTYPE *get_remedy)(
+        IWMPErrorItem *This,
+        LONG *plRemedy);
+
+    HRESULT (STDMETHODCALLTYPE *get_customUrl)(
+        IWMPErrorItem *This,
+        BSTR *pbstrCustomUrl);
+
+    END_INTERFACE
+} IWMPErrorItemVtbl;
+
+interface IWMPErrorItem {
+    CONST_VTBL IWMPErrorItemVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPErrorItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPErrorItem_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPErrorItem_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPErrorItem_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPErrorItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPErrorItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPErrorItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPErrorItem methods ***/
+#define IWMPErrorItem_get_errorCode(This,phr) (This)->lpVtbl->get_errorCode(This,phr)
+#define IWMPErrorItem_get_errorDescription(This,pbstrDescription) (This)->lpVtbl->get_errorDescription(This,pbstrDescription)
+#define IWMPErrorItem_get_errorContext(This,pvarContext) (This)->lpVtbl->get_errorContext(This,pvarContext)
+#define IWMPErrorItem_get_remedy(This,plRemedy) (This)->lpVtbl->get_remedy(This,plRemedy)
+#define IWMPErrorItem_get_customUrl(This,pbstrCustomUrl) (This)->lpVtbl->get_customUrl(This,pbstrCustomUrl)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPErrorItem_QueryInterface(IWMPErrorItem* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPErrorItem_AddRef(IWMPErrorItem* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPErrorItem_Release(IWMPErrorItem* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPErrorItem_GetTypeInfoCount(IWMPErrorItem* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPErrorItem_GetTypeInfo(IWMPErrorItem* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPErrorItem_GetIDsOfNames(IWMPErrorItem* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPErrorItem_Invoke(IWMPErrorItem* 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);
+}
+/*** IWMPErrorItem methods ***/
+static FORCEINLINE HRESULT IWMPErrorItem_get_errorCode(IWMPErrorItem* This,LONG *phr) {
+    return This->lpVtbl->get_errorCode(This,phr);
+}
+static FORCEINLINE HRESULT IWMPErrorItem_get_errorDescription(IWMPErrorItem* This,BSTR *pbstrDescription) {
+    return This->lpVtbl->get_errorDescription(This,pbstrDescription);
+}
+static FORCEINLINE HRESULT IWMPErrorItem_get_errorContext(IWMPErrorItem* This,VARIANT *pvarContext) {
+    return This->lpVtbl->get_errorContext(This,pvarContext);
+}
+static FORCEINLINE HRESULT IWMPErrorItem_get_remedy(IWMPErrorItem* This,LONG *plRemedy) {
+    return This->lpVtbl->get_remedy(This,plRemedy);
+}
+static FORCEINLINE HRESULT IWMPErrorItem_get_customUrl(IWMPErrorItem* This,BSTR *pbstrCustomUrl) {
+    return This->lpVtbl->get_customUrl(This,pbstrCustomUrl);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPErrorItem_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPMedia2 interface
+ */
+#ifndef __IWMPMedia2_INTERFACE_DEFINED__
+#define __IWMPMedia2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPMedia2, 0xab7c88bb, 0x143e, 0x4ea4, 0xac,0xc3, 0xe4,0x35,0x0b,0x21,0x06,0xc3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ab7c88bb-143e-4ea4-acc3-e4350b2106c3")
+IWMPMedia2 : public IWMPMedia
+{
+    virtual HRESULT STDMETHODCALLTYPE get_error(
+        IWMPErrorItem **out) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPMedia2, 0xab7c88bb, 0x143e, 0x4ea4, 0xac,0xc3, 0xe4,0x35,0x0b,0x21,0x06,0xc3)
+#endif
+#else
+typedef struct IWMPMedia2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPMedia2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPMedia2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPMedia2 *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPMedia2 *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPMedia2 *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPMedia2 *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPMedia2 *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPMedia methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_isIdentical)(
+        IWMPMedia2 *This,
+        IWMPMedia *pIWMPMedia,
+        VARIANT_BOOL *pvbool);
+
+    HRESULT (STDMETHODCALLTYPE *get_sourceURL)(
+        IWMPMedia2 *This,
+        BSTR *pbstrSourceURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_name)(
+        IWMPMedia2 *This,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *put_name)(
+        IWMPMedia2 *This,
+        BSTR pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *get_imageSourceWidth)(
+        IWMPMedia2 *This,
+        LONG *pWidth);
+
+    HRESULT (STDMETHODCALLTYPE *get_imageSourceHeight)(
+        IWMPMedia2 *This,
+        LONG *pHeight);
+
+    HRESULT (STDMETHODCALLTYPE *get_markerCount)(
+        IWMPMedia2 *This,
+        LONG *pMarkerCount);
+
+    HRESULT (STDMETHODCALLTYPE *getMarkerTime)(
+        IWMPMedia2 *This,
+        LONG MarkerNum,
+        double *pMarkerTime);
+
+    HRESULT (STDMETHODCALLTYPE *getMarkerName)(
+        IWMPMedia2 *This,
+        LONG MarkerNum,
+        BSTR *pbstrMarkerName);
+
+    HRESULT (STDMETHODCALLTYPE *get_duration)(
+        IWMPMedia2 *This,
+        double *pDuration);
+
+    HRESULT (STDMETHODCALLTYPE *get_durationString)(
+        IWMPMedia2 *This,
+        BSTR *pbstrDuration);
+
+    HRESULT (STDMETHODCALLTYPE *get_attributeCount)(
+        IWMPMedia2 *This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *getAttributeName)(
+        IWMPMedia2 *This,
+        LONG lIndex,
+        BSTR *pbstrItemName);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfo)(
+        IWMPMedia2 *This,
+        BSTR bstrItemName,
+        BSTR *pbstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *setItemInfo)(
+        IWMPMedia2 *This,
+        BSTR bstrItemName,
+        BSTR bstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfoByAtom)(
+        IWMPMedia2 *This,
+        LONG lAtom,
+        BSTR *pbstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *isMemberOf)(
+        IWMPMedia2 *This,
+        IWMPPlaylist *pPlaylist,
+        VARIANT_BOOL *pvarfIsMemberOf);
+
+    HRESULT (STDMETHODCALLTYPE *isReadOnlyItem)(
+        IWMPMedia2 *This,
+        BSTR bstrItemName,
+        VARIANT_BOOL *pvarfIsReadOnly);
+
+    /*** IWMPMedia2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_error)(
+        IWMPMedia2 *This,
+        IWMPErrorItem **out);
+
+    END_INTERFACE
+} IWMPMedia2Vtbl;
+
+interface IWMPMedia2 {
+    CONST_VTBL IWMPMedia2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPMedia2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPMedia2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPMedia2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPMedia2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPMedia2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPMedia2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPMedia2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPMedia methods ***/
+#define IWMPMedia2_get_isIdentical(This,pIWMPMedia,pvbool) (This)->lpVtbl->get_isIdentical(This,pIWMPMedia,pvbool)
+#define IWMPMedia2_get_sourceURL(This,pbstrSourceURL) (This)->lpVtbl->get_sourceURL(This,pbstrSourceURL)
+#define IWMPMedia2_get_name(This,pbstrName) (This)->lpVtbl->get_name(This,pbstrName)
+#define IWMPMedia2_put_name(This,pbstrName) (This)->lpVtbl->put_name(This,pbstrName)
+#define IWMPMedia2_get_imageSourceWidth(This,pWidth) (This)->lpVtbl->get_imageSourceWidth(This,pWidth)
+#define IWMPMedia2_get_imageSourceHeight(This,pHeight) (This)->lpVtbl->get_imageSourceHeight(This,pHeight)
+#define IWMPMedia2_get_markerCount(This,pMarkerCount) (This)->lpVtbl->get_markerCount(This,pMarkerCount)
+#define IWMPMedia2_getMarkerTime(This,MarkerNum,pMarkerTime) (This)->lpVtbl->getMarkerTime(This,MarkerNum,pMarkerTime)
+#define IWMPMedia2_getMarkerName(This,MarkerNum,pbstrMarkerName) (This)->lpVtbl->getMarkerName(This,MarkerNum,pbstrMarkerName)
+#define IWMPMedia2_get_duration(This,pDuration) (This)->lpVtbl->get_duration(This,pDuration)
+#define IWMPMedia2_get_durationString(This,pbstrDuration) (This)->lpVtbl->get_durationString(This,pbstrDuration)
+#define IWMPMedia2_get_attributeCount(This,plCount) (This)->lpVtbl->get_attributeCount(This,plCount)
+#define IWMPMedia2_getAttributeName(This,lIndex,pbstrItemName) (This)->lpVtbl->getAttributeName(This,lIndex,pbstrItemName)
+#define IWMPMedia2_getItemInfo(This,bstrItemName,pbstrVal) (This)->lpVtbl->getItemInfo(This,bstrItemName,pbstrVal)
+#define IWMPMedia2_setItemInfo(This,bstrItemName,bstrVal) (This)->lpVtbl->setItemInfo(This,bstrItemName,bstrVal)
+#define IWMPMedia2_getItemInfoByAtom(This,lAtom,pbstrVal) (This)->lpVtbl->getItemInfoByAtom(This,lAtom,pbstrVal)
+#define IWMPMedia2_isMemberOf(This,pPlaylist,pvarfIsMemberOf) (This)->lpVtbl->isMemberOf(This,pPlaylist,pvarfIsMemberOf)
+#define IWMPMedia2_isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly) (This)->lpVtbl->isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly)
+/*** IWMPMedia2 methods ***/
+#define IWMPMedia2_get_error(This,out) (This)->lpVtbl->get_error(This,out)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPMedia2_QueryInterface(IWMPMedia2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPMedia2_AddRef(IWMPMedia2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPMedia2_Release(IWMPMedia2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPMedia2_GetTypeInfoCount(IWMPMedia2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPMedia2_GetTypeInfo(IWMPMedia2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPMedia2_GetIDsOfNames(IWMPMedia2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPMedia2_Invoke(IWMPMedia2* 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);
+}
+/*** IWMPMedia methods ***/
+static FORCEINLINE HRESULT IWMPMedia2_get_isIdentical(IWMPMedia2* This,IWMPMedia *pIWMPMedia,VARIANT_BOOL *pvbool) {
+    return This->lpVtbl->get_isIdentical(This,pIWMPMedia,pvbool);
+}
+static FORCEINLINE HRESULT IWMPMedia2_get_sourceURL(IWMPMedia2* This,BSTR *pbstrSourceURL) {
+    return This->lpVtbl->get_sourceURL(This,pbstrSourceURL);
+}
+static FORCEINLINE HRESULT IWMPMedia2_get_name(IWMPMedia2* This,BSTR *pbstrName) {
+    return This->lpVtbl->get_name(This,pbstrName);
+}
+static FORCEINLINE HRESULT IWMPMedia2_put_name(IWMPMedia2* This,BSTR pbstrName) {
+    return This->lpVtbl->put_name(This,pbstrName);
+}
+static FORCEINLINE HRESULT IWMPMedia2_get_imageSourceWidth(IWMPMedia2* This,LONG *pWidth) {
+    return This->lpVtbl->get_imageSourceWidth(This,pWidth);
+}
+static FORCEINLINE HRESULT IWMPMedia2_get_imageSourceHeight(IWMPMedia2* This,LONG *pHeight) {
+    return This->lpVtbl->get_imageSourceHeight(This,pHeight);
+}
+static FORCEINLINE HRESULT IWMPMedia2_get_markerCount(IWMPMedia2* This,LONG *pMarkerCount) {
+    return This->lpVtbl->get_markerCount(This,pMarkerCount);
+}
+static FORCEINLINE HRESULT IWMPMedia2_getMarkerTime(IWMPMedia2* This,LONG MarkerNum,double *pMarkerTime) {
+    return This->lpVtbl->getMarkerTime(This,MarkerNum,pMarkerTime);
+}
+static FORCEINLINE HRESULT IWMPMedia2_getMarkerName(IWMPMedia2* This,LONG MarkerNum,BSTR *pbstrMarkerName) {
+    return This->lpVtbl->getMarkerName(This,MarkerNum,pbstrMarkerName);
+}
+static FORCEINLINE HRESULT IWMPMedia2_get_duration(IWMPMedia2* This,double *pDuration) {
+    return This->lpVtbl->get_duration(This,pDuration);
+}
+static FORCEINLINE HRESULT IWMPMedia2_get_durationString(IWMPMedia2* This,BSTR *pbstrDuration) {
+    return This->lpVtbl->get_durationString(This,pbstrDuration);
+}
+static FORCEINLINE HRESULT IWMPMedia2_get_attributeCount(IWMPMedia2* This,LONG *plCount) {
+    return This->lpVtbl->get_attributeCount(This,plCount);
+}
+static FORCEINLINE HRESULT IWMPMedia2_getAttributeName(IWMPMedia2* This,LONG lIndex,BSTR *pbstrItemName) {
+    return This->lpVtbl->getAttributeName(This,lIndex,pbstrItemName);
+}
+static FORCEINLINE HRESULT IWMPMedia2_getItemInfo(IWMPMedia2* This,BSTR bstrItemName,BSTR *pbstrVal) {
+    return This->lpVtbl->getItemInfo(This,bstrItemName,pbstrVal);
+}
+static FORCEINLINE HRESULT IWMPMedia2_setItemInfo(IWMPMedia2* This,BSTR bstrItemName,BSTR bstrVal) {
+    return This->lpVtbl->setItemInfo(This,bstrItemName,bstrVal);
+}
+static FORCEINLINE HRESULT IWMPMedia2_getItemInfoByAtom(IWMPMedia2* This,LONG lAtom,BSTR *pbstrVal) {
+    return This->lpVtbl->getItemInfoByAtom(This,lAtom,pbstrVal);
+}
+static FORCEINLINE HRESULT IWMPMedia2_isMemberOf(IWMPMedia2* This,IWMPPlaylist *pPlaylist,VARIANT_BOOL *pvarfIsMemberOf) {
+    return This->lpVtbl->isMemberOf(This,pPlaylist,pvarfIsMemberOf);
+}
+static FORCEINLINE HRESULT IWMPMedia2_isReadOnlyItem(IWMPMedia2* This,BSTR bstrItemName,VARIANT_BOOL *pvarfIsReadOnly) {
+    return This->lpVtbl->isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly);
+}
+/*** IWMPMedia2 methods ***/
+static FORCEINLINE HRESULT IWMPMedia2_get_error(IWMPMedia2* This,IWMPErrorItem **out) {
+    return This->lpVtbl->get_error(This,out);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPMedia2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPMedia3 interface
+ */
+#ifndef __IWMPMedia3_INTERFACE_DEFINED__
+#define __IWMPMedia3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPMedia3, 0xf118efc7, 0xf03a, 0x4fb4, 0x99,0xc9, 0x1c,0x02,0xa5,0xc1,0x06,0x5b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("f118efc7-f03a-4fb4-99c9-1c02a5c1065b")
+IWMPMedia3 : public IWMPMedia2
+{
+    virtual HRESULT STDMETHODCALLTYPE getAttributeCountByType(
+        BSTR type,
+        BSTR language,
+        LONG *out) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getItemInfoByType(
+        BSTR type,
+        BSTR language,
+        LONG index,
+        VARIANT *out) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPMedia3, 0xf118efc7, 0xf03a, 0x4fb4, 0x99,0xc9, 0x1c,0x02,0xa5,0xc1,0x06,0x5b)
+#endif
+#else
+typedef struct IWMPMedia3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPMedia3 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPMedia3 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPMedia3 *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPMedia3 *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPMedia3 *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPMedia3 *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPMedia3 *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPMedia methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_isIdentical)(
+        IWMPMedia3 *This,
+        IWMPMedia *pIWMPMedia,
+        VARIANT_BOOL *pvbool);
+
+    HRESULT (STDMETHODCALLTYPE *get_sourceURL)(
+        IWMPMedia3 *This,
+        BSTR *pbstrSourceURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_name)(
+        IWMPMedia3 *This,
+        BSTR *pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *put_name)(
+        IWMPMedia3 *This,
+        BSTR pbstrName);
+
+    HRESULT (STDMETHODCALLTYPE *get_imageSourceWidth)(
+        IWMPMedia3 *This,
+        LONG *pWidth);
+
+    HRESULT (STDMETHODCALLTYPE *get_imageSourceHeight)(
+        IWMPMedia3 *This,
+        LONG *pHeight);
+
+    HRESULT (STDMETHODCALLTYPE *get_markerCount)(
+        IWMPMedia3 *This,
+        LONG *pMarkerCount);
+
+    HRESULT (STDMETHODCALLTYPE *getMarkerTime)(
+        IWMPMedia3 *This,
+        LONG MarkerNum,
+        double *pMarkerTime);
+
+    HRESULT (STDMETHODCALLTYPE *getMarkerName)(
+        IWMPMedia3 *This,
+        LONG MarkerNum,
+        BSTR *pbstrMarkerName);
+
+    HRESULT (STDMETHODCALLTYPE *get_duration)(
+        IWMPMedia3 *This,
+        double *pDuration);
+
+    HRESULT (STDMETHODCALLTYPE *get_durationString)(
+        IWMPMedia3 *This,
+        BSTR *pbstrDuration);
+
+    HRESULT (STDMETHODCALLTYPE *get_attributeCount)(
+        IWMPMedia3 *This,
+        LONG *plCount);
+
+    HRESULT (STDMETHODCALLTYPE *getAttributeName)(
+        IWMPMedia3 *This,
+        LONG lIndex,
+        BSTR *pbstrItemName);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfo)(
+        IWMPMedia3 *This,
+        BSTR bstrItemName,
+        BSTR *pbstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *setItemInfo)(
+        IWMPMedia3 *This,
+        BSTR bstrItemName,
+        BSTR bstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfoByAtom)(
+        IWMPMedia3 *This,
+        LONG lAtom,
+        BSTR *pbstrVal);
+
+    HRESULT (STDMETHODCALLTYPE *isMemberOf)(
+        IWMPMedia3 *This,
+        IWMPPlaylist *pPlaylist,
+        VARIANT_BOOL *pvarfIsMemberOf);
+
+    HRESULT (STDMETHODCALLTYPE *isReadOnlyItem)(
+        IWMPMedia3 *This,
+        BSTR bstrItemName,
+        VARIANT_BOOL *pvarfIsReadOnly);
+
+    /*** IWMPMedia2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_error)(
+        IWMPMedia3 *This,
+        IWMPErrorItem **out);
+
+    /*** IWMPMedia3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *getAttributeCountByType)(
+        IWMPMedia3 *This,
+        BSTR type,
+        BSTR language,
+        LONG *out);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfoByType)(
+        IWMPMedia3 *This,
+        BSTR type,
+        BSTR language,
+        LONG index,
+        VARIANT *out);
+
+    END_INTERFACE
+} IWMPMedia3Vtbl;
+
+interface IWMPMedia3 {
+    CONST_VTBL IWMPMedia3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPMedia3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPMedia3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPMedia3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPMedia3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPMedia3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPMedia3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPMedia3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPMedia methods ***/
+#define IWMPMedia3_get_isIdentical(This,pIWMPMedia,pvbool) (This)->lpVtbl->get_isIdentical(This,pIWMPMedia,pvbool)
+#define IWMPMedia3_get_sourceURL(This,pbstrSourceURL) (This)->lpVtbl->get_sourceURL(This,pbstrSourceURL)
+#define IWMPMedia3_get_name(This,pbstrName) (This)->lpVtbl->get_name(This,pbstrName)
+#define IWMPMedia3_put_name(This,pbstrName) (This)->lpVtbl->put_name(This,pbstrName)
+#define IWMPMedia3_get_imageSourceWidth(This,pWidth) (This)->lpVtbl->get_imageSourceWidth(This,pWidth)
+#define IWMPMedia3_get_imageSourceHeight(This,pHeight) (This)->lpVtbl->get_imageSourceHeight(This,pHeight)
+#define IWMPMedia3_get_markerCount(This,pMarkerCount) (This)->lpVtbl->get_markerCount(This,pMarkerCount)
+#define IWMPMedia3_getMarkerTime(This,MarkerNum,pMarkerTime) (This)->lpVtbl->getMarkerTime(This,MarkerNum,pMarkerTime)
+#define IWMPMedia3_getMarkerName(This,MarkerNum,pbstrMarkerName) (This)->lpVtbl->getMarkerName(This,MarkerNum,pbstrMarkerName)
+#define IWMPMedia3_get_duration(This,pDuration) (This)->lpVtbl->get_duration(This,pDuration)
+#define IWMPMedia3_get_durationString(This,pbstrDuration) (This)->lpVtbl->get_durationString(This,pbstrDuration)
+#define IWMPMedia3_get_attributeCount(This,plCount) (This)->lpVtbl->get_attributeCount(This,plCount)
+#define IWMPMedia3_getAttributeName(This,lIndex,pbstrItemName) (This)->lpVtbl->getAttributeName(This,lIndex,pbstrItemName)
+#define IWMPMedia3_getItemInfo(This,bstrItemName,pbstrVal) (This)->lpVtbl->getItemInfo(This,bstrItemName,pbstrVal)
+#define IWMPMedia3_setItemInfo(This,bstrItemName,bstrVal) (This)->lpVtbl->setItemInfo(This,bstrItemName,bstrVal)
+#define IWMPMedia3_getItemInfoByAtom(This,lAtom,pbstrVal) (This)->lpVtbl->getItemInfoByAtom(This,lAtom,pbstrVal)
+#define IWMPMedia3_isMemberOf(This,pPlaylist,pvarfIsMemberOf) (This)->lpVtbl->isMemberOf(This,pPlaylist,pvarfIsMemberOf)
+#define IWMPMedia3_isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly) (This)->lpVtbl->isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly)
+/*** IWMPMedia2 methods ***/
+#define IWMPMedia3_get_error(This,out) (This)->lpVtbl->get_error(This,out)
+/*** IWMPMedia3 methods ***/
+#define IWMPMedia3_getAttributeCountByType(This,type,language,out) (This)->lpVtbl->getAttributeCountByType(This,type,language,out)
+#define IWMPMedia3_getItemInfoByType(This,type,language,index,out) (This)->lpVtbl->getItemInfoByType(This,type,language,index,out)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPMedia3_QueryInterface(IWMPMedia3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPMedia3_AddRef(IWMPMedia3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPMedia3_Release(IWMPMedia3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPMedia3_GetTypeInfoCount(IWMPMedia3* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPMedia3_GetTypeInfo(IWMPMedia3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPMedia3_GetIDsOfNames(IWMPMedia3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPMedia3_Invoke(IWMPMedia3* 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);
+}
+/*** IWMPMedia methods ***/
+static FORCEINLINE HRESULT IWMPMedia3_get_isIdentical(IWMPMedia3* This,IWMPMedia *pIWMPMedia,VARIANT_BOOL *pvbool) {
+    return This->lpVtbl->get_isIdentical(This,pIWMPMedia,pvbool);
+}
+static FORCEINLINE HRESULT IWMPMedia3_get_sourceURL(IWMPMedia3* This,BSTR *pbstrSourceURL) {
+    return This->lpVtbl->get_sourceURL(This,pbstrSourceURL);
+}
+static FORCEINLINE HRESULT IWMPMedia3_get_name(IWMPMedia3* This,BSTR *pbstrName) {
+    return This->lpVtbl->get_name(This,pbstrName);
+}
+static FORCEINLINE HRESULT IWMPMedia3_put_name(IWMPMedia3* This,BSTR pbstrName) {
+    return This->lpVtbl->put_name(This,pbstrName);
+}
+static FORCEINLINE HRESULT IWMPMedia3_get_imageSourceWidth(IWMPMedia3* This,LONG *pWidth) {
+    return This->lpVtbl->get_imageSourceWidth(This,pWidth);
+}
+static FORCEINLINE HRESULT IWMPMedia3_get_imageSourceHeight(IWMPMedia3* This,LONG *pHeight) {
+    return This->lpVtbl->get_imageSourceHeight(This,pHeight);
+}
+static FORCEINLINE HRESULT IWMPMedia3_get_markerCount(IWMPMedia3* This,LONG *pMarkerCount) {
+    return This->lpVtbl->get_markerCount(This,pMarkerCount);
+}
+static FORCEINLINE HRESULT IWMPMedia3_getMarkerTime(IWMPMedia3* This,LONG MarkerNum,double *pMarkerTime) {
+    return This->lpVtbl->getMarkerTime(This,MarkerNum,pMarkerTime);
+}
+static FORCEINLINE HRESULT IWMPMedia3_getMarkerName(IWMPMedia3* This,LONG MarkerNum,BSTR *pbstrMarkerName) {
+    return This->lpVtbl->getMarkerName(This,MarkerNum,pbstrMarkerName);
+}
+static FORCEINLINE HRESULT IWMPMedia3_get_duration(IWMPMedia3* This,double *pDuration) {
+    return This->lpVtbl->get_duration(This,pDuration);
+}
+static FORCEINLINE HRESULT IWMPMedia3_get_durationString(IWMPMedia3* This,BSTR *pbstrDuration) {
+    return This->lpVtbl->get_durationString(This,pbstrDuration);
+}
+static FORCEINLINE HRESULT IWMPMedia3_get_attributeCount(IWMPMedia3* This,LONG *plCount) {
+    return This->lpVtbl->get_attributeCount(This,plCount);
+}
+static FORCEINLINE HRESULT IWMPMedia3_getAttributeName(IWMPMedia3* This,LONG lIndex,BSTR *pbstrItemName) {
+    return This->lpVtbl->getAttributeName(This,lIndex,pbstrItemName);
+}
+static FORCEINLINE HRESULT IWMPMedia3_getItemInfo(IWMPMedia3* This,BSTR bstrItemName,BSTR *pbstrVal) {
+    return This->lpVtbl->getItemInfo(This,bstrItemName,pbstrVal);
+}
+static FORCEINLINE HRESULT IWMPMedia3_setItemInfo(IWMPMedia3* This,BSTR bstrItemName,BSTR bstrVal) {
+    return This->lpVtbl->setItemInfo(This,bstrItemName,bstrVal);
+}
+static FORCEINLINE HRESULT IWMPMedia3_getItemInfoByAtom(IWMPMedia3* This,LONG lAtom,BSTR *pbstrVal) {
+    return This->lpVtbl->getItemInfoByAtom(This,lAtom,pbstrVal);
+}
+static FORCEINLINE HRESULT IWMPMedia3_isMemberOf(IWMPMedia3* This,IWMPPlaylist *pPlaylist,VARIANT_BOOL *pvarfIsMemberOf) {
+    return This->lpVtbl->isMemberOf(This,pPlaylist,pvarfIsMemberOf);
+}
+static FORCEINLINE HRESULT IWMPMedia3_isReadOnlyItem(IWMPMedia3* This,BSTR bstrItemName,VARIANT_BOOL *pvarfIsReadOnly) {
+    return This->lpVtbl->isReadOnlyItem(This,bstrItemName,pvarfIsReadOnly);
+}
+/*** IWMPMedia2 methods ***/
+static FORCEINLINE HRESULT IWMPMedia3_get_error(IWMPMedia3* This,IWMPErrorItem **out) {
+    return This->lpVtbl->get_error(This,out);
+}
+/*** IWMPMedia3 methods ***/
+static FORCEINLINE HRESULT IWMPMedia3_getAttributeCountByType(IWMPMedia3* This,BSTR type,BSTR language,LONG *out) {
+    return This->lpVtbl->getAttributeCountByType(This,type,language,out);
+}
+static FORCEINLINE HRESULT IWMPMedia3_getItemInfoByType(IWMPMedia3* This,BSTR type,BSTR language,LONG index,VARIANT *out) {
+    return This->lpVtbl->getItemInfoByType(This,type,language,index,out);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPMedia3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPError interface
+ */
+#ifndef __IWMPError_INTERFACE_DEFINED__
+#define __IWMPError_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPError, 0xa12dcf7d, 0x14ab, 0x4c1b, 0xa8,0xcd, 0x63,0x90,0x9f,0x06,0x02,0x5b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a12dcf7d-14ab-4c1b-a8cd-63909f06025b")
+IWMPError : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE clearErrorQueue(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_errorCount(
+        LONG *plNumErrors) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG dwIndex,
+        IWMPErrorItem **ppErrorItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE webHelp(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPError, 0xa12dcf7d, 0x14ab, 0x4c1b, 0xa8,0xcd, 0x63,0x90,0x9f,0x06,0x02,0x5b)
+#endif
+#else
+typedef struct IWMPErrorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPError *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPError *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPError *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPError *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPError *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPError *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPError *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPError methods ***/
+    HRESULT (STDMETHODCALLTYPE *clearErrorQueue)(
+        IWMPError *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_errorCount)(
+        IWMPError *This,
+        LONG *plNumErrors);
+
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IWMPError *This,
+        LONG dwIndex,
+        IWMPErrorItem **ppErrorItem);
+
+    HRESULT (STDMETHODCALLTYPE *webHelp)(
+        IWMPError *This);
+
+    END_INTERFACE
+} IWMPErrorVtbl;
+
+interface IWMPError {
+    CONST_VTBL IWMPErrorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPError_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPError_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPError_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPError_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPError_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPError_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPError methods ***/
+#define IWMPError_clearErrorQueue(This) (This)->lpVtbl->clearErrorQueue(This)
+#define IWMPError_get_errorCount(This,plNumErrors) (This)->lpVtbl->get_errorCount(This,plNumErrors)
+#define IWMPError_get_Item(This,dwIndex,ppErrorItem) (This)->lpVtbl->get_Item(This,dwIndex,ppErrorItem)
+#define IWMPError_webHelp(This) (This)->lpVtbl->webHelp(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPError_QueryInterface(IWMPError* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPError_AddRef(IWMPError* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPError_Release(IWMPError* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPError_GetTypeInfoCount(IWMPError* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPError_GetTypeInfo(IWMPError* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPError_GetIDsOfNames(IWMPError* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPError_Invoke(IWMPError* 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);
+}
+/*** IWMPError methods ***/
+static FORCEINLINE HRESULT IWMPError_clearErrorQueue(IWMPError* This) {
+    return This->lpVtbl->clearErrorQueue(This);
+}
+static FORCEINLINE HRESULT IWMPError_get_errorCount(IWMPError* This,LONG *plNumErrors) {
+    return This->lpVtbl->get_errorCount(This,plNumErrors);
+}
+static FORCEINLINE HRESULT IWMPError_get_Item(IWMPError* This,LONG dwIndex,IWMPErrorItem **ppErrorItem) {
+    return This->lpVtbl->get_Item(This,dwIndex,ppErrorItem);
+}
+static FORCEINLINE HRESULT IWMPError_webHelp(IWMPError* This) {
+    return This->lpVtbl->webHelp(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPError_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPPlayerApplication interface
+ */
+#ifndef __IWMPPlayerApplication_INTERFACE_DEFINED__
+#define __IWMPPlayerApplication_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPPlayerApplication, 0x40897764, 0xceab, 0x47be, 0xad,0x4a, 0x8e,0x28,0x53,0x7f,0x9b,0xbf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("40897764-ceab-47be-ad4a-8e28537f9bbf")
+IWMPPlayerApplication : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE switchToPlayerApplication(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE switchToControl(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_playerDocked(
+        VARIANT_BOOL *pbPlayerDocked) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_hasDisplay(
+        VARIANT_BOOL *pbHasDisplay) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPPlayerApplication, 0x40897764, 0xceab, 0x47be, 0xad,0x4a, 0x8e,0x28,0x53,0x7f,0x9b,0xbf)
+#endif
+#else
+typedef struct IWMPPlayerApplicationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPPlayerApplication *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPPlayerApplication *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPPlayerApplication *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPPlayerApplication *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPPlayerApplication *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPPlayerApplication *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPPlayerApplication *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPPlayerApplication methods ***/
+    HRESULT (STDMETHODCALLTYPE *switchToPlayerApplication)(
+        IWMPPlayerApplication *This);
+
+    HRESULT (STDMETHODCALLTYPE *switchToControl)(
+        IWMPPlayerApplication *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_playerDocked)(
+        IWMPPlayerApplication *This,
+        VARIANT_BOOL *pbPlayerDocked);
+
+    HRESULT (STDMETHODCALLTYPE *get_hasDisplay)(
+        IWMPPlayerApplication *This,
+        VARIANT_BOOL *pbHasDisplay);
+
+    END_INTERFACE
+} IWMPPlayerApplicationVtbl;
+
+interface IWMPPlayerApplication {
+    CONST_VTBL IWMPPlayerApplicationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPPlayerApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPPlayerApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPPlayerApplication_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPPlayerApplication_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPPlayerApplication_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPPlayerApplication_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPPlayerApplication_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPPlayerApplication methods ***/
+#define IWMPPlayerApplication_switchToPlayerApplication(This) (This)->lpVtbl->switchToPlayerApplication(This)
+#define IWMPPlayerApplication_switchToControl(This) (This)->lpVtbl->switchToControl(This)
+#define IWMPPlayerApplication_get_playerDocked(This,pbPlayerDocked) (This)->lpVtbl->get_playerDocked(This,pbPlayerDocked)
+#define IWMPPlayerApplication_get_hasDisplay(This,pbHasDisplay) (This)->lpVtbl->get_hasDisplay(This,pbHasDisplay)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPPlayerApplication_QueryInterface(IWMPPlayerApplication* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPPlayerApplication_AddRef(IWMPPlayerApplication* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPPlayerApplication_Release(IWMPPlayerApplication* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPPlayerApplication_GetTypeInfoCount(IWMPPlayerApplication* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPPlayerApplication_GetTypeInfo(IWMPPlayerApplication* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPPlayerApplication_GetIDsOfNames(IWMPPlayerApplication* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPPlayerApplication_Invoke(IWMPPlayerApplication* 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);
+}
+/*** IWMPPlayerApplication methods ***/
+static FORCEINLINE HRESULT IWMPPlayerApplication_switchToPlayerApplication(IWMPPlayerApplication* This) {
+    return This->lpVtbl->switchToPlayerApplication(This);
+}
+static FORCEINLINE HRESULT IWMPPlayerApplication_switchToControl(IWMPPlayerApplication* This) {
+    return This->lpVtbl->switchToControl(This);
+}
+static FORCEINLINE HRESULT IWMPPlayerApplication_get_playerDocked(IWMPPlayerApplication* This,VARIANT_BOOL *pbPlayerDocked) {
+    return This->lpVtbl->get_playerDocked(This,pbPlayerDocked);
+}
+static FORCEINLINE HRESULT IWMPPlayerApplication_get_hasDisplay(IWMPPlayerApplication* This,VARIANT_BOOL *pbHasDisplay) {
+    return This->lpVtbl->get_hasDisplay(This,pbHasDisplay);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPPlayerApplication_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPCore interface
+ */
+#ifndef __IWMPCore_INTERFACE_DEFINED__
+#define __IWMPCore_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPCore, 0xd84cca99, 0xcce2, 0x11d2, 0x9e,0xcc, 0x00,0x00,0xf8,0x08,0x59,0x81);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d84cca99-cce2-11d2-9ecc-0000f8085981")
+IWMPCore : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE close(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_URL(
+        BSTR *pbstrURL) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_URL(
+        BSTR pbstrURL) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_openState(
+        WMPOpenState *pwmpos) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_playState(
+        WMPPlayState *pwmpps) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_controls(
+        IWMPControls **ppControl) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_settings(
+        IWMPSettings **ppSettings) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_currentMedia(
+        IWMPMedia **ppMedia) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_currentMedia(
+        IWMPMedia *ppMedia) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_mediaCollection(
+        IWMPMediaCollection **ppMediaCollection) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_playlistCollection(
+        IWMPPlaylistCollection **ppPlaylistCollection) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_versionInfo(
+        BSTR *pbstrVersionInfo) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE launchURL(
+        BSTR bstrURL) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_network(
+        IWMPNetwork **ppQNI) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_currentPlaylist(
+        IWMPPlaylist **ppPL) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_currentPlaylist(
+        IWMPPlaylist *ppPL) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_cdromCollection(
+        IWMPCdromCollection **ppCdromCollection) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_closedCaption(
+        IWMPClosedCaption **ppClosedCaption) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_isOnline(
+        VARIANT_BOOL *pfOnline) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Error(
+        IWMPError **ppError) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_status(
+        BSTR *pbstrStatus) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPCore, 0xd84cca99, 0xcce2, 0x11d2, 0x9e,0xcc, 0x00,0x00,0xf8,0x08,0x59,0x81)
+#endif
+#else
+typedef struct IWMPCoreVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPCore *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPCore *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPCore *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPCore *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPCore *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPCore *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPCore *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPCore methods ***/
+    HRESULT (STDMETHODCALLTYPE *close)(
+        IWMPCore *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_URL)(
+        IWMPCore *This,
+        BSTR *pbstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *put_URL)(
+        IWMPCore *This,
+        BSTR pbstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_openState)(
+        IWMPCore *This,
+        WMPOpenState *pwmpos);
+
+    HRESULT (STDMETHODCALLTYPE *get_playState)(
+        IWMPCore *This,
+        WMPPlayState *pwmpps);
+
+    HRESULT (STDMETHODCALLTYPE *get_controls)(
+        IWMPCore *This,
+        IWMPControls **ppControl);
+
+    HRESULT (STDMETHODCALLTYPE *get_settings)(
+        IWMPCore *This,
+        IWMPSettings **ppSettings);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentMedia)(
+        IWMPCore *This,
+        IWMPMedia **ppMedia);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentMedia)(
+        IWMPCore *This,
+        IWMPMedia *ppMedia);
+
+    HRESULT (STDMETHODCALLTYPE *get_mediaCollection)(
+        IWMPCore *This,
+        IWMPMediaCollection **ppMediaCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_playlistCollection)(
+        IWMPCore *This,
+        IWMPPlaylistCollection **ppPlaylistCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_versionInfo)(
+        IWMPCore *This,
+        BSTR *pbstrVersionInfo);
+
+    HRESULT (STDMETHODCALLTYPE *launchURL)(
+        IWMPCore *This,
+        BSTR bstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_network)(
+        IWMPCore *This,
+        IWMPNetwork **ppQNI);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentPlaylist)(
+        IWMPCore *This,
+        IWMPPlaylist **ppPL);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentPlaylist)(
+        IWMPCore *This,
+        IWMPPlaylist *ppPL);
+
+    HRESULT (STDMETHODCALLTYPE *get_cdromCollection)(
+        IWMPCore *This,
+        IWMPCdromCollection **ppCdromCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_closedCaption)(
+        IWMPCore *This,
+        IWMPClosedCaption **ppClosedCaption);
+
+    HRESULT (STDMETHODCALLTYPE *get_isOnline)(
+        IWMPCore *This,
+        VARIANT_BOOL *pfOnline);
+
+    HRESULT (STDMETHODCALLTYPE *get_Error)(
+        IWMPCore *This,
+        IWMPError **ppError);
+
+    HRESULT (STDMETHODCALLTYPE *get_status)(
+        IWMPCore *This,
+        BSTR *pbstrStatus);
+
+    END_INTERFACE
+} IWMPCoreVtbl;
+
+interface IWMPCore {
+    CONST_VTBL IWMPCoreVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPCore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPCore_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPCore_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPCore_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPCore_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPCore_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPCore_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPCore methods ***/
+#define IWMPCore_close(This) (This)->lpVtbl->close(This)
+#define IWMPCore_get_URL(This,pbstrURL) (This)->lpVtbl->get_URL(This,pbstrURL)
+#define IWMPCore_put_URL(This,pbstrURL) (This)->lpVtbl->put_URL(This,pbstrURL)
+#define IWMPCore_get_openState(This,pwmpos) (This)->lpVtbl->get_openState(This,pwmpos)
+#define IWMPCore_get_playState(This,pwmpps) (This)->lpVtbl->get_playState(This,pwmpps)
+#define IWMPCore_get_controls(This,ppControl) (This)->lpVtbl->get_controls(This,ppControl)
+#define IWMPCore_get_settings(This,ppSettings) (This)->lpVtbl->get_settings(This,ppSettings)
+#define IWMPCore_get_currentMedia(This,ppMedia) (This)->lpVtbl->get_currentMedia(This,ppMedia)
+#define IWMPCore_put_currentMedia(This,ppMedia) (This)->lpVtbl->put_currentMedia(This,ppMedia)
+#define IWMPCore_get_mediaCollection(This,ppMediaCollection) (This)->lpVtbl->get_mediaCollection(This,ppMediaCollection)
+#define IWMPCore_get_playlistCollection(This,ppPlaylistCollection) (This)->lpVtbl->get_playlistCollection(This,ppPlaylistCollection)
+#define IWMPCore_get_versionInfo(This,pbstrVersionInfo) (This)->lpVtbl->get_versionInfo(This,pbstrVersionInfo)
+#define IWMPCore_launchURL(This,bstrURL) (This)->lpVtbl->launchURL(This,bstrURL)
+#define IWMPCore_get_network(This,ppQNI) (This)->lpVtbl->get_network(This,ppQNI)
+#define IWMPCore_get_currentPlaylist(This,ppPL) (This)->lpVtbl->get_currentPlaylist(This,ppPL)
+#define IWMPCore_put_currentPlaylist(This,ppPL) (This)->lpVtbl->put_currentPlaylist(This,ppPL)
+#define IWMPCore_get_cdromCollection(This,ppCdromCollection) (This)->lpVtbl->get_cdromCollection(This,ppCdromCollection)
+#define IWMPCore_get_closedCaption(This,ppClosedCaption) (This)->lpVtbl->get_closedCaption(This,ppClosedCaption)
+#define IWMPCore_get_isOnline(This,pfOnline) (This)->lpVtbl->get_isOnline(This,pfOnline)
+#define IWMPCore_get_Error(This,ppError) (This)->lpVtbl->get_Error(This,ppError)
+#define IWMPCore_get_status(This,pbstrStatus) (This)->lpVtbl->get_status(This,pbstrStatus)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPCore_QueryInterface(IWMPCore* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPCore_AddRef(IWMPCore* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPCore_Release(IWMPCore* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPCore_GetTypeInfoCount(IWMPCore* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPCore_GetTypeInfo(IWMPCore* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPCore_GetIDsOfNames(IWMPCore* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPCore_Invoke(IWMPCore* 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);
+}
+/*** IWMPCore methods ***/
+static FORCEINLINE HRESULT IWMPCore_close(IWMPCore* This) {
+    return This->lpVtbl->close(This);
+}
+static FORCEINLINE HRESULT IWMPCore_get_URL(IWMPCore* This,BSTR *pbstrURL) {
+    return This->lpVtbl->get_URL(This,pbstrURL);
+}
+static FORCEINLINE HRESULT IWMPCore_put_URL(IWMPCore* This,BSTR pbstrURL) {
+    return This->lpVtbl->put_URL(This,pbstrURL);
+}
+static FORCEINLINE HRESULT IWMPCore_get_openState(IWMPCore* This,WMPOpenState *pwmpos) {
+    return This->lpVtbl->get_openState(This,pwmpos);
+}
+static FORCEINLINE HRESULT IWMPCore_get_playState(IWMPCore* This,WMPPlayState *pwmpps) {
+    return This->lpVtbl->get_playState(This,pwmpps);
+}
+static FORCEINLINE HRESULT IWMPCore_get_controls(IWMPCore* This,IWMPControls **ppControl) {
+    return This->lpVtbl->get_controls(This,ppControl);
+}
+static FORCEINLINE HRESULT IWMPCore_get_settings(IWMPCore* This,IWMPSettings **ppSettings) {
+    return This->lpVtbl->get_settings(This,ppSettings);
+}
+static FORCEINLINE HRESULT IWMPCore_get_currentMedia(IWMPCore* This,IWMPMedia **ppMedia) {
+    return This->lpVtbl->get_currentMedia(This,ppMedia);
+}
+static FORCEINLINE HRESULT IWMPCore_put_currentMedia(IWMPCore* This,IWMPMedia *ppMedia) {
+    return This->lpVtbl->put_currentMedia(This,ppMedia);
+}
+static FORCEINLINE HRESULT IWMPCore_get_mediaCollection(IWMPCore* This,IWMPMediaCollection **ppMediaCollection) {
+    return This->lpVtbl->get_mediaCollection(This,ppMediaCollection);
+}
+static FORCEINLINE HRESULT IWMPCore_get_playlistCollection(IWMPCore* This,IWMPPlaylistCollection **ppPlaylistCollection) {
+    return This->lpVtbl->get_playlistCollection(This,ppPlaylistCollection);
+}
+static FORCEINLINE HRESULT IWMPCore_get_versionInfo(IWMPCore* This,BSTR *pbstrVersionInfo) {
+    return This->lpVtbl->get_versionInfo(This,pbstrVersionInfo);
+}
+static FORCEINLINE HRESULT IWMPCore_launchURL(IWMPCore* This,BSTR bstrURL) {
+    return This->lpVtbl->launchURL(This,bstrURL);
+}
+static FORCEINLINE HRESULT IWMPCore_get_network(IWMPCore* This,IWMPNetwork **ppQNI) {
+    return This->lpVtbl->get_network(This,ppQNI);
+}
+static FORCEINLINE HRESULT IWMPCore_get_currentPlaylist(IWMPCore* This,IWMPPlaylist **ppPL) {
+    return This->lpVtbl->get_currentPlaylist(This,ppPL);
+}
+static FORCEINLINE HRESULT IWMPCore_put_currentPlaylist(IWMPCore* This,IWMPPlaylist *ppPL) {
+    return This->lpVtbl->put_currentPlaylist(This,ppPL);
+}
+static FORCEINLINE HRESULT IWMPCore_get_cdromCollection(IWMPCore* This,IWMPCdromCollection **ppCdromCollection) {
+    return This->lpVtbl->get_cdromCollection(This,ppCdromCollection);
+}
+static FORCEINLINE HRESULT IWMPCore_get_closedCaption(IWMPCore* This,IWMPClosedCaption **ppClosedCaption) {
+    return This->lpVtbl->get_closedCaption(This,ppClosedCaption);
+}
+static FORCEINLINE HRESULT IWMPCore_get_isOnline(IWMPCore* This,VARIANT_BOOL *pfOnline) {
+    return This->lpVtbl->get_isOnline(This,pfOnline);
+}
+static FORCEINLINE HRESULT IWMPCore_get_Error(IWMPCore* This,IWMPError **ppError) {
+    return This->lpVtbl->get_Error(This,ppError);
+}
+static FORCEINLINE HRESULT IWMPCore_get_status(IWMPCore* This,BSTR *pbstrStatus) {
+    return This->lpVtbl->get_status(This,pbstrStatus);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPCore_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPCore2 interface
+ */
+#ifndef __IWMPCore2_INTERFACE_DEFINED__
+#define __IWMPCore2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPCore2, 0xbc17e5b7, 0x7561, 0x4c18, 0xbb,0x90, 0x17,0xd4,0x85,0x77,0x56,0x59);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bc17e5b7-7561-4c18-bb90-17d485775659")
+IWMPCore2 : public IWMPCore
+{
+    virtual HRESULT STDMETHODCALLTYPE get_dvd(
+        IWMPDVD **ppDVD) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPCore2, 0xbc17e5b7, 0x7561, 0x4c18, 0xbb,0x90, 0x17,0xd4,0x85,0x77,0x56,0x59)
+#endif
+#else
+typedef struct IWMPCore2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPCore2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPCore2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPCore2 *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPCore2 *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPCore2 *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPCore2 *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPCore2 *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPCore methods ***/
+    HRESULT (STDMETHODCALLTYPE *close)(
+        IWMPCore2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_URL)(
+        IWMPCore2 *This,
+        BSTR *pbstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *put_URL)(
+        IWMPCore2 *This,
+        BSTR pbstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_openState)(
+        IWMPCore2 *This,
+        WMPOpenState *pwmpos);
+
+    HRESULT (STDMETHODCALLTYPE *get_playState)(
+        IWMPCore2 *This,
+        WMPPlayState *pwmpps);
+
+    HRESULT (STDMETHODCALLTYPE *get_controls)(
+        IWMPCore2 *This,
+        IWMPControls **ppControl);
+
+    HRESULT (STDMETHODCALLTYPE *get_settings)(
+        IWMPCore2 *This,
+        IWMPSettings **ppSettings);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentMedia)(
+        IWMPCore2 *This,
+        IWMPMedia **ppMedia);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentMedia)(
+        IWMPCore2 *This,
+        IWMPMedia *ppMedia);
+
+    HRESULT (STDMETHODCALLTYPE *get_mediaCollection)(
+        IWMPCore2 *This,
+        IWMPMediaCollection **ppMediaCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_playlistCollection)(
+        IWMPCore2 *This,
+        IWMPPlaylistCollection **ppPlaylistCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_versionInfo)(
+        IWMPCore2 *This,
+        BSTR *pbstrVersionInfo);
+
+    HRESULT (STDMETHODCALLTYPE *launchURL)(
+        IWMPCore2 *This,
+        BSTR bstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_network)(
+        IWMPCore2 *This,
+        IWMPNetwork **ppQNI);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentPlaylist)(
+        IWMPCore2 *This,
+        IWMPPlaylist **ppPL);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentPlaylist)(
+        IWMPCore2 *This,
+        IWMPPlaylist *ppPL);
+
+    HRESULT (STDMETHODCALLTYPE *get_cdromCollection)(
+        IWMPCore2 *This,
+        IWMPCdromCollection **ppCdromCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_closedCaption)(
+        IWMPCore2 *This,
+        IWMPClosedCaption **ppClosedCaption);
+
+    HRESULT (STDMETHODCALLTYPE *get_isOnline)(
+        IWMPCore2 *This,
+        VARIANT_BOOL *pfOnline);
+
+    HRESULT (STDMETHODCALLTYPE *get_Error)(
+        IWMPCore2 *This,
+        IWMPError **ppError);
+
+    HRESULT (STDMETHODCALLTYPE *get_status)(
+        IWMPCore2 *This,
+        BSTR *pbstrStatus);
+
+    /*** IWMPCore2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_dvd)(
+        IWMPCore2 *This,
+        IWMPDVD **ppDVD);
+
+    END_INTERFACE
+} IWMPCore2Vtbl;
+
+interface IWMPCore2 {
+    CONST_VTBL IWMPCore2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPCore2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPCore2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPCore2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPCore2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPCore2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPCore2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPCore2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPCore methods ***/
+#define IWMPCore2_close(This) (This)->lpVtbl->close(This)
+#define IWMPCore2_get_URL(This,pbstrURL) (This)->lpVtbl->get_URL(This,pbstrURL)
+#define IWMPCore2_put_URL(This,pbstrURL) (This)->lpVtbl->put_URL(This,pbstrURL)
+#define IWMPCore2_get_openState(This,pwmpos) (This)->lpVtbl->get_openState(This,pwmpos)
+#define IWMPCore2_get_playState(This,pwmpps) (This)->lpVtbl->get_playState(This,pwmpps)
+#define IWMPCore2_get_controls(This,ppControl) (This)->lpVtbl->get_controls(This,ppControl)
+#define IWMPCore2_get_settings(This,ppSettings) (This)->lpVtbl->get_settings(This,ppSettings)
+#define IWMPCore2_get_currentMedia(This,ppMedia) (This)->lpVtbl->get_currentMedia(This,ppMedia)
+#define IWMPCore2_put_currentMedia(This,ppMedia) (This)->lpVtbl->put_currentMedia(This,ppMedia)
+#define IWMPCore2_get_mediaCollection(This,ppMediaCollection) (This)->lpVtbl->get_mediaCollection(This,ppMediaCollection)
+#define IWMPCore2_get_playlistCollection(This,ppPlaylistCollection) (This)->lpVtbl->get_playlistCollection(This,ppPlaylistCollection)
+#define IWMPCore2_get_versionInfo(This,pbstrVersionInfo) (This)->lpVtbl->get_versionInfo(This,pbstrVersionInfo)
+#define IWMPCore2_launchURL(This,bstrURL) (This)->lpVtbl->launchURL(This,bstrURL)
+#define IWMPCore2_get_network(This,ppQNI) (This)->lpVtbl->get_network(This,ppQNI)
+#define IWMPCore2_get_currentPlaylist(This,ppPL) (This)->lpVtbl->get_currentPlaylist(This,ppPL)
+#define IWMPCore2_put_currentPlaylist(This,ppPL) (This)->lpVtbl->put_currentPlaylist(This,ppPL)
+#define IWMPCore2_get_cdromCollection(This,ppCdromCollection) (This)->lpVtbl->get_cdromCollection(This,ppCdromCollection)
+#define IWMPCore2_get_closedCaption(This,ppClosedCaption) (This)->lpVtbl->get_closedCaption(This,ppClosedCaption)
+#define IWMPCore2_get_isOnline(This,pfOnline) (This)->lpVtbl->get_isOnline(This,pfOnline)
+#define IWMPCore2_get_Error(This,ppError) (This)->lpVtbl->get_Error(This,ppError)
+#define IWMPCore2_get_status(This,pbstrStatus) (This)->lpVtbl->get_status(This,pbstrStatus)
+/*** IWMPCore2 methods ***/
+#define IWMPCore2_get_dvd(This,ppDVD) (This)->lpVtbl->get_dvd(This,ppDVD)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPCore2_QueryInterface(IWMPCore2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPCore2_AddRef(IWMPCore2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPCore2_Release(IWMPCore2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPCore2_GetTypeInfoCount(IWMPCore2* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPCore2_GetTypeInfo(IWMPCore2* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPCore2_GetIDsOfNames(IWMPCore2* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPCore2_Invoke(IWMPCore2* 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);
+}
+/*** IWMPCore methods ***/
+static FORCEINLINE HRESULT IWMPCore2_close(IWMPCore2* This) {
+    return This->lpVtbl->close(This);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_URL(IWMPCore2* This,BSTR *pbstrURL) {
+    return This->lpVtbl->get_URL(This,pbstrURL);
+}
+static FORCEINLINE HRESULT IWMPCore2_put_URL(IWMPCore2* This,BSTR pbstrURL) {
+    return This->lpVtbl->put_URL(This,pbstrURL);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_openState(IWMPCore2* This,WMPOpenState *pwmpos) {
+    return This->lpVtbl->get_openState(This,pwmpos);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_playState(IWMPCore2* This,WMPPlayState *pwmpps) {
+    return This->lpVtbl->get_playState(This,pwmpps);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_controls(IWMPCore2* This,IWMPControls **ppControl) {
+    return This->lpVtbl->get_controls(This,ppControl);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_settings(IWMPCore2* This,IWMPSettings **ppSettings) {
+    return This->lpVtbl->get_settings(This,ppSettings);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_currentMedia(IWMPCore2* This,IWMPMedia **ppMedia) {
+    return This->lpVtbl->get_currentMedia(This,ppMedia);
+}
+static FORCEINLINE HRESULT IWMPCore2_put_currentMedia(IWMPCore2* This,IWMPMedia *ppMedia) {
+    return This->lpVtbl->put_currentMedia(This,ppMedia);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_mediaCollection(IWMPCore2* This,IWMPMediaCollection **ppMediaCollection) {
+    return This->lpVtbl->get_mediaCollection(This,ppMediaCollection);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_playlistCollection(IWMPCore2* This,IWMPPlaylistCollection **ppPlaylistCollection) {
+    return This->lpVtbl->get_playlistCollection(This,ppPlaylistCollection);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_versionInfo(IWMPCore2* This,BSTR *pbstrVersionInfo) {
+    return This->lpVtbl->get_versionInfo(This,pbstrVersionInfo);
+}
+static FORCEINLINE HRESULT IWMPCore2_launchURL(IWMPCore2* This,BSTR bstrURL) {
+    return This->lpVtbl->launchURL(This,bstrURL);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_network(IWMPCore2* This,IWMPNetwork **ppQNI) {
+    return This->lpVtbl->get_network(This,ppQNI);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_currentPlaylist(IWMPCore2* This,IWMPPlaylist **ppPL) {
+    return This->lpVtbl->get_currentPlaylist(This,ppPL);
+}
+static FORCEINLINE HRESULT IWMPCore2_put_currentPlaylist(IWMPCore2* This,IWMPPlaylist *ppPL) {
+    return This->lpVtbl->put_currentPlaylist(This,ppPL);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_cdromCollection(IWMPCore2* This,IWMPCdromCollection **ppCdromCollection) {
+    return This->lpVtbl->get_cdromCollection(This,ppCdromCollection);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_closedCaption(IWMPCore2* This,IWMPClosedCaption **ppClosedCaption) {
+    return This->lpVtbl->get_closedCaption(This,ppClosedCaption);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_isOnline(IWMPCore2* This,VARIANT_BOOL *pfOnline) {
+    return This->lpVtbl->get_isOnline(This,pfOnline);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_Error(IWMPCore2* This,IWMPError **ppError) {
+    return This->lpVtbl->get_Error(This,ppError);
+}
+static FORCEINLINE HRESULT IWMPCore2_get_status(IWMPCore2* This,BSTR *pbstrStatus) {
+    return This->lpVtbl->get_status(This,pbstrStatus);
+}
+/*** IWMPCore2 methods ***/
+static FORCEINLINE HRESULT IWMPCore2_get_dvd(IWMPCore2* This,IWMPDVD **ppDVD) {
+    return This->lpVtbl->get_dvd(This,ppDVD);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPCore2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPCore3 interface
+ */
+#ifndef __IWMPCore3_INTERFACE_DEFINED__
+#define __IWMPCore3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPCore3, 0x7587c667, 0x628f, 0x499f, 0x88,0xe7, 0x6a,0x6f,0x4e,0x88,0x84,0x64);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7587c667-628f-499f-88e7-6a6f4e888464")
+IWMPCore3 : public IWMPCore2
+{
+    virtual HRESULT STDMETHODCALLTYPE newPlaylist(
+        BSTR bstrName,
+        BSTR bstrURL,
+        IWMPPlaylist **ppPlaylist) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE newMedia(
+        BSTR bstrURL,
+        IWMPMedia **ppMedia) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPCore3, 0x7587c667, 0x628f, 0x499f, 0x88,0xe7, 0x6a,0x6f,0x4e,0x88,0x84,0x64)
+#endif
+#else
+typedef struct IWMPCore3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPCore3 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPCore3 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPCore3 *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPCore3 *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPCore3 *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPCore3 *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPCore3 *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPCore methods ***/
+    HRESULT (STDMETHODCALLTYPE *close)(
+        IWMPCore3 *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_URL)(
+        IWMPCore3 *This,
+        BSTR *pbstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *put_URL)(
+        IWMPCore3 *This,
+        BSTR pbstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_openState)(
+        IWMPCore3 *This,
+        WMPOpenState *pwmpos);
+
+    HRESULT (STDMETHODCALLTYPE *get_playState)(
+        IWMPCore3 *This,
+        WMPPlayState *pwmpps);
+
+    HRESULT (STDMETHODCALLTYPE *get_controls)(
+        IWMPCore3 *This,
+        IWMPControls **ppControl);
+
+    HRESULT (STDMETHODCALLTYPE *get_settings)(
+        IWMPCore3 *This,
+        IWMPSettings **ppSettings);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentMedia)(
+        IWMPCore3 *This,
+        IWMPMedia **ppMedia);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentMedia)(
+        IWMPCore3 *This,
+        IWMPMedia *ppMedia);
+
+    HRESULT (STDMETHODCALLTYPE *get_mediaCollection)(
+        IWMPCore3 *This,
+        IWMPMediaCollection **ppMediaCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_playlistCollection)(
+        IWMPCore3 *This,
+        IWMPPlaylistCollection **ppPlaylistCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_versionInfo)(
+        IWMPCore3 *This,
+        BSTR *pbstrVersionInfo);
+
+    HRESULT (STDMETHODCALLTYPE *launchURL)(
+        IWMPCore3 *This,
+        BSTR bstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_network)(
+        IWMPCore3 *This,
+        IWMPNetwork **ppQNI);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentPlaylist)(
+        IWMPCore3 *This,
+        IWMPPlaylist **ppPL);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentPlaylist)(
+        IWMPCore3 *This,
+        IWMPPlaylist *ppPL);
+
+    HRESULT (STDMETHODCALLTYPE *get_cdromCollection)(
+        IWMPCore3 *This,
+        IWMPCdromCollection **ppCdromCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_closedCaption)(
+        IWMPCore3 *This,
+        IWMPClosedCaption **ppClosedCaption);
+
+    HRESULT (STDMETHODCALLTYPE *get_isOnline)(
+        IWMPCore3 *This,
+        VARIANT_BOOL *pfOnline);
+
+    HRESULT (STDMETHODCALLTYPE *get_Error)(
+        IWMPCore3 *This,
+        IWMPError **ppError);
+
+    HRESULT (STDMETHODCALLTYPE *get_status)(
+        IWMPCore3 *This,
+        BSTR *pbstrStatus);
+
+    /*** IWMPCore2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_dvd)(
+        IWMPCore3 *This,
+        IWMPDVD **ppDVD);
+
+    /*** IWMPCore3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *newPlaylist)(
+        IWMPCore3 *This,
+        BSTR bstrName,
+        BSTR bstrURL,
+        IWMPPlaylist **ppPlaylist);
+
+    HRESULT (STDMETHODCALLTYPE *newMedia)(
+        IWMPCore3 *This,
+        BSTR bstrURL,
+        IWMPMedia **ppMedia);
+
+    END_INTERFACE
+} IWMPCore3Vtbl;
+
+interface IWMPCore3 {
+    CONST_VTBL IWMPCore3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPCore3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPCore3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPCore3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPCore3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPCore3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPCore3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPCore3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPCore methods ***/
+#define IWMPCore3_close(This) (This)->lpVtbl->close(This)
+#define IWMPCore3_get_URL(This,pbstrURL) (This)->lpVtbl->get_URL(This,pbstrURL)
+#define IWMPCore3_put_URL(This,pbstrURL) (This)->lpVtbl->put_URL(This,pbstrURL)
+#define IWMPCore3_get_openState(This,pwmpos) (This)->lpVtbl->get_openState(This,pwmpos)
+#define IWMPCore3_get_playState(This,pwmpps) (This)->lpVtbl->get_playState(This,pwmpps)
+#define IWMPCore3_get_controls(This,ppControl) (This)->lpVtbl->get_controls(This,ppControl)
+#define IWMPCore3_get_settings(This,ppSettings) (This)->lpVtbl->get_settings(This,ppSettings)
+#define IWMPCore3_get_currentMedia(This,ppMedia) (This)->lpVtbl->get_currentMedia(This,ppMedia)
+#define IWMPCore3_put_currentMedia(This,ppMedia) (This)->lpVtbl->put_currentMedia(This,ppMedia)
+#define IWMPCore3_get_mediaCollection(This,ppMediaCollection) (This)->lpVtbl->get_mediaCollection(This,ppMediaCollection)
+#define IWMPCore3_get_playlistCollection(This,ppPlaylistCollection) (This)->lpVtbl->get_playlistCollection(This,ppPlaylistCollection)
+#define IWMPCore3_get_versionInfo(This,pbstrVersionInfo) (This)->lpVtbl->get_versionInfo(This,pbstrVersionInfo)
+#define IWMPCore3_launchURL(This,bstrURL) (This)->lpVtbl->launchURL(This,bstrURL)
+#define IWMPCore3_get_network(This,ppQNI) (This)->lpVtbl->get_network(This,ppQNI)
+#define IWMPCore3_get_currentPlaylist(This,ppPL) (This)->lpVtbl->get_currentPlaylist(This,ppPL)
+#define IWMPCore3_put_currentPlaylist(This,ppPL) (This)->lpVtbl->put_currentPlaylist(This,ppPL)
+#define IWMPCore3_get_cdromCollection(This,ppCdromCollection) (This)->lpVtbl->get_cdromCollection(This,ppCdromCollection)
+#define IWMPCore3_get_closedCaption(This,ppClosedCaption) (This)->lpVtbl->get_closedCaption(This,ppClosedCaption)
+#define IWMPCore3_get_isOnline(This,pfOnline) (This)->lpVtbl->get_isOnline(This,pfOnline)
+#define IWMPCore3_get_Error(This,ppError) (This)->lpVtbl->get_Error(This,ppError)
+#define IWMPCore3_get_status(This,pbstrStatus) (This)->lpVtbl->get_status(This,pbstrStatus)
+/*** IWMPCore2 methods ***/
+#define IWMPCore3_get_dvd(This,ppDVD) (This)->lpVtbl->get_dvd(This,ppDVD)
+/*** IWMPCore3 methods ***/
+#define IWMPCore3_newPlaylist(This,bstrName,bstrURL,ppPlaylist) (This)->lpVtbl->newPlaylist(This,bstrName,bstrURL,ppPlaylist)
+#define IWMPCore3_newMedia(This,bstrURL,ppMedia) (This)->lpVtbl->newMedia(This,bstrURL,ppMedia)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPCore3_QueryInterface(IWMPCore3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPCore3_AddRef(IWMPCore3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPCore3_Release(IWMPCore3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPCore3_GetTypeInfoCount(IWMPCore3* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPCore3_GetTypeInfo(IWMPCore3* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPCore3_GetIDsOfNames(IWMPCore3* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPCore3_Invoke(IWMPCore3* 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);
+}
+/*** IWMPCore methods ***/
+static FORCEINLINE HRESULT IWMPCore3_close(IWMPCore3* This) {
+    return This->lpVtbl->close(This);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_URL(IWMPCore3* This,BSTR *pbstrURL) {
+    return This->lpVtbl->get_URL(This,pbstrURL);
+}
+static FORCEINLINE HRESULT IWMPCore3_put_URL(IWMPCore3* This,BSTR pbstrURL) {
+    return This->lpVtbl->put_URL(This,pbstrURL);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_openState(IWMPCore3* This,WMPOpenState *pwmpos) {
+    return This->lpVtbl->get_openState(This,pwmpos);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_playState(IWMPCore3* This,WMPPlayState *pwmpps) {
+    return This->lpVtbl->get_playState(This,pwmpps);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_controls(IWMPCore3* This,IWMPControls **ppControl) {
+    return This->lpVtbl->get_controls(This,ppControl);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_settings(IWMPCore3* This,IWMPSettings **ppSettings) {
+    return This->lpVtbl->get_settings(This,ppSettings);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_currentMedia(IWMPCore3* This,IWMPMedia **ppMedia) {
+    return This->lpVtbl->get_currentMedia(This,ppMedia);
+}
+static FORCEINLINE HRESULT IWMPCore3_put_currentMedia(IWMPCore3* This,IWMPMedia *ppMedia) {
+    return This->lpVtbl->put_currentMedia(This,ppMedia);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_mediaCollection(IWMPCore3* This,IWMPMediaCollection **ppMediaCollection) {
+    return This->lpVtbl->get_mediaCollection(This,ppMediaCollection);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_playlistCollection(IWMPCore3* This,IWMPPlaylistCollection **ppPlaylistCollection) {
+    return This->lpVtbl->get_playlistCollection(This,ppPlaylistCollection);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_versionInfo(IWMPCore3* This,BSTR *pbstrVersionInfo) {
+    return This->lpVtbl->get_versionInfo(This,pbstrVersionInfo);
+}
+static FORCEINLINE HRESULT IWMPCore3_launchURL(IWMPCore3* This,BSTR bstrURL) {
+    return This->lpVtbl->launchURL(This,bstrURL);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_network(IWMPCore3* This,IWMPNetwork **ppQNI) {
+    return This->lpVtbl->get_network(This,ppQNI);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_currentPlaylist(IWMPCore3* This,IWMPPlaylist **ppPL) {
+    return This->lpVtbl->get_currentPlaylist(This,ppPL);
+}
+static FORCEINLINE HRESULT IWMPCore3_put_currentPlaylist(IWMPCore3* This,IWMPPlaylist *ppPL) {
+    return This->lpVtbl->put_currentPlaylist(This,ppPL);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_cdromCollection(IWMPCore3* This,IWMPCdromCollection **ppCdromCollection) {
+    return This->lpVtbl->get_cdromCollection(This,ppCdromCollection);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_closedCaption(IWMPCore3* This,IWMPClosedCaption **ppClosedCaption) {
+    return This->lpVtbl->get_closedCaption(This,ppClosedCaption);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_isOnline(IWMPCore3* This,VARIANT_BOOL *pfOnline) {
+    return This->lpVtbl->get_isOnline(This,pfOnline);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_Error(IWMPCore3* This,IWMPError **ppError) {
+    return This->lpVtbl->get_Error(This,ppError);
+}
+static FORCEINLINE HRESULT IWMPCore3_get_status(IWMPCore3* This,BSTR *pbstrStatus) {
+    return This->lpVtbl->get_status(This,pbstrStatus);
+}
+/*** IWMPCore2 methods ***/
+static FORCEINLINE HRESULT IWMPCore3_get_dvd(IWMPCore3* This,IWMPDVD **ppDVD) {
+    return This->lpVtbl->get_dvd(This,ppDVD);
+}
+/*** IWMPCore3 methods ***/
+static FORCEINLINE HRESULT IWMPCore3_newPlaylist(IWMPCore3* This,BSTR bstrName,BSTR bstrURL,IWMPPlaylist **ppPlaylist) {
+    return This->lpVtbl->newPlaylist(This,bstrName,bstrURL,ppPlaylist);
+}
+static FORCEINLINE HRESULT IWMPCore3_newMedia(IWMPCore3* This,BSTR bstrURL,IWMPMedia **ppMedia) {
+    return This->lpVtbl->newMedia(This,bstrURL,ppMedia);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPCore3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPPlayer4 interface
+ */
+#ifndef __IWMPPlayer4_INTERFACE_DEFINED__
+#define __IWMPPlayer4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPPlayer4, 0x6c497d62, 0x8919, 0x413c, 0x82,0xdb, 0xe9,0x35,0xfb,0x3e,0xc5,0x84);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6c497d62-8919-413c-82db-e935fb3ec584")
+IWMPPlayer4 : public IWMPCore3
+{
+    virtual HRESULT STDMETHODCALLTYPE get_enabled(
+        VARIANT_BOOL *pbEnabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_enabled(
+        VARIANT_BOOL pbEnabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_fullScreen(
+        VARIANT_BOOL *pbFullScreen) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_fullScreen(
+        VARIANT_BOOL pbFullScreen) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_enableContextMenu(
+        VARIANT_BOOL *pbEnableContextMenu) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_enableContextMenu(
+        VARIANT_BOOL pbEnableContextMenu) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_uiMode(
+        BSTR pbstrMode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_uiMode(
+        BSTR *pbstrMode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_stretchToFit(
+        VARIANT_BOOL *pbEnabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_stretchToFit(
+        VARIANT_BOOL pbEnabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_windowlessVideo(
+        VARIANT_BOOL *pbEnabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_windowlessVideo(
+        VARIANT_BOOL pbEnabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_isRemote(
+        VARIANT_BOOL *pvarfIsRemote) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_playerApplication(
+        IWMPPlayerApplication **ppIWMPPlayerApplication) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE openPlayer(
+        BSTR bstrURL) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPPlayer4, 0x6c497d62, 0x8919, 0x413c, 0x82,0xdb, 0xe9,0x35,0xfb,0x3e,0xc5,0x84)
+#endif
+#else
+typedef struct IWMPPlayer4Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPPlayer4 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPPlayer4 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPPlayer4 *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPPlayer4 *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPPlayer4 *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPPlayer4 *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPPlayer4 *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPCore methods ***/
+    HRESULT (STDMETHODCALLTYPE *close)(
+        IWMPPlayer4 *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_URL)(
+        IWMPPlayer4 *This,
+        BSTR *pbstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *put_URL)(
+        IWMPPlayer4 *This,
+        BSTR pbstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_openState)(
+        IWMPPlayer4 *This,
+        WMPOpenState *pwmpos);
+
+    HRESULT (STDMETHODCALLTYPE *get_playState)(
+        IWMPPlayer4 *This,
+        WMPPlayState *pwmpps);
+
+    HRESULT (STDMETHODCALLTYPE *get_controls)(
+        IWMPPlayer4 *This,
+        IWMPControls **ppControl);
+
+    HRESULT (STDMETHODCALLTYPE *get_settings)(
+        IWMPPlayer4 *This,
+        IWMPSettings **ppSettings);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentMedia)(
+        IWMPPlayer4 *This,
+        IWMPMedia **ppMedia);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentMedia)(
+        IWMPPlayer4 *This,
+        IWMPMedia *ppMedia);
+
+    HRESULT (STDMETHODCALLTYPE *get_mediaCollection)(
+        IWMPPlayer4 *This,
+        IWMPMediaCollection **ppMediaCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_playlistCollection)(
+        IWMPPlayer4 *This,
+        IWMPPlaylistCollection **ppPlaylistCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_versionInfo)(
+        IWMPPlayer4 *This,
+        BSTR *pbstrVersionInfo);
+
+    HRESULT (STDMETHODCALLTYPE *launchURL)(
+        IWMPPlayer4 *This,
+        BSTR bstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_network)(
+        IWMPPlayer4 *This,
+        IWMPNetwork **ppQNI);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentPlaylist)(
+        IWMPPlayer4 *This,
+        IWMPPlaylist **ppPL);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentPlaylist)(
+        IWMPPlayer4 *This,
+        IWMPPlaylist *ppPL);
+
+    HRESULT (STDMETHODCALLTYPE *get_cdromCollection)(
+        IWMPPlayer4 *This,
+        IWMPCdromCollection **ppCdromCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_closedCaption)(
+        IWMPPlayer4 *This,
+        IWMPClosedCaption **ppClosedCaption);
+
+    HRESULT (STDMETHODCALLTYPE *get_isOnline)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL *pfOnline);
+
+    HRESULT (STDMETHODCALLTYPE *get_Error)(
+        IWMPPlayer4 *This,
+        IWMPError **ppError);
+
+    HRESULT (STDMETHODCALLTYPE *get_status)(
+        IWMPPlayer4 *This,
+        BSTR *pbstrStatus);
+
+    /*** IWMPCore2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_dvd)(
+        IWMPPlayer4 *This,
+        IWMPDVD **ppDVD);
+
+    /*** IWMPCore3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *newPlaylist)(
+        IWMPPlayer4 *This,
+        BSTR bstrName,
+        BSTR bstrURL,
+        IWMPPlaylist **ppPlaylist);
+
+    HRESULT (STDMETHODCALLTYPE *newMedia)(
+        IWMPPlayer4 *This,
+        BSTR bstrURL,
+        IWMPMedia **ppMedia);
+
+    /*** IWMPPlayer4 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_enabled)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL *pbEnabled);
+
+    HRESULT (STDMETHODCALLTYPE *put_enabled)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL pbEnabled);
+
+    HRESULT (STDMETHODCALLTYPE *get_fullScreen)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL *pbFullScreen);
+
+    HRESULT (STDMETHODCALLTYPE *put_fullScreen)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL pbFullScreen);
+
+    HRESULT (STDMETHODCALLTYPE *get_enableContextMenu)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL *pbEnableContextMenu);
+
+    HRESULT (STDMETHODCALLTYPE *put_enableContextMenu)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL pbEnableContextMenu);
+
+    HRESULT (STDMETHODCALLTYPE *put_uiMode)(
+        IWMPPlayer4 *This,
+        BSTR pbstrMode);
+
+    HRESULT (STDMETHODCALLTYPE *get_uiMode)(
+        IWMPPlayer4 *This,
+        BSTR *pbstrMode);
+
+    HRESULT (STDMETHODCALLTYPE *get_stretchToFit)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL *pbEnabled);
+
+    HRESULT (STDMETHODCALLTYPE *put_stretchToFit)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL pbEnabled);
+
+    HRESULT (STDMETHODCALLTYPE *get_windowlessVideo)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL *pbEnabled);
+
+    HRESULT (STDMETHODCALLTYPE *put_windowlessVideo)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL pbEnabled);
+
+    HRESULT (STDMETHODCALLTYPE *get_isRemote)(
+        IWMPPlayer4 *This,
+        VARIANT_BOOL *pvarfIsRemote);
+
+    HRESULT (STDMETHODCALLTYPE *get_playerApplication)(
+        IWMPPlayer4 *This,
+        IWMPPlayerApplication **ppIWMPPlayerApplication);
+
+    HRESULT (STDMETHODCALLTYPE *openPlayer)(
+        IWMPPlayer4 *This,
+        BSTR bstrURL);
+
+    END_INTERFACE
+} IWMPPlayer4Vtbl;
+
+interface IWMPPlayer4 {
+    CONST_VTBL IWMPPlayer4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPPlayer4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPPlayer4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPPlayer4_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPPlayer4_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPPlayer4_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPPlayer4_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPPlayer4_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPCore methods ***/
+#define IWMPPlayer4_close(This) (This)->lpVtbl->close(This)
+#define IWMPPlayer4_get_URL(This,pbstrURL) (This)->lpVtbl->get_URL(This,pbstrURL)
+#define IWMPPlayer4_put_URL(This,pbstrURL) (This)->lpVtbl->put_URL(This,pbstrURL)
+#define IWMPPlayer4_get_openState(This,pwmpos) (This)->lpVtbl->get_openState(This,pwmpos)
+#define IWMPPlayer4_get_playState(This,pwmpps) (This)->lpVtbl->get_playState(This,pwmpps)
+#define IWMPPlayer4_get_controls(This,ppControl) (This)->lpVtbl->get_controls(This,ppControl)
+#define IWMPPlayer4_get_settings(This,ppSettings) (This)->lpVtbl->get_settings(This,ppSettings)
+#define IWMPPlayer4_get_currentMedia(This,ppMedia) (This)->lpVtbl->get_currentMedia(This,ppMedia)
+#define IWMPPlayer4_put_currentMedia(This,ppMedia) (This)->lpVtbl->put_currentMedia(This,ppMedia)
+#define IWMPPlayer4_get_mediaCollection(This,ppMediaCollection) (This)->lpVtbl->get_mediaCollection(This,ppMediaCollection)
+#define IWMPPlayer4_get_playlistCollection(This,ppPlaylistCollection) (This)->lpVtbl->get_playlistCollection(This,ppPlaylistCollection)
+#define IWMPPlayer4_get_versionInfo(This,pbstrVersionInfo) (This)->lpVtbl->get_versionInfo(This,pbstrVersionInfo)
+#define IWMPPlayer4_launchURL(This,bstrURL) (This)->lpVtbl->launchURL(This,bstrURL)
+#define IWMPPlayer4_get_network(This,ppQNI) (This)->lpVtbl->get_network(This,ppQNI)
+#define IWMPPlayer4_get_currentPlaylist(This,ppPL) (This)->lpVtbl->get_currentPlaylist(This,ppPL)
+#define IWMPPlayer4_put_currentPlaylist(This,ppPL) (This)->lpVtbl->put_currentPlaylist(This,ppPL)
+#define IWMPPlayer4_get_cdromCollection(This,ppCdromCollection) (This)->lpVtbl->get_cdromCollection(This,ppCdromCollection)
+#define IWMPPlayer4_get_closedCaption(This,ppClosedCaption) (This)->lpVtbl->get_closedCaption(This,ppClosedCaption)
+#define IWMPPlayer4_get_isOnline(This,pfOnline) (This)->lpVtbl->get_isOnline(This,pfOnline)
+#define IWMPPlayer4_get_Error(This,ppError) (This)->lpVtbl->get_Error(This,ppError)
+#define IWMPPlayer4_get_status(This,pbstrStatus) (This)->lpVtbl->get_status(This,pbstrStatus)
+/*** IWMPCore2 methods ***/
+#define IWMPPlayer4_get_dvd(This,ppDVD) (This)->lpVtbl->get_dvd(This,ppDVD)
+/*** IWMPCore3 methods ***/
+#define IWMPPlayer4_newPlaylist(This,bstrName,bstrURL,ppPlaylist) (This)->lpVtbl->newPlaylist(This,bstrName,bstrURL,ppPlaylist)
+#define IWMPPlayer4_newMedia(This,bstrURL,ppMedia) (This)->lpVtbl->newMedia(This,bstrURL,ppMedia)
+/*** IWMPPlayer4 methods ***/
+#define IWMPPlayer4_get_enabled(This,pbEnabled) (This)->lpVtbl->get_enabled(This,pbEnabled)
+#define IWMPPlayer4_put_enabled(This,pbEnabled) (This)->lpVtbl->put_enabled(This,pbEnabled)
+#define IWMPPlayer4_get_fullScreen(This,pbFullScreen) (This)->lpVtbl->get_fullScreen(This,pbFullScreen)
+#define IWMPPlayer4_put_fullScreen(This,pbFullScreen) (This)->lpVtbl->put_fullScreen(This,pbFullScreen)
+#define IWMPPlayer4_get_enableContextMenu(This,pbEnableContextMenu) (This)->lpVtbl->get_enableContextMenu(This,pbEnableContextMenu)
+#define IWMPPlayer4_put_enableContextMenu(This,pbEnableContextMenu) (This)->lpVtbl->put_enableContextMenu(This,pbEnableContextMenu)
+#define IWMPPlayer4_put_uiMode(This,pbstrMode) (This)->lpVtbl->put_uiMode(This,pbstrMode)
+#define IWMPPlayer4_get_uiMode(This,pbstrMode) (This)->lpVtbl->get_uiMode(This,pbstrMode)
+#define IWMPPlayer4_get_stretchToFit(This,pbEnabled) (This)->lpVtbl->get_stretchToFit(This,pbEnabled)
+#define IWMPPlayer4_put_stretchToFit(This,pbEnabled) (This)->lpVtbl->put_stretchToFit(This,pbEnabled)
+#define IWMPPlayer4_get_windowlessVideo(This,pbEnabled) (This)->lpVtbl->get_windowlessVideo(This,pbEnabled)
+#define IWMPPlayer4_put_windowlessVideo(This,pbEnabled) (This)->lpVtbl->put_windowlessVideo(This,pbEnabled)
+#define IWMPPlayer4_get_isRemote(This,pvarfIsRemote) (This)->lpVtbl->get_isRemote(This,pvarfIsRemote)
+#define IWMPPlayer4_get_playerApplication(This,ppIWMPPlayerApplication) (This)->lpVtbl->get_playerApplication(This,ppIWMPPlayerApplication)
+#define IWMPPlayer4_openPlayer(This,bstrURL) (This)->lpVtbl->openPlayer(This,bstrURL)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPPlayer4_QueryInterface(IWMPPlayer4* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPPlayer4_AddRef(IWMPPlayer4* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPPlayer4_Release(IWMPPlayer4* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPPlayer4_GetTypeInfoCount(IWMPPlayer4* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_GetTypeInfo(IWMPPlayer4* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_GetIDsOfNames(IWMPPlayer4* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_Invoke(IWMPPlayer4* 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);
+}
+/*** IWMPCore methods ***/
+static FORCEINLINE HRESULT IWMPPlayer4_close(IWMPPlayer4* This) {
+    return This->lpVtbl->close(This);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_URL(IWMPPlayer4* This,BSTR *pbstrURL) {
+    return This->lpVtbl->get_URL(This,pbstrURL);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_put_URL(IWMPPlayer4* This,BSTR pbstrURL) {
+    return This->lpVtbl->put_URL(This,pbstrURL);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_openState(IWMPPlayer4* This,WMPOpenState *pwmpos) {
+    return This->lpVtbl->get_openState(This,pwmpos);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_playState(IWMPPlayer4* This,WMPPlayState *pwmpps) {
+    return This->lpVtbl->get_playState(This,pwmpps);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_controls(IWMPPlayer4* This,IWMPControls **ppControl) {
+    return This->lpVtbl->get_controls(This,ppControl);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_settings(IWMPPlayer4* This,IWMPSettings **ppSettings) {
+    return This->lpVtbl->get_settings(This,ppSettings);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_currentMedia(IWMPPlayer4* This,IWMPMedia **ppMedia) {
+    return This->lpVtbl->get_currentMedia(This,ppMedia);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_put_currentMedia(IWMPPlayer4* This,IWMPMedia *ppMedia) {
+    return This->lpVtbl->put_currentMedia(This,ppMedia);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_mediaCollection(IWMPPlayer4* This,IWMPMediaCollection **ppMediaCollection) {
+    return This->lpVtbl->get_mediaCollection(This,ppMediaCollection);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_playlistCollection(IWMPPlayer4* This,IWMPPlaylistCollection **ppPlaylistCollection) {
+    return This->lpVtbl->get_playlistCollection(This,ppPlaylistCollection);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_versionInfo(IWMPPlayer4* This,BSTR *pbstrVersionInfo) {
+    return This->lpVtbl->get_versionInfo(This,pbstrVersionInfo);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_launchURL(IWMPPlayer4* This,BSTR bstrURL) {
+    return This->lpVtbl->launchURL(This,bstrURL);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_network(IWMPPlayer4* This,IWMPNetwork **ppQNI) {
+    return This->lpVtbl->get_network(This,ppQNI);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_currentPlaylist(IWMPPlayer4* This,IWMPPlaylist **ppPL) {
+    return This->lpVtbl->get_currentPlaylist(This,ppPL);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_put_currentPlaylist(IWMPPlayer4* This,IWMPPlaylist *ppPL) {
+    return This->lpVtbl->put_currentPlaylist(This,ppPL);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_cdromCollection(IWMPPlayer4* This,IWMPCdromCollection **ppCdromCollection) {
+    return This->lpVtbl->get_cdromCollection(This,ppCdromCollection);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_closedCaption(IWMPPlayer4* This,IWMPClosedCaption **ppClosedCaption) {
+    return This->lpVtbl->get_closedCaption(This,ppClosedCaption);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_isOnline(IWMPPlayer4* This,VARIANT_BOOL *pfOnline) {
+    return This->lpVtbl->get_isOnline(This,pfOnline);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_Error(IWMPPlayer4* This,IWMPError **ppError) {
+    return This->lpVtbl->get_Error(This,ppError);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_status(IWMPPlayer4* This,BSTR *pbstrStatus) {
+    return This->lpVtbl->get_status(This,pbstrStatus);
+}
+/*** IWMPCore2 methods ***/
+static FORCEINLINE HRESULT IWMPPlayer4_get_dvd(IWMPPlayer4* This,IWMPDVD **ppDVD) {
+    return This->lpVtbl->get_dvd(This,ppDVD);
+}
+/*** IWMPCore3 methods ***/
+static FORCEINLINE HRESULT IWMPPlayer4_newPlaylist(IWMPPlayer4* This,BSTR bstrName,BSTR bstrURL,IWMPPlaylist **ppPlaylist) {
+    return This->lpVtbl->newPlaylist(This,bstrName,bstrURL,ppPlaylist);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_newMedia(IWMPPlayer4* This,BSTR bstrURL,IWMPMedia **ppMedia) {
+    return This->lpVtbl->newMedia(This,bstrURL,ppMedia);
+}
+/*** IWMPPlayer4 methods ***/
+static FORCEINLINE HRESULT IWMPPlayer4_get_enabled(IWMPPlayer4* This,VARIANT_BOOL *pbEnabled) {
+    return This->lpVtbl->get_enabled(This,pbEnabled);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_put_enabled(IWMPPlayer4* This,VARIANT_BOOL pbEnabled) {
+    return This->lpVtbl->put_enabled(This,pbEnabled);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_fullScreen(IWMPPlayer4* This,VARIANT_BOOL *pbFullScreen) {
+    return This->lpVtbl->get_fullScreen(This,pbFullScreen);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_put_fullScreen(IWMPPlayer4* This,VARIANT_BOOL pbFullScreen) {
+    return This->lpVtbl->put_fullScreen(This,pbFullScreen);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_enableContextMenu(IWMPPlayer4* This,VARIANT_BOOL *pbEnableContextMenu) {
+    return This->lpVtbl->get_enableContextMenu(This,pbEnableContextMenu);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_put_enableContextMenu(IWMPPlayer4* This,VARIANT_BOOL pbEnableContextMenu) {
+    return This->lpVtbl->put_enableContextMenu(This,pbEnableContextMenu);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_put_uiMode(IWMPPlayer4* This,BSTR pbstrMode) {
+    return This->lpVtbl->put_uiMode(This,pbstrMode);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_uiMode(IWMPPlayer4* This,BSTR *pbstrMode) {
+    return This->lpVtbl->get_uiMode(This,pbstrMode);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_stretchToFit(IWMPPlayer4* This,VARIANT_BOOL *pbEnabled) {
+    return This->lpVtbl->get_stretchToFit(This,pbEnabled);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_put_stretchToFit(IWMPPlayer4* This,VARIANT_BOOL pbEnabled) {
+    return This->lpVtbl->put_stretchToFit(This,pbEnabled);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_windowlessVideo(IWMPPlayer4* This,VARIANT_BOOL *pbEnabled) {
+    return This->lpVtbl->get_windowlessVideo(This,pbEnabled);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_put_windowlessVideo(IWMPPlayer4* This,VARIANT_BOOL pbEnabled) {
+    return This->lpVtbl->put_windowlessVideo(This,pbEnabled);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_isRemote(IWMPPlayer4* This,VARIANT_BOOL *pvarfIsRemote) {
+    return This->lpVtbl->get_isRemote(This,pvarfIsRemote);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_get_playerApplication(IWMPPlayer4* This,IWMPPlayerApplication **ppIWMPPlayerApplication) {
+    return This->lpVtbl->get_playerApplication(This,ppIWMPPlayerApplication);
+}
+static FORCEINLINE HRESULT IWMPPlayer4_openPlayer(IWMPPlayer4* This,BSTR bstrURL) {
+    return This->lpVtbl->openPlayer(This,bstrURL);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPPlayer4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPPlayer interface
+ */
+#ifndef __IWMPPlayer_INTERFACE_DEFINED__
+#define __IWMPPlayer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPPlayer, 0x6bf52a4f, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6bf52a4f-394a-11d3-b153-00c04f79faa6")
+IWMPPlayer : public IWMPCore
+{
+    virtual HRESULT STDMETHODCALLTYPE get_enabled(
+        VARIANT_BOOL *pbEnabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_enabled(
+        VARIANT_BOOL pbEnabled) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_fullScreen(
+        VARIANT_BOOL *pbFullScreen) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_fullScreen(
+        VARIANT_BOOL pbFullScreen) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_enableContextMenu(
+        VARIANT_BOOL *pbEnableContextMenu) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_enableContextMenu(
+        VARIANT_BOOL pbEnableContextMenu) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_uiMode(
+        BSTR pbstrMode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_uiMode(
+        BSTR *pbstrMode) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPPlayer, 0x6bf52a4f, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6)
+#endif
+#else
+typedef struct IWMPPlayerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPPlayer *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPPlayer *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPPlayer *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWMPPlayer *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWMPPlayer *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWMPPlayer *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWMPPlayer *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWMPCore methods ***/
+    HRESULT (STDMETHODCALLTYPE *close)(
+        IWMPPlayer *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_URL)(
+        IWMPPlayer *This,
+        BSTR *pbstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *put_URL)(
+        IWMPPlayer *This,
+        BSTR pbstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_openState)(
+        IWMPPlayer *This,
+        WMPOpenState *pwmpos);
+
+    HRESULT (STDMETHODCALLTYPE *get_playState)(
+        IWMPPlayer *This,
+        WMPPlayState *pwmpps);
+
+    HRESULT (STDMETHODCALLTYPE *get_controls)(
+        IWMPPlayer *This,
+        IWMPControls **ppControl);
+
+    HRESULT (STDMETHODCALLTYPE *get_settings)(
+        IWMPPlayer *This,
+        IWMPSettings **ppSettings);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentMedia)(
+        IWMPPlayer *This,
+        IWMPMedia **ppMedia);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentMedia)(
+        IWMPPlayer *This,
+        IWMPMedia *ppMedia);
+
+    HRESULT (STDMETHODCALLTYPE *get_mediaCollection)(
+        IWMPPlayer *This,
+        IWMPMediaCollection **ppMediaCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_playlistCollection)(
+        IWMPPlayer *This,
+        IWMPPlaylistCollection **ppPlaylistCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_versionInfo)(
+        IWMPPlayer *This,
+        BSTR *pbstrVersionInfo);
+
+    HRESULT (STDMETHODCALLTYPE *launchURL)(
+        IWMPPlayer *This,
+        BSTR bstrURL);
+
+    HRESULT (STDMETHODCALLTYPE *get_network)(
+        IWMPPlayer *This,
+        IWMPNetwork **ppQNI);
+
+    HRESULT (STDMETHODCALLTYPE *get_currentPlaylist)(
+        IWMPPlayer *This,
+        IWMPPlaylist **ppPL);
+
+    HRESULT (STDMETHODCALLTYPE *put_currentPlaylist)(
+        IWMPPlayer *This,
+        IWMPPlaylist *ppPL);
+
+    HRESULT (STDMETHODCALLTYPE *get_cdromCollection)(
+        IWMPPlayer *This,
+        IWMPCdromCollection **ppCdromCollection);
+
+    HRESULT (STDMETHODCALLTYPE *get_closedCaption)(
+        IWMPPlayer *This,
+        IWMPClosedCaption **ppClosedCaption);
+
+    HRESULT (STDMETHODCALLTYPE *get_isOnline)(
+        IWMPPlayer *This,
+        VARIANT_BOOL *pfOnline);
+
+    HRESULT (STDMETHODCALLTYPE *get_Error)(
+        IWMPPlayer *This,
+        IWMPError **ppError);
+
+    HRESULT (STDMETHODCALLTYPE *get_status)(
+        IWMPPlayer *This,
+        BSTR *pbstrStatus);
+
+    /*** IWMPPlayer methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_enabled)(
+        IWMPPlayer *This,
+        VARIANT_BOOL *pbEnabled);
+
+    HRESULT (STDMETHODCALLTYPE *put_enabled)(
+        IWMPPlayer *This,
+        VARIANT_BOOL pbEnabled);
+
+    HRESULT (STDMETHODCALLTYPE *get_fullScreen)(
+        IWMPPlayer *This,
+        VARIANT_BOOL *pbFullScreen);
+
+    HRESULT (STDMETHODCALLTYPE *put_fullScreen)(
+        IWMPPlayer *This,
+        VARIANT_BOOL pbFullScreen);
+
+    HRESULT (STDMETHODCALLTYPE *get_enableContextMenu)(
+        IWMPPlayer *This,
+        VARIANT_BOOL *pbEnableContextMenu);
+
+    HRESULT (STDMETHODCALLTYPE *put_enableContextMenu)(
+        IWMPPlayer *This,
+        VARIANT_BOOL pbEnableContextMenu);
+
+    HRESULT (STDMETHODCALLTYPE *put_uiMode)(
+        IWMPPlayer *This,
+        BSTR pbstrMode);
+
+    HRESULT (STDMETHODCALLTYPE *get_uiMode)(
+        IWMPPlayer *This,
+        BSTR *pbstrMode);
+
+    END_INTERFACE
+} IWMPPlayerVtbl;
+
+interface IWMPPlayer {
+    CONST_VTBL IWMPPlayerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPPlayer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPPlayer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPPlayer_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWMPPlayer_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWMPPlayer_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWMPPlayer_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWMPPlayer_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWMPCore methods ***/
+#define IWMPPlayer_close(This) (This)->lpVtbl->close(This)
+#define IWMPPlayer_get_URL(This,pbstrURL) (This)->lpVtbl->get_URL(This,pbstrURL)
+#define IWMPPlayer_put_URL(This,pbstrURL) (This)->lpVtbl->put_URL(This,pbstrURL)
+#define IWMPPlayer_get_openState(This,pwmpos) (This)->lpVtbl->get_openState(This,pwmpos)
+#define IWMPPlayer_get_playState(This,pwmpps) (This)->lpVtbl->get_playState(This,pwmpps)
+#define IWMPPlayer_get_controls(This,ppControl) (This)->lpVtbl->get_controls(This,ppControl)
+#define IWMPPlayer_get_settings(This,ppSettings) (This)->lpVtbl->get_settings(This,ppSettings)
+#define IWMPPlayer_get_currentMedia(This,ppMedia) (This)->lpVtbl->get_currentMedia(This,ppMedia)
+#define IWMPPlayer_put_currentMedia(This,ppMedia) (This)->lpVtbl->put_currentMedia(This,ppMedia)
+#define IWMPPlayer_get_mediaCollection(This,ppMediaCollection) (This)->lpVtbl->get_mediaCollection(This,ppMediaCollection)
+#define IWMPPlayer_get_playlistCollection(This,ppPlaylistCollection) (This)->lpVtbl->get_playlistCollection(This,ppPlaylistCollection)
+#define IWMPPlayer_get_versionInfo(This,pbstrVersionInfo) (This)->lpVtbl->get_versionInfo(This,pbstrVersionInfo)
+#define IWMPPlayer_launchURL(This,bstrURL) (This)->lpVtbl->launchURL(This,bstrURL)
+#define IWMPPlayer_get_network(This,ppQNI) (This)->lpVtbl->get_network(This,ppQNI)
+#define IWMPPlayer_get_currentPlaylist(This,ppPL) (This)->lpVtbl->get_currentPlaylist(This,ppPL)
+#define IWMPPlayer_put_currentPlaylist(This,ppPL) (This)->lpVtbl->put_currentPlaylist(This,ppPL)
+#define IWMPPlayer_get_cdromCollection(This,ppCdromCollection) (This)->lpVtbl->get_cdromCollection(This,ppCdromCollection)
+#define IWMPPlayer_get_closedCaption(This,ppClosedCaption) (This)->lpVtbl->get_closedCaption(This,ppClosedCaption)
+#define IWMPPlayer_get_isOnline(This,pfOnline) (This)->lpVtbl->get_isOnline(This,pfOnline)
+#define IWMPPlayer_get_Error(This,ppError) (This)->lpVtbl->get_Error(This,ppError)
+#define IWMPPlayer_get_status(This,pbstrStatus) (This)->lpVtbl->get_status(This,pbstrStatus)
+/*** IWMPPlayer methods ***/
+#define IWMPPlayer_get_enabled(This,pbEnabled) (This)->lpVtbl->get_enabled(This,pbEnabled)
+#define IWMPPlayer_put_enabled(This,pbEnabled) (This)->lpVtbl->put_enabled(This,pbEnabled)
+#define IWMPPlayer_get_fullScreen(This,pbFullScreen) (This)->lpVtbl->get_fullScreen(This,pbFullScreen)
+#define IWMPPlayer_put_fullScreen(This,pbFullScreen) (This)->lpVtbl->put_fullScreen(This,pbFullScreen)
+#define IWMPPlayer_get_enableContextMenu(This,pbEnableContextMenu) (This)->lpVtbl->get_enableContextMenu(This,pbEnableContextMenu)
+#define IWMPPlayer_put_enableContextMenu(This,pbEnableContextMenu) (This)->lpVtbl->put_enableContextMenu(This,pbEnableContextMenu)
+#define IWMPPlayer_put_uiMode(This,pbstrMode) (This)->lpVtbl->put_uiMode(This,pbstrMode)
+#define IWMPPlayer_get_uiMode(This,pbstrMode) (This)->lpVtbl->get_uiMode(This,pbstrMode)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPPlayer_QueryInterface(IWMPPlayer* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPPlayer_AddRef(IWMPPlayer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPPlayer_Release(IWMPPlayer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWMPPlayer_GetTypeInfoCount(IWMPPlayer* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWMPPlayer_GetTypeInfo(IWMPPlayer* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWMPPlayer_GetIDsOfNames(IWMPPlayer* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWMPPlayer_Invoke(IWMPPlayer* 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);
+}
+/*** IWMPCore methods ***/
+static FORCEINLINE HRESULT IWMPPlayer_close(IWMPPlayer* This) {
+    return This->lpVtbl->close(This);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_URL(IWMPPlayer* This,BSTR *pbstrURL) {
+    return This->lpVtbl->get_URL(This,pbstrURL);
+}
+static FORCEINLINE HRESULT IWMPPlayer_put_URL(IWMPPlayer* This,BSTR pbstrURL) {
+    return This->lpVtbl->put_URL(This,pbstrURL);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_openState(IWMPPlayer* This,WMPOpenState *pwmpos) {
+    return This->lpVtbl->get_openState(This,pwmpos);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_playState(IWMPPlayer* This,WMPPlayState *pwmpps) {
+    return This->lpVtbl->get_playState(This,pwmpps);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_controls(IWMPPlayer* This,IWMPControls **ppControl) {
+    return This->lpVtbl->get_controls(This,ppControl);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_settings(IWMPPlayer* This,IWMPSettings **ppSettings) {
+    return This->lpVtbl->get_settings(This,ppSettings);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_currentMedia(IWMPPlayer* This,IWMPMedia **ppMedia) {
+    return This->lpVtbl->get_currentMedia(This,ppMedia);
+}
+static FORCEINLINE HRESULT IWMPPlayer_put_currentMedia(IWMPPlayer* This,IWMPMedia *ppMedia) {
+    return This->lpVtbl->put_currentMedia(This,ppMedia);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_mediaCollection(IWMPPlayer* This,IWMPMediaCollection **ppMediaCollection) {
+    return This->lpVtbl->get_mediaCollection(This,ppMediaCollection);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_playlistCollection(IWMPPlayer* This,IWMPPlaylistCollection **ppPlaylistCollection) {
+    return This->lpVtbl->get_playlistCollection(This,ppPlaylistCollection);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_versionInfo(IWMPPlayer* This,BSTR *pbstrVersionInfo) {
+    return This->lpVtbl->get_versionInfo(This,pbstrVersionInfo);
+}
+static FORCEINLINE HRESULT IWMPPlayer_launchURL(IWMPPlayer* This,BSTR bstrURL) {
+    return This->lpVtbl->launchURL(This,bstrURL);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_network(IWMPPlayer* This,IWMPNetwork **ppQNI) {
+    return This->lpVtbl->get_network(This,ppQNI);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_currentPlaylist(IWMPPlayer* This,IWMPPlaylist **ppPL) {
+    return This->lpVtbl->get_currentPlaylist(This,ppPL);
+}
+static FORCEINLINE HRESULT IWMPPlayer_put_currentPlaylist(IWMPPlayer* This,IWMPPlaylist *ppPL) {
+    return This->lpVtbl->put_currentPlaylist(This,ppPL);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_cdromCollection(IWMPPlayer* This,IWMPCdromCollection **ppCdromCollection) {
+    return This->lpVtbl->get_cdromCollection(This,ppCdromCollection);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_closedCaption(IWMPPlayer* This,IWMPClosedCaption **ppClosedCaption) {
+    return This->lpVtbl->get_closedCaption(This,ppClosedCaption);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_isOnline(IWMPPlayer* This,VARIANT_BOOL *pfOnline) {
+    return This->lpVtbl->get_isOnline(This,pfOnline);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_Error(IWMPPlayer* This,IWMPError **ppError) {
+    return This->lpVtbl->get_Error(This,ppError);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_status(IWMPPlayer* This,BSTR *pbstrStatus) {
+    return This->lpVtbl->get_status(This,pbstrStatus);
+}
+/*** IWMPPlayer methods ***/
+static FORCEINLINE HRESULT IWMPPlayer_get_enabled(IWMPPlayer* This,VARIANT_BOOL *pbEnabled) {
+    return This->lpVtbl->get_enabled(This,pbEnabled);
+}
+static FORCEINLINE HRESULT IWMPPlayer_put_enabled(IWMPPlayer* This,VARIANT_BOOL pbEnabled) {
+    return This->lpVtbl->put_enabled(This,pbEnabled);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_fullScreen(IWMPPlayer* This,VARIANT_BOOL *pbFullScreen) {
+    return This->lpVtbl->get_fullScreen(This,pbFullScreen);
+}
+static FORCEINLINE HRESULT IWMPPlayer_put_fullScreen(IWMPPlayer* This,VARIANT_BOOL pbFullScreen) {
+    return This->lpVtbl->put_fullScreen(This,pbFullScreen);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_enableContextMenu(IWMPPlayer* This,VARIANT_BOOL *pbEnableContextMenu) {
+    return This->lpVtbl->get_enableContextMenu(This,pbEnableContextMenu);
+}
+static FORCEINLINE HRESULT IWMPPlayer_put_enableContextMenu(IWMPPlayer* This,VARIANT_BOOL pbEnableContextMenu) {
+    return This->lpVtbl->put_enableContextMenu(This,pbEnableContextMenu);
+}
+static FORCEINLINE HRESULT IWMPPlayer_put_uiMode(IWMPPlayer* This,BSTR pbstrMode) {
+    return This->lpVtbl->put_uiMode(This,pbstrMode);
+}
+static FORCEINLINE HRESULT IWMPPlayer_get_uiMode(IWMPPlayer* This,BSTR *pbstrMode) {
+    return This->lpVtbl->get_uiMode(This,pbstrMode);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPPlayer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPSyncDevice interface
+ */
+#ifndef __IWMPSyncDevice_INTERFACE_DEFINED__
+#define __IWMPSyncDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPSyncDevice, 0x82a2986c, 0x0293, 0x4fd0, 0xb2,0x79, 0xb2,0x1b,0x86,0xc0,0x58,0xbe);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("82a2986c-0293-4fd0-b279-b21b86c058be")
+IWMPSyncDevice : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE get_friendlyName(
+        BSTR *name) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_friendlyName(
+        BSTR name) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_deviceName(
+        BSTR *name) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_deviceId(
+        BSTR *device) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_partnershipIndex(
+        LONG *index) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_connected(
+        VARIANT_BOOL *connected) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_status(
+        WMPDeviceStatus *status) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_syncState(
+        WMPSyncState *state) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_progress(
+        LONG *progress) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getItemInfo(
+        BSTR name,
+        BSTR *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE createPartnership(
+        VARIANT_BOOL showui) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE deletePartnership(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE start(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE stop(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE showSettings(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE isIdentical(
+        IWMPSyncDevice *device,
+        VARIANT_BOOL *ret) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPSyncDevice, 0x82a2986c, 0x0293, 0x4fd0, 0xb2,0x79, 0xb2,0x1b,0x86,0xc0,0x58,0xbe)
+#endif
+#else
+typedef struct IWMPSyncDeviceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPSyncDevice *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPSyncDevice *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPSyncDevice *This);
+
+    /*** IWMPSyncDevice methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_friendlyName)(
+        IWMPSyncDevice *This,
+        BSTR *name);
+
+    HRESULT (STDMETHODCALLTYPE *put_friendlyName)(
+        IWMPSyncDevice *This,
+        BSTR name);
+
+    HRESULT (STDMETHODCALLTYPE *get_deviceName)(
+        IWMPSyncDevice *This,
+        BSTR *name);
+
+    HRESULT (STDMETHODCALLTYPE *get_deviceId)(
+        IWMPSyncDevice *This,
+        BSTR *device);
+
+    HRESULT (STDMETHODCALLTYPE *get_partnershipIndex)(
+        IWMPSyncDevice *This,
+        LONG *index);
+
+    HRESULT (STDMETHODCALLTYPE *get_connected)(
+        IWMPSyncDevice *This,
+        VARIANT_BOOL *connected);
+
+    HRESULT (STDMETHODCALLTYPE *get_status)(
+        IWMPSyncDevice *This,
+        WMPDeviceStatus *status);
+
+    HRESULT (STDMETHODCALLTYPE *get_syncState)(
+        IWMPSyncDevice *This,
+        WMPSyncState *state);
+
+    HRESULT (STDMETHODCALLTYPE *get_progress)(
+        IWMPSyncDevice *This,
+        LONG *progress);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfo)(
+        IWMPSyncDevice *This,
+        BSTR name,
+        BSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *createPartnership)(
+        IWMPSyncDevice *This,
+        VARIANT_BOOL showui);
+
+    HRESULT (STDMETHODCALLTYPE *deletePartnership)(
+        IWMPSyncDevice *This);
+
+    HRESULT (STDMETHODCALLTYPE *start)(
+        IWMPSyncDevice *This);
+
+    HRESULT (STDMETHODCALLTYPE *stop)(
+        IWMPSyncDevice *This);
+
+    HRESULT (STDMETHODCALLTYPE *showSettings)(
+        IWMPSyncDevice *This);
+
+    HRESULT (STDMETHODCALLTYPE *isIdentical)(
+        IWMPSyncDevice *This,
+        IWMPSyncDevice *device,
+        VARIANT_BOOL *ret);
+
+    END_INTERFACE
+} IWMPSyncDeviceVtbl;
+
+interface IWMPSyncDevice {
+    CONST_VTBL IWMPSyncDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPSyncDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPSyncDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPSyncDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPSyncDevice methods ***/
+#define IWMPSyncDevice_get_friendlyName(This,name) (This)->lpVtbl->get_friendlyName(This,name)
+#define IWMPSyncDevice_put_friendlyName(This,name) (This)->lpVtbl->put_friendlyName(This,name)
+#define IWMPSyncDevice_get_deviceName(This,name) (This)->lpVtbl->get_deviceName(This,name)
+#define IWMPSyncDevice_get_deviceId(This,device) (This)->lpVtbl->get_deviceId(This,device)
+#define IWMPSyncDevice_get_partnershipIndex(This,index) (This)->lpVtbl->get_partnershipIndex(This,index)
+#define IWMPSyncDevice_get_connected(This,connected) (This)->lpVtbl->get_connected(This,connected)
+#define IWMPSyncDevice_get_status(This,status) (This)->lpVtbl->get_status(This,status)
+#define IWMPSyncDevice_get_syncState(This,state) (This)->lpVtbl->get_syncState(This,state)
+#define IWMPSyncDevice_get_progress(This,progress) (This)->lpVtbl->get_progress(This,progress)
+#define IWMPSyncDevice_getItemInfo(This,name,val) (This)->lpVtbl->getItemInfo(This,name,val)
+#define IWMPSyncDevice_createPartnership(This,showui) (This)->lpVtbl->createPartnership(This,showui)
+#define IWMPSyncDevice_deletePartnership(This) (This)->lpVtbl->deletePartnership(This)
+#define IWMPSyncDevice_start(This) (This)->lpVtbl->start(This)
+#define IWMPSyncDevice_stop(This) (This)->lpVtbl->stop(This)
+#define IWMPSyncDevice_showSettings(This) (This)->lpVtbl->showSettings(This)
+#define IWMPSyncDevice_isIdentical(This,device,ret) (This)->lpVtbl->isIdentical(This,device,ret)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPSyncDevice_QueryInterface(IWMPSyncDevice* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPSyncDevice_AddRef(IWMPSyncDevice* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPSyncDevice_Release(IWMPSyncDevice* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPSyncDevice methods ***/
+static FORCEINLINE HRESULT IWMPSyncDevice_get_friendlyName(IWMPSyncDevice* This,BSTR *name) {
+    return This->lpVtbl->get_friendlyName(This,name);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_put_friendlyName(IWMPSyncDevice* This,BSTR name) {
+    return This->lpVtbl->put_friendlyName(This,name);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_get_deviceName(IWMPSyncDevice* This,BSTR *name) {
+    return This->lpVtbl->get_deviceName(This,name);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_get_deviceId(IWMPSyncDevice* This,BSTR *device) {
+    return This->lpVtbl->get_deviceId(This,device);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_get_partnershipIndex(IWMPSyncDevice* This,LONG *index) {
+    return This->lpVtbl->get_partnershipIndex(This,index);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_get_connected(IWMPSyncDevice* This,VARIANT_BOOL *connected) {
+    return This->lpVtbl->get_connected(This,connected);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_get_status(IWMPSyncDevice* This,WMPDeviceStatus *status) {
+    return This->lpVtbl->get_status(This,status);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_get_syncState(IWMPSyncDevice* This,WMPSyncState *state) {
+    return This->lpVtbl->get_syncState(This,state);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_get_progress(IWMPSyncDevice* This,LONG *progress) {
+    return This->lpVtbl->get_progress(This,progress);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_getItemInfo(IWMPSyncDevice* This,BSTR name,BSTR *val) {
+    return This->lpVtbl->getItemInfo(This,name,val);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_createPartnership(IWMPSyncDevice* This,VARIANT_BOOL showui) {
+    return This->lpVtbl->createPartnership(This,showui);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_deletePartnership(IWMPSyncDevice* This) {
+    return This->lpVtbl->deletePartnership(This);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_start(IWMPSyncDevice* This) {
+    return This->lpVtbl->start(This);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_stop(IWMPSyncDevice* This) {
+    return This->lpVtbl->stop(This);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_showSettings(IWMPSyncDevice* This) {
+    return This->lpVtbl->showSettings(This);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice_isIdentical(IWMPSyncDevice* This,IWMPSyncDevice *device,VARIANT_BOOL *ret) {
+    return This->lpVtbl->isIdentical(This,device,ret);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPSyncDevice_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPSyncDevice2 interface
+ */
+#ifndef __IWMPSyncDevice2_INTERFACE_DEFINED__
+#define __IWMPSyncDevice2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPSyncDevice2, 0x88afb4b2, 0x140a, 0x44d2, 0x91,0xe6, 0x45,0x43,0xda,0x46,0x7c,0xd1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("88afb4b2-140a-44d2-91e6-4543da467cd1")
+IWMPSyncDevice2 : public IWMPSyncDevice
+{
+    virtual HRESULT STDMETHODCALLTYPE setItemInfo(
+        BSTR name,
+        BSTR val) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPSyncDevice2, 0x88afb4b2, 0x140a, 0x44d2, 0x91,0xe6, 0x45,0x43,0xda,0x46,0x7c,0xd1)
+#endif
+#else
+typedef struct IWMPSyncDevice2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPSyncDevice2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPSyncDevice2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPSyncDevice2 *This);
+
+    /*** IWMPSyncDevice methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_friendlyName)(
+        IWMPSyncDevice2 *This,
+        BSTR *name);
+
+    HRESULT (STDMETHODCALLTYPE *put_friendlyName)(
+        IWMPSyncDevice2 *This,
+        BSTR name);
+
+    HRESULT (STDMETHODCALLTYPE *get_deviceName)(
+        IWMPSyncDevice2 *This,
+        BSTR *name);
+
+    HRESULT (STDMETHODCALLTYPE *get_deviceId)(
+        IWMPSyncDevice2 *This,
+        BSTR *device);
+
+    HRESULT (STDMETHODCALLTYPE *get_partnershipIndex)(
+        IWMPSyncDevice2 *This,
+        LONG *index);
+
+    HRESULT (STDMETHODCALLTYPE *get_connected)(
+        IWMPSyncDevice2 *This,
+        VARIANT_BOOL *connected);
+
+    HRESULT (STDMETHODCALLTYPE *get_status)(
+        IWMPSyncDevice2 *This,
+        WMPDeviceStatus *status);
+
+    HRESULT (STDMETHODCALLTYPE *get_syncState)(
+        IWMPSyncDevice2 *This,
+        WMPSyncState *state);
+
+    HRESULT (STDMETHODCALLTYPE *get_progress)(
+        IWMPSyncDevice2 *This,
+        LONG *progress);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfo)(
+        IWMPSyncDevice2 *This,
+        BSTR name,
+        BSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *createPartnership)(
+        IWMPSyncDevice2 *This,
+        VARIANT_BOOL showui);
+
+    HRESULT (STDMETHODCALLTYPE *deletePartnership)(
+        IWMPSyncDevice2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *start)(
+        IWMPSyncDevice2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *stop)(
+        IWMPSyncDevice2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *showSettings)(
+        IWMPSyncDevice2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *isIdentical)(
+        IWMPSyncDevice2 *This,
+        IWMPSyncDevice *device,
+        VARIANT_BOOL *ret);
+
+    /*** IWMPSyncDevice2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *setItemInfo)(
+        IWMPSyncDevice2 *This,
+        BSTR name,
+        BSTR val);
+
+    END_INTERFACE
+} IWMPSyncDevice2Vtbl;
+
+interface IWMPSyncDevice2 {
+    CONST_VTBL IWMPSyncDevice2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPSyncDevice2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPSyncDevice2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPSyncDevice2_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPSyncDevice methods ***/
+#define IWMPSyncDevice2_get_friendlyName(This,name) (This)->lpVtbl->get_friendlyName(This,name)
+#define IWMPSyncDevice2_put_friendlyName(This,name) (This)->lpVtbl->put_friendlyName(This,name)
+#define IWMPSyncDevice2_get_deviceName(This,name) (This)->lpVtbl->get_deviceName(This,name)
+#define IWMPSyncDevice2_get_deviceId(This,device) (This)->lpVtbl->get_deviceId(This,device)
+#define IWMPSyncDevice2_get_partnershipIndex(This,index) (This)->lpVtbl->get_partnershipIndex(This,index)
+#define IWMPSyncDevice2_get_connected(This,connected) (This)->lpVtbl->get_connected(This,connected)
+#define IWMPSyncDevice2_get_status(This,status) (This)->lpVtbl->get_status(This,status)
+#define IWMPSyncDevice2_get_syncState(This,state) (This)->lpVtbl->get_syncState(This,state)
+#define IWMPSyncDevice2_get_progress(This,progress) (This)->lpVtbl->get_progress(This,progress)
+#define IWMPSyncDevice2_getItemInfo(This,name,val) (This)->lpVtbl->getItemInfo(This,name,val)
+#define IWMPSyncDevice2_createPartnership(This,showui) (This)->lpVtbl->createPartnership(This,showui)
+#define IWMPSyncDevice2_deletePartnership(This) (This)->lpVtbl->deletePartnership(This)
+#define IWMPSyncDevice2_start(This) (This)->lpVtbl->start(This)
+#define IWMPSyncDevice2_stop(This) (This)->lpVtbl->stop(This)
+#define IWMPSyncDevice2_showSettings(This) (This)->lpVtbl->showSettings(This)
+#define IWMPSyncDevice2_isIdentical(This,device,ret) (This)->lpVtbl->isIdentical(This,device,ret)
+/*** IWMPSyncDevice2 methods ***/
+#define IWMPSyncDevice2_setItemInfo(This,name,val) (This)->lpVtbl->setItemInfo(This,name,val)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPSyncDevice2_QueryInterface(IWMPSyncDevice2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPSyncDevice2_AddRef(IWMPSyncDevice2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPSyncDevice2_Release(IWMPSyncDevice2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPSyncDevice methods ***/
+static FORCEINLINE HRESULT IWMPSyncDevice2_get_friendlyName(IWMPSyncDevice2* This,BSTR *name) {
+    return This->lpVtbl->get_friendlyName(This,name);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_put_friendlyName(IWMPSyncDevice2* This,BSTR name) {
+    return This->lpVtbl->put_friendlyName(This,name);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_get_deviceName(IWMPSyncDevice2* This,BSTR *name) {
+    return This->lpVtbl->get_deviceName(This,name);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_get_deviceId(IWMPSyncDevice2* This,BSTR *device) {
+    return This->lpVtbl->get_deviceId(This,device);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_get_partnershipIndex(IWMPSyncDevice2* This,LONG *index) {
+    return This->lpVtbl->get_partnershipIndex(This,index);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_get_connected(IWMPSyncDevice2* This,VARIANT_BOOL *connected) {
+    return This->lpVtbl->get_connected(This,connected);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_get_status(IWMPSyncDevice2* This,WMPDeviceStatus *status) {
+    return This->lpVtbl->get_status(This,status);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_get_syncState(IWMPSyncDevice2* This,WMPSyncState *state) {
+    return This->lpVtbl->get_syncState(This,state);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_get_progress(IWMPSyncDevice2* This,LONG *progress) {
+    return This->lpVtbl->get_progress(This,progress);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_getItemInfo(IWMPSyncDevice2* This,BSTR name,BSTR *val) {
+    return This->lpVtbl->getItemInfo(This,name,val);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_createPartnership(IWMPSyncDevice2* This,VARIANT_BOOL showui) {
+    return This->lpVtbl->createPartnership(This,showui);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_deletePartnership(IWMPSyncDevice2* This) {
+    return This->lpVtbl->deletePartnership(This);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_start(IWMPSyncDevice2* This) {
+    return This->lpVtbl->start(This);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_stop(IWMPSyncDevice2* This) {
+    return This->lpVtbl->stop(This);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_showSettings(IWMPSyncDevice2* This) {
+    return This->lpVtbl->showSettings(This);
+}
+static FORCEINLINE HRESULT IWMPSyncDevice2_isIdentical(IWMPSyncDevice2* This,IWMPSyncDevice *device,VARIANT_BOOL *ret) {
+    return This->lpVtbl->isIdentical(This,device,ret);
+}
+/*** IWMPSyncDevice2 methods ***/
+static FORCEINLINE HRESULT IWMPSyncDevice2_setItemInfo(IWMPSyncDevice2* This,BSTR name,BSTR val) {
+    return This->lpVtbl->setItemInfo(This,name,val);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPSyncDevice2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPCdromRip interface
+ */
+#ifndef __IWMPCdromRip_INTERFACE_DEFINED__
+#define __IWMPCdromRip_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPCdromRip, 0x56e2294f, 0x69ed, 0x4629, 0xa8,0x69, 0xae,0xa7,0x2c,0x0d,0xcc,0x2c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("56e2294f-69ed-4629-a869-aea72c0dcc2c")
+IWMPCdromRip : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE get_ripState(
+        WMPRipState *state) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ripProgress(
+        LONG *progress) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE startRip(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE stopRip(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPCdromRip, 0x56e2294f, 0x69ed, 0x4629, 0xa8,0x69, 0xae,0xa7,0x2c,0x0d,0xcc,0x2c)
+#endif
+#else
+typedef struct IWMPCdromRipVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPCdromRip *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPCdromRip *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPCdromRip *This);
+
+    /*** IWMPCdromRip methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ripState)(
+        IWMPCdromRip *This,
+        WMPRipState *state);
+
+    HRESULT (STDMETHODCALLTYPE *get_ripProgress)(
+        IWMPCdromRip *This,
+        LONG *progress);
+
+    HRESULT (STDMETHODCALLTYPE *startRip)(
+        IWMPCdromRip *This);
+
+    HRESULT (STDMETHODCALLTYPE *stopRip)(
+        IWMPCdromRip *This);
+
+    END_INTERFACE
+} IWMPCdromRipVtbl;
+
+interface IWMPCdromRip {
+    CONST_VTBL IWMPCdromRipVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPCdromRip_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPCdromRip_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPCdromRip_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPCdromRip methods ***/
+#define IWMPCdromRip_get_ripState(This,state) (This)->lpVtbl->get_ripState(This,state)
+#define IWMPCdromRip_get_ripProgress(This,progress) (This)->lpVtbl->get_ripProgress(This,progress)
+#define IWMPCdromRip_startRip(This) (This)->lpVtbl->startRip(This)
+#define IWMPCdromRip_stopRip(This) (This)->lpVtbl->stopRip(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPCdromRip_QueryInterface(IWMPCdromRip* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPCdromRip_AddRef(IWMPCdromRip* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPCdromRip_Release(IWMPCdromRip* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPCdromRip methods ***/
+static FORCEINLINE HRESULT IWMPCdromRip_get_ripState(IWMPCdromRip* This,WMPRipState *state) {
+    return This->lpVtbl->get_ripState(This,state);
+}
+static FORCEINLINE HRESULT IWMPCdromRip_get_ripProgress(IWMPCdromRip* This,LONG *progress) {
+    return This->lpVtbl->get_ripProgress(This,progress);
+}
+static FORCEINLINE HRESULT IWMPCdromRip_startRip(IWMPCdromRip* This) {
+    return This->lpVtbl->startRip(This);
+}
+static FORCEINLINE HRESULT IWMPCdromRip_stopRip(IWMPCdromRip* This) {
+    return This->lpVtbl->stopRip(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPCdromRip_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPCdromBurn interface
+ */
+#ifndef __IWMPCdromBurn_INTERFACE_DEFINED__
+#define __IWMPCdromBurn_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPCdromBurn, 0xbd94dbeb, 0x417f, 0x4928, 0xaa,0x06, 0x08,0x7d,0x56,0xed,0x9b,0x59);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bd94dbeb-417f-4928-aa06-087d56ed9b59")
+IWMPCdromBurn : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE isAvailable(
+        BSTR item,
+        VARIANT_BOOL *available) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE getItemInfo(
+        BSTR item,
+        BSTR *val) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_label(
+        BSTR *label) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_label(
+        BSTR label) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_burnFormat(
+        WMPBurnFormat *format) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_burnFormat(
+        WMPBurnFormat format) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_burnPlaylist(
+        IWMPPlaylist **playlist) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_burnPlaylist(
+        IWMPPlaylist *playlist) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE refreshStatus(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_burnState(
+        WMPBurnState *state) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_burnProgress(
+        LONG *progress) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE startBurn(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE stopBurn(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE erase(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPCdromBurn, 0xbd94dbeb, 0x417f, 0x4928, 0xaa,0x06, 0x08,0x7d,0x56,0xed,0x9b,0x59)
+#endif
+#else
+typedef struct IWMPCdromBurnVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPCdromBurn *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPCdromBurn *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPCdromBurn *This);
+
+    /*** IWMPCdromBurn methods ***/
+    HRESULT (STDMETHODCALLTYPE *isAvailable)(
+        IWMPCdromBurn *This,
+        BSTR item,
+        VARIANT_BOOL *available);
+
+    HRESULT (STDMETHODCALLTYPE *getItemInfo)(
+        IWMPCdromBurn *This,
+        BSTR item,
+        BSTR *val);
+
+    HRESULT (STDMETHODCALLTYPE *get_label)(
+        IWMPCdromBurn *This,
+        BSTR *label);
+
+    HRESULT (STDMETHODCALLTYPE *put_label)(
+        IWMPCdromBurn *This,
+        BSTR label);
+
+    HRESULT (STDMETHODCALLTYPE *get_burnFormat)(
+        IWMPCdromBurn *This,
+        WMPBurnFormat *format);
+
+    HRESULT (STDMETHODCALLTYPE *put_burnFormat)(
+        IWMPCdromBurn *This,
+        WMPBurnFormat format);
+
+    HRESULT (STDMETHODCALLTYPE *get_burnPlaylist)(
+        IWMPCdromBurn *This,
+        IWMPPlaylist **playlist);
+
+    HRESULT (STDMETHODCALLTYPE *put_burnPlaylist)(
+        IWMPCdromBurn *This,
+        IWMPPlaylist *playlist);
+
+    HRESULT (STDMETHODCALLTYPE *refreshStatus)(
+        IWMPCdromBurn *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_burnState)(
+        IWMPCdromBurn *This,
+        WMPBurnState *state);
+
+    HRESULT (STDMETHODCALLTYPE *get_burnProgress)(
+        IWMPCdromBurn *This,
+        LONG *progress);
+
+    HRESULT (STDMETHODCALLTYPE *startBurn)(
+        IWMPCdromBurn *This);
+
+    HRESULT (STDMETHODCALLTYPE *stopBurn)(
+        IWMPCdromBurn *This);
+
+    HRESULT (STDMETHODCALLTYPE *erase)(
+        IWMPCdromBurn *This);
+
+    END_INTERFACE
+} IWMPCdromBurnVtbl;
+
+interface IWMPCdromBurn {
+    CONST_VTBL IWMPCdromBurnVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPCdromBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPCdromBurn_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPCdromBurn_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPCdromBurn methods ***/
+#define IWMPCdromBurn_isAvailable(This,item,available) (This)->lpVtbl->isAvailable(This,item,available)
+#define IWMPCdromBurn_getItemInfo(This,item,val) (This)->lpVtbl->getItemInfo(This,item,val)
+#define IWMPCdromBurn_get_label(This,label) (This)->lpVtbl->get_label(This,label)
+#define IWMPCdromBurn_put_label(This,label) (This)->lpVtbl->put_label(This,label)
+#define IWMPCdromBurn_get_burnFormat(This,format) (This)->lpVtbl->get_burnFormat(This,format)
+#define IWMPCdromBurn_put_burnFormat(This,format) (This)->lpVtbl->put_burnFormat(This,format)
+#define IWMPCdromBurn_get_burnPlaylist(This,playlist) (This)->lpVtbl->get_burnPlaylist(This,playlist)
+#define IWMPCdromBurn_put_burnPlaylist(This,playlist) (This)->lpVtbl->put_burnPlaylist(This,playlist)
+#define IWMPCdromBurn_refreshStatus(This) (This)->lpVtbl->refreshStatus(This)
+#define IWMPCdromBurn_get_burnState(This,state) (This)->lpVtbl->get_burnState(This,state)
+#define IWMPCdromBurn_get_burnProgress(This,progress) (This)->lpVtbl->get_burnProgress(This,progress)
+#define IWMPCdromBurn_startBurn(This) (This)->lpVtbl->startBurn(This)
+#define IWMPCdromBurn_stopBurn(This) (This)->lpVtbl->stopBurn(This)
+#define IWMPCdromBurn_erase(This) (This)->lpVtbl->erase(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPCdromBurn_QueryInterface(IWMPCdromBurn* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPCdromBurn_AddRef(IWMPCdromBurn* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPCdromBurn_Release(IWMPCdromBurn* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPCdromBurn methods ***/
+static FORCEINLINE HRESULT IWMPCdromBurn_isAvailable(IWMPCdromBurn* This,BSTR item,VARIANT_BOOL *available) {
+    return This->lpVtbl->isAvailable(This,item,available);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_getItemInfo(IWMPCdromBurn* This,BSTR item,BSTR *val) {
+    return This->lpVtbl->getItemInfo(This,item,val);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_get_label(IWMPCdromBurn* This,BSTR *label) {
+    return This->lpVtbl->get_label(This,label);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_put_label(IWMPCdromBurn* This,BSTR label) {
+    return This->lpVtbl->put_label(This,label);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_get_burnFormat(IWMPCdromBurn* This,WMPBurnFormat *format) {
+    return This->lpVtbl->get_burnFormat(This,format);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_put_burnFormat(IWMPCdromBurn* This,WMPBurnFormat format) {
+    return This->lpVtbl->put_burnFormat(This,format);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_get_burnPlaylist(IWMPCdromBurn* This,IWMPPlaylist **playlist) {
+    return This->lpVtbl->get_burnPlaylist(This,playlist);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_put_burnPlaylist(IWMPCdromBurn* This,IWMPPlaylist *playlist) {
+    return This->lpVtbl->put_burnPlaylist(This,playlist);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_refreshStatus(IWMPCdromBurn* This) {
+    return This->lpVtbl->refreshStatus(This);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_get_burnState(IWMPCdromBurn* This,WMPBurnState *state) {
+    return This->lpVtbl->get_burnState(This,state);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_get_burnProgress(IWMPCdromBurn* This,LONG *progress) {
+    return This->lpVtbl->get_burnProgress(This,progress);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_startBurn(IWMPCdromBurn* This) {
+    return This->lpVtbl->startBurn(This);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_stopBurn(IWMPCdromBurn* This) {
+    return This->lpVtbl->stopBurn(This);
+}
+static FORCEINLINE HRESULT IWMPCdromBurn_erase(IWMPCdromBurn* This) {
+    return This->lpVtbl->erase(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPCdromBurn_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPLibrary interface
+ */
+#ifndef __IWMPLibrary_INTERFACE_DEFINED__
+#define __IWMPLibrary_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPLibrary, 0x3df47861, 0x7df1, 0x4c1f, 0xa8,0x1b, 0x4c,0x26,0xf0,0xf7,0xa7,0xc6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3df47861-7df1-4c1f-a81b-4c26f0f7a7c6")
+IWMPLibrary : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE get_name(
+        BSTR *name) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_type(
+        WMPLibraryType *type) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_mediaCollection(
+        IWMPMediaCollection **collection) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE isIdentical(
+        IWMPLibrary *wmplibrary,
+        VARIANT_BOOL *ret) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPLibrary, 0x3df47861, 0x7df1, 0x4c1f, 0xa8,0x1b, 0x4c,0x26,0xf0,0xf7,0xa7,0xc6)
+#endif
+#else
+typedef struct IWMPLibraryVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPLibrary *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPLibrary *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPLibrary *This);
+
+    /*** IWMPLibrary methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_name)(
+        IWMPLibrary *This,
+        BSTR *name);
+
+    HRESULT (STDMETHODCALLTYPE *get_type)(
+        IWMPLibrary *This,
+        WMPLibraryType *type);
+
+    HRESULT (STDMETHODCALLTYPE *get_mediaCollection)(
+        IWMPLibrary *This,
+        IWMPMediaCollection **collection);
+
+    HRESULT (STDMETHODCALLTYPE *isIdentical)(
+        IWMPLibrary *This,
+        IWMPLibrary *wmplibrary,
+        VARIANT_BOOL *ret);
+
+    END_INTERFACE
+} IWMPLibraryVtbl;
+
+interface IWMPLibrary {
+    CONST_VTBL IWMPLibraryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPLibrary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPLibrary_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPLibrary_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPLibrary methods ***/
+#define IWMPLibrary_get_name(This,name) (This)->lpVtbl->get_name(This,name)
+#define IWMPLibrary_get_type(This,type) (This)->lpVtbl->get_type(This,type)
+#define IWMPLibrary_get_mediaCollection(This,collection) (This)->lpVtbl->get_mediaCollection(This,collection)
+#define IWMPLibrary_isIdentical(This,wmplibrary,ret) (This)->lpVtbl->isIdentical(This,wmplibrary,ret)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPLibrary_QueryInterface(IWMPLibrary* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPLibrary_AddRef(IWMPLibrary* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPLibrary_Release(IWMPLibrary* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPLibrary methods ***/
+static FORCEINLINE HRESULT IWMPLibrary_get_name(IWMPLibrary* This,BSTR *name) {
+    return This->lpVtbl->get_name(This,name);
+}
+static FORCEINLINE HRESULT IWMPLibrary_get_type(IWMPLibrary* This,WMPLibraryType *type) {
+    return This->lpVtbl->get_type(This,type);
+}
+static FORCEINLINE HRESULT IWMPLibrary_get_mediaCollection(IWMPLibrary* This,IWMPMediaCollection **collection) {
+    return This->lpVtbl->get_mediaCollection(This,collection);
+}
+static FORCEINLINE HRESULT IWMPLibrary_isIdentical(IWMPLibrary* This,IWMPLibrary *wmplibrary,VARIANT_BOOL *ret) {
+    return This->lpVtbl->isIdentical(This,wmplibrary,ret);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPLibrary_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPEvents interface
+ */
+#ifndef __IWMPEvents_INTERFACE_DEFINED__
+#define __IWMPEvents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPEvents, 0x19a6627b, 0xda9e, 0x47c1, 0xbb,0x23, 0x00,0xb5,0xe6,0x68,0x23,0x6a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("19a6627b-da9e-47c1-bb23-00b5e668236a")
+IWMPEvents : public IUnknown
+{
+    virtual void STDMETHODCALLTYPE OpenStateChange(
+        LONG state) = 0;
+
+    virtual void STDMETHODCALLTYPE PlayStateChange(
+        LONG state) = 0;
+
+    virtual void STDMETHODCALLTYPE AudioLanguageChange(
+        LONG lang) = 0;
+
+    virtual void STDMETHODCALLTYPE StatusChange(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE ScriptCommand(
+        BSTR type,
+        BSTR param) = 0;
+
+    virtual void STDMETHODCALLTYPE NewStream(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE Disconnect(
+        LONG result) = 0;
+
+    virtual void STDMETHODCALLTYPE Buffering(
+        VARIANT_BOOL start) = 0;
+
+    virtual void STDMETHODCALLTYPE Error(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE Warning(
+        LONG warning,
+        LONG param,
+        BSTR description) = 0;
+
+    virtual void STDMETHODCALLTYPE EndOfStream(
+        LONG result) = 0;
+
+    virtual void STDMETHODCALLTYPE PositionChange(
+        double old_position,
+        double new_position) = 0;
+
+    virtual void STDMETHODCALLTYPE MarkerHit(
+        LONG marker) = 0;
+
+    virtual void STDMETHODCALLTYPE DurationUnitChange(
+        LONG duration) = 0;
+
+    virtual void STDMETHODCALLTYPE CdromMediaChange(
+        LONG num) = 0;
+
+    virtual void STDMETHODCALLTYPE PlaylistChange(
+        IDispatch *playlist,
+        WMPPlaylistChangeEventType change) = 0;
+
+    virtual void STDMETHODCALLTYPE CurrentPlaylistChange(
+        WMPPlaylistChangeEventType change) = 0;
+
+    virtual void STDMETHODCALLTYPE CurrentPlaylistItemAvailable(
+        BSTR item) = 0;
+
+    virtual void STDMETHODCALLTYPE MediaChange(
+        IDispatch *item) = 0;
+
+    virtual void STDMETHODCALLTYPE CurrentMediaItemAvailable(
+        BSTR name) = 0;
+
+    virtual void STDMETHODCALLTYPE CurrentItemChange(
+        IDispatch *media) = 0;
+
+    virtual void STDMETHODCALLTYPE MediaCollectionChange(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE MediaCollectionAttributeStringAdded(
+        BSTR name,
+        BSTR val) = 0;
+
+    virtual void STDMETHODCALLTYPE MediaCollectionAttributeStringRemoved(
+        BSTR name,
+        BSTR val) = 0;
+
+    virtual void STDMETHODCALLTYPE MediaCollectionAttributeStringChanged(
+        BSTR name,
+        BSTR old_val,
+        BSTR new_val) = 0;
+
+    virtual void STDMETHODCALLTYPE PlaylistCollectionChange(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE PlaylistCollectionPlaylistAdded(
+        BSTR name) = 0;
+
+    virtual void STDMETHODCALLTYPE PlaylistCollectionPlaylistRemoved(
+        BSTR name) = 0;
+
+    virtual void STDMETHODCALLTYPE PlaylistCollectionPlaylistSetAsDeleted(
+        BSTR name,
+        VARIANT_BOOL deleted) = 0;
+
+    virtual void STDMETHODCALLTYPE ModeChange(
+        BSTR ModeName,
+        VARIANT_BOOL value) = 0;
+
+    virtual void STDMETHODCALLTYPE MediaError(
+        IDispatch *media) = 0;
+
+    virtual void STDMETHODCALLTYPE OpenPlaylistSwitch(
+        IDispatch *item) = 0;
+
+    virtual void STDMETHODCALLTYPE DomainChange(
+        BSTR domain) = 0;
+
+    virtual void STDMETHODCALLTYPE SwitchedToPlayerApplication(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE SwitchedToControl(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE PlayerDockedStateChange(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE PlayerReconnect(
+        ) = 0;
+
+    virtual void STDMETHODCALLTYPE Click(
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y) = 0;
+
+    virtual void STDMETHODCALLTYPE DoubleClick(
+        short button,
+        short shift_state,
+        LONG fX,
+        LONG fY) = 0;
+
+    virtual void STDMETHODCALLTYPE KeyDown(
+        short keycode,
+        short shift_state) = 0;
+
+    virtual void STDMETHODCALLTYPE KeyPress(
+        short ascii) = 0;
+
+    virtual void STDMETHODCALLTYPE KeyUp(
+        short keycode,
+        short shift_state) = 0;
+
+    virtual void STDMETHODCALLTYPE MouseDown(
+        short button,
+        short nShiftState,
+        LONG x,
+        LONG y) = 0;
+
+    virtual void STDMETHODCALLTYPE MouseMove(
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y) = 0;
+
+    virtual void STDMETHODCALLTYPE MouseUp(
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPEvents, 0x19a6627b, 0xda9e, 0x47c1, 0xbb,0x23, 0x00,0xb5,0xe6,0x68,0x23,0x6a)
+#endif
+#else
+typedef struct IWMPEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPEvents *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPEvents *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPEvents *This);
+
+    /*** IWMPEvents methods ***/
+    void (STDMETHODCALLTYPE *OpenStateChange)(
+        IWMPEvents *This,
+        LONG state);
+
+    void (STDMETHODCALLTYPE *PlayStateChange)(
+        IWMPEvents *This,
+        LONG state);
+
+    void (STDMETHODCALLTYPE *AudioLanguageChange)(
+        IWMPEvents *This,
+        LONG lang);
+
+    void (STDMETHODCALLTYPE *StatusChange)(
+        IWMPEvents *This);
+
+    void (STDMETHODCALLTYPE *ScriptCommand)(
+        IWMPEvents *This,
+        BSTR type,
+        BSTR param);
+
+    void (STDMETHODCALLTYPE *NewStream)(
+        IWMPEvents *This);
+
+    void (STDMETHODCALLTYPE *Disconnect)(
+        IWMPEvents *This,
+        LONG result);
+
+    void (STDMETHODCALLTYPE *Buffering)(
+        IWMPEvents *This,
+        VARIANT_BOOL start);
+
+    void (STDMETHODCALLTYPE *Error)(
+        IWMPEvents *This);
+
+    void (STDMETHODCALLTYPE *Warning)(
+        IWMPEvents *This,
+        LONG warning,
+        LONG param,
+        BSTR description);
+
+    void (STDMETHODCALLTYPE *EndOfStream)(
+        IWMPEvents *This,
+        LONG result);
+
+    void (STDMETHODCALLTYPE *PositionChange)(
+        IWMPEvents *This,
+        double old_position,
+        double new_position);
+
+    void (STDMETHODCALLTYPE *MarkerHit)(
+        IWMPEvents *This,
+        LONG marker);
+
+    void (STDMETHODCALLTYPE *DurationUnitChange)(
+        IWMPEvents *This,
+        LONG duration);
+
+    void (STDMETHODCALLTYPE *CdromMediaChange)(
+        IWMPEvents *This,
+        LONG num);
+
+    void (STDMETHODCALLTYPE *PlaylistChange)(
+        IWMPEvents *This,
+        IDispatch *playlist,
+        WMPPlaylistChangeEventType change);
+
+    void (STDMETHODCALLTYPE *CurrentPlaylistChange)(
+        IWMPEvents *This,
+        WMPPlaylistChangeEventType change);
+
+    void (STDMETHODCALLTYPE *CurrentPlaylistItemAvailable)(
+        IWMPEvents *This,
+        BSTR item);
+
+    void (STDMETHODCALLTYPE *MediaChange)(
+        IWMPEvents *This,
+        IDispatch *item);
+
+    void (STDMETHODCALLTYPE *CurrentMediaItemAvailable)(
+        IWMPEvents *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *CurrentItemChange)(
+        IWMPEvents *This,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *MediaCollectionChange)(
+        IWMPEvents *This);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringAdded)(
+        IWMPEvents *This,
+        BSTR name,
+        BSTR val);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringRemoved)(
+        IWMPEvents *This,
+        BSTR name,
+        BSTR val);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringChanged)(
+        IWMPEvents *This,
+        BSTR name,
+        BSTR old_val,
+        BSTR new_val);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionChange)(
+        IWMPEvents *This);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistAdded)(
+        IWMPEvents *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistRemoved)(
+        IWMPEvents *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistSetAsDeleted)(
+        IWMPEvents *This,
+        BSTR name,
+        VARIANT_BOOL deleted);
+
+    void (STDMETHODCALLTYPE *ModeChange)(
+        IWMPEvents *This,
+        BSTR ModeName,
+        VARIANT_BOOL value);
+
+    void (STDMETHODCALLTYPE *MediaError)(
+        IWMPEvents *This,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *OpenPlaylistSwitch)(
+        IWMPEvents *This,
+        IDispatch *item);
+
+    void (STDMETHODCALLTYPE *DomainChange)(
+        IWMPEvents *This,
+        BSTR domain);
+
+    void (STDMETHODCALLTYPE *SwitchedToPlayerApplication)(
+        IWMPEvents *This);
+
+    void (STDMETHODCALLTYPE *SwitchedToControl)(
+        IWMPEvents *This);
+
+    void (STDMETHODCALLTYPE *PlayerDockedStateChange)(
+        IWMPEvents *This);
+
+    void (STDMETHODCALLTYPE *PlayerReconnect)(
+        IWMPEvents *This);
+
+    void (STDMETHODCALLTYPE *Click)(
+        IWMPEvents *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *DoubleClick)(
+        IWMPEvents *This,
+        short button,
+        short shift_state,
+        LONG fX,
+        LONG fY);
+
+    void (STDMETHODCALLTYPE *KeyDown)(
+        IWMPEvents *This,
+        short keycode,
+        short shift_state);
+
+    void (STDMETHODCALLTYPE *KeyPress)(
+        IWMPEvents *This,
+        short ascii);
+
+    void (STDMETHODCALLTYPE *KeyUp)(
+        IWMPEvents *This,
+        short keycode,
+        short shift_state);
+
+    void (STDMETHODCALLTYPE *MouseDown)(
+        IWMPEvents *This,
+        short button,
+        short nShiftState,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *MouseMove)(
+        IWMPEvents *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *MouseUp)(
+        IWMPEvents *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    END_INTERFACE
+} IWMPEventsVtbl;
+
+interface IWMPEvents {
+    CONST_VTBL IWMPEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPEvents methods ***/
+#define IWMPEvents_OpenStateChange(This,state) (This)->lpVtbl->OpenStateChange(This,state)
+#define IWMPEvents_PlayStateChange(This,state) (This)->lpVtbl->PlayStateChange(This,state)
+#define IWMPEvents_AudioLanguageChange(This,lang) (This)->lpVtbl->AudioLanguageChange(This,lang)
+#define IWMPEvents_StatusChange(This) (This)->lpVtbl->StatusChange(This)
+#define IWMPEvents_ScriptCommand(This,type,param) (This)->lpVtbl->ScriptCommand(This,type,param)
+#define IWMPEvents_NewStream(This) (This)->lpVtbl->NewStream(This)
+#define IWMPEvents_Disconnect(This,result) (This)->lpVtbl->Disconnect(This,result)
+#define IWMPEvents_Buffering(This,start) (This)->lpVtbl->Buffering(This,start)
+#define IWMPEvents_Error(This) (This)->lpVtbl->Error(This)
+#define IWMPEvents_Warning(This,warning,param,description) (This)->lpVtbl->Warning(This,warning,param,description)
+#define IWMPEvents_EndOfStream(This,result) (This)->lpVtbl->EndOfStream(This,result)
+#define IWMPEvents_PositionChange(This,old_position,new_position) (This)->lpVtbl->PositionChange(This,old_position,new_position)
+#define IWMPEvents_MarkerHit(This,marker) (This)->lpVtbl->MarkerHit(This,marker)
+#define IWMPEvents_DurationUnitChange(This,duration) (This)->lpVtbl->DurationUnitChange(This,duration)
+#define IWMPEvents_CdromMediaChange(This,num) (This)->lpVtbl->CdromMediaChange(This,num)
+#define IWMPEvents_PlaylistChange(This,playlist,change) (This)->lpVtbl->PlaylistChange(This,playlist,change)
+#define IWMPEvents_CurrentPlaylistChange(This,change) (This)->lpVtbl->CurrentPlaylistChange(This,change)
+#define IWMPEvents_CurrentPlaylistItemAvailable(This,item) (This)->lpVtbl->CurrentPlaylistItemAvailable(This,item)
+#define IWMPEvents_MediaChange(This,item) (This)->lpVtbl->MediaChange(This,item)
+#define IWMPEvents_CurrentMediaItemAvailable(This,name) (This)->lpVtbl->CurrentMediaItemAvailable(This,name)
+#define IWMPEvents_CurrentItemChange(This,media) (This)->lpVtbl->CurrentItemChange(This,media)
+#define IWMPEvents_MediaCollectionChange(This) (This)->lpVtbl->MediaCollectionChange(This)
+#define IWMPEvents_MediaCollectionAttributeStringAdded(This,name,val) (This)->lpVtbl->MediaCollectionAttributeStringAdded(This,name,val)
+#define IWMPEvents_MediaCollectionAttributeStringRemoved(This,name,val) (This)->lpVtbl->MediaCollectionAttributeStringRemoved(This,name,val)
+#define IWMPEvents_MediaCollectionAttributeStringChanged(This,name,old_val,new_val) (This)->lpVtbl->MediaCollectionAttributeStringChanged(This,name,old_val,new_val)
+#define IWMPEvents_PlaylistCollectionChange(This) (This)->lpVtbl->PlaylistCollectionChange(This)
+#define IWMPEvents_PlaylistCollectionPlaylistAdded(This,name) (This)->lpVtbl->PlaylistCollectionPlaylistAdded(This,name)
+#define IWMPEvents_PlaylistCollectionPlaylistRemoved(This,name) (This)->lpVtbl->PlaylistCollectionPlaylistRemoved(This,name)
+#define IWMPEvents_PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted) (This)->lpVtbl->PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted)
+#define IWMPEvents_ModeChange(This,ModeName,value) (This)->lpVtbl->ModeChange(This,ModeName,value)
+#define IWMPEvents_MediaError(This,media) (This)->lpVtbl->MediaError(This,media)
+#define IWMPEvents_OpenPlaylistSwitch(This,item) (This)->lpVtbl->OpenPlaylistSwitch(This,item)
+#define IWMPEvents_DomainChange(This,domain) (This)->lpVtbl->DomainChange(This,domain)
+#define IWMPEvents_SwitchedToPlayerApplication(This) (This)->lpVtbl->SwitchedToPlayerApplication(This)
+#define IWMPEvents_SwitchedToControl(This) (This)->lpVtbl->SwitchedToControl(This)
+#define IWMPEvents_PlayerDockedStateChange(This) (This)->lpVtbl->PlayerDockedStateChange(This)
+#define IWMPEvents_PlayerReconnect(This) (This)->lpVtbl->PlayerReconnect(This)
+#define IWMPEvents_Click(This,button,shift_state,x,y) (This)->lpVtbl->Click(This,button,shift_state,x,y)
+#define IWMPEvents_DoubleClick(This,button,shift_state,fX,fY) (This)->lpVtbl->DoubleClick(This,button,shift_state,fX,fY)
+#define IWMPEvents_KeyDown(This,keycode,shift_state) (This)->lpVtbl->KeyDown(This,keycode,shift_state)
+#define IWMPEvents_KeyPress(This,ascii) (This)->lpVtbl->KeyPress(This,ascii)
+#define IWMPEvents_KeyUp(This,keycode,shift_state) (This)->lpVtbl->KeyUp(This,keycode,shift_state)
+#define IWMPEvents_MouseDown(This,button,nShiftState,x,y) (This)->lpVtbl->MouseDown(This,button,nShiftState,x,y)
+#define IWMPEvents_MouseMove(This,button,shift_state,x,y) (This)->lpVtbl->MouseMove(This,button,shift_state,x,y)
+#define IWMPEvents_MouseUp(This,button,shift_state,x,y) (This)->lpVtbl->MouseUp(This,button,shift_state,x,y)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPEvents_QueryInterface(IWMPEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPEvents_AddRef(IWMPEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPEvents_Release(IWMPEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPEvents methods ***/
+static FORCEINLINE void IWMPEvents_OpenStateChange(IWMPEvents* This,LONG state) {
+    This->lpVtbl->OpenStateChange(This,state);
+}
+static FORCEINLINE void IWMPEvents_PlayStateChange(IWMPEvents* This,LONG state) {
+    This->lpVtbl->PlayStateChange(This,state);
+}
+static FORCEINLINE void IWMPEvents_AudioLanguageChange(IWMPEvents* This,LONG lang) {
+    This->lpVtbl->AudioLanguageChange(This,lang);
+}
+static FORCEINLINE void IWMPEvents_StatusChange(IWMPEvents* This) {
+    This->lpVtbl->StatusChange(This);
+}
+static FORCEINLINE void IWMPEvents_ScriptCommand(IWMPEvents* This,BSTR type,BSTR param) {
+    This->lpVtbl->ScriptCommand(This,type,param);
+}
+static FORCEINLINE void IWMPEvents_NewStream(IWMPEvents* This) {
+    This->lpVtbl->NewStream(This);
+}
+static FORCEINLINE void IWMPEvents_Disconnect(IWMPEvents* This,LONG result) {
+    This->lpVtbl->Disconnect(This,result);
+}
+static FORCEINLINE void IWMPEvents_Buffering(IWMPEvents* This,VARIANT_BOOL start) {
+    This->lpVtbl->Buffering(This,start);
+}
+static FORCEINLINE void IWMPEvents_Error(IWMPEvents* This) {
+    This->lpVtbl->Error(This);
+}
+static FORCEINLINE void IWMPEvents_Warning(IWMPEvents* This,LONG warning,LONG param,BSTR description) {
+    This->lpVtbl->Warning(This,warning,param,description);
+}
+static FORCEINLINE void IWMPEvents_EndOfStream(IWMPEvents* This,LONG result) {
+    This->lpVtbl->EndOfStream(This,result);
+}
+static FORCEINLINE void IWMPEvents_PositionChange(IWMPEvents* This,double old_position,double new_position) {
+    This->lpVtbl->PositionChange(This,old_position,new_position);
+}
+static FORCEINLINE void IWMPEvents_MarkerHit(IWMPEvents* This,LONG marker) {
+    This->lpVtbl->MarkerHit(This,marker);
+}
+static FORCEINLINE void IWMPEvents_DurationUnitChange(IWMPEvents* This,LONG duration) {
+    This->lpVtbl->DurationUnitChange(This,duration);
+}
+static FORCEINLINE void IWMPEvents_CdromMediaChange(IWMPEvents* This,LONG num) {
+    This->lpVtbl->CdromMediaChange(This,num);
+}
+static FORCEINLINE void IWMPEvents_PlaylistChange(IWMPEvents* This,IDispatch *playlist,WMPPlaylistChangeEventType change) {
+    This->lpVtbl->PlaylistChange(This,playlist,change);
+}
+static FORCEINLINE void IWMPEvents_CurrentPlaylistChange(IWMPEvents* This,WMPPlaylistChangeEventType change) {
+    This->lpVtbl->CurrentPlaylistChange(This,change);
+}
+static FORCEINLINE void IWMPEvents_CurrentPlaylistItemAvailable(IWMPEvents* This,BSTR item) {
+    This->lpVtbl->CurrentPlaylistItemAvailable(This,item);
+}
+static FORCEINLINE void IWMPEvents_MediaChange(IWMPEvents* This,IDispatch *item) {
+    This->lpVtbl->MediaChange(This,item);
+}
+static FORCEINLINE void IWMPEvents_CurrentMediaItemAvailable(IWMPEvents* This,BSTR name) {
+    This->lpVtbl->CurrentMediaItemAvailable(This,name);
+}
+static FORCEINLINE void IWMPEvents_CurrentItemChange(IWMPEvents* This,IDispatch *media) {
+    This->lpVtbl->CurrentItemChange(This,media);
+}
+static FORCEINLINE void IWMPEvents_MediaCollectionChange(IWMPEvents* This) {
+    This->lpVtbl->MediaCollectionChange(This);
+}
+static FORCEINLINE void IWMPEvents_MediaCollectionAttributeStringAdded(IWMPEvents* This,BSTR name,BSTR val) {
+    This->lpVtbl->MediaCollectionAttributeStringAdded(This,name,val);
+}
+static FORCEINLINE void IWMPEvents_MediaCollectionAttributeStringRemoved(IWMPEvents* This,BSTR name,BSTR val) {
+    This->lpVtbl->MediaCollectionAttributeStringRemoved(This,name,val);
+}
+static FORCEINLINE void IWMPEvents_MediaCollectionAttributeStringChanged(IWMPEvents* This,BSTR name,BSTR old_val,BSTR new_val) {
+    This->lpVtbl->MediaCollectionAttributeStringChanged(This,name,old_val,new_val);
+}
+static FORCEINLINE void IWMPEvents_PlaylistCollectionChange(IWMPEvents* This) {
+    This->lpVtbl->PlaylistCollectionChange(This);
+}
+static FORCEINLINE void IWMPEvents_PlaylistCollectionPlaylistAdded(IWMPEvents* This,BSTR name) {
+    This->lpVtbl->PlaylistCollectionPlaylistAdded(This,name);
+}
+static FORCEINLINE void IWMPEvents_PlaylistCollectionPlaylistRemoved(IWMPEvents* This,BSTR name) {
+    This->lpVtbl->PlaylistCollectionPlaylistRemoved(This,name);
+}
+static FORCEINLINE void IWMPEvents_PlaylistCollectionPlaylistSetAsDeleted(IWMPEvents* This,BSTR name,VARIANT_BOOL deleted) {
+    This->lpVtbl->PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted);
+}
+static FORCEINLINE void IWMPEvents_ModeChange(IWMPEvents* This,BSTR ModeName,VARIANT_BOOL value) {
+    This->lpVtbl->ModeChange(This,ModeName,value);
+}
+static FORCEINLINE void IWMPEvents_MediaError(IWMPEvents* This,IDispatch *media) {
+    This->lpVtbl->MediaError(This,media);
+}
+static FORCEINLINE void IWMPEvents_OpenPlaylistSwitch(IWMPEvents* This,IDispatch *item) {
+    This->lpVtbl->OpenPlaylistSwitch(This,item);
+}
+static FORCEINLINE void IWMPEvents_DomainChange(IWMPEvents* This,BSTR domain) {
+    This->lpVtbl->DomainChange(This,domain);
+}
+static FORCEINLINE void IWMPEvents_SwitchedToPlayerApplication(IWMPEvents* This) {
+    This->lpVtbl->SwitchedToPlayerApplication(This);
+}
+static FORCEINLINE void IWMPEvents_SwitchedToControl(IWMPEvents* This) {
+    This->lpVtbl->SwitchedToControl(This);
+}
+static FORCEINLINE void IWMPEvents_PlayerDockedStateChange(IWMPEvents* This) {
+    This->lpVtbl->PlayerDockedStateChange(This);
+}
+static FORCEINLINE void IWMPEvents_PlayerReconnect(IWMPEvents* This) {
+    This->lpVtbl->PlayerReconnect(This);
+}
+static FORCEINLINE void IWMPEvents_Click(IWMPEvents* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->Click(This,button,shift_state,x,y);
+}
+static FORCEINLINE void IWMPEvents_DoubleClick(IWMPEvents* This,short button,short shift_state,LONG fX,LONG fY) {
+    This->lpVtbl->DoubleClick(This,button,shift_state,fX,fY);
+}
+static FORCEINLINE void IWMPEvents_KeyDown(IWMPEvents* This,short keycode,short shift_state) {
+    This->lpVtbl->KeyDown(This,keycode,shift_state);
+}
+static FORCEINLINE void IWMPEvents_KeyPress(IWMPEvents* This,short ascii) {
+    This->lpVtbl->KeyPress(This,ascii);
+}
+static FORCEINLINE void IWMPEvents_KeyUp(IWMPEvents* This,short keycode,short shift_state) {
+    This->lpVtbl->KeyUp(This,keycode,shift_state);
+}
+static FORCEINLINE void IWMPEvents_MouseDown(IWMPEvents* This,short button,short nShiftState,LONG x,LONG y) {
+    This->lpVtbl->MouseDown(This,button,nShiftState,x,y);
+}
+static FORCEINLINE void IWMPEvents_MouseMove(IWMPEvents* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->MouseMove(This,button,shift_state,x,y);
+}
+static FORCEINLINE void IWMPEvents_MouseUp(IWMPEvents* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->MouseUp(This,button,shift_state,x,y);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPEvents_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPEvents2 interface
+ */
+#ifndef __IWMPEvents2_INTERFACE_DEFINED__
+#define __IWMPEvents2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPEvents2, 0x1e7601fa, 0x47ea, 0x4107, 0x9e,0xa9, 0x90,0x04,0xed,0x96,0x84,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1e7601fa-47ea-4107-9ea9-9004ed9684ff")
+IWMPEvents2 : public IWMPEvents
+{
+    virtual void STDMETHODCALLTYPE DeviceConnect(
+        IWMPSyncDevice *device) = 0;
+
+    virtual void STDMETHODCALLTYPE DeviceDisconnect(
+        IWMPSyncDevice *device) = 0;
+
+    virtual void STDMETHODCALLTYPE DeviceStatusChange(
+        IWMPSyncDevice *device,
+        WMPDeviceStatus status) = 0;
+
+    virtual void STDMETHODCALLTYPE DeviceSyncStateChange(
+        IWMPSyncDevice *device,
+        WMPSyncState state) = 0;
+
+    virtual void STDMETHODCALLTYPE DeviceSyncError(
+        IWMPSyncDevice *device,
+        IDispatch *media) = 0;
+
+    virtual void STDMETHODCALLTYPE CreatePartnershipComplete(
+        IWMPSyncDevice *device,
+        HRESULT result) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPEvents2, 0x1e7601fa, 0x47ea, 0x4107, 0x9e,0xa9, 0x90,0x04,0xed,0x96,0x84,0xff)
+#endif
+#else
+typedef struct IWMPEvents2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPEvents2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPEvents2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPEvents2 *This);
+
+    /*** IWMPEvents methods ***/
+    void (STDMETHODCALLTYPE *OpenStateChange)(
+        IWMPEvents2 *This,
+        LONG state);
+
+    void (STDMETHODCALLTYPE *PlayStateChange)(
+        IWMPEvents2 *This,
+        LONG state);
+
+    void (STDMETHODCALLTYPE *AudioLanguageChange)(
+        IWMPEvents2 *This,
+        LONG lang);
+
+    void (STDMETHODCALLTYPE *StatusChange)(
+        IWMPEvents2 *This);
+
+    void (STDMETHODCALLTYPE *ScriptCommand)(
+        IWMPEvents2 *This,
+        BSTR type,
+        BSTR param);
+
+    void (STDMETHODCALLTYPE *NewStream)(
+        IWMPEvents2 *This);
+
+    void (STDMETHODCALLTYPE *Disconnect)(
+        IWMPEvents2 *This,
+        LONG result);
+
+    void (STDMETHODCALLTYPE *Buffering)(
+        IWMPEvents2 *This,
+        VARIANT_BOOL start);
+
+    void (STDMETHODCALLTYPE *Error)(
+        IWMPEvents2 *This);
+
+    void (STDMETHODCALLTYPE *Warning)(
+        IWMPEvents2 *This,
+        LONG warning,
+        LONG param,
+        BSTR description);
+
+    void (STDMETHODCALLTYPE *EndOfStream)(
+        IWMPEvents2 *This,
+        LONG result);
+
+    void (STDMETHODCALLTYPE *PositionChange)(
+        IWMPEvents2 *This,
+        double old_position,
+        double new_position);
+
+    void (STDMETHODCALLTYPE *MarkerHit)(
+        IWMPEvents2 *This,
+        LONG marker);
+
+    void (STDMETHODCALLTYPE *DurationUnitChange)(
+        IWMPEvents2 *This,
+        LONG duration);
+
+    void (STDMETHODCALLTYPE *CdromMediaChange)(
+        IWMPEvents2 *This,
+        LONG num);
+
+    void (STDMETHODCALLTYPE *PlaylistChange)(
+        IWMPEvents2 *This,
+        IDispatch *playlist,
+        WMPPlaylistChangeEventType change);
+
+    void (STDMETHODCALLTYPE *CurrentPlaylistChange)(
+        IWMPEvents2 *This,
+        WMPPlaylistChangeEventType change);
+
+    void (STDMETHODCALLTYPE *CurrentPlaylistItemAvailable)(
+        IWMPEvents2 *This,
+        BSTR item);
+
+    void (STDMETHODCALLTYPE *MediaChange)(
+        IWMPEvents2 *This,
+        IDispatch *item);
+
+    void (STDMETHODCALLTYPE *CurrentMediaItemAvailable)(
+        IWMPEvents2 *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *CurrentItemChange)(
+        IWMPEvents2 *This,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *MediaCollectionChange)(
+        IWMPEvents2 *This);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringAdded)(
+        IWMPEvents2 *This,
+        BSTR name,
+        BSTR val);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringRemoved)(
+        IWMPEvents2 *This,
+        BSTR name,
+        BSTR val);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringChanged)(
+        IWMPEvents2 *This,
+        BSTR name,
+        BSTR old_val,
+        BSTR new_val);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionChange)(
+        IWMPEvents2 *This);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistAdded)(
+        IWMPEvents2 *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistRemoved)(
+        IWMPEvents2 *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistSetAsDeleted)(
+        IWMPEvents2 *This,
+        BSTR name,
+        VARIANT_BOOL deleted);
+
+    void (STDMETHODCALLTYPE *ModeChange)(
+        IWMPEvents2 *This,
+        BSTR ModeName,
+        VARIANT_BOOL value);
+
+    void (STDMETHODCALLTYPE *MediaError)(
+        IWMPEvents2 *This,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *OpenPlaylistSwitch)(
+        IWMPEvents2 *This,
+        IDispatch *item);
+
+    void (STDMETHODCALLTYPE *DomainChange)(
+        IWMPEvents2 *This,
+        BSTR domain);
+
+    void (STDMETHODCALLTYPE *SwitchedToPlayerApplication)(
+        IWMPEvents2 *This);
+
+    void (STDMETHODCALLTYPE *SwitchedToControl)(
+        IWMPEvents2 *This);
+
+    void (STDMETHODCALLTYPE *PlayerDockedStateChange)(
+        IWMPEvents2 *This);
+
+    void (STDMETHODCALLTYPE *PlayerReconnect)(
+        IWMPEvents2 *This);
+
+    void (STDMETHODCALLTYPE *Click)(
+        IWMPEvents2 *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *DoubleClick)(
+        IWMPEvents2 *This,
+        short button,
+        short shift_state,
+        LONG fX,
+        LONG fY);
+
+    void (STDMETHODCALLTYPE *KeyDown)(
+        IWMPEvents2 *This,
+        short keycode,
+        short shift_state);
+
+    void (STDMETHODCALLTYPE *KeyPress)(
+        IWMPEvents2 *This,
+        short ascii);
+
+    void (STDMETHODCALLTYPE *KeyUp)(
+        IWMPEvents2 *This,
+        short keycode,
+        short shift_state);
+
+    void (STDMETHODCALLTYPE *MouseDown)(
+        IWMPEvents2 *This,
+        short button,
+        short nShiftState,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *MouseMove)(
+        IWMPEvents2 *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *MouseUp)(
+        IWMPEvents2 *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    /*** IWMPEvents2 methods ***/
+    void (STDMETHODCALLTYPE *DeviceConnect)(
+        IWMPEvents2 *This,
+        IWMPSyncDevice *device);
+
+    void (STDMETHODCALLTYPE *DeviceDisconnect)(
+        IWMPEvents2 *This,
+        IWMPSyncDevice *device);
+
+    void (STDMETHODCALLTYPE *DeviceStatusChange)(
+        IWMPEvents2 *This,
+        IWMPSyncDevice *device,
+        WMPDeviceStatus status);
+
+    void (STDMETHODCALLTYPE *DeviceSyncStateChange)(
+        IWMPEvents2 *This,
+        IWMPSyncDevice *device,
+        WMPSyncState state);
+
+    void (STDMETHODCALLTYPE *DeviceSyncError)(
+        IWMPEvents2 *This,
+        IWMPSyncDevice *device,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *CreatePartnershipComplete)(
+        IWMPEvents2 *This,
+        IWMPSyncDevice *device,
+        HRESULT result);
+
+    END_INTERFACE
+} IWMPEvents2Vtbl;
+
+interface IWMPEvents2 {
+    CONST_VTBL IWMPEvents2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPEvents2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPEvents2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPEvents2_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPEvents methods ***/
+#define IWMPEvents2_OpenStateChange(This,state) (This)->lpVtbl->OpenStateChange(This,state)
+#define IWMPEvents2_PlayStateChange(This,state) (This)->lpVtbl->PlayStateChange(This,state)
+#define IWMPEvents2_AudioLanguageChange(This,lang) (This)->lpVtbl->AudioLanguageChange(This,lang)
+#define IWMPEvents2_StatusChange(This) (This)->lpVtbl->StatusChange(This)
+#define IWMPEvents2_ScriptCommand(This,type,param) (This)->lpVtbl->ScriptCommand(This,type,param)
+#define IWMPEvents2_NewStream(This) (This)->lpVtbl->NewStream(This)
+#define IWMPEvents2_Disconnect(This,result) (This)->lpVtbl->Disconnect(This,result)
+#define IWMPEvents2_Buffering(This,start) (This)->lpVtbl->Buffering(This,start)
+#define IWMPEvents2_Error(This) (This)->lpVtbl->Error(This)
+#define IWMPEvents2_Warning(This,warning,param,description) (This)->lpVtbl->Warning(This,warning,param,description)
+#define IWMPEvents2_EndOfStream(This,result) (This)->lpVtbl->EndOfStream(This,result)
+#define IWMPEvents2_PositionChange(This,old_position,new_position) (This)->lpVtbl->PositionChange(This,old_position,new_position)
+#define IWMPEvents2_MarkerHit(This,marker) (This)->lpVtbl->MarkerHit(This,marker)
+#define IWMPEvents2_DurationUnitChange(This,duration) (This)->lpVtbl->DurationUnitChange(This,duration)
+#define IWMPEvents2_CdromMediaChange(This,num) (This)->lpVtbl->CdromMediaChange(This,num)
+#define IWMPEvents2_PlaylistChange(This,playlist,change) (This)->lpVtbl->PlaylistChange(This,playlist,change)
+#define IWMPEvents2_CurrentPlaylistChange(This,change) (This)->lpVtbl->CurrentPlaylistChange(This,change)
+#define IWMPEvents2_CurrentPlaylistItemAvailable(This,item) (This)->lpVtbl->CurrentPlaylistItemAvailable(This,item)
+#define IWMPEvents2_MediaChange(This,item) (This)->lpVtbl->MediaChange(This,item)
+#define IWMPEvents2_CurrentMediaItemAvailable(This,name) (This)->lpVtbl->CurrentMediaItemAvailable(This,name)
+#define IWMPEvents2_CurrentItemChange(This,media) (This)->lpVtbl->CurrentItemChange(This,media)
+#define IWMPEvents2_MediaCollectionChange(This) (This)->lpVtbl->MediaCollectionChange(This)
+#define IWMPEvents2_MediaCollectionAttributeStringAdded(This,name,val) (This)->lpVtbl->MediaCollectionAttributeStringAdded(This,name,val)
+#define IWMPEvents2_MediaCollectionAttributeStringRemoved(This,name,val) (This)->lpVtbl->MediaCollectionAttributeStringRemoved(This,name,val)
+#define IWMPEvents2_MediaCollectionAttributeStringChanged(This,name,old_val,new_val) (This)->lpVtbl->MediaCollectionAttributeStringChanged(This,name,old_val,new_val)
+#define IWMPEvents2_PlaylistCollectionChange(This) (This)->lpVtbl->PlaylistCollectionChange(This)
+#define IWMPEvents2_PlaylistCollectionPlaylistAdded(This,name) (This)->lpVtbl->PlaylistCollectionPlaylistAdded(This,name)
+#define IWMPEvents2_PlaylistCollectionPlaylistRemoved(This,name) (This)->lpVtbl->PlaylistCollectionPlaylistRemoved(This,name)
+#define IWMPEvents2_PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted) (This)->lpVtbl->PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted)
+#define IWMPEvents2_ModeChange(This,ModeName,value) (This)->lpVtbl->ModeChange(This,ModeName,value)
+#define IWMPEvents2_MediaError(This,media) (This)->lpVtbl->MediaError(This,media)
+#define IWMPEvents2_OpenPlaylistSwitch(This,item) (This)->lpVtbl->OpenPlaylistSwitch(This,item)
+#define IWMPEvents2_DomainChange(This,domain) (This)->lpVtbl->DomainChange(This,domain)
+#define IWMPEvents2_SwitchedToPlayerApplication(This) (This)->lpVtbl->SwitchedToPlayerApplication(This)
+#define IWMPEvents2_SwitchedToControl(This) (This)->lpVtbl->SwitchedToControl(This)
+#define IWMPEvents2_PlayerDockedStateChange(This) (This)->lpVtbl->PlayerDockedStateChange(This)
+#define IWMPEvents2_PlayerReconnect(This) (This)->lpVtbl->PlayerReconnect(This)
+#define IWMPEvents2_Click(This,button,shift_state,x,y) (This)->lpVtbl->Click(This,button,shift_state,x,y)
+#define IWMPEvents2_DoubleClick(This,button,shift_state,fX,fY) (This)->lpVtbl->DoubleClick(This,button,shift_state,fX,fY)
+#define IWMPEvents2_KeyDown(This,keycode,shift_state) (This)->lpVtbl->KeyDown(This,keycode,shift_state)
+#define IWMPEvents2_KeyPress(This,ascii) (This)->lpVtbl->KeyPress(This,ascii)
+#define IWMPEvents2_KeyUp(This,keycode,shift_state) (This)->lpVtbl->KeyUp(This,keycode,shift_state)
+#define IWMPEvents2_MouseDown(This,button,nShiftState,x,y) (This)->lpVtbl->MouseDown(This,button,nShiftState,x,y)
+#define IWMPEvents2_MouseMove(This,button,shift_state,x,y) (This)->lpVtbl->MouseMove(This,button,shift_state,x,y)
+#define IWMPEvents2_MouseUp(This,button,shift_state,x,y) (This)->lpVtbl->MouseUp(This,button,shift_state,x,y)
+/*** IWMPEvents2 methods ***/
+#define IWMPEvents2_DeviceConnect(This,device) (This)->lpVtbl->DeviceConnect(This,device)
+#define IWMPEvents2_DeviceDisconnect(This,device) (This)->lpVtbl->DeviceDisconnect(This,device)
+#define IWMPEvents2_DeviceStatusChange(This,device,status) (This)->lpVtbl->DeviceStatusChange(This,device,status)
+#define IWMPEvents2_DeviceSyncStateChange(This,device,state) (This)->lpVtbl->DeviceSyncStateChange(This,device,state)
+#define IWMPEvents2_DeviceSyncError(This,device,media) (This)->lpVtbl->DeviceSyncError(This,device,media)
+#define IWMPEvents2_CreatePartnershipComplete(This,device,result) (This)->lpVtbl->CreatePartnershipComplete(This,device,result)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPEvents2_QueryInterface(IWMPEvents2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPEvents2_AddRef(IWMPEvents2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPEvents2_Release(IWMPEvents2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPEvents methods ***/
+static FORCEINLINE void IWMPEvents2_OpenStateChange(IWMPEvents2* This,LONG state) {
+    This->lpVtbl->OpenStateChange(This,state);
+}
+static FORCEINLINE void IWMPEvents2_PlayStateChange(IWMPEvents2* This,LONG state) {
+    This->lpVtbl->PlayStateChange(This,state);
+}
+static FORCEINLINE void IWMPEvents2_AudioLanguageChange(IWMPEvents2* This,LONG lang) {
+    This->lpVtbl->AudioLanguageChange(This,lang);
+}
+static FORCEINLINE void IWMPEvents2_StatusChange(IWMPEvents2* This) {
+    This->lpVtbl->StatusChange(This);
+}
+static FORCEINLINE void IWMPEvents2_ScriptCommand(IWMPEvents2* This,BSTR type,BSTR param) {
+    This->lpVtbl->ScriptCommand(This,type,param);
+}
+static FORCEINLINE void IWMPEvents2_NewStream(IWMPEvents2* This) {
+    This->lpVtbl->NewStream(This);
+}
+static FORCEINLINE void IWMPEvents2_Disconnect(IWMPEvents2* This,LONG result) {
+    This->lpVtbl->Disconnect(This,result);
+}
+static FORCEINLINE void IWMPEvents2_Buffering(IWMPEvents2* This,VARIANT_BOOL start) {
+    This->lpVtbl->Buffering(This,start);
+}
+static FORCEINLINE void IWMPEvents2_Error(IWMPEvents2* This) {
+    This->lpVtbl->Error(This);
+}
+static FORCEINLINE void IWMPEvents2_Warning(IWMPEvents2* This,LONG warning,LONG param,BSTR description) {
+    This->lpVtbl->Warning(This,warning,param,description);
+}
+static FORCEINLINE void IWMPEvents2_EndOfStream(IWMPEvents2* This,LONG result) {
+    This->lpVtbl->EndOfStream(This,result);
+}
+static FORCEINLINE void IWMPEvents2_PositionChange(IWMPEvents2* This,double old_position,double new_position) {
+    This->lpVtbl->PositionChange(This,old_position,new_position);
+}
+static FORCEINLINE void IWMPEvents2_MarkerHit(IWMPEvents2* This,LONG marker) {
+    This->lpVtbl->MarkerHit(This,marker);
+}
+static FORCEINLINE void IWMPEvents2_DurationUnitChange(IWMPEvents2* This,LONG duration) {
+    This->lpVtbl->DurationUnitChange(This,duration);
+}
+static FORCEINLINE void IWMPEvents2_CdromMediaChange(IWMPEvents2* This,LONG num) {
+    This->lpVtbl->CdromMediaChange(This,num);
+}
+static FORCEINLINE void IWMPEvents2_PlaylistChange(IWMPEvents2* This,IDispatch *playlist,WMPPlaylistChangeEventType change) {
+    This->lpVtbl->PlaylistChange(This,playlist,change);
+}
+static FORCEINLINE void IWMPEvents2_CurrentPlaylistChange(IWMPEvents2* This,WMPPlaylistChangeEventType change) {
+    This->lpVtbl->CurrentPlaylistChange(This,change);
+}
+static FORCEINLINE void IWMPEvents2_CurrentPlaylistItemAvailable(IWMPEvents2* This,BSTR item) {
+    This->lpVtbl->CurrentPlaylistItemAvailable(This,item);
+}
+static FORCEINLINE void IWMPEvents2_MediaChange(IWMPEvents2* This,IDispatch *item) {
+    This->lpVtbl->MediaChange(This,item);
+}
+static FORCEINLINE void IWMPEvents2_CurrentMediaItemAvailable(IWMPEvents2* This,BSTR name) {
+    This->lpVtbl->CurrentMediaItemAvailable(This,name);
+}
+static FORCEINLINE void IWMPEvents2_CurrentItemChange(IWMPEvents2* This,IDispatch *media) {
+    This->lpVtbl->CurrentItemChange(This,media);
+}
+static FORCEINLINE void IWMPEvents2_MediaCollectionChange(IWMPEvents2* This) {
+    This->lpVtbl->MediaCollectionChange(This);
+}
+static FORCEINLINE void IWMPEvents2_MediaCollectionAttributeStringAdded(IWMPEvents2* This,BSTR name,BSTR val) {
+    This->lpVtbl->MediaCollectionAttributeStringAdded(This,name,val);
+}
+static FORCEINLINE void IWMPEvents2_MediaCollectionAttributeStringRemoved(IWMPEvents2* This,BSTR name,BSTR val) {
+    This->lpVtbl->MediaCollectionAttributeStringRemoved(This,name,val);
+}
+static FORCEINLINE void IWMPEvents2_MediaCollectionAttributeStringChanged(IWMPEvents2* This,BSTR name,BSTR old_val,BSTR new_val) {
+    This->lpVtbl->MediaCollectionAttributeStringChanged(This,name,old_val,new_val);
+}
+static FORCEINLINE void IWMPEvents2_PlaylistCollectionChange(IWMPEvents2* This) {
+    This->lpVtbl->PlaylistCollectionChange(This);
+}
+static FORCEINLINE void IWMPEvents2_PlaylistCollectionPlaylistAdded(IWMPEvents2* This,BSTR name) {
+    This->lpVtbl->PlaylistCollectionPlaylistAdded(This,name);
+}
+static FORCEINLINE void IWMPEvents2_PlaylistCollectionPlaylistRemoved(IWMPEvents2* This,BSTR name) {
+    This->lpVtbl->PlaylistCollectionPlaylistRemoved(This,name);
+}
+static FORCEINLINE void IWMPEvents2_PlaylistCollectionPlaylistSetAsDeleted(IWMPEvents2* This,BSTR name,VARIANT_BOOL deleted) {
+    This->lpVtbl->PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted);
+}
+static FORCEINLINE void IWMPEvents2_ModeChange(IWMPEvents2* This,BSTR ModeName,VARIANT_BOOL value) {
+    This->lpVtbl->ModeChange(This,ModeName,value);
+}
+static FORCEINLINE void IWMPEvents2_MediaError(IWMPEvents2* This,IDispatch *media) {
+    This->lpVtbl->MediaError(This,media);
+}
+static FORCEINLINE void IWMPEvents2_OpenPlaylistSwitch(IWMPEvents2* This,IDispatch *item) {
+    This->lpVtbl->OpenPlaylistSwitch(This,item);
+}
+static FORCEINLINE void IWMPEvents2_DomainChange(IWMPEvents2* This,BSTR domain) {
+    This->lpVtbl->DomainChange(This,domain);
+}
+static FORCEINLINE void IWMPEvents2_SwitchedToPlayerApplication(IWMPEvents2* This) {
+    This->lpVtbl->SwitchedToPlayerApplication(This);
+}
+static FORCEINLINE void IWMPEvents2_SwitchedToControl(IWMPEvents2* This) {
+    This->lpVtbl->SwitchedToControl(This);
+}
+static FORCEINLINE void IWMPEvents2_PlayerDockedStateChange(IWMPEvents2* This) {
+    This->lpVtbl->PlayerDockedStateChange(This);
+}
+static FORCEINLINE void IWMPEvents2_PlayerReconnect(IWMPEvents2* This) {
+    This->lpVtbl->PlayerReconnect(This);
+}
+static FORCEINLINE void IWMPEvents2_Click(IWMPEvents2* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->Click(This,button,shift_state,x,y);
+}
+static FORCEINLINE void IWMPEvents2_DoubleClick(IWMPEvents2* This,short button,short shift_state,LONG fX,LONG fY) {
+    This->lpVtbl->DoubleClick(This,button,shift_state,fX,fY);
+}
+static FORCEINLINE void IWMPEvents2_KeyDown(IWMPEvents2* This,short keycode,short shift_state) {
+    This->lpVtbl->KeyDown(This,keycode,shift_state);
+}
+static FORCEINLINE void IWMPEvents2_KeyPress(IWMPEvents2* This,short ascii) {
+    This->lpVtbl->KeyPress(This,ascii);
+}
+static FORCEINLINE void IWMPEvents2_KeyUp(IWMPEvents2* This,short keycode,short shift_state) {
+    This->lpVtbl->KeyUp(This,keycode,shift_state);
+}
+static FORCEINLINE void IWMPEvents2_MouseDown(IWMPEvents2* This,short button,short nShiftState,LONG x,LONG y) {
+    This->lpVtbl->MouseDown(This,button,nShiftState,x,y);
+}
+static FORCEINLINE void IWMPEvents2_MouseMove(IWMPEvents2* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->MouseMove(This,button,shift_state,x,y);
+}
+static FORCEINLINE void IWMPEvents2_MouseUp(IWMPEvents2* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->MouseUp(This,button,shift_state,x,y);
+}
+/*** IWMPEvents2 methods ***/
+static FORCEINLINE void IWMPEvents2_DeviceConnect(IWMPEvents2* This,IWMPSyncDevice *device) {
+    This->lpVtbl->DeviceConnect(This,device);
+}
+static FORCEINLINE void IWMPEvents2_DeviceDisconnect(IWMPEvents2* This,IWMPSyncDevice *device) {
+    This->lpVtbl->DeviceDisconnect(This,device);
+}
+static FORCEINLINE void IWMPEvents2_DeviceStatusChange(IWMPEvents2* This,IWMPSyncDevice *device,WMPDeviceStatus status) {
+    This->lpVtbl->DeviceStatusChange(This,device,status);
+}
+static FORCEINLINE void IWMPEvents2_DeviceSyncStateChange(IWMPEvents2* This,IWMPSyncDevice *device,WMPSyncState state) {
+    This->lpVtbl->DeviceSyncStateChange(This,device,state);
+}
+static FORCEINLINE void IWMPEvents2_DeviceSyncError(IWMPEvents2* This,IWMPSyncDevice *device,IDispatch *media) {
+    This->lpVtbl->DeviceSyncError(This,device,media);
+}
+static FORCEINLINE void IWMPEvents2_CreatePartnershipComplete(IWMPEvents2* This,IWMPSyncDevice *device,HRESULT result) {
+    This->lpVtbl->CreatePartnershipComplete(This,device,result);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPEvents2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPEvents3 interface
+ */
+#ifndef __IWMPEvents3_INTERFACE_DEFINED__
+#define __IWMPEvents3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPEvents3, 0x1f504270, 0xa66b, 0x4223, 0x8e,0x96, 0x26,0xa0,0x6c,0x63,0xd6,0x9f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1f504270-a66b-4223-8e96-26a06c63d69f")
+IWMPEvents3 : public IWMPEvents2
+{
+    virtual void STDMETHODCALLTYPE CdromRipStateChange(
+        IWMPCdromRip *rip,
+        WMPRipState state) = 0;
+
+    virtual void STDMETHODCALLTYPE CdromRipMediaError(
+        IWMPCdromRip *rip,
+        IDispatch *media) = 0;
+
+    virtual void STDMETHODCALLTYPE CdromBurnStateChange(
+        IWMPCdromBurn *burn,
+        WMPBurnState state) = 0;
+
+    virtual void STDMETHODCALLTYPE CdromBurnMediaError(
+        IWMPCdromBurn *burn,
+        IDispatch *media) = 0;
+
+    virtual void STDMETHODCALLTYPE CdromBurnError(
+        IWMPCdromBurn *burn,
+        HRESULT error) = 0;
+
+    virtual void STDMETHODCALLTYPE LibraryConnect(
+        IWMPLibrary *wmplibrary) = 0;
+
+    virtual void STDMETHODCALLTYPE LibraryDisconnect(
+        IWMPLibrary *wmplibrary) = 0;
+
+    virtual void STDMETHODCALLTYPE FolderScanStateChange(
+        WMPFolderScanState state) = 0;
+
+    virtual void STDMETHODCALLTYPE StringCollectionChange(
+        IDispatch *collection,
+        WMPStringCollectionChangeEventType change,
+        LONG index) = 0;
+
+    virtual void STDMETHODCALLTYPE MediaCollectionMediaAdded(
+        IDispatch *media) = 0;
+
+    virtual void STDMETHODCALLTYPE MediaCollectionMediaRemoved(
+        IDispatch *media) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPEvents3, 0x1f504270, 0xa66b, 0x4223, 0x8e,0x96, 0x26,0xa0,0x6c,0x63,0xd6,0x9f)
+#endif
+#else
+typedef struct IWMPEvents3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPEvents3 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPEvents3 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPEvents3 *This);
+
+    /*** IWMPEvents methods ***/
+    void (STDMETHODCALLTYPE *OpenStateChange)(
+        IWMPEvents3 *This,
+        LONG state);
+
+    void (STDMETHODCALLTYPE *PlayStateChange)(
+        IWMPEvents3 *This,
+        LONG state);
+
+    void (STDMETHODCALLTYPE *AudioLanguageChange)(
+        IWMPEvents3 *This,
+        LONG lang);
+
+    void (STDMETHODCALLTYPE *StatusChange)(
+        IWMPEvents3 *This);
+
+    void (STDMETHODCALLTYPE *ScriptCommand)(
+        IWMPEvents3 *This,
+        BSTR type,
+        BSTR param);
+
+    void (STDMETHODCALLTYPE *NewStream)(
+        IWMPEvents3 *This);
+
+    void (STDMETHODCALLTYPE *Disconnect)(
+        IWMPEvents3 *This,
+        LONG result);
+
+    void (STDMETHODCALLTYPE *Buffering)(
+        IWMPEvents3 *This,
+        VARIANT_BOOL start);
+
+    void (STDMETHODCALLTYPE *Error)(
+        IWMPEvents3 *This);
+
+    void (STDMETHODCALLTYPE *Warning)(
+        IWMPEvents3 *This,
+        LONG warning,
+        LONG param,
+        BSTR description);
+
+    void (STDMETHODCALLTYPE *EndOfStream)(
+        IWMPEvents3 *This,
+        LONG result);
+
+    void (STDMETHODCALLTYPE *PositionChange)(
+        IWMPEvents3 *This,
+        double old_position,
+        double new_position);
+
+    void (STDMETHODCALLTYPE *MarkerHit)(
+        IWMPEvents3 *This,
+        LONG marker);
+
+    void (STDMETHODCALLTYPE *DurationUnitChange)(
+        IWMPEvents3 *This,
+        LONG duration);
+
+    void (STDMETHODCALLTYPE *CdromMediaChange)(
+        IWMPEvents3 *This,
+        LONG num);
+
+    void (STDMETHODCALLTYPE *PlaylistChange)(
+        IWMPEvents3 *This,
+        IDispatch *playlist,
+        WMPPlaylistChangeEventType change);
+
+    void (STDMETHODCALLTYPE *CurrentPlaylistChange)(
+        IWMPEvents3 *This,
+        WMPPlaylistChangeEventType change);
+
+    void (STDMETHODCALLTYPE *CurrentPlaylistItemAvailable)(
+        IWMPEvents3 *This,
+        BSTR item);
+
+    void (STDMETHODCALLTYPE *MediaChange)(
+        IWMPEvents3 *This,
+        IDispatch *item);
+
+    void (STDMETHODCALLTYPE *CurrentMediaItemAvailable)(
+        IWMPEvents3 *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *CurrentItemChange)(
+        IWMPEvents3 *This,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *MediaCollectionChange)(
+        IWMPEvents3 *This);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringAdded)(
+        IWMPEvents3 *This,
+        BSTR name,
+        BSTR val);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringRemoved)(
+        IWMPEvents3 *This,
+        BSTR name,
+        BSTR val);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringChanged)(
+        IWMPEvents3 *This,
+        BSTR name,
+        BSTR old_val,
+        BSTR new_val);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionChange)(
+        IWMPEvents3 *This);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistAdded)(
+        IWMPEvents3 *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistRemoved)(
+        IWMPEvents3 *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistSetAsDeleted)(
+        IWMPEvents3 *This,
+        BSTR name,
+        VARIANT_BOOL deleted);
+
+    void (STDMETHODCALLTYPE *ModeChange)(
+        IWMPEvents3 *This,
+        BSTR ModeName,
+        VARIANT_BOOL value);
+
+    void (STDMETHODCALLTYPE *MediaError)(
+        IWMPEvents3 *This,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *OpenPlaylistSwitch)(
+        IWMPEvents3 *This,
+        IDispatch *item);
+
+    void (STDMETHODCALLTYPE *DomainChange)(
+        IWMPEvents3 *This,
+        BSTR domain);
+
+    void (STDMETHODCALLTYPE *SwitchedToPlayerApplication)(
+        IWMPEvents3 *This);
+
+    void (STDMETHODCALLTYPE *SwitchedToControl)(
+        IWMPEvents3 *This);
+
+    void (STDMETHODCALLTYPE *PlayerDockedStateChange)(
+        IWMPEvents3 *This);
+
+    void (STDMETHODCALLTYPE *PlayerReconnect)(
+        IWMPEvents3 *This);
+
+    void (STDMETHODCALLTYPE *Click)(
+        IWMPEvents3 *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *DoubleClick)(
+        IWMPEvents3 *This,
+        short button,
+        short shift_state,
+        LONG fX,
+        LONG fY);
+
+    void (STDMETHODCALLTYPE *KeyDown)(
+        IWMPEvents3 *This,
+        short keycode,
+        short shift_state);
+
+    void (STDMETHODCALLTYPE *KeyPress)(
+        IWMPEvents3 *This,
+        short ascii);
+
+    void (STDMETHODCALLTYPE *KeyUp)(
+        IWMPEvents3 *This,
+        short keycode,
+        short shift_state);
+
+    void (STDMETHODCALLTYPE *MouseDown)(
+        IWMPEvents3 *This,
+        short button,
+        short nShiftState,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *MouseMove)(
+        IWMPEvents3 *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *MouseUp)(
+        IWMPEvents3 *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    /*** IWMPEvents2 methods ***/
+    void (STDMETHODCALLTYPE *DeviceConnect)(
+        IWMPEvents3 *This,
+        IWMPSyncDevice *device);
+
+    void (STDMETHODCALLTYPE *DeviceDisconnect)(
+        IWMPEvents3 *This,
+        IWMPSyncDevice *device);
+
+    void (STDMETHODCALLTYPE *DeviceStatusChange)(
+        IWMPEvents3 *This,
+        IWMPSyncDevice *device,
+        WMPDeviceStatus status);
+
+    void (STDMETHODCALLTYPE *DeviceSyncStateChange)(
+        IWMPEvents3 *This,
+        IWMPSyncDevice *device,
+        WMPSyncState state);
+
+    void (STDMETHODCALLTYPE *DeviceSyncError)(
+        IWMPEvents3 *This,
+        IWMPSyncDevice *device,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *CreatePartnershipComplete)(
+        IWMPEvents3 *This,
+        IWMPSyncDevice *device,
+        HRESULT result);
+
+    /*** IWMPEvents3 methods ***/
+    void (STDMETHODCALLTYPE *CdromRipStateChange)(
+        IWMPEvents3 *This,
+        IWMPCdromRip *rip,
+        WMPRipState state);
+
+    void (STDMETHODCALLTYPE *CdromRipMediaError)(
+        IWMPEvents3 *This,
+        IWMPCdromRip *rip,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *CdromBurnStateChange)(
+        IWMPEvents3 *This,
+        IWMPCdromBurn *burn,
+        WMPBurnState state);
+
+    void (STDMETHODCALLTYPE *CdromBurnMediaError)(
+        IWMPEvents3 *This,
+        IWMPCdromBurn *burn,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *CdromBurnError)(
+        IWMPEvents3 *This,
+        IWMPCdromBurn *burn,
+        HRESULT error);
+
+    void (STDMETHODCALLTYPE *LibraryConnect)(
+        IWMPEvents3 *This,
+        IWMPLibrary *wmplibrary);
+
+    void (STDMETHODCALLTYPE *LibraryDisconnect)(
+        IWMPEvents3 *This,
+        IWMPLibrary *wmplibrary);
+
+    void (STDMETHODCALLTYPE *FolderScanStateChange)(
+        IWMPEvents3 *This,
+        WMPFolderScanState state);
+
+    void (STDMETHODCALLTYPE *StringCollectionChange)(
+        IWMPEvents3 *This,
+        IDispatch *collection,
+        WMPStringCollectionChangeEventType change,
+        LONG index);
+
+    void (STDMETHODCALLTYPE *MediaCollectionMediaAdded)(
+        IWMPEvents3 *This,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *MediaCollectionMediaRemoved)(
+        IWMPEvents3 *This,
+        IDispatch *media);
+
+    END_INTERFACE
+} IWMPEvents3Vtbl;
+
+interface IWMPEvents3 {
+    CONST_VTBL IWMPEvents3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPEvents3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPEvents3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPEvents3_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPEvents methods ***/
+#define IWMPEvents3_OpenStateChange(This,state) (This)->lpVtbl->OpenStateChange(This,state)
+#define IWMPEvents3_PlayStateChange(This,state) (This)->lpVtbl->PlayStateChange(This,state)
+#define IWMPEvents3_AudioLanguageChange(This,lang) (This)->lpVtbl->AudioLanguageChange(This,lang)
+#define IWMPEvents3_StatusChange(This) (This)->lpVtbl->StatusChange(This)
+#define IWMPEvents3_ScriptCommand(This,type,param) (This)->lpVtbl->ScriptCommand(This,type,param)
+#define IWMPEvents3_NewStream(This) (This)->lpVtbl->NewStream(This)
+#define IWMPEvents3_Disconnect(This,result) (This)->lpVtbl->Disconnect(This,result)
+#define IWMPEvents3_Buffering(This,start) (This)->lpVtbl->Buffering(This,start)
+#define IWMPEvents3_Error(This) (This)->lpVtbl->Error(This)
+#define IWMPEvents3_Warning(This,warning,param,description) (This)->lpVtbl->Warning(This,warning,param,description)
+#define IWMPEvents3_EndOfStream(This,result) (This)->lpVtbl->EndOfStream(This,result)
+#define IWMPEvents3_PositionChange(This,old_position,new_position) (This)->lpVtbl->PositionChange(This,old_position,new_position)
+#define IWMPEvents3_MarkerHit(This,marker) (This)->lpVtbl->MarkerHit(This,marker)
+#define IWMPEvents3_DurationUnitChange(This,duration) (This)->lpVtbl->DurationUnitChange(This,duration)
+#define IWMPEvents3_CdromMediaChange(This,num) (This)->lpVtbl->CdromMediaChange(This,num)
+#define IWMPEvents3_PlaylistChange(This,playlist,change) (This)->lpVtbl->PlaylistChange(This,playlist,change)
+#define IWMPEvents3_CurrentPlaylistChange(This,change) (This)->lpVtbl->CurrentPlaylistChange(This,change)
+#define IWMPEvents3_CurrentPlaylistItemAvailable(This,item) (This)->lpVtbl->CurrentPlaylistItemAvailable(This,item)
+#define IWMPEvents3_MediaChange(This,item) (This)->lpVtbl->MediaChange(This,item)
+#define IWMPEvents3_CurrentMediaItemAvailable(This,name) (This)->lpVtbl->CurrentMediaItemAvailable(This,name)
+#define IWMPEvents3_CurrentItemChange(This,media) (This)->lpVtbl->CurrentItemChange(This,media)
+#define IWMPEvents3_MediaCollectionChange(This) (This)->lpVtbl->MediaCollectionChange(This)
+#define IWMPEvents3_MediaCollectionAttributeStringAdded(This,name,val) (This)->lpVtbl->MediaCollectionAttributeStringAdded(This,name,val)
+#define IWMPEvents3_MediaCollectionAttributeStringRemoved(This,name,val) (This)->lpVtbl->MediaCollectionAttributeStringRemoved(This,name,val)
+#define IWMPEvents3_MediaCollectionAttributeStringChanged(This,name,old_val,new_val) (This)->lpVtbl->MediaCollectionAttributeStringChanged(This,name,old_val,new_val)
+#define IWMPEvents3_PlaylistCollectionChange(This) (This)->lpVtbl->PlaylistCollectionChange(This)
+#define IWMPEvents3_PlaylistCollectionPlaylistAdded(This,name) (This)->lpVtbl->PlaylistCollectionPlaylistAdded(This,name)
+#define IWMPEvents3_PlaylistCollectionPlaylistRemoved(This,name) (This)->lpVtbl->PlaylistCollectionPlaylistRemoved(This,name)
+#define IWMPEvents3_PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted) (This)->lpVtbl->PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted)
+#define IWMPEvents3_ModeChange(This,ModeName,value) (This)->lpVtbl->ModeChange(This,ModeName,value)
+#define IWMPEvents3_MediaError(This,media) (This)->lpVtbl->MediaError(This,media)
+#define IWMPEvents3_OpenPlaylistSwitch(This,item) (This)->lpVtbl->OpenPlaylistSwitch(This,item)
+#define IWMPEvents3_DomainChange(This,domain) (This)->lpVtbl->DomainChange(This,domain)
+#define IWMPEvents3_SwitchedToPlayerApplication(This) (This)->lpVtbl->SwitchedToPlayerApplication(This)
+#define IWMPEvents3_SwitchedToControl(This) (This)->lpVtbl->SwitchedToControl(This)
+#define IWMPEvents3_PlayerDockedStateChange(This) (This)->lpVtbl->PlayerDockedStateChange(This)
+#define IWMPEvents3_PlayerReconnect(This) (This)->lpVtbl->PlayerReconnect(This)
+#define IWMPEvents3_Click(This,button,shift_state,x,y) (This)->lpVtbl->Click(This,button,shift_state,x,y)
+#define IWMPEvents3_DoubleClick(This,button,shift_state,fX,fY) (This)->lpVtbl->DoubleClick(This,button,shift_state,fX,fY)
+#define IWMPEvents3_KeyDown(This,keycode,shift_state) (This)->lpVtbl->KeyDown(This,keycode,shift_state)
+#define IWMPEvents3_KeyPress(This,ascii) (This)->lpVtbl->KeyPress(This,ascii)
+#define IWMPEvents3_KeyUp(This,keycode,shift_state) (This)->lpVtbl->KeyUp(This,keycode,shift_state)
+#define IWMPEvents3_MouseDown(This,button,nShiftState,x,y) (This)->lpVtbl->MouseDown(This,button,nShiftState,x,y)
+#define IWMPEvents3_MouseMove(This,button,shift_state,x,y) (This)->lpVtbl->MouseMove(This,button,shift_state,x,y)
+#define IWMPEvents3_MouseUp(This,button,shift_state,x,y) (This)->lpVtbl->MouseUp(This,button,shift_state,x,y)
+/*** IWMPEvents2 methods ***/
+#define IWMPEvents3_DeviceConnect(This,device) (This)->lpVtbl->DeviceConnect(This,device)
+#define IWMPEvents3_DeviceDisconnect(This,device) (This)->lpVtbl->DeviceDisconnect(This,device)
+#define IWMPEvents3_DeviceStatusChange(This,device,status) (This)->lpVtbl->DeviceStatusChange(This,device,status)
+#define IWMPEvents3_DeviceSyncStateChange(This,device,state) (This)->lpVtbl->DeviceSyncStateChange(This,device,state)
+#define IWMPEvents3_DeviceSyncError(This,device,media) (This)->lpVtbl->DeviceSyncError(This,device,media)
+#define IWMPEvents3_CreatePartnershipComplete(This,device,result) (This)->lpVtbl->CreatePartnershipComplete(This,device,result)
+/*** IWMPEvents3 methods ***/
+#define IWMPEvents3_CdromRipStateChange(This,rip,state) (This)->lpVtbl->CdromRipStateChange(This,rip,state)
+#define IWMPEvents3_CdromRipMediaError(This,rip,media) (This)->lpVtbl->CdromRipMediaError(This,rip,media)
+#define IWMPEvents3_CdromBurnStateChange(This,burn,state) (This)->lpVtbl->CdromBurnStateChange(This,burn,state)
+#define IWMPEvents3_CdromBurnMediaError(This,burn,media) (This)->lpVtbl->CdromBurnMediaError(This,burn,media)
+#define IWMPEvents3_CdromBurnError(This,burn,error) (This)->lpVtbl->CdromBurnError(This,burn,error)
+#define IWMPEvents3_LibraryConnect(This,wmplibrary) (This)->lpVtbl->LibraryConnect(This,wmplibrary)
+#define IWMPEvents3_LibraryDisconnect(This,wmplibrary) (This)->lpVtbl->LibraryDisconnect(This,wmplibrary)
+#define IWMPEvents3_FolderScanStateChange(This,state) (This)->lpVtbl->FolderScanStateChange(This,state)
+#define IWMPEvents3_StringCollectionChange(This,collection,change,index) (This)->lpVtbl->StringCollectionChange(This,collection,change,index)
+#define IWMPEvents3_MediaCollectionMediaAdded(This,media) (This)->lpVtbl->MediaCollectionMediaAdded(This,media)
+#define IWMPEvents3_MediaCollectionMediaRemoved(This,media) (This)->lpVtbl->MediaCollectionMediaRemoved(This,media)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPEvents3_QueryInterface(IWMPEvents3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPEvents3_AddRef(IWMPEvents3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPEvents3_Release(IWMPEvents3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPEvents methods ***/
+static FORCEINLINE void IWMPEvents3_OpenStateChange(IWMPEvents3* This,LONG state) {
+    This->lpVtbl->OpenStateChange(This,state);
+}
+static FORCEINLINE void IWMPEvents3_PlayStateChange(IWMPEvents3* This,LONG state) {
+    This->lpVtbl->PlayStateChange(This,state);
+}
+static FORCEINLINE void IWMPEvents3_AudioLanguageChange(IWMPEvents3* This,LONG lang) {
+    This->lpVtbl->AudioLanguageChange(This,lang);
+}
+static FORCEINLINE void IWMPEvents3_StatusChange(IWMPEvents3* This) {
+    This->lpVtbl->StatusChange(This);
+}
+static FORCEINLINE void IWMPEvents3_ScriptCommand(IWMPEvents3* This,BSTR type,BSTR param) {
+    This->lpVtbl->ScriptCommand(This,type,param);
+}
+static FORCEINLINE void IWMPEvents3_NewStream(IWMPEvents3* This) {
+    This->lpVtbl->NewStream(This);
+}
+static FORCEINLINE void IWMPEvents3_Disconnect(IWMPEvents3* This,LONG result) {
+    This->lpVtbl->Disconnect(This,result);
+}
+static FORCEINLINE void IWMPEvents3_Buffering(IWMPEvents3* This,VARIANT_BOOL start) {
+    This->lpVtbl->Buffering(This,start);
+}
+static FORCEINLINE void IWMPEvents3_Error(IWMPEvents3* This) {
+    This->lpVtbl->Error(This);
+}
+static FORCEINLINE void IWMPEvents3_Warning(IWMPEvents3* This,LONG warning,LONG param,BSTR description) {
+    This->lpVtbl->Warning(This,warning,param,description);
+}
+static FORCEINLINE void IWMPEvents3_EndOfStream(IWMPEvents3* This,LONG result) {
+    This->lpVtbl->EndOfStream(This,result);
+}
+static FORCEINLINE void IWMPEvents3_PositionChange(IWMPEvents3* This,double old_position,double new_position) {
+    This->lpVtbl->PositionChange(This,old_position,new_position);
+}
+static FORCEINLINE void IWMPEvents3_MarkerHit(IWMPEvents3* This,LONG marker) {
+    This->lpVtbl->MarkerHit(This,marker);
+}
+static FORCEINLINE void IWMPEvents3_DurationUnitChange(IWMPEvents3* This,LONG duration) {
+    This->lpVtbl->DurationUnitChange(This,duration);
+}
+static FORCEINLINE void IWMPEvents3_CdromMediaChange(IWMPEvents3* This,LONG num) {
+    This->lpVtbl->CdromMediaChange(This,num);
+}
+static FORCEINLINE void IWMPEvents3_PlaylistChange(IWMPEvents3* This,IDispatch *playlist,WMPPlaylistChangeEventType change) {
+    This->lpVtbl->PlaylistChange(This,playlist,change);
+}
+static FORCEINLINE void IWMPEvents3_CurrentPlaylistChange(IWMPEvents3* This,WMPPlaylistChangeEventType change) {
+    This->lpVtbl->CurrentPlaylistChange(This,change);
+}
+static FORCEINLINE void IWMPEvents3_CurrentPlaylistItemAvailable(IWMPEvents3* This,BSTR item) {
+    This->lpVtbl->CurrentPlaylistItemAvailable(This,item);
+}
+static FORCEINLINE void IWMPEvents3_MediaChange(IWMPEvents3* This,IDispatch *item) {
+    This->lpVtbl->MediaChange(This,item);
+}
+static FORCEINLINE void IWMPEvents3_CurrentMediaItemAvailable(IWMPEvents3* This,BSTR name) {
+    This->lpVtbl->CurrentMediaItemAvailable(This,name);
+}
+static FORCEINLINE void IWMPEvents3_CurrentItemChange(IWMPEvents3* This,IDispatch *media) {
+    This->lpVtbl->CurrentItemChange(This,media);
+}
+static FORCEINLINE void IWMPEvents3_MediaCollectionChange(IWMPEvents3* This) {
+    This->lpVtbl->MediaCollectionChange(This);
+}
+static FORCEINLINE void IWMPEvents3_MediaCollectionAttributeStringAdded(IWMPEvents3* This,BSTR name,BSTR val) {
+    This->lpVtbl->MediaCollectionAttributeStringAdded(This,name,val);
+}
+static FORCEINLINE void IWMPEvents3_MediaCollectionAttributeStringRemoved(IWMPEvents3* This,BSTR name,BSTR val) {
+    This->lpVtbl->MediaCollectionAttributeStringRemoved(This,name,val);
+}
+static FORCEINLINE void IWMPEvents3_MediaCollectionAttributeStringChanged(IWMPEvents3* This,BSTR name,BSTR old_val,BSTR new_val) {
+    This->lpVtbl->MediaCollectionAttributeStringChanged(This,name,old_val,new_val);
+}
+static FORCEINLINE void IWMPEvents3_PlaylistCollectionChange(IWMPEvents3* This) {
+    This->lpVtbl->PlaylistCollectionChange(This);
+}
+static FORCEINLINE void IWMPEvents3_PlaylistCollectionPlaylistAdded(IWMPEvents3* This,BSTR name) {
+    This->lpVtbl->PlaylistCollectionPlaylistAdded(This,name);
+}
+static FORCEINLINE void IWMPEvents3_PlaylistCollectionPlaylistRemoved(IWMPEvents3* This,BSTR name) {
+    This->lpVtbl->PlaylistCollectionPlaylistRemoved(This,name);
+}
+static FORCEINLINE void IWMPEvents3_PlaylistCollectionPlaylistSetAsDeleted(IWMPEvents3* This,BSTR name,VARIANT_BOOL deleted) {
+    This->lpVtbl->PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted);
+}
+static FORCEINLINE void IWMPEvents3_ModeChange(IWMPEvents3* This,BSTR ModeName,VARIANT_BOOL value) {
+    This->lpVtbl->ModeChange(This,ModeName,value);
+}
+static FORCEINLINE void IWMPEvents3_MediaError(IWMPEvents3* This,IDispatch *media) {
+    This->lpVtbl->MediaError(This,media);
+}
+static FORCEINLINE void IWMPEvents3_OpenPlaylistSwitch(IWMPEvents3* This,IDispatch *item) {
+    This->lpVtbl->OpenPlaylistSwitch(This,item);
+}
+static FORCEINLINE void IWMPEvents3_DomainChange(IWMPEvents3* This,BSTR domain) {
+    This->lpVtbl->DomainChange(This,domain);
+}
+static FORCEINLINE void IWMPEvents3_SwitchedToPlayerApplication(IWMPEvents3* This) {
+    This->lpVtbl->SwitchedToPlayerApplication(This);
+}
+static FORCEINLINE void IWMPEvents3_SwitchedToControl(IWMPEvents3* This) {
+    This->lpVtbl->SwitchedToControl(This);
+}
+static FORCEINLINE void IWMPEvents3_PlayerDockedStateChange(IWMPEvents3* This) {
+    This->lpVtbl->PlayerDockedStateChange(This);
+}
+static FORCEINLINE void IWMPEvents3_PlayerReconnect(IWMPEvents3* This) {
+    This->lpVtbl->PlayerReconnect(This);
+}
+static FORCEINLINE void IWMPEvents3_Click(IWMPEvents3* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->Click(This,button,shift_state,x,y);
+}
+static FORCEINLINE void IWMPEvents3_DoubleClick(IWMPEvents3* This,short button,short shift_state,LONG fX,LONG fY) {
+    This->lpVtbl->DoubleClick(This,button,shift_state,fX,fY);
+}
+static FORCEINLINE void IWMPEvents3_KeyDown(IWMPEvents3* This,short keycode,short shift_state) {
+    This->lpVtbl->KeyDown(This,keycode,shift_state);
+}
+static FORCEINLINE void IWMPEvents3_KeyPress(IWMPEvents3* This,short ascii) {
+    This->lpVtbl->KeyPress(This,ascii);
+}
+static FORCEINLINE void IWMPEvents3_KeyUp(IWMPEvents3* This,short keycode,short shift_state) {
+    This->lpVtbl->KeyUp(This,keycode,shift_state);
+}
+static FORCEINLINE void IWMPEvents3_MouseDown(IWMPEvents3* This,short button,short nShiftState,LONG x,LONG y) {
+    This->lpVtbl->MouseDown(This,button,nShiftState,x,y);
+}
+static FORCEINLINE void IWMPEvents3_MouseMove(IWMPEvents3* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->MouseMove(This,button,shift_state,x,y);
+}
+static FORCEINLINE void IWMPEvents3_MouseUp(IWMPEvents3* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->MouseUp(This,button,shift_state,x,y);
+}
+/*** IWMPEvents2 methods ***/
+static FORCEINLINE void IWMPEvents3_DeviceConnect(IWMPEvents3* This,IWMPSyncDevice *device) {
+    This->lpVtbl->DeviceConnect(This,device);
+}
+static FORCEINLINE void IWMPEvents3_DeviceDisconnect(IWMPEvents3* This,IWMPSyncDevice *device) {
+    This->lpVtbl->DeviceDisconnect(This,device);
+}
+static FORCEINLINE void IWMPEvents3_DeviceStatusChange(IWMPEvents3* This,IWMPSyncDevice *device,WMPDeviceStatus status) {
+    This->lpVtbl->DeviceStatusChange(This,device,status);
+}
+static FORCEINLINE void IWMPEvents3_DeviceSyncStateChange(IWMPEvents3* This,IWMPSyncDevice *device,WMPSyncState state) {
+    This->lpVtbl->DeviceSyncStateChange(This,device,state);
+}
+static FORCEINLINE void IWMPEvents3_DeviceSyncError(IWMPEvents3* This,IWMPSyncDevice *device,IDispatch *media) {
+    This->lpVtbl->DeviceSyncError(This,device,media);
+}
+static FORCEINLINE void IWMPEvents3_CreatePartnershipComplete(IWMPEvents3* This,IWMPSyncDevice *device,HRESULT result) {
+    This->lpVtbl->CreatePartnershipComplete(This,device,result);
+}
+/*** IWMPEvents3 methods ***/
+static FORCEINLINE void IWMPEvents3_CdromRipStateChange(IWMPEvents3* This,IWMPCdromRip *rip,WMPRipState state) {
+    This->lpVtbl->CdromRipStateChange(This,rip,state);
+}
+static FORCEINLINE void IWMPEvents3_CdromRipMediaError(IWMPEvents3* This,IWMPCdromRip *rip,IDispatch *media) {
+    This->lpVtbl->CdromRipMediaError(This,rip,media);
+}
+static FORCEINLINE void IWMPEvents3_CdromBurnStateChange(IWMPEvents3* This,IWMPCdromBurn *burn,WMPBurnState state) {
+    This->lpVtbl->CdromBurnStateChange(This,burn,state);
+}
+static FORCEINLINE void IWMPEvents3_CdromBurnMediaError(IWMPEvents3* This,IWMPCdromBurn *burn,IDispatch *media) {
+    This->lpVtbl->CdromBurnMediaError(This,burn,media);
+}
+static FORCEINLINE void IWMPEvents3_CdromBurnError(IWMPEvents3* This,IWMPCdromBurn *burn,HRESULT error) {
+    This->lpVtbl->CdromBurnError(This,burn,error);
+}
+static FORCEINLINE void IWMPEvents3_LibraryConnect(IWMPEvents3* This,IWMPLibrary *wmplibrary) {
+    This->lpVtbl->LibraryConnect(This,wmplibrary);
+}
+static FORCEINLINE void IWMPEvents3_LibraryDisconnect(IWMPEvents3* This,IWMPLibrary *wmplibrary) {
+    This->lpVtbl->LibraryDisconnect(This,wmplibrary);
+}
+static FORCEINLINE void IWMPEvents3_FolderScanStateChange(IWMPEvents3* This,WMPFolderScanState state) {
+    This->lpVtbl->FolderScanStateChange(This,state);
+}
+static FORCEINLINE void IWMPEvents3_StringCollectionChange(IWMPEvents3* This,IDispatch *collection,WMPStringCollectionChangeEventType change,LONG index) {
+    This->lpVtbl->StringCollectionChange(This,collection,change,index);
+}
+static FORCEINLINE void IWMPEvents3_MediaCollectionMediaAdded(IWMPEvents3* This,IDispatch *media) {
+    This->lpVtbl->MediaCollectionMediaAdded(This,media);
+}
+static FORCEINLINE void IWMPEvents3_MediaCollectionMediaRemoved(IWMPEvents3* This,IDispatch *media) {
+    This->lpVtbl->MediaCollectionMediaRemoved(This,media);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPEvents3_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPEvents4 interface
+ */
+#ifndef __IWMPEvents4_INTERFACE_DEFINED__
+#define __IWMPEvents4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPEvents4, 0x26dabcfa, 0x306b, 0x404d, 0x9a,0x6f, 0x63,0x0a,0x84,0x05,0x04,0x8d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("26dabcfa-306b-404d-9a6f-630a8405048d")
+IWMPEvents4 : public IWMPEvents3
+{
+    virtual void STDMETHODCALLTYPE DeviceEstimation(
+        IWMPSyncDevice *device,
+        HRESULT result,
+        LONGLONG used_space,
+        LONGLONG estimated_space) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPEvents4, 0x26dabcfa, 0x306b, 0x404d, 0x9a,0x6f, 0x63,0x0a,0x84,0x05,0x04,0x8d)
+#endif
+#else
+typedef struct IWMPEvents4Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPEvents4 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPEvents4 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPEvents4 *This);
+
+    /*** IWMPEvents methods ***/
+    void (STDMETHODCALLTYPE *OpenStateChange)(
+        IWMPEvents4 *This,
+        LONG state);
+
+    void (STDMETHODCALLTYPE *PlayStateChange)(
+        IWMPEvents4 *This,
+        LONG state);
+
+    void (STDMETHODCALLTYPE *AudioLanguageChange)(
+        IWMPEvents4 *This,
+        LONG lang);
+
+    void (STDMETHODCALLTYPE *StatusChange)(
+        IWMPEvents4 *This);
+
+    void (STDMETHODCALLTYPE *ScriptCommand)(
+        IWMPEvents4 *This,
+        BSTR type,
+        BSTR param);
+
+    void (STDMETHODCALLTYPE *NewStream)(
+        IWMPEvents4 *This);
+
+    void (STDMETHODCALLTYPE *Disconnect)(
+        IWMPEvents4 *This,
+        LONG result);
+
+    void (STDMETHODCALLTYPE *Buffering)(
+        IWMPEvents4 *This,
+        VARIANT_BOOL start);
+
+    void (STDMETHODCALLTYPE *Error)(
+        IWMPEvents4 *This);
+
+    void (STDMETHODCALLTYPE *Warning)(
+        IWMPEvents4 *This,
+        LONG warning,
+        LONG param,
+        BSTR description);
+
+    void (STDMETHODCALLTYPE *EndOfStream)(
+        IWMPEvents4 *This,
+        LONG result);
+
+    void (STDMETHODCALLTYPE *PositionChange)(
+        IWMPEvents4 *This,
+        double old_position,
+        double new_position);
+
+    void (STDMETHODCALLTYPE *MarkerHit)(
+        IWMPEvents4 *This,
+        LONG marker);
+
+    void (STDMETHODCALLTYPE *DurationUnitChange)(
+        IWMPEvents4 *This,
+        LONG duration);
+
+    void (STDMETHODCALLTYPE *CdromMediaChange)(
+        IWMPEvents4 *This,
+        LONG num);
+
+    void (STDMETHODCALLTYPE *PlaylistChange)(
+        IWMPEvents4 *This,
+        IDispatch *playlist,
+        WMPPlaylistChangeEventType change);
+
+    void (STDMETHODCALLTYPE *CurrentPlaylistChange)(
+        IWMPEvents4 *This,
+        WMPPlaylistChangeEventType change);
+
+    void (STDMETHODCALLTYPE *CurrentPlaylistItemAvailable)(
+        IWMPEvents4 *This,
+        BSTR item);
+
+    void (STDMETHODCALLTYPE *MediaChange)(
+        IWMPEvents4 *This,
+        IDispatch *item);
+
+    void (STDMETHODCALLTYPE *CurrentMediaItemAvailable)(
+        IWMPEvents4 *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *CurrentItemChange)(
+        IWMPEvents4 *This,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *MediaCollectionChange)(
+        IWMPEvents4 *This);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringAdded)(
+        IWMPEvents4 *This,
+        BSTR name,
+        BSTR val);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringRemoved)(
+        IWMPEvents4 *This,
+        BSTR name,
+        BSTR val);
+
+    void (STDMETHODCALLTYPE *MediaCollectionAttributeStringChanged)(
+        IWMPEvents4 *This,
+        BSTR name,
+        BSTR old_val,
+        BSTR new_val);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionChange)(
+        IWMPEvents4 *This);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistAdded)(
+        IWMPEvents4 *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistRemoved)(
+        IWMPEvents4 *This,
+        BSTR name);
+
+    void (STDMETHODCALLTYPE *PlaylistCollectionPlaylistSetAsDeleted)(
+        IWMPEvents4 *This,
+        BSTR name,
+        VARIANT_BOOL deleted);
+
+    void (STDMETHODCALLTYPE *ModeChange)(
+        IWMPEvents4 *This,
+        BSTR ModeName,
+        VARIANT_BOOL value);
+
+    void (STDMETHODCALLTYPE *MediaError)(
+        IWMPEvents4 *This,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *OpenPlaylistSwitch)(
+        IWMPEvents4 *This,
+        IDispatch *item);
+
+    void (STDMETHODCALLTYPE *DomainChange)(
+        IWMPEvents4 *This,
+        BSTR domain);
+
+    void (STDMETHODCALLTYPE *SwitchedToPlayerApplication)(
+        IWMPEvents4 *This);
+
+    void (STDMETHODCALLTYPE *SwitchedToControl)(
+        IWMPEvents4 *This);
+
+    void (STDMETHODCALLTYPE *PlayerDockedStateChange)(
+        IWMPEvents4 *This);
+
+    void (STDMETHODCALLTYPE *PlayerReconnect)(
+        IWMPEvents4 *This);
+
+    void (STDMETHODCALLTYPE *Click)(
+        IWMPEvents4 *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *DoubleClick)(
+        IWMPEvents4 *This,
+        short button,
+        short shift_state,
+        LONG fX,
+        LONG fY);
+
+    void (STDMETHODCALLTYPE *KeyDown)(
+        IWMPEvents4 *This,
+        short keycode,
+        short shift_state);
+
+    void (STDMETHODCALLTYPE *KeyPress)(
+        IWMPEvents4 *This,
+        short ascii);
+
+    void (STDMETHODCALLTYPE *KeyUp)(
+        IWMPEvents4 *This,
+        short keycode,
+        short shift_state);
+
+    void (STDMETHODCALLTYPE *MouseDown)(
+        IWMPEvents4 *This,
+        short button,
+        short nShiftState,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *MouseMove)(
+        IWMPEvents4 *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    void (STDMETHODCALLTYPE *MouseUp)(
+        IWMPEvents4 *This,
+        short button,
+        short shift_state,
+        LONG x,
+        LONG y);
+
+    /*** IWMPEvents2 methods ***/
+    void (STDMETHODCALLTYPE *DeviceConnect)(
+        IWMPEvents4 *This,
+        IWMPSyncDevice *device);
+
+    void (STDMETHODCALLTYPE *DeviceDisconnect)(
+        IWMPEvents4 *This,
+        IWMPSyncDevice *device);
+
+    void (STDMETHODCALLTYPE *DeviceStatusChange)(
+        IWMPEvents4 *This,
+        IWMPSyncDevice *device,
+        WMPDeviceStatus status);
+
+    void (STDMETHODCALLTYPE *DeviceSyncStateChange)(
+        IWMPEvents4 *This,
+        IWMPSyncDevice *device,
+        WMPSyncState state);
+
+    void (STDMETHODCALLTYPE *DeviceSyncError)(
+        IWMPEvents4 *This,
+        IWMPSyncDevice *device,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *CreatePartnershipComplete)(
+        IWMPEvents4 *This,
+        IWMPSyncDevice *device,
+        HRESULT result);
+
+    /*** IWMPEvents3 methods ***/
+    void (STDMETHODCALLTYPE *CdromRipStateChange)(
+        IWMPEvents4 *This,
+        IWMPCdromRip *rip,
+        WMPRipState state);
+
+    void (STDMETHODCALLTYPE *CdromRipMediaError)(
+        IWMPEvents4 *This,
+        IWMPCdromRip *rip,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *CdromBurnStateChange)(
+        IWMPEvents4 *This,
+        IWMPCdromBurn *burn,
+        WMPBurnState state);
+
+    void (STDMETHODCALLTYPE *CdromBurnMediaError)(
+        IWMPEvents4 *This,
+        IWMPCdromBurn *burn,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *CdromBurnError)(
+        IWMPEvents4 *This,
+        IWMPCdromBurn *burn,
+        HRESULT error);
+
+    void (STDMETHODCALLTYPE *LibraryConnect)(
+        IWMPEvents4 *This,
+        IWMPLibrary *wmplibrary);
+
+    void (STDMETHODCALLTYPE *LibraryDisconnect)(
+        IWMPEvents4 *This,
+        IWMPLibrary *wmplibrary);
+
+    void (STDMETHODCALLTYPE *FolderScanStateChange)(
+        IWMPEvents4 *This,
+        WMPFolderScanState state);
+
+    void (STDMETHODCALLTYPE *StringCollectionChange)(
+        IWMPEvents4 *This,
+        IDispatch *collection,
+        WMPStringCollectionChangeEventType change,
+        LONG index);
+
+    void (STDMETHODCALLTYPE *MediaCollectionMediaAdded)(
+        IWMPEvents4 *This,
+        IDispatch *media);
+
+    void (STDMETHODCALLTYPE *MediaCollectionMediaRemoved)(
+        IWMPEvents4 *This,
+        IDispatch *media);
+
+    /*** IWMPEvents4 methods ***/
+    void (STDMETHODCALLTYPE *DeviceEstimation)(
+        IWMPEvents4 *This,
+        IWMPSyncDevice *device,
+        HRESULT result,
+        LONGLONG used_space,
+        LONGLONG estimated_space);
+
+    END_INTERFACE
+} IWMPEvents4Vtbl;
+
+interface IWMPEvents4 {
+    CONST_VTBL IWMPEvents4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPEvents4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPEvents4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPEvents4_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPEvents methods ***/
+#define IWMPEvents4_OpenStateChange(This,state) (This)->lpVtbl->OpenStateChange(This,state)
+#define IWMPEvents4_PlayStateChange(This,state) (This)->lpVtbl->PlayStateChange(This,state)
+#define IWMPEvents4_AudioLanguageChange(This,lang) (This)->lpVtbl->AudioLanguageChange(This,lang)
+#define IWMPEvents4_StatusChange(This) (This)->lpVtbl->StatusChange(This)
+#define IWMPEvents4_ScriptCommand(This,type,param) (This)->lpVtbl->ScriptCommand(This,type,param)
+#define IWMPEvents4_NewStream(This) (This)->lpVtbl->NewStream(This)
+#define IWMPEvents4_Disconnect(This,result) (This)->lpVtbl->Disconnect(This,result)
+#define IWMPEvents4_Buffering(This,start) (This)->lpVtbl->Buffering(This,start)
+#define IWMPEvents4_Error(This) (This)->lpVtbl->Error(This)
+#define IWMPEvents4_Warning(This,warning,param,description) (This)->lpVtbl->Warning(This,warning,param,description)
+#define IWMPEvents4_EndOfStream(This,result) (This)->lpVtbl->EndOfStream(This,result)
+#define IWMPEvents4_PositionChange(This,old_position,new_position) (This)->lpVtbl->PositionChange(This,old_position,new_position)
+#define IWMPEvents4_MarkerHit(This,marker) (This)->lpVtbl->MarkerHit(This,marker)
+#define IWMPEvents4_DurationUnitChange(This,duration) (This)->lpVtbl->DurationUnitChange(This,duration)
+#define IWMPEvents4_CdromMediaChange(This,num) (This)->lpVtbl->CdromMediaChange(This,num)
+#define IWMPEvents4_PlaylistChange(This,playlist,change) (This)->lpVtbl->PlaylistChange(This,playlist,change)
+#define IWMPEvents4_CurrentPlaylistChange(This,change) (This)->lpVtbl->CurrentPlaylistChange(This,change)
+#define IWMPEvents4_CurrentPlaylistItemAvailable(This,item) (This)->lpVtbl->CurrentPlaylistItemAvailable(This,item)
+#define IWMPEvents4_MediaChange(This,item) (This)->lpVtbl->MediaChange(This,item)
+#define IWMPEvents4_CurrentMediaItemAvailable(This,name) (This)->lpVtbl->CurrentMediaItemAvailable(This,name)
+#define IWMPEvents4_CurrentItemChange(This,media) (This)->lpVtbl->CurrentItemChange(This,media)
+#define IWMPEvents4_MediaCollectionChange(This) (This)->lpVtbl->MediaCollectionChange(This)
+#define IWMPEvents4_MediaCollectionAttributeStringAdded(This,name,val) (This)->lpVtbl->MediaCollectionAttributeStringAdded(This,name,val)
+#define IWMPEvents4_MediaCollectionAttributeStringRemoved(This,name,val) (This)->lpVtbl->MediaCollectionAttributeStringRemoved(This,name,val)
+#define IWMPEvents4_MediaCollectionAttributeStringChanged(This,name,old_val,new_val) (This)->lpVtbl->MediaCollectionAttributeStringChanged(This,name,old_val,new_val)
+#define IWMPEvents4_PlaylistCollectionChange(This) (This)->lpVtbl->PlaylistCollectionChange(This)
+#define IWMPEvents4_PlaylistCollectionPlaylistAdded(This,name) (This)->lpVtbl->PlaylistCollectionPlaylistAdded(This,name)
+#define IWMPEvents4_PlaylistCollectionPlaylistRemoved(This,name) (This)->lpVtbl->PlaylistCollectionPlaylistRemoved(This,name)
+#define IWMPEvents4_PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted) (This)->lpVtbl->PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted)
+#define IWMPEvents4_ModeChange(This,ModeName,value) (This)->lpVtbl->ModeChange(This,ModeName,value)
+#define IWMPEvents4_MediaError(This,media) (This)->lpVtbl->MediaError(This,media)
+#define IWMPEvents4_OpenPlaylistSwitch(This,item) (This)->lpVtbl->OpenPlaylistSwitch(This,item)
+#define IWMPEvents4_DomainChange(This,domain) (This)->lpVtbl->DomainChange(This,domain)
+#define IWMPEvents4_SwitchedToPlayerApplication(This) (This)->lpVtbl->SwitchedToPlayerApplication(This)
+#define IWMPEvents4_SwitchedToControl(This) (This)->lpVtbl->SwitchedToControl(This)
+#define IWMPEvents4_PlayerDockedStateChange(This) (This)->lpVtbl->PlayerDockedStateChange(This)
+#define IWMPEvents4_PlayerReconnect(This) (This)->lpVtbl->PlayerReconnect(This)
+#define IWMPEvents4_Click(This,button,shift_state,x,y) (This)->lpVtbl->Click(This,button,shift_state,x,y)
+#define IWMPEvents4_DoubleClick(This,button,shift_state,fX,fY) (This)->lpVtbl->DoubleClick(This,button,shift_state,fX,fY)
+#define IWMPEvents4_KeyDown(This,keycode,shift_state) (This)->lpVtbl->KeyDown(This,keycode,shift_state)
+#define IWMPEvents4_KeyPress(This,ascii) (This)->lpVtbl->KeyPress(This,ascii)
+#define IWMPEvents4_KeyUp(This,keycode,shift_state) (This)->lpVtbl->KeyUp(This,keycode,shift_state)
+#define IWMPEvents4_MouseDown(This,button,nShiftState,x,y) (This)->lpVtbl->MouseDown(This,button,nShiftState,x,y)
+#define IWMPEvents4_MouseMove(This,button,shift_state,x,y) (This)->lpVtbl->MouseMove(This,button,shift_state,x,y)
+#define IWMPEvents4_MouseUp(This,button,shift_state,x,y) (This)->lpVtbl->MouseUp(This,button,shift_state,x,y)
+/*** IWMPEvents2 methods ***/
+#define IWMPEvents4_DeviceConnect(This,device) (This)->lpVtbl->DeviceConnect(This,device)
+#define IWMPEvents4_DeviceDisconnect(This,device) (This)->lpVtbl->DeviceDisconnect(This,device)
+#define IWMPEvents4_DeviceStatusChange(This,device,status) (This)->lpVtbl->DeviceStatusChange(This,device,status)
+#define IWMPEvents4_DeviceSyncStateChange(This,device,state) (This)->lpVtbl->DeviceSyncStateChange(This,device,state)
+#define IWMPEvents4_DeviceSyncError(This,device,media) (This)->lpVtbl->DeviceSyncError(This,device,media)
+#define IWMPEvents4_CreatePartnershipComplete(This,device,result) (This)->lpVtbl->CreatePartnershipComplete(This,device,result)
+/*** IWMPEvents3 methods ***/
+#define IWMPEvents4_CdromRipStateChange(This,rip,state) (This)->lpVtbl->CdromRipStateChange(This,rip,state)
+#define IWMPEvents4_CdromRipMediaError(This,rip,media) (This)->lpVtbl->CdromRipMediaError(This,rip,media)
+#define IWMPEvents4_CdromBurnStateChange(This,burn,state) (This)->lpVtbl->CdromBurnStateChange(This,burn,state)
+#define IWMPEvents4_CdromBurnMediaError(This,burn,media) (This)->lpVtbl->CdromBurnMediaError(This,burn,media)
+#define IWMPEvents4_CdromBurnError(This,burn,error) (This)->lpVtbl->CdromBurnError(This,burn,error)
+#define IWMPEvents4_LibraryConnect(This,wmplibrary) (This)->lpVtbl->LibraryConnect(This,wmplibrary)
+#define IWMPEvents4_LibraryDisconnect(This,wmplibrary) (This)->lpVtbl->LibraryDisconnect(This,wmplibrary)
+#define IWMPEvents4_FolderScanStateChange(This,state) (This)->lpVtbl->FolderScanStateChange(This,state)
+#define IWMPEvents4_StringCollectionChange(This,collection,change,index) (This)->lpVtbl->StringCollectionChange(This,collection,change,index)
+#define IWMPEvents4_MediaCollectionMediaAdded(This,media) (This)->lpVtbl->MediaCollectionMediaAdded(This,media)
+#define IWMPEvents4_MediaCollectionMediaRemoved(This,media) (This)->lpVtbl->MediaCollectionMediaRemoved(This,media)
+/*** IWMPEvents4 methods ***/
+#define IWMPEvents4_DeviceEstimation(This,device,result,used_space,estimated_space) (This)->lpVtbl->DeviceEstimation(This,device,result,used_space,estimated_space)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPEvents4_QueryInterface(IWMPEvents4* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPEvents4_AddRef(IWMPEvents4* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPEvents4_Release(IWMPEvents4* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPEvents methods ***/
+static FORCEINLINE void IWMPEvents4_OpenStateChange(IWMPEvents4* This,LONG state) {
+    This->lpVtbl->OpenStateChange(This,state);
+}
+static FORCEINLINE void IWMPEvents4_PlayStateChange(IWMPEvents4* This,LONG state) {
+    This->lpVtbl->PlayStateChange(This,state);
+}
+static FORCEINLINE void IWMPEvents4_AudioLanguageChange(IWMPEvents4* This,LONG lang) {
+    This->lpVtbl->AudioLanguageChange(This,lang);
+}
+static FORCEINLINE void IWMPEvents4_StatusChange(IWMPEvents4* This) {
+    This->lpVtbl->StatusChange(This);
+}
+static FORCEINLINE void IWMPEvents4_ScriptCommand(IWMPEvents4* This,BSTR type,BSTR param) {
+    This->lpVtbl->ScriptCommand(This,type,param);
+}
+static FORCEINLINE void IWMPEvents4_NewStream(IWMPEvents4* This) {
+    This->lpVtbl->NewStream(This);
+}
+static FORCEINLINE void IWMPEvents4_Disconnect(IWMPEvents4* This,LONG result) {
+    This->lpVtbl->Disconnect(This,result);
+}
+static FORCEINLINE void IWMPEvents4_Buffering(IWMPEvents4* This,VARIANT_BOOL start) {
+    This->lpVtbl->Buffering(This,start);
+}
+static FORCEINLINE void IWMPEvents4_Error(IWMPEvents4* This) {
+    This->lpVtbl->Error(This);
+}
+static FORCEINLINE void IWMPEvents4_Warning(IWMPEvents4* This,LONG warning,LONG param,BSTR description) {
+    This->lpVtbl->Warning(This,warning,param,description);
+}
+static FORCEINLINE void IWMPEvents4_EndOfStream(IWMPEvents4* This,LONG result) {
+    This->lpVtbl->EndOfStream(This,result);
+}
+static FORCEINLINE void IWMPEvents4_PositionChange(IWMPEvents4* This,double old_position,double new_position) {
+    This->lpVtbl->PositionChange(This,old_position,new_position);
+}
+static FORCEINLINE void IWMPEvents4_MarkerHit(IWMPEvents4* This,LONG marker) {
+    This->lpVtbl->MarkerHit(This,marker);
+}
+static FORCEINLINE void IWMPEvents4_DurationUnitChange(IWMPEvents4* This,LONG duration) {
+    This->lpVtbl->DurationUnitChange(This,duration);
+}
+static FORCEINLINE void IWMPEvents4_CdromMediaChange(IWMPEvents4* This,LONG num) {
+    This->lpVtbl->CdromMediaChange(This,num);
+}
+static FORCEINLINE void IWMPEvents4_PlaylistChange(IWMPEvents4* This,IDispatch *playlist,WMPPlaylistChangeEventType change) {
+    This->lpVtbl->PlaylistChange(This,playlist,change);
+}
+static FORCEINLINE void IWMPEvents4_CurrentPlaylistChange(IWMPEvents4* This,WMPPlaylistChangeEventType change) {
+    This->lpVtbl->CurrentPlaylistChange(This,change);
+}
+static FORCEINLINE void IWMPEvents4_CurrentPlaylistItemAvailable(IWMPEvents4* This,BSTR item) {
+    This->lpVtbl->CurrentPlaylistItemAvailable(This,item);
+}
+static FORCEINLINE void IWMPEvents4_MediaChange(IWMPEvents4* This,IDispatch *item) {
+    This->lpVtbl->MediaChange(This,item);
+}
+static FORCEINLINE void IWMPEvents4_CurrentMediaItemAvailable(IWMPEvents4* This,BSTR name) {
+    This->lpVtbl->CurrentMediaItemAvailable(This,name);
+}
+static FORCEINLINE void IWMPEvents4_CurrentItemChange(IWMPEvents4* This,IDispatch *media) {
+    This->lpVtbl->CurrentItemChange(This,media);
+}
+static FORCEINLINE void IWMPEvents4_MediaCollectionChange(IWMPEvents4* This) {
+    This->lpVtbl->MediaCollectionChange(This);
+}
+static FORCEINLINE void IWMPEvents4_MediaCollectionAttributeStringAdded(IWMPEvents4* This,BSTR name,BSTR val) {
+    This->lpVtbl->MediaCollectionAttributeStringAdded(This,name,val);
+}
+static FORCEINLINE void IWMPEvents4_MediaCollectionAttributeStringRemoved(IWMPEvents4* This,BSTR name,BSTR val) {
+    This->lpVtbl->MediaCollectionAttributeStringRemoved(This,name,val);
+}
+static FORCEINLINE void IWMPEvents4_MediaCollectionAttributeStringChanged(IWMPEvents4* This,BSTR name,BSTR old_val,BSTR new_val) {
+    This->lpVtbl->MediaCollectionAttributeStringChanged(This,name,old_val,new_val);
+}
+static FORCEINLINE void IWMPEvents4_PlaylistCollectionChange(IWMPEvents4* This) {
+    This->lpVtbl->PlaylistCollectionChange(This);
+}
+static FORCEINLINE void IWMPEvents4_PlaylistCollectionPlaylistAdded(IWMPEvents4* This,BSTR name) {
+    This->lpVtbl->PlaylistCollectionPlaylistAdded(This,name);
+}
+static FORCEINLINE void IWMPEvents4_PlaylistCollectionPlaylistRemoved(IWMPEvents4* This,BSTR name) {
+    This->lpVtbl->PlaylistCollectionPlaylistRemoved(This,name);
+}
+static FORCEINLINE void IWMPEvents4_PlaylistCollectionPlaylistSetAsDeleted(IWMPEvents4* This,BSTR name,VARIANT_BOOL deleted) {
+    This->lpVtbl->PlaylistCollectionPlaylistSetAsDeleted(This,name,deleted);
+}
+static FORCEINLINE void IWMPEvents4_ModeChange(IWMPEvents4* This,BSTR ModeName,VARIANT_BOOL value) {
+    This->lpVtbl->ModeChange(This,ModeName,value);
+}
+static FORCEINLINE void IWMPEvents4_MediaError(IWMPEvents4* This,IDispatch *media) {
+    This->lpVtbl->MediaError(This,media);
+}
+static FORCEINLINE void IWMPEvents4_OpenPlaylistSwitch(IWMPEvents4* This,IDispatch *item) {
+    This->lpVtbl->OpenPlaylistSwitch(This,item);
+}
+static FORCEINLINE void IWMPEvents4_DomainChange(IWMPEvents4* This,BSTR domain) {
+    This->lpVtbl->DomainChange(This,domain);
+}
+static FORCEINLINE void IWMPEvents4_SwitchedToPlayerApplication(IWMPEvents4* This) {
+    This->lpVtbl->SwitchedToPlayerApplication(This);
+}
+static FORCEINLINE void IWMPEvents4_SwitchedToControl(IWMPEvents4* This) {
+    This->lpVtbl->SwitchedToControl(This);
+}
+static FORCEINLINE void IWMPEvents4_PlayerDockedStateChange(IWMPEvents4* This) {
+    This->lpVtbl->PlayerDockedStateChange(This);
+}
+static FORCEINLINE void IWMPEvents4_PlayerReconnect(IWMPEvents4* This) {
+    This->lpVtbl->PlayerReconnect(This);
+}
+static FORCEINLINE void IWMPEvents4_Click(IWMPEvents4* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->Click(This,button,shift_state,x,y);
+}
+static FORCEINLINE void IWMPEvents4_DoubleClick(IWMPEvents4* This,short button,short shift_state,LONG fX,LONG fY) {
+    This->lpVtbl->DoubleClick(This,button,shift_state,fX,fY);
+}
+static FORCEINLINE void IWMPEvents4_KeyDown(IWMPEvents4* This,short keycode,short shift_state) {
+    This->lpVtbl->KeyDown(This,keycode,shift_state);
+}
+static FORCEINLINE void IWMPEvents4_KeyPress(IWMPEvents4* This,short ascii) {
+    This->lpVtbl->KeyPress(This,ascii);
+}
+static FORCEINLINE void IWMPEvents4_KeyUp(IWMPEvents4* This,short keycode,short shift_state) {
+    This->lpVtbl->KeyUp(This,keycode,shift_state);
+}
+static FORCEINLINE void IWMPEvents4_MouseDown(IWMPEvents4* This,short button,short nShiftState,LONG x,LONG y) {
+    This->lpVtbl->MouseDown(This,button,nShiftState,x,y);
+}
+static FORCEINLINE void IWMPEvents4_MouseMove(IWMPEvents4* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->MouseMove(This,button,shift_state,x,y);
+}
+static FORCEINLINE void IWMPEvents4_MouseUp(IWMPEvents4* This,short button,short shift_state,LONG x,LONG y) {
+    This->lpVtbl->MouseUp(This,button,shift_state,x,y);
+}
+/*** IWMPEvents2 methods ***/
+static FORCEINLINE void IWMPEvents4_DeviceConnect(IWMPEvents4* This,IWMPSyncDevice *device) {
+    This->lpVtbl->DeviceConnect(This,device);
+}
+static FORCEINLINE void IWMPEvents4_DeviceDisconnect(IWMPEvents4* This,IWMPSyncDevice *device) {
+    This->lpVtbl->DeviceDisconnect(This,device);
+}
+static FORCEINLINE void IWMPEvents4_DeviceStatusChange(IWMPEvents4* This,IWMPSyncDevice *device,WMPDeviceStatus status) {
+    This->lpVtbl->DeviceStatusChange(This,device,status);
+}
+static FORCEINLINE void IWMPEvents4_DeviceSyncStateChange(IWMPEvents4* This,IWMPSyncDevice *device,WMPSyncState state) {
+    This->lpVtbl->DeviceSyncStateChange(This,device,state);
+}
+static FORCEINLINE void IWMPEvents4_DeviceSyncError(IWMPEvents4* This,IWMPSyncDevice *device,IDispatch *media) {
+    This->lpVtbl->DeviceSyncError(This,device,media);
+}
+static FORCEINLINE void IWMPEvents4_CreatePartnershipComplete(IWMPEvents4* This,IWMPSyncDevice *device,HRESULT result) {
+    This->lpVtbl->CreatePartnershipComplete(This,device,result);
+}
+/*** IWMPEvents3 methods ***/
+static FORCEINLINE void IWMPEvents4_CdromRipStateChange(IWMPEvents4* This,IWMPCdromRip *rip,WMPRipState state) {
+    This->lpVtbl->CdromRipStateChange(This,rip,state);
+}
+static FORCEINLINE void IWMPEvents4_CdromRipMediaError(IWMPEvents4* This,IWMPCdromRip *rip,IDispatch *media) {
+    This->lpVtbl->CdromRipMediaError(This,rip,media);
+}
+static FORCEINLINE void IWMPEvents4_CdromBurnStateChange(IWMPEvents4* This,IWMPCdromBurn *burn,WMPBurnState state) {
+    This->lpVtbl->CdromBurnStateChange(This,burn,state);
+}
+static FORCEINLINE void IWMPEvents4_CdromBurnMediaError(IWMPEvents4* This,IWMPCdromBurn *burn,IDispatch *media) {
+    This->lpVtbl->CdromBurnMediaError(This,burn,media);
+}
+static FORCEINLINE void IWMPEvents4_CdromBurnError(IWMPEvents4* This,IWMPCdromBurn *burn,HRESULT error) {
+    This->lpVtbl->CdromBurnError(This,burn,error);
+}
+static FORCEINLINE void IWMPEvents4_LibraryConnect(IWMPEvents4* This,IWMPLibrary *wmplibrary) {
+    This->lpVtbl->LibraryConnect(This,wmplibrary);
+}
+static FORCEINLINE void IWMPEvents4_LibraryDisconnect(IWMPEvents4* This,IWMPLibrary *wmplibrary) {
+    This->lpVtbl->LibraryDisconnect(This,wmplibrary);
+}
+static FORCEINLINE void IWMPEvents4_FolderScanStateChange(IWMPEvents4* This,WMPFolderScanState state) {
+    This->lpVtbl->FolderScanStateChange(This,state);
+}
+static FORCEINLINE void IWMPEvents4_StringCollectionChange(IWMPEvents4* This,IDispatch *collection,WMPStringCollectionChangeEventType change,LONG index) {
+    This->lpVtbl->StringCollectionChange(This,collection,change,index);
+}
+static FORCEINLINE void IWMPEvents4_MediaCollectionMediaAdded(IWMPEvents4* This,IDispatch *media) {
+    This->lpVtbl->MediaCollectionMediaAdded(This,media);
+}
+static FORCEINLINE void IWMPEvents4_MediaCollectionMediaRemoved(IWMPEvents4* This,IDispatch *media) {
+    This->lpVtbl->MediaCollectionMediaRemoved(This,media);
+}
+/*** IWMPEvents4 methods ***/
+static FORCEINLINE void IWMPEvents4_DeviceEstimation(IWMPEvents4* This,IWMPSyncDevice *device,HRESULT result,LONGLONG used_space,LONGLONG estimated_space) {
+    This->lpVtbl->DeviceEstimation(This,device,result,used_space,estimated_space);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPEvents4_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * _WMPOCXEvents interface
+ */
+#ifndef ___WMPOCXEvents_INTERFACE_DEFINED__
+#define ___WMPOCXEvents_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID__WMPOCXEvents, 0x6bf52a51, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6bf52a51-394a-11d3-b153-00c04f79faa6")
+_WMPOCXEvents : public IDispatch
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(_WMPOCXEvents, 0x6bf52a51, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6)
+#endif
+#else
+typedef struct _WMPOCXEventsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        _WMPOCXEvents *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        _WMPOCXEvents *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        _WMPOCXEvents *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        _WMPOCXEvents *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        _WMPOCXEvents *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        _WMPOCXEvents *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        _WMPOCXEvents *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    END_INTERFACE
+} _WMPOCXEventsVtbl;
+
+interface _WMPOCXEvents {
+    CONST_VTBL _WMPOCXEventsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define _WMPOCXEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define _WMPOCXEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define _WMPOCXEvents_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define _WMPOCXEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define _WMPOCXEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define _WMPOCXEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define _WMPOCXEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT _WMPOCXEvents_QueryInterface(_WMPOCXEvents* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG _WMPOCXEvents_AddRef(_WMPOCXEvents* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG _WMPOCXEvents_Release(_WMPOCXEvents* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT _WMPOCXEvents_GetTypeInfoCount(_WMPOCXEvents* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT _WMPOCXEvents_GetTypeInfo(_WMPOCXEvents* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT _WMPOCXEvents_GetIDsOfNames(_WMPOCXEvents* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT _WMPOCXEvents_Invoke(_WMPOCXEvents* 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);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* ___WMPOCXEvents_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * WindowsMediaPlayer coclass
+ */
+
+DEFINE_GUID(CLSID_WindowsMediaPlayer, 0x6bf52a52, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("6bf52a52-394a-11d3-b153-00c04f79faa6") WindowsMediaPlayer;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WindowsMediaPlayer, 0x6bf52a52, 0x394a, 0x11d3, 0xb1,0x53, 0x00,0xc0,0x4f,0x79,0xfa,0xa6)
+#endif
+#endif
+
+#endif /* __WMPLib_LIBRARY_DEFINED__ */
+/* Begin additional prototypes for all interfaces */
+
+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 /* __wmp_h__ */
lib/libc/include/any-windows-any/wmpids.h
@@ -0,0 +1,71 @@
+/*
+ * 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
+ */
+
+/* WMPCoreEvents */
+#define DISPID_WMPCOREEVENT_OPENSTATECHANGE     5001
+#define DISPID_WMPCOREEVENT_STATUSCHANGE        5002
+
+#define DISPID_WMPCOREEVENT_PLAYSTATECHANGE     5101
+#define DISPID_WMPCOREEVENT_AUDIOLANGUAGECHANGE 5102
+
+#define DISPID_WMPCOREEVENT_ENDOFSTREAM         5201
+#define DISPID_WMPCOREEVENT_POSITIONCHANGE      5202
+#define DISPID_WMPCOREEVENT_MARKERHIT           5203
+#define DISPID_WMPCOREEVENT_DURATIONUNITCHANGE  5204
+
+#define DISPID_WMPCOREEVENT_SCRIPTCOMMAND       5301
+
+#define DISPID_WMPCOREEVENT_DISCONNECT          5401
+#define DISPID_WMPCOREEVENT_BUFFERING           5402
+#define DISPID_WMPCOREEVENT_NEWSTREAM           5403
+
+#define DISPID_WMPCOREEVENT_ERROR               5501
+
+#define DISPID_WMPCOREEVENT_WARNING             5601
+
+#define DISPID_WMPCOREEVENT_CDROMMEDIACHANGE    5701
+
+#define DISPID_WMPCOREEVENT_PLAYLISTCHANGE                         5801
+#define DISPID_WMPCOREEVENT_MEDIACHANGE                            5802
+#define DISPID_WMPCOREEVENT_CURRENTMEDIAITEMAVAILABLE              5803
+#define DISPID_WMPCOREEVENT_CURRENTPLAYLISTCHANGE                  5804
+#define DISPID_WMPCOREEVENT_CURRENTPLAYLISTITEMAVAILABLE           5805
+#define DISPID_WMPCOREEVENT_CURRENTITEMCHANGE                      5806
+#define DISPID_WMPCOREEVENT_MEDIACOLLECTIONCHANGE                  5807
+#define DISPID_WMPCOREEVENT_MEDIACOLLECTIONATTRIBUTESTRINGADDED    5808
+#define DISPID_WMPCOREEVENT_MEDIACOLLECTIONATTRIBUTESTRINGREMOVED  5809
+#define DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONCHANGE               5810
+#define DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONPLAYLISTADDED        5811
+#define DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONPLAYLISTREMOVED      5812
+#define DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONPLAYLISTSETASDELETED 5818
+#define DISPID_WMPCOREEVENT_MODECHANGE                             5819
+#define DISPID_WMPCOREEVENT_MEDIACOLLECTIONATTRIBUTESTRINGCHANGED  5820
+#define DISPID_WMPCOREEVENT_MEDIAERROR                             5821
+#define DISPID_WMPCOREEVENT_DOMAINCHANGE                           5822
+#define DISPID_WMPCOREEVENT_OPENPLAYLISTSWITCH                     5823
+
+#define DISPID_WMPOCXEVENT_SWITCHEDTOPLAYERAPPLICATION 6501
+#define DISPID_WMPOCXEVENT_SWITCHEDTOCONTROL           6502
+#define DISPID_WMPOCXEVENT_PLAYERDOCKEDSTATECHANGE     6503
+#define DISPID_WMPOCXEVENT_PLAYERRECONNECT             6504
+#define DISPID_WMPOCXEVENT_CLICK                       6505
+#define DISPID_WMPOCXEVENT_DOUBLECLICK                 6506
+#define DISPID_WMPOCXEVENT_KEYDOWN                     6507
+#define DISPID_WMPOCXEVENT_KEYPRESS                    6508
+#define DISPID_WMPOCXEVENT_KEYUP                       6509
+#define DISPID_WMPOCXEVENT_MOUSEDOWN                   6510
+#define DISPID_WMPOCXEVENT_MOUSEMOVE                   6511
+#define DISPID_WMPOCXEVENT_MOUSEUP                     6512
lib/libc/include/any-windows-any/wmprealestate.h
@@ -0,0 +1,221 @@
+/*** Autogenerated by WIDL 6.4 from include/wmprealestate.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __wmprealestate_h__
+#define __wmprealestate_h__
+
+/* Forward declarations */
+
+#ifndef __IWMPVideoRenderConfig_FWD_DEFINED__
+#define __IWMPVideoRenderConfig_FWD_DEFINED__
+typedef interface IWMPVideoRenderConfig IWMPVideoRenderConfig;
+#ifdef __cplusplus
+interface IWMPVideoRenderConfig;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWMPRenderConfig_FWD_DEFINED__
+#define __IWMPRenderConfig_FWD_DEFINED__
+typedef interface IWMPRenderConfig IWMPRenderConfig;
+#ifdef __cplusplus
+interface IWMPRenderConfig;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+#include <ocidl.h>
+#include <mfidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************
+ * IWMPVideoRenderConfig interface
+ */
+#ifndef __IWMPVideoRenderConfig_INTERFACE_DEFINED__
+#define __IWMPVideoRenderConfig_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPVideoRenderConfig, 0x6d6cf803, 0x1ec0, 0x4c8d, 0xb3,0xca, 0xf1,0x8e,0x27,0x28,0x20,0x74);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6d6cf803-1ec0-4c8d-b3ca-f18e27282074")
+IWMPVideoRenderConfig : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE put_presenterActivate(
+        IMFActivate *activate) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPVideoRenderConfig, 0x6d6cf803, 0x1ec0, 0x4c8d, 0xb3,0xca, 0xf1,0x8e,0x27,0x28,0x20,0x74)
+#endif
+#else
+typedef struct IWMPVideoRenderConfigVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPVideoRenderConfig *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPVideoRenderConfig *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPVideoRenderConfig *This);
+
+    /*** IWMPVideoRenderConfig methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_presenterActivate)(
+        IWMPVideoRenderConfig *This,
+        IMFActivate *activate);
+
+    END_INTERFACE
+} IWMPVideoRenderConfigVtbl;
+
+interface IWMPVideoRenderConfig {
+    CONST_VTBL IWMPVideoRenderConfigVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPVideoRenderConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPVideoRenderConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPVideoRenderConfig_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPVideoRenderConfig methods ***/
+#define IWMPVideoRenderConfig_put_presenterActivate(This,activate) (This)->lpVtbl->put_presenterActivate(This,activate)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPVideoRenderConfig_QueryInterface(IWMPVideoRenderConfig* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPVideoRenderConfig_AddRef(IWMPVideoRenderConfig* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPVideoRenderConfig_Release(IWMPVideoRenderConfig* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPVideoRenderConfig methods ***/
+static FORCEINLINE HRESULT IWMPVideoRenderConfig_put_presenterActivate(IWMPVideoRenderConfig* This,IMFActivate *activate) {
+    return This->lpVtbl->put_presenterActivate(This,activate);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPVideoRenderConfig_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWMPRenderConfig interface
+ */
+#ifndef __IWMPRenderConfig_INTERFACE_DEFINED__
+#define __IWMPRenderConfig_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPRenderConfig, 0x959506c1, 0x0314, 0x4ec5, 0x9e,0x61, 0x85,0x28,0xdb,0x5e,0x54,0x78);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("959506c1-0314-4ec5-9e61-8528db5e5478")
+IWMPRenderConfig : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE put_inProcOnly(
+        WINBOOL fInProc) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_inProcOnly(
+        WINBOOL *pfInProc) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPRenderConfig, 0x959506c1, 0x0314, 0x4ec5, 0x9e,0x61, 0x85,0x28,0xdb,0x5e,0x54,0x78)
+#endif
+#else
+typedef struct IWMPRenderConfigVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPRenderConfig *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPRenderConfig *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPRenderConfig *This);
+
+    /*** IWMPRenderConfig methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_inProcOnly)(
+        IWMPRenderConfig *This,
+        WINBOOL fInProc);
+
+    HRESULT (STDMETHODCALLTYPE *get_inProcOnly)(
+        IWMPRenderConfig *This,
+        WINBOOL *pfInProc);
+
+    END_INTERFACE
+} IWMPRenderConfigVtbl;
+
+interface IWMPRenderConfig {
+    CONST_VTBL IWMPRenderConfigVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPRenderConfig_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPRenderConfig_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPRenderConfig_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPRenderConfig methods ***/
+#define IWMPRenderConfig_put_inProcOnly(This,fInProc) (This)->lpVtbl->put_inProcOnly(This,fInProc)
+#define IWMPRenderConfig_get_inProcOnly(This,pfInProc) (This)->lpVtbl->get_inProcOnly(This,pfInProc)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPRenderConfig_QueryInterface(IWMPRenderConfig* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPRenderConfig_AddRef(IWMPRenderConfig* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPRenderConfig_Release(IWMPRenderConfig* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPRenderConfig methods ***/
+static FORCEINLINE HRESULT IWMPRenderConfig_put_inProcOnly(IWMPRenderConfig* This,WINBOOL fInProc) {
+    return This->lpVtbl->put_inProcOnly(This,fInProc);
+}
+static FORCEINLINE HRESULT IWMPRenderConfig_get_inProcOnly(IWMPRenderConfig* This,WINBOOL *pfInProc) {
+    return This->lpVtbl->get_inProcOnly(This,pfInProc);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPRenderConfig_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __wmprealestate_h__ */
lib/libc/include/any-windows-any/wmpservices.h
@@ -0,0 +1,149 @@
+/*** Autogenerated by WIDL 6.4 from include/wmpservices.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __wmpservices_h__
+#define __wmpservices_h__
+
+/* Forward declarations */
+
+#ifndef __IWMPGraphCreation_FWD_DEFINED__
+#define __IWMPGraphCreation_FWD_DEFINED__
+typedef interface IWMPGraphCreation IWMPGraphCreation;
+#ifdef __cplusplus
+interface IWMPGraphCreation;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+#include <ocidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define WMPGC_FLAGS_SUPPRESS_DIALOGS 0x00000002
+/*****************************************************************************
+ * IWMPGraphCreation interface
+ */
+#ifndef __IWMPGraphCreation_INTERFACE_DEFINED__
+#define __IWMPGraphCreation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWMPGraphCreation, 0xbfb377e5, 0xc594, 0x4369, 0xa9,0x70, 0xde,0x89,0x6d,0x5e,0xce,0x74);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bfb377e5-c594-4369-a970-de896d5ece74")
+IWMPGraphCreation : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GraphCreationPreRender(
+        IUnknown *filter_graph,
+        IUnknown *reserved) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GraphCreationPostRender(
+        IUnknown *filter_graph) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetGraphCreationFlags(
+        DWORD *flags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWMPGraphCreation, 0xbfb377e5, 0xc594, 0x4369, 0xa9,0x70, 0xde,0x89,0x6d,0x5e,0xce,0x74)
+#endif
+#else
+typedef struct IWMPGraphCreationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWMPGraphCreation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWMPGraphCreation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWMPGraphCreation *This);
+
+    /*** IWMPGraphCreation methods ***/
+    HRESULT (STDMETHODCALLTYPE *GraphCreationPreRender)(
+        IWMPGraphCreation *This,
+        IUnknown *filter_graph,
+        IUnknown *reserved);
+
+    HRESULT (STDMETHODCALLTYPE *GraphCreationPostRender)(
+        IWMPGraphCreation *This,
+        IUnknown *filter_graph);
+
+    HRESULT (STDMETHODCALLTYPE *GetGraphCreationFlags)(
+        IWMPGraphCreation *This,
+        DWORD *flags);
+
+    END_INTERFACE
+} IWMPGraphCreationVtbl;
+
+interface IWMPGraphCreation {
+    CONST_VTBL IWMPGraphCreationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWMPGraphCreation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWMPGraphCreation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWMPGraphCreation_Release(This) (This)->lpVtbl->Release(This)
+/*** IWMPGraphCreation methods ***/
+#define IWMPGraphCreation_GraphCreationPreRender(This,filter_graph,reserved) (This)->lpVtbl->GraphCreationPreRender(This,filter_graph,reserved)
+#define IWMPGraphCreation_GraphCreationPostRender(This,filter_graph) (This)->lpVtbl->GraphCreationPostRender(This,filter_graph)
+#define IWMPGraphCreation_GetGraphCreationFlags(This,flags) (This)->lpVtbl->GetGraphCreationFlags(This,flags)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWMPGraphCreation_QueryInterface(IWMPGraphCreation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWMPGraphCreation_AddRef(IWMPGraphCreation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWMPGraphCreation_Release(IWMPGraphCreation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWMPGraphCreation methods ***/
+static FORCEINLINE HRESULT IWMPGraphCreation_GraphCreationPreRender(IWMPGraphCreation* This,IUnknown *filter_graph,IUnknown *reserved) {
+    return This->lpVtbl->GraphCreationPreRender(This,filter_graph,reserved);
+}
+static FORCEINLINE HRESULT IWMPGraphCreation_GraphCreationPostRender(IWMPGraphCreation* This,IUnknown *filter_graph) {
+    return This->lpVtbl->GraphCreationPostRender(This,filter_graph);
+}
+static FORCEINLINE HRESULT IWMPGraphCreation_GetGraphCreationFlags(IWMPGraphCreation* This,DWORD *flags) {
+    return This->lpVtbl->GetGraphCreationFlags(This,flags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWMPGraphCreation_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __wmpservices_h__ */
lib/libc/include/any-windows-any/wmsbuffer.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/wmsbuffer.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wmsbuffer.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/naputil.w โ†’ lib/libc/include/any-windows-any/wmsdk.h
@@ -4,6 +4,10 @@
  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  */
 
-#ifndef _INC_NAPUTIL
-#include <naputil.h>
-#endif /* _INC_NAPUTIL */
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#include <wmsdkidl.h>
+
+#endif /* WINAPI_PARTITION_DESKTOP */
lib/libc/include/any-windows-any/wmsdkidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/wmsdkidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wmsdkidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -6854,9 +6854,9 @@ static FORCEINLINE HRESULT IWMReaderAllocatorEx_AllocateForOutputEx(IWMReaderAll
 #ifndef __IWMSyncReader2_INTERFACE_DEFINED__
 #define __IWMSyncReader2_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IWMSyncReader2, 0xfaed3d21, 0x1b6b, 0x4af7, 0x8b,0xc6, 0x3e,0x18,0x9b,0xbc,0x18,0x7b);
+DEFINE_GUID(IID_IWMSyncReader2, 0xfaed3d21, 0x1b6b, 0x4af7, 0x8c,0xb6, 0x3e,0x18,0x9b,0xbc,0x18,0x7b);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("faed3d21-1b6b-4af7-8bc6-3e189bbc187b")
+MIDL_INTERFACE("faed3d21-1b6b-4af7-8cb6-3e189bbc187b")
 IWMSyncReader2 : public IWMSyncReader
 {
     virtual HRESULT STDMETHODCALLTYPE SetRangeByTimecode(
@@ -6888,7 +6888,7 @@ IWMSyncReader2 : public IWMSyncReader
 
 };
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IWMSyncReader2, 0xfaed3d21, 0x1b6b, 0x4af7, 0x8b,0xc6, 0x3e,0x18,0x9b,0xbc,0x18,0x7b)
+__CRT_UUID_DECL(IWMSyncReader2, 0xfaed3d21, 0x1b6b, 0x4af7, 0x8c,0xb6, 0x3e,0x18,0x9b,0xbc,0x18,0x7b)
 #endif
 #else
 typedef struct IWMSyncReader2Vtbl {
lib/libc/include/any-windows-any/wow64apiset.h
@@ -17,11 +17,37 @@ extern "C" {
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
   WINBASEAPI WINBOOL WINAPI Wow64DisableWow64FsRedirection (PVOID *OldValue);
   WINBASEAPI WINBOOL WINAPI Wow64RevertWow64FsRedirection (PVOID OlValue);
-#endif
+
+  WINBASEAPI UINT WINAPI GetSystemWow64DirectoryA (LPSTR lpBuffer, UINT uSize);
+  WINBASEAPI UINT WINAPI GetSystemWow64DirectoryW (LPWSTR lpBuffer, UINT uSize);
+  #define GetSystemWow64Directory __MINGW_NAME_AW(GetSystemWow64Directory)
+
+  #if _WIN32_WINNT >= 0x0600
+  WINBASEAPI WINBOOL WINAPI Wow64GetThreadContext (HANDLE hThread, PWOW64_CONTEXT lpContext);
+  WINBASEAPI WINBOOL WINAPI Wow64SetThreadContext (HANDLE hThread, CONST WOW64_CONTEXT *lpContext);
+  WINBASEAPI DWORD WINAPI Wow64SuspendThread (HANDLE hThread);
+  #endif
+
+  #if _WIN32_WINNT >= 0x0A00
+  WINBASEAPI USHORT WINAPI Wow64SetThreadDefaultGuestMachine (USHORT Machine);
+
+  WINBASEAPI UINT WINAPI GetSystemWow64Directory2A (LPSTR lpBuffer, UINT uSize, WORD ImageFileMachineType);
+  WINBASEAPI UINT WINAPI GetSystemWow64Directory2W (LPWSTR lpBuffer, UINT uSize, WORD ImageFileMachineType);
+  #define GetSystemWow64Directory2 __MINGW_NAME_AW(GetSystemWow64Directory2)
+
+  WINBASEAPI HRESULT WINAPI IsWow64GuestMachineSupported (USHORT WowGuestMachine, WINBOOL *MachineIsSupported);
+  #endif
+
+#endif /* WINAPI_PARTITION_DESKTOP */
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
   WINBASEAPI WINBOOL WINAPI IsWow64Process (HANDLE hProcess, PBOOL Wow64Process);
-#endif
+
+  #if _WIN32_WINNT >= 0x0A00
+  WINBASEAPI WINBOOL WINAPI IsWow64Process2 (HANDLE hProcess, USHORT *pProcessMachine, USHORT *pNativeMachine);
+  #endif
+
+#endif /* WINAPI_PARTITION_APP */
 
 #ifdef __cplusplus
 }
lib/libc/include/any-windows-any/wpcapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/wpcapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wpcapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ws2ipdef.h
@@ -20,6 +20,105 @@
 extern "C" {
 #endif
 
+/* options at IPPROTO_IP level */
+#define IP_OPTIONS                 1
+#define IP_HDRINCL                 2
+#define IP_TOS                     3
+#define IP_TTL                     4
+#define IP_MULTICAST_IF            9
+#define IP_MULTICAST_TTL          10
+#define IP_MULTICAST_LOOP         11
+#define IP_ADD_MEMBERSHIP         12
+#define IP_DROP_MEMBERSHIP        13
+#define IP_DONTFRAGMENT           14
+#define IP_ADD_SOURCE_MEMBERSHIP  15
+#define IP_DROP_SOURCE_MEMBERSHIP 16
+#define IP_BLOCK_SOURCE           17
+#define IP_UNBLOCK_SOURCE         18
+#define IP_PKTINFO                19
+#define IP_HOPLIMIT               21
+#define IP_RECVTTL                21
+#define IP_RECEIVE_BROADCAST      22
+#define IP_RECVIF                 24
+#define IP_RECVDSTADDR            25
+#define IP_IFLIST                 28
+#define IP_ADD_IFLIST             29
+#define IP_DEL_IFLIST             30
+#define IP_UNICAST_IF             31
+#define IP_RTHDR                  32
+#define IP_GET_IFLIST             33
+#define IP_RECVRTHDR              38
+#define IP_TCLASS                 39
+#define IP_RECVTCLASS             40
+#define IP_RECVTOS                40
+#define IP_ORIGINAL_ARRIVAL_IF    47
+#define IP_ECN                    50
+#define IP_PKTINFO_EX             51
+#define IP_WFP_REDIRECT_RECORDS   60
+#define IP_WFP_REDIRECT_CONTEXT   70
+#define IP_MTU_DISCOVER           71
+#define IP_MTU                    73
+#define IP_NRT_INTERFACE          74
+#define IP_RECVERR                75
+#define IP_USER_MTU               76
+
+#define IP_UNSPECIFIED_TYPE_OF_SERVICE -1
+#define IP_UNSPECIFIED_USER_MTU MAXULONG
+
+#define IPV6_ADDRESS_BITS RTL_BITS_OF(IN6_ADDR)
+
+/* options at IPPROTO_IPV6 level */
+#define IPV6_HOPOPTS              1
+#define IPV6_HDRINCL              2
+#define IPV6_UNICAST_HOPS         4
+#define IPV6_MULTICAST_IF         9
+#define IPV6_MULTICAST_HOPS       10
+#define IPV6_MULTICAST_LOOP       11
+#define IPV6_ADD_MEMBERSHIP       12
+#define IPV6_JOIN_GROUP           IPV6_ADD_MEMBERSHIP
+#define IPV6_DROP_MEMBERSHIP      13
+#define IPV6_LEAVE_GROUP          IPV6_DROP_MEMBERSHIP
+#define IPV6_DONTFRAG             14
+#define IPV6_PKTINFO              19
+#define IPV6_HOPLIMIT             21
+#define IPV6_PROTECTION_LEVEL     23
+#define IPV6_RECVIF               24
+#define IPV6_RECVDSTADDR          25
+#define IPV6_CHECKSUM             26
+#define IPV6_V6ONLY               27
+#define IPV6_IFLIST               28
+#define IPV6_ADD_IFLIST           29
+#define IPV6_DEL_IFLIST           30
+#define IPV6_UNICAST_IF           31
+#define IPV6_RTHDR                32
+#define IPV6_GET_IFLIST           33
+#define IPV6_RECVRTHDR            38
+#define IPV6_TCLASS               39
+#define IPV6_RECVTCLASS           40
+#define IPV6_ECN                  50
+#define IPV6_PKTINFO_EX           51
+#define IPV6_WFP_REDIRECT_RECORDS 60
+#define IPV6_WFP_REDIRECT_CONTEXT 70
+#define IPV6_MTU_DISCOVER         71
+#define IPV6_MTU                  72
+#define IPV6_NRT_INTERFACE        74
+#define IPV6_RECVERR              75
+#define IPV6_USER_MTU             76
+
+#define IP_UNSPECIFIED_HOP_LIMIT -1
+
+#define IP_PROTECTION_LEVEL IPV6_PROTECTION_LEVEL
+
+#define PROTECTION_LEVEL_UNRESTRICTED   10
+#define PROTECTION_LEVEL_EDGERESTRICTED 20
+#define PROTECTION_LEVEL_RESTRICTED     30
+
+#if NTDDI_VERSION < NTDDI_VISTA
+#define PROTECTION_LEVEL_DEFAULT PROTECTION_LEVEL_EDGERESTRICTED
+#else
+#define PROTECTION_LEVEL_DEFAULT ((UINT)-1)
+#endif
+
 typedef struct ipv6_mreq {
   struct in6_addr ipv6mr_multiaddr;
   unsigned int ipv6mr_interface;
@@ -60,11 +159,60 @@ typedef struct _INTERFACE_INFO {
   sockaddr_gen iiNetmask;
 } INTERFACE_INFO,*LPINTERFACE_INFO;
 
+typedef struct _INTERFACE_INFO_EX {
+  u_long iiFlags;
+  SOCKET_ADDRESS iiAddress;
+  SOCKET_ADDRESS iiBroadcastAddress;
+  SOCKET_ADDRESS iiNetmask;
+} INTERFACE_INFO_EX, *LPINTERFACE_INFO_EX;
+
+#define IFF_UP 0x00000001
+#define IFF_BROADCAST 0x00000002
+#define IFF_LOOPBACK 0x00000004
+#define IFF_POINTTOPOINT 0x00000008
+#define IFF_MULTICAST 0x00000010
+
+typedef enum _PMTUD_STATE {
+  IP_PMTUDISC_NOT_SET,
+  IP_PMTUDISC_DO,
+  IP_PMTUDISC_DONT,
+  IP_PMTUDISC_PROBE,
+  IP_PMTUDISC_MAX
+} PMTUD_STATE, *PPMTUD_STATE;
+
+#define MCAST_JOIN_GROUP 41
+#define MCAST_LEAVE_GROUP 42
+#define MCAST_BLOCK_SOURCE 43
+#define MCAST_UNBLOCK_SOURCE 44
+#define MCAST_JOIN_SOURCE_GROUP 45
+#define MCAST_LEAVE_SOURCE_GROUP 46
+
 typedef enum _MULTICAST_MODE_TYPE {
-  MCAST_INCLUDE   = 0,
+  MCAST_INCLUDE = 0,
   MCAST_EXCLUDE
 } MULTICAST_MODE_TYPE;
 
+typedef struct ip_mreq {
+  IN_ADDR imr_multiaddr;
+  IN_ADDR imr_interface;
+} IP_MREQ, *PIP_MREQ;
+
+typedef struct ip_mreq_source {
+  IN_ADDR imr_multiaddr;
+  IN_ADDR imr_sourceaddr;
+  IN_ADDR imr_interface;
+} IP_MREQ_SOURCE, *PIP_MREQ_SOURCE;
+
+typedef struct ip_msfilter {
+  IN_ADDR imsf_multiaddr;
+  IN_ADDR imsf_interface;
+  MULTICAST_MODE_TYPE imsf_fmode;
+  ULONG imsf_numsrc;
+  IN_ADDR imsf_slist[1];
+} IP_MSFILTER, *PIP_MSFILTER;
+
+#define IP_MSFILTER_SIZE(NumSources) (sizeof(IP_MSFILTER) - sizeof(IN_ADDR) + (NumSources) * sizeof(IN_ADDR))
+
 typedef struct _sockaddr_in6_pair {
   PSOCKADDR_IN6 SourceAddress;
   PSOCKADDR_IN6 DestinationAddress;
@@ -95,33 +243,6 @@ typedef struct group_source_req {
   SOCKADDR_STORAGE gsr_source;
 } GROUP_SOURCE_REQ, *PGROUP_SOURCE_REQ;
 
-#define IPV6_HOPOPTS           1
-#define IPV6_HDRINCL           2
-#define IPV6_UNICAST_HOPS      4
-#define IPV6_MULTICAST_IF      9
-#define IPV6_MULTICAST_HOPS    10
-#define IPV6_MULTICAST_LOOP    11
-#define IPV6_ADD_MEMBERSHIP    12
-#define IPV6_JOIN_GROUP        IPV6_ADD_MEMBERSHIP
-#define IPV6_DROP_MEMBERSHIP   13
-#define IPV6_LEAVE_GROUP       IPV6_DROP_MEMBERSHIP
-#define IPV6_DONTFRAG          14
-#define IPV6_PKTINFO           19
-#define IPV6_HOPLIMIT          21
-#define IPV6_PROTECTION_LEVEL  23
-#define IPV6_RECVIF            24
-#define IPV6_RECVDSTADDR       25
-#define IPV6_CHECKSUM          26
-#define IPV6_V6ONLY            27
-#define IPV6_IFLIST            28
-#define IPV6_ADD_IFLIST        29
-#define IPV6_DEL_IFLIST        30
-#define IPV6_UNICAST_IF        31
-#define IPV6_RTHDR             32
-#define IPV6_RECVRTHDR         38
-#define IPV6_TCLASS            39
-#define IPV6_RECVTCLASS        40
-
 #define WS2TCPIP_INLINE __CRT_INLINE
 
 int IN6_ADDR_EQUAL(const struct in6_addr *,const struct in6_addr *);
lib/libc/include/any-windows-any/ws2tcpip.h
@@ -19,49 +19,12 @@
 #include <psdk_inc/_ip_mreq1.h>
 #include <winapifamily.h>
 
-struct ip_mreq_source {
-  struct in_addr imr_multiaddr;
-  struct in_addr imr_sourceaddr;
-  struct in_addr imr_interface;
-};
-
-struct ip_msfilter {
-  struct in_addr imsf_multiaddr;
-  struct in_addr imsf_interface;
-  u_long imsf_fmode;
-  u_long imsf_numsrc;
-  struct in_addr imsf_slist[1];
-};
-
-#define IP_MSFILTER_SIZE(numsrc) (sizeof(struct ip_msfilter)-sizeof(struct in_addr) + (numsrc)*sizeof(struct in_addr))
-
 #define SIO_GET_INTERFACE_LIST _IOR('t',127,u_long)
 
 #define SIO_GET_INTERFACE_LIST_EX _IOR('t',126,u_long)
 #define SIO_SET_MULTICAST_FILTER _IOW('t',125,u_long)
 #define SIO_GET_MULTICAST_FILTER _IOW('t',124 | IOC_IN,u_long)
 
-#define IP_OPTIONS 1
-#define IP_HDRINCL 2
-#define IP_TOS 3
-#define IP_TTL 4
-#define IP_MULTICAST_IF 9
-#define IP_MULTICAST_TTL 10
-#define IP_MULTICAST_LOOP 11
-#define IP_ADD_MEMBERSHIP 12
-#define IP_DROP_MEMBERSHIP 13
-#define IP_DONTFRAGMENT 14
-#define IP_ADD_SOURCE_MEMBERSHIP 15
-#define IP_DROP_SOURCE_MEMBERSHIP 16
-#define IP_BLOCK_SOURCE 17
-#define IP_UNBLOCK_SOURCE 18
-#define IP_PKTINFO 19
-#define IP_RECEIVE_BROADCAST 22
-
-#define PROTECTION_LEVEL_UNRESTRICTED 10
-#define PROTECTION_LEVEL_DEFAULT 20
-#define PROTECTION_LEVEL_RESTRICTED 30
-
 #define UDP_NOCHECKSUM 1
 #define UDP_CHECKSUM_COVERAGE 20
 
@@ -154,19 +117,6 @@ WS2TCPIP_INLINE void IN6ADDR_SETLOOPBACK(struct sockaddr_in6 *a) {
 }
 #endif
 
-typedef struct _INTERFACE_INFO_EX {
-  u_long iiFlags;
-  SOCKET_ADDRESS iiAddress;
-  SOCKET_ADDRESS iiBroadcastAddress;
-  SOCKET_ADDRESS iiNetmask;
-} INTERFACE_INFO_EX,*LPINTERFACE_INFO_EX;
-
-#define IFF_UP 0x00000001
-#define IFF_BROADCAST 0x00000002
-#define IFF_LOOPBACK 0x00000004
-#define IFF_POINTTOPOINT 0x00000008
-#define IFF_MULTICAST 0x00000010
-
 typedef struct in_pktinfo {
   IN_ADDR ipi_addr;
   UINT ipi_ifindex;
lib/libc/include/any-windows-any/wsdattachment.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wsdattachment.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wsdattachment.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsdbase.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wsdbase.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wsdbase.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -161,7 +161,7 @@ interface IWSDHttpMessageParameters;
 
 
 #if WINVER >= 0x601
-typedef enum __WIDL_wsdbase_generated_name_00000005 {
+typedef enum __WIDL_wsdbase_generated_name_00000013 {
     WSD_CONFIG_MAX_INBOUND_MESSAGE_SIZE = 1,
     WSD_CONFIG_MAX_OUTBOUND_MESSAGE_SIZE = 2,
     WSD_SECURITY_SSL_CERT_FOR_CLIENT_AUTH = 3,
lib/libc/include/any-windows-any/wsdclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wsdclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wsdclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsddisco.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wsddisco.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wsddisco.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsdhost.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wsdhost.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wsdhost.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsdxml.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wsdxml.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wsdxml.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsmandisp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wsmandisp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wsmandisp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -143,6 +143,8 @@ extern "C" {
 #include <winapifamily.h>
 
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+#ifndef __WSManAutomation_LIBRARY_DEFINED__
+#define __WSManAutomation_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_WSManAutomation, 0xf010be25, 0x296d, 0x4036, 0x98,0x0f, 0x5a,0x06,0x69,0xa1,0x75,0x77);
 
@@ -317,6 +319,7 @@ __CRT_UUID_DECL(WSManInternal, 0x7de087a5, 0x5dcb, 0x4df7, 0xbb,0x12, 0x09,0x24,
 #endif
 #endif
 
+#endif /* __WSManAutomation_LIBRARY_DEFINED__ */
 /*****************************************************************************
  * IWSMan interface
  */
lib/libc/include/any-windows-any/wtypes.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wtypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wtypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -226,7 +226,7 @@ typedef USHORT LANGID;
 
 typedef struct _userCLIPFORMAT {
     LONG fContext;
-    union {
+    union __WIDL_wtypes_generated_name_00000001 {
         DWORD dwValue;
         wchar_t *pwszName;
     } u;
@@ -237,7 +237,7 @@ typedef WORD CLIPFORMAT;
 
 typedef struct _GDI_NONREMOTE {
     LONG fContext;
-    union {
+    union __WIDL_wtypes_generated_name_00000002 {
         LONG hInproc;
         DWORD_BLOB *hRemote;
     } u;
@@ -245,7 +245,7 @@ typedef struct _GDI_NONREMOTE {
 
 typedef struct _userHGLOBAL {
     LONG fContext;
-    union {
+    union __WIDL_wtypes_generated_name_00000003 {
         LONG hInproc;
         FLAGGED_BYTE_BLOB *hRemote;
         INT64 hInproc64;
@@ -256,7 +256,7 @@ typedef userHGLOBAL *wireHGLOBAL;
 
 typedef struct _userHMETAFILE {
     LONG fContext;
-    union {
+    union __WIDL_wtypes_generated_name_00000004 {
         LONG hInproc;
         BYTE_BLOB *hRemote;
         INT64 hInproc64;
@@ -272,7 +272,7 @@ typedef struct _remoteMETAFILEPICT {
 
 typedef struct _userHMETAFILEPICT {
     LONG fContext;
-    union {
+    union __WIDL_wtypes_generated_name_00000005 {
         LONG hInproc;
         remoteMETAFILEPICT *hRemote;
         INT64 hInproc64;
@@ -281,7 +281,7 @@ typedef struct _userHMETAFILEPICT {
 
 typedef struct _userHENHMETAFILE {
     LONG fContext;
-    union {
+    union __WIDL_wtypes_generated_name_00000006 {
         LONG hInproc;
         BYTE_BLOB *hRemote;
         INT64 hInproc64;
@@ -301,7 +301,7 @@ typedef struct _userBITMAP {
 
 typedef struct _userHBITMAP {
     LONG fContext;
-    union {
+    union __WIDL_wtypes_generated_name_00000007 {
         LONG hInproc;
         userBITMAP *hRemote;
         INT64 hInproc64;
@@ -310,7 +310,7 @@ typedef struct _userHBITMAP {
 
 typedef struct _userHPALETTE {
     LONG fContext;
-    union {
+    union __WIDL_wtypes_generated_name_00000008 {
         LONG hInproc;
         LOGPALETTE *hRemote;
         INT64 hInproc64;
@@ -319,7 +319,7 @@ typedef struct _userHPALETTE {
 
 typedef struct _RemotableHandle {
     LONG fContext;
-    union {
+    union __WIDL_wtypes_generated_name_00000009 {
         LONG hInproc;
         LONG hRemote;
     } u;
@@ -601,9 +601,9 @@ typedef enum tagTYSPEC {
     TYSPEC_OBJECTID = 6
 } TYSPEC;
 
-typedef struct __WIDL_wtypes_generated_name_00000001 {
+typedef struct __WIDL_wtypes_generated_name_0000000B {
     DWORD tyspec;
-    union {
+    union __WIDL_wtypes_generated_name_0000000A {
         CLSID clsid;
         LPOLESTR pFileExt;
         LPOLESTR pMimeType;
lib/libc/include/any-windows-any/wtypesbase.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/wtypesbase.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/wtypesbase.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wuapi.h
@@ -0,0 +1,6980 @@
+/*** Autogenerated by WIDL 6.4 from include/wuapi.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __wuapi_h__
+#define __wuapi_h__
+
+/* Forward declarations */
+
+#ifndef __IAutomaticUpdatesSettings_FWD_DEFINED__
+#define __IAutomaticUpdatesSettings_FWD_DEFINED__
+typedef interface IAutomaticUpdatesSettings IAutomaticUpdatesSettings;
+#ifdef __cplusplus
+interface IAutomaticUpdatesSettings;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IAutomaticUpdates_FWD_DEFINED__
+#define __IAutomaticUpdates_FWD_DEFINED__
+typedef interface IAutomaticUpdates IAutomaticUpdates;
+#ifdef __cplusplus
+interface IAutomaticUpdates;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWebProxy_FWD_DEFINED__
+#define __IWebProxy_FWD_DEFINED__
+typedef interface IWebProxy IWebProxy;
+#ifdef __cplusplus
+interface IWebProxy;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateSession_FWD_DEFINED__
+#define __IUpdateSession_FWD_DEFINED__
+typedef interface IUpdateSession IUpdateSession;
+#ifdef __cplusplus
+interface IUpdateSession;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IImageInformation_FWD_DEFINED__
+#define __IImageInformation_FWD_DEFINED__
+typedef interface IImageInformation IImageInformation;
+#ifdef __cplusplus
+interface IImageInformation;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ICategory_FWD_DEFINED__
+#define __ICategory_FWD_DEFINED__
+typedef interface ICategory ICategory;
+#ifdef __cplusplus
+interface ICategory;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ICategoryCollection_FWD_DEFINED__
+#define __ICategoryCollection_FWD_DEFINED__
+typedef interface ICategoryCollection ICategoryCollection;
+#ifdef __cplusplus
+interface ICategoryCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IStringCollection_FWD_DEFINED__
+#define __IStringCollection_FWD_DEFINED__
+typedef interface IStringCollection IStringCollection;
+#ifdef __cplusplus
+interface IStringCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateException_FWD_DEFINED__
+#define __IUpdateException_FWD_DEFINED__
+typedef interface IUpdateException IUpdateException;
+#ifdef __cplusplus
+interface IUpdateException;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateExceptionCollection_FWD_DEFINED__
+#define __IUpdateExceptionCollection_FWD_DEFINED__
+typedef interface IUpdateExceptionCollection IUpdateExceptionCollection;
+#ifdef __cplusplus
+interface IUpdateExceptionCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateIdentity_FWD_DEFINED__
+#define __IUpdateIdentity_FWD_DEFINED__
+typedef interface IUpdateIdentity IUpdateIdentity;
+#ifdef __cplusplus
+interface IUpdateIdentity;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IInstallationBehavior_FWD_DEFINED__
+#define __IInstallationBehavior_FWD_DEFINED__
+typedef interface IInstallationBehavior IInstallationBehavior;
+#ifdef __cplusplus
+interface IInstallationBehavior;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateDownloadContent_FWD_DEFINED__
+#define __IUpdateDownloadContent_FWD_DEFINED__
+typedef interface IUpdateDownloadContent IUpdateDownloadContent;
+#ifdef __cplusplus
+interface IUpdateDownloadContent;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateDownloadContentCollection_FWD_DEFINED__
+#define __IUpdateDownloadContentCollection_FWD_DEFINED__
+typedef interface IUpdateDownloadContentCollection IUpdateDownloadContentCollection;
+#ifdef __cplusplus
+interface IUpdateDownloadContentCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdate_FWD_DEFINED__
+#define __IUpdate_FWD_DEFINED__
+typedef interface IUpdate IUpdate;
+#ifdef __cplusplus
+interface IUpdate;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateCollection_FWD_DEFINED__
+#define __IUpdateCollection_FWD_DEFINED__
+typedef interface IUpdateCollection IUpdateCollection;
+#ifdef __cplusplus
+interface IUpdateCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISearchJob_FWD_DEFINED__
+#define __ISearchJob_FWD_DEFINED__
+typedef interface ISearchJob ISearchJob;
+#ifdef __cplusplus
+interface ISearchJob;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISearchResult_FWD_DEFINED__
+#define __ISearchResult_FWD_DEFINED__
+typedef interface ISearchResult ISearchResult;
+#ifdef __cplusplus
+interface ISearchResult;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateHistoryEntry_FWD_DEFINED__
+#define __IUpdateHistoryEntry_FWD_DEFINED__
+typedef interface IUpdateHistoryEntry IUpdateHistoryEntry;
+#ifdef __cplusplus
+interface IUpdateHistoryEntry;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateHistoryEntryCollection_FWD_DEFINED__
+#define __IUpdateHistoryEntryCollection_FWD_DEFINED__
+typedef interface IUpdateHistoryEntryCollection IUpdateHistoryEntryCollection;
+#ifdef __cplusplus
+interface IUpdateHistoryEntryCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateSearcher_FWD_DEFINED__
+#define __IUpdateSearcher_FWD_DEFINED__
+typedef interface IUpdateSearcher IUpdateSearcher;
+#ifdef __cplusplus
+interface IUpdateSearcher;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateDownloadResult_FWD_DEFINED__
+#define __IUpdateDownloadResult_FWD_DEFINED__
+typedef interface IUpdateDownloadResult IUpdateDownloadResult;
+#ifdef __cplusplus
+interface IUpdateDownloadResult;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDownloadProgress_FWD_DEFINED__
+#define __IDownloadProgress_FWD_DEFINED__
+typedef interface IDownloadProgress IDownloadProgress;
+#ifdef __cplusplus
+interface IDownloadProgress;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDownloadJob_FWD_DEFINED__
+#define __IDownloadJob_FWD_DEFINED__
+typedef interface IDownloadJob IDownloadJob;
+#ifdef __cplusplus
+interface IDownloadJob;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDownloadResult_FWD_DEFINED__
+#define __IDownloadResult_FWD_DEFINED__
+typedef interface IDownloadResult IDownloadResult;
+#ifdef __cplusplus
+interface IDownloadResult;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateDownloader_FWD_DEFINED__
+#define __IUpdateDownloader_FWD_DEFINED__
+typedef interface IUpdateDownloader IUpdateDownloader;
+#ifdef __cplusplus
+interface IUpdateDownloader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateInstallationResult_FWD_DEFINED__
+#define __IUpdateInstallationResult_FWD_DEFINED__
+typedef interface IUpdateInstallationResult IUpdateInstallationResult;
+#ifdef __cplusplus
+interface IUpdateInstallationResult;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IInstallationProgress_FWD_DEFINED__
+#define __IInstallationProgress_FWD_DEFINED__
+typedef interface IInstallationProgress IInstallationProgress;
+#ifdef __cplusplus
+interface IInstallationProgress;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IInstallationJob_FWD_DEFINED__
+#define __IInstallationJob_FWD_DEFINED__
+typedef interface IInstallationJob IInstallationJob;
+#ifdef __cplusplus
+interface IInstallationJob;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IInstallationResult_FWD_DEFINED__
+#define __IInstallationResult_FWD_DEFINED__
+typedef interface IInstallationResult IInstallationResult;
+#ifdef __cplusplus
+interface IInstallationResult;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateInstaller_FWD_DEFINED__
+#define __IUpdateInstaller_FWD_DEFINED__
+typedef interface IUpdateInstaller IUpdateInstaller;
+#ifdef __cplusplus
+interface IUpdateInstaller;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISystemInformation_FWD_DEFINED__
+#define __ISystemInformation_FWD_DEFINED__
+typedef interface ISystemInformation ISystemInformation;
+#ifdef __cplusplus
+interface ISystemInformation;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __AutomaticUpdates_FWD_DEFINED__
+#define __AutomaticUpdates_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class AutomaticUpdates AutomaticUpdates;
+#else
+typedef struct AutomaticUpdates AutomaticUpdates;
+#endif /* defined __cplusplus */
+#endif /* defined __AutomaticUpdates_FWD_DEFINED__ */
+
+#ifndef __UpdateInstaller_FWD_DEFINED__
+#define __UpdateInstaller_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class UpdateInstaller UpdateInstaller;
+#else
+typedef struct UpdateInstaller UpdateInstaller;
+#endif /* defined __cplusplus */
+#endif /* defined __UpdateInstaller_FWD_DEFINED__ */
+
+#ifndef __UpdateSession_FWD_DEFINED__
+#define __UpdateSession_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class UpdateSession UpdateSession;
+#else
+typedef struct UpdateSession UpdateSession;
+#endif /* defined __cplusplus */
+#endif /* defined __UpdateSession_FWD_DEFINED__ */
+
+#ifndef __SystemInformation_FWD_DEFINED__
+#define __SystemInformation_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class SystemInformation SystemInformation;
+#else
+typedef struct SystemInformation SystemInformation;
+#endif /* defined __cplusplus */
+#endif /* defined __SystemInformation_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <oaidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef __WUApiLib_LIBRARY_DEFINED__
+#define __WUApiLib_LIBRARY_DEFINED__
+
+DEFINE_GUID(LIBID_WUApiLib, 0xb596cc9f, 0x56e5, 0x419e, 0xa6,0x22, 0xe0,0x1b,0xb4,0x57,0x43,0x1e);
+
+#ifndef __ICategoryCollection_FWD_DEFINED__
+#define __ICategoryCollection_FWD_DEFINED__
+typedef interface ICategoryCollection ICategoryCollection;
+#ifdef __cplusplus
+interface ICategoryCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IStringCollection_FWD_DEFINED__
+#define __IStringCollection_FWD_DEFINED__
+typedef interface IStringCollection IStringCollection;
+#ifdef __cplusplus
+interface IStringCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateCollection_FWD_DEFINED__
+#define __IUpdateCollection_FWD_DEFINED__
+typedef interface IUpdateCollection IUpdateCollection;
+#ifdef __cplusplus
+interface IUpdateCollection;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateDownloader_FWD_DEFINED__
+#define __IUpdateDownloader_FWD_DEFINED__
+typedef interface IUpdateDownloader IUpdateDownloader;
+#ifdef __cplusplus
+interface IUpdateDownloader;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateInstaller_FWD_DEFINED__
+#define __IUpdateInstaller_FWD_DEFINED__
+typedef interface IUpdateInstaller IUpdateInstaller;
+#ifdef __cplusplus
+interface IUpdateInstaller;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IUpdateSearcher_FWD_DEFINED__
+#define __IUpdateSearcher_FWD_DEFINED__
+typedef interface IUpdateSearcher IUpdateSearcher;
+#ifdef __cplusplus
+interface IUpdateSearcher;
+#endif /* __cplusplus */
+#endif
+
+typedef enum tagDownloadPriority {
+    dpLow = 1,
+    dpNormal = 2,
+    dpHigh = 3
+} DownloadPriority;
+typedef enum tagServerSelection {
+    ssDefault = 0,
+    ssManagedServer = 1,
+    ssWindowsUpdate = 2,
+    ssOthers = 3
+} ServerSelection;
+typedef enum tagAutomaticUpdatesNotificationLevel {
+    aunlNotConfigured = 0,
+    aunlDisabled = 1,
+    aunlNotifyBeforeDownload = 2,
+    aunlNotifyBeforeInstallation = 3,
+    aunlScheduledInstallation = 4
+} AutomaticUpdatesNotificationLevel;
+typedef enum tagAutomaticUpdatesScheduledInstallationDay {
+    ausidEveryDay = 0,
+    ausidEverySunday = 1,
+    ausidEveryMonday = 2,
+    ausidEveryTuesday = 3,
+    ausidEveryWednesday = 4,
+    ausidEveryThursday = 5,
+    ausidEveryFriday = 6,
+    ausidEverySaturday = 7
+} AutomaticUpdatesScheduledInstallationDay;
+typedef enum tagDownloadPhase {
+    dphInitializing = 0,
+    dphDownloading = 1,
+    dphVerifying = 2
+} DownloadPhase;
+typedef enum tagOperationResultCode {
+    orcNotStarted = 0,
+    orcInProgress = 1,
+    orcSucceeded = 2,
+    orcSucceededWithErrors = 3,
+    orcFailed = 4,
+    orcAborted = 5
+} OperationResultCode;
+typedef enum tagUpdateExceptionContext {
+    uecGeneral = 1,
+    uecWindowsDriver = 2,
+    uecWindowsInstaller = 3
+} UpdateExceptionContext;
+typedef enum tagInstallationImpact {
+    iiNormal = 0,
+    iiMinor = 1,
+    iiRequiresExclusiveHandling = 2
+} InstallationImpact;
+typedef enum tagInstallationRebootBehavior {
+    irbNeverReboots = 0,
+    irbAlwaysRequiresReboot = 1,
+    irbCanRequestReboot = 2
+} InstallationRebootBehavior;
+typedef enum tagUpdateType {
+    utSoftware = 1,
+    utDriver = 2
+} UpdateType;
+typedef enum tagUpdateOperation {
+    uoInstallation = 1,
+    uoUninstallation = 2
+} UpdateOperation;
+typedef enum tagDeploymentAction {
+    daNone = 0,
+    daInstallation = 1,
+    daUninstallation = 2,
+    daDetection = 3
+} DeploymentAction;
+/*****************************************************************************
+ * IAutomaticUpdatesSettings interface
+ */
+#ifndef __IAutomaticUpdatesSettings_INTERFACE_DEFINED__
+#define __IAutomaticUpdatesSettings_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAutomaticUpdatesSettings, 0x2ee48f22, 0xaf3c, 0x405f, 0x89,0x70, 0xf7,0x1b,0xe1,0x2e,0xe9,0xa2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("2ee48f22-af3c-405f-8970-f71be12ee9a2")
+IAutomaticUpdatesSettings : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_NotificationLevel(
+        AutomaticUpdatesNotificationLevel *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_NotificationLevel(
+        AutomaticUpdatesNotificationLevel value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Required(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ScheduledInstallationDay(
+        AutomaticUpdatesScheduledInstallationDay *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ScheduledInstallationDay(
+        AutomaticUpdatesScheduledInstallationDay value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ScheduledInstallationTime(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ScheduledInstallationTime(
+        LONG value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Refresh(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Save(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAutomaticUpdatesSettings, 0x2ee48f22, 0xaf3c, 0x405f, 0x89,0x70, 0xf7,0x1b,0xe1,0x2e,0xe9,0xa2)
+#endif
+#else
+typedef struct IAutomaticUpdatesSettingsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAutomaticUpdatesSettings *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAutomaticUpdatesSettings *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAutomaticUpdatesSettings *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IAutomaticUpdatesSettings *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IAutomaticUpdatesSettings *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IAutomaticUpdatesSettings *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IAutomaticUpdatesSettings *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IAutomaticUpdatesSettings methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_NotificationLevel)(
+        IAutomaticUpdatesSettings *This,
+        AutomaticUpdatesNotificationLevel *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_NotificationLevel)(
+        IAutomaticUpdatesSettings *This,
+        AutomaticUpdatesNotificationLevel value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ReadOnly)(
+        IAutomaticUpdatesSettings *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Required)(
+        IAutomaticUpdatesSettings *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ScheduledInstallationDay)(
+        IAutomaticUpdatesSettings *This,
+        AutomaticUpdatesScheduledInstallationDay *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_ScheduledInstallationDay)(
+        IAutomaticUpdatesSettings *This,
+        AutomaticUpdatesScheduledInstallationDay value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ScheduledInstallationTime)(
+        IAutomaticUpdatesSettings *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_ScheduledInstallationTime)(
+        IAutomaticUpdatesSettings *This,
+        LONG value);
+
+    HRESULT (STDMETHODCALLTYPE *Refresh)(
+        IAutomaticUpdatesSettings *This);
+
+    HRESULT (STDMETHODCALLTYPE *Save)(
+        IAutomaticUpdatesSettings *This);
+
+    END_INTERFACE
+} IAutomaticUpdatesSettingsVtbl;
+
+interface IAutomaticUpdatesSettings {
+    CONST_VTBL IAutomaticUpdatesSettingsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAutomaticUpdatesSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAutomaticUpdatesSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAutomaticUpdatesSettings_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IAutomaticUpdatesSettings_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IAutomaticUpdatesSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IAutomaticUpdatesSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IAutomaticUpdatesSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IAutomaticUpdatesSettings methods ***/
+#define IAutomaticUpdatesSettings_get_NotificationLevel(This,retval) (This)->lpVtbl->get_NotificationLevel(This,retval)
+#define IAutomaticUpdatesSettings_put_NotificationLevel(This,value) (This)->lpVtbl->put_NotificationLevel(This,value)
+#define IAutomaticUpdatesSettings_get_ReadOnly(This,retval) (This)->lpVtbl->get_ReadOnly(This,retval)
+#define IAutomaticUpdatesSettings_get_Required(This,retval) (This)->lpVtbl->get_Required(This,retval)
+#define IAutomaticUpdatesSettings_get_ScheduledInstallationDay(This,retval) (This)->lpVtbl->get_ScheduledInstallationDay(This,retval)
+#define IAutomaticUpdatesSettings_put_ScheduledInstallationDay(This,value) (This)->lpVtbl->put_ScheduledInstallationDay(This,value)
+#define IAutomaticUpdatesSettings_get_ScheduledInstallationTime(This,retval) (This)->lpVtbl->get_ScheduledInstallationTime(This,retval)
+#define IAutomaticUpdatesSettings_put_ScheduledInstallationTime(This,value) (This)->lpVtbl->put_ScheduledInstallationTime(This,value)
+#define IAutomaticUpdatesSettings_Refresh(This) (This)->lpVtbl->Refresh(This)
+#define IAutomaticUpdatesSettings_Save(This) (This)->lpVtbl->Save(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_QueryInterface(IAutomaticUpdatesSettings* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAutomaticUpdatesSettings_AddRef(IAutomaticUpdatesSettings* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAutomaticUpdatesSettings_Release(IAutomaticUpdatesSettings* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_GetTypeInfoCount(IAutomaticUpdatesSettings* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_GetTypeInfo(IAutomaticUpdatesSettings* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_GetIDsOfNames(IAutomaticUpdatesSettings* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_Invoke(IAutomaticUpdatesSettings* 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);
+}
+/*** IAutomaticUpdatesSettings methods ***/
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_get_NotificationLevel(IAutomaticUpdatesSettings* This,AutomaticUpdatesNotificationLevel *retval) {
+    return This->lpVtbl->get_NotificationLevel(This,retval);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_put_NotificationLevel(IAutomaticUpdatesSettings* This,AutomaticUpdatesNotificationLevel value) {
+    return This->lpVtbl->put_NotificationLevel(This,value);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_get_ReadOnly(IAutomaticUpdatesSettings* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_ReadOnly(This,retval);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_get_Required(IAutomaticUpdatesSettings* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_Required(This,retval);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_get_ScheduledInstallationDay(IAutomaticUpdatesSettings* This,AutomaticUpdatesScheduledInstallationDay *retval) {
+    return This->lpVtbl->get_ScheduledInstallationDay(This,retval);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_put_ScheduledInstallationDay(IAutomaticUpdatesSettings* This,AutomaticUpdatesScheduledInstallationDay value) {
+    return This->lpVtbl->put_ScheduledInstallationDay(This,value);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_get_ScheduledInstallationTime(IAutomaticUpdatesSettings* This,LONG *retval) {
+    return This->lpVtbl->get_ScheduledInstallationTime(This,retval);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_put_ScheduledInstallationTime(IAutomaticUpdatesSettings* This,LONG value) {
+    return This->lpVtbl->put_ScheduledInstallationTime(This,value);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_Refresh(IAutomaticUpdatesSettings* This) {
+    return This->lpVtbl->Refresh(This);
+}
+static FORCEINLINE HRESULT IAutomaticUpdatesSettings_Save(IAutomaticUpdatesSettings* This) {
+    return This->lpVtbl->Save(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAutomaticUpdatesSettings_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAutomaticUpdates interface
+ */
+#ifndef __IAutomaticUpdates_INTERFACE_DEFINED__
+#define __IAutomaticUpdates_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAutomaticUpdates, 0x673425bf, 0xc082, 0x4c7c, 0xbd,0xfd, 0x56,0x94,0x64,0xb8,0xe0,0xce);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("673425bf-c082-4c7c-bdfd-569464b8e0ce")
+IAutomaticUpdates : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE DetectNow(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Pause(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Resume(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ShowSettingsDialog(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Settings(
+        IAutomaticUpdatesSettings **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ServiceEnabled(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnableService(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAutomaticUpdates, 0x673425bf, 0xc082, 0x4c7c, 0xbd,0xfd, 0x56,0x94,0x64,0xb8,0xe0,0xce)
+#endif
+#else
+typedef struct IAutomaticUpdatesVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAutomaticUpdates *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAutomaticUpdates *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAutomaticUpdates *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IAutomaticUpdates *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IAutomaticUpdates *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IAutomaticUpdates *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IAutomaticUpdates *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IAutomaticUpdates methods ***/
+    HRESULT (STDMETHODCALLTYPE *DetectNow)(
+        IAutomaticUpdates *This);
+
+    HRESULT (STDMETHODCALLTYPE *Pause)(
+        IAutomaticUpdates *This);
+
+    HRESULT (STDMETHODCALLTYPE *Resume)(
+        IAutomaticUpdates *This);
+
+    HRESULT (STDMETHODCALLTYPE *ShowSettingsDialog)(
+        IAutomaticUpdates *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_Settings)(
+        IAutomaticUpdates *This,
+        IAutomaticUpdatesSettings **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ServiceEnabled)(
+        IAutomaticUpdates *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *EnableService)(
+        IAutomaticUpdates *This);
+
+    END_INTERFACE
+} IAutomaticUpdatesVtbl;
+
+interface IAutomaticUpdates {
+    CONST_VTBL IAutomaticUpdatesVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAutomaticUpdates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAutomaticUpdates_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAutomaticUpdates_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IAutomaticUpdates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IAutomaticUpdates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IAutomaticUpdates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IAutomaticUpdates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IAutomaticUpdates methods ***/
+#define IAutomaticUpdates_DetectNow(This) (This)->lpVtbl->DetectNow(This)
+#define IAutomaticUpdates_Pause(This) (This)->lpVtbl->Pause(This)
+#define IAutomaticUpdates_Resume(This) (This)->lpVtbl->Resume(This)
+#define IAutomaticUpdates_ShowSettingsDialog(This) (This)->lpVtbl->ShowSettingsDialog(This)
+#define IAutomaticUpdates_get_Settings(This,retval) (This)->lpVtbl->get_Settings(This,retval)
+#define IAutomaticUpdates_get_ServiceEnabled(This,retval) (This)->lpVtbl->get_ServiceEnabled(This,retval)
+#define IAutomaticUpdates_EnableService(This) (This)->lpVtbl->EnableService(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAutomaticUpdates_QueryInterface(IAutomaticUpdates* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAutomaticUpdates_AddRef(IAutomaticUpdates* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAutomaticUpdates_Release(IAutomaticUpdates* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IAutomaticUpdates_GetTypeInfoCount(IAutomaticUpdates* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IAutomaticUpdates_GetTypeInfo(IAutomaticUpdates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IAutomaticUpdates_GetIDsOfNames(IAutomaticUpdates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IAutomaticUpdates_Invoke(IAutomaticUpdates* 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);
+}
+/*** IAutomaticUpdates methods ***/
+static FORCEINLINE HRESULT IAutomaticUpdates_DetectNow(IAutomaticUpdates* This) {
+    return This->lpVtbl->DetectNow(This);
+}
+static FORCEINLINE HRESULT IAutomaticUpdates_Pause(IAutomaticUpdates* This) {
+    return This->lpVtbl->Pause(This);
+}
+static FORCEINLINE HRESULT IAutomaticUpdates_Resume(IAutomaticUpdates* This) {
+    return This->lpVtbl->Resume(This);
+}
+static FORCEINLINE HRESULT IAutomaticUpdates_ShowSettingsDialog(IAutomaticUpdates* This) {
+    return This->lpVtbl->ShowSettingsDialog(This);
+}
+static FORCEINLINE HRESULT IAutomaticUpdates_get_Settings(IAutomaticUpdates* This,IAutomaticUpdatesSettings **retval) {
+    return This->lpVtbl->get_Settings(This,retval);
+}
+static FORCEINLINE HRESULT IAutomaticUpdates_get_ServiceEnabled(IAutomaticUpdates* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_ServiceEnabled(This,retval);
+}
+static FORCEINLINE HRESULT IAutomaticUpdates_EnableService(IAutomaticUpdates* This) {
+    return This->lpVtbl->EnableService(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAutomaticUpdates_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWebProxy interface
+ */
+#ifndef __IWebProxy_INTERFACE_DEFINED__
+#define __IWebProxy_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWebProxy, 0x174c81fe, 0xaecd, 0x4dae, 0xb8,0xa0, 0x2c,0x63,0x18,0xdd,0x86,0xa8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("174c81fe-aecd-4dae-b8a0-2c6318dd86a8")
+IWebProxy : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Address(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Address(
+        BSTR value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_BypassList(
+        IStringCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_BypassList(
+        IStringCollection *value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_BypassProxyOnLocal(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_BypassProxyOnLocal(
+        VARIANT_BOOL value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UserName(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_UserName(
+        BSTR value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetPassword(
+        BSTR value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PromptForCredentials(
+        IUnknown *parentWindow,
+        BSTR title) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE PromptForCredentialsFromHwnd(
+        HWND parentWindow,
+        BSTR title) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_AutoDetect(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_AutoDetect(
+        VARIANT_BOOL value) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWebProxy, 0x174c81fe, 0xaecd, 0x4dae, 0xb8,0xa0, 0x2c,0x63,0x18,0xdd,0x86,0xa8)
+#endif
+#else
+typedef struct IWebProxyVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWebProxy *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWebProxy *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWebProxy *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IWebProxy *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IWebProxy *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IWebProxy *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IWebProxy *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IWebProxy methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Address)(
+        IWebProxy *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_Address)(
+        IWebProxy *This,
+        BSTR value);
+
+    HRESULT (STDMETHODCALLTYPE *get_BypassList)(
+        IWebProxy *This,
+        IStringCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_BypassList)(
+        IWebProxy *This,
+        IStringCollection *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_BypassProxyOnLocal)(
+        IWebProxy *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_BypassProxyOnLocal)(
+        IWebProxy *This,
+        VARIANT_BOOL value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ReadOnly)(
+        IWebProxy *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_UserName)(
+        IWebProxy *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_UserName)(
+        IWebProxy *This,
+        BSTR value);
+
+    HRESULT (STDMETHODCALLTYPE *SetPassword)(
+        IWebProxy *This,
+        BSTR value);
+
+    HRESULT (STDMETHODCALLTYPE *PromptForCredentials)(
+        IWebProxy *This,
+        IUnknown *parentWindow,
+        BSTR title);
+
+    HRESULT (STDMETHODCALLTYPE *PromptForCredentialsFromHwnd)(
+        IWebProxy *This,
+        HWND parentWindow,
+        BSTR title);
+
+    HRESULT (STDMETHODCALLTYPE *get_AutoDetect)(
+        IWebProxy *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_AutoDetect)(
+        IWebProxy *This,
+        VARIANT_BOOL value);
+
+    END_INTERFACE
+} IWebProxyVtbl;
+
+interface IWebProxy {
+    CONST_VTBL IWebProxyVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWebProxy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWebProxy_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWebProxy_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IWebProxy_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IWebProxy_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IWebProxy_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IWebProxy_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IWebProxy methods ***/
+#define IWebProxy_get_Address(This,retval) (This)->lpVtbl->get_Address(This,retval)
+#define IWebProxy_put_Address(This,value) (This)->lpVtbl->put_Address(This,value)
+#define IWebProxy_get_BypassList(This,retval) (This)->lpVtbl->get_BypassList(This,retval)
+#define IWebProxy_put_BypassList(This,value) (This)->lpVtbl->put_BypassList(This,value)
+#define IWebProxy_get_BypassProxyOnLocal(This,retval) (This)->lpVtbl->get_BypassProxyOnLocal(This,retval)
+#define IWebProxy_put_BypassProxyOnLocal(This,value) (This)->lpVtbl->put_BypassProxyOnLocal(This,value)
+#define IWebProxy_get_ReadOnly(This,retval) (This)->lpVtbl->get_ReadOnly(This,retval)
+#define IWebProxy_get_UserName(This,retval) (This)->lpVtbl->get_UserName(This,retval)
+#define IWebProxy_put_UserName(This,value) (This)->lpVtbl->put_UserName(This,value)
+#define IWebProxy_SetPassword(This,value) (This)->lpVtbl->SetPassword(This,value)
+#define IWebProxy_PromptForCredentials(This,parentWindow,title) (This)->lpVtbl->PromptForCredentials(This,parentWindow,title)
+#define IWebProxy_PromptForCredentialsFromHwnd(This,parentWindow,title) (This)->lpVtbl->PromptForCredentialsFromHwnd(This,parentWindow,title)
+#define IWebProxy_get_AutoDetect(This,retval) (This)->lpVtbl->get_AutoDetect(This,retval)
+#define IWebProxy_put_AutoDetect(This,value) (This)->lpVtbl->put_AutoDetect(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWebProxy_QueryInterface(IWebProxy* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWebProxy_AddRef(IWebProxy* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWebProxy_Release(IWebProxy* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IWebProxy_GetTypeInfoCount(IWebProxy* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IWebProxy_GetTypeInfo(IWebProxy* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IWebProxy_GetIDsOfNames(IWebProxy* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IWebProxy_Invoke(IWebProxy* 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);
+}
+/*** IWebProxy methods ***/
+static FORCEINLINE HRESULT IWebProxy_get_Address(IWebProxy* This,BSTR *retval) {
+    return This->lpVtbl->get_Address(This,retval);
+}
+static FORCEINLINE HRESULT IWebProxy_put_Address(IWebProxy* This,BSTR value) {
+    return This->lpVtbl->put_Address(This,value);
+}
+static FORCEINLINE HRESULT IWebProxy_get_BypassList(IWebProxy* This,IStringCollection **retval) {
+    return This->lpVtbl->get_BypassList(This,retval);
+}
+static FORCEINLINE HRESULT IWebProxy_put_BypassList(IWebProxy* This,IStringCollection *value) {
+    return This->lpVtbl->put_BypassList(This,value);
+}
+static FORCEINLINE HRESULT IWebProxy_get_BypassProxyOnLocal(IWebProxy* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_BypassProxyOnLocal(This,retval);
+}
+static FORCEINLINE HRESULT IWebProxy_put_BypassProxyOnLocal(IWebProxy* This,VARIANT_BOOL value) {
+    return This->lpVtbl->put_BypassProxyOnLocal(This,value);
+}
+static FORCEINLINE HRESULT IWebProxy_get_ReadOnly(IWebProxy* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_ReadOnly(This,retval);
+}
+static FORCEINLINE HRESULT IWebProxy_get_UserName(IWebProxy* This,BSTR *retval) {
+    return This->lpVtbl->get_UserName(This,retval);
+}
+static FORCEINLINE HRESULT IWebProxy_put_UserName(IWebProxy* This,BSTR value) {
+    return This->lpVtbl->put_UserName(This,value);
+}
+static FORCEINLINE HRESULT IWebProxy_SetPassword(IWebProxy* This,BSTR value) {
+    return This->lpVtbl->SetPassword(This,value);
+}
+static FORCEINLINE HRESULT IWebProxy_PromptForCredentials(IWebProxy* This,IUnknown *parentWindow,BSTR title) {
+    return This->lpVtbl->PromptForCredentials(This,parentWindow,title);
+}
+static FORCEINLINE HRESULT IWebProxy_PromptForCredentialsFromHwnd(IWebProxy* This,HWND parentWindow,BSTR title) {
+    return This->lpVtbl->PromptForCredentialsFromHwnd(This,parentWindow,title);
+}
+static FORCEINLINE HRESULT IWebProxy_get_AutoDetect(IWebProxy* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_AutoDetect(This,retval);
+}
+static FORCEINLINE HRESULT IWebProxy_put_AutoDetect(IWebProxy* This,VARIANT_BOOL value) {
+    return This->lpVtbl->put_AutoDetect(This,value);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWebProxy_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateSession interface
+ */
+#ifndef __IUpdateSession_INTERFACE_DEFINED__
+#define __IUpdateSession_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateSession, 0x816858a4, 0x260d, 0x4260, 0x93,0x3a, 0x25,0x85,0xf1,0xab,0xc7,0x6b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("816858a4-260d-4260-933a-2585f1abc76b")
+IUpdateSession : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_ClientApplicationID(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ClientApplicationID(
+        BSTR value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_WebProxy(
+        IWebProxy **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_WebProxy(
+        IWebProxy *value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateUpdateSearcher(
+        IUpdateSearcher **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateUpdateDownloader(
+        IUpdateDownloader **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateUpdateInstaller(
+        IUpdateInstaller **retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateSession, 0x816858a4, 0x260d, 0x4260, 0x93,0x3a, 0x25,0x85,0xf1,0xab,0xc7,0x6b)
+#endif
+#else
+typedef struct IUpdateSessionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateSession *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateSession *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateSession *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateSession *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateSession *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateSession *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateSession *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateSession methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ClientApplicationID)(
+        IUpdateSession *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_ClientApplicationID)(
+        IUpdateSession *This,
+        BSTR value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ReadOnly)(
+        IUpdateSession *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_WebProxy)(
+        IUpdateSession *This,
+        IWebProxy **retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_WebProxy)(
+        IUpdateSession *This,
+        IWebProxy *value);
+
+    HRESULT (STDMETHODCALLTYPE *CreateUpdateSearcher)(
+        IUpdateSession *This,
+        IUpdateSearcher **retval);
+
+    HRESULT (STDMETHODCALLTYPE *CreateUpdateDownloader)(
+        IUpdateSession *This,
+        IUpdateDownloader **retval);
+
+    HRESULT (STDMETHODCALLTYPE *CreateUpdateInstaller)(
+        IUpdateSession *This,
+        IUpdateInstaller **retval);
+
+    END_INTERFACE
+} IUpdateSessionVtbl;
+
+interface IUpdateSession {
+    CONST_VTBL IUpdateSessionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateSession_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateSession_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateSession_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateSession_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateSession_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateSession_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateSession methods ***/
+#define IUpdateSession_get_ClientApplicationID(This,retval) (This)->lpVtbl->get_ClientApplicationID(This,retval)
+#define IUpdateSession_put_ClientApplicationID(This,value) (This)->lpVtbl->put_ClientApplicationID(This,value)
+#define IUpdateSession_get_ReadOnly(This,retval) (This)->lpVtbl->get_ReadOnly(This,retval)
+#define IUpdateSession_get_WebProxy(This,retval) (This)->lpVtbl->get_WebProxy(This,retval)
+#define IUpdateSession_put_WebProxy(This,value) (This)->lpVtbl->put_WebProxy(This,value)
+#define IUpdateSession_CreateUpdateSearcher(This,retval) (This)->lpVtbl->CreateUpdateSearcher(This,retval)
+#define IUpdateSession_CreateUpdateDownloader(This,retval) (This)->lpVtbl->CreateUpdateDownloader(This,retval)
+#define IUpdateSession_CreateUpdateInstaller(This,retval) (This)->lpVtbl->CreateUpdateInstaller(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateSession_QueryInterface(IUpdateSession* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateSession_AddRef(IUpdateSession* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateSession_Release(IUpdateSession* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateSession_GetTypeInfoCount(IUpdateSession* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateSession_GetTypeInfo(IUpdateSession* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateSession_GetIDsOfNames(IUpdateSession* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateSession_Invoke(IUpdateSession* 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);
+}
+/*** IUpdateSession methods ***/
+static FORCEINLINE HRESULT IUpdateSession_get_ClientApplicationID(IUpdateSession* This,BSTR *retval) {
+    return This->lpVtbl->get_ClientApplicationID(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSession_put_ClientApplicationID(IUpdateSession* This,BSTR value) {
+    return This->lpVtbl->put_ClientApplicationID(This,value);
+}
+static FORCEINLINE HRESULT IUpdateSession_get_ReadOnly(IUpdateSession* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_ReadOnly(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSession_get_WebProxy(IUpdateSession* This,IWebProxy **retval) {
+    return This->lpVtbl->get_WebProxy(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSession_put_WebProxy(IUpdateSession* This,IWebProxy *value) {
+    return This->lpVtbl->put_WebProxy(This,value);
+}
+static FORCEINLINE HRESULT IUpdateSession_CreateUpdateSearcher(IUpdateSession* This,IUpdateSearcher **retval) {
+    return This->lpVtbl->CreateUpdateSearcher(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSession_CreateUpdateDownloader(IUpdateSession* This,IUpdateDownloader **retval) {
+    return This->lpVtbl->CreateUpdateDownloader(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSession_CreateUpdateInstaller(IUpdateSession* This,IUpdateInstaller **retval) {
+    return This->lpVtbl->CreateUpdateInstaller(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateSession_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IImageInformation interface
+ */
+#ifndef __IImageInformation_INTERFACE_DEFINED__
+#define __IImageInformation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IImageInformation, 0x7c907864, 0x346c, 0x4aeb, 0x8f,0x3f, 0x57,0xda,0x28,0x9f,0x96,0x9f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7c907864-346c-4aeb-8f3f-57da289f969f")
+IImageInformation : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_AltText(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Height(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Source(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Width(
+        LONG *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IImageInformation, 0x7c907864, 0x346c, 0x4aeb, 0x8f,0x3f, 0x57,0xda,0x28,0x9f,0x96,0x9f)
+#endif
+#else
+typedef struct IImageInformationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IImageInformation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IImageInformation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IImageInformation *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IImageInformation *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IImageInformation *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IImageInformation *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IImageInformation *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IImageInformation methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_AltText)(
+        IImageInformation *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Height)(
+        IImageInformation *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Source)(
+        IImageInformation *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Width)(
+        IImageInformation *This,
+        LONG *retval);
+
+    END_INTERFACE
+} IImageInformationVtbl;
+
+interface IImageInformation {
+    CONST_VTBL IImageInformationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IImageInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IImageInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IImageInformation_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IImageInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IImageInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IImageInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IImageInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IImageInformation methods ***/
+#define IImageInformation_get_AltText(This,retval) (This)->lpVtbl->get_AltText(This,retval)
+#define IImageInformation_get_Height(This,retval) (This)->lpVtbl->get_Height(This,retval)
+#define IImageInformation_get_Source(This,retval) (This)->lpVtbl->get_Source(This,retval)
+#define IImageInformation_get_Width(This,retval) (This)->lpVtbl->get_Width(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IImageInformation_QueryInterface(IImageInformation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IImageInformation_AddRef(IImageInformation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IImageInformation_Release(IImageInformation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IImageInformation_GetTypeInfoCount(IImageInformation* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IImageInformation_GetTypeInfo(IImageInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IImageInformation_GetIDsOfNames(IImageInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IImageInformation_Invoke(IImageInformation* 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);
+}
+/*** IImageInformation methods ***/
+static FORCEINLINE HRESULT IImageInformation_get_AltText(IImageInformation* This,BSTR *retval) {
+    return This->lpVtbl->get_AltText(This,retval);
+}
+static FORCEINLINE HRESULT IImageInformation_get_Height(IImageInformation* This,LONG *retval) {
+    return This->lpVtbl->get_Height(This,retval);
+}
+static FORCEINLINE HRESULT IImageInformation_get_Source(IImageInformation* This,BSTR *retval) {
+    return This->lpVtbl->get_Source(This,retval);
+}
+static FORCEINLINE HRESULT IImageInformation_get_Width(IImageInformation* This,LONG *retval) {
+    return This->lpVtbl->get_Width(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IImageInformation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ICategory interface
+ */
+#ifndef __ICategory_INTERFACE_DEFINED__
+#define __ICategory_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ICategory, 0x81ddc1b8, 0x9d35, 0x47a6, 0xb4,0x71, 0x5b,0x80,0xf5,0x19,0x22,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("81ddc1b8-9d35-47a6-b471-5b80f519223b")
+ICategory : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Name(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CategoryID(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Children(
+        ICategoryCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Description(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Image(
+        IImageInformation **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Order(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Parent(
+        ICategory **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Type(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Updates(
+        IUpdateCollection **retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ICategory, 0x81ddc1b8, 0x9d35, 0x47a6, 0xb4,0x71, 0x5b,0x80,0xf5,0x19,0x22,0x3b)
+#endif
+#else
+typedef struct ICategoryVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ICategory *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ICategory *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ICategory *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ICategory *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ICategory *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ICategory *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ICategory *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ICategory methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        ICategory *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_CategoryID)(
+        ICategory *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Children)(
+        ICategory *This,
+        ICategoryCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Description)(
+        ICategory *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Image)(
+        ICategory *This,
+        IImageInformation **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Order)(
+        ICategory *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        ICategory *This,
+        ICategory **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Type)(
+        ICategory *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Updates)(
+        ICategory *This,
+        IUpdateCollection **retval);
+
+    END_INTERFACE
+} ICategoryVtbl;
+
+interface ICategory {
+    CONST_VTBL ICategoryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ICategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ICategory_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ICategory_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ICategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ICategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ICategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ICategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ICategory methods ***/
+#define ICategory_get_Name(This,retval) (This)->lpVtbl->get_Name(This,retval)
+#define ICategory_get_CategoryID(This,retval) (This)->lpVtbl->get_CategoryID(This,retval)
+#define ICategory_get_Children(This,retval) (This)->lpVtbl->get_Children(This,retval)
+#define ICategory_get_Description(This,retval) (This)->lpVtbl->get_Description(This,retval)
+#define ICategory_get_Image(This,retval) (This)->lpVtbl->get_Image(This,retval)
+#define ICategory_get_Order(This,retval) (This)->lpVtbl->get_Order(This,retval)
+#define ICategory_get_Parent(This,retval) (This)->lpVtbl->get_Parent(This,retval)
+#define ICategory_get_Type(This,retval) (This)->lpVtbl->get_Type(This,retval)
+#define ICategory_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ICategory_QueryInterface(ICategory* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ICategory_AddRef(ICategory* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ICategory_Release(ICategory* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ICategory_GetTypeInfoCount(ICategory* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ICategory_GetTypeInfo(ICategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ICategory_GetIDsOfNames(ICategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ICategory_Invoke(ICategory* 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);
+}
+/*** ICategory methods ***/
+static FORCEINLINE HRESULT ICategory_get_Name(ICategory* This,BSTR *retval) {
+    return This->lpVtbl->get_Name(This,retval);
+}
+static FORCEINLINE HRESULT ICategory_get_CategoryID(ICategory* This,BSTR *retval) {
+    return This->lpVtbl->get_CategoryID(This,retval);
+}
+static FORCEINLINE HRESULT ICategory_get_Children(ICategory* This,ICategoryCollection **retval) {
+    return This->lpVtbl->get_Children(This,retval);
+}
+static FORCEINLINE HRESULT ICategory_get_Description(ICategory* This,BSTR *retval) {
+    return This->lpVtbl->get_Description(This,retval);
+}
+static FORCEINLINE HRESULT ICategory_get_Image(ICategory* This,IImageInformation **retval) {
+    return This->lpVtbl->get_Image(This,retval);
+}
+static FORCEINLINE HRESULT ICategory_get_Order(ICategory* This,LONG *retval) {
+    return This->lpVtbl->get_Order(This,retval);
+}
+static FORCEINLINE HRESULT ICategory_get_Parent(ICategory* This,ICategory **retval) {
+    return This->lpVtbl->get_Parent(This,retval);
+}
+static FORCEINLINE HRESULT ICategory_get_Type(ICategory* This,BSTR *retval) {
+    return This->lpVtbl->get_Type(This,retval);
+}
+static FORCEINLINE HRESULT ICategory_get_Updates(ICategory* This,IUpdateCollection **retval) {
+    return This->lpVtbl->get_Updates(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ICategory_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ICategoryCollection interface
+ */
+#ifndef __ICategoryCollection_INTERFACE_DEFINED__
+#define __ICategoryCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ICategoryCollection, 0x3a56bfb8, 0x576c, 0x43f7, 0x93,0x35, 0xfe,0x48,0x38,0xfd,0x7e,0x37);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("3a56bfb8-576c-43f7-9335-fe4838fd7e37")
+ICategoryCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG index,
+        ICategory **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ICategoryCollection, 0x3a56bfb8, 0x576c, 0x43f7, 0x93,0x35, 0xfe,0x48,0x38,0xfd,0x7e,0x37)
+#endif
+#else
+typedef struct ICategoryCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ICategoryCollection *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ICategoryCollection *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ICategoryCollection *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ICategoryCollection *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ICategoryCollection *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ICategoryCollection *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ICategoryCollection *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ICategoryCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        ICategoryCollection *This,
+        LONG index,
+        ICategory **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        ICategoryCollection *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        ICategoryCollection *This,
+        LONG *retval);
+
+    END_INTERFACE
+} ICategoryCollectionVtbl;
+
+interface ICategoryCollection {
+    CONST_VTBL ICategoryCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ICategoryCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ICategoryCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ICategoryCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ICategoryCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ICategoryCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ICategoryCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ICategoryCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ICategoryCollection methods ***/
+#define ICategoryCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
+#define ICategoryCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define ICategoryCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ICategoryCollection_QueryInterface(ICategoryCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ICategoryCollection_AddRef(ICategoryCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ICategoryCollection_Release(ICategoryCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ICategoryCollection_GetTypeInfoCount(ICategoryCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ICategoryCollection_GetTypeInfo(ICategoryCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ICategoryCollection_GetIDsOfNames(ICategoryCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ICategoryCollection_Invoke(ICategoryCollection* 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);
+}
+/*** ICategoryCollection methods ***/
+static FORCEINLINE HRESULT ICategoryCollection_get_Item(ICategoryCollection* This,LONG index,ICategory **retval) {
+    return This->lpVtbl->get_Item(This,index,retval);
+}
+static FORCEINLINE HRESULT ICategoryCollection_get__NewEnum(ICategoryCollection* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT ICategoryCollection_get_Count(ICategoryCollection* This,LONG *retval) {
+    return This->lpVtbl->get_Count(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ICategoryCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IStringCollection interface
+ */
+#ifndef __IStringCollection_INTERFACE_DEFINED__
+#define __IStringCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IStringCollection, 0xeff90582, 0x2ddc, 0x480f, 0xa0,0x6d, 0x60,0xf3,0xfb,0xc3,0x62,0xc3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("eff90582-2ddc-480f-a06d-60f3fbc362c3")
+IStringCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG index,
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Item(
+        LONG index,
+        BSTR value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Add(
+        BSTR value,
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clear(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Copy(
+        IStringCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Insert(
+        LONG index,
+        BSTR value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveAt(
+        LONG index) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IStringCollection, 0xeff90582, 0x2ddc, 0x480f, 0xa0,0x6d, 0x60,0xf3,0xfb,0xc3,0x62,0xc3)
+#endif
+#else
+typedef struct IStringCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IStringCollection *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IStringCollection *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IStringCollection *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IStringCollection *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IStringCollection *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IStringCollection *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IStringCollection *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IStringCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IStringCollection *This,
+        LONG index,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_Item)(
+        IStringCollection *This,
+        LONG index,
+        BSTR value);
+
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IStringCollection *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        IStringCollection *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ReadOnly)(
+        IStringCollection *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        IStringCollection *This,
+        BSTR value,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *Clear)(
+        IStringCollection *This);
+
+    HRESULT (STDMETHODCALLTYPE *Copy)(
+        IStringCollection *This,
+        IStringCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *Insert)(
+        IStringCollection *This,
+        LONG index,
+        BSTR value);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveAt)(
+        IStringCollection *This,
+        LONG index);
+
+    END_INTERFACE
+} IStringCollectionVtbl;
+
+interface IStringCollection {
+    CONST_VTBL IStringCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IStringCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IStringCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IStringCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IStringCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IStringCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IStringCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IStringCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IStringCollection methods ***/
+#define IStringCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
+#define IStringCollection_put_Item(This,index,value) (This)->lpVtbl->put_Item(This,index,value)
+#define IStringCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define IStringCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
+#define IStringCollection_get_ReadOnly(This,retval) (This)->lpVtbl->get_ReadOnly(This,retval)
+#define IStringCollection_Add(This,value,retval) (This)->lpVtbl->Add(This,value,retval)
+#define IStringCollection_Clear(This) (This)->lpVtbl->Clear(This)
+#define IStringCollection_Copy(This,retval) (This)->lpVtbl->Copy(This,retval)
+#define IStringCollection_Insert(This,index,value) (This)->lpVtbl->Insert(This,index,value)
+#define IStringCollection_RemoveAt(This,index) (This)->lpVtbl->RemoveAt(This,index)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IStringCollection_QueryInterface(IStringCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IStringCollection_AddRef(IStringCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IStringCollection_Release(IStringCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IStringCollection_GetTypeInfoCount(IStringCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IStringCollection_GetTypeInfo(IStringCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IStringCollection_GetIDsOfNames(IStringCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IStringCollection_Invoke(IStringCollection* 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);
+}
+/*** IStringCollection methods ***/
+static FORCEINLINE HRESULT IStringCollection_get_Item(IStringCollection* This,LONG index,BSTR *retval) {
+    return This->lpVtbl->get_Item(This,index,retval);
+}
+static FORCEINLINE HRESULT IStringCollection_put_Item(IStringCollection* This,LONG index,BSTR value) {
+    return This->lpVtbl->put_Item(This,index,value);
+}
+static FORCEINLINE HRESULT IStringCollection_get__NewEnum(IStringCollection* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT IStringCollection_get_Count(IStringCollection* This,LONG *retval) {
+    return This->lpVtbl->get_Count(This,retval);
+}
+static FORCEINLINE HRESULT IStringCollection_get_ReadOnly(IStringCollection* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_ReadOnly(This,retval);
+}
+static FORCEINLINE HRESULT IStringCollection_Add(IStringCollection* This,BSTR value,LONG *retval) {
+    return This->lpVtbl->Add(This,value,retval);
+}
+static FORCEINLINE HRESULT IStringCollection_Clear(IStringCollection* This) {
+    return This->lpVtbl->Clear(This);
+}
+static FORCEINLINE HRESULT IStringCollection_Copy(IStringCollection* This,IStringCollection **retval) {
+    return This->lpVtbl->Copy(This,retval);
+}
+static FORCEINLINE HRESULT IStringCollection_Insert(IStringCollection* This,LONG index,BSTR value) {
+    return This->lpVtbl->Insert(This,index,value);
+}
+static FORCEINLINE HRESULT IStringCollection_RemoveAt(IStringCollection* This,LONG index) {
+    return This->lpVtbl->RemoveAt(This,index);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IStringCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateException interface
+ */
+#ifndef __IUpdateException_INTERFACE_DEFINED__
+#define __IUpdateException_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateException, 0xa376dd5e, 0x09d4, 0x427f, 0xaf,0x7c, 0xfe,0xd5,0xb6,0xe1,0xc1,0xd6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a376dd5e-09d4-427f-af7c-fed5b6e1c1d6")
+IUpdateException : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Message(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_HResult(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Context(
+        UpdateExceptionContext *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateException, 0xa376dd5e, 0x09d4, 0x427f, 0xaf,0x7c, 0xfe,0xd5,0xb6,0xe1,0xc1,0xd6)
+#endif
+#else
+typedef struct IUpdateExceptionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateException *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateException *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateException *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateException *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateException *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateException *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateException *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateException methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Message)(
+        IUpdateException *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_HResult)(
+        IUpdateException *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Context)(
+        IUpdateException *This,
+        UpdateExceptionContext *retval);
+
+    END_INTERFACE
+} IUpdateExceptionVtbl;
+
+interface IUpdateException {
+    CONST_VTBL IUpdateExceptionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateException_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateException_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateException_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateException_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateException_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateException_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateException_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateException methods ***/
+#define IUpdateException_get_Message(This,retval) (This)->lpVtbl->get_Message(This,retval)
+#define IUpdateException_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
+#define IUpdateException_get_Context(This,retval) (This)->lpVtbl->get_Context(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateException_QueryInterface(IUpdateException* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateException_AddRef(IUpdateException* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateException_Release(IUpdateException* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateException_GetTypeInfoCount(IUpdateException* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateException_GetTypeInfo(IUpdateException* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateException_GetIDsOfNames(IUpdateException* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateException_Invoke(IUpdateException* 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);
+}
+/*** IUpdateException methods ***/
+static FORCEINLINE HRESULT IUpdateException_get_Message(IUpdateException* This,BSTR *retval) {
+    return This->lpVtbl->get_Message(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateException_get_HResult(IUpdateException* This,LONG *retval) {
+    return This->lpVtbl->get_HResult(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateException_get_Context(IUpdateException* This,UpdateExceptionContext *retval) {
+    return This->lpVtbl->get_Context(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateException_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateExceptionCollection interface
+ */
+#ifndef __IUpdateExceptionCollection_INTERFACE_DEFINED__
+#define __IUpdateExceptionCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateExceptionCollection, 0x503626a3, 0x8e14, 0x4729, 0x93,0x55, 0x0f,0xe6,0x64,0xbd,0x23,0x21);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("503626a3-8e14-4729-9355-0fe664bd2321")
+IUpdateExceptionCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG index,
+        IUpdateException **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateExceptionCollection, 0x503626a3, 0x8e14, 0x4729, 0x93,0x55, 0x0f,0xe6,0x64,0xbd,0x23,0x21)
+#endif
+#else
+typedef struct IUpdateExceptionCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateExceptionCollection *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateExceptionCollection *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateExceptionCollection *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateExceptionCollection *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateExceptionCollection *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateExceptionCollection *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateExceptionCollection *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateExceptionCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IUpdateExceptionCollection *This,
+        LONG index,
+        IUpdateException **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IUpdateExceptionCollection *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        IUpdateExceptionCollection *This,
+        LONG *retval);
+
+    END_INTERFACE
+} IUpdateExceptionCollectionVtbl;
+
+interface IUpdateExceptionCollection {
+    CONST_VTBL IUpdateExceptionCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateExceptionCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateExceptionCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateExceptionCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateExceptionCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateExceptionCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateExceptionCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateExceptionCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateExceptionCollection methods ***/
+#define IUpdateExceptionCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
+#define IUpdateExceptionCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define IUpdateExceptionCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateExceptionCollection_QueryInterface(IUpdateExceptionCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateExceptionCollection_AddRef(IUpdateExceptionCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateExceptionCollection_Release(IUpdateExceptionCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateExceptionCollection_GetTypeInfoCount(IUpdateExceptionCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateExceptionCollection_GetTypeInfo(IUpdateExceptionCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateExceptionCollection_GetIDsOfNames(IUpdateExceptionCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateExceptionCollection_Invoke(IUpdateExceptionCollection* 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);
+}
+/*** IUpdateExceptionCollection methods ***/
+static FORCEINLINE HRESULT IUpdateExceptionCollection_get_Item(IUpdateExceptionCollection* This,LONG index,IUpdateException **retval) {
+    return This->lpVtbl->get_Item(This,index,retval);
+}
+static FORCEINLINE HRESULT IUpdateExceptionCollection_get__NewEnum(IUpdateExceptionCollection* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateExceptionCollection_get_Count(IUpdateExceptionCollection* This,LONG *retval) {
+    return This->lpVtbl->get_Count(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateExceptionCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateIdentity interface
+ */
+#ifndef __IUpdateIdentity_INTERFACE_DEFINED__
+#define __IUpdateIdentity_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateIdentity, 0x46297823, 0x9940, 0x4c09, 0xae,0xd9, 0xcd,0x3e,0xa6,0xd0,0x59,0x68);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("46297823-9940-4c09-aed9-cd3ea6d05968")
+IUpdateIdentity : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_RevisionNumber(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UpdateID(
+        BSTR *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateIdentity, 0x46297823, 0x9940, 0x4c09, 0xae,0xd9, 0xcd,0x3e,0xa6,0xd0,0x59,0x68)
+#endif
+#else
+typedef struct IUpdateIdentityVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateIdentity *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateIdentity *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateIdentity *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateIdentity *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateIdentity *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateIdentity *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateIdentity *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateIdentity methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_RevisionNumber)(
+        IUpdateIdentity *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_UpdateID)(
+        IUpdateIdentity *This,
+        BSTR *retval);
+
+    END_INTERFACE
+} IUpdateIdentityVtbl;
+
+interface IUpdateIdentity {
+    CONST_VTBL IUpdateIdentityVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateIdentity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateIdentity_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateIdentity_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateIdentity_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateIdentity_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateIdentity_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateIdentity_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateIdentity methods ***/
+#define IUpdateIdentity_get_RevisionNumber(This,retval) (This)->lpVtbl->get_RevisionNumber(This,retval)
+#define IUpdateIdentity_get_UpdateID(This,retval) (This)->lpVtbl->get_UpdateID(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateIdentity_QueryInterface(IUpdateIdentity* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateIdentity_AddRef(IUpdateIdentity* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateIdentity_Release(IUpdateIdentity* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateIdentity_GetTypeInfoCount(IUpdateIdentity* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateIdentity_GetTypeInfo(IUpdateIdentity* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateIdentity_GetIDsOfNames(IUpdateIdentity* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateIdentity_Invoke(IUpdateIdentity* 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);
+}
+/*** IUpdateIdentity methods ***/
+static FORCEINLINE HRESULT IUpdateIdentity_get_RevisionNumber(IUpdateIdentity* This,LONG *retval) {
+    return This->lpVtbl->get_RevisionNumber(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateIdentity_get_UpdateID(IUpdateIdentity* This,BSTR *retval) {
+    return This->lpVtbl->get_UpdateID(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateIdentity_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IInstallationBehavior interface
+ */
+#ifndef __IInstallationBehavior_INTERFACE_DEFINED__
+#define __IInstallationBehavior_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IInstallationBehavior, 0xd9a59339, 0xe245, 0x4dbd, 0x96,0x86, 0x4d,0x57,0x63,0xe3,0x96,0x24);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d9a59339-e245-4dbd-9686-4d5763e39624")
+IInstallationBehavior : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_CanRequestUserInput(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Impact(
+        InstallationImpact *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RebootBehavior(
+        InstallationRebootBehavior *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RequiresNetworkConnectivity(
+        VARIANT_BOOL *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IInstallationBehavior, 0xd9a59339, 0xe245, 0x4dbd, 0x96,0x86, 0x4d,0x57,0x63,0xe3,0x96,0x24)
+#endif
+#else
+typedef struct IInstallationBehaviorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IInstallationBehavior *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IInstallationBehavior *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IInstallationBehavior *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IInstallationBehavior *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IInstallationBehavior *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IInstallationBehavior *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IInstallationBehavior *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IInstallationBehavior methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_CanRequestUserInput)(
+        IInstallationBehavior *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Impact)(
+        IInstallationBehavior *This,
+        InstallationImpact *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_RebootBehavior)(
+        IInstallationBehavior *This,
+        InstallationRebootBehavior *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_RequiresNetworkConnectivity)(
+        IInstallationBehavior *This,
+        VARIANT_BOOL *retval);
+
+    END_INTERFACE
+} IInstallationBehaviorVtbl;
+
+interface IInstallationBehavior {
+    CONST_VTBL IInstallationBehaviorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IInstallationBehavior_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IInstallationBehavior_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IInstallationBehavior_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IInstallationBehavior_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IInstallationBehavior_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IInstallationBehavior_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IInstallationBehavior_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IInstallationBehavior methods ***/
+#define IInstallationBehavior_get_CanRequestUserInput(This,retval) (This)->lpVtbl->get_CanRequestUserInput(This,retval)
+#define IInstallationBehavior_get_Impact(This,retval) (This)->lpVtbl->get_Impact(This,retval)
+#define IInstallationBehavior_get_RebootBehavior(This,retval) (This)->lpVtbl->get_RebootBehavior(This,retval)
+#define IInstallationBehavior_get_RequiresNetworkConnectivity(This,retval) (This)->lpVtbl->get_RequiresNetworkConnectivity(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IInstallationBehavior_QueryInterface(IInstallationBehavior* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IInstallationBehavior_AddRef(IInstallationBehavior* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IInstallationBehavior_Release(IInstallationBehavior* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IInstallationBehavior_GetTypeInfoCount(IInstallationBehavior* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IInstallationBehavior_GetTypeInfo(IInstallationBehavior* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IInstallationBehavior_GetIDsOfNames(IInstallationBehavior* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IInstallationBehavior_Invoke(IInstallationBehavior* 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);
+}
+/*** IInstallationBehavior methods ***/
+static FORCEINLINE HRESULT IInstallationBehavior_get_CanRequestUserInput(IInstallationBehavior* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_CanRequestUserInput(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationBehavior_get_Impact(IInstallationBehavior* This,InstallationImpact *retval) {
+    return This->lpVtbl->get_Impact(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationBehavior_get_RebootBehavior(IInstallationBehavior* This,InstallationRebootBehavior *retval) {
+    return This->lpVtbl->get_RebootBehavior(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationBehavior_get_RequiresNetworkConnectivity(IInstallationBehavior* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_RequiresNetworkConnectivity(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IInstallationBehavior_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateDownloadContent interface
+ */
+#ifndef __IUpdateDownloadContent_INTERFACE_DEFINED__
+#define __IUpdateDownloadContent_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateDownloadContent, 0x54a2cb2d, 0x9a0c, 0x48b6, 0x8a,0x50, 0x9a,0xbb,0x69,0xee,0x2d,0x02);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("54a2cb2d-9a0c-48b6-8a50-9abb69ee2d02")
+IUpdateDownloadContent : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_DownloadUrl(
+        BSTR *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateDownloadContent, 0x54a2cb2d, 0x9a0c, 0x48b6, 0x8a,0x50, 0x9a,0xbb,0x69,0xee,0x2d,0x02)
+#endif
+#else
+typedef struct IUpdateDownloadContentVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateDownloadContent *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateDownloadContent *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateDownloadContent *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateDownloadContent *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateDownloadContent *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateDownloadContent *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateDownloadContent *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateDownloadContent methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_DownloadUrl)(
+        IUpdateDownloadContent *This,
+        BSTR *retval);
+
+    END_INTERFACE
+} IUpdateDownloadContentVtbl;
+
+interface IUpdateDownloadContent {
+    CONST_VTBL IUpdateDownloadContentVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateDownloadContent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateDownloadContent_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateDownloadContent_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateDownloadContent_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateDownloadContent_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateDownloadContent_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateDownloadContent_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateDownloadContent methods ***/
+#define IUpdateDownloadContent_get_DownloadUrl(This,retval) (This)->lpVtbl->get_DownloadUrl(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateDownloadContent_QueryInterface(IUpdateDownloadContent* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateDownloadContent_AddRef(IUpdateDownloadContent* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateDownloadContent_Release(IUpdateDownloadContent* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateDownloadContent_GetTypeInfoCount(IUpdateDownloadContent* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateDownloadContent_GetTypeInfo(IUpdateDownloadContent* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateDownloadContent_GetIDsOfNames(IUpdateDownloadContent* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateDownloadContent_Invoke(IUpdateDownloadContent* 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);
+}
+/*** IUpdateDownloadContent methods ***/
+static FORCEINLINE HRESULT IUpdateDownloadContent_get_DownloadUrl(IUpdateDownloadContent* This,BSTR *retval) {
+    return This->lpVtbl->get_DownloadUrl(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateDownloadContent_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateDownloadContentCollection interface
+ */
+#ifndef __IUpdateDownloadContentCollection_INTERFACE_DEFINED__
+#define __IUpdateDownloadContentCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateDownloadContentCollection, 0xbc5513c8, 0xb3b8, 0x4bf7, 0xa4,0xd4, 0x36,0x1c,0x0d,0x8c,0x88,0xba);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bc5513c8-b3b8-4bf7-a4d4-361c0d8c88ba")
+IUpdateDownloadContentCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG index,
+        IUpdateDownloadContent **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateDownloadContentCollection, 0xbc5513c8, 0xb3b8, 0x4bf7, 0xa4,0xd4, 0x36,0x1c,0x0d,0x8c,0x88,0xba)
+#endif
+#else
+typedef struct IUpdateDownloadContentCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateDownloadContentCollection *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateDownloadContentCollection *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateDownloadContentCollection *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateDownloadContentCollection *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateDownloadContentCollection *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateDownloadContentCollection *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateDownloadContentCollection *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateDownloadContentCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IUpdateDownloadContentCollection *This,
+        LONG index,
+        IUpdateDownloadContent **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IUpdateDownloadContentCollection *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        IUpdateDownloadContentCollection *This,
+        LONG *retval);
+
+    END_INTERFACE
+} IUpdateDownloadContentCollectionVtbl;
+
+interface IUpdateDownloadContentCollection {
+    CONST_VTBL IUpdateDownloadContentCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateDownloadContentCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateDownloadContentCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateDownloadContentCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateDownloadContentCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateDownloadContentCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateDownloadContentCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateDownloadContentCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateDownloadContentCollection methods ***/
+#define IUpdateDownloadContentCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
+#define IUpdateDownloadContentCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define IUpdateDownloadContentCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateDownloadContentCollection_QueryInterface(IUpdateDownloadContentCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateDownloadContentCollection_AddRef(IUpdateDownloadContentCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateDownloadContentCollection_Release(IUpdateDownloadContentCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateDownloadContentCollection_GetTypeInfoCount(IUpdateDownloadContentCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateDownloadContentCollection_GetTypeInfo(IUpdateDownloadContentCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateDownloadContentCollection_GetIDsOfNames(IUpdateDownloadContentCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateDownloadContentCollection_Invoke(IUpdateDownloadContentCollection* 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);
+}
+/*** IUpdateDownloadContentCollection methods ***/
+static FORCEINLINE HRESULT IUpdateDownloadContentCollection_get_Item(IUpdateDownloadContentCollection* This,LONG index,IUpdateDownloadContent **retval) {
+    return This->lpVtbl->get_Item(This,index,retval);
+}
+static FORCEINLINE HRESULT IUpdateDownloadContentCollection_get__NewEnum(IUpdateDownloadContentCollection* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateDownloadContentCollection_get_Count(IUpdateDownloadContentCollection* This,LONG *retval) {
+    return This->lpVtbl->get_Count(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateDownloadContentCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdate interface
+ */
+#ifndef __IUpdate_INTERFACE_DEFINED__
+#define __IUpdate_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdate, 0x6a92b07a, 0xd821, 0x4682, 0xb4,0x23, 0x5c,0x80,0x50,0x22,0xcc,0x4d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6a92b07a-d821-4682-b423-5c805022cc4d")
+IUpdate : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Title(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_AutoSelectOnWebSites(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_BundledUpdates(
+        IUpdateCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CanRequireSource(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Categories(
+        ICategoryCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Deadline(
+        VARIANT *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_DeltaCompressedContentAvailable(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_DeltaCompressedContentPreferred(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Description(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_EulaAccepted(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_EulaText(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_HandlerID(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Identity(
+        IUpdateIdentity **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Image(
+        IImageInformation **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_InstallationBehavior(
+        IInstallationBehavior **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsBeta(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsDownloaded(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsHidden(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_IsHidden(
+        VARIANT_BOOL value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsInstalled(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsMandatory(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsUninstallable(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Languages(
+        IStringCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_LastDeploymentChangeTime(
+        DATE *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MaxDownloadSize(
+        DECIMAL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MinDownloadSize(
+        DECIMAL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MoreInfoUrls(
+        IStringCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_MsrcSeverity(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RecommendedCpuSpeed(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RecommendedHardDiskSpace(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RecommendedMemory(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ReleaseNotes(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SecurityBulletinIDs(
+        IStringCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SupersededUpdateIDs(
+        IStringCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SupportUrl(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Type(
+        UpdateType *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UninstallationNotes(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UninstallationBehavior(
+        IInstallationBehavior **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UninstallationSteps(
+        IStringCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_KBArticleIDs(
+        IStringCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AcceptEula(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_DeploymentAction(
+        DeploymentAction *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CopyFromCache(
+        BSTR path,
+        VARIANT_BOOL toExtractCabFiles) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_DownloadPriority(
+        DownloadPriority *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_DownloadContents(
+        IUpdateDownloadContentCollection **retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdate, 0x6a92b07a, 0xd821, 0x4682, 0xb4,0x23, 0x5c,0x80,0x50,0x22,0xcc,0x4d)
+#endif
+#else
+typedef struct IUpdateVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdate *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdate *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdate *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdate *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdate *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdate *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdate *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdate methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Title)(
+        IUpdate *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_AutoSelectOnWebSites)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_BundledUpdates)(
+        IUpdate *This,
+        IUpdateCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_CanRequireSource)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Categories)(
+        IUpdate *This,
+        ICategoryCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Deadline)(
+        IUpdate *This,
+        VARIANT *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_DeltaCompressedContentAvailable)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_DeltaCompressedContentPreferred)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Description)(
+        IUpdate *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_EulaAccepted)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_EulaText)(
+        IUpdate *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_HandlerID)(
+        IUpdate *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Identity)(
+        IUpdate *This,
+        IUpdateIdentity **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Image)(
+        IUpdate *This,
+        IImageInformation **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_InstallationBehavior)(
+        IUpdate *This,
+        IInstallationBehavior **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsBeta)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsDownloaded)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsHidden)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_IsHidden)(
+        IUpdate *This,
+        VARIANT_BOOL value);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsInstalled)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsMandatory)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsUninstallable)(
+        IUpdate *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Languages)(
+        IUpdate *This,
+        IStringCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_LastDeploymentChangeTime)(
+        IUpdate *This,
+        DATE *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_MaxDownloadSize)(
+        IUpdate *This,
+        DECIMAL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_MinDownloadSize)(
+        IUpdate *This,
+        DECIMAL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_MoreInfoUrls)(
+        IUpdate *This,
+        IStringCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_MsrcSeverity)(
+        IUpdate *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_RecommendedCpuSpeed)(
+        IUpdate *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_RecommendedHardDiskSpace)(
+        IUpdate *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_RecommendedMemory)(
+        IUpdate *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ReleaseNotes)(
+        IUpdate *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_SecurityBulletinIDs)(
+        IUpdate *This,
+        IStringCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_SupersededUpdateIDs)(
+        IUpdate *This,
+        IStringCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_SupportUrl)(
+        IUpdate *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Type)(
+        IUpdate *This,
+        UpdateType *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_UninstallationNotes)(
+        IUpdate *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_UninstallationBehavior)(
+        IUpdate *This,
+        IInstallationBehavior **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_UninstallationSteps)(
+        IUpdate *This,
+        IStringCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_KBArticleIDs)(
+        IUpdate *This,
+        IStringCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *AcceptEula)(
+        IUpdate *This);
+
+    HRESULT (STDMETHODCALLTYPE *get_DeploymentAction)(
+        IUpdate *This,
+        DeploymentAction *retval);
+
+    HRESULT (STDMETHODCALLTYPE *CopyFromCache)(
+        IUpdate *This,
+        BSTR path,
+        VARIANT_BOOL toExtractCabFiles);
+
+    HRESULT (STDMETHODCALLTYPE *get_DownloadPriority)(
+        IUpdate *This,
+        DownloadPriority *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_DownloadContents)(
+        IUpdate *This,
+        IUpdateDownloadContentCollection **retval);
+
+    END_INTERFACE
+} IUpdateVtbl;
+
+interface IUpdate {
+    CONST_VTBL IUpdateVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdate_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdate_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdate methods ***/
+#define IUpdate_get_Title(This,retval) (This)->lpVtbl->get_Title(This,retval)
+#define IUpdate_get_AutoSelectOnWebSites(This,retval) (This)->lpVtbl->get_AutoSelectOnWebSites(This,retval)
+#define IUpdate_get_BundledUpdates(This,retval) (This)->lpVtbl->get_BundledUpdates(This,retval)
+#define IUpdate_get_CanRequireSource(This,retval) (This)->lpVtbl->get_CanRequireSource(This,retval)
+#define IUpdate_get_Categories(This,retval) (This)->lpVtbl->get_Categories(This,retval)
+#define IUpdate_get_Deadline(This,retval) (This)->lpVtbl->get_Deadline(This,retval)
+#define IUpdate_get_DeltaCompressedContentAvailable(This,retval) (This)->lpVtbl->get_DeltaCompressedContentAvailable(This,retval)
+#define IUpdate_get_DeltaCompressedContentPreferred(This,retval) (This)->lpVtbl->get_DeltaCompressedContentPreferred(This,retval)
+#define IUpdate_get_Description(This,retval) (This)->lpVtbl->get_Description(This,retval)
+#define IUpdate_get_EulaAccepted(This,retval) (This)->lpVtbl->get_EulaAccepted(This,retval)
+#define IUpdate_get_EulaText(This,retval) (This)->lpVtbl->get_EulaText(This,retval)
+#define IUpdate_get_HandlerID(This,retval) (This)->lpVtbl->get_HandlerID(This,retval)
+#define IUpdate_get_Identity(This,retval) (This)->lpVtbl->get_Identity(This,retval)
+#define IUpdate_get_Image(This,retval) (This)->lpVtbl->get_Image(This,retval)
+#define IUpdate_get_InstallationBehavior(This,retval) (This)->lpVtbl->get_InstallationBehavior(This,retval)
+#define IUpdate_get_IsBeta(This,retval) (This)->lpVtbl->get_IsBeta(This,retval)
+#define IUpdate_get_IsDownloaded(This,retval) (This)->lpVtbl->get_IsDownloaded(This,retval)
+#define IUpdate_get_IsHidden(This,retval) (This)->lpVtbl->get_IsHidden(This,retval)
+#define IUpdate_put_IsHidden(This,value) (This)->lpVtbl->put_IsHidden(This,value)
+#define IUpdate_get_IsInstalled(This,retval) (This)->lpVtbl->get_IsInstalled(This,retval)
+#define IUpdate_get_IsMandatory(This,retval) (This)->lpVtbl->get_IsMandatory(This,retval)
+#define IUpdate_get_IsUninstallable(This,retval) (This)->lpVtbl->get_IsUninstallable(This,retval)
+#define IUpdate_get_Languages(This,retval) (This)->lpVtbl->get_Languages(This,retval)
+#define IUpdate_get_LastDeploymentChangeTime(This,retval) (This)->lpVtbl->get_LastDeploymentChangeTime(This,retval)
+#define IUpdate_get_MaxDownloadSize(This,retval) (This)->lpVtbl->get_MaxDownloadSize(This,retval)
+#define IUpdate_get_MinDownloadSize(This,retval) (This)->lpVtbl->get_MinDownloadSize(This,retval)
+#define IUpdate_get_MoreInfoUrls(This,retval) (This)->lpVtbl->get_MoreInfoUrls(This,retval)
+#define IUpdate_get_MsrcSeverity(This,retval) (This)->lpVtbl->get_MsrcSeverity(This,retval)
+#define IUpdate_get_RecommendedCpuSpeed(This,retval) (This)->lpVtbl->get_RecommendedCpuSpeed(This,retval)
+#define IUpdate_get_RecommendedHardDiskSpace(This,retval) (This)->lpVtbl->get_RecommendedHardDiskSpace(This,retval)
+#define IUpdate_get_RecommendedMemory(This,retval) (This)->lpVtbl->get_RecommendedMemory(This,retval)
+#define IUpdate_get_ReleaseNotes(This,retval) (This)->lpVtbl->get_ReleaseNotes(This,retval)
+#define IUpdate_get_SecurityBulletinIDs(This,retval) (This)->lpVtbl->get_SecurityBulletinIDs(This,retval)
+#define IUpdate_get_SupersededUpdateIDs(This,retval) (This)->lpVtbl->get_SupersededUpdateIDs(This,retval)
+#define IUpdate_get_SupportUrl(This,retval) (This)->lpVtbl->get_SupportUrl(This,retval)
+#define IUpdate_get_Type(This,retval) (This)->lpVtbl->get_Type(This,retval)
+#define IUpdate_get_UninstallationNotes(This,retval) (This)->lpVtbl->get_UninstallationNotes(This,retval)
+#define IUpdate_get_UninstallationBehavior(This,retval) (This)->lpVtbl->get_UninstallationBehavior(This,retval)
+#define IUpdate_get_UninstallationSteps(This,retval) (This)->lpVtbl->get_UninstallationSteps(This,retval)
+#define IUpdate_get_KBArticleIDs(This,retval) (This)->lpVtbl->get_KBArticleIDs(This,retval)
+#define IUpdate_AcceptEula(This) (This)->lpVtbl->AcceptEula(This)
+#define IUpdate_get_DeploymentAction(This,retval) (This)->lpVtbl->get_DeploymentAction(This,retval)
+#define IUpdate_CopyFromCache(This,path,toExtractCabFiles) (This)->lpVtbl->CopyFromCache(This,path,toExtractCabFiles)
+#define IUpdate_get_DownloadPriority(This,retval) (This)->lpVtbl->get_DownloadPriority(This,retval)
+#define IUpdate_get_DownloadContents(This,retval) (This)->lpVtbl->get_DownloadContents(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdate_QueryInterface(IUpdate* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdate_AddRef(IUpdate* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdate_Release(IUpdate* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdate_GetTypeInfoCount(IUpdate* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdate_GetTypeInfo(IUpdate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdate_GetIDsOfNames(IUpdate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdate_Invoke(IUpdate* 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);
+}
+/*** IUpdate methods ***/
+static FORCEINLINE HRESULT IUpdate_get_Title(IUpdate* This,BSTR *retval) {
+    return This->lpVtbl->get_Title(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_AutoSelectOnWebSites(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_AutoSelectOnWebSites(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_BundledUpdates(IUpdate* This,IUpdateCollection **retval) {
+    return This->lpVtbl->get_BundledUpdates(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_CanRequireSource(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_CanRequireSource(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_Categories(IUpdate* This,ICategoryCollection **retval) {
+    return This->lpVtbl->get_Categories(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_Deadline(IUpdate* This,VARIANT *retval) {
+    return This->lpVtbl->get_Deadline(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_DeltaCompressedContentAvailable(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_DeltaCompressedContentAvailable(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_DeltaCompressedContentPreferred(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_DeltaCompressedContentPreferred(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_Description(IUpdate* This,BSTR *retval) {
+    return This->lpVtbl->get_Description(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_EulaAccepted(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_EulaAccepted(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_EulaText(IUpdate* This,BSTR *retval) {
+    return This->lpVtbl->get_EulaText(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_HandlerID(IUpdate* This,BSTR *retval) {
+    return This->lpVtbl->get_HandlerID(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_Identity(IUpdate* This,IUpdateIdentity **retval) {
+    return This->lpVtbl->get_Identity(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_Image(IUpdate* This,IImageInformation **retval) {
+    return This->lpVtbl->get_Image(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_InstallationBehavior(IUpdate* This,IInstallationBehavior **retval) {
+    return This->lpVtbl->get_InstallationBehavior(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_IsBeta(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsBeta(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_IsDownloaded(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsDownloaded(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_IsHidden(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsHidden(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_put_IsHidden(IUpdate* This,VARIANT_BOOL value) {
+    return This->lpVtbl->put_IsHidden(This,value);
+}
+static FORCEINLINE HRESULT IUpdate_get_IsInstalled(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsInstalled(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_IsMandatory(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsMandatory(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_IsUninstallable(IUpdate* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsUninstallable(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_Languages(IUpdate* This,IStringCollection **retval) {
+    return This->lpVtbl->get_Languages(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_LastDeploymentChangeTime(IUpdate* This,DATE *retval) {
+    return This->lpVtbl->get_LastDeploymentChangeTime(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_MaxDownloadSize(IUpdate* This,DECIMAL *retval) {
+    return This->lpVtbl->get_MaxDownloadSize(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_MinDownloadSize(IUpdate* This,DECIMAL *retval) {
+    return This->lpVtbl->get_MinDownloadSize(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_MoreInfoUrls(IUpdate* This,IStringCollection **retval) {
+    return This->lpVtbl->get_MoreInfoUrls(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_MsrcSeverity(IUpdate* This,BSTR *retval) {
+    return This->lpVtbl->get_MsrcSeverity(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_RecommendedCpuSpeed(IUpdate* This,LONG *retval) {
+    return This->lpVtbl->get_RecommendedCpuSpeed(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_RecommendedHardDiskSpace(IUpdate* This,LONG *retval) {
+    return This->lpVtbl->get_RecommendedHardDiskSpace(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_RecommendedMemory(IUpdate* This,LONG *retval) {
+    return This->lpVtbl->get_RecommendedMemory(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_ReleaseNotes(IUpdate* This,BSTR *retval) {
+    return This->lpVtbl->get_ReleaseNotes(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_SecurityBulletinIDs(IUpdate* This,IStringCollection **retval) {
+    return This->lpVtbl->get_SecurityBulletinIDs(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_SupersededUpdateIDs(IUpdate* This,IStringCollection **retval) {
+    return This->lpVtbl->get_SupersededUpdateIDs(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_SupportUrl(IUpdate* This,BSTR *retval) {
+    return This->lpVtbl->get_SupportUrl(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_Type(IUpdate* This,UpdateType *retval) {
+    return This->lpVtbl->get_Type(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_UninstallationNotes(IUpdate* This,BSTR *retval) {
+    return This->lpVtbl->get_UninstallationNotes(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_UninstallationBehavior(IUpdate* This,IInstallationBehavior **retval) {
+    return This->lpVtbl->get_UninstallationBehavior(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_UninstallationSteps(IUpdate* This,IStringCollection **retval) {
+    return This->lpVtbl->get_UninstallationSteps(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_KBArticleIDs(IUpdate* This,IStringCollection **retval) {
+    return This->lpVtbl->get_KBArticleIDs(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_AcceptEula(IUpdate* This) {
+    return This->lpVtbl->AcceptEula(This);
+}
+static FORCEINLINE HRESULT IUpdate_get_DeploymentAction(IUpdate* This,DeploymentAction *retval) {
+    return This->lpVtbl->get_DeploymentAction(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_CopyFromCache(IUpdate* This,BSTR path,VARIANT_BOOL toExtractCabFiles) {
+    return This->lpVtbl->CopyFromCache(This,path,toExtractCabFiles);
+}
+static FORCEINLINE HRESULT IUpdate_get_DownloadPriority(IUpdate* This,DownloadPriority *retval) {
+    return This->lpVtbl->get_DownloadPriority(This,retval);
+}
+static FORCEINLINE HRESULT IUpdate_get_DownloadContents(IUpdate* This,IUpdateDownloadContentCollection **retval) {
+    return This->lpVtbl->get_DownloadContents(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdate_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateCollection interface
+ */
+#ifndef __IUpdateCollection_INTERFACE_DEFINED__
+#define __IUpdateCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateCollection, 0x07f7438c, 0x7709, 0x4ca5, 0xb5,0x18, 0x91,0x27,0x92,0x88,0x13,0x4e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("07f7438c-7709-4ca5-b518-91279288134e")
+IUpdateCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG index,
+        IUpdate **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Item(
+        LONG index,
+        IUpdate *value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Add(
+        IUpdate *value,
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clear(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Copy(
+        IUpdateCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Insert(
+        LONG index,
+        IUpdate *value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveAt(
+        LONG index) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateCollection, 0x07f7438c, 0x7709, 0x4ca5, 0xb5,0x18, 0x91,0x27,0x92,0x88,0x13,0x4e)
+#endif
+#else
+typedef struct IUpdateCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateCollection *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateCollection *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateCollection *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateCollection *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateCollection *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateCollection *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateCollection *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IUpdateCollection *This,
+        LONG index,
+        IUpdate **retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_Item)(
+        IUpdateCollection *This,
+        LONG index,
+        IUpdate *value);
+
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IUpdateCollection *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        IUpdateCollection *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ReadOnly)(
+        IUpdateCollection *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *Add)(
+        IUpdateCollection *This,
+        IUpdate *value,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *Clear)(
+        IUpdateCollection *This);
+
+    HRESULT (STDMETHODCALLTYPE *Copy)(
+        IUpdateCollection *This,
+        IUpdateCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *Insert)(
+        IUpdateCollection *This,
+        LONG index,
+        IUpdate *value);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveAt)(
+        IUpdateCollection *This,
+        LONG index);
+
+    END_INTERFACE
+} IUpdateCollectionVtbl;
+
+interface IUpdateCollection {
+    CONST_VTBL IUpdateCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateCollection methods ***/
+#define IUpdateCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
+#define IUpdateCollection_put_Item(This,index,value) (This)->lpVtbl->put_Item(This,index,value)
+#define IUpdateCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define IUpdateCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
+#define IUpdateCollection_get_ReadOnly(This,retval) (This)->lpVtbl->get_ReadOnly(This,retval)
+#define IUpdateCollection_Add(This,value,retval) (This)->lpVtbl->Add(This,value,retval)
+#define IUpdateCollection_Clear(This) (This)->lpVtbl->Clear(This)
+#define IUpdateCollection_Copy(This,retval) (This)->lpVtbl->Copy(This,retval)
+#define IUpdateCollection_Insert(This,index,value) (This)->lpVtbl->Insert(This,index,value)
+#define IUpdateCollection_RemoveAt(This,index) (This)->lpVtbl->RemoveAt(This,index)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateCollection_QueryInterface(IUpdateCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateCollection_AddRef(IUpdateCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateCollection_Release(IUpdateCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateCollection_GetTypeInfoCount(IUpdateCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateCollection_GetTypeInfo(IUpdateCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateCollection_GetIDsOfNames(IUpdateCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateCollection_Invoke(IUpdateCollection* 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);
+}
+/*** IUpdateCollection methods ***/
+static FORCEINLINE HRESULT IUpdateCollection_get_Item(IUpdateCollection* This,LONG index,IUpdate **retval) {
+    return This->lpVtbl->get_Item(This,index,retval);
+}
+static FORCEINLINE HRESULT IUpdateCollection_put_Item(IUpdateCollection* This,LONG index,IUpdate *value) {
+    return This->lpVtbl->put_Item(This,index,value);
+}
+static FORCEINLINE HRESULT IUpdateCollection_get__NewEnum(IUpdateCollection* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateCollection_get_Count(IUpdateCollection* This,LONG *retval) {
+    return This->lpVtbl->get_Count(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateCollection_get_ReadOnly(IUpdateCollection* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_ReadOnly(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateCollection_Add(IUpdateCollection* This,IUpdate *value,LONG *retval) {
+    return This->lpVtbl->Add(This,value,retval);
+}
+static FORCEINLINE HRESULT IUpdateCollection_Clear(IUpdateCollection* This) {
+    return This->lpVtbl->Clear(This);
+}
+static FORCEINLINE HRESULT IUpdateCollection_Copy(IUpdateCollection* This,IUpdateCollection **retval) {
+    return This->lpVtbl->Copy(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateCollection_Insert(IUpdateCollection* This,LONG index,IUpdate *value) {
+    return This->lpVtbl->Insert(This,index,value);
+}
+static FORCEINLINE HRESULT IUpdateCollection_RemoveAt(IUpdateCollection* This,LONG index) {
+    return This->lpVtbl->RemoveAt(This,index);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISearchJob interface
+ */
+#ifndef __ISearchJob_INTERFACE_DEFINED__
+#define __ISearchJob_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISearchJob, 0x7366ea16, 0x7a1a, 0x4ea2, 0xb0,0x42, 0x97,0x3d,0x3e,0x9c,0xd9,0x9b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7366ea16-7a1a-4ea2-b042-973d3e9cd99b")
+ISearchJob : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_AsyncState(
+        VARIANT *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsCompleted(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CleanUp(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RequestAbort(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISearchJob, 0x7366ea16, 0x7a1a, 0x4ea2, 0xb0,0x42, 0x97,0x3d,0x3e,0x9c,0xd9,0x9b)
+#endif
+#else
+typedef struct ISearchJobVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISearchJob *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISearchJob *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISearchJob *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISearchJob *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISearchJob *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISearchJob *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISearchJob *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISearchJob methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_AsyncState)(
+        ISearchJob *This,
+        VARIANT *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsCompleted)(
+        ISearchJob *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *CleanUp)(
+        ISearchJob *This);
+
+    HRESULT (STDMETHODCALLTYPE *RequestAbort)(
+        ISearchJob *This);
+
+    END_INTERFACE
+} ISearchJobVtbl;
+
+interface ISearchJob {
+    CONST_VTBL ISearchJobVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISearchJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISearchJob_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISearchJob_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISearchJob_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISearchJob_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISearchJob_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISearchJob_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISearchJob methods ***/
+#define ISearchJob_get_AsyncState(This,retval) (This)->lpVtbl->get_AsyncState(This,retval)
+#define ISearchJob_get_IsCompleted(This,retval) (This)->lpVtbl->get_IsCompleted(This,retval)
+#define ISearchJob_CleanUp(This) (This)->lpVtbl->CleanUp(This)
+#define ISearchJob_RequestAbort(This) (This)->lpVtbl->RequestAbort(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISearchJob_QueryInterface(ISearchJob* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISearchJob_AddRef(ISearchJob* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISearchJob_Release(ISearchJob* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISearchJob_GetTypeInfoCount(ISearchJob* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISearchJob_GetTypeInfo(ISearchJob* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISearchJob_GetIDsOfNames(ISearchJob* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISearchJob_Invoke(ISearchJob* 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);
+}
+/*** ISearchJob methods ***/
+static FORCEINLINE HRESULT ISearchJob_get_AsyncState(ISearchJob* This,VARIANT *retval) {
+    return This->lpVtbl->get_AsyncState(This,retval);
+}
+static FORCEINLINE HRESULT ISearchJob_get_IsCompleted(ISearchJob* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsCompleted(This,retval);
+}
+static FORCEINLINE HRESULT ISearchJob_CleanUp(ISearchJob* This) {
+    return This->lpVtbl->CleanUp(This);
+}
+static FORCEINLINE HRESULT ISearchJob_RequestAbort(ISearchJob* This) {
+    return This->lpVtbl->RequestAbort(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISearchJob_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISearchResult interface
+ */
+#ifndef __ISearchResult_INTERFACE_DEFINED__
+#define __ISearchResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISearchResult, 0xd40cff62, 0xe08c, 0x4498, 0x94,0x1a, 0x01,0xe2,0x5f,0x0f,0xd3,0x3c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d40cff62-e08c-4498-941a-01e25f0fd33c")
+ISearchResult : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
+        OperationResultCode *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RootCategories(
+        ICategoryCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Updates(
+        IUpdateCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Warnings(
+        IUpdateExceptionCollection **retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISearchResult, 0xd40cff62, 0xe08c, 0x4498, 0x94,0x1a, 0x01,0xe2,0x5f,0x0f,0xd3,0x3c)
+#endif
+#else
+typedef struct ISearchResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISearchResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISearchResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISearchResult *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISearchResult *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISearchResult *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISearchResult *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISearchResult *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISearchResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
+        ISearchResult *This,
+        OperationResultCode *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_RootCategories)(
+        ISearchResult *This,
+        ICategoryCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Updates)(
+        ISearchResult *This,
+        IUpdateCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Warnings)(
+        ISearchResult *This,
+        IUpdateExceptionCollection **retval);
+
+    END_INTERFACE
+} ISearchResultVtbl;
+
+interface ISearchResult {
+    CONST_VTBL ISearchResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISearchResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISearchResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISearchResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISearchResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISearchResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISearchResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISearchResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISearchResult methods ***/
+#define ISearchResult_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
+#define ISearchResult_get_RootCategories(This,retval) (This)->lpVtbl->get_RootCategories(This,retval)
+#define ISearchResult_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
+#define ISearchResult_get_Warnings(This,retval) (This)->lpVtbl->get_Warnings(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISearchResult_QueryInterface(ISearchResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISearchResult_AddRef(ISearchResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISearchResult_Release(ISearchResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISearchResult_GetTypeInfoCount(ISearchResult* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISearchResult_GetTypeInfo(ISearchResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISearchResult_GetIDsOfNames(ISearchResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISearchResult_Invoke(ISearchResult* 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);
+}
+/*** ISearchResult methods ***/
+static FORCEINLINE HRESULT ISearchResult_get_ResultCode(ISearchResult* This,OperationResultCode *retval) {
+    return This->lpVtbl->get_ResultCode(This,retval);
+}
+static FORCEINLINE HRESULT ISearchResult_get_RootCategories(ISearchResult* This,ICategoryCollection **retval) {
+    return This->lpVtbl->get_RootCategories(This,retval);
+}
+static FORCEINLINE HRESULT ISearchResult_get_Updates(ISearchResult* This,IUpdateCollection **retval) {
+    return This->lpVtbl->get_Updates(This,retval);
+}
+static FORCEINLINE HRESULT ISearchResult_get_Warnings(ISearchResult* This,IUpdateExceptionCollection **retval) {
+    return This->lpVtbl->get_Warnings(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISearchResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateHistoryEntry interface
+ */
+#ifndef __IUpdateHistoryEntry_INTERFACE_DEFINED__
+#define __IUpdateHistoryEntry_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateHistoryEntry, 0xbe56a644, 0xaf0e, 0x4e0e, 0xa3,0x11, 0xc1,0xd8,0xe6,0x95,0xcb,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("be56a644-af0e-4e0e-a311-c1d8e695cbff")
+IUpdateHistoryEntry : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Operation(
+        UpdateOperation *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
+        OperationResultCode *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_HResult(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Date(
+        DATE *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UpdateIdentity(
+        IUpdateIdentity **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Title(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Description(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UnmappedResultCode(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ClientApplicationID(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ServerSelection(
+        ServerSelection *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ServiceID(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UninstallationSteps(
+        IStringCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_UninstallationNotes(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_SupportUrl(
+        BSTR *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateHistoryEntry, 0xbe56a644, 0xaf0e, 0x4e0e, 0xa3,0x11, 0xc1,0xd8,0xe6,0x95,0xcb,0xff)
+#endif
+#else
+typedef struct IUpdateHistoryEntryVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateHistoryEntry *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateHistoryEntry *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateHistoryEntry *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateHistoryEntry *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateHistoryEntry *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateHistoryEntry *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateHistoryEntry *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateHistoryEntry methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Operation)(
+        IUpdateHistoryEntry *This,
+        UpdateOperation *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
+        IUpdateHistoryEntry *This,
+        OperationResultCode *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_HResult)(
+        IUpdateHistoryEntry *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Date)(
+        IUpdateHistoryEntry *This,
+        DATE *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_UpdateIdentity)(
+        IUpdateHistoryEntry *This,
+        IUpdateIdentity **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Title)(
+        IUpdateHistoryEntry *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Description)(
+        IUpdateHistoryEntry *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_UnmappedResultCode)(
+        IUpdateHistoryEntry *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ClientApplicationID)(
+        IUpdateHistoryEntry *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ServerSelection)(
+        IUpdateHistoryEntry *This,
+        ServerSelection *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ServiceID)(
+        IUpdateHistoryEntry *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_UninstallationSteps)(
+        IUpdateHistoryEntry *This,
+        IStringCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_UninstallationNotes)(
+        IUpdateHistoryEntry *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_SupportUrl)(
+        IUpdateHistoryEntry *This,
+        BSTR *retval);
+
+    END_INTERFACE
+} IUpdateHistoryEntryVtbl;
+
+interface IUpdateHistoryEntry {
+    CONST_VTBL IUpdateHistoryEntryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateHistoryEntry_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateHistoryEntry_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateHistoryEntry_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateHistoryEntry_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateHistoryEntry_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateHistoryEntry_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateHistoryEntry_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateHistoryEntry methods ***/
+#define IUpdateHistoryEntry_get_Operation(This,retval) (This)->lpVtbl->get_Operation(This,retval)
+#define IUpdateHistoryEntry_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
+#define IUpdateHistoryEntry_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
+#define IUpdateHistoryEntry_get_Date(This,retval) (This)->lpVtbl->get_Date(This,retval)
+#define IUpdateHistoryEntry_get_UpdateIdentity(This,retval) (This)->lpVtbl->get_UpdateIdentity(This,retval)
+#define IUpdateHistoryEntry_get_Title(This,retval) (This)->lpVtbl->get_Title(This,retval)
+#define IUpdateHistoryEntry_get_Description(This,retval) (This)->lpVtbl->get_Description(This,retval)
+#define IUpdateHistoryEntry_get_UnmappedResultCode(This,retval) (This)->lpVtbl->get_UnmappedResultCode(This,retval)
+#define IUpdateHistoryEntry_get_ClientApplicationID(This,retval) (This)->lpVtbl->get_ClientApplicationID(This,retval)
+#define IUpdateHistoryEntry_get_ServerSelection(This,retval) (This)->lpVtbl->get_ServerSelection(This,retval)
+#define IUpdateHistoryEntry_get_ServiceID(This,retval) (This)->lpVtbl->get_ServiceID(This,retval)
+#define IUpdateHistoryEntry_get_UninstallationSteps(This,retval) (This)->lpVtbl->get_UninstallationSteps(This,retval)
+#define IUpdateHistoryEntry_get_UninstallationNotes(This,retval) (This)->lpVtbl->get_UninstallationNotes(This,retval)
+#define IUpdateHistoryEntry_get_SupportUrl(This,retval) (This)->lpVtbl->get_SupportUrl(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateHistoryEntry_QueryInterface(IUpdateHistoryEntry* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateHistoryEntry_AddRef(IUpdateHistoryEntry* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateHistoryEntry_Release(IUpdateHistoryEntry* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateHistoryEntry_GetTypeInfoCount(IUpdateHistoryEntry* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_GetTypeInfo(IUpdateHistoryEntry* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_GetIDsOfNames(IUpdateHistoryEntry* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_Invoke(IUpdateHistoryEntry* 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);
+}
+/*** IUpdateHistoryEntry methods ***/
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_Operation(IUpdateHistoryEntry* This,UpdateOperation *retval) {
+    return This->lpVtbl->get_Operation(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_ResultCode(IUpdateHistoryEntry* This,OperationResultCode *retval) {
+    return This->lpVtbl->get_ResultCode(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_HResult(IUpdateHistoryEntry* This,LONG *retval) {
+    return This->lpVtbl->get_HResult(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_Date(IUpdateHistoryEntry* This,DATE *retval) {
+    return This->lpVtbl->get_Date(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_UpdateIdentity(IUpdateHistoryEntry* This,IUpdateIdentity **retval) {
+    return This->lpVtbl->get_UpdateIdentity(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_Title(IUpdateHistoryEntry* This,BSTR *retval) {
+    return This->lpVtbl->get_Title(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_Description(IUpdateHistoryEntry* This,BSTR *retval) {
+    return This->lpVtbl->get_Description(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_UnmappedResultCode(IUpdateHistoryEntry* This,LONG *retval) {
+    return This->lpVtbl->get_UnmappedResultCode(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_ClientApplicationID(IUpdateHistoryEntry* This,BSTR *retval) {
+    return This->lpVtbl->get_ClientApplicationID(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_ServerSelection(IUpdateHistoryEntry* This,ServerSelection *retval) {
+    return This->lpVtbl->get_ServerSelection(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_ServiceID(IUpdateHistoryEntry* This,BSTR *retval) {
+    return This->lpVtbl->get_ServiceID(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_UninstallationSteps(IUpdateHistoryEntry* This,IStringCollection **retval) {
+    return This->lpVtbl->get_UninstallationSteps(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_UninstallationNotes(IUpdateHistoryEntry* This,BSTR *retval) {
+    return This->lpVtbl->get_UninstallationNotes(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntry_get_SupportUrl(IUpdateHistoryEntry* This,BSTR *retval) {
+    return This->lpVtbl->get_SupportUrl(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateHistoryEntry_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateHistoryEntryCollection interface
+ */
+#ifndef __IUpdateHistoryEntryCollection_INTERFACE_DEFINED__
+#define __IUpdateHistoryEntryCollection_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateHistoryEntryCollection, 0xa7f04f3c, 0xa290, 0x435b, 0xaa,0xdf, 0xa1,0x16,0xc3,0x35,0x7a,0x5c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a7f04f3c-a290-435b-aadf-a116c3357a5c")
+IUpdateHistoryEntryCollection : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Item(
+        LONG index,
+        IUpdateHistoryEntry **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Count(
+        LONG *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateHistoryEntryCollection, 0xa7f04f3c, 0xa290, 0x435b, 0xaa,0xdf, 0xa1,0x16,0xc3,0x35,0x7a,0x5c)
+#endif
+#else
+typedef struct IUpdateHistoryEntryCollectionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateHistoryEntryCollection *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateHistoryEntryCollection *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateHistoryEntryCollection *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateHistoryEntryCollection *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateHistoryEntryCollection *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateHistoryEntryCollection *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateHistoryEntryCollection *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateHistoryEntryCollection methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Item)(
+        IUpdateHistoryEntryCollection *This,
+        LONG index,
+        IUpdateHistoryEntry **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
+        IUpdateHistoryEntryCollection *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Count)(
+        IUpdateHistoryEntryCollection *This,
+        LONG *retval);
+
+    END_INTERFACE
+} IUpdateHistoryEntryCollectionVtbl;
+
+interface IUpdateHistoryEntryCollection {
+    CONST_VTBL IUpdateHistoryEntryCollectionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateHistoryEntryCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateHistoryEntryCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateHistoryEntryCollection_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateHistoryEntryCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateHistoryEntryCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateHistoryEntryCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateHistoryEntryCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateHistoryEntryCollection methods ***/
+#define IUpdateHistoryEntryCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
+#define IUpdateHistoryEntryCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
+#define IUpdateHistoryEntryCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateHistoryEntryCollection_QueryInterface(IUpdateHistoryEntryCollection* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateHistoryEntryCollection_AddRef(IUpdateHistoryEntryCollection* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateHistoryEntryCollection_Release(IUpdateHistoryEntryCollection* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateHistoryEntryCollection_GetTypeInfoCount(IUpdateHistoryEntryCollection* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntryCollection_GetTypeInfo(IUpdateHistoryEntryCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntryCollection_GetIDsOfNames(IUpdateHistoryEntryCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntryCollection_Invoke(IUpdateHistoryEntryCollection* 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);
+}
+/*** IUpdateHistoryEntryCollection methods ***/
+static FORCEINLINE HRESULT IUpdateHistoryEntryCollection_get_Item(IUpdateHistoryEntryCollection* This,LONG index,IUpdateHistoryEntry **retval) {
+    return This->lpVtbl->get_Item(This,index,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntryCollection_get__NewEnum(IUpdateHistoryEntryCollection* This,IUnknown **retval) {
+    return This->lpVtbl->get__NewEnum(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateHistoryEntryCollection_get_Count(IUpdateHistoryEntryCollection* This,LONG *retval) {
+    return This->lpVtbl->get_Count(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateHistoryEntryCollection_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateSearcher interface
+ */
+#ifndef __IUpdateSearcher_INTERFACE_DEFINED__
+#define __IUpdateSearcher_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateSearcher, 0x8f45abf1, 0xf9ae, 0x4b95, 0xa9,0x33, 0xf0,0xf6,0x6e,0x50,0x56,0xea);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("8f45abf1-f9ae-4b95-a933-f0f66e5056ea")
+IUpdateSearcher : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_CanAutomaticallyUpgradeService(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_CanAutomaticallyUpgradeService(
+        VARIANT_BOOL value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ClientApplicationID(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ClientApplicationID(
+        BSTR value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IncludePotentiallySupersededUpdates(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_IncludePotentiallySupersededUpdates(
+        VARIANT_BOOL value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ServerSelection(
+        ServerSelection *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ServerSelection(
+        ServerSelection value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginSearch(
+        BSTR criteria,
+        IUnknown *onCompleted,
+        VARIANT state,
+        ISearchJob **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndSearch(
+        ISearchJob *searchJob,
+        ISearchResult **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EscapeString(
+        BSTR unescaped,
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE QueryHistory(
+        LONG startIndex,
+        LONG count,
+        IUpdateHistoryEntryCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Search(
+        BSTR criteria,
+        ISearchResult **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Online(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Online(
+        VARIANT_BOOL value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetTotalHistoryCount(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ServiceID(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ServiceID(
+        BSTR value) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateSearcher, 0x8f45abf1, 0xf9ae, 0x4b95, 0xa9,0x33, 0xf0,0xf6,0x6e,0x50,0x56,0xea)
+#endif
+#else
+typedef struct IUpdateSearcherVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateSearcher *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateSearcher *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateSearcher *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateSearcher *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateSearcher *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateSearcher *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateSearcher *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateSearcher methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_CanAutomaticallyUpgradeService)(
+        IUpdateSearcher *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_CanAutomaticallyUpgradeService)(
+        IUpdateSearcher *This,
+        VARIANT_BOOL value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ClientApplicationID)(
+        IUpdateSearcher *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_ClientApplicationID)(
+        IUpdateSearcher *This,
+        BSTR value);
+
+    HRESULT (STDMETHODCALLTYPE *get_IncludePotentiallySupersededUpdates)(
+        IUpdateSearcher *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_IncludePotentiallySupersededUpdates)(
+        IUpdateSearcher *This,
+        VARIANT_BOOL value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ServerSelection)(
+        IUpdateSearcher *This,
+        ServerSelection *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_ServerSelection)(
+        IUpdateSearcher *This,
+        ServerSelection value);
+
+    HRESULT (STDMETHODCALLTYPE *BeginSearch)(
+        IUpdateSearcher *This,
+        BSTR criteria,
+        IUnknown *onCompleted,
+        VARIANT state,
+        ISearchJob **retval);
+
+    HRESULT (STDMETHODCALLTYPE *EndSearch)(
+        IUpdateSearcher *This,
+        ISearchJob *searchJob,
+        ISearchResult **retval);
+
+    HRESULT (STDMETHODCALLTYPE *EscapeString)(
+        IUpdateSearcher *This,
+        BSTR unescaped,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *QueryHistory)(
+        IUpdateSearcher *This,
+        LONG startIndex,
+        LONG count,
+        IUpdateHistoryEntryCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *Search)(
+        IUpdateSearcher *This,
+        BSTR criteria,
+        ISearchResult **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Online)(
+        IUpdateSearcher *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_Online)(
+        IUpdateSearcher *This,
+        VARIANT_BOOL value);
+
+    HRESULT (STDMETHODCALLTYPE *GetTotalHistoryCount)(
+        IUpdateSearcher *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ServiceID)(
+        IUpdateSearcher *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_ServiceID)(
+        IUpdateSearcher *This,
+        BSTR value);
+
+    END_INTERFACE
+} IUpdateSearcherVtbl;
+
+interface IUpdateSearcher {
+    CONST_VTBL IUpdateSearcherVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateSearcher_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateSearcher_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateSearcher_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateSearcher_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateSearcher_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateSearcher_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateSearcher_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateSearcher methods ***/
+#define IUpdateSearcher_get_CanAutomaticallyUpgradeService(This,retval) (This)->lpVtbl->get_CanAutomaticallyUpgradeService(This,retval)
+#define IUpdateSearcher_put_CanAutomaticallyUpgradeService(This,value) (This)->lpVtbl->put_CanAutomaticallyUpgradeService(This,value)
+#define IUpdateSearcher_get_ClientApplicationID(This,retval) (This)->lpVtbl->get_ClientApplicationID(This,retval)
+#define IUpdateSearcher_put_ClientApplicationID(This,value) (This)->lpVtbl->put_ClientApplicationID(This,value)
+#define IUpdateSearcher_get_IncludePotentiallySupersededUpdates(This,retval) (This)->lpVtbl->get_IncludePotentiallySupersededUpdates(This,retval)
+#define IUpdateSearcher_put_IncludePotentiallySupersededUpdates(This,value) (This)->lpVtbl->put_IncludePotentiallySupersededUpdates(This,value)
+#define IUpdateSearcher_get_ServerSelection(This,retval) (This)->lpVtbl->get_ServerSelection(This,retval)
+#define IUpdateSearcher_put_ServerSelection(This,value) (This)->lpVtbl->put_ServerSelection(This,value)
+#define IUpdateSearcher_BeginSearch(This,criteria,onCompleted,state,retval) (This)->lpVtbl->BeginSearch(This,criteria,onCompleted,state,retval)
+#define IUpdateSearcher_EndSearch(This,searchJob,retval) (This)->lpVtbl->EndSearch(This,searchJob,retval)
+#define IUpdateSearcher_EscapeString(This,unescaped,retval) (This)->lpVtbl->EscapeString(This,unescaped,retval)
+#define IUpdateSearcher_QueryHistory(This,startIndex,count,retval) (This)->lpVtbl->QueryHistory(This,startIndex,count,retval)
+#define IUpdateSearcher_Search(This,criteria,retval) (This)->lpVtbl->Search(This,criteria,retval)
+#define IUpdateSearcher_get_Online(This,retval) (This)->lpVtbl->get_Online(This,retval)
+#define IUpdateSearcher_put_Online(This,value) (This)->lpVtbl->put_Online(This,value)
+#define IUpdateSearcher_GetTotalHistoryCount(This,retval) (This)->lpVtbl->GetTotalHistoryCount(This,retval)
+#define IUpdateSearcher_get_ServiceID(This,retval) (This)->lpVtbl->get_ServiceID(This,retval)
+#define IUpdateSearcher_put_ServiceID(This,value) (This)->lpVtbl->put_ServiceID(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateSearcher_QueryInterface(IUpdateSearcher* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateSearcher_AddRef(IUpdateSearcher* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateSearcher_Release(IUpdateSearcher* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateSearcher_GetTypeInfoCount(IUpdateSearcher* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_GetTypeInfo(IUpdateSearcher* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_GetIDsOfNames(IUpdateSearcher* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_Invoke(IUpdateSearcher* 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);
+}
+/*** IUpdateSearcher methods ***/
+static FORCEINLINE HRESULT IUpdateSearcher_get_CanAutomaticallyUpgradeService(IUpdateSearcher* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_CanAutomaticallyUpgradeService(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_put_CanAutomaticallyUpgradeService(IUpdateSearcher* This,VARIANT_BOOL value) {
+    return This->lpVtbl->put_CanAutomaticallyUpgradeService(This,value);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_get_ClientApplicationID(IUpdateSearcher* This,BSTR *retval) {
+    return This->lpVtbl->get_ClientApplicationID(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_put_ClientApplicationID(IUpdateSearcher* This,BSTR value) {
+    return This->lpVtbl->put_ClientApplicationID(This,value);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_get_IncludePotentiallySupersededUpdates(IUpdateSearcher* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IncludePotentiallySupersededUpdates(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_put_IncludePotentiallySupersededUpdates(IUpdateSearcher* This,VARIANT_BOOL value) {
+    return This->lpVtbl->put_IncludePotentiallySupersededUpdates(This,value);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_get_ServerSelection(IUpdateSearcher* This,ServerSelection *retval) {
+    return This->lpVtbl->get_ServerSelection(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_put_ServerSelection(IUpdateSearcher* This,ServerSelection value) {
+    return This->lpVtbl->put_ServerSelection(This,value);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_BeginSearch(IUpdateSearcher* This,BSTR criteria,IUnknown *onCompleted,VARIANT state,ISearchJob **retval) {
+    return This->lpVtbl->BeginSearch(This,criteria,onCompleted,state,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_EndSearch(IUpdateSearcher* This,ISearchJob *searchJob,ISearchResult **retval) {
+    return This->lpVtbl->EndSearch(This,searchJob,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_EscapeString(IUpdateSearcher* This,BSTR unescaped,BSTR *retval) {
+    return This->lpVtbl->EscapeString(This,unescaped,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_QueryHistory(IUpdateSearcher* This,LONG startIndex,LONG count,IUpdateHistoryEntryCollection **retval) {
+    return This->lpVtbl->QueryHistory(This,startIndex,count,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_Search(IUpdateSearcher* This,BSTR criteria,ISearchResult **retval) {
+    return This->lpVtbl->Search(This,criteria,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_get_Online(IUpdateSearcher* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_Online(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_put_Online(IUpdateSearcher* This,VARIANT_BOOL value) {
+    return This->lpVtbl->put_Online(This,value);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_GetTotalHistoryCount(IUpdateSearcher* This,LONG *retval) {
+    return This->lpVtbl->GetTotalHistoryCount(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_get_ServiceID(IUpdateSearcher* This,BSTR *retval) {
+    return This->lpVtbl->get_ServiceID(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateSearcher_put_ServiceID(IUpdateSearcher* This,BSTR value) {
+    return This->lpVtbl->put_ServiceID(This,value);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateSearcher_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateDownloadResult interface
+ */
+#ifndef __IUpdateDownloadResult_INTERFACE_DEFINED__
+#define __IUpdateDownloadResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateDownloadResult, 0xbf99af76, 0xb575, 0x42ad, 0x8a,0xa4, 0x33,0xcb,0xb5,0x47,0x7a,0xf1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bf99af76-b575-42ad-8aa4-33cbb5477af1")
+IUpdateDownloadResult : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_HResult(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
+        OperationResultCode *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateDownloadResult, 0xbf99af76, 0xb575, 0x42ad, 0x8a,0xa4, 0x33,0xcb,0xb5,0x47,0x7a,0xf1)
+#endif
+#else
+typedef struct IUpdateDownloadResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateDownloadResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateDownloadResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateDownloadResult *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateDownloadResult *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateDownloadResult *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateDownloadResult *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateDownloadResult *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateDownloadResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_HResult)(
+        IUpdateDownloadResult *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
+        IUpdateDownloadResult *This,
+        OperationResultCode *retval);
+
+    END_INTERFACE
+} IUpdateDownloadResultVtbl;
+
+interface IUpdateDownloadResult {
+    CONST_VTBL IUpdateDownloadResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateDownloadResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateDownloadResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateDownloadResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateDownloadResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateDownloadResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateDownloadResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateDownloadResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateDownloadResult methods ***/
+#define IUpdateDownloadResult_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
+#define IUpdateDownloadResult_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateDownloadResult_QueryInterface(IUpdateDownloadResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateDownloadResult_AddRef(IUpdateDownloadResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateDownloadResult_Release(IUpdateDownloadResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateDownloadResult_GetTypeInfoCount(IUpdateDownloadResult* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateDownloadResult_GetTypeInfo(IUpdateDownloadResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateDownloadResult_GetIDsOfNames(IUpdateDownloadResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateDownloadResult_Invoke(IUpdateDownloadResult* 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);
+}
+/*** IUpdateDownloadResult methods ***/
+static FORCEINLINE HRESULT IUpdateDownloadResult_get_HResult(IUpdateDownloadResult* This,LONG *retval) {
+    return This->lpVtbl->get_HResult(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateDownloadResult_get_ResultCode(IUpdateDownloadResult* This,OperationResultCode *retval) {
+    return This->lpVtbl->get_ResultCode(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateDownloadResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDownloadProgress interface
+ */
+#ifndef __IDownloadProgress_INTERFACE_DEFINED__
+#define __IDownloadProgress_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDownloadProgress, 0xd31a5bac, 0xf719, 0x4178, 0x9d,0xbb, 0x5e,0x2c,0xb4,0x7f,0xd1,0x8a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d31a5bac-f719-4178-9dbb-5e2cb47fd18a")
+IDownloadProgress : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdateBytesDownloaded(
+        DECIMAL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdateBytesToDownload(
+        DECIMAL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdateIndex(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_PercentComplete(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_TotalBytesDownloaded(
+        DECIMAL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_TotalBytesToDownload(
+        DECIMAL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetUpdateResult(
+        LONG updateIndex,
+        IUpdateDownloadResult **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdateDownloadPhase(
+        DownloadPhase *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdatePercentComplete(
+        LONG *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDownloadProgress, 0xd31a5bac, 0xf719, 0x4178, 0x9d,0xbb, 0x5e,0x2c,0xb4,0x7f,0xd1,0x8a)
+#endif
+#else
+typedef struct IDownloadProgressVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDownloadProgress *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDownloadProgress *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDownloadProgress *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IDownloadProgress *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IDownloadProgress *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IDownloadProgress *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IDownloadProgress *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IDownloadProgress methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_CurrentUpdateBytesDownloaded)(
+        IDownloadProgress *This,
+        DECIMAL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_CurrentUpdateBytesToDownload)(
+        IDownloadProgress *This,
+        DECIMAL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_CurrentUpdateIndex)(
+        IDownloadProgress *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_PercentComplete)(
+        IDownloadProgress *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_TotalBytesDownloaded)(
+        IDownloadProgress *This,
+        DECIMAL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_TotalBytesToDownload)(
+        IDownloadProgress *This,
+        DECIMAL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *GetUpdateResult)(
+        IDownloadProgress *This,
+        LONG updateIndex,
+        IUpdateDownloadResult **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_CurrentUpdateDownloadPhase)(
+        IDownloadProgress *This,
+        DownloadPhase *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_CurrentUpdatePercentComplete)(
+        IDownloadProgress *This,
+        LONG *retval);
+
+    END_INTERFACE
+} IDownloadProgressVtbl;
+
+interface IDownloadProgress {
+    CONST_VTBL IDownloadProgressVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDownloadProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDownloadProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDownloadProgress_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IDownloadProgress_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IDownloadProgress_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IDownloadProgress_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IDownloadProgress_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IDownloadProgress methods ***/
+#define IDownloadProgress_get_CurrentUpdateBytesDownloaded(This,retval) (This)->lpVtbl->get_CurrentUpdateBytesDownloaded(This,retval)
+#define IDownloadProgress_get_CurrentUpdateBytesToDownload(This,retval) (This)->lpVtbl->get_CurrentUpdateBytesToDownload(This,retval)
+#define IDownloadProgress_get_CurrentUpdateIndex(This,retval) (This)->lpVtbl->get_CurrentUpdateIndex(This,retval)
+#define IDownloadProgress_get_PercentComplete(This,retval) (This)->lpVtbl->get_PercentComplete(This,retval)
+#define IDownloadProgress_get_TotalBytesDownloaded(This,retval) (This)->lpVtbl->get_TotalBytesDownloaded(This,retval)
+#define IDownloadProgress_get_TotalBytesToDownload(This,retval) (This)->lpVtbl->get_TotalBytesToDownload(This,retval)
+#define IDownloadProgress_GetUpdateResult(This,updateIndex,retval) (This)->lpVtbl->GetUpdateResult(This,updateIndex,retval)
+#define IDownloadProgress_get_CurrentUpdateDownloadPhase(This,retval) (This)->lpVtbl->get_CurrentUpdateDownloadPhase(This,retval)
+#define IDownloadProgress_get_CurrentUpdatePercentComplete(This,retval) (This)->lpVtbl->get_CurrentUpdatePercentComplete(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDownloadProgress_QueryInterface(IDownloadProgress* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDownloadProgress_AddRef(IDownloadProgress* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDownloadProgress_Release(IDownloadProgress* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IDownloadProgress_GetTypeInfoCount(IDownloadProgress* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IDownloadProgress_GetTypeInfo(IDownloadProgress* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IDownloadProgress_GetIDsOfNames(IDownloadProgress* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IDownloadProgress_Invoke(IDownloadProgress* 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);
+}
+/*** IDownloadProgress methods ***/
+static FORCEINLINE HRESULT IDownloadProgress_get_CurrentUpdateBytesDownloaded(IDownloadProgress* This,DECIMAL *retval) {
+    return This->lpVtbl->get_CurrentUpdateBytesDownloaded(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadProgress_get_CurrentUpdateBytesToDownload(IDownloadProgress* This,DECIMAL *retval) {
+    return This->lpVtbl->get_CurrentUpdateBytesToDownload(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadProgress_get_CurrentUpdateIndex(IDownloadProgress* This,LONG *retval) {
+    return This->lpVtbl->get_CurrentUpdateIndex(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadProgress_get_PercentComplete(IDownloadProgress* This,LONG *retval) {
+    return This->lpVtbl->get_PercentComplete(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadProgress_get_TotalBytesDownloaded(IDownloadProgress* This,DECIMAL *retval) {
+    return This->lpVtbl->get_TotalBytesDownloaded(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadProgress_get_TotalBytesToDownload(IDownloadProgress* This,DECIMAL *retval) {
+    return This->lpVtbl->get_TotalBytesToDownload(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadProgress_GetUpdateResult(IDownloadProgress* This,LONG updateIndex,IUpdateDownloadResult **retval) {
+    return This->lpVtbl->GetUpdateResult(This,updateIndex,retval);
+}
+static FORCEINLINE HRESULT IDownloadProgress_get_CurrentUpdateDownloadPhase(IDownloadProgress* This,DownloadPhase *retval) {
+    return This->lpVtbl->get_CurrentUpdateDownloadPhase(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadProgress_get_CurrentUpdatePercentComplete(IDownloadProgress* This,LONG *retval) {
+    return This->lpVtbl->get_CurrentUpdatePercentComplete(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDownloadProgress_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDownloadJob interface
+ */
+#ifndef __IDownloadJob_INTERFACE_DEFINED__
+#define __IDownloadJob_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDownloadJob, 0xc574de85, 0x7358, 0x43f6, 0xaa,0xe8, 0x86,0x97,0xe6,0x2d,0x8b,0xa7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c574de85-7358-43f6-aae8-8697e62d8ba7")
+IDownloadJob : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_AsyncState(
+        VARIANT *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsCompleted(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Updates(
+        IUpdateCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CleanUp(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetProgress(
+        IDownloadProgress **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RequestAbort(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDownloadJob, 0xc574de85, 0x7358, 0x43f6, 0xaa,0xe8, 0x86,0x97,0xe6,0x2d,0x8b,0xa7)
+#endif
+#else
+typedef struct IDownloadJobVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDownloadJob *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDownloadJob *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDownloadJob *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IDownloadJob *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IDownloadJob *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IDownloadJob *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IDownloadJob *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IDownloadJob methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_AsyncState)(
+        IDownloadJob *This,
+        VARIANT *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsCompleted)(
+        IDownloadJob *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Updates)(
+        IDownloadJob *This,
+        IUpdateCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *CleanUp)(
+        IDownloadJob *This);
+
+    HRESULT (STDMETHODCALLTYPE *GetProgress)(
+        IDownloadJob *This,
+        IDownloadProgress **retval);
+
+    HRESULT (STDMETHODCALLTYPE *RequestAbort)(
+        IDownloadJob *This);
+
+    END_INTERFACE
+} IDownloadJobVtbl;
+
+interface IDownloadJob {
+    CONST_VTBL IDownloadJobVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDownloadJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDownloadJob_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDownloadJob_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IDownloadJob_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IDownloadJob_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IDownloadJob_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IDownloadJob_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IDownloadJob methods ***/
+#define IDownloadJob_get_AsyncState(This,retval) (This)->lpVtbl->get_AsyncState(This,retval)
+#define IDownloadJob_get_IsCompleted(This,retval) (This)->lpVtbl->get_IsCompleted(This,retval)
+#define IDownloadJob_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
+#define IDownloadJob_CleanUp(This) (This)->lpVtbl->CleanUp(This)
+#define IDownloadJob_GetProgress(This,retval) (This)->lpVtbl->GetProgress(This,retval)
+#define IDownloadJob_RequestAbort(This) (This)->lpVtbl->RequestAbort(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDownloadJob_QueryInterface(IDownloadJob* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDownloadJob_AddRef(IDownloadJob* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDownloadJob_Release(IDownloadJob* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IDownloadJob_GetTypeInfoCount(IDownloadJob* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IDownloadJob_GetTypeInfo(IDownloadJob* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IDownloadJob_GetIDsOfNames(IDownloadJob* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IDownloadJob_Invoke(IDownloadJob* 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);
+}
+/*** IDownloadJob methods ***/
+static FORCEINLINE HRESULT IDownloadJob_get_AsyncState(IDownloadJob* This,VARIANT *retval) {
+    return This->lpVtbl->get_AsyncState(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadJob_get_IsCompleted(IDownloadJob* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsCompleted(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadJob_get_Updates(IDownloadJob* This,IUpdateCollection **retval) {
+    return This->lpVtbl->get_Updates(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadJob_CleanUp(IDownloadJob* This) {
+    return This->lpVtbl->CleanUp(This);
+}
+static FORCEINLINE HRESULT IDownloadJob_GetProgress(IDownloadJob* This,IDownloadProgress **retval) {
+    return This->lpVtbl->GetProgress(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadJob_RequestAbort(IDownloadJob* This) {
+    return This->lpVtbl->RequestAbort(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDownloadJob_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDownloadResult interface
+ */
+#ifndef __IDownloadResult_INTERFACE_DEFINED__
+#define __IDownloadResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDownloadResult, 0xdaa4fdd0, 0x4727, 0x4dbe, 0xa1,0xe7, 0x74,0x5d,0xca,0x31,0x71,0x44);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("daa4fdd0-4727-4dbe-a1e7-745dca317144")
+IDownloadResult : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_HResult(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
+        OperationResultCode *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetUpdateResult(
+        LONG updateIndex,
+        IUpdateDownloadResult **retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDownloadResult, 0xdaa4fdd0, 0x4727, 0x4dbe, 0xa1,0xe7, 0x74,0x5d,0xca,0x31,0x71,0x44)
+#endif
+#else
+typedef struct IDownloadResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDownloadResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDownloadResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDownloadResult *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IDownloadResult *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IDownloadResult *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IDownloadResult *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IDownloadResult *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IDownloadResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_HResult)(
+        IDownloadResult *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
+        IDownloadResult *This,
+        OperationResultCode *retval);
+
+    HRESULT (STDMETHODCALLTYPE *GetUpdateResult)(
+        IDownloadResult *This,
+        LONG updateIndex,
+        IUpdateDownloadResult **retval);
+
+    END_INTERFACE
+} IDownloadResultVtbl;
+
+interface IDownloadResult {
+    CONST_VTBL IDownloadResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDownloadResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDownloadResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDownloadResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IDownloadResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IDownloadResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IDownloadResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IDownloadResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IDownloadResult methods ***/
+#define IDownloadResult_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
+#define IDownloadResult_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
+#define IDownloadResult_GetUpdateResult(This,updateIndex,retval) (This)->lpVtbl->GetUpdateResult(This,updateIndex,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IDownloadResult_QueryInterface(IDownloadResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IDownloadResult_AddRef(IDownloadResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IDownloadResult_Release(IDownloadResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IDownloadResult_GetTypeInfoCount(IDownloadResult* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IDownloadResult_GetTypeInfo(IDownloadResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IDownloadResult_GetIDsOfNames(IDownloadResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IDownloadResult_Invoke(IDownloadResult* 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);
+}
+/*** IDownloadResult methods ***/
+static FORCEINLINE HRESULT IDownloadResult_get_HResult(IDownloadResult* This,LONG *retval) {
+    return This->lpVtbl->get_HResult(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadResult_get_ResultCode(IDownloadResult* This,OperationResultCode *retval) {
+    return This->lpVtbl->get_ResultCode(This,retval);
+}
+static FORCEINLINE HRESULT IDownloadResult_GetUpdateResult(IDownloadResult* This,LONG updateIndex,IUpdateDownloadResult **retval) {
+    return This->lpVtbl->GetUpdateResult(This,updateIndex,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDownloadResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateDownloader interface
+ */
+#ifndef __IUpdateDownloader_INTERFACE_DEFINED__
+#define __IUpdateDownloader_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateDownloader, 0x68f1c6f9, 0x7ecc, 0x4666, 0xa4,0x64, 0x24,0x7f,0xe1,0x24,0x96,0xc3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("68f1c6f9-7ecc-4666-a464-247fe12496c3")
+IUpdateDownloader : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_ClientApplicationID(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ClientApplicationID(
+        BSTR value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsForced(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_IsForced(
+        VARIANT_BOOL value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Priority(
+        DownloadPriority *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Priority(
+        DownloadPriority value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Updates(
+        IUpdateCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Updates(
+        IUpdateCollection *value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginDownload(
+        IUnknown *onProgressChanged,
+        IUnknown *onCompleted,
+        VARIANT state,
+        IDownloadJob **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Download(
+        IDownloadResult **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndDownload(
+        IDownloadJob *value,
+        IDownloadResult **retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateDownloader, 0x68f1c6f9, 0x7ecc, 0x4666, 0xa4,0x64, 0x24,0x7f,0xe1,0x24,0x96,0xc3)
+#endif
+#else
+typedef struct IUpdateDownloaderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateDownloader *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateDownloader *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateDownloader *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateDownloader *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateDownloader *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateDownloader *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateDownloader *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateDownloader methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ClientApplicationID)(
+        IUpdateDownloader *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_ClientApplicationID)(
+        IUpdateDownloader *This,
+        BSTR value);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsForced)(
+        IUpdateDownloader *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_IsForced)(
+        IUpdateDownloader *This,
+        VARIANT_BOOL value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Priority)(
+        IUpdateDownloader *This,
+        DownloadPriority *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_Priority)(
+        IUpdateDownloader *This,
+        DownloadPriority value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Updates)(
+        IUpdateDownloader *This,
+        IUpdateCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_Updates)(
+        IUpdateDownloader *This,
+        IUpdateCollection *value);
+
+    HRESULT (STDMETHODCALLTYPE *BeginDownload)(
+        IUpdateDownloader *This,
+        IUnknown *onProgressChanged,
+        IUnknown *onCompleted,
+        VARIANT state,
+        IDownloadJob **retval);
+
+    HRESULT (STDMETHODCALLTYPE *Download)(
+        IUpdateDownloader *This,
+        IDownloadResult **retval);
+
+    HRESULT (STDMETHODCALLTYPE *EndDownload)(
+        IUpdateDownloader *This,
+        IDownloadJob *value,
+        IDownloadResult **retval);
+
+    END_INTERFACE
+} IUpdateDownloaderVtbl;
+
+interface IUpdateDownloader {
+    CONST_VTBL IUpdateDownloaderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateDownloader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateDownloader_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateDownloader_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateDownloader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateDownloader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateDownloader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateDownloader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateDownloader methods ***/
+#define IUpdateDownloader_get_ClientApplicationID(This,retval) (This)->lpVtbl->get_ClientApplicationID(This,retval)
+#define IUpdateDownloader_put_ClientApplicationID(This,value) (This)->lpVtbl->put_ClientApplicationID(This,value)
+#define IUpdateDownloader_get_IsForced(This,retval) (This)->lpVtbl->get_IsForced(This,retval)
+#define IUpdateDownloader_put_IsForced(This,value) (This)->lpVtbl->put_IsForced(This,value)
+#define IUpdateDownloader_get_Priority(This,retval) (This)->lpVtbl->get_Priority(This,retval)
+#define IUpdateDownloader_put_Priority(This,value) (This)->lpVtbl->put_Priority(This,value)
+#define IUpdateDownloader_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
+#define IUpdateDownloader_put_Updates(This,value) (This)->lpVtbl->put_Updates(This,value)
+#define IUpdateDownloader_BeginDownload(This,onProgressChanged,onCompleted,state,retval) (This)->lpVtbl->BeginDownload(This,onProgressChanged,onCompleted,state,retval)
+#define IUpdateDownloader_Download(This,retval) (This)->lpVtbl->Download(This,retval)
+#define IUpdateDownloader_EndDownload(This,value,retval) (This)->lpVtbl->EndDownload(This,value,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateDownloader_QueryInterface(IUpdateDownloader* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateDownloader_AddRef(IUpdateDownloader* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateDownloader_Release(IUpdateDownloader* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateDownloader_GetTypeInfoCount(IUpdateDownloader* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_GetTypeInfo(IUpdateDownloader* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_GetIDsOfNames(IUpdateDownloader* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_Invoke(IUpdateDownloader* 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);
+}
+/*** IUpdateDownloader methods ***/
+static FORCEINLINE HRESULT IUpdateDownloader_get_ClientApplicationID(IUpdateDownloader* This,BSTR *retval) {
+    return This->lpVtbl->get_ClientApplicationID(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_put_ClientApplicationID(IUpdateDownloader* This,BSTR value) {
+    return This->lpVtbl->put_ClientApplicationID(This,value);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_get_IsForced(IUpdateDownloader* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsForced(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_put_IsForced(IUpdateDownloader* This,VARIANT_BOOL value) {
+    return This->lpVtbl->put_IsForced(This,value);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_get_Priority(IUpdateDownloader* This,DownloadPriority *retval) {
+    return This->lpVtbl->get_Priority(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_put_Priority(IUpdateDownloader* This,DownloadPriority value) {
+    return This->lpVtbl->put_Priority(This,value);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_get_Updates(IUpdateDownloader* This,IUpdateCollection **retval) {
+    return This->lpVtbl->get_Updates(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_put_Updates(IUpdateDownloader* This,IUpdateCollection *value) {
+    return This->lpVtbl->put_Updates(This,value);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_BeginDownload(IUpdateDownloader* This,IUnknown *onProgressChanged,IUnknown *onCompleted,VARIANT state,IDownloadJob **retval) {
+    return This->lpVtbl->BeginDownload(This,onProgressChanged,onCompleted,state,retval);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_Download(IUpdateDownloader* This,IDownloadResult **retval) {
+    return This->lpVtbl->Download(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateDownloader_EndDownload(IUpdateDownloader* This,IDownloadJob *value,IDownloadResult **retval) {
+    return This->lpVtbl->EndDownload(This,value,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateDownloader_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateInstallationResult interface
+ */
+#ifndef __IUpdateInstallationResult_INTERFACE_DEFINED__
+#define __IUpdateInstallationResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateInstallationResult, 0xd940f0f8, 0x3cbb, 0x4fd0, 0x99,0x3f, 0x47,0x1e,0x7f,0x23,0x28,0xad);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("d940f0f8-3cbb-4fd0-993f-471e7f2328ad")
+IUpdateInstallationResult : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_HResult(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RebootRequired(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
+        OperationResultCode *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateInstallationResult, 0xd940f0f8, 0x3cbb, 0x4fd0, 0x99,0x3f, 0x47,0x1e,0x7f,0x23,0x28,0xad)
+#endif
+#else
+typedef struct IUpdateInstallationResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateInstallationResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateInstallationResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateInstallationResult *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateInstallationResult *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateInstallationResult *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateInstallationResult *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateInstallationResult *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateInstallationResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_HResult)(
+        IUpdateInstallationResult *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_RebootRequired)(
+        IUpdateInstallationResult *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
+        IUpdateInstallationResult *This,
+        OperationResultCode *retval);
+
+    END_INTERFACE
+} IUpdateInstallationResultVtbl;
+
+interface IUpdateInstallationResult {
+    CONST_VTBL IUpdateInstallationResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateInstallationResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateInstallationResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateInstallationResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateInstallationResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateInstallationResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateInstallationResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateInstallationResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateInstallationResult methods ***/
+#define IUpdateInstallationResult_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
+#define IUpdateInstallationResult_get_RebootRequired(This,retval) (This)->lpVtbl->get_RebootRequired(This,retval)
+#define IUpdateInstallationResult_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateInstallationResult_QueryInterface(IUpdateInstallationResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateInstallationResult_AddRef(IUpdateInstallationResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateInstallationResult_Release(IUpdateInstallationResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateInstallationResult_GetTypeInfoCount(IUpdateInstallationResult* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateInstallationResult_GetTypeInfo(IUpdateInstallationResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateInstallationResult_GetIDsOfNames(IUpdateInstallationResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateInstallationResult_Invoke(IUpdateInstallationResult* 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);
+}
+/*** IUpdateInstallationResult methods ***/
+static FORCEINLINE HRESULT IUpdateInstallationResult_get_HResult(IUpdateInstallationResult* This,LONG *retval) {
+    return This->lpVtbl->get_HResult(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstallationResult_get_RebootRequired(IUpdateInstallationResult* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_RebootRequired(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstallationResult_get_ResultCode(IUpdateInstallationResult* This,OperationResultCode *retval) {
+    return This->lpVtbl->get_ResultCode(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateInstallationResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IInstallationProgress interface
+ */
+#ifndef __IInstallationProgress_INTERFACE_DEFINED__
+#define __IInstallationProgress_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IInstallationProgress, 0x345c8244, 0x43a3, 0x4e32, 0xa3,0x68, 0x65,0xf0,0x73,0xb7,0x6f,0x36);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("345c8244-43a3-4e32-a368-65f073b76f36")
+IInstallationProgress : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdateIndex(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdatePercentComplete(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_PercentComplete(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetUpdateResult(
+        LONG updateIndex,
+        IUpdateInstallationResult **retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IInstallationProgress, 0x345c8244, 0x43a3, 0x4e32, 0xa3,0x68, 0x65,0xf0,0x73,0xb7,0x6f,0x36)
+#endif
+#else
+typedef struct IInstallationProgressVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IInstallationProgress *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IInstallationProgress *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IInstallationProgress *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IInstallationProgress *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IInstallationProgress *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IInstallationProgress *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IInstallationProgress *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IInstallationProgress methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_CurrentUpdateIndex)(
+        IInstallationProgress *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_CurrentUpdatePercentComplete)(
+        IInstallationProgress *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_PercentComplete)(
+        IInstallationProgress *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *GetUpdateResult)(
+        IInstallationProgress *This,
+        LONG updateIndex,
+        IUpdateInstallationResult **retval);
+
+    END_INTERFACE
+} IInstallationProgressVtbl;
+
+interface IInstallationProgress {
+    CONST_VTBL IInstallationProgressVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IInstallationProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IInstallationProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IInstallationProgress_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IInstallationProgress_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IInstallationProgress_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IInstallationProgress_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IInstallationProgress_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IInstallationProgress methods ***/
+#define IInstallationProgress_get_CurrentUpdateIndex(This,retval) (This)->lpVtbl->get_CurrentUpdateIndex(This,retval)
+#define IInstallationProgress_get_CurrentUpdatePercentComplete(This,retval) (This)->lpVtbl->get_CurrentUpdatePercentComplete(This,retval)
+#define IInstallationProgress_get_PercentComplete(This,retval) (This)->lpVtbl->get_PercentComplete(This,retval)
+#define IInstallationProgress_GetUpdateResult(This,updateIndex,retval) (This)->lpVtbl->GetUpdateResult(This,updateIndex,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IInstallationProgress_QueryInterface(IInstallationProgress* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IInstallationProgress_AddRef(IInstallationProgress* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IInstallationProgress_Release(IInstallationProgress* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IInstallationProgress_GetTypeInfoCount(IInstallationProgress* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IInstallationProgress_GetTypeInfo(IInstallationProgress* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IInstallationProgress_GetIDsOfNames(IInstallationProgress* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IInstallationProgress_Invoke(IInstallationProgress* 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);
+}
+/*** IInstallationProgress methods ***/
+static FORCEINLINE HRESULT IInstallationProgress_get_CurrentUpdateIndex(IInstallationProgress* This,LONG *retval) {
+    return This->lpVtbl->get_CurrentUpdateIndex(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationProgress_get_CurrentUpdatePercentComplete(IInstallationProgress* This,LONG *retval) {
+    return This->lpVtbl->get_CurrentUpdatePercentComplete(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationProgress_get_PercentComplete(IInstallationProgress* This,LONG *retval) {
+    return This->lpVtbl->get_PercentComplete(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationProgress_GetUpdateResult(IInstallationProgress* This,LONG updateIndex,IUpdateInstallationResult **retval) {
+    return This->lpVtbl->GetUpdateResult(This,updateIndex,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IInstallationProgress_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IInstallationJob interface
+ */
+#ifndef __IInstallationJob_INTERFACE_DEFINED__
+#define __IInstallationJob_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IInstallationJob, 0x5c209f0b, 0xbad5, 0x432a, 0x95,0x56, 0x46,0x99,0xbe,0xd2,0x63,0x8a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5c209f0b-bad5-432a-9556-4699bed2638a")
+IInstallationJob : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_AsyncState(
+        VARIANT *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsCompleted(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Updates(
+        IUpdateCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CleanUp(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetProgress(
+        IInstallationProgress **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RequestAbort(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IInstallationJob, 0x5c209f0b, 0xbad5, 0x432a, 0x95,0x56, 0x46,0x99,0xbe,0xd2,0x63,0x8a)
+#endif
+#else
+typedef struct IInstallationJobVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IInstallationJob *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IInstallationJob *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IInstallationJob *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IInstallationJob *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IInstallationJob *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IInstallationJob *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IInstallationJob *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IInstallationJob methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_AsyncState)(
+        IInstallationJob *This,
+        VARIANT *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsCompleted)(
+        IInstallationJob *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Updates)(
+        IInstallationJob *This,
+        IUpdateCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *CleanUp)(
+        IInstallationJob *This);
+
+    HRESULT (STDMETHODCALLTYPE *GetProgress)(
+        IInstallationJob *This,
+        IInstallationProgress **retval);
+
+    HRESULT (STDMETHODCALLTYPE *RequestAbort)(
+        IInstallationJob *This);
+
+    END_INTERFACE
+} IInstallationJobVtbl;
+
+interface IInstallationJob {
+    CONST_VTBL IInstallationJobVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IInstallationJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IInstallationJob_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IInstallationJob_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IInstallationJob_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IInstallationJob_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IInstallationJob_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IInstallationJob_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IInstallationJob methods ***/
+#define IInstallationJob_get_AsyncState(This,retval) (This)->lpVtbl->get_AsyncState(This,retval)
+#define IInstallationJob_get_IsCompleted(This,retval) (This)->lpVtbl->get_IsCompleted(This,retval)
+#define IInstallationJob_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
+#define IInstallationJob_CleanUp(This) (This)->lpVtbl->CleanUp(This)
+#define IInstallationJob_GetProgress(This,retval) (This)->lpVtbl->GetProgress(This,retval)
+#define IInstallationJob_RequestAbort(This) (This)->lpVtbl->RequestAbort(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IInstallationJob_QueryInterface(IInstallationJob* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IInstallationJob_AddRef(IInstallationJob* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IInstallationJob_Release(IInstallationJob* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IInstallationJob_GetTypeInfoCount(IInstallationJob* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IInstallationJob_GetTypeInfo(IInstallationJob* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IInstallationJob_GetIDsOfNames(IInstallationJob* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IInstallationJob_Invoke(IInstallationJob* 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);
+}
+/*** IInstallationJob methods ***/
+static FORCEINLINE HRESULT IInstallationJob_get_AsyncState(IInstallationJob* This,VARIANT *retval) {
+    return This->lpVtbl->get_AsyncState(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationJob_get_IsCompleted(IInstallationJob* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsCompleted(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationJob_get_Updates(IInstallationJob* This,IUpdateCollection **retval) {
+    return This->lpVtbl->get_Updates(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationJob_CleanUp(IInstallationJob* This) {
+    return This->lpVtbl->CleanUp(This);
+}
+static FORCEINLINE HRESULT IInstallationJob_GetProgress(IInstallationJob* This,IInstallationProgress **retval) {
+    return This->lpVtbl->GetProgress(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationJob_RequestAbort(IInstallationJob* This) {
+    return This->lpVtbl->RequestAbort(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IInstallationJob_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IInstallationResult interface
+ */
+#ifndef __IInstallationResult_INTERFACE_DEFINED__
+#define __IInstallationResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IInstallationResult, 0xa43c56d6, 0x7451, 0x48d4, 0xaf,0x96, 0xb6,0xcd,0x2d,0x0d,0x9b,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a43c56d6-7451-48d4-af96-b6cd2d0d9b7a")
+IInstallationResult : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_HResult(
+        LONG *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RebootRequired(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
+        OperationResultCode *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetUpdateResult(
+        LONG updateIndex,
+        IUpdateInstallationResult **retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IInstallationResult, 0xa43c56d6, 0x7451, 0x48d4, 0xaf,0x96, 0xb6,0xcd,0x2d,0x0d,0x9b,0x7a)
+#endif
+#else
+typedef struct IInstallationResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IInstallationResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IInstallationResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IInstallationResult *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IInstallationResult *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IInstallationResult *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IInstallationResult *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IInstallationResult *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IInstallationResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_HResult)(
+        IInstallationResult *This,
+        LONG *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_RebootRequired)(
+        IInstallationResult *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
+        IInstallationResult *This,
+        OperationResultCode *retval);
+
+    HRESULT (STDMETHODCALLTYPE *GetUpdateResult)(
+        IInstallationResult *This,
+        LONG updateIndex,
+        IUpdateInstallationResult **retval);
+
+    END_INTERFACE
+} IInstallationResultVtbl;
+
+interface IInstallationResult {
+    CONST_VTBL IInstallationResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IInstallationResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IInstallationResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IInstallationResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IInstallationResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IInstallationResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IInstallationResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IInstallationResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IInstallationResult methods ***/
+#define IInstallationResult_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
+#define IInstallationResult_get_RebootRequired(This,retval) (This)->lpVtbl->get_RebootRequired(This,retval)
+#define IInstallationResult_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
+#define IInstallationResult_GetUpdateResult(This,updateIndex,retval) (This)->lpVtbl->GetUpdateResult(This,updateIndex,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IInstallationResult_QueryInterface(IInstallationResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IInstallationResult_AddRef(IInstallationResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IInstallationResult_Release(IInstallationResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IInstallationResult_GetTypeInfoCount(IInstallationResult* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IInstallationResult_GetTypeInfo(IInstallationResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IInstallationResult_GetIDsOfNames(IInstallationResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IInstallationResult_Invoke(IInstallationResult* 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);
+}
+/*** IInstallationResult methods ***/
+static FORCEINLINE HRESULT IInstallationResult_get_HResult(IInstallationResult* This,LONG *retval) {
+    return This->lpVtbl->get_HResult(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationResult_get_RebootRequired(IInstallationResult* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_RebootRequired(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationResult_get_ResultCode(IInstallationResult* This,OperationResultCode *retval) {
+    return This->lpVtbl->get_ResultCode(This,retval);
+}
+static FORCEINLINE HRESULT IInstallationResult_GetUpdateResult(IInstallationResult* This,LONG updateIndex,IUpdateInstallationResult **retval) {
+    return This->lpVtbl->GetUpdateResult(This,updateIndex,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IInstallationResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IUpdateInstaller interface
+ */
+#ifndef __IUpdateInstaller_INTERFACE_DEFINED__
+#define __IUpdateInstaller_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IUpdateInstaller, 0x7b929c68, 0xccdc, 0x4226, 0x96,0xb1, 0x87,0x24,0x60,0x0b,0x54,0xc2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7b929c68-ccdc-4226-96b1-8724600b54c2")
+IUpdateInstaller : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_ClientApplicationID(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ClientApplicationID(
+        BSTR value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsForced(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_IsForced(
+        VARIANT_BOOL value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ParentHwnd(
+        HWND *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ParentHwnd(
+        HWND value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_ParentWindow(
+        IUnknown *value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ParentWindow(
+        IUnknown **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Updates(
+        IUpdateCollection **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_Updates(
+        IUpdateCollection *value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginInstall(
+        IUnknown *onProgressChanged,
+        IUnknown *onCompleted,
+        VARIANT state,
+        IInstallationJob **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE BeginUninstall(
+        IUnknown *onProgressChanged,
+        IUnknown *onCompleted,
+        VARIANT state,
+        IInstallationJob **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndInstall(
+        IInstallationJob *value,
+        IInstallationResult **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EndUninstall(
+        IInstallationJob *value,
+        IInstallationResult **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Install(
+        IInstallationResult **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RunWizard(
+        BSTR dialogTitle,
+        IInstallationResult **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_IsBusy(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Uninstall(
+        IInstallationResult **retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_AllowSourcePrompts(
+        VARIANT_BOOL *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE put_AllowSourcePrompts(
+        VARIANT_BOOL value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RebootRequiredBeforeInstallation(
+        VARIANT_BOOL *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IUpdateInstaller, 0x7b929c68, 0xccdc, 0x4226, 0x96,0xb1, 0x87,0x24,0x60,0x0b,0x54,0xc2)
+#endif
+#else
+typedef struct IUpdateInstallerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IUpdateInstaller *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IUpdateInstaller *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IUpdateInstaller *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        IUpdateInstaller *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        IUpdateInstaller *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        IUpdateInstaller *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        IUpdateInstaller *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** IUpdateInstaller methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ClientApplicationID)(
+        IUpdateInstaller *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_ClientApplicationID)(
+        IUpdateInstaller *This,
+        BSTR value);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsForced)(
+        IUpdateInstaller *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_IsForced)(
+        IUpdateInstaller *This,
+        VARIANT_BOOL value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ParentHwnd)(
+        IUpdateInstaller *This,
+        HWND *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_ParentHwnd)(
+        IUpdateInstaller *This,
+        HWND value);
+
+    HRESULT (STDMETHODCALLTYPE *put_ParentWindow)(
+        IUpdateInstaller *This,
+        IUnknown *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ParentWindow)(
+        IUpdateInstaller *This,
+        IUnknown **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_Updates)(
+        IUpdateInstaller *This,
+        IUpdateCollection **retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_Updates)(
+        IUpdateInstaller *This,
+        IUpdateCollection *value);
+
+    HRESULT (STDMETHODCALLTYPE *BeginInstall)(
+        IUpdateInstaller *This,
+        IUnknown *onProgressChanged,
+        IUnknown *onCompleted,
+        VARIANT state,
+        IInstallationJob **retval);
+
+    HRESULT (STDMETHODCALLTYPE *BeginUninstall)(
+        IUpdateInstaller *This,
+        IUnknown *onProgressChanged,
+        IUnknown *onCompleted,
+        VARIANT state,
+        IInstallationJob **retval);
+
+    HRESULT (STDMETHODCALLTYPE *EndInstall)(
+        IUpdateInstaller *This,
+        IInstallationJob *value,
+        IInstallationResult **retval);
+
+    HRESULT (STDMETHODCALLTYPE *EndUninstall)(
+        IUpdateInstaller *This,
+        IInstallationJob *value,
+        IInstallationResult **retval);
+
+    HRESULT (STDMETHODCALLTYPE *Install)(
+        IUpdateInstaller *This,
+        IInstallationResult **retval);
+
+    HRESULT (STDMETHODCALLTYPE *RunWizard)(
+        IUpdateInstaller *This,
+        BSTR dialogTitle,
+        IInstallationResult **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsBusy)(
+        IUpdateInstaller *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *Uninstall)(
+        IUpdateInstaller *This,
+        IInstallationResult **retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_AllowSourcePrompts)(
+        IUpdateInstaller *This,
+        VARIANT_BOOL *retval);
+
+    HRESULT (STDMETHODCALLTYPE *put_AllowSourcePrompts)(
+        IUpdateInstaller *This,
+        VARIANT_BOOL value);
+
+    HRESULT (STDMETHODCALLTYPE *get_RebootRequiredBeforeInstallation)(
+        IUpdateInstaller *This,
+        VARIANT_BOOL *retval);
+
+    END_INTERFACE
+} IUpdateInstallerVtbl;
+
+interface IUpdateInstaller {
+    CONST_VTBL IUpdateInstallerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IUpdateInstaller_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IUpdateInstaller_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IUpdateInstaller_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define IUpdateInstaller_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define IUpdateInstaller_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define IUpdateInstaller_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define IUpdateInstaller_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** IUpdateInstaller methods ***/
+#define IUpdateInstaller_get_ClientApplicationID(This,retval) (This)->lpVtbl->get_ClientApplicationID(This,retval)
+#define IUpdateInstaller_put_ClientApplicationID(This,value) (This)->lpVtbl->put_ClientApplicationID(This,value)
+#define IUpdateInstaller_get_IsForced(This,retval) (This)->lpVtbl->get_IsForced(This,retval)
+#define IUpdateInstaller_put_IsForced(This,value) (This)->lpVtbl->put_IsForced(This,value)
+#define IUpdateInstaller_get_ParentHwnd(This,retval) (This)->lpVtbl->get_ParentHwnd(This,retval)
+#define IUpdateInstaller_put_ParentHwnd(This,value) (This)->lpVtbl->put_ParentHwnd(This,value)
+#define IUpdateInstaller_put_ParentWindow(This,value) (This)->lpVtbl->put_ParentWindow(This,value)
+#define IUpdateInstaller_get_ParentWindow(This,retval) (This)->lpVtbl->get_ParentWindow(This,retval)
+#define IUpdateInstaller_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
+#define IUpdateInstaller_put_Updates(This,value) (This)->lpVtbl->put_Updates(This,value)
+#define IUpdateInstaller_BeginInstall(This,onProgressChanged,onCompleted,state,retval) (This)->lpVtbl->BeginInstall(This,onProgressChanged,onCompleted,state,retval)
+#define IUpdateInstaller_BeginUninstall(This,onProgressChanged,onCompleted,state,retval) (This)->lpVtbl->BeginUninstall(This,onProgressChanged,onCompleted,state,retval)
+#define IUpdateInstaller_EndInstall(This,value,retval) (This)->lpVtbl->EndInstall(This,value,retval)
+#define IUpdateInstaller_EndUninstall(This,value,retval) (This)->lpVtbl->EndUninstall(This,value,retval)
+#define IUpdateInstaller_Install(This,retval) (This)->lpVtbl->Install(This,retval)
+#define IUpdateInstaller_RunWizard(This,dialogTitle,retval) (This)->lpVtbl->RunWizard(This,dialogTitle,retval)
+#define IUpdateInstaller_get_IsBusy(This,retval) (This)->lpVtbl->get_IsBusy(This,retval)
+#define IUpdateInstaller_Uninstall(This,retval) (This)->lpVtbl->Uninstall(This,retval)
+#define IUpdateInstaller_get_AllowSourcePrompts(This,retval) (This)->lpVtbl->get_AllowSourcePrompts(This,retval)
+#define IUpdateInstaller_put_AllowSourcePrompts(This,value) (This)->lpVtbl->put_AllowSourcePrompts(This,value)
+#define IUpdateInstaller_get_RebootRequiredBeforeInstallation(This,retval) (This)->lpVtbl->get_RebootRequiredBeforeInstallation(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IUpdateInstaller_QueryInterface(IUpdateInstaller* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IUpdateInstaller_AddRef(IUpdateInstaller* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IUpdateInstaller_Release(IUpdateInstaller* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT IUpdateInstaller_GetTypeInfoCount(IUpdateInstaller* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_GetTypeInfo(IUpdateInstaller* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_GetIDsOfNames(IUpdateInstaller* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_Invoke(IUpdateInstaller* 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);
+}
+/*** IUpdateInstaller methods ***/
+static FORCEINLINE HRESULT IUpdateInstaller_get_ClientApplicationID(IUpdateInstaller* This,BSTR *retval) {
+    return This->lpVtbl->get_ClientApplicationID(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_put_ClientApplicationID(IUpdateInstaller* This,BSTR value) {
+    return This->lpVtbl->put_ClientApplicationID(This,value);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_get_IsForced(IUpdateInstaller* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsForced(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_put_IsForced(IUpdateInstaller* This,VARIANT_BOOL value) {
+    return This->lpVtbl->put_IsForced(This,value);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_get_ParentHwnd(IUpdateInstaller* This,HWND *retval) {
+    return This->lpVtbl->get_ParentHwnd(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_put_ParentHwnd(IUpdateInstaller* This,HWND value) {
+    return This->lpVtbl->put_ParentHwnd(This,value);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_put_ParentWindow(IUpdateInstaller* This,IUnknown *value) {
+    return This->lpVtbl->put_ParentWindow(This,value);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_get_ParentWindow(IUpdateInstaller* This,IUnknown **retval) {
+    return This->lpVtbl->get_ParentWindow(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_get_Updates(IUpdateInstaller* This,IUpdateCollection **retval) {
+    return This->lpVtbl->get_Updates(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_put_Updates(IUpdateInstaller* This,IUpdateCollection *value) {
+    return This->lpVtbl->put_Updates(This,value);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_BeginInstall(IUpdateInstaller* This,IUnknown *onProgressChanged,IUnknown *onCompleted,VARIANT state,IInstallationJob **retval) {
+    return This->lpVtbl->BeginInstall(This,onProgressChanged,onCompleted,state,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_BeginUninstall(IUpdateInstaller* This,IUnknown *onProgressChanged,IUnknown *onCompleted,VARIANT state,IInstallationJob **retval) {
+    return This->lpVtbl->BeginUninstall(This,onProgressChanged,onCompleted,state,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_EndInstall(IUpdateInstaller* This,IInstallationJob *value,IInstallationResult **retval) {
+    return This->lpVtbl->EndInstall(This,value,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_EndUninstall(IUpdateInstaller* This,IInstallationJob *value,IInstallationResult **retval) {
+    return This->lpVtbl->EndUninstall(This,value,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_Install(IUpdateInstaller* This,IInstallationResult **retval) {
+    return This->lpVtbl->Install(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_RunWizard(IUpdateInstaller* This,BSTR dialogTitle,IInstallationResult **retval) {
+    return This->lpVtbl->RunWizard(This,dialogTitle,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_get_IsBusy(IUpdateInstaller* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_IsBusy(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_Uninstall(IUpdateInstaller* This,IInstallationResult **retval) {
+    return This->lpVtbl->Uninstall(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_get_AllowSourcePrompts(IUpdateInstaller* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_AllowSourcePrompts(This,retval);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_put_AllowSourcePrompts(IUpdateInstaller* This,VARIANT_BOOL value) {
+    return This->lpVtbl->put_AllowSourcePrompts(This,value);
+}
+static FORCEINLINE HRESULT IUpdateInstaller_get_RebootRequiredBeforeInstallation(IUpdateInstaller* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_RebootRequiredBeforeInstallation(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IUpdateInstaller_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISystemInformation interface
+ */
+#ifndef __ISystemInformation_INTERFACE_DEFINED__
+#define __ISystemInformation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISystemInformation, 0xade87bf7, 0x7b56, 0x4275, 0x8f,0xab, 0xb9,0xb0,0xe5,0x91,0x84,0x4b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ade87bf7-7b56-4275-8fab-b9b0e591844b")
+ISystemInformation : public IDispatch
+{
+    virtual HRESULT STDMETHODCALLTYPE get_OemHardwareSupportLink(
+        BSTR *retval) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_RebootRequired(
+        VARIANT_BOOL *retval) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISystemInformation, 0xade87bf7, 0x7b56, 0x4275, 0x8f,0xab, 0xb9,0xb0,0xe5,0x91,0x84,0x4b)
+#endif
+#else
+typedef struct ISystemInformationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISystemInformation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISystemInformation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISystemInformation *This);
+
+    /*** IDispatch methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
+        ISystemInformation *This,
+        UINT *pctinfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
+        ISystemInformation *This,
+        UINT iTInfo,
+        LCID lcid,
+        ITypeInfo **ppTInfo);
+
+    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
+        ISystemInformation *This,
+        REFIID riid,
+        LPOLESTR *rgszNames,
+        UINT cNames,
+        LCID lcid,
+        DISPID *rgDispId);
+
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        ISystemInformation *This,
+        DISPID dispIdMember,
+        REFIID riid,
+        LCID lcid,
+        WORD wFlags,
+        DISPPARAMS *pDispParams,
+        VARIANT *pVarResult,
+        EXCEPINFO *pExcepInfo,
+        UINT *puArgErr);
+
+    /*** ISystemInformation methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_OemHardwareSupportLink)(
+        ISystemInformation *This,
+        BSTR *retval);
+
+    HRESULT (STDMETHODCALLTYPE *get_RebootRequired)(
+        ISystemInformation *This,
+        VARIANT_BOOL *retval);
+
+    END_INTERFACE
+} ISystemInformationVtbl;
+
+interface ISystemInformation {
+    CONST_VTBL ISystemInformationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISystemInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISystemInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISystemInformation_Release(This) (This)->lpVtbl->Release(This)
+/*** IDispatch methods ***/
+#define ISystemInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
+#define ISystemInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
+#define ISystemInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
+#define ISystemInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
+/*** ISystemInformation methods ***/
+#define ISystemInformation_get_OemHardwareSupportLink(This,retval) (This)->lpVtbl->get_OemHardwareSupportLink(This,retval)
+#define ISystemInformation_get_RebootRequired(This,retval) (This)->lpVtbl->get_RebootRequired(This,retval)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISystemInformation_QueryInterface(ISystemInformation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISystemInformation_AddRef(ISystemInformation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISystemInformation_Release(ISystemInformation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDispatch methods ***/
+static FORCEINLINE HRESULT ISystemInformation_GetTypeInfoCount(ISystemInformation* This,UINT *pctinfo) {
+    return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
+}
+static FORCEINLINE HRESULT ISystemInformation_GetTypeInfo(ISystemInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
+    return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
+}
+static FORCEINLINE HRESULT ISystemInformation_GetIDsOfNames(ISystemInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
+    return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
+}
+static FORCEINLINE HRESULT ISystemInformation_Invoke(ISystemInformation* 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);
+}
+/*** ISystemInformation methods ***/
+static FORCEINLINE HRESULT ISystemInformation_get_OemHardwareSupportLink(ISystemInformation* This,BSTR *retval) {
+    return This->lpVtbl->get_OemHardwareSupportLink(This,retval);
+}
+static FORCEINLINE HRESULT ISystemInformation_get_RebootRequired(ISystemInformation* This,VARIANT_BOOL *retval) {
+    return This->lpVtbl->get_RebootRequired(This,retval);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISystemInformation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * AutomaticUpdates coclass
+ */
+
+DEFINE_GUID(CLSID_AutomaticUpdates, 0xbfe18e9c, 0x6d87, 0x4450, 0xb3,0x7c, 0xe0,0x2f,0x0b,0x37,0x38,0x03);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("bfe18e9c-6d87-4450-b37c-e02f0b373803") AutomaticUpdates;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(AutomaticUpdates, 0xbfe18e9c, 0x6d87, 0x4450, 0xb3,0x7c, 0xe0,0x2f,0x0b,0x37,0x38,0x03)
+#endif
+#endif
+
+/*****************************************************************************
+ * UpdateInstaller coclass
+ */
+
+DEFINE_GUID(CLSID_UpdateInstaller, 0xd2e0fe7f, 0xd23e, 0x48e1, 0x93,0xc0, 0x6f,0xa8,0xcc,0x34,0x64,0x74);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("d2e0fe7f-d23e-48e1-93c0-6fa8cc346474") UpdateInstaller;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(UpdateInstaller, 0xd2e0fe7f, 0xd23e, 0x48e1, 0x93,0xc0, 0x6f,0xa8,0xcc,0x34,0x64,0x74)
+#endif
+#endif
+
+/*****************************************************************************
+ * UpdateSession coclass
+ */
+
+DEFINE_GUID(CLSID_UpdateSession, 0x4cb43d7f, 0x7eee, 0x4906, 0x86,0x98, 0x60,0xda,0x1c,0x38,0xf2,0xfe);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("4cb43d7f-7eee-4906-8698-60da1c38f2fe") UpdateSession;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(UpdateSession, 0x4cb43d7f, 0x7eee, 0x4906, 0x86,0x98, 0x60,0xda,0x1c,0x38,0xf2,0xfe)
+#endif
+#endif
+
+/*****************************************************************************
+ * SystemInformation coclass
+ */
+
+DEFINE_GUID(CLSID_SystemInformation, 0xc01b9ba0, 0xbea7, 0x41ba, 0xb6,0x04, 0xd0,0xa3,0x6f,0x46,0x91,0x33);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("c01b9ba0-bea7-41ba-b604-d0a36f469133") SystemInformation;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(SystemInformation, 0xc01b9ba0, 0xbea7, 0x41ba, 0xb6,0x04, 0xd0,0xa3,0x6f,0x46,0x91,0x33)
+#endif
+#endif
+
+#endif /* __WUApiLib_LIBRARY_DEFINED__ */
+/* Begin additional prototypes for all interfaces */
+
+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 HWND_UserSize     (ULONG *, ULONG, HWND *);
+unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
+unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
+void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
+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 /* __wuapi_h__ */
lib/libc/include/any-windows-any/xapo.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/xapo.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/xapo.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xaudio2.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/xaudio2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/xaudio2.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xaudio2fx.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/xaudio2fx.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/xaudio2fx.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xmllite.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.16 from include/xmllite.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/xmllite.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xpsdigitalsignature.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/xpsdigitalsignature.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/xpsdigitalsignature.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -112,6 +112,8 @@ extern "C" {
 #define XPS_E_MARKUP_COMPATIBILITY_ELEMENTS MAKE_HRESULT(1, FACILITY_XPS, 905)
 #define XPS_E_OBJECT_DETACHED MAKE_HRESULT(1, FACILITY_XPS, 906)
 #define XPS_E_INVALID_SIGNATUREBLOCK_MARKUP MAKE_HRESULT(1, FACILITY_XPS, 907)
+#ifndef __MSXPSSIG_LIBRARY_DEFINED__
+#define __MSXPSSIG_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_MSXPSSIG, 0x8223a7eb, 0xc4d5, 0x474d, 0x9b,0xcc, 0xff,0x67,0x18,0x5e,0x64,0xa0);
 
@@ -171,11 +173,11 @@ interface IXpsSignatureRequest;
 #endif /* __cplusplus */
 #endif
 
-typedef enum __WIDL_xpsdigitalsignature_generated_name_00000020 {
+typedef enum __WIDL_xpsdigitalsignature_generated_name_0000002F {
     XPS_SIGN_FLAGS_NONE = 0x0,
     XPS_SIGN_FLAGS_IGNORE_MARKUP_COMPATIBILITY = 0x1
 } XPS_SIGN_FLAGS;
-typedef enum __WIDL_xpsdigitalsignature_generated_name_00000021 {
+typedef enum __WIDL_xpsdigitalsignature_generated_name_00000030 {
     XPS_SIGN_POLICY_NONE = 0x0,
     XPS_SIGN_POLICY_CORE_PROPERTIES = 0x1,
     XPS_SIGN_POLICY_SIGNATURE_RELATIONSHIPS = 0x2,
@@ -183,7 +185,7 @@ typedef enum __WIDL_xpsdigitalsignature_generated_name_00000021 {
     XPS_SIGN_POLICY_DISCARD_CONTROL = 0x8,
     XPS_SIGN_POLICY_ALL = 0xf
 } XPS_SIGN_POLICY;
-typedef enum __WIDL_xpsdigitalsignature_generated_name_00000022 {
+typedef enum __WIDL_xpsdigitalsignature_generated_name_00000031 {
     XPS_SIGNATURE_STATUS_INCOMPLIANT = 1,
     XPS_SIGNATURE_STATUS_INCOMPLETE = 2,
     XPS_SIGNATURE_STATUS_BROKEN = 3,
@@ -1497,6 +1499,7 @@ __CRT_UUID_DECL(XpsSignatureManager, 0xb0c43320, 0x2315, 0x44a2, 0xb7,0x0a, 0x09
 #endif
 #endif
 
+#endif /* __MSXPSSIG_LIBRARY_DEFINED__ */
 #endif
 #endif
 /* Begin additional prototypes for all interfaces */
lib/libc/include/any-windows-any/xpsobjectmodel.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/xpsobjectmodel.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/xpsobjectmodel.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -951,54 +951,54 @@ interface IXpsOMPackageTarget;
 #endif /* __cplusplus */
 #endif
 
-typedef enum __WIDL_xpsobjectmodel_generated_name_00000020 {
+typedef enum __WIDL_xpsobjectmodel_generated_name_0000002F {
     XPS_COLOR_INTERPOLATION_SCRGBLINEAR = 1,
     XPS_COLOR_INTERPOLATION_SRGBLINEAR = 2
 } XPS_COLOR_INTERPOLATION;
-typedef enum __WIDL_xpsobjectmodel_generated_name_00000021 {
+typedef enum __WIDL_xpsobjectmodel_generated_name_00000030 {
     XPS_COLOR_TYPE_SRGB = 1,
     XPS_COLOR_TYPE_SCRGB = 2,
     XPS_COLOR_TYPE_CONTEXT = 3
 } XPS_COLOR_TYPE;
-typedef enum __WIDL_xpsobjectmodel_generated_name_00000022 {
+typedef enum __WIDL_xpsobjectmodel_generated_name_00000031 {
     XPS_DASH_CAP_FLAT = 1,
     XPS_DASH_CAP_ROUND = 2,
     XPS_DASH_CAP_SQUARE = 3,
     XPS_DASH_CAP_TRIANGLE = 4
 } XPS_DASH_CAP;
-typedef enum __WIDL_xpsobjectmodel_generated_name_00000023 {
+typedef enum __WIDL_xpsobjectmodel_generated_name_00000032 {
     XPS_FILL_RULE_EVENODD = 1,
     XPS_FILL_RULE_NONZERO = 2
 } XPS_FILL_RULE;
-typedef enum __WIDL_xpsobjectmodel_generated_name_00000024 {
+typedef enum __WIDL_xpsobjectmodel_generated_name_00000033 {
     XPS_FONT_EMBEDDING_NORMAL = 1,
     XPS_FONT_EMBEDDING_OBFUSCATED = 2,
     XPS_FONT_EMBEDDING_RESTRICTED = 3,
     XPS_FONT_EMBEDDING_RESTRICTED_UNOBFUSCATED = 4
 } XPS_FONT_EMBEDDING;
-typedef enum __WIDL_xpsobjectmodel_generated_name_00000025 {
+typedef enum __WIDL_xpsobjectmodel_generated_name_00000034 {
     XPS_IMAGE_TYPE_JPEG = 1,
     XPS_IMAGE_TYPE_PNG = 2,
     XPS_IMAGE_TYPE_TIFF = 3,
     XPS_IMAGE_TYPE_WDP = 4,
     XPS_IMAGE_TYPE_JXR = 5
 } XPS_IMAGE_TYPE;
-typedef enum __WIDL_xpsobjectmodel_generated_name_00000026 {
+typedef enum __WIDL_xpsobjectmodel_generated_name_00000035 {
     XPS_INTERLEAVING_OFF = 1,
     XPS_INTERLEAVING_ON = 2
 } XPS_INTERLEAVING;
-typedef enum __WIDL_xpsobjectmodel_generated_name_00000027 {
+typedef enum __WIDL_xpsobjectmodel_generated_name_00000036 {
     XPS_LINE_CAP_FLAT = 1,
     XPS_LINE_CAP_ROUND = 2,
     XPS_LINE_CAP_SQUARE = 3,
     XPS_LINE_CAP_TRIANGLE = 4
 } XPS_LINE_CAP;
-typedef enum __WIDL_xpsobjectmodel_generated_name_00000028 {
+typedef enum __WIDL_xpsobjectmodel_generated_name_00000037 {
     XPS_LINE_JOIN_MITER = 1,
     XPS_LINE_JOIN_BEVEL = 2,
     XPS_LINE_JOIN_ROUND = 3
 } XPS_LINE_JOIN;
-typedef enum __WIDL_xpsobjectmodel_generated_name_00000029 {
+typedef enum __WIDL_xpsobjectmodel_generated_name_00000038 {
     XPS_OBJECT_TYPE_CANVAS = 1,
     XPS_OBJECT_TYPE_GLYPHS = 2,
     XPS_OBJECT_TYPE_PATH = 3,
@@ -1010,12 +1010,12 @@ typedef enum __WIDL_xpsobjectmodel_generated_name_00000029 {
     XPS_OBJECT_TYPE_RADIAL_GRADIENT_BRUSH = 9,
     XPS_OBJECT_TYPE_VISUAL_BRUSH = 10
 } XPS_OBJECT_TYPE;
-typedef enum __WIDL_xpsobjectmodel_generated_name_0000002A {
+typedef enum __WIDL_xpsobjectmodel_generated_name_00000039 {
     XPS_SEGMENT_STROKE_PATTERN_ALL = 1,
     XPS_SEGMENT_STROKE_PATTERN_NONE = 2,
     XPS_SEGMENT_STROKE_PATTERN_MIXED = 3
 } XPS_SEGMENT_STROKE_PATTERN;
-typedef enum __WIDL_xpsobjectmodel_generated_name_0000002B {
+typedef enum __WIDL_xpsobjectmodel_generated_name_0000003A {
     XPS_SEGMENT_TYPE_ARC_LARGE_CLOCKWISE = 1,
     XPS_SEGMENT_TYPE_ARC_LARGE_COUNTERCLOCKWISE = 2,
     XPS_SEGMENT_TYPE_ARC_SMALL_CLOCKWISE = 3,
@@ -1024,33 +1024,33 @@ typedef enum __WIDL_xpsobjectmodel_generated_name_0000002B {
     XPS_SEGMENT_TYPE_LINE = 6,
     XPS_SEGMENT_TYPE_QUADRATIC_BEZIER = 7
 } XPS_SEGMENT_TYPE;
-typedef enum __WIDL_xpsobjectmodel_generated_name_0000002C {
+typedef enum __WIDL_xpsobjectmodel_generated_name_0000003B {
     XPS_SPREAD_METHOD_PAD = 1,
     XPS_SPREAD_METHOD_REFLECT = 2,
     XPS_SPREAD_METHOD_REPEAT = 3
 } XPS_SPREAD_METHOD;
-typedef enum __WIDL_xpsobjectmodel_generated_name_0000002D {
+typedef enum __WIDL_xpsobjectmodel_generated_name_0000003C {
     XPS_STYLE_SIMULATION_NONE = 1,
     XPS_STYLE_SIMULATION_ITALIC = 2,
     XPS_STYLE_SIMULATION_BOLD = 3,
     XPS_STYLE_SIMULATION_BOLDITALIC = 4
 } XPS_STYLE_SIMULATION;
-typedef enum __WIDL_xpsobjectmodel_generated_name_0000002E {
+typedef enum __WIDL_xpsobjectmodel_generated_name_0000003D {
     XPS_THUMBNAIL_SIZE_VERYSMALL = 1,
     XPS_THUMBNAIL_SIZE_SMALL = 2,
     XPS_THUMBNAIL_SIZE_MEDIUM = 3,
     XPS_THUMBNAIL_SIZE_LARGE = 4
 } XPS_THUMBNAIL_SIZE;
-typedef enum __WIDL_xpsobjectmodel_generated_name_0000002F {
+typedef enum __WIDL_xpsobjectmodel_generated_name_0000003E {
     XPS_TILE_MODE_NONE = 1,
     XPS_TILE_MODE_TILE = 2,
     XPS_TILE_MODE_FLIPX = 3,
     XPS_TILE_MODE_FLIPY = 4,
     XPS_TILE_MODE_FLIPXY = 5
 } XPS_TILE_MODE;
-typedef struct __WIDL_xpsobjectmodel_generated_name_00000030 {
+typedef struct __WIDL_xpsobjectmodel_generated_name_00000040 {
     XPS_COLOR_TYPE colorType;
-    union {
+    union __WIDL_xpsobjectmodel_generated_name_0000003F {
         struct {
             UINT8 alpha;
             UINT8 red;
@@ -1069,23 +1069,23 @@ typedef struct __WIDL_xpsobjectmodel_generated_name_00000030 {
         } context;
     } value;
 } XPS_COLOR;
-typedef struct __WIDL_xpsobjectmodel_generated_name_00000031 {
+typedef struct __WIDL_xpsobjectmodel_generated_name_00000041 {
     FLOAT length;
     FLOAT gap;
 } XPS_DASH;
-typedef struct __WIDL_xpsobjectmodel_generated_name_00000032 {
+typedef struct __WIDL_xpsobjectmodel_generated_name_00000042 {
     LONG index;
     FLOAT advanceWidth;
     FLOAT horizontalOffset;
     FLOAT verticalOffset;
 } XPS_GLYPH_INDEX;
-typedef struct __WIDL_xpsobjectmodel_generated_name_00000033 {
+typedef struct __WIDL_xpsobjectmodel_generated_name_00000043 {
     UINT32 unicodeStringStart;
     UINT16 unicodeStringLength;
     UINT32 glyphIndicesStart;
     UINT16 glyphIndicesLength;
 } XPS_GLYPH_MAPPING;
-typedef struct __WIDL_xpsobjectmodel_generated_name_00000034 {
+typedef struct __WIDL_xpsobjectmodel_generated_name_00000044 {
     FLOAT m11;
     FLOAT m12;
     FLOAT m21;
@@ -1093,17 +1093,17 @@ typedef struct __WIDL_xpsobjectmodel_generated_name_00000034 {
     FLOAT m31;
     FLOAT m32;
 } XPS_MATRIX;
-typedef struct __WIDL_xpsobjectmodel_generated_name_00000035 {
+typedef struct __WIDL_xpsobjectmodel_generated_name_00000045 {
     FLOAT x;
     FLOAT y;
 } XPS_POINT;
-typedef struct __WIDL_xpsobjectmodel_generated_name_00000036 {
+typedef struct __WIDL_xpsobjectmodel_generated_name_00000046 {
     FLOAT x;
     FLOAT y;
     FLOAT width;
     FLOAT height;
 } XPS_RECT;
-typedef struct __WIDL_xpsobjectmodel_generated_name_00000037 {
+typedef struct __WIDL_xpsobjectmodel_generated_name_00000047 {
     FLOAT width;
     FLOAT height;
 } XPS_SIZE;
@@ -11618,6 +11618,8 @@ static FORCEINLINE HRESULT IXpsOMThumbnailGenerator_GenerateThumbnail(IXpsOMThum
 #endif  /* __IXpsOMThumbnailGenerator_INTERFACE_DEFINED__ */
 
 #endif
+#ifndef __MSXPS_LIBRARY_DEFINED__
+#define __MSXPS_LIBRARY_DEFINED__
 
 DEFINE_GUID(LIBID_MSXPS, 0xb47491a0, 0xcf33, 0x4fe4, 0x9a,0x48, 0xb0,0xac,0xda,0xe2,0x07,0xe8);
 
@@ -11651,6 +11653,7 @@ __CRT_UUID_DECL(XpsOMThumbnailGenerator, 0x7e4a23e2, 0xb969, 0x4761, 0xbe,0x35,
 #endif
 
 #endif
+#endif /* __MSXPS_LIBRARY_DEFINED__ */
 #endif
 /* Begin additional prototypes for all interfaces */
 
lib/libc/include/any-windows-any/xpsobjectmodel_1.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/xpsobjectmodel_1.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/xpsobjectmodel_1.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -100,7 +100,7 @@ interface IXpsOMPage1;
 #endif /* __cplusplus */
 #endif
 
-typedef enum __WIDL_xpsobjectmodel_1_generated_name_00000038 {
+typedef enum __WIDL_xpsobjectmodel_1_generated_name_00000048 {
     XPS_DOCUMENT_TYPE_UNSPECIFIED = 1,
     XPS_DOCUMENT_TYPE_XPS = 2,
     XPS_DOCUMENT_TYPE_OPENXPS = 3
lib/libc/include/any-windows-any/xpsprint.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/xpsprint.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/xpsprint.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -49,13 +49,13 @@ extern "C" {
 
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
 #if NTDDI_VERSION >= 0x06010000
-typedef enum __WIDL_xpsprint_generated_name_00000038 {
+typedef enum __WIDL_xpsprint_generated_name_00000048 {
     XPS_JOB_IN_PROGRESS = 0,
     XPS_JOB_COMPLETED = 1,
     XPS_JOB_CANCELLED = 2,
     XPS_JOB_FAILED = 3
 } XPS_JOB_COMPLETION;
-typedef struct __WIDL_xpsprint_generated_name_00000039 {
+typedef struct __WIDL_xpsprint_generated_name_00000049 {
     UINT32 jobId;
     INT32 currentDocument;
     INT32 currentPage;
lib/libc/include/any-windows-any/xpsrassvc.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 4.12.1 from include/xpsrassvc.idl - Do not edit ***/
+/*** Autogenerated by WIDL 6.4 from include/xpsrassvc.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -95,12 +95,12 @@ interface IXpsRasterizationFactory1;
 #include <winapifamily.h>
 
 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
-typedef enum __WIDL_xpsrassvc_generated_name_00000038 {
+typedef enum __WIDL_xpsrassvc_generated_name_00000048 {
     XPSRAS_RENDERING_MODE_ANTIALIASED = 0,
     XPSRAS_RENDERING_MODE_ALIASED = 1
 } XPSRAS_RENDERING_MODE;
 #if NTDDI_VERSION >= 0x06020000
-typedef enum __WIDL_xpsrassvc_generated_name_00000039 {
+typedef enum __WIDL_xpsrassvc_generated_name_00000049 {
     XPSRAS_PIXEL_FORMAT_32BPP_PBGRA_UINT_SRGB = 1,
     XPSRAS_PIXEL_FORMAT_64BPP_PRGBA_HALF_SCRGB = 2,
     XPSRAS_PIXEL_FORMAT_128BPP_PRGBA_FLOAT_SCRGB = 3