Commit ed10a5db58

Alex Rønne Petersen <alex@alexrp.com>
2025-02-24 11:59:10
mingw: Update MinGW-w64 headers to 3839e21b08807479a31d5a9764666f82ae2f0356.
1 parent 2404e7f
Changed files (272)
lib
libc
include
any-windows-any
psdk_inc
sec_api
lib/libc/include/any-windows-any/psdk_inc/intrin-impl.h
@@ -134,7 +134,7 @@ __INTRINSICS_USEINLINE
    FunctionName: Any valid function name
    DataType: __LONG32 or __int64
    OffsetConstraint: either "I" for 32bit data types or "J" for 64. */
-#if defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_)
+#if (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) || defined(__i386__) || defined(_X86_)
 #define __buildbittesti(x, y, z, a) unsigned char x(y volatile *Base, y Offset) \
 { \
    unsigned char old; \
@@ -162,7 +162,7 @@ __INTRINSICS_USEINLINE
       : "memory", "cc"); \
    return (old >> Offset) & 1; \
 }
-#elif defined(__aarch64__) || defined(_ARM64_)
+#elif defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_)
 #define __buildbittesti(x, y, z, a) unsigned char x(y volatile *Base, y Offset) \
 { \
    unsigned int old, tmp1, tmp2; \
@@ -198,7 +198,7 @@ __INTRINSICS_USEINLINE
       : "memory", "cc"); \
    return (old >> Offset) & 1; \
 }
-#endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) */
+#endif /* (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) || defined(__i386__) || defined(_X86_) */
 
 /* This macro is used by YieldProcessor when compiling x86 w/o SSE2.
 It generates the same opcodes as _mm_pause.  */
@@ -668,8 +668,7 @@ unsigned short _rotr16(unsigned short __X, unsigned char __C)
 #define __INTRINSIC_DEFINED__rotr16
 #endif /* __INTRINSIC_PROLOG */
 
-#if defined(__x86_64__) || defined(_AMD64_)
-
+#if (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_))
 #if __INTRINSIC_PROLOG(__faststorefence)
 void __faststorefence(void);
 #if !__has_builtin(__faststorefence)
@@ -1103,7 +1102,7 @@ unsigned __int64 __shiftright128 (unsigned __int64  LowPart, unsigned __int64 Hi
 #define __INTRINSIC_DEFINED___shiftright128
 #endif /* __INTRINSIC_PROLOG */
 
-#endif /* defined(__x86_64__) || defined(_AMD64_) */
+#endif /* #(defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) */
 
 /* ***************************************************** */
 
@@ -1195,7 +1194,7 @@ unsigned char _BitScanReverse(unsigned __LONG32 *Index, unsigned __LONG32 Mask)
 
 #endif /* defined(__arm__) || defined(_ARM_) */
 
-#if defined(__aarch64__) || defined(_ARM64_)
+#if defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_)
 
 #if __INTRINSIC_PROLOG(_interlockedbittestandset)
 unsigned char _interlockedbittestandset(__LONG32 volatile *a, __LONG32 b);
@@ -1436,9 +1435,9 @@ unsigned char _BitScanReverse64(unsigned __LONG32 *Index, unsigned __int64 Mask)
 #define __INTRINSIC_DEFINED__BitScanReverse64
 #endif /* __INTRINSIC_PROLOG */
 
-#endif /* defined(__aarch64__) || define(_ARM64_) */
+#endif /* defined(__aarch64__) || define(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) */
 
-#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_)
+#if defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_)
 
 #if __INTRINSIC_PROLOG(_bittest)
 unsigned char _bittest(const __LONG32 *__a, __LONG32 __b);
@@ -1494,9 +1493,9 @@ unsigned char _bittestandcomplement(__LONG32 *__a, __LONG32 __b)
 #define __INTRINSIC_DEFINED__bittestandcomplement
 #endif /* __INTRINSIC_PROLOG */
 
-#endif /* defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) */
+#endif /* defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) */
 
-#if defined(__aarch64__) || defined(_ARM64_)
+#if defined(__aarch64__) || defined(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_)
 
 #if __INTRINSIC_PROLOG(_bittest64)
 unsigned char _bittest64(const __int64 *__a, __int64 __b);
@@ -1552,7 +1551,7 @@ unsigned char _bittestandcomplement64(__int64 *__a, __int64 __b)
 #define __INTRINSIC_DEFINED__bittestandcomplement64
 #endif /* __INTRINSIC_PROLOG */
 
-#endif /* defined(__aarch64__) || define(_ARM64_) */
+#endif /* defined(__aarch64__) || define(_ARM64_) || defined(__arm64ec__) || defined(_ARM64EC_) */
 
 /* ***************************************************** */
 
@@ -1777,7 +1776,7 @@ void *_InterlockedExchangePointer(void *volatile *Target,void *Value) {
 
 #endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) || defined(__arm__) || defined(_ARM_) || defined(__aarch64__) || defined(_ARM64_) */
 
-#if defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_)
+#if (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) || defined(__i386__) || defined(_X86_)
 
 #if __INTRINSIC_PROLOG(__int2c)
 void __int2c(void);
@@ -2157,7 +2156,7 @@ unsigned __int64 _xgetbv(unsigned int index)
 #endif /* __INTRINSIC_PROLOG */
 #endif /* __GNUC__ < 8 */
 
-#endif /* defined(__x86_64__) || defined(_AMD64_) || defined(__i386__) || defined(_X86_) */
+#endif /* (defined(__x86_64__) && !defined(__arm64ec__)) || (defined(_AMD64_) && !defined(_ARM64EC_)) || defined(__i386__) || defined(_X86_) */
 
 /* ***************************************************** */
 
lib/libc/include/any-windows-any/sec_api/stdlib_s.h
@@ -12,8 +12,16 @@
 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);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_dupenv_s")
+#undef _dupenv_s
+#endif
   _CRTIMP errno_t __cdecl _dupenv_s(char **_PBuffer,size_t *_PBufferSizeInBytes,const char *_VarName);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_dupenv_s")
+#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 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);
lib/libc/include/any-windows-any/_mingw.h
@@ -237,6 +237,10 @@ limitations in handling dllimport attribute.  */
 # endif
 #endif
 
+#if !defined(__CRTDLL__) && __MSVCRT_VERSION__ == 0x00
+#define __CRTDLL__
+#endif
+
 #if !defined(_UCRT) && ((__MSVCRT_VERSION__ >= 0x1400) || (__MSVCRT_VERSION__ >= 0xE00 && __MSVCRT_VERSION__ < 0x1000))
 /* Allow both 0x1400 and 0xE00 to identify UCRT */
 #define _UCRT
@@ -594,12 +598,12 @@ extern "C" {
 void __cdecl __debugbreak(void);
 __MINGW_INTRIN_INLINE void __cdecl __debugbreak(void)
 {
-#if defined(__i386__) || defined(__x86_64__)
+#if defined(__aarch64__) || defined(__arm64ec__)
+  __asm__ __volatile__("brk #0xf000");
+#elif defined(__i386__) || defined(__x86_64__)
   __asm__ __volatile__("int {$}3":);
 #elif defined(__arm__)
   __asm__ __volatile__("udf #0xfe");
-#elif defined(__aarch64__)
-  __asm__ __volatile__("brk #0xf000");
 #else
   __asm__ __volatile__("unimplemented");
 #endif
@@ -615,14 +619,14 @@ __MINGW_INTRIN_INLINE void __cdecl __debugbreak(void)
 void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned int code);
 __MINGW_INTRIN_INLINE void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned int code)
 {
-#if defined(__i386__) || defined(__x86_64__)
+#if defined(__aarch64__) || defined(__arm64ec__)
+  register unsigned int w0 __asm__("w0") = code;
+  __asm__ __volatile__("brk #0xf003"::"r"(w0));
+#elif defined(__i386__) || defined(__x86_64__)
   __asm__ __volatile__("int {$}0x29"::"c"(code));
 #elif defined(__arm__)
   register unsigned int r0 __asm__("r0") = code;
   __asm__ __volatile__("udf #0xfb"::"r"(r0));
-#elif defined(__aarch64__)
-  register unsigned int w0 __asm__("w0") = code;
-  __asm__ __volatile__("brk #0xf003"::"r"(w0));
 #else
   __asm__ __volatile__("unimplemented");
 #endif
@@ -636,13 +640,13 @@ __MINGW_INTRIN_INLINE void __cdecl __MINGW_ATTRIB_NORETURN __fastfail(unsigned i
 #define __MINGW_PREFETCH_IMPL 1
 #endif
 #if __MINGW_PREFETCH_IMPL == 1
-#if defined(__arm__) || defined(__aarch64__)
+#if defined(__arm__) || defined(__aarch64__) || defined(__arm64ec__)
 void __cdecl __prefetch(const void *addr);
 __MINGW_INTRIN_INLINE void __cdecl __prefetch(const void *addr)
 {
 #if defined(__arm__)
   __asm__ __volatile__("pld [%0]"::"r"(addr));
-#elif defined(__aarch64__)
+#elif defined(__aarch64__) || defined(__arm64ec__)
   __asm__ __volatile__("prfm pldl1keep, [%0]"::"r"(addr));
 #endif
 }
lib/libc/include/any-windows-any/_mingw_mac.h
@@ -7,6 +7,9 @@
 #ifndef _INC_CRTDEFS_MACRO
 #define _INC_CRTDEFS_MACRO
 
+#define __MINGW64_PASTE2(x, y) x ## y
+#define __MINGW64_PASTE(x, y) __MINGW64_PASTE2(x, y)
+
 #define __STRINGIFY(x) #x
 #define __MINGW64_STRINGIFY(x) \
   __STRINGIFY(x)
@@ -88,6 +91,13 @@
 #  endif
 #endif
 
+#if defined(__arm64ec__) && !defined(_M_ARM64EC)
+#  define _M_ARM64EC 1
+#  ifndef _ARM64EC_
+#    define _ARM64EC_ 1
+#  endif
+#endif
+
 #ifndef _X86_
    /* MS does not prefix symbols by underscores for 64-bit.  */
 #  ifndef __MINGW_USE_UNDERSCORE_PREFIX
@@ -116,14 +126,14 @@
 #endif /* ifndef _X86_ */
 
 #if __MINGW_USE_UNDERSCORE_PREFIX == 0
-#  define __MINGW_IMP_SYMBOL(sym) __imp_##sym
-#  define __MINGW_IMP_LSYMBOL(sym) __imp_##sym
+#  define __MINGW_IMP_SYMBOL(sym) __MINGW64_PASTE(__imp_,sym)
+#  define __MINGW_IMP_LSYMBOL(sym) __MINGW64_PASTE(__imp_,sym)
 #  define __MINGW_USYMBOL(sym) sym
-#  define __MINGW_LSYMBOL(sym) _##sym
+#  define __MINGW_LSYMBOL(sym) __MINGW64_PASTE(_,sym)
 #else /* ! if __MINGW_USE_UNDERSCORE_PREFIX == 0 */
-#  define __MINGW_IMP_SYMBOL(sym) _imp__##sym
-#  define __MINGW_IMP_LSYMBOL(sym) __imp__##sym
-#  define __MINGW_USYMBOL(sym) _##sym
+#  define __MINGW_IMP_SYMBOL(sym) __MINGW64_PASTE(_imp__,sym)
+#  define __MINGW_IMP_LSYMBOL(sym) __MINGW64_PASTE(__imp__,sym)
+#  define __MINGW_USYMBOL(sym) __MINGW64_PASTE(_,sym)
 #  define __MINGW_LSYMBOL(sym) sym
 #endif /* if __MINGW_USE_UNDERSCORE_PREFIX == 0 */
 
lib/libc/include/any-windows-any/activation.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/activation.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/activaut.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/activdbg.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/activdbg.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/activdbg100.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/activdbg100.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/activprof.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/activprof.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/activscp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/activscp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/adhoc.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/adhoc.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/alg.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/alg.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/alg.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/amstream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/amstream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/amstream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/amvideo.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/amvideo.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/amvideo.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/asyncinfo.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/asyncinfo.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/asyncinfo.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/audioclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/audioclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/audioclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/audioendpoints.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/audioendpoints.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/audiopolicy.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/audiopolicy.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/austream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/austream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/austream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bdaiface.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/bdaiface.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/bdaiface.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/bits.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/bits.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits1_5.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/bits1_5.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/bits1_5.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits2_0.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/bits2_0.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/bits2_0.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits2_5.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/bits2_5.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/bits2_5.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits3_0.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/bits3_0.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/bits3_0.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/bits5_0.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/bits5_0.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/bits5_0.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/comadmin.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/comadmin.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/comadmin.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/combaseapi.h
@@ -354,6 +354,17 @@ WINOLEAPI CoGetTreatAsClass (REFCLSID clsidOld, LPCLSID pClsidNew);
 WINOLEAPI CoInvalidateRemoteMachineBindings (LPOLESTR pszMachineName);
 #endif
 
+#if (NTDDI_VERSION >= NTDDI_WINBLUE)
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+enum AgileReferenceOptions {
+  AGILEREFERENCE_DEFAULT = 0,
+  AGILEREFERENCE_DELAYEDMARSHAL = 1
+};
+
+WINOLEAPI RoGetAgileReference(enum AgileReferenceOptions options, REFIID riid, IUnknown *pUnk, IAgileReference **ppAgileReference);
+#endif
+#endif
+
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
 typedef HRESULT (STDAPICALLTYPE *LPFNGETCLASSOBJECT) (REFCLSID, REFIID, LPVOID *);
 typedef HRESULT (STDAPICALLTYPE *LPFNCANUNLOADNOW) (void);
lib/libc/include/any-windows-any/comcat.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/comcat.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/commoncontrols.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/commoncontrols.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/consoleapi.h
@@ -0,0 +1,139 @@
+/**
+ * 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 _APISETCONSOLE_
+#define _APISETCONSOLE_
+
+#include <_mingw_unicode.h>
+
+#include <apiset.h>
+#include <apisetcconv.h>
+#include <minwinbase.h>
+#include <minwindef.h>
+
+#include <wincontypes.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
+WINBASEAPI WINBOOL WINAPI AllocConsole(void);
+
+#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
+
+typedef enum ALLOC_CONSOLE_MODE {
+  ALLOC_CONSOLE_MODE_DEFAULT = 0,
+  ALLOC_CONSOLE_MODE_NEW_WINDOW = 1,
+  ALLOC_CONSOLE_MODE_NO_WINDOW = 2
+} ALLOC_CONSOLE_MODE;
+
+typedef struct ALLOC_CONSOLE_OPTIONS {
+  ALLOC_CONSOLE_MODE mode;
+  WINBOOL useShowWindow;
+  WORD showWindow;
+} ALLOC_CONSOLE_OPTIONS, *PALLOC_CONSOLE_OPTIONS;
+
+typedef enum ALLOC_CONSOLE_RESULT {
+  ALLOC_CONSOLE_RESULT_NO_CONSOLE = 0,
+  ALLOC_CONSOLE_RESULT_NEW_CONSOLE = 1,
+  ALLOC_CONSOLE_RESULT_EXISTING_CONSOLE = 2
+} ALLOC_CONSOLE_RESULT, *PALLOC_CONSOLE_RESULT;
+
+WINBASEAPI HRESULT WINAPI AllocConsoleWithOptions(PALLOC_CONSOLE_OPTIONS options, PALLOC_CONSOLE_RESULT result);
+
+#endif /* NTDDI_VERSION >= NTDDI_WIN11_GE */
+
+WINBASEAPI WINBOOL WINAPI FreeConsole(void);
+
+#if (_WIN32_WINNT >= 0x0500)
+
+WINBASEAPI WINBOOL WINAPI AttachConsole(DWORD process_id);
+
+#define ATTACH_PARENT_PROCESS ((DWORD)-1)
+
+#endif /* _WIN32_WINNT >= 0x0500 */
+
+WINBASEAPI UINT WINAPI GetConsoleCP(void);
+WINBASEAPI UINT WINAPI GetConsoleOutputCP(void);
+
+#define ENABLE_PROCESSED_INPUT 0x0001
+#define ENABLE_LINE_INPUT 0x0002
+#define ENABLE_ECHO_INPUT 0x0004
+#define ENABLE_WINDOW_INPUT 0x0008
+#define ENABLE_MOUSE_INPUT 0x0010
+#define ENABLE_INSERT_MODE 0x0020
+#define ENABLE_QUICK_EDIT_MODE 0x0040
+#define ENABLE_EXTENDED_FLAGS 0x0080
+#define ENABLE_AUTO_POSITION 0x0100
+#define ENABLE_VIRTUAL_TERMINAL_INPUT 0x0200
+
+#define ENABLE_PROCESSED_OUTPUT 0x0001
+#define ENABLE_WRAP_AT_EOL_OUTPUT 0x0002
+#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x0004
+#define DISABLE_NEWLINE_AUTO_RETURN 0x0008
+#define ENABLE_LVB_GRID_WORLDWIDE 0x0010
+
+WINBASEAPI WINBOOL WINAPI GetConsoleMode(HANDLE console_handle, LPDWORD mode);
+WINBASEAPI WINBOOL WINAPI SetConsoleMode(HANDLE console_handle, DWORD mode);
+WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE console_input, LPDWORD number_of_events);
+
+WINBASEAPI WINBOOL WINAPI ReadConsoleInputA(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read);
+WINBASEAPI WINBOOL WINAPI ReadConsoleInputW(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read);
+#define ReadConsoleInput __MINGW_NAME_AW(ReadConsoleInput)
+
+WINBASEAPI WINBOOL WINAPI PeekConsoleInputA(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read);
+WINBASEAPI WINBOOL WINAPI PeekConsoleInputW(HANDLE console_input, PINPUT_RECORD buffer, DWORD length, LPDWORD number_of_events_read);
+#define PeekConsoleInput __MINGW_NAME_AW(PeekConsoleInput)
+
+typedef struct _CONSOLE_READCONSOLE_CONTROL {
+  ULONG nLength;
+  ULONG nInitialChars;
+  ULONG dwCtrlWakeupMask;
+  ULONG dwControlKeyState;
+} CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL;
+
+WINBASEAPI WINBOOL WINAPI ReadConsoleA(HANDLE console_input, LPVOID buffer, DWORD number_of_chars_to_read, LPDWORD number_of_chars_read, PCONSOLE_READCONSOLE_CONTROL input_control);
+WINBASEAPI WINBOOL WINAPI ReadConsoleW(HANDLE console_input, LPVOID buffer, DWORD number_of_chars_to_read, LPDWORD number_of_chars_read, PCONSOLE_READCONSOLE_CONTROL input_control);
+#define ReadConsole __MINGW_NAME_AW(ReadConsole)
+
+WINBASEAPI WINBOOL WINAPI WriteConsoleA(HANDLE console_output, const void *buffer, DWORD number_of_chars_to_write, LPDWORD number_of_chars_written, LPVOID reserved);
+WINBASEAPI WINBOOL WINAPI WriteConsoleW(HANDLE console_output, const void *buffer, DWORD number_of_chars_to_write, LPDWORD number_of_chars_written, LPVOID reserved);
+#define WriteConsole __MINGW_NAME_AW(WriteConsole)
+
+#define CTRL_C_EVENT 0
+#define CTRL_BREAK_EVENT 1
+#define CTRL_CLOSE_EVENT 2
+#define CTRL_LOGOFF_EVENT 5
+#define CTRL_SHUTDOWN_EVENT 6
+
+typedef WINBOOL (WINAPI *PHANDLER_ROUTINE)(DWORD ctrl_type);
+WINBASEAPI WINBOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE handler_routine, WINBOOL add);
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#if (NTDDI_VERSION >= NTDDI_WIN10_RS5)
+#define PSEUDOCONSOLE_INHERIT_CURSOR (0x1)
+
+WINBASEAPI HRESULT WINAPI CreatePseudoConsole(COORD size, HANDLE input, HANDLE output, DWORD flags, HPCON *pc);
+WINBASEAPI HRESULT WINAPI ResizePseudoConsole(HPCON pc, COORD size);
+WINBASEAPI void WINAPI ClosePseudoConsole(HPCON pc);
+#endif
+
+#if (NTDDI_VERSION >= NTDDI_WIN11_GE)
+WINBASEAPI HRESULT WINAPI ReleasePseudoConsole(HPCON pc);
+#endif
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _APISETCONSOLE_ */
lib/libc/include/any-windows-any/consoleapi2.h
@@ -0,0 +1,144 @@
+/**
+ * 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 _APISETCONSOLEL2_
+#define _APISETCONSOLEL2_
+
+#include <_mingw_unicode.h>
+
+#include <apiset.h>
+#include <apisetcconv.h>
+#include <minwinbase.h>
+#include <minwindef.h>
+
+#include <wincontypes.h>
+#include <windef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
+#define FOREGROUND_BLUE 0x0001
+#define FOREGROUND_GREEN 0x0002
+#define FOREGROUND_RED 0x0004
+#define FOREGROUND_INTENSITY 0x0008
+#define BACKGROUND_BLUE 0x0010
+#define BACKGROUND_GREEN 0x0020
+#define BACKGROUND_RED 0x0040
+#define BACKGROUND_INTENSITY 0x0080
+#define COMMON_LVB_LEADING_BYTE 0x0100
+#define COMMON_LVB_TRAILING_BYTE 0x0200
+#define COMMON_LVB_GRID_HORIZONTAL 0x0400
+#define COMMON_LVB_GRID_LVERTICAL 0x0800
+#define COMMON_LVB_GRID_RVERTICAL 0x1000
+#define COMMON_LVB_REVERSE_VIDEO 0x4000
+#define COMMON_LVB_UNDERSCORE 0x8000
+
+#define COMMON_LVB_SBCSDBCS 0x0300
+
+WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterA(HANDLE console_output, CHAR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
+WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterW(HANDLE console_output, WCHAR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
+#define FillConsoleOutputCharacter __MINGW_NAME_AW(FillConsoleOutputCharacter)
+
+WINBASEAPI WINBOOL WINAPI FillConsoleOutputAttribute(HANDLE console_output, WORD attribute, DWORD length, COORD write_coord, LPDWORD number_of_attrs_written);
+WINBASEAPI WINBOOL WINAPI GenerateConsoleCtrlEvent(DWORD ctrl_event, DWORD process_group_id);
+WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer(DWORD desired_access, DWORD share_mode, const SECURITY_ATTRIBUTES *security_attributes, DWORD flags, LPVOID screen_buffer_data);
+WINBASEAPI WINBOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE console_output);
+WINBASEAPI WINBOOL WINAPI FlushConsoleInputBuffer(HANDLE console_input);
+WINBASEAPI WINBOOL WINAPI SetConsoleCP(UINT code_page_id);
+WINBASEAPI WINBOOL WINAPI SetConsoleOutputCP(UINT code_page_id);
+
+typedef struct _CONSOLE_CURSOR_INFO {
+  DWORD dwSize;
+  WINBOOL bVisible;
+} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
+
+WINBASEAPI WINBOOL WINAPI GetConsoleCursorInfo(HANDLE console_output, PCONSOLE_CURSOR_INFO console_cursor_info);
+WINBASEAPI WINBOOL WINAPI SetConsoleCursorInfo(HANDLE console_output, const CONSOLE_CURSOR_INFO *console_cursor_info);
+
+typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
+  COORD dwSize;
+  COORD dwCursorPosition;
+  WORD wAttributes;
+  SMALL_RECT srWindow;
+  COORD dwMaximumWindowSize;
+} CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO;
+
+WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfo(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFO console_screen_buffer_info);
+
+typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
+  ULONG cbSize;
+  COORD dwSize;
+  COORD dwCursorPosition;
+  WORD wAttributes;
+  SMALL_RECT srWindow;
+  COORD dwMaximumWindowSize;
+  WORD wPopupAttributes;
+  WINBOOL bFullscreenSupported;
+  COLORREF ColorTable[16];
+} CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
+
+WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfoEx(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFOEX console_screen_buffer_info_ex);
+WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferInfoEx(HANDLE console_output, PCONSOLE_SCREEN_BUFFER_INFOEX console_screen_buffer_info_ex);
+WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferSize(HANDLE console_output, COORD size);
+WINBASEAPI WINBOOL WINAPI SetConsoleCursorPosition(HANDLE console_output, COORD cursor_position);
+WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE console_output);
+WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE console_output, WORD attributes);
+WINBASEAPI WINBOOL WINAPI SetConsoleWindowInfo(HANDLE console_output, WINBOOL absolute, const SMALL_RECT *console_window);
+
+WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterA(HANDLE console_output, LPCSTR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
+WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterW(HANDLE console_output, LPCWSTR character, DWORD length, COORD write_coord, LPDWORD number_of_chars_written);
+#define WriteConsoleOutputCharacter __MINGW_NAME_AW(WriteConsoleOutputCharacter)
+
+WINBASEAPI WINBOOL WINAPI WriteConsoleOutputAttribute(HANDLE console_output, const WORD *attribute, DWORD length, COORD write_coord, LPDWORD number_of_attrs_written);
+
+WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterA(HANDLE console_output, LPSTR character, DWORD length, COORD read_coord, LPDWORD number_of_chars_read);
+WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterW(HANDLE console_output, LPWSTR character, DWORD length, COORD read_coord, LPDWORD number_of_chars_read);
+#define ReadConsoleOutputCharacter __MINGW_NAME_AW(ReadConsoleOutputCharacter)
+
+WINBASEAPI WINBOOL WINAPI ReadConsoleOutputAttribute(HANDLE console_output, LPWORD attribute, DWORD length, COORD read_coord, LPDWORD number_of_attrs_read);
+
+WINBASEAPI WINBOOL WINAPI WriteConsoleInputA(HANDLE console_input, const INPUT_RECORD *buffer, DWORD length, LPDWORD number_of_events_written);
+WINBASEAPI WINBOOL WINAPI WriteConsoleInputW(HANDLE console_input, const INPUT_RECORD *buffer, DWORD length, LPDWORD number_of_events_written);
+#define WriteConsoleInput __MINGW_NAME_AW(WriteConsoleInput)
+
+WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferA(HANDLE console_output, const SMALL_RECT *scroll_rectangle, const SMALL_RECT *clip_rectangle, COORD destination_origin, const CHAR_INFO *fill);
+WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferW(HANDLE console_output, const SMALL_RECT *scroll_rectangle, const SMALL_RECT *clip_rectangle, COORD destination_origin, const CHAR_INFO *fill);
+#define ScrollConsoleScreenBuffer __MINGW_NAME_AW(ScrollConsoleScreenBuffer)
+
+WINBASEAPI WINBOOL WINAPI WriteConsoleOutputA(HANDLE console_output, const CHAR_INFO *buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT write_region);
+WINBASEAPI WINBOOL WINAPI WriteConsoleOutputW(HANDLE console_output, const CHAR_INFO *buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT write_region);
+#define WriteConsoleOutput __MINGW_NAME_AW(WriteConsoleOutput)
+
+WINBASEAPI WINBOOL WINAPI ReadConsoleOutputA(HANDLE console_output, PCHAR_INFO buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT read_region);
+WINBASEAPI WINBOOL WINAPI ReadConsoleOutputW(HANDLE console_output, PCHAR_INFO buffer, COORD buffer_size, COORD buffer_coord, PSMALL_RECT read_region);
+#define ReadConsoleOutput __MINGW_NAME_AW(ReadConsoleOutput)
+
+WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR console_title, DWORD size);
+WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR console_title, DWORD size);
+#define GetConsoleTitle __MINGW_NAME_AW(GetConsoleTitle)
+
+#if (_WIN32_WINNT >= 0x0600)
+
+WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleA(LPSTR console_title, DWORD size);
+WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleW(LPWSTR console_title, DWORD size);
+#define GetConsoleOriginalTitle __MINGW_NAME_AW(GetConsoleOriginalTitle)
+
+#endif /* _WIN32_WINNT >= 0x0600 */
+
+WINBASEAPI WINBOOL WINAPI SetConsoleTitleA(LPCSTR console_title);
+WINBASEAPI WINBOOL WINAPI SetConsoleTitleW(LPCWSTR console_title);
+#define SetConsoleTitle __MINGW_NAME_AW(SetConsoleTitle)
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _APISETCONSOLEL2_ */
lib/libc/include/any-windows-any/consoleapi3.h
@@ -0,0 +1,146 @@
+/**
+ * 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 _APISETCONSOLEL3_
+#define _APISETCONSOLEL3_
+
+#include <_mingw_unicode.h>
+
+#include <apiset.h>
+#include <apisetcconv.h>
+#include <minwinbase.h>
+#include <minwindef.h>
+
+#include <wincontypes.h>
+#include <windef.h>
+
+#ifndef NOGDI
+#include <wingdi.h>
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
+WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD number_of_mouse_buttons);
+
+#if (_WIN32_WINNT >= 0x0500)
+
+WINBASEAPI COORD WINAPI GetConsoleFontSize(HANDLE console_output, DWORD font);
+WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFont(HANDLE console_output, WINBOOL maximum_window, PCONSOLE_FONT_INFO console_current_font);
+
+#ifndef NOGDI
+
+typedef struct _CONSOLE_FONT_INFOEX {
+  ULONG cbSize;
+  DWORD nFont;
+  COORD dwFontSize;
+  UINT FontFamily;
+  UINT FontWeight;
+  WCHAR FaceName[LF_FACESIZE];
+} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
+
+WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFontEx(HANDLE console_output, WINBOOL maximum_window, PCONSOLE_FONT_INFOEX console_current_font_ex);
+WINBASEAPI WINBOOL WINAPI SetCurrentConsoleFontEx(HANDLE console_output, WINBOOL maximum_window, PCONSOLE_FONT_INFOEX console_current_font_ex);
+
+#endif /* !NOGDI */
+
+#define CONSOLE_NO_SELECTION 0x0000
+#define CONSOLE_SELECTION_IN_PROGRESS 0x0001
+#define CONSOLE_SELECTION_NOT_EMPTY 0x0002
+#define CONSOLE_MOUSE_SELECTION 0x0004
+#define CONSOLE_MOUSE_DOWN 0x0008
+
+typedef struct _CONSOLE_SELECTION_INFO {
+  DWORD dwFlags;
+  COORD dwSelectionAnchor;
+  SMALL_RECT srSelection;
+} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
+
+WINBASEAPI WINBOOL WINAPI GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO console_selection_info);
+
+#define HISTORY_NO_DUP_FLAG 0x1
+
+typedef struct _CONSOLE_HISTORY_INFO {
+  UINT cbSize;
+  UINT HistoryBufferSize;
+  UINT NumberOfHistoryBuffers;
+  DWORD dwFlags;
+} CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO;
+
+WINBASEAPI WINBOOL WINAPI GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO console_history_info);
+WINBASEAPI WINBOOL WINAPI SetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO console_history_info);
+
+#define CONSOLE_FULLSCREEN 1
+#define CONSOLE_FULLSCREEN_HARDWARE 2
+
+WINBASEAPI WINBOOL APIENTRY GetConsoleDisplayMode(LPDWORD mode_flags);
+
+#define CONSOLE_FULLSCREEN_MODE 1
+#define CONSOLE_WINDOWED_MODE 2
+
+WINBASEAPI WINBOOL APIENTRY SetConsoleDisplayMode(HANDLE console_output, DWORD flags, PCOORD new_screen_buffer_dimensions);
+WINBASEAPI HWND APIENTRY GetConsoleWindow(void);
+
+#endif /* _WIN32_WINNT >= 0x0500 */
+
+#if (_WIN32_WINNT >= 0x0501)
+
+WINBASEAPI WINBOOL APIENTRY AddConsoleAliasA(LPSTR source, LPSTR target, LPSTR exe_name);
+WINBASEAPI WINBOOL APIENTRY AddConsoleAliasW(LPWSTR source, LPWSTR target, LPWSTR exe_name);
+#define AddConsoleAlias __MINGW_NAME_AW(AddConsoleAlias)
+
+WINBASEAPI DWORD APIENTRY GetConsoleAliasA(LPSTR source, LPSTR target_buffer, DWORD target_buffer_length, LPSTR exe_name);
+WINBASEAPI DWORD APIENTRY GetConsoleAliasW(LPWSTR source, LPWSTR target_buffer, DWORD target_buffer_length, LPWSTR exe_name);
+#define GetConsoleAlias __MINGW_NAME_AW(GetConsoleAlias)
+
+WINBASEAPI DWORD APIENTRY GetConsoleAliasesLengthA(LPSTR exe_name);
+WINBASEAPI DWORD APIENTRY GetConsoleAliasesLengthW(LPWSTR exe_name);
+#define GetConsoleAliasesLength __MINGW_NAME_AW(GetConsoleAliasesLength)
+
+WINBASEAPI DWORD APIENTRY GetConsoleAliasExesLengthA(void);
+WINBASEAPI DWORD APIENTRY GetConsoleAliasExesLengthW(void);
+#define GetConsoleAliasExesLength __MINGW_NAME_AW(GetConsoleAliasExesLength)
+
+WINBASEAPI DWORD APIENTRY GetConsoleAliasesA(LPSTR alias_buffer, DWORD alias_buffer_length, LPSTR exe_name);
+WINBASEAPI DWORD APIENTRY GetConsoleAliasesW(LPWSTR alias_buffer, DWORD alias_buffer_length, LPWSTR exe_name);
+#define GetConsoleAliases __MINGW_NAME_AW(GetConsoleAliases)
+
+WINBASEAPI DWORD APIENTRY GetConsoleAliasExesA(LPSTR exe_name_buffer, DWORD exe_name_buffer_length);
+WINBASEAPI DWORD APIENTRY GetConsoleAliasExesW(LPWSTR exe_name_buffer, DWORD exe_name_buffer_length);
+#define GetConsoleAliasExes __MINGW_NAME_AW(GetConsoleAliasExes)
+
+#endif /* _WIN32_WINNT >= 0x0501 */
+
+WINBASEAPI void APIENTRY ExpungeConsoleCommandHistoryA(LPSTR exe_name);
+WINBASEAPI void APIENTRY ExpungeConsoleCommandHistoryW(LPWSTR exe_name);
+#define ExpungeConsoleCommandHistory __MINGW_NAME_AW(ExpungeConsoleCommandHistory)
+
+WINBASEAPI WINBOOL APIENTRY SetConsoleNumberOfCommandsA(DWORD number, LPSTR exe_name);
+WINBASEAPI WINBOOL APIENTRY SetConsoleNumberOfCommandsW(DWORD number, LPWSTR exe_name);
+#define SetConsoleNumberOfCommands __MINGW_NAME_AW(SetConsoleNumberOfCommands)
+
+WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryLengthA(LPSTR exe_name);
+WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryLengthW(LPWSTR exe_name);
+#define GetConsoleCommandHistoryLength __MINGW_NAME_AW(GetConsoleCommandHistoryLength)
+
+WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryA(LPSTR commands, DWORD command_buffer_length, LPSTR exe_name);
+WINBASEAPI DWORD APIENTRY GetConsoleCommandHistoryW(LPWSTR commands, DWORD command_buffer_length, LPWSTR exe_name);
+#define GetConsoleCommandHistory __MINGW_NAME_AW(GetConsoleCommandHistory)
+
+#if (_WIN32_WINNT >= 0x0501)
+WINBASEAPI DWORD APIENTRY GetConsoleProcessList(LPDWORD process_list, DWORD process_count);
+#endif /* _WIN32_WINNT >= 0x0501 */
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _APISETCONSOLEL3_ */
lib/libc/include/any-windows-any/control.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/control.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/control.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/corecrt_wstdlib.h
@@ -10,6 +10,15 @@
 
 #ifdef __cplusplus
 extern "C" {
+#endif
+
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_wdupenv_s")
+#undef _wdupenv_s
+#endif
+  _CRTIMP errno_t __cdecl _wdupenv_s(wchar_t **_Buffer,size_t *_BufferSizeInWords,const wchar_t *_VarName);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_wdupenv_s")
 #endif
 
   _CRTIMP errno_t __cdecl _itow_s (int _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix);
@@ -24,7 +33,6 @@ extern "C" {
   _CRTIMP errno_t __cdecl _wgetenv_s(size_t *_ReturnSize,wchar_t *_DstBuf,size_t _DstSizeInWords,const wchar_t *_VarName);
   __DEFINE_CPP_OVERLOAD_SECURE_FUNC_1_1(errno_t,_wgetenv_s,size_t*,_ReturnSize,wchar_t,_DstBuf,const wchar_t*,_VarName)
 
-  _CRTIMP errno_t __cdecl _wdupenv_s(wchar_t **_Buffer,size_t *_BufferSizeInWords,const wchar_t *_VarName);
   _CRTIMP errno_t __cdecl _i64tow_s(__int64 _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix);
   _CRTIMP errno_t __cdecl _ui64tow_s(unsigned __int64 _Val,wchar_t *_DstBuf,size_t _SizeInWords,int _Radix);
 
lib/libc/include/any-windows-any/credentialprovider.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/credentialprovider.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/credentialprovider.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/crtdbg.h
@@ -4,6 +4,7 @@
  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  */
 #include <crtdefs.h>
+#include <sal.h>
 
 #ifndef _INC_CRTDBG
 #define _INC_CRTDBG
@@ -94,13 +95,21 @@ extern "C" {
   } _CrtMemState;
 
 #ifndef _STATIC_ASSERT
-#if defined(_MSC_VER)
+#if (defined(__cpp_static_assert) && __cpp_static_assert >= 201411L) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L)
+#define _STATIC_ASSERT(expr) static_assert(expr)
+#elif defined(__cpp_static_assert)
+#define _STATIC_ASSERT(expr) static_assert(expr, #expr)
+#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
+#define _STATIC_ASSERT(expr) _Static_assert(expr, #expr)
+#elif defined(_MSC_VER)
 #define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr)]
 #else
 #define _STATIC_ASSERT(expr) extern void __static_assert_t(int [(expr)?1:-1])
 #endif
 #endif
 
+#ifndef _DEBUG
+
 #ifndef _ASSERT
 #define _ASSERT(expr) ((void)0)
 #endif
@@ -208,6 +217,227 @@ extern "C" {
 #define _CrtSetCheckCount(f) ((int)0)
 #define _CrtGetCheckCount() ((int)0)
 
+#else /* _DEBUG */
+
+_CRTIMP long * __cdecl __p__crtAssertBusy(void);
+#define _crtAssertBusy (*__p__crtAssertBusy())
+
+_CRTIMP _CRT_REPORT_HOOK __cdecl _CrtGetReportHook(void);
+_CRTIMP _CRT_REPORT_HOOK __cdecl _CrtSetReportHook(_CRT_REPORT_HOOK _PFnNewHook);
+_CRTIMP int __cdecl _CrtSetReportHook2(int _Mode, _CRT_REPORT_HOOK _PFnNewHook);
+_CRTIMP int __cdecl _CrtSetReportHookW2(int _Mode, _CRT_REPORT_HOOKW _PFnNewHook);
+_CRTIMP int __cdecl _CrtSetReportMode(int _ReportType, int _ReportMode);
+_CRTIMP _HFILE __cdecl _CrtSetReportFile(int _ReportType, _HFILE _ReportFile);
+_CRTIMP int __cdecl _CrtDbgReport(int _ReportType, const char * _Filename, int _Linenumber, const char * _ModuleName, const char * _Format, ...);
+_CRTIMP size_t __cdecl _CrtSetDebugFillThreshold(size_t _NewDebugFillThreshold);
+_CRTIMP int __cdecl _CrtDbgReportW(int _ReportType, const wchar_t * _Filename, int _LineNumber, const wchar_t * _ModuleName, const wchar_t * _Format, ...);
+
+#define _ASSERT_EXPR(expr, msg) \
+        (void) ((!!(expr)) || \
+                (1 != _CrtDbgReportW(_CRT_ASSERT, _CRT_WIDE(__FILE__), __LINE__, NULL, msg)) || \
+                (_CrtDbgBreak(), 0))
+
+#ifndef _ASSERT
+#define _ASSERT(expr)   _ASSERT_EXPR((expr), NULL)
+#endif
+
+#ifndef _ASSERTE
+#define _ASSERTE(expr)  _ASSERT_EXPR((expr), _CRT_WIDE(#expr))
+#endif
+
+#ifndef _ASSERT_BASE
+#define _ASSERT_BASE _ASSERT_EXPR
+#endif
+
+#define _RPT_BASE(args) \
+        (void) ((1 != _CrtDbgReport args) || \
+                (_CrtDbgBreak(), 0))
+
+#define _RPT_BASE_W(args) \
+        (void) ((1 != _CrtDbgReportW args) || \
+                (_CrtDbgBreak(), 0))
+
+#define _RPT0(rptno, msg) \
+        _RPT_BASE((rptno, NULL, 0, NULL, "%s", msg))
+
+#define _RPTW0(rptno, msg) \
+        _RPT_BASE_W((rptno, NULL, 0, NULL, L"%s", msg))
+
+#define _RPT1(rptno, msg, arg1) \
+        _RPT_BASE((rptno, NULL, 0, NULL, msg, arg1))
+
+#define _RPTW1(rptno, msg, arg1) \
+        _RPT_BASE_W((rptno, NULL, 0, NULL, msg, arg1))
+
+#define _RPT2(rptno, msg, arg1, arg2) \
+        _RPT_BASE((rptno, NULL, 0, NULL, msg, arg1, arg2))
+
+#define _RPTW2(rptno, msg, arg1, arg2) \
+        _RPT_BASE_W((rptno, NULL, 0, NULL, msg, arg1, arg2))
+
+#define _RPT3(rptno, msg, arg1, arg2, arg3) \
+        _RPT_BASE((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3))
+
+#define _RPTW3(rptno, msg, arg1, arg2, arg3) \
+        _RPT_BASE_W((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3))
+
+#define _RPT4(rptno, msg, arg1, arg2, arg3, arg4) \
+        _RPT_BASE((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3, arg4))
+
+#define _RPTW4(rptno, msg, arg1, arg2, arg3, arg4) \
+        _RPT_BASE_W((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3, arg4))
+
+#define _RPT5(rptno, msg, arg1, arg2, arg3, arg4, arg5) \
+        _RPT_BASE((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3, arg4, arg5))
+
+#define _RPTW5(rptno, msg, arg1, arg2, arg3, arg4, arg5) \
+        _RPT_BASE_W((rptno, NULL, 0, NULL, msg, arg1, arg2, arg3, arg4, arg5))
+
+#define _RPTF0(rptno, msg) \
+        _RPT_BASE((rptno, __FILE__, __LINE__, NULL, "%s", msg))
+
+#define _RPTFW0(rptno, msg) \
+        _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, L"%s", msg))
+
+#define _RPTF1(rptno, msg, arg1) \
+        _RPT_BASE((rptno, __FILE__, __LINE__, NULL, msg, arg1))
+
+#define _RPTFW1(rptno, msg, arg1) \
+        _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, msg, arg1))
+
+#define _RPTF2(rptno, msg, arg1, arg2) \
+        _RPT_BASE((rptno, __FILE__, __LINE__, NULL, msg, arg1, arg2))
+
+#define _RPTFW2(rptno, msg, arg1, arg2) \
+        _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, msg, arg1, arg2))
+
+#define _RPTF3(rptno, msg, arg1, arg2, arg3) \
+        _RPT_BASE((rptno, __FILE__, __LINE__, NULL, msg, arg1, arg2, arg3))
+
+#define _RPTFW3(rptno, msg, arg1, arg2, arg3) \
+        _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, msg, arg1, arg2, arg3))
+
+#define _RPTF4(rptno, msg, arg1, arg2, arg3, arg4) \
+        _RPT_BASE((rptno, __FILE__, __LINE__, NULL, msg, arg1, arg2, arg3, arg4))
+
+#define _RPTFW4(rptno, msg, arg1, arg2, arg3, arg4) \
+        _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, msg, arg1, arg2, arg3, arg4))
+
+#define _RPTF5(rptno, msg, arg1, arg2, arg3, arg4, arg5) \
+        _RPT_BASE((rptno, __FILE__, __LINE__, NULL, msg, arg1, arg2, arg3, arg4, arg5))
+
+#define _RPTFW5(rptno, msg, arg1, arg2, arg3, arg4, arg5) \
+        _RPT_BASE_W((rptno, _CRT_WIDE(__FILE__), __LINE__, NULL, msg, arg1, arg2, arg3, arg4, arg5))
+
+#define _CrtDbgBreak() __debugbreak()
+
+#ifdef _CRTDBG_MAP_ALLOC
+
+#define   malloc(s)             _malloc_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   calloc(c, s)          _calloc_dbg(c, s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   realloc(p, s)         _realloc_dbg(p, s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _recalloc(p, c, s)    _recalloc_dbg(p, c, s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _expand(p, s)         _expand_dbg(p, s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   free(p)               _free_dbg(p, _NORMAL_BLOCK)
+#define   _msize(p)             _msize_dbg(p, _NORMAL_BLOCK)
+#define   _aligned_msize(p, a, o)                   _aligned_msize_dbg(p, a, o)
+#define   _aligned_malloc(s, a)                     _aligned_malloc_dbg(s, a, __FILE__, __LINE__)
+#define   _aligned_realloc(p, s, a)                 _aligned_realloc_dbg(p, s, a, __FILE__, __LINE__)
+#define   _aligned_recalloc(p, c, s, a)             _aligned_recalloc_dbg(p, c, s, a, __FILE__, __LINE__)
+#define   _aligned_offset_malloc(s, a, o)           _aligned_offset_malloc_dbg(s, a, o, __FILE__, __LINE__)
+#define   _aligned_offset_realloc(p, s, a, o)       _aligned_offset_realloc_dbg(p, s, a, o, __FILE__, __LINE__)
+#define   _aligned_offset_recalloc(p, c, s, a, o)   _aligned_offset_recalloc_dbg(p, c, s, a, o, __FILE__, __LINE__)
+#define   _aligned_free(p)  _aligned_free_dbg(p)
+
+#define   _malloca(s)        _malloca_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _freea(p)          _freea_dbg(p, _NORMAL_BLOCK)
+
+#define   _strdup(s)         _strdup_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _wcsdup(s)         _wcsdup_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _mbsdup(s)         _strdup_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _tempnam(s1, s2)   _tempnam_dbg(s1, s2, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _wtempnam(s1, s2)  _wtempnam_dbg(s1, s2, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _fullpath(s1, s2, le)     _fullpath_dbg(s1, s2, le, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _wfullpath(s1, s2, le)    _wfullpath_dbg(s1, s2, le, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _getcwd(s, le)      _getcwd_dbg(s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _wgetcwd(s, le)     _wgetcwd_dbg(s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _getdcwd(d, s, le)  _getdcwd_dbg(d, s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _wgetdcwd(d, s, le) _wgetdcwd_dbg(d, s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _getdcwd_nolock(d, s, le)     _getdcwd_lk_dbg(d, s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _wgetdcwd_nolock(d, s, le)    _wgetdcwd_lk_dbg(d, s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _dupenv_s(ps1, size, s2)      _dupenv_s_dbg(ps1, size, s2, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   _wdupenv_s(ps1, size, s2)     _wdupenv_s_dbg(ps1, size, s2, _NORMAL_BLOCK, __FILE__, __LINE__)
+
+#define   strdup(s)          _strdup_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   wcsdup(s)          _wcsdup_dbg(s, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   tempnam(s1, s2)    _tempnam_dbg(s1, s2, _NORMAL_BLOCK, __FILE__, __LINE__)
+#define   getcwd(s, le)      _getcwd_dbg(s, le, _NORMAL_BLOCK, __FILE__, __LINE__)
+
+#endif  /* _CRTDBG_MAP_ALLOC */
+
+_CRTIMP long * __cdecl __p__crtBreakAlloc(void);
+#define _crtBreakAlloc (*__p__crtBreakAlloc())
+
+_CRTIMP long __cdecl _CrtSetBreakAlloc(long _BreakAlloc);
+
+_CRTIMP __checkReturn void * __cdecl _malloc_dbg(size_t _Size, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn void * __cdecl _calloc_dbg(size_t _NumOfElements, size_t _SizeOfElements, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn void * __cdecl _realloc_dbg(void * _Memory, size_t _NewSize, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn void * __cdecl _recalloc_dbg(void * _Memory, size_t _NumOfElements, size_t _SizeOfElements, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn void * __cdecl _expand_dbg(void * _Memory, size_t _NewSize, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP void __cdecl _free_dbg(void * _Memory, int _BlockType);
+_CRTIMP size_t __cdecl _msize_dbg(void * _Memory, int _BlockType);
+_CRTIMP size_t __cdecl _aligned_msize_dbg(void * _Memory, size_t _Alignment, size_t _Offset);
+_CRTIMP __checkReturn void * __cdecl _aligned_malloc_dbg(size_t _Size, size_t _Alignment, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn void * __cdecl _aligned_realloc_dbg(void * _Memory, size_t _Size, size_t _Alignment, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn void * __cdecl _aligned_recalloc_dbg(void * _Memory, size_t _NumOfElements, size_t _SizeOfElements, size_t _Alignment, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn void * __cdecl _aligned_offset_malloc_dbg(size_t _Size, size_t _Alignment, size_t _Offset, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn void * __cdecl _aligned_offset_realloc_dbg(void * _Memory, size_t _Size, size_t _Alignment, size_t _Offset, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn void * __cdecl _aligned_offset_recalloc_dbg(void * _Memory, size_t _NumOfElements, size_t _SizeOfElements, size_t _Alignment, size_t _Offset, const char * _Filename, int _LineNumber);
+_CRTIMP void __cdecl _aligned_free_dbg(void * _Memory);
+_CRTIMP __checkReturn char * __cdecl _strdup_dbg(const char * _Str, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn wchar_t * __cdecl _wcsdup_dbg(const wchar_t * _Str, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn char * __cdecl _tempnam_dbg(const char * _DirName, const char * _FilePrefix, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn wchar_t * __cdecl _wtempnam_dbg(const wchar_t * _DirName, const wchar_t * _FilePrefix, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn char * __cdecl _fullpath_dbg(char * _FullPath, const char * _Path, size_t _SizeInBytes, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn wchar_t * __cdecl _wfullpath_dbg(wchar_t * _FullPath, const wchar_t * _Path, size_t _SizeInWords, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn char * __cdecl _getcwd_dbg(char * _DstBuf, int _SizeInBytes, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn wchar_t * __cdecl _wgetcwd_dbg(wchar_t * _DstBuf, int _SizeInWords, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn char * __cdecl _getdcwd_dbg(int _Drive, char * _DstBuf, int _SizeInBytes, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn wchar_t * __cdecl _wgetdcwd_dbg(int _Drive, wchar_t * _DstBuf, int _SizeInWords, int _BlockType, const char * _Filename, int _LineNumber);
+__checkReturn char * __cdecl _getdcwd_lk_dbg(int _Drive, char * _DstBuf, int _SizeInBytes, int _BlockType, const char * _Filename, int _LineNumber);
+__checkReturn wchar_t * __cdecl _wgetdcwd_lk_dbg(int _Drive, wchar_t * _DstBuf, int _SizeInWords, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn errno_t __cdecl _dupenv_s_dbg(char ** _PBuffer, size_t * _PBufferSizeInBytes, const char * _VarName, int _BlockType, const char * _Filename, int _LineNumber);
+_CRTIMP __checkReturn errno_t __cdecl _wdupenv_s_dbg(wchar_t ** _PBuffer, size_t * _PBufferSizeInWords, const wchar_t * _VarName, int _BlockType, const char * _Filename, int _LineNumber);
+
+#define _malloca_dbg(s, t, f, l)    _malloc_dbg(s, t, f, l)
+#define _freea_dbg(p, t)            _free_dbg(p, t)
+
+_CRTIMP _CRT_ALLOC_HOOK __cdecl _CrtGetAllocHook(void);
+_CRTIMP _CRT_ALLOC_HOOK __cdecl _CrtSetAllocHook(_CRT_ALLOC_HOOK _PfnNewHook);
+
+_CRTIMP int * __cdecl __p__crtDbgFlag(void);
+#define _crtDbgFlag (*__p__crtDbgFlag())
+
+_CRTIMP int __cdecl _CrtCheckMemory(void);
+_CRTIMP int __cdecl _CrtSetDbgFlag(int _NewFlag);
+_CRTIMP void __cdecl _CrtDoForAllClientObjects(void (__cdecl *_PFn)(void *, void *), void * _Context);
+_CRTIMP __checkReturn int __cdecl _CrtIsValidPointer(const void * _Ptr, unsigned int _Bytes, int _ReadWrite);
+_CRTIMP __checkReturn int __cdecl _CrtIsValidHeapPointer(const void * _HeapPtr);
+_CRTIMP int __cdecl _CrtIsMemoryBlock(const void * _Memory, unsigned int _Bytes, long * _RequestNumber, char ** _Filename, int * _LineNumber);
+_CRTIMP __checkReturn int __cdecl _CrtReportBlockType(const void * _Memory);
+_CRTIMP _CRT_DUMP_CLIENT __cdecl _CrtGetDumpClient(void);
+_CRTIMP _CRT_DUMP_CLIENT __cdecl _CrtSetDumpClient(_CRT_DUMP_CLIENT _PFnNewDump);
+_CRTIMP _CRT_MANAGED_HEAP_DEPRECATE void __cdecl _CrtMemCheckpoint(_CrtMemState * _State);
+_CRTIMP _CRT_MANAGED_HEAP_DEPRECATE int __cdecl _CrtMemDifference(_CrtMemState * _State, const _CrtMemState * _OldState, const _CrtMemState * _NewState);
+_CRTIMP void __cdecl _CrtMemDumpAllObjectsSince(const _CrtMemState * _State);
+_CRTIMP void __cdecl _CrtMemDumpStatistics(const _CrtMemState * _State);
+_CRTIMP int __cdecl _CrtDumpMemoryLeaks(void);
+_CRTIMP int __cdecl _CrtSetCheckCount(int _CheckCount);
+_CRTIMP int __cdecl _CrtGetCheckCount(void);
+
+#endif /* _DEBUG */
+
 #ifdef __cplusplus
 }
 /*
lib/libc/include/any-windows-any/ctfutb.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/ctfutb.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/ctfutb.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ctxtcall.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/ctxtcall.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/ctxtcall.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ctype.h
@@ -111,35 +111,38 @@ extern "C" {
   _CRTIMP int __cdecl __toascii(int _C);
   _CRTIMP int __cdecl __iscsymf(int _C);
   _CRTIMP int __cdecl __iscsym(int _C);
-
-#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) || defined (__cplusplus)
-int __cdecl isblank(int _C);
-#endif
+#if __MSVCRT_VERSION__ >= 0xC00
+  _CRTIMP int __cdecl isblank(int _C);
+  _CRTIMP int __cdecl _isblank_l(int _C,_locale_t _Locale);
+#else
+  int __cdecl isblank(int _C);
+#endif  /* msvcr120 */
 #endif
 
 #ifndef _WCTYPE_DEFINED
 #define _WCTYPE_DEFINED
 
-  int __cdecl iswalpha(wint_t _C);
-  int __cdecl iswupper(wint_t _C);
-  int __cdecl iswlower(wint_t _C);
-  int __cdecl iswdigit(wint_t _C);
-  int __cdecl iswxdigit(wint_t _C);
-  int __cdecl iswspace(wint_t _C);
-  int __cdecl iswpunct(wint_t _C);
-  int __cdecl iswalnum(wint_t _C);
-  int __cdecl iswprint(wint_t _C);
-  int __cdecl iswgraph(wint_t _C);
-  int __cdecl iswcntrl(wint_t _C);
-  int __cdecl iswascii(wint_t _C);
+  _CRTIMP int __cdecl iswalpha(wint_t _C);
+  _CRTIMP int __cdecl iswupper(wint_t _C);
+  _CRTIMP int __cdecl iswlower(wint_t _C);
+  _CRTIMP int __cdecl iswdigit(wint_t _C);
+  _CRTIMP int __cdecl iswxdigit(wint_t _C);
+  _CRTIMP int __cdecl iswspace(wint_t _C);
+  _CRTIMP int __cdecl iswpunct(wint_t _C);
+  _CRTIMP int __cdecl iswalnum(wint_t _C);
+  _CRTIMP int __cdecl iswprint(wint_t _C);
+  _CRTIMP int __cdecl iswgraph(wint_t _C);
+  _CRTIMP int __cdecl iswcntrl(wint_t _C);
+  _CRTIMP int __cdecl iswascii(wint_t _C);
 #ifdef _CRT_USE_WINAPI_FAMILY_DESKTOP_APP
-  int __cdecl isleadbyte(int _C);
+  _CRTIMP int __cdecl isleadbyte(int _C);
 #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
-  wint_t __cdecl towupper(wint_t _C);
-  wint_t __cdecl towlower(wint_t _C);
-  int __cdecl iswctype(wint_t _C,wctype_t _Type);
-#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x700 && _WIN32_WINNT >= 0x0600)
-  /* These are available since msvcr80.dll, and in msvcrt.dll since Vista. */
+  _CRTIMP wint_t __cdecl towupper(wint_t _C);
+  _CRTIMP wint_t __cdecl towlower(wint_t _C);
+  _CRTIMP int __cdecl iswctype(wint_t _C,wctype_t _Type);
+#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x600 && _WIN32_WINNT >= 0x0600)
+  /* These are available since msvcr80.dll (__MSVCRT_VERSION__ >= 0x800), and in
+   * msvcrt.dll (__MSVCRT_VERSION__ == 0x600) since Vista (_WIN32_WINNT >= 0x0600). */
   _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale);
   _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale);
   _CRTIMP int __cdecl _iswlower_l(wint_t _C,_locale_t _Locale);
@@ -166,12 +169,15 @@ int __cdecl isblank(int _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);
+  _CRTIMP int __cdecl is_wctype(wint_t _C,wctype_t _Type);
 #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
 
-#if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || !defined (NO_OLDNAMES) || defined (__cplusplus)
-int __cdecl iswblank(wint_t _C);
-#endif
+#if __MSVCRT_VERSION__ >= 0xC00
+  _CRTIMP int __cdecl iswblank(wint_t _C);
+  _CRTIMP int __cdecl _iswblank_l(wint_t _C,_locale_t _Locale);
+#else
+  int __cdecl iswblank(wint_t _C);
+#endif  /* msvcr120 */
 #endif
 
 #ifndef _CTYPE_DISABLE_MACROS
@@ -225,7 +231,8 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);
 #define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT))
 #define iswcntrl(_c) (iswctype(_c,_CONTROL))
 #define iswascii(_c) ((unsigned)(_c) < 0x80)
-#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x700 && _WIN32_WINNT >= 0x0600)
+#define iswblank(_c) (iswctype(_c,_SPACE) || ((_c)=='\t'))
+#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x600 && _WIN32_WINNT >= 0x0600)
 # define _iswalpha_l(_c,_p) (_iswctype_l(_c,_ALPHA,_p))
 # define _iswupper_l(_c,_p) (_iswctype_l(_c,_UPPER,_p))
 # define _iswlower_l(_c,_p) (_iswctype_l(_c,_LOWER,_p))
@@ -238,7 +245,10 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);
 # define _iswgraph_l(_c,_p) (_iswctype_l(_c,_PUNCT|_ALPHA|_DIGIT,_p))
 # define _iswcntrl_l(_c,_p) (_iswctype_l(_c,_CONTROL,_p))
 #endif  /* __MSVCRT_VERSION__ >= 0x800 */
+#if __MSVCRT_VERSION__ >= 0xC00
+#define _iswblank_l(_c,_p) (_iswctype_l(_c,_BLANK,_p) || ((_c)=='\t'))
 #endif
+#endif  /* __cplusplus */
 #endif
 
 #define __iscsymf(_c) (isalpha(_c) || ((_c)=='_'))
@@ -253,10 +263,10 @@ _CRTIMP int __cdecl ___mb_cur_max_func(void);
 
 #ifndef	NO_OLDNAMES
 #ifndef _CTYPE_DEFINED
-  int __cdecl isascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
-  int __cdecl toascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
-  int __cdecl iscsymf(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
-  int __cdecl iscsym(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+  _CRTIMP int __cdecl isascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+  _CRTIMP int __cdecl toascii(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+  _CRTIMP int __cdecl iscsymf(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+  _CRTIMP int __cdecl iscsym(int _C) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
 #else
 #define isascii __isascii
 #define toascii __toascii
lib/libc/include/any-windows-any/d3d10.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d10.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d10.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d10_1.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d10_1.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d10_1.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d10effect.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d10effect.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d10effect.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 9.20 from include/d3d10sdklayers.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d10sdklayers.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d10shader.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d10shader.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d10shader.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 9.20 from include/d3d11.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_1.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d11_1.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11_1.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_2.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d11_2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11_2.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_3.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d11_3.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11_3.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11_4.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d11_4.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11_4.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11on12.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d11on12.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11on12.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d11sdklayers.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d11sdklayers.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d11sdklayers.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d12.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d12.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d12.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d12sdklayers.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d12sdklayers.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d12sdklayers.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d12shader.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d12shader.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d12shader.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3d12video.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3d12video.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3d12video.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/d3dcommon.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/d3dcommon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/d3dcommon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dbgprop.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dbgprop.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/dcommon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dcommon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dcompanimation.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dcompanimation.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dcompanimation.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/ddstream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/ddstream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/ddstream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/devicetopology.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/devicetopology.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/devicetopology.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dimm.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dimm.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dimm.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dinputd.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dinputd.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dinputd.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/direct.h
@@ -25,10 +25,23 @@ extern "C" {
   };
 #endif
 
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_getcwd")
+#undef _getcwd
+#pragma push_macro("_getdcwd")
+#undef _getdcwd
+#pragma push_macro("_getdcwd_nolock")
+#undef _getdcwd_nolock
+#endif
   _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
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_getcwd")
+#pragma pop_macro("_getdcwd")
+#pragma pop_macro("_getdcwd_nolock")
 #endif
   _CRTIMP int __cdecl _chdir(const char *_Path);
   _CRTIMP int __cdecl _mkdir(const char *_Path);
@@ -46,10 +59,23 @@ extern "C" {
 
 #ifndef _WDIRECT_DEFINED
 #define _WDIRECT_DEFINED
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_wgetcwd")
+#undef _wgetcwd
+#pragma push_macro("_wgetdcwd")
+#undef _wgetdcwd
+#pragma push_macro("_wgetdcwd_nolock")
+#undef _wgetdcwd_nolock
+#endif
   _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
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_wgetcwd")
+#pragma pop_macro("_wgetdcwd")
+#pragma pop_macro("_wgetdcwd_nolock")
 #endif
   _CRTIMP int __cdecl _wchdir(const wchar_t *_Path);
   _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path);
@@ -60,7 +86,14 @@ extern "C" {
 
 #define diskfree_t _diskfree_t
 
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("getcwd")
+#undef getcwd
+#endif
   char *__cdecl getcwd(char *_DstBuf,int _SizeInBytes) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("getcwd")
+#endif
   int __cdecl chdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
   int __cdecl mkdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
   int __cdecl rmdir(const char *_Path) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
lib/libc/include/any-windows-any/directmanipulation.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/directmanipulation.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/directmanipulation.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dispex.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dispex.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dispex.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dmodshow.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dmodshow.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dmodshow.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/docobj.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/docobj.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/docobj.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/docobjectservice.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/docobjectservice.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/documenttarget.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/documenttarget.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/downloadmgr.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/downloadmgr.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/drmexternals.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/dvdif.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dvdif.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dwrite.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dwrite.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/dwrite_1.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/dwrite_2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/dwrite_3.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dwrite_3.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -378,6 +378,30 @@ interface IDWriteFactory7;
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IDWriteFactory8_FWD_DEFINED__
+#define __IDWriteFactory8_FWD_DEFINED__
+typedef interface IDWriteFactory8 IDWriteFactory8;
+#ifdef __cplusplus
+interface IDWriteFactory8;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDWriteBitmapRenderTarget2_FWD_DEFINED__
+#define __IDWriteBitmapRenderTarget2_FWD_DEFINED__
+typedef interface IDWriteBitmapRenderTarget2 IDWriteBitmapRenderTarget2;
+#ifdef __cplusplus
+interface IDWriteBitmapRenderTarget2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IDWriteBitmapRenderTarget3_FWD_DEFINED__
+#define __IDWriteBitmapRenderTarget3_FWD_DEFINED__
+typedef interface IDWriteBitmapRenderTarget3 IDWriteBitmapRenderTarget3;
+#ifdef __cplusplus
+interface IDWriteBitmapRenderTarget3;
+#endif /* __cplusplus */
+#endif
+
 /* Headers for imported files */
 
 #include <dwrite_2.h>
@@ -571,11 +595,14 @@ typedef enum DWRITE_PAINT_TYPE {
     DWRITE_PAINT_TYPE_TRANSFORM = 9,
     DWRITE_PAINT_TYPE_COMPOSITE = 10
 } DWRITE_PAINT_TYPE;
+#ifndef DWRITE_PAINT_FEATURE_LEVEL_DEFINED
+#define DWRITE_PAINT_FEATURE_LEVEL_DEFINED
 typedef enum DWRITE_PAINT_FEATURE_LEVEL {
     DWRITE_PAINT_FEATURE_LEVEL_NONE = 0,
     DWRITE_PAINT_FEATURE_LEVEL_COLR_V0 = 1,
     DWRITE_PAINT_FEATURE_LEVEL_COLR_V1 = 2
 } DWRITE_PAINT_FEATURE_LEVEL;
+#endif /* DWRITE_PAINT_FEATURE_LEVEL_DEFINED */
 typedef enum DWRITE_PAINT_ATTRIBUTES {
     DWRITE_PAINT_ATTRIBUTES_NONE = 0,
     DWRITE_PAINT_ATTRIBUTES_USES_PALETTE = 0x1,
@@ -14125,6 +14152,1031 @@ static inline HRESULT IDWriteFactory7_GetSystemFontCollection(IDWriteFactory7* T
 
 #endif  /* __IDWriteFactory7_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IDWriteFactory8 interface
+ */
+#ifndef __IDWriteFactory8_INTERFACE_DEFINED__
+#define __IDWriteFactory8_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ee0a7fb5-def4-4c23-a454-c9c7dc878398")
+IDWriteFactory8 : public IDWriteFactory7
+{
+    virtual HRESULT STDMETHODCALLTYPE TranslateColorGlyphRun(
+        D2D1_POINT_2F origin,
+        const DWRITE_GLYPH_RUN *glyph_run,
+        const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
+        DWRITE_GLYPH_IMAGE_FORMATS image_formats,
+        DWRITE_PAINT_FEATURE_LEVEL feature_level,
+        DWRITE_MEASURING_MODE measuring_mode,
+        const DWRITE_MATRIX *world_and_dpi_transform,
+        UINT32 palette_index,
+        IDWriteColorGlyphRunEnumerator1 **enumerator) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDWriteFactory8, 0xee0a7fb5, 0xdef4, 0x4c23, 0xa4,0x54, 0xc9,0xc7,0xdc,0x87,0x83,0x98)
+#endif
+#else
+typedef struct IDWriteFactory8Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDWriteFactory8 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDWriteFactory8 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDWriteFactory8 *This);
+
+    /*** IDWriteFactory methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSystemFontCollection)(
+        IDWriteFactory8 *This,
+        IDWriteFontCollection **collection,
+        WINBOOL check_for_updates);
+
+    HRESULT (STDMETHODCALLTYPE *CreateCustomFontCollection)(
+        IDWriteFactory8 *This,
+        IDWriteFontCollectionLoader *loader,
+        const void *key,
+        UINT32 key_size,
+        IDWriteFontCollection **collection);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterFontCollectionLoader)(
+        IDWriteFactory8 *This,
+        IDWriteFontCollectionLoader *loader);
+
+    HRESULT (STDMETHODCALLTYPE *UnregisterFontCollectionLoader)(
+        IDWriteFactory8 *This,
+        IDWriteFontCollectionLoader *loader);
+
+    HRESULT (STDMETHODCALLTYPE *CreateFontFileReference)(
+        IDWriteFactory8 *This,
+        const WCHAR *path,
+        const FILETIME *writetime,
+        IDWriteFontFile **font_file);
+
+    HRESULT (STDMETHODCALLTYPE *CreateCustomFontFileReference)(
+        IDWriteFactory8 *This,
+        const void *reference_key,
+        UINT32 key_size,
+        IDWriteFontFileLoader *loader,
+        IDWriteFontFile **font_file);
+
+    HRESULT (STDMETHODCALLTYPE *CreateFontFace)(
+        IDWriteFactory8 *This,
+        DWRITE_FONT_FACE_TYPE facetype,
+        UINT32 files_number,
+        IDWriteFontFile *const *font_files,
+        UINT32 index,
+        DWRITE_FONT_SIMULATIONS sim_flags,
+        IDWriteFontFace **font_face);
+
+    HRESULT (STDMETHODCALLTYPE *CreateRenderingParams)(
+        IDWriteFactory8 *This,
+        IDWriteRenderingParams **params);
+
+    HRESULT (STDMETHODCALLTYPE *CreateMonitorRenderingParams)(
+        IDWriteFactory8 *This,
+        HMONITOR monitor,
+        IDWriteRenderingParams **params);
+
+    HRESULT (STDMETHODCALLTYPE *CreateCustomRenderingParams)(
+        IDWriteFactory8 *This,
+        FLOAT gamma,
+        FLOAT enhancedContrast,
+        FLOAT cleartype_level,
+        DWRITE_PIXEL_GEOMETRY geometry,
+        DWRITE_RENDERING_MODE mode,
+        IDWriteRenderingParams **params);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterFontFileLoader)(
+        IDWriteFactory8 *This,
+        IDWriteFontFileLoader *loader);
+
+    HRESULT (STDMETHODCALLTYPE *UnregisterFontFileLoader)(
+        IDWriteFactory8 *This,
+        IDWriteFontFileLoader *loader);
+
+    HRESULT (STDMETHODCALLTYPE *CreateTextFormat)(
+        IDWriteFactory8 *This,
+        const WCHAR *family_name,
+        IDWriteFontCollection *collection,
+        DWRITE_FONT_WEIGHT weight,
+        DWRITE_FONT_STYLE style,
+        DWRITE_FONT_STRETCH stretch,
+        FLOAT size,
+        const WCHAR *locale,
+        IDWriteTextFormat **format);
+
+    HRESULT (STDMETHODCALLTYPE *CreateTypography)(
+        IDWriteFactory8 *This,
+        IDWriteTypography **typography);
+
+    HRESULT (STDMETHODCALLTYPE *GetGdiInterop)(
+        IDWriteFactory8 *This,
+        IDWriteGdiInterop **gdi_interop);
+
+    HRESULT (STDMETHODCALLTYPE *CreateTextLayout)(
+        IDWriteFactory8 *This,
+        const WCHAR *string,
+        UINT32 len,
+        IDWriteTextFormat *format,
+        FLOAT max_width,
+        FLOAT max_height,
+        IDWriteTextLayout **layout);
+
+    HRESULT (STDMETHODCALLTYPE *CreateGdiCompatibleTextLayout)(
+        IDWriteFactory8 *This,
+        const WCHAR *string,
+        UINT32 len,
+        IDWriteTextFormat *format,
+        FLOAT layout_width,
+        FLOAT layout_height,
+        FLOAT pixels_per_dip,
+        const DWRITE_MATRIX *transform,
+        WINBOOL use_gdi_natural,
+        IDWriteTextLayout **layout);
+
+    HRESULT (STDMETHODCALLTYPE *CreateEllipsisTrimmingSign)(
+        IDWriteFactory8 *This,
+        IDWriteTextFormat *format,
+        IDWriteInlineObject **trimming_sign);
+
+    HRESULT (STDMETHODCALLTYPE *CreateTextAnalyzer)(
+        IDWriteFactory8 *This,
+        IDWriteTextAnalyzer **analyzer);
+
+    HRESULT (STDMETHODCALLTYPE *CreateNumberSubstitution)(
+        IDWriteFactory8 *This,
+        DWRITE_NUMBER_SUBSTITUTION_METHOD method,
+        const WCHAR *locale,
+        WINBOOL ignore_user_override,
+        IDWriteNumberSubstitution **substitution);
+
+    HRESULT (STDMETHODCALLTYPE *CreateGlyphRunAnalysis)(
+        IDWriteFactory8 *This,
+        const DWRITE_GLYPH_RUN *glyph_run,
+        FLOAT pixels_per_dip,
+        const DWRITE_MATRIX *transform,
+        DWRITE_RENDERING_MODE rendering_mode,
+        DWRITE_MEASURING_MODE measuring_mode,
+        FLOAT baseline_x,
+        FLOAT baseline_y,
+        IDWriteGlyphRunAnalysis **analysis);
+
+    /*** IDWriteFactory1 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetEudcFontCollection)(
+        IDWriteFactory8 *This,
+        IDWriteFontCollection **collection,
+        WINBOOL check_for_updates);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory1_CreateCustomRenderingParams)(
+        IDWriteFactory8 *This,
+        FLOAT gamma,
+        FLOAT enhcontrast,
+        FLOAT enhcontrast_grayscale,
+        FLOAT cleartype_level,
+        DWRITE_PIXEL_GEOMETRY geometry,
+        DWRITE_RENDERING_MODE mode,
+        IDWriteRenderingParams1 **params);
+
+    /*** IDWriteFactory2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSystemFontFallback)(
+        IDWriteFactory8 *This,
+        IDWriteFontFallback **fallback);
+
+    HRESULT (STDMETHODCALLTYPE *CreateFontFallbackBuilder)(
+        IDWriteFactory8 *This,
+        IDWriteFontFallbackBuilder **fallbackbuilder);
+
+    HRESULT (STDMETHODCALLTYPE *TranslateColorGlyphRun)(
+        IDWriteFactory8 *This,
+        FLOAT originX,
+        FLOAT originY,
+        const DWRITE_GLYPH_RUN *run,
+        const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
+        DWRITE_MEASURING_MODE mode,
+        const DWRITE_MATRIX *transform,
+        UINT32 palette_index,
+        IDWriteColorGlyphRunEnumerator **colorlayers);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateCustomRenderingParams)(
+        IDWriteFactory8 *This,
+        FLOAT gamma,
+        FLOAT contrast,
+        FLOAT grayscalecontrast,
+        FLOAT cleartypeLevel,
+        DWRITE_PIXEL_GEOMETRY pixelGeometry,
+        DWRITE_RENDERING_MODE renderingMode,
+        DWRITE_GRID_FIT_MODE gridFitMode,
+        IDWriteRenderingParams2 **params);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory2_CreateGlyphRunAnalysis)(
+        IDWriteFactory8 *This,
+        const DWRITE_GLYPH_RUN *run,
+        const DWRITE_MATRIX *transform,
+        DWRITE_RENDERING_MODE renderingMode,
+        DWRITE_MEASURING_MODE measuringMode,
+        DWRITE_GRID_FIT_MODE gridFitMode,
+        DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
+        FLOAT originX,
+        FLOAT originY,
+        IDWriteGlyphRunAnalysis **analysis);
+
+    /*** IDWriteFactory3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateGlyphRunAnalysis)(
+        IDWriteFactory8 *This,
+        const DWRITE_GLYPH_RUN *run,
+        const DWRITE_MATRIX *transform,
+        DWRITE_RENDERING_MODE1 rendering_mode,
+        DWRITE_MEASURING_MODE measuring_mode,
+        DWRITE_GRID_FIT_MODE gridfit_mode,
+        DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,
+        FLOAT origin_x,
+        FLOAT origin_y,
+        IDWriteGlyphRunAnalysis **analysis);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_CreateCustomRenderingParams)(
+        IDWriteFactory8 *This,
+        FLOAT gamma,
+        FLOAT enhanced_contrast,
+        FLOAT grayscale_enhanced_contrast,
+        FLOAT cleartype_level,
+        DWRITE_PIXEL_GEOMETRY pixel_geometry,
+        DWRITE_RENDERING_MODE1 rendering_mode,
+        DWRITE_GRID_FIT_MODE gridfit_mode,
+        IDWriteRenderingParams3 **params);
+
+    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference_)(
+        IDWriteFactory8 *This,
+        IDWriteFontFile *file,
+        UINT32 index,
+        DWRITE_FONT_SIMULATIONS simulations,
+        IDWriteFontFaceReference **reference);
+
+    HRESULT (STDMETHODCALLTYPE *CreateFontFaceReference)(
+        IDWriteFactory8 *This,
+        const WCHAR *path,
+        const FILETIME *writetime,
+        UINT32 index,
+        DWRITE_FONT_SIMULATIONS simulations,
+        IDWriteFontFaceReference **reference);
+
+    HRESULT (STDMETHODCALLTYPE *GetSystemFontSet)(
+        IDWriteFactory8 *This,
+        IDWriteFontSet **fontset);
+
+    HRESULT (STDMETHODCALLTYPE *CreateFontSetBuilder)(
+        IDWriteFactory8 *This,
+        IDWriteFontSetBuilder **builder);
+
+    HRESULT (STDMETHODCALLTYPE *CreateFontCollectionFromFontSet)(
+        IDWriteFactory8 *This,
+        IDWriteFontSet *fontset,
+        IDWriteFontCollection1 **collection);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory3_GetSystemFontCollection)(
+        IDWriteFactory8 *This,
+        WINBOOL include_downloadable,
+        IDWriteFontCollection1 **collection,
+        WINBOOL check_for_updates);
+
+    HRESULT (STDMETHODCALLTYPE *GetFontDownloadQueue)(
+        IDWriteFactory8 *This,
+        IDWriteFontDownloadQueue **queue);
+
+    /*** IDWriteFactory4 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory4_TranslateColorGlyphRun)(
+        IDWriteFactory8 *This,
+        D2D1_POINT_2F baseline_origin,
+        const DWRITE_GLYPH_RUN *run,
+        const DWRITE_GLYPH_RUN_DESCRIPTION *run_desc,
+        DWRITE_GLYPH_IMAGE_FORMATS desired_formats,
+        DWRITE_MEASURING_MODE measuring_mode,
+        const DWRITE_MATRIX *transform,
+        UINT32 palette,
+        IDWriteColorGlyphRunEnumerator1 **layers);
+
+    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins_)(
+        IDWriteFactory8 *This,
+        const DWRITE_GLYPH_RUN *run,
+        D2D1_POINT_2F baseline_origin,
+        D2D1_POINT_2F *origins);
+
+    HRESULT (STDMETHODCALLTYPE *ComputeGlyphOrigins)(
+        IDWriteFactory8 *This,
+        const DWRITE_GLYPH_RUN *run,
+        DWRITE_MEASURING_MODE measuring_mode,
+        D2D1_POINT_2F baseline_origin,
+        const DWRITE_MATRIX *transform,
+        D2D1_POINT_2F *origins);
+
+    /*** IDWriteFactory5 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory5_CreateFontSetBuilder)(
+        IDWriteFactory8 *This,
+        IDWriteFontSetBuilder1 **fontset_builder);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInMemoryFontFileLoader)(
+        IDWriteFactory8 *This,
+        IDWriteInMemoryFontFileLoader **loader);
+
+    HRESULT (STDMETHODCALLTYPE *CreateHttpFontFileLoader)(
+        IDWriteFactory8 *This,
+        const WCHAR *referrer_url,
+        const WCHAR *extra_headers,
+        IDWriteRemoteFontFileLoader **loader);
+
+    DWRITE_CONTAINER_TYPE (STDMETHODCALLTYPE *AnalyzeContainerType)(
+        IDWriteFactory8 *This,
+        const void *data,
+        UINT32 data_size);
+
+    HRESULT (STDMETHODCALLTYPE *UnpackFontFile)(
+        IDWriteFactory8 *This,
+        DWRITE_CONTAINER_TYPE container_type,
+        const void *data,
+        UINT32 data_size,
+        IDWriteFontFileStream **stream);
+
+    /*** IDWriteFactory6 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontFaceReference)(
+        IDWriteFactory8 *This,
+        IDWriteFontFile *file,
+        UINT32 face_index,
+        DWRITE_FONT_SIMULATIONS simulations,
+        const DWRITE_FONT_AXIS_VALUE *axis_values,
+        UINT32 num_axis,
+        IDWriteFontFaceReference1 **face_ref);
+
+    HRESULT (STDMETHODCALLTYPE *CreateFontResource)(
+        IDWriteFactory8 *This,
+        IDWriteFontFile *file,
+        UINT32 face_index,
+        IDWriteFontResource **resource);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontSet)(
+        IDWriteFactory8 *This,
+        WINBOOL include_downloadable,
+        IDWriteFontSet1 **fontset);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_GetSystemFontCollection)(
+        IDWriteFactory8 *This,
+        WINBOOL include_downloadable,
+        DWRITE_FONT_FAMILY_MODEL family_model,
+        IDWriteFontCollection2 **collection);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontCollectionFromFontSet)(
+        IDWriteFactory8 *This,
+        IDWriteFontSet *fontset,
+        DWRITE_FONT_FAMILY_MODEL family_model,
+        IDWriteFontCollection2 **collection);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateFontSetBuilder)(
+        IDWriteFactory8 *This,
+        IDWriteFontSetBuilder2 **builder);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory6_CreateTextFormat)(
+        IDWriteFactory8 *This,
+        const WCHAR *familyname,
+        IDWriteFontCollection *collection,
+        const DWRITE_FONT_AXIS_VALUE *axis_values,
+        UINT32 num_axis,
+        FLOAT fontsize,
+        const WCHAR *localename,
+        IDWriteTextFormat3 **format);
+
+    /*** IDWriteFactory7 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontSet)(
+        IDWriteFactory8 *This,
+        WINBOOL include_downloadable,
+        IDWriteFontSet2 **fontset);
+
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory7_GetSystemFontCollection)(
+        IDWriteFactory8 *This,
+        WINBOOL include_downloadable,
+        DWRITE_FONT_FAMILY_MODEL family_model,
+        IDWriteFontCollection3 **collection);
+
+    /*** IDWriteFactory8 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IDWriteFactory8_TranslateColorGlyphRun)(
+        IDWriteFactory8 *This,
+        D2D1_POINT_2F origin,
+        const DWRITE_GLYPH_RUN *glyph_run,
+        const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
+        DWRITE_GLYPH_IMAGE_FORMATS image_formats,
+        DWRITE_PAINT_FEATURE_LEVEL feature_level,
+        DWRITE_MEASURING_MODE measuring_mode,
+        const DWRITE_MATRIX *world_and_dpi_transform,
+        UINT32 palette_index,
+        IDWriteColorGlyphRunEnumerator1 **enumerator);
+
+    END_INTERFACE
+} IDWriteFactory8Vtbl;
+
+interface IDWriteFactory8 {
+    CONST_VTBL IDWriteFactory8Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDWriteFactory8_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDWriteFactory8_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDWriteFactory8_Release(This) (This)->lpVtbl->Release(This)
+/*** IDWriteFactory methods ***/
+#define IDWriteFactory8_CreateCustomFontCollection(This,loader,key,key_size,collection) (This)->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection)
+#define IDWriteFactory8_RegisterFontCollectionLoader(This,loader) (This)->lpVtbl->RegisterFontCollectionLoader(This,loader)
+#define IDWriteFactory8_UnregisterFontCollectionLoader(This,loader) (This)->lpVtbl->UnregisterFontCollectionLoader(This,loader)
+#define IDWriteFactory8_CreateFontFileReference(This,path,writetime,font_file) (This)->lpVtbl->CreateFontFileReference(This,path,writetime,font_file)
+#define IDWriteFactory8_CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file) (This)->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file)
+#define IDWriteFactory8_CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face) (This)->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face)
+#define IDWriteFactory8_CreateRenderingParams(This,params) (This)->lpVtbl->CreateRenderingParams(This,params)
+#define IDWriteFactory8_CreateMonitorRenderingParams(This,monitor,params) (This)->lpVtbl->CreateMonitorRenderingParams(This,monitor,params)
+#define IDWriteFactory8_RegisterFontFileLoader(This,loader) (This)->lpVtbl->RegisterFontFileLoader(This,loader)
+#define IDWriteFactory8_UnregisterFontFileLoader(This,loader) (This)->lpVtbl->UnregisterFontFileLoader(This,loader)
+#define IDWriteFactory8_CreateTypography(This,typography) (This)->lpVtbl->CreateTypography(This,typography)
+#define IDWriteFactory8_GetGdiInterop(This,gdi_interop) (This)->lpVtbl->GetGdiInterop(This,gdi_interop)
+#define IDWriteFactory8_CreateTextLayout(This,string,len,format,max_width,max_height,layout) (This)->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout)
+#define IDWriteFactory8_CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout) (This)->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout)
+#define IDWriteFactory8_CreateEllipsisTrimmingSign(This,format,trimming_sign) (This)->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign)
+#define IDWriteFactory8_CreateTextAnalyzer(This,analyzer) (This)->lpVtbl->CreateTextAnalyzer(This,analyzer)
+#define IDWriteFactory8_CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution) (This)->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution)
+/*** IDWriteFactory1 methods ***/
+#define IDWriteFactory8_GetEudcFontCollection(This,collection,check_for_updates) (This)->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates)
+/*** IDWriteFactory2 methods ***/
+#define IDWriteFactory8_GetSystemFontFallback(This,fallback) (This)->lpVtbl->GetSystemFontFallback(This,fallback)
+#define IDWriteFactory8_CreateFontFallbackBuilder(This,fallbackbuilder) (This)->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder)
+/*** IDWriteFactory3 methods ***/
+#define IDWriteFactory8_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis) (This)->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis)
+#define IDWriteFactory8_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params) (This)->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params)
+#define IDWriteFactory8_CreateFontFaceReference_(This,file,index,simulations,reference) (This)->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference)
+#define IDWriteFactory8_GetFontDownloadQueue(This,queue) (This)->lpVtbl->GetFontDownloadQueue(This,queue)
+/*** IDWriteFactory4 methods ***/
+#define IDWriteFactory8_ComputeGlyphOrigins_(This,run,baseline_origin,origins) (This)->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins)
+#define IDWriteFactory8_ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins) (This)->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins)
+/*** IDWriteFactory5 methods ***/
+#define IDWriteFactory8_CreateInMemoryFontFileLoader(This,loader) (This)->lpVtbl->CreateInMemoryFontFileLoader(This,loader)
+#define IDWriteFactory8_CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader) (This)->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader)
+#define IDWriteFactory8_AnalyzeContainerType(This,data,data_size) (This)->lpVtbl->AnalyzeContainerType(This,data,data_size)
+#define IDWriteFactory8_UnpackFontFile(This,container_type,data,data_size,stream) (This)->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream)
+/*** IDWriteFactory6 methods ***/
+#define IDWriteFactory8_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref) (This)->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref)
+#define IDWriteFactory8_CreateFontResource(This,file,face_index,resource) (This)->lpVtbl->CreateFontResource(This,file,face_index,resource)
+#define IDWriteFactory8_CreateFontCollectionFromFontSet(This,fontset,family_model,collection) (This)->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection)
+#define IDWriteFactory8_CreateFontSetBuilder(This,builder) (This)->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder)
+#define IDWriteFactory8_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format) (This)->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format)
+/*** IDWriteFactory7 methods ***/
+#define IDWriteFactory8_GetSystemFontSet(This,include_downloadable,fontset) (This)->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset)
+#define IDWriteFactory8_GetSystemFontCollection(This,include_downloadable,family_model,collection) (This)->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection)
+/*** IDWriteFactory8 methods ***/
+#define IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator) (This)->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IDWriteFactory8_QueryInterface(IDWriteFactory8* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IDWriteFactory8_AddRef(IDWriteFactory8* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IDWriteFactory8_Release(IDWriteFactory8* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDWriteFactory methods ***/
+static inline HRESULT IDWriteFactory8_CreateCustomFontCollection(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader,const void *key,UINT32 key_size,IDWriteFontCollection **collection) {
+    return This->lpVtbl->CreateCustomFontCollection(This,loader,key,key_size,collection);
+}
+static inline HRESULT IDWriteFactory8_RegisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) {
+    return This->lpVtbl->RegisterFontCollectionLoader(This,loader);
+}
+static inline HRESULT IDWriteFactory8_UnregisterFontCollectionLoader(IDWriteFactory8* This,IDWriteFontCollectionLoader *loader) {
+    return This->lpVtbl->UnregisterFontCollectionLoader(This,loader);
+}
+static inline HRESULT IDWriteFactory8_CreateFontFileReference(IDWriteFactory8* This,const WCHAR *path,const FILETIME *writetime,IDWriteFontFile **font_file) {
+    return This->lpVtbl->CreateFontFileReference(This,path,writetime,font_file);
+}
+static inline HRESULT IDWriteFactory8_CreateCustomFontFileReference(IDWriteFactory8* This,const void *reference_key,UINT32 key_size,IDWriteFontFileLoader *loader,IDWriteFontFile **font_file) {
+    return This->lpVtbl->CreateCustomFontFileReference(This,reference_key,key_size,loader,font_file);
+}
+static inline HRESULT IDWriteFactory8_CreateFontFace(IDWriteFactory8* This,DWRITE_FONT_FACE_TYPE facetype,UINT32 files_number,IDWriteFontFile *const *font_files,UINT32 index,DWRITE_FONT_SIMULATIONS sim_flags,IDWriteFontFace **font_face) {
+    return This->lpVtbl->CreateFontFace(This,facetype,files_number,font_files,index,sim_flags,font_face);
+}
+static inline HRESULT IDWriteFactory8_CreateRenderingParams(IDWriteFactory8* This,IDWriteRenderingParams **params) {
+    return This->lpVtbl->CreateRenderingParams(This,params);
+}
+static inline HRESULT IDWriteFactory8_CreateMonitorRenderingParams(IDWriteFactory8* This,HMONITOR monitor,IDWriteRenderingParams **params) {
+    return This->lpVtbl->CreateMonitorRenderingParams(This,monitor,params);
+}
+static inline HRESULT IDWriteFactory8_RegisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) {
+    return This->lpVtbl->RegisterFontFileLoader(This,loader);
+}
+static inline HRESULT IDWriteFactory8_UnregisterFontFileLoader(IDWriteFactory8* This,IDWriteFontFileLoader *loader) {
+    return This->lpVtbl->UnregisterFontFileLoader(This,loader);
+}
+static inline HRESULT IDWriteFactory8_CreateTypography(IDWriteFactory8* This,IDWriteTypography **typography) {
+    return This->lpVtbl->CreateTypography(This,typography);
+}
+static inline HRESULT IDWriteFactory8_GetGdiInterop(IDWriteFactory8* This,IDWriteGdiInterop **gdi_interop) {
+    return This->lpVtbl->GetGdiInterop(This,gdi_interop);
+}
+static inline HRESULT IDWriteFactory8_CreateTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT max_width,FLOAT max_height,IDWriteTextLayout **layout) {
+    return This->lpVtbl->CreateTextLayout(This,string,len,format,max_width,max_height,layout);
+}
+static inline HRESULT IDWriteFactory8_CreateGdiCompatibleTextLayout(IDWriteFactory8* This,const WCHAR *string,UINT32 len,IDWriteTextFormat *format,FLOAT layout_width,FLOAT layout_height,FLOAT pixels_per_dip,const DWRITE_MATRIX *transform,WINBOOL use_gdi_natural,IDWriteTextLayout **layout) {
+    return This->lpVtbl->CreateGdiCompatibleTextLayout(This,string,len,format,layout_width,layout_height,pixels_per_dip,transform,use_gdi_natural,layout);
+}
+static inline HRESULT IDWriteFactory8_CreateEllipsisTrimmingSign(IDWriteFactory8* This,IDWriteTextFormat *format,IDWriteInlineObject **trimming_sign) {
+    return This->lpVtbl->CreateEllipsisTrimmingSign(This,format,trimming_sign);
+}
+static inline HRESULT IDWriteFactory8_CreateTextAnalyzer(IDWriteFactory8* This,IDWriteTextAnalyzer **analyzer) {
+    return This->lpVtbl->CreateTextAnalyzer(This,analyzer);
+}
+static inline HRESULT IDWriteFactory8_CreateNumberSubstitution(IDWriteFactory8* This,DWRITE_NUMBER_SUBSTITUTION_METHOD method,const WCHAR *locale,WINBOOL ignore_user_override,IDWriteNumberSubstitution **substitution) {
+    return This->lpVtbl->CreateNumberSubstitution(This,method,locale,ignore_user_override,substitution);
+}
+/*** IDWriteFactory1 methods ***/
+static inline HRESULT IDWriteFactory8_GetEudcFontCollection(IDWriteFactory8* This,IDWriteFontCollection **collection,WINBOOL check_for_updates) {
+    return This->lpVtbl->GetEudcFontCollection(This,collection,check_for_updates);
+}
+/*** IDWriteFactory2 methods ***/
+static inline HRESULT IDWriteFactory8_GetSystemFontFallback(IDWriteFactory8* This,IDWriteFontFallback **fallback) {
+    return This->lpVtbl->GetSystemFontFallback(This,fallback);
+}
+static inline HRESULT IDWriteFactory8_CreateFontFallbackBuilder(IDWriteFactory8* This,IDWriteFontFallbackBuilder **fallbackbuilder) {
+    return This->lpVtbl->CreateFontFallbackBuilder(This,fallbackbuilder);
+}
+/*** IDWriteFactory3 methods ***/
+static inline HRESULT IDWriteFactory8_CreateGlyphRunAnalysis(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,const DWRITE_MATRIX *transform,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_MEASURING_MODE measuring_mode,DWRITE_GRID_FIT_MODE gridfit_mode,DWRITE_TEXT_ANTIALIAS_MODE antialias_mode,FLOAT origin_x,FLOAT origin_y,IDWriteGlyphRunAnalysis **analysis) {
+    return This->lpVtbl->IDWriteFactory3_CreateGlyphRunAnalysis(This,run,transform,rendering_mode,measuring_mode,gridfit_mode,antialias_mode,origin_x,origin_y,analysis);
+}
+static inline HRESULT IDWriteFactory8_CreateCustomRenderingParams(IDWriteFactory8* This,FLOAT gamma,FLOAT enhanced_contrast,FLOAT grayscale_enhanced_contrast,FLOAT cleartype_level,DWRITE_PIXEL_GEOMETRY pixel_geometry,DWRITE_RENDERING_MODE1 rendering_mode,DWRITE_GRID_FIT_MODE gridfit_mode,IDWriteRenderingParams3 **params) {
+    return This->lpVtbl->IDWriteFactory3_CreateCustomRenderingParams(This,gamma,enhanced_contrast,grayscale_enhanced_contrast,cleartype_level,pixel_geometry,rendering_mode,gridfit_mode,params);
+}
+static inline HRESULT IDWriteFactory8_CreateFontFaceReference_(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 index,DWRITE_FONT_SIMULATIONS simulations,IDWriteFontFaceReference **reference) {
+    return This->lpVtbl->CreateFontFaceReference_(This,file,index,simulations,reference);
+}
+static inline HRESULT IDWriteFactory8_GetFontDownloadQueue(IDWriteFactory8* This,IDWriteFontDownloadQueue **queue) {
+    return This->lpVtbl->GetFontDownloadQueue(This,queue);
+}
+/*** IDWriteFactory4 methods ***/
+static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins_(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,D2D1_POINT_2F baseline_origin,D2D1_POINT_2F *origins) {
+    return This->lpVtbl->ComputeGlyphOrigins_(This,run,baseline_origin,origins);
+}
+static inline HRESULT IDWriteFactory8_ComputeGlyphOrigins(IDWriteFactory8* This,const DWRITE_GLYPH_RUN *run,DWRITE_MEASURING_MODE measuring_mode,D2D1_POINT_2F baseline_origin,const DWRITE_MATRIX *transform,D2D1_POINT_2F *origins) {
+    return This->lpVtbl->ComputeGlyphOrigins(This,run,measuring_mode,baseline_origin,transform,origins);
+}
+/*** IDWriteFactory5 methods ***/
+static inline HRESULT IDWriteFactory8_CreateInMemoryFontFileLoader(IDWriteFactory8* This,IDWriteInMemoryFontFileLoader **loader) {
+    return This->lpVtbl->CreateInMemoryFontFileLoader(This,loader);
+}
+static inline HRESULT IDWriteFactory8_CreateHttpFontFileLoader(IDWriteFactory8* This,const WCHAR *referrer_url,const WCHAR *extra_headers,IDWriteRemoteFontFileLoader **loader) {
+    return This->lpVtbl->CreateHttpFontFileLoader(This,referrer_url,extra_headers,loader);
+}
+static inline DWRITE_CONTAINER_TYPE IDWriteFactory8_AnalyzeContainerType(IDWriteFactory8* This,const void *data,UINT32 data_size) {
+    return This->lpVtbl->AnalyzeContainerType(This,data,data_size);
+}
+static inline HRESULT IDWriteFactory8_UnpackFontFile(IDWriteFactory8* This,DWRITE_CONTAINER_TYPE container_type,const void *data,UINT32 data_size,IDWriteFontFileStream **stream) {
+    return This->lpVtbl->UnpackFontFile(This,container_type,data,data_size,stream);
+}
+/*** IDWriteFactory6 methods ***/
+static inline HRESULT IDWriteFactory8_CreateFontFaceReference(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,DWRITE_FONT_SIMULATIONS simulations,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,IDWriteFontFaceReference1 **face_ref) {
+    return This->lpVtbl->IDWriteFactory6_CreateFontFaceReference(This,file,face_index,simulations,axis_values,num_axis,face_ref);
+}
+static inline HRESULT IDWriteFactory8_CreateFontResource(IDWriteFactory8* This,IDWriteFontFile *file,UINT32 face_index,IDWriteFontResource **resource) {
+    return This->lpVtbl->CreateFontResource(This,file,face_index,resource);
+}
+static inline HRESULT IDWriteFactory8_CreateFontCollectionFromFontSet(IDWriteFactory8* This,IDWriteFontSet *fontset,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection2 **collection) {
+    return This->lpVtbl->IDWriteFactory6_CreateFontCollectionFromFontSet(This,fontset,family_model,collection);
+}
+static inline HRESULT IDWriteFactory8_CreateFontSetBuilder(IDWriteFactory8* This,IDWriteFontSetBuilder2 **builder) {
+    return This->lpVtbl->IDWriteFactory6_CreateFontSetBuilder(This,builder);
+}
+static inline HRESULT IDWriteFactory8_CreateTextFormat(IDWriteFactory8* This,const WCHAR *familyname,IDWriteFontCollection *collection,const DWRITE_FONT_AXIS_VALUE *axis_values,UINT32 num_axis,FLOAT fontsize,const WCHAR *localename,IDWriteTextFormat3 **format) {
+    return This->lpVtbl->IDWriteFactory6_CreateTextFormat(This,familyname,collection,axis_values,num_axis,fontsize,localename,format);
+}
+/*** IDWriteFactory7 methods ***/
+static inline HRESULT IDWriteFactory8_GetSystemFontSet(IDWriteFactory8* This,WINBOOL include_downloadable,IDWriteFontSet2 **fontset) {
+    return This->lpVtbl->IDWriteFactory7_GetSystemFontSet(This,include_downloadable,fontset);
+}
+static inline HRESULT IDWriteFactory8_GetSystemFontCollection(IDWriteFactory8* This,WINBOOL include_downloadable,DWRITE_FONT_FAMILY_MODEL family_model,IDWriteFontCollection3 **collection) {
+    return This->lpVtbl->IDWriteFactory7_GetSystemFontCollection(This,include_downloadable,family_model,collection);
+}
+/*** IDWriteFactory8 methods ***/
+static inline HRESULT IDWriteFactory8_TranslateColorGlyphRun(IDWriteFactory8* This,D2D1_POINT_2F origin,const DWRITE_GLYPH_RUN *glyph_run,const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,DWRITE_GLYPH_IMAGE_FORMATS image_formats,DWRITE_PAINT_FEATURE_LEVEL feature_level,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_MATRIX *world_and_dpi_transform,UINT32 palette_index,IDWriteColorGlyphRunEnumerator1 **enumerator) {
+    return This->lpVtbl->IDWriteFactory8_TranslateColorGlyphRun(This,origin,glyph_run,glyph_run_desc,image_formats,feature_level,measuring_mode,world_and_dpi_transform,palette_index,enumerator);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDWriteFactory8_INTERFACE_DEFINED__ */
+
+typedef struct DWRITE_BITMAP_DATA_BGRA32 {
+    UINT32 width;
+    UINT32 height;
+    UINT32 *pixels;
+} DWRITE_BITMAP_DATA_BGRA32;
+/*****************************************************************************
+ * IDWriteBitmapRenderTarget2 interface
+ */
+#ifndef __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__
+#define __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("c553a742-fc01-44da-a66e-b8b9ed6c3995")
+IDWriteBitmapRenderTarget2 : public IDWriteBitmapRenderTarget1
+{
+    virtual HRESULT STDMETHODCALLTYPE GetBitmapData(
+        DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDWriteBitmapRenderTarget2, 0xc553a742, 0xfc01, 0x44da, 0xa6,0x6e, 0xb8,0xb9,0xed,0x6c,0x39,0x95)
+#endif
+#else
+typedef struct IDWriteBitmapRenderTarget2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDWriteBitmapRenderTarget2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDWriteBitmapRenderTarget2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDWriteBitmapRenderTarget2 *This);
+
+    /*** IDWriteBitmapRenderTarget methods ***/
+    HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
+        IDWriteBitmapRenderTarget2 *This,
+        FLOAT baselineOriginX,
+        FLOAT baselineOriginY,
+        DWRITE_MEASURING_MODE measuring_mode,
+        const DWRITE_GLYPH_RUN *glyph_run,
+        IDWriteRenderingParams *params,
+        COLORREF textColor,
+        RECT *blackbox_rect);
+
+    HDC (STDMETHODCALLTYPE *GetMemoryDC)(
+        IDWriteBitmapRenderTarget2 *This);
+
+    FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
+        IDWriteBitmapRenderTarget2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
+        IDWriteBitmapRenderTarget2 *This,
+        FLOAT pixels_per_dip);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
+        IDWriteBitmapRenderTarget2 *This,
+        DWRITE_MATRIX *transform);
+
+    HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
+        IDWriteBitmapRenderTarget2 *This,
+        const DWRITE_MATRIX *transform);
+
+    HRESULT (STDMETHODCALLTYPE *GetSize)(
+        IDWriteBitmapRenderTarget2 *This,
+        SIZE *size);
+
+    HRESULT (STDMETHODCALLTYPE *Resize)(
+        IDWriteBitmapRenderTarget2 *This,
+        UINT32 width,
+        UINT32 height);
+
+    /*** IDWriteBitmapRenderTarget1 methods ***/
+    DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
+        IDWriteBitmapRenderTarget2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
+        IDWriteBitmapRenderTarget2 *This,
+        DWRITE_TEXT_ANTIALIAS_MODE mode);
+
+    /*** IDWriteBitmapRenderTarget2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetBitmapData)(
+        IDWriteBitmapRenderTarget2 *This,
+        DWRITE_BITMAP_DATA_BGRA32 *bitmap_data);
+
+    END_INTERFACE
+} IDWriteBitmapRenderTarget2Vtbl;
+
+interface IDWriteBitmapRenderTarget2 {
+    CONST_VTBL IDWriteBitmapRenderTarget2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDWriteBitmapRenderTarget2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDWriteBitmapRenderTarget2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDWriteBitmapRenderTarget2_Release(This) (This)->lpVtbl->Release(This)
+/*** IDWriteBitmapRenderTarget methods ***/
+#define IDWriteBitmapRenderTarget2_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect)
+#define IDWriteBitmapRenderTarget2_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
+#define IDWriteBitmapRenderTarget2_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
+#define IDWriteBitmapRenderTarget2_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
+#define IDWriteBitmapRenderTarget2_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
+#define IDWriteBitmapRenderTarget2_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
+#define IDWriteBitmapRenderTarget2_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
+#define IDWriteBitmapRenderTarget2_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
+/*** IDWriteBitmapRenderTarget1 methods ***/
+#define IDWriteBitmapRenderTarget2_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
+#define IDWriteBitmapRenderTarget2_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
+/*** IDWriteBitmapRenderTarget2 methods ***/
+#define IDWriteBitmapRenderTarget2_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IDWriteBitmapRenderTarget2_QueryInterface(IDWriteBitmapRenderTarget2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IDWriteBitmapRenderTarget2_AddRef(IDWriteBitmapRenderTarget2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IDWriteBitmapRenderTarget2_Release(IDWriteBitmapRenderTarget2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDWriteBitmapRenderTarget methods ***/
+static inline HRESULT IDWriteBitmapRenderTarget2_DrawGlyphRun(IDWriteBitmapRenderTarget2* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) {
+    return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
+}
+static inline HDC IDWriteBitmapRenderTarget2_GetMemoryDC(IDWriteBitmapRenderTarget2* This) {
+    return This->lpVtbl->GetMemoryDC(This);
+}
+static inline FLOAT IDWriteBitmapRenderTarget2_GetPixelsPerDip(IDWriteBitmapRenderTarget2* This) {
+    return This->lpVtbl->GetPixelsPerDip(This);
+}
+static inline HRESULT IDWriteBitmapRenderTarget2_SetPixelsPerDip(IDWriteBitmapRenderTarget2* This,FLOAT pixels_per_dip) {
+    return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
+}
+static inline HRESULT IDWriteBitmapRenderTarget2_GetCurrentTransform(IDWriteBitmapRenderTarget2* This,DWRITE_MATRIX *transform) {
+    return This->lpVtbl->GetCurrentTransform(This,transform);
+}
+static inline HRESULT IDWriteBitmapRenderTarget2_SetCurrentTransform(IDWriteBitmapRenderTarget2* This,const DWRITE_MATRIX *transform) {
+    return This->lpVtbl->SetCurrentTransform(This,transform);
+}
+static inline HRESULT IDWriteBitmapRenderTarget2_GetSize(IDWriteBitmapRenderTarget2* This,SIZE *size) {
+    return This->lpVtbl->GetSize(This,size);
+}
+static inline HRESULT IDWriteBitmapRenderTarget2_Resize(IDWriteBitmapRenderTarget2* This,UINT32 width,UINT32 height) {
+    return This->lpVtbl->Resize(This,width,height);
+}
+/*** IDWriteBitmapRenderTarget1 methods ***/
+static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget2_GetTextAntialiasMode(IDWriteBitmapRenderTarget2* This) {
+    return This->lpVtbl->GetTextAntialiasMode(This);
+}
+static inline HRESULT IDWriteBitmapRenderTarget2_SetTextAntialiasMode(IDWriteBitmapRenderTarget2* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
+    return This->lpVtbl->SetTextAntialiasMode(This,mode);
+}
+/*** IDWriteBitmapRenderTarget2 methods ***/
+static inline HRESULT IDWriteBitmapRenderTarget2_GetBitmapData(IDWriteBitmapRenderTarget2* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) {
+    return This->lpVtbl->GetBitmapData(This,bitmap_data);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDWriteBitmapRenderTarget2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IDWriteBitmapRenderTarget3 interface
+ */
+#ifndef __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__
+#define __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("aeec37db-c337-40f1-8e2a-9a41b167b238")
+IDWriteBitmapRenderTarget3 : public IDWriteBitmapRenderTarget2
+{
+    virtual DWRITE_PAINT_FEATURE_LEVEL STDMETHODCALLTYPE GetPaintFeatureLevel(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DrawPaintGlyphRun(
+        FLOAT origin_x,
+        FLOAT origin_y,
+        DWRITE_MEASURING_MODE measuring_mode,
+        const DWRITE_GLYPH_RUN *run,
+        DWRITE_GLYPH_IMAGE_FORMATS image_format,
+        COLORREF text_color,
+        UINT32 palette_index,
+        RECT *black_box) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DrawGlyphRunWithColorSupport(
+        FLOAT origin_x,
+        FLOAT origin_y,
+        DWRITE_MEASURING_MODE measuring_mode,
+        const DWRITE_GLYPH_RUN *run,
+        IDWriteRenderingParams *params,
+        COLORREF text_color,
+        UINT32 palette_index,
+        RECT *black_box) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IDWriteBitmapRenderTarget3, 0xaeec37db, 0xc337, 0x40f1, 0x8e,0x2a, 0x9a,0x41,0xb1,0x67,0xb2,0x38)
+#endif
+#else
+typedef struct IDWriteBitmapRenderTarget3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IDWriteBitmapRenderTarget3 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IDWriteBitmapRenderTarget3 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IDWriteBitmapRenderTarget3 *This);
+
+    /*** IDWriteBitmapRenderTarget methods ***/
+    HRESULT (STDMETHODCALLTYPE *DrawGlyphRun)(
+        IDWriteBitmapRenderTarget3 *This,
+        FLOAT baselineOriginX,
+        FLOAT baselineOriginY,
+        DWRITE_MEASURING_MODE measuring_mode,
+        const DWRITE_GLYPH_RUN *glyph_run,
+        IDWriteRenderingParams *params,
+        COLORREF textColor,
+        RECT *blackbox_rect);
+
+    HDC (STDMETHODCALLTYPE *GetMemoryDC)(
+        IDWriteBitmapRenderTarget3 *This);
+
+    FLOAT (STDMETHODCALLTYPE *GetPixelsPerDip)(
+        IDWriteBitmapRenderTarget3 *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetPixelsPerDip)(
+        IDWriteBitmapRenderTarget3 *This,
+        FLOAT pixels_per_dip);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentTransform)(
+        IDWriteBitmapRenderTarget3 *This,
+        DWRITE_MATRIX *transform);
+
+    HRESULT (STDMETHODCALLTYPE *SetCurrentTransform)(
+        IDWriteBitmapRenderTarget3 *This,
+        const DWRITE_MATRIX *transform);
+
+    HRESULT (STDMETHODCALLTYPE *GetSize)(
+        IDWriteBitmapRenderTarget3 *This,
+        SIZE *size);
+
+    HRESULT (STDMETHODCALLTYPE *Resize)(
+        IDWriteBitmapRenderTarget3 *This,
+        UINT32 width,
+        UINT32 height);
+
+    /*** IDWriteBitmapRenderTarget1 methods ***/
+    DWRITE_TEXT_ANTIALIAS_MODE (STDMETHODCALLTYPE *GetTextAntialiasMode)(
+        IDWriteBitmapRenderTarget3 *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetTextAntialiasMode)(
+        IDWriteBitmapRenderTarget3 *This,
+        DWRITE_TEXT_ANTIALIAS_MODE mode);
+
+    /*** IDWriteBitmapRenderTarget2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetBitmapData)(
+        IDWriteBitmapRenderTarget3 *This,
+        DWRITE_BITMAP_DATA_BGRA32 *bitmap_data);
+
+    /*** IDWriteBitmapRenderTarget3 methods ***/
+    DWRITE_PAINT_FEATURE_LEVEL (STDMETHODCALLTYPE *GetPaintFeatureLevel)(
+        IDWriteBitmapRenderTarget3 *This);
+
+    HRESULT (STDMETHODCALLTYPE *DrawPaintGlyphRun)(
+        IDWriteBitmapRenderTarget3 *This,
+        FLOAT origin_x,
+        FLOAT origin_y,
+        DWRITE_MEASURING_MODE measuring_mode,
+        const DWRITE_GLYPH_RUN *run,
+        DWRITE_GLYPH_IMAGE_FORMATS image_format,
+        COLORREF text_color,
+        UINT32 palette_index,
+        RECT *black_box);
+
+    HRESULT (STDMETHODCALLTYPE *DrawGlyphRunWithColorSupport)(
+        IDWriteBitmapRenderTarget3 *This,
+        FLOAT origin_x,
+        FLOAT origin_y,
+        DWRITE_MEASURING_MODE measuring_mode,
+        const DWRITE_GLYPH_RUN *run,
+        IDWriteRenderingParams *params,
+        COLORREF text_color,
+        UINT32 palette_index,
+        RECT *black_box);
+
+    END_INTERFACE
+} IDWriteBitmapRenderTarget3Vtbl;
+
+interface IDWriteBitmapRenderTarget3 {
+    CONST_VTBL IDWriteBitmapRenderTarget3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IDWriteBitmapRenderTarget3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IDWriteBitmapRenderTarget3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IDWriteBitmapRenderTarget3_Release(This) (This)->lpVtbl->Release(This)
+/*** IDWriteBitmapRenderTarget methods ***/
+#define IDWriteBitmapRenderTarget3_DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect) (This)->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect)
+#define IDWriteBitmapRenderTarget3_GetMemoryDC(This) (This)->lpVtbl->GetMemoryDC(This)
+#define IDWriteBitmapRenderTarget3_GetPixelsPerDip(This) (This)->lpVtbl->GetPixelsPerDip(This)
+#define IDWriteBitmapRenderTarget3_SetPixelsPerDip(This,pixels_per_dip) (This)->lpVtbl->SetPixelsPerDip(This,pixels_per_dip)
+#define IDWriteBitmapRenderTarget3_GetCurrentTransform(This,transform) (This)->lpVtbl->GetCurrentTransform(This,transform)
+#define IDWriteBitmapRenderTarget3_SetCurrentTransform(This,transform) (This)->lpVtbl->SetCurrentTransform(This,transform)
+#define IDWriteBitmapRenderTarget3_GetSize(This,size) (This)->lpVtbl->GetSize(This,size)
+#define IDWriteBitmapRenderTarget3_Resize(This,width,height) (This)->lpVtbl->Resize(This,width,height)
+/*** IDWriteBitmapRenderTarget1 methods ***/
+#define IDWriteBitmapRenderTarget3_GetTextAntialiasMode(This) (This)->lpVtbl->GetTextAntialiasMode(This)
+#define IDWriteBitmapRenderTarget3_SetTextAntialiasMode(This,mode) (This)->lpVtbl->SetTextAntialiasMode(This,mode)
+/*** IDWriteBitmapRenderTarget2 methods ***/
+#define IDWriteBitmapRenderTarget3_GetBitmapData(This,bitmap_data) (This)->lpVtbl->GetBitmapData(This,bitmap_data)
+/*** IDWriteBitmapRenderTarget3 methods ***/
+#define IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(This) (This)->lpVtbl->GetPaintFeatureLevel(This)
+#define IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box) (This)->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box)
+#define IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box) (This)->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IDWriteBitmapRenderTarget3_QueryInterface(IDWriteBitmapRenderTarget3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IDWriteBitmapRenderTarget3_AddRef(IDWriteBitmapRenderTarget3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IDWriteBitmapRenderTarget3_Release(IDWriteBitmapRenderTarget3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IDWriteBitmapRenderTarget methods ***/
+static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT baselineOriginX,FLOAT baselineOriginY,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *glyph_run,IDWriteRenderingParams *params,COLORREF textColor,RECT *blackbox_rect) {
+    return This->lpVtbl->DrawGlyphRun(This,baselineOriginX,baselineOriginY,measuring_mode,glyph_run,params,textColor,blackbox_rect);
+}
+static inline HDC IDWriteBitmapRenderTarget3_GetMemoryDC(IDWriteBitmapRenderTarget3* This) {
+    return This->lpVtbl->GetMemoryDC(This);
+}
+static inline FLOAT IDWriteBitmapRenderTarget3_GetPixelsPerDip(IDWriteBitmapRenderTarget3* This) {
+    return This->lpVtbl->GetPixelsPerDip(This);
+}
+static inline HRESULT IDWriteBitmapRenderTarget3_SetPixelsPerDip(IDWriteBitmapRenderTarget3* This,FLOAT pixels_per_dip) {
+    return This->lpVtbl->SetPixelsPerDip(This,pixels_per_dip);
+}
+static inline HRESULT IDWriteBitmapRenderTarget3_GetCurrentTransform(IDWriteBitmapRenderTarget3* This,DWRITE_MATRIX *transform) {
+    return This->lpVtbl->GetCurrentTransform(This,transform);
+}
+static inline HRESULT IDWriteBitmapRenderTarget3_SetCurrentTransform(IDWriteBitmapRenderTarget3* This,const DWRITE_MATRIX *transform) {
+    return This->lpVtbl->SetCurrentTransform(This,transform);
+}
+static inline HRESULT IDWriteBitmapRenderTarget3_GetSize(IDWriteBitmapRenderTarget3* This,SIZE *size) {
+    return This->lpVtbl->GetSize(This,size);
+}
+static inline HRESULT IDWriteBitmapRenderTarget3_Resize(IDWriteBitmapRenderTarget3* This,UINT32 width,UINT32 height) {
+    return This->lpVtbl->Resize(This,width,height);
+}
+/*** IDWriteBitmapRenderTarget1 methods ***/
+static inline DWRITE_TEXT_ANTIALIAS_MODE IDWriteBitmapRenderTarget3_GetTextAntialiasMode(IDWriteBitmapRenderTarget3* This) {
+    return This->lpVtbl->GetTextAntialiasMode(This);
+}
+static inline HRESULT IDWriteBitmapRenderTarget3_SetTextAntialiasMode(IDWriteBitmapRenderTarget3* This,DWRITE_TEXT_ANTIALIAS_MODE mode) {
+    return This->lpVtbl->SetTextAntialiasMode(This,mode);
+}
+/*** IDWriteBitmapRenderTarget2 methods ***/
+static inline HRESULT IDWriteBitmapRenderTarget3_GetBitmapData(IDWriteBitmapRenderTarget3* This,DWRITE_BITMAP_DATA_BGRA32 *bitmap_data) {
+    return This->lpVtbl->GetBitmapData(This,bitmap_data);
+}
+/*** IDWriteBitmapRenderTarget3 methods ***/
+static inline DWRITE_PAINT_FEATURE_LEVEL IDWriteBitmapRenderTarget3_GetPaintFeatureLevel(IDWriteBitmapRenderTarget3* This) {
+    return This->lpVtbl->GetPaintFeatureLevel(This);
+}
+static inline HRESULT IDWriteBitmapRenderTarget3_DrawPaintGlyphRun(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,DWRITE_GLYPH_IMAGE_FORMATS image_format,COLORREF text_color,UINT32 palette_index,RECT *black_box) {
+    return This->lpVtbl->DrawPaintGlyphRun(This,origin_x,origin_y,measuring_mode,run,image_format,text_color,palette_index,black_box);
+}
+static inline HRESULT IDWriteBitmapRenderTarget3_DrawGlyphRunWithColorSupport(IDWriteBitmapRenderTarget3* This,FLOAT origin_x,FLOAT origin_y,DWRITE_MEASURING_MODE measuring_mode,const DWRITE_GLYPH_RUN *run,IDWriteRenderingParams *params,COLORREF text_color,UINT32 palette_index,RECT *black_box) {
+    return This->lpVtbl->DrawGlyphRunWithColorSupport(This,origin_x,origin_y,measuring_mode,run,params,text_color,palette_index,black_box);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IDWriteBitmapRenderTarget3_INTERFACE_DEFINED__ */
+
 /* Begin additional prototypes for all interfaces */
 
 
lib/libc/include/any-windows-any/dxgi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxgi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_2.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxgi1_2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi1_2.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_3.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxgi1_3.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi1_3.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_4.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxgi1_4.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi1_4.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_5.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxgi1_5.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi1_5.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgi1_6.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxgi1_6.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxgi1_6.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgicommon.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxgicommon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxgicommon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgidebug.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxgidebug.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/dxgiformat.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxgiformat.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxgitype.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxgitype.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxgitype.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxva2api.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxva2api.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxva2api.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/dxvahd.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/dxvahd.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/dxvahd.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -415,7 +415,7 @@ typedef struct _DXVAHDSW_CALLBACKS {
   PDXVAHDSW_DestroyVideoProcessor             DestroyVideoProcessor;
 } DXVAHDSW_CALLBACKS;
 
-HRESULT DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice);
+HRESULT WINAPI DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice);
 
 /*****************************************************************************
  * IDXVAHD_Device interface
lib/libc/include/any-windows-any/endpointvolume.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/endpointvolume.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/endpointvolume.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/evr.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/evr.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/evr.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/evr9.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/evr9.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/evr9.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 9.20 from include/exdisp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/exdisp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fibersapi.h
@@ -25,6 +25,11 @@ extern "C" {
   WINBASEAPI WINBOOL WINAPI FlsFree (DWORD dwFlsIndex);
   WINBASEAPI WINBOOL WINAPI IsThreadAFiber (VOID);
 #endif
+
+#if (_WIN32_WINNT >= _WIN32_WINNT_WIN10)
+  WINBASEAPI PVOID WINAPI FlsGetValue2(DWORD dwTlsIndex);
+#endif
+
 #endif
 
 #ifdef __cplusplus
lib/libc/include/any-windows-any/filter.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/filter.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/filter.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fsrm.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/fsrm.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/fsrmenums.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/fsrmquota.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/fsrmreports.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/fsrmscreen.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/fsrmscreen.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/fusion.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/fusion.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/fwptypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/fwptypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/hstring.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/hstring.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/icftypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/icodecapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/iketypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/iketypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/inputpaneinterop.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/inputpaneinterop.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/inputpaneinterop.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 9.20 from include/inputscope.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/inspectable.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/inspectable.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/intrin.h
@@ -55,7 +55,7 @@
 #endif
 
 #if defined(__GNUC__) && \
-   (defined(__i386__) || defined(__x86_64__))
+   (defined(__i386__) || (defined(__x86_64__) && !defined(__arm64ec__)))
 #ifndef _MM_MALLOC_H_INCLUDED
 #include <stdlib.h>
 #include <errno.h>
@@ -103,7 +103,7 @@ typedef union __m128i { char v[16]; } __m128i;
 #endif
 #endif
 
-#if (defined(_X86_) || defined(__x86_64))
+#if (defined(_X86_) || (defined(__x86_64) && !defined(__arm64ec__)))
 
 #if defined(__MMX__) || defined(__MINGW_FORCE_SYS_INTRINS)
 #if defined(__cplusplus)
@@ -177,7 +177,7 @@ extern "C" {
 #define __MACHINEIA32 __MACHINEZ
 #endif
 
-#if !(defined(_X86_) || defined(__x86_64) || defined(__ia64__))
+#if !(defined(_X86_) || defined(__x86_64) || defined(__ia64__)) || defined(__arm64ec__)
 #undef __MACHINEIW64
 #define __MACHINEIW64 __MACHINEZ
 #endif
@@ -187,17 +187,17 @@ extern "C" {
 #define __MACHINEIA64 __MACHINEZ
 #endif
 
-#if !(defined(__ia64__) || defined(__x86_64))
+#if !(defined(__ia64__) || defined(__x86_64)) || defined(__arm64ec__)
 #undef __MACHINEW64
 #define __MACHINEW64 __MACHINEZ
 #endif
 
-#if !(defined(_X86_) || defined(__x86_64))
+#if !(defined(_X86_) || defined(__x86_64)) || defined(__arm64ec__)
 #undef __MACHINEI
 #define __MACHINEI __MACHINEZ
 #endif
 
-#if !(defined(_X86_) || defined(__x86_64))
+#if !(defined(_X86_) || defined(__x86_64)) || defined(__arm64ec__)
 #undef __MACHINEX86X
 #define __MACHINEX86X __MACHINEZ
 #endif
@@ -207,7 +207,7 @@ extern "C" {
 #define __MACHINEX86X_NOX64 __MACHINEZ
 #endif
 
-#if !(defined(_X86_) || defined(__x86_64)) || defined(__ia64__)
+#if !(defined(_X86_) || defined(__x86_64)) || defined(__ia64__) || defined(__arm64ec__)
 #undef __MACHINEX86X_NOIA64
 #define __MACHINEX86X_NOIA64 __MACHINEZ
 #endif
@@ -228,17 +228,17 @@ extern "C" {
 #define __MACHINECC __MACHINEZ
 #endif
 
-#if !(defined(__aarch64__))
+#if !(defined(__aarch64__) || defined(__arm64ec__))
 #undef __MACHINEARM64
 #define __MACHINEARM64 __MACHINEZ
 #endif
 
-#if !(defined(__arm__) || defined(__aarch64__))
+#if !(defined(__arm__) || defined(__aarch64__) || defined(__arm64ec__))
 #undef __MACHINEARM_ARM64
 #define __MACHINEARM_ARM64 __MACHINEZ
 #endif
 
-#if !(defined(__x86_64))
+#if !(defined(__x86_64)) || defined(__arm64ec__)
 #undef __MACHINEX64
 #define __MACHINEX64 __MACHINEZ
 #endif
lib/libc/include/any-windows-any/io.h
@@ -24,7 +24,15 @@
 extern "C" {
 #endif
 
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_getcwd")
+#undef _getcwd
+#endif
 _CRTIMP char* __cdecl _getcwd (char*, int);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_getcwd")
+#endif
+
 #ifndef _FSIZE_T_DEFINED
   typedef unsigned long _fsize_t;
 #define _FSIZE_T_DEFINED
@@ -278,7 +286,14 @@ _CRTIMP char* __cdecl _getcwd (char*, int);
 #ifndef NO_OLDNAMES
 #ifndef _UWIN
   int __cdecl chdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("getcwd")
+#undef getcwd
+#endif
   char *__cdecl getcwd (char *, int) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("getcwd")
+#endif
   int __cdecl mkdir (const char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
   char *__cdecl mktemp(char *) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
   int __cdecl rmdir (const char*) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
lib/libc/include/any-windows-any/iwscapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/iwscapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/iwscapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/locationapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/locationapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/locationapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/malloc.h
@@ -21,7 +21,13 @@ extern "C" {
 #endif
 
 #ifndef _STATIC_ASSERT
-#if defined(_MSC_VER)
+#if (defined(__cpp_static_assert) && __cpp_static_assert >= 201411L) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L)
+#define _STATIC_ASSERT(expr) static_assert(expr)
+#elif defined(__cpp_static_assert)
+#define _STATIC_ASSERT(expr) static_assert(expr, #expr)
+#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
+#define _STATIC_ASSERT(expr) _Static_assert(expr, #expr)
+#elif defined(_MSC_VER)
 #define _STATIC_ASSERT(expr) typedef char __static_assert_t[(expr)]
 #else
 #define _STATIC_ASSERT(expr) extern void __static_assert_t(int [(expr)?1:-1])
@@ -55,6 +61,36 @@ extern "C" {
 
 #ifndef _CRT_ALLOCATION_DEFINED
 #define _CRT_ALLOCATION_DEFINED
+
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("calloc")
+#undef calloc
+#pragma push_macro("free")
+#undef free
+#pragma push_macro("malloc")
+#undef malloc
+#pragma push_macro("realloc")
+#undef realloc
+#pragma push_macro("_aligned_free")
+#undef _aligned_free
+#pragma push_macro("_aligned_malloc")
+#undef _aligned_malloc
+#pragma push_macro("_aligned_offset_malloc")
+#undef _aligned_offset_malloc
+#pragma push_macro("_aligned_realloc")
+#undef _aligned_realloc
+#pragma push_macro("_aligned_offset_realloc")
+#undef _aligned_offset_realloc
+#pragma push_macro("_recalloc")
+#undef _recalloc
+#pragma push_macro("_aligned_recalloc")
+#undef _aligned_recalloc
+#pragma push_macro("_aligned_offset_recalloc")
+#undef _aligned_offset_recalloc
+#pragma push_macro("_aligned_msize")
+#undef _aligned_msize
+#endif
+
   void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);
   void __cdecl free(void *_Memory);
   void *__cdecl malloc(size_t _Size);
@@ -72,6 +108,23 @@ extern "C" {
   _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset);
   _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset);
 # endif
+
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("calloc")
+#pragma pop_macro("free")
+#pragma pop_macro("malloc")
+#pragma pop_macro("realloc")
+#pragma pop_macro("_aligned_free")
+#pragma pop_macro("_aligned_malloc")
+#pragma pop_macro("_aligned_offset_malloc")
+#pragma pop_macro("_aligned_realloc")
+#pragma pop_macro("_aligned_offset_realloc")
+#pragma pop_macro("_recalloc")
+#pragma pop_macro("_aligned_recalloc")
+#pragma pop_macro("_aligned_offset_recalloc")
+#pragma pop_macro("_aligned_msize")
+#endif
+
 #endif
 
 /* Users should really use MS provided versions */
@@ -92,8 +145,19 @@ void * __mingw_aligned_realloc (void *_Memory, size_t _Size, size_t _Offset);
 #endif /* _CRT_USE_WINAPI_FAMILY_DESKTOP_APP */
   _CRTIMP unsigned long __cdecl _set_malloc_crt_max_wait(unsigned long _NewValue);
 
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_expand")
+#undef _expand
+#pragma push_macro("_msize")
+#undef _msize
+#endif
   _CRTIMP void *__cdecl _expand(void *_Memory,size_t _NewSize);
   _CRTIMP size_t __cdecl _msize(void *_Memory);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_expand")
+#pragma pop_macro("_msize")
+#endif
+
 #ifdef __GNUC__
 #undef _alloca
 #define _alloca(x) __builtin_alloca((x))
@@ -132,11 +196,20 @@ void * __mingw_aligned_realloc (void *_Memory, size_t _Size, size_t _Offset);
   }
 #endif
 
+#ifdef _DEBUG
+#ifndef _CRTDBG_MAP_ALLOC
+#undef _malloca
+#define _malloca(size) \
+    _MarkAllocaS(malloc((size) + _ALLOCA_S_MARKER_SIZE), _ALLOCA_S_HEAP_MARKER)
+#endif
+#else
 #undef _malloca
 #define _malloca(size) \
   ((((size) + _ALLOCA_S_MARKER_SIZE) <= _ALLOCA_S_THRESHOLD) ? \
     _MarkAllocaS(_alloca((size) + _ALLOCA_S_MARKER_SIZE),_ALLOCA_S_STACK_MARKER) : \
     _MarkAllocaS(malloc((size) + _ALLOCA_S_MARKER_SIZE),_ALLOCA_S_HEAP_MARKER))
+#endif
+
 #undef _FREEA_INLINE
 #define _FREEA_INLINE
 
lib/libc/include/any-windows-any/mapi.h
@@ -35,6 +35,15 @@ extern "C" {
     LPVOID lpFileType;
   } MapiFileDesc,*lpMapiFileDesc;
 
+  typedef struct {
+    ULONG ulReserved;
+    ULONG flFlags;
+    ULONG nPosition;
+    PWSTR lpszPathName;
+    PWSTR lpszFileName;
+    PVOID lpFileType;
+  } MapiFileDescW, *lpMapiFileDescW;
+
 #define MAPI_OLE 0x00000001
 #define MAPI_OLE_STATIC 0x00000002
 
@@ -55,6 +64,15 @@ extern "C" {
     LPVOID lpEntryID;
   } MapiRecipDesc,*lpMapiRecipDesc;
 
+  typedef struct {
+    ULONG ulReserved;
+    ULONG ulRecipClass;
+    PWSTR lpszName;
+    PWSTR lpszAddress;
+    ULONG ulEIDSize;
+    PVOID lpEntryID;
+  } MapiRecipDescW, *lpMapiRecipDescW;
+
 #ifndef MAPI_ORIG
 #define MAPI_ORIG 0
 #define MAPI_TO 1
@@ -77,6 +95,21 @@ extern "C" {
     lpMapiFileDesc lpFiles;
   } MapiMessage,*lpMapiMessage;
 
+  typedef struct {
+    ULONG ulReserved;
+    PWSTR lpszSubject;
+    PWSTR lpszNoteText;
+    PWSTR lpszMessageType;
+    PWSTR lpszDateReceived;
+    PWSTR lpszConversationID;
+    FLAGS flFlags;
+    lpMapiRecipDescW lpOriginator;
+    ULONG nRecipCount;
+    lpMapiRecipDescW lpRecips;
+    ULONG nFileCount;
+    lpMapiFileDescW lpFiles;
+  } MapiMessageW, *lpMapiMessageW;
+
 #define MAPI_UNREAD 0x00000001
 #define MAPI_RECEIPT_REQUESTED 0x00000002
 #define MAPI_SENT 0x00000004
@@ -93,6 +126,9 @@ extern "C" {
 #define MAPI_DIALOG 0x00000008
 #endif
 
+#define MAPI_DIALOG_MODELESS (0x00000004 | MAPI_DIALOG)
+#define MAPI_FORCE_UNICODE 0x00040000
+
 #define MAPI_UNREAD_ONLY 0x00000020
 #define MAPI_GUARANTEE_FIFO 0x00000100
 #define MAPI_LONG_MSGID 0x00004000
@@ -116,6 +152,10 @@ extern "C" {
   typedef MAPISENDMAIL *LPMAPISENDMAIL;
   MAPISENDMAIL MAPISendMail;
 
+  typedef ULONG (WINAPI MAPISENDMAILW)(LHANDLE lhSession,ULONG_PTR ulUIParam,lpMapiMessageW lpMessage,FLAGS flFlags,ULONG ulReserved);
+  typedef MAPISENDMAILW *LPMAPISENDMAILW;
+  MAPISENDMAILW MAPISendMailW;
+
   typedef ULONG (WINAPI MAPISENDDOCUMENTS)(ULONG_PTR ulUIParam,LPSTR lpszDelimChar,LPSTR lpszFilePaths,LPSTR lpszFileNames,ULONG ulReserved);
   typedef MAPISENDDOCUMENTS *LPMAPISENDDOCUMENTS;
   MAPISENDDOCUMENTS MAPISendDocuments;
@@ -183,6 +223,8 @@ extern "C" {
 #define MAPI_E_INVALID_EDITFIELDS 24
 #define MAPI_E_INVALID_RECIPS 25
 #define MAPI_E_NOT_SUPPORTED 26
+#define MAPI_E_UNICODE_NOT_SUPPORTED 27
+#define MAPI_E_ATTACHMENT_TOO_LARGE 28
 
 #ifdef MAPIX_H
   STDMETHODIMP_(SCODE) ScMAPIXFromSMAPI(LHANDLE lhSimpleSession,ULONG ulFlags,LPCIID lpInterface,LPMAPISESSION*lppMAPISession);
lib/libc/include/any-windows-any/mbstring.h
@@ -31,7 +31,14 @@ extern "C" {
 
 #ifndef _MBSTRING_DEFINED
 #define _MBSTRING_DEFINED
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_mbsdup")
+#undef _mbsdup
+#endif
   _CRTIMP unsigned char *__cdecl _mbsdup(const unsigned char *_Str);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_mbsdup")
+#endif
   _CRTIMP unsigned int __cdecl _mbbtombc(unsigned int _Ch);
   _CRTIMP unsigned int __cdecl _mbbtombc_l(unsigned int _Ch,_locale_t _Locale);
   _CRTIMP int __cdecl _mbbtype(unsigned char _Ch,int _CType);
lib/libc/include/any-windows-any/mediaobj.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mediaobj.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mediaobj.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/medparam.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/medparam.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/medparam.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfcaptureengine.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mfcaptureengine.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mfcaptureengine.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfd3d12.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mfd3d12.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mfd3d12.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mfidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mfidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfmediacapture.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mfmediacapture.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mfmediacapture.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfmediaengine.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mfmediaengine.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mfmediaengine.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mfobjects.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mfobjects.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/mfplay.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/mfreadwrite.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mfreadwrite.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mftransform.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mftransform.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mftransform.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mmdeviceapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mmdeviceapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mmdeviceapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mmstream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mmstream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mmstream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/mscoree.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/mscoree.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/msctf.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/mshtmhst.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/mshtml.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/mshtml.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msinkaut.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/msinkaut.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from msinkaut.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from msinkaut.idl - Do not edit ***/
 
 #include <rpc.h>
 #include <rpcndr.h>
lib/libc/include/any-windows-any/msopc.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/msopc.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/msopc.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msxml.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/msxml.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/msxml.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msxml2.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/msxml2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/msxml2.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/msxml6.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/msxml6.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/msxml6.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 9.20 from include/napcertrelyingparty.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/napcommon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/napenforcementclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/napmanagement.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/napprotocol.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/napservermanagement.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/napsystemhealthagent.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/napsystemhealthvalidator.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/naptypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/naptypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/netcfgn.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/netcfgn.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/netcfgx.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/netfw.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/netfw.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/netlistmgr.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/netlistmgr.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/netlistmgr.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/oaidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/oaidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/oaidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/objectarray.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/objectarray.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/objectarray.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/objidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/objidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/objidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/objidlbase.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/objidlbase.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/ocidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/oleacc.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/oleidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/optary.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/optary.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/portabledeviceapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/portabledeviceapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/portabledeviceapi.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 9.20 from include/portabledevicetypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/portabledevicetypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/processthreadsapi.h
@@ -47,7 +47,7 @@ extern "C" {
 
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
   WINBASEAPI WINBOOL WINAPI TerminateProcess (HANDLE hProcess, UINT uExitCode);
-  
+
   typedef struct _STARTUPINFOA {
     DWORD cb;
     LPSTR lpReserved;
@@ -111,6 +111,8 @@ extern "C" {
     ProcessProtectionLevelInfo,
     ProcessLeapSecondInfo,
     ProcessMachineTypeInfo,
+    ProcessOverrideSubsequentPrefetchParameter,
+    ProcessMaxOverridePrefetchParameter,
     ProcessInformationClassMax
   } PROCESS_INFORMATION_CLASS;
 
@@ -136,6 +138,10 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES);
     MACHINE_ATTRIBUTES MachineAttributes;
   } PROCESS_MACHINE_INFORMATION;
 
+  typedef struct OVERRIDE_PREFETCH_PARAMETER {
+    UINT32 Value;
+  } OVERRIDE_PREFETCH_PARAMETER;
+
 #define PME_CURRENT_VERSION 1
 
   typedef enum _PROCESS_MEMORY_EXHAUSTION_TYPE {
@@ -309,6 +315,7 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES);
 #if _WIN32_WINNT >= 0x0A00
   WINBASEAPI DWORD WINAPI QueueUserAPC (PAPCFUNC pfnAPC, HANDLE hThread, ULONG_PTR dwData);
   WINBASEAPI WINBOOL WINAPI SwitchToThread (VOID);
+  WINBASEAPI LPVOID WINAPI TlsGetValue2(DWORD dwTlsIndex);
 #endif
   WINBASEAPI DWORD WINAPI SuspendThread (HANDLE hThread);
   WINBASEAPI DWORD WINAPI ResumeThread (HANDLE hThread);
@@ -325,8 +332,9 @@ DEFINE_ENUM_FLAG_OPERATORS(MACHINE_ATTRIBUTES);
 
 #if NTDDI_VERSION >= NTDDI_WIN10_MN
   typedef enum _QUEUE_USER_APC_FLAGS {
-    QUEUE_USER_APC_FLAGS_NONE = 0x0,
-    QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC = 0x1
+    QUEUE_USER_APC_FLAGS_NONE = 0x00000000,
+    QUEUE_USER_APC_FLAGS_SPECIAL_USER_APC = 0x00000001,
+    QUEUE_USER_APC_CALLBACK_DATA_CONTEXT = 0x00010000
   } QUEUE_USER_APC_FLAGS;
 
   typedef struct _APC_CALLBACK_DATA {
lib/libc/include/any-windows-any/proofofpossessioncookieinfo.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/proofofpossessioncookieinfo.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/proofofpossessioncookieinfo.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/propidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/propidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/propidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/propsys.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/propsys.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/propsys.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/propvarutil.h
@@ -102,6 +102,7 @@ PSSTDAPI PropVariantToUInt32(REFPROPVARIANT propvarIn, ULONG *ret);
 PSSTDAPI_(ULONG) PropVariantToUInt32WithDefault(REFPROPVARIANT propvarIn, ULONG uLDefault);
 PSSTDAPI PropVariantToUInt64(REFPROPVARIANT propvarIn, ULONGLONG *ret);
 PSSTDAPI PropVariantToBoolean(REFPROPVARIANT propvarIn, WINBOOL *ret);
+PSSTDAPI PropVariantToBSTR(REFPROPVARIANT propvar, BSTR *bstr);
 PSSTDAPI PropVariantToBuffer(REFPROPVARIANT propvarIn, void *ret, UINT cb);
 PSSTDAPI PropVariantToString(REFPROPVARIANT propvarIn, PWSTR ret, UINT cch);
 PSSTDAPI_(PCWSTR) PropVariantToStringWithDefault(REFPROPVARIANT propvarIn, LPCWSTR pszDefault);
@@ -113,6 +114,8 @@ PSSTDAPI PropVariantToStringAlloc(REFPROPVARIANT propvarIn, WCHAR **ret);
 PSSTDAPI PropVariantToVariant(const PROPVARIANT *propvar, VARIANT *var);
 PSSTDAPI VariantToPropVariant(const VARIANT* var, PROPVARIANT* propvar);
 
+PSSTDAPI PropVariantGetStringElem(const PROPVARIANT *propvar, ULONG idx, WCHAR **ret);
+
 #ifdef __cplusplus
 
 HRESULT InitPropVariantFromBoolean(WINBOOL fVal, PROPVARIANT *ppropvar);
lib/libc/include/any-windows-any/pthread.h
@@ -68,9 +68,12 @@
 #include <signal.h>
 #include <time.h>
 
-#include <sys/timeb.h>
-
 #include "pthread_compat.h"
+#include "sched.h"
+
+#ifdef _MSC_VER
+#include "pthread_time.h"
+#endif
 
 #ifdef __cplusplus
 extern "C" {
@@ -83,36 +86,11 @@ extern "C" {
 /* MSB 8-bit major version, 8-bit minor version, 16-bit patch level.  */
 #define __WINPTHREADS_VERSION 0x00050000
 
-#if defined(IN_WINPTHREAD)
-#  if defined(DLL_EXPORT)
-#    define WINPTHREAD_API  __declspec(dllexport)  /* building the DLL  */
-#  else
-#    define WINPTHREAD_API  /* building the static library  */
-#  endif
-#else
-#  if defined(WINPTHREADS_USE_DLLIMPORT)
-#    define WINPTHREAD_API  __declspec(dllimport)  /* user wants explicit `dllimport`  */
-#  else
-#    define WINPTHREAD_API  /* the default; auto imported in case of DLL  */
-#  endif
-#endif
-
 /* #define WINPTHREAD_DBG 1 */
 
 /* Compatibility stuff: */
 #define RWLS_PER_THREAD						8
 
-/* Error-codes.  */
-#ifndef ETIMEDOUT
-#define ETIMEDOUT	138
-#endif
-#ifndef ENOTSUP
-#define ENOTSUP		129
-#endif
-#ifndef EWOULDBLOCK
-#define EWOULDBLOCK	140
-#endif
-
 /* pthread specific defines.  */
 
 #define PTHREAD_CANCEL_DISABLE 0
@@ -234,26 +212,6 @@ struct _pthread_cleanup
         if ((E)) _pthread_cup.func((pthread_once_t *)_pthread_cup.arg); \
     } while (0)
 
-#ifndef SCHED_OTHER
-/* Some POSIX realtime extensions, mostly stubbed */
-#define SCHED_OTHER     0
-#define SCHED_FIFO      1
-#define SCHED_RR        2
-#define SCHED_MIN       SCHED_OTHER
-#define SCHED_MAX       SCHED_RR
-
-struct sched_param {
-  int sched_priority;
-};
-
-WINPTHREAD_API int sched_yield(void);
-WINPTHREAD_API int sched_get_priority_min(int pol);
-WINPTHREAD_API int sched_get_priority_max(int pol);
-WINPTHREAD_API int sched_getscheduler(pid_t pid);
-WINPTHREAD_API int sched_setscheduler(pid_t pid, int pol, const struct sched_param *param);
-
-#endif
-
 typedef struct pthread_attr_t pthread_attr_t;
 struct pthread_attr_t
 {
@@ -393,11 +351,6 @@ WINPTHREAD_API int pthread_condattr_init(pthread_condattr_t *a);
 WINPTHREAD_API int pthread_condattr_getpshared(const pthread_condattr_t *a, int *s);
 WINPTHREAD_API int pthread_condattr_setpshared(pthread_condattr_t *a, int s);
 
-#ifndef __clockid_t_defined
-typedef int clockid_t;
-#define __clockid_t_defined 1
-#endif  /* __clockid_t_defined */
-
 WINPTHREAD_API int pthread_condattr_getclock (const pthread_condattr_t *attr,
        clockid_t *clock_id);
 WINPTHREAD_API int pthread_condattr_setclock(pthread_condattr_t *attr,
lib/libc/include/any-windows-any/pthread_compat.h
@@ -60,6 +60,41 @@
 #ifndef WIN_PTHREADS_PTHREAD_COMPAT_H
 #define WIN_PTHREADS_PTHREAD_COMPAT_H
 
+#if defined(IN_WINPTHREAD)
+#  if defined(DLL_EXPORT)
+#    define WINPTHREAD_API  __declspec(dllexport)  /* building the DLL  */
+#  else
+#    define WINPTHREAD_API  /* building the static library  */
+#  endif
+#else
+#  if defined(WINPTHREADS_USE_DLLIMPORT)
+#    define WINPTHREAD_API  __declspec(dllimport)  /* user wants explicit `dllimport`  */
+#  else
+#    define WINPTHREAD_API  /* the default; auto imported in case of DLL  */
+#  endif
+#endif
+
+#ifndef __clockid_t_defined
+typedef int clockid_t;
+#define __clockid_t_defined 1
+#endif  /* __clockid_t_defined */
+
+#ifndef _MODE_T_
+#define	_MODE_T_
+typedef unsigned short mode_t;
+#endif
+
+/* Error-codes.  */
+#ifndef ETIMEDOUT
+#define ETIMEDOUT	138
+#endif
+#ifndef ENOTSUP
+#define ENOTSUP		129
+#endif
+#ifndef EWOULDBLOCK
+#define EWOULDBLOCK	140
+#endif
+
 #ifdef __GNUC__
 
 #define WINPTHREADS_INLINE inline
@@ -68,14 +103,11 @@
 
 #elif _MSC_VER
 
-#include "pthread_time.h"
-
 #ifdef _WIN64
 typedef __int64 pid_t;
 #else
 typedef int     pid_t;
 #endif
-typedef int clockid_t;
 
 #define WINPTHREADS_INLINE __inline
 #define WINPTHREADS_ATTRIBUTE(X) __declspec X
lib/libc/include/any-windows-any/pthread_time.h
@@ -20,11 +20,11 @@
    DEALINGS IN THE SOFTWARE.
 */
 
-#include <sys/timeb.h>
-
 #ifndef WIN_PTHREADS_TIME_H
 #define WIN_PTHREADS_TIME_H
 
+#include "pthread_compat.h"
+
 /* Posix timers are supported */
 #ifndef _POSIX_TIMERS
 #define _POSIX_TIMERS           200809L
@@ -45,11 +45,6 @@
 #define _POSIX_THREAD_CPUTIME   200809L
 #endif
 
-#ifndef __clockid_t_defined
-typedef int clockid_t;
-#define __clockid_t_defined 1
-#endif  /* __clockid_t_defined */
-
 #ifndef TIMER_ABSTIME
 #define TIMER_ABSTIME   1
 #endif
@@ -78,13 +73,6 @@ typedef int clockid_t;
 extern "C" {
 #endif
 
-/* Make sure we provide default for WINPTHREAD_API, if not defined.  */
-#pragma push_macro("WINPTHREAD_API")
-#ifndef WINPTHREAD_API
-#define WINPTHREAD_API
-#endif
-
-/* These should really be dllimport'ed if using winpthread dll */
 WINPTHREAD_API int __cdecl nanosleep(const struct timespec *request, struct timespec *remain);
 
 WINPTHREAD_API int __cdecl clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *request, struct timespec *remain);
@@ -92,11 +80,8 @@ WINPTHREAD_API int __cdecl clock_getres(clockid_t clock_id, struct timespec *res
 WINPTHREAD_API int __cdecl clock_gettime(clockid_t clock_id, struct timespec *tp);
 WINPTHREAD_API int __cdecl clock_settime(clockid_t clock_id, const struct timespec *tp);
 
-#pragma pop_macro("WINPTHREAD_API")
-
 #ifdef __cplusplus
 }
 #endif
 
 #endif /* WIN_PTHREADS_TIME_H */
-
lib/libc/include/any-windows-any/qedit.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/qedit.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/qedit.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/qnetwork.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/qnetwork.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/qnetwork.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/rdpencomapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/rdpencomapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/rdpencomapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/regbag.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/regbag.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/regbag.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/relogger.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/relogger.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/relogger.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/robuffer.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/robuffer.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/robuffer.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/rtworkq.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/rtworkq.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/rtworkq.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/sapi51.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/sapi51.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/sapi51.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/sapi53.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/sapi53.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/sapi53.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/sapi54.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/sapi54.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/sapi54.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/sched.h
@@ -19,6 +19,8 @@
    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    DEALINGS IN THE SOFTWARE.
 */
+#ifndef WIN_PTHREADS_SCHED_H
+#define WIN_PTHREADS_SCHED_H
 
 #include <stddef.h>
 #include <errno.h>
@@ -28,14 +30,8 @@
 #include <limits.h>
 #include <signal.h>
 
-#include <sys/timeb.h>
-
 #include "pthread_compat.h"
 
-#ifndef WIN_PTHREADS_SCHED_H
-#define WIN_PTHREADS_SCHED_H
-
-#ifndef SCHED_OTHER
 /* Some POSIX realtime extensions, mostly stubbed */
 #define SCHED_OTHER     0
 #define SCHED_FIFO      1
@@ -51,32 +47,16 @@ struct sched_param {
 extern "C" {
 #endif
 
-#if defined(IN_WINPTHREAD)
-#  if defined(DLL_EXPORT) && !defined(WINPTHREAD_EXPORT_ALL_DEBUG)
-#    define WINPTHREAD_SCHED_API  __declspec(dllexport)  /* building the DLL  */
-#  else
-#    define WINPTHREAD_SCHED_API  /* building the static library  */
-#  endif
-#else
-#  if defined(WINPTHREADS_USE_DLLIMPORT)
-#    define WINPTHREAD_SCHED_API  __declspec(dllimport)  /* user wants explicit `dllimport`  */
-#  else
-#    define WINPTHREAD_SCHED_API  /* the default; auto imported in case of DLL  */
-#  endif
-#endif
-
-WINPTHREAD_SCHED_API int sched_yield(void);
-WINPTHREAD_SCHED_API int sched_get_priority_min(int pol);
-WINPTHREAD_SCHED_API int sched_get_priority_max(int pol);
-WINPTHREAD_SCHED_API int sched_getscheduler(pid_t pid);
-WINPTHREAD_SCHED_API int sched_setscheduler(pid_t pid, int pol, const struct sched_param *param);
+WINPTHREAD_API int sched_yield(void);
+WINPTHREAD_API int sched_get_priority_min(int pol);
+WINPTHREAD_API int sched_get_priority_max(int pol);
+WINPTHREAD_API int sched_getscheduler(pid_t pid);
+WINPTHREAD_API int sched_setscheduler(pid_t pid, int pol, const struct sched_param *param);
 
 #ifdef __cplusplus
 }
 #endif
 
-#endif
-
 #ifndef sched_rr_get_interval
 #define sched_rr_get_interval(_p, _i) \
   ( errno = ENOTSUP, (int) -1 )
lib/libc/include/any-windows-any/semaphore.h
@@ -23,60 +23,43 @@
 #ifndef WIN_PTHREADS_SEMAPHORE_H
 #define WIN_PTHREADS_SEMAPHORE_H
 
+#include "pthread_compat.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#if defined(IN_WINPTHREAD)
-#  if defined(DLL_EXPORT) && !defined(WINPTHREAD_EXPORT_ALL_DEBUG)
-#    define WINPTHREAD_SEMA_API  __declspec(dllexport)  /* building the DLL  */
-#  else
-#    define WINPTHREAD_SEMA_API  /* building the static library  */
-#  endif
-#else
-#  if defined(WINPTHREADS_USE_DLLIMPORT)
-#    define WINPTHREAD_SEMA_API  __declspec(dllimport)  /* user wants explicit `dllimport`  */
-#  else
-#    define WINPTHREAD_SEMA_API  /* the default; auto imported in case of DLL  */
-#  endif
-#endif
-
 /* Set this to 0 to disable it */
 #define USE_SEM_CriticalSection_SpinCount	100
 
 #define SEM_VALUE_MAX   INT_MAX
 
-#ifndef _MODE_T_
-#define	_MODE_T_
-typedef unsigned short mode_t;
-#endif
-
 typedef void		*sem_t;
 
 #define SEM_FAILED 		NULL
 
-WINPTHREAD_SEMA_API int sem_init(sem_t * sem, int pshared, unsigned int value);
+WINPTHREAD_API int sem_init(sem_t * sem, int pshared, unsigned int value);
 
-WINPTHREAD_SEMA_API int sem_destroy(sem_t *sem);
+WINPTHREAD_API int sem_destroy(sem_t *sem);
 
-WINPTHREAD_SEMA_API int sem_trywait(sem_t *sem);
+WINPTHREAD_API int sem_trywait(sem_t *sem);
 
-WINPTHREAD_SEMA_API int sem_wait(sem_t *sem);
+WINPTHREAD_API int sem_wait(sem_t *sem);
 
-WINPTHREAD_SEMA_API int sem_timedwait(sem_t * sem, const struct timespec *t);
+WINPTHREAD_API int sem_timedwait(sem_t * sem, const struct timespec *t);
 
-WINPTHREAD_SEMA_API int sem_post(sem_t *sem);
+WINPTHREAD_API int sem_post(sem_t *sem);
 
-WINPTHREAD_SEMA_API int sem_post_multiple(sem_t *sem, int count);
+WINPTHREAD_API int sem_post_multiple(sem_t *sem, int count);
 
 /* yes, it returns a semaphore (or SEM_FAILED) */
-WINPTHREAD_SEMA_API sem_t * sem_open(const char * name, int oflag, mode_t mode, unsigned int value);
+WINPTHREAD_API sem_t * sem_open(const char * name, int oflag, mode_t mode, unsigned int value);
 
-WINPTHREAD_SEMA_API int sem_close(sem_t * sem);
+WINPTHREAD_API int sem_close(sem_t * sem);
 
-WINPTHREAD_SEMA_API int sem_unlink(const char * name);
+WINPTHREAD_API int sem_unlink(const char * name);
 
-WINPTHREAD_SEMA_API int sem_getvalue(sem_t * sem, int * sval);
+WINPTHREAD_API int sem_getvalue(sem_t * sem, int * sval);
 
 #ifdef __cplusplus
 }
lib/libc/include/any-windows-any/sensorsapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/sensorsapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/sensorsapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/servprov.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/servprov.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/shldisp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/shldisp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/shlwapi.h
@@ -438,8 +438,8 @@ extern "C" {
   LWSTDAPI_(WINBOOL) PathMatchSpecW(LPCWSTR pszFile,LPCWSTR pszSpec);
   LWSTDAPI_(int) PathParseIconLocationA(LPSTR pszIconFile);
   LWSTDAPI_(int) PathParseIconLocationW(LPWSTR pszIconFile);
-  LWSTDAPI_(void) PathQuoteSpacesA(LPSTR lpsz);
-  LWSTDAPI_(void) PathQuoteSpacesW(LPWSTR lpsz);
+  LWSTDAPI_(WINBOOL) PathQuoteSpacesA(LPSTR lpsz);
+  LWSTDAPI_(WINBOOL) PathQuoteSpacesW(LPWSTR lpsz);
   LWSTDAPI_(WINBOOL) PathRelativePathToA(LPSTR pszPath,LPCSTR pszFrom,DWORD dwAttrFrom,LPCSTR pszTo,DWORD dwAttrTo);
   LWSTDAPI_(WINBOOL) PathRelativePathToW(LPWSTR pszPath,LPCWSTR pszFrom,DWORD dwAttrFrom,LPCWSTR pszTo,DWORD dwAttrTo);
   LWSTDAPI_(void) PathRemoveArgsA(LPSTR pszPath);
lib/libc/include/any-windows-any/shobjidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/shobjidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/shobjidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/shtypes.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/shtypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/spatialaudioclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/spatialaudioclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/spellcheck.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/spellcheck.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/spellcheck.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/stdio.h
@@ -540,8 +540,15 @@ int vsnprintf (char *__stream, size_t __n, const char *__format, __builtin_va_li
   _CRTIMP int __cdecl _fileno(FILE *_File);
 #ifdef _POSIX_
   int __cdecl fileno(FILE *_File) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+#endif
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_tempnam")
+#undef _tempnam
 #endif
   _CRTIMP char *__cdecl _tempnam(const char *_DirName,const char *_FilePrefix);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_tempnam")
+#endif
   _CRTIMP int __cdecl _flushall(void);
   FILE *__cdecl fopen(const char * __restrict__ _Filename,const char * __restrict__ _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   FILE *fopen64(const char * __restrict__ filename,const char * __restrict__  mode);
@@ -915,10 +922,10 @@ int vsprintf (char * __restrict__ __stream, const char * __restrict__ __format,
   int __cdecl __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
 /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
   int __cdecl __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
-/* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
-  int __cdecl __mingw_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
-/* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
-  int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);
+/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
+  int __cdecl __mingw_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...);
+/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
+  int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list);
 
 /* __attribute__((__format__ (ms_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
   int __cdecl __ms_swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...);
@@ -935,10 +942,10 @@ int vsprintf (char * __restrict__ __stream, const char * __restrict__ __format,
   int __cdecl __ms_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
 /*__attribute__((__format__ (ms_wprintf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)
   int __cdecl __ms_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
-/* __attribute__((__format__ (ms_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
-  int __cdecl __ms_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
-/* __attribute__((__format__ (ms_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
-  int __cdecl __ms_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);
+/* __attribute__((__format__ (ms_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
+  int __cdecl __ms_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...);
+/* __attribute__((__format__ (ms_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
+  int __cdecl __ms_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list);
 
 #ifdef _UCRT
   int __cdecl __stdio_common_vswprintf(unsigned __int64 options, wchar_t *str, size_t len, const wchar_t *format, _locale_t locale, va_list valist);
@@ -996,6 +1003,32 @@ __MINGW_ASM_CALL(__mingw_vfwprintf);
 int vwprintf (const wchar_t *__format, __builtin_va_list __local_argv)
 __MINGW_ASM_CALL(__mingw_vwprintf);
 
+/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
+int swprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)
+__MINGW_ASM_CALL(__mingw_swprintf);
+
+#if __MINGW_FORTIFY_VA_ARG
+
+__mingw_bos_extern_ovr
+/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
+int swprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)
+{
+  __mingw_bos_ptr_chk_warn(__stream, __n * sizeof(wchar_t), 1);
+  return __mingw_swprintf( __stream, __n, __format, __builtin_va_arg_pack() );
+}
+
+#endif /* __MINGW_FORTIFY_VA_ARG */
+
+__mingw_bos_ovr
+/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
+int vswprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builtin_va_list __local_argv)
+{
+#if __MINGW_FORTIFY_LEVEL > 0
+  __mingw_bos_ptr_chk_warn(__stream, __n * sizeof(wchar_t), 1);
+#endif
+  return __mingw_vswprintf( __stream, __n, __format, __local_argv );
+}
+
 #ifndef __NO_ISOCEXT  /* externs in libmingwex.a */
 
 /* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
@@ -1023,6 +1056,7 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 #endif
   return __mingw_vsnwprintf( __stream, __n, __format, __local_argv );
 }
+
 #endif /* __NO_ISOCEXT */
 
 #else /* !__USE_MINGW_ANSI_STDIO */
@@ -1170,7 +1204,45 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 
 #if __USE_MINGW_ANSI_STDIO == 0
   __mingw_ovr
-  int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)
+  int __cdecl swprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...)
+  {
+    __builtin_va_list __ap;
+    int __ret;
+    /*
+     * __stdio_common_vswprintf() for case _Dest == NULL and _Count == 0 and
+     * without _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR option, is
+     * executed in "standard snprintf behavior" and returns number of (wide)
+     * chars required to allocate. For all other cases it is executed in a way
+     * that returns negative value on error. But C95+ compliant swprintf() for
+     * case _Count == 0 returns negative value, so handle this case specially.
+     */
+    if (_Dest == NULL && _Count == 0)
+      return -1;
+    __builtin_va_start(__ap, _Format);
+    __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Dest, _Count, _Format, NULL, __ap);
+    __builtin_va_end(__ap);
+    return __ret < 0 ? -1 : __ret;
+  }
+  __mingw_ovr
+  int __cdecl vswprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args)
+  {
+    int __ret;
+    /*
+     * __stdio_common_vswprintf() for case _Dest == NULL and _Count == 0 and
+     * without _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR option, is
+     * executed in "standard snprintf behavior" and returns number of (wide)
+     * chars required to allocate. For all other cases it is executed in a way
+     * that returns negative value on error. But C95+ compliant vswprintf() for
+     * case _Count == 0 returns negative value, so handle this case specially.
+     */
+    if (_Dest == NULL && _Count == 0)
+      return -1;
+    __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Dest, _Count, _Format, NULL, _Args);
+    return __ret < 0 ? -1 : __ret;
+  }
+
+  __mingw_ovr
+  int __cdecl snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)
   {
     __builtin_va_list __ap;
     int __ret;
@@ -1182,8 +1254,7 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
   __mingw_ovr
   int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
   {
-    int __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, s, n, format, NULL, arg);
-    return __ret < 0 ? -1 : __ret;
+    return __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, s, n, format, NULL, arg);
   }
 #endif
 
@@ -1222,26 +1293,16 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 #if __USE_MINGW_ANSI_STDIO == 0
   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
-  int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)
-  {
-    int r;
-    va_list argp;
-    __builtin_va_start (argp, format);
-    r = _vsnwprintf (s, n, format, argp);
-    __builtin_va_end (argp);
-    return r;
-  }
-  __mingw_ovr
-  int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
-  {
-    return _vsnwprintf(s,n,format,arg);
-  }
+  int __cdecl snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...) __MINGW_ASM_CALL(__ms_snwprintf);
+  int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg) __MINGW_ASM_CALL(__ms_vsnwprintf);
 #endif
 
 #endif /* ! __NO_ISOCEXT */
   _CRTIMP int __cdecl _swprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,...);
   _CRTIMP int __cdecl _vswprintf(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Format,va_list _Args);
+
+  int __cdecl swprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...);
+  int __cdecl vswprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args);
 #endif /* _UCRT */
 
 #ifndef RC_INVOKED
@@ -1255,7 +1316,14 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 #endif
 #endif
 
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_wtempnam")
+#undef _wtempnam
+#endif
   _CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_wtempnam")
+#endif
   _CRTIMP int __cdecl _snwscanf(const wchar_t * __restrict__ _Src,size_t _MaxCount,const wchar_t * __restrict__ _Format,...);
   _CRTIMP FILE *__cdecl _wfdopen(int _FileHandle ,const wchar_t *_Mode);
   _CRTIMP FILE *__cdecl _wfopen(const wchar_t * __restrict__ _Filename,const wchar_t *__restrict__  _Mode) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
@@ -1333,7 +1401,14 @@ int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builti
 #define P_tmpdir _P_tmpdir
 #define SYS_OPEN _SYS_OPEN
 
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("tempnam")
+#undef tempnam
+#endif
   char *__cdecl tempnam(const char *_Directory,const char *_FilePrefix) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("tempnam")
+#endif
   int __cdecl fcloseall(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
   FILE *__cdecl fdopen(int _FileHandle,const char *_Format) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
   int __cdecl fgetchar(void) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
lib/libc/include/any-windows-any/stdlib.h
@@ -419,6 +419,36 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re
 
 #ifndef _CRT_ALLOCATION_DEFINED
 #define _CRT_ALLOCATION_DEFINED
+
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("calloc")
+#undef calloc
+#pragma push_macro("free")
+#undef free
+#pragma push_macro("malloc")
+#undef malloc
+#pragma push_macro("realloc")
+#undef realloc
+#pragma push_macro("_aligned_free")
+#undef _aligned_free
+#pragma push_macro("_aligned_malloc")
+#undef _aligned_malloc
+#pragma push_macro("_aligned_offset_malloc")
+#undef _aligned_offset_malloc
+#pragma push_macro("_aligned_realloc")
+#undef _aligned_realloc
+#pragma push_macro("_aligned_offset_realloc")
+#undef _aligned_offset_realloc
+#pragma push_macro("_recalloc")
+#undef _recalloc
+#pragma push_macro("_aligned_recalloc")
+#undef _aligned_recalloc
+#pragma push_macro("_aligned_offset_recalloc")
+#undef _aligned_offset_recalloc
+#pragma push_macro("_aligned_msize")
+#undef _aligned_msize
+#endif
+
   void *__cdecl calloc(size_t _NumOfElements,size_t _SizeOfElements);
   void __cdecl free(void *_Memory);
   void *__cdecl malloc(size_t _Size);
@@ -434,6 +464,23 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re
   _CRTIMP void *__cdecl _aligned_offset_recalloc(void *_Memory,size_t _Count,size_t _Size,size_t _Alignment,size_t _Offset);
   _CRTIMP size_t __cdecl _aligned_msize(void *_Memory,size_t _Alignment,size_t _Offset);
 # endif
+
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("calloc")
+#pragma pop_macro("free")
+#pragma pop_macro("malloc")
+#pragma pop_macro("realloc")
+#pragma pop_macro("_aligned_free")
+#pragma pop_macro("_aligned_malloc")
+#pragma pop_macro("_aligned_offset_malloc")
+#pragma pop_macro("_aligned_realloc")
+#pragma pop_macro("_aligned_offset_realloc")
+#pragma pop_macro("_recalloc")
+#pragma pop_macro("_aligned_recalloc")
+#pragma pop_macro("_aligned_offset_recalloc")
+#pragma pop_macro("_aligned_msize")
+#endif
+
 #endif
 
 #ifndef _WSTDLIB_DEFINED
@@ -497,7 +544,16 @@ float __cdecl __MINGW_NOTHROW strtof(const char * __restrict__ _Str,char ** __re
 
 #ifndef _POSIX_
 #define _CVTBUFSIZE (309+40)
+
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_fullpath")
+#undef _fullpath
+#endif
   _CRTIMP char *__cdecl _fullpath(char *_FullPath,const char *_Path,size_t _SizeInBytes);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_fullpath")
+#endif
+
   _CRTIMP char *__cdecl _ecvt(double _Val,int _NumOfDigits,int *_PtDec,int *_PtSign) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _CRTIMP char *__cdecl _fcvt(double _Val,int _NumOfDec,int *_PtDec,int *_PtSign) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _CRTIMP char *__cdecl _gcvt(double _Val,int _NumOfDigits,char *_DstBuf) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
@@ -559,7 +615,14 @@ unsigned long __cdecl _lrotr(unsigned long,int);
 
 #ifndef _WSTDLIBP_DEFINED
 #define _WSTDLIBP_DEFINED
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_wfullpath")
+#undef _wfullpath
+#endif
   _CRTIMP wchar_t *__cdecl _wfullpath(wchar_t *_FullPath,const wchar_t *_Path,size_t _SizeInWords);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_wfullpath")
+#endif
   _CRTIMP void __cdecl _wmakepath(wchar_t *_ResultPath,const wchar_t *_Drive,const wchar_t *_Dir,const wchar_t *_Filename,const wchar_t *_Ext);
 #ifndef _CRT_WPERROR_DEFINED
 #define _CRT_WPERROR_DEFINED
lib/libc/include/any-windows-any/string.h
@@ -64,7 +64,14 @@ extern "C" {
   size_t __cdecl strlen(const char *_Str);
   size_t __cdecl strnlen(const char *_Str,size_t _MaxCount);
   void *__cdecl memmove(void *_Dst,const void *_Src,size_t _Size) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_strdup")
+#undef _strdup
+#endif
   _CRTIMP char *__cdecl _strdup(const char *_Src);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_strdup")
+#endif
   _CONST_RETURN char *__cdecl strchr(const char *_Str,int _Val);
   _CRTIMP int __cdecl _stricmp(const char *_Str1,const char *_Str2);
   _CRTIMP int __cdecl _strcmpi(const char *_Str1,const char *_Str2);
@@ -105,7 +112,14 @@ extern "C" {
   _CRTIMP size_t __cdecl _strxfrm_l(char * __restrict__ _Dst,const char * __restrict__ _Src,size_t _MaxCount,_locale_t _Locale);
 
 #ifndef	NO_OLDNAMES
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("strdup")
+#undef strdup
+#endif
   char *__cdecl strdup(const char *_Src) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("strdup")
+#endif
   int __cdecl strcmpi(const char *_Str1,const char *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
   int __cdecl stricmp(const char *_Str1,const char *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
   char *__cdecl strlwr(char *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
@@ -128,7 +142,14 @@ extern "C" {
 #ifndef _WSTRING_DEFINED
 #define _WSTRING_DEFINED
 
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_wcsdup")
+#undef _wcsdup
+#endif
   _CRTIMP wchar_t *__cdecl _wcsdup(const wchar_t *_Str);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_wcsdup")
+#endif
   wchar_t *__cdecl wcscat(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch);
   int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2);
@@ -177,7 +198,14 @@ extern "C" {
   _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
 
 #ifndef	NO_OLDNAMES
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("wcsdup")
+#undef wcsdup
+#endif
   wchar_t *__cdecl wcsdup(const wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("wcsdup")
+#endif
 #define wcswcs wcsstr
   int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
   int __cdecl wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
lib/libc/include/any-windows-any/strmif.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/strmif.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/strmif.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/structuredquerycondition.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/structuredquerycondition.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/structuredquerycondition.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/swprintf.inl
@@ -9,26 +9,6 @@
 
 #include <vadefs.h>
 
-__mingw_ovr
-/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
-int vswprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, __builtin_va_list __local_argv)
-{
-  return vsnwprintf( __stream, __count, __format, __local_argv );
-}
-
-__mingw_ovr
-/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
-int swprintf (wchar_t *__stream, size_t __count, const wchar_t *__format, ...)
-{
-  int __retval;
-  __builtin_va_list __local_argv;
-
-  __builtin_va_start( __local_argv, __format );
-  __retval = vswprintf( __stream, __count, __format, __local_argv );
-  __builtin_va_end( __local_argv );
-  return __retval;
-}
-
 #ifdef __cplusplus
 
 extern "C++" {
@@ -37,17 +17,15 @@ __mingw_ovr
 /* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
 int vswprintf (wchar_t *__stream, const wchar_t *__format, __builtin_va_list __local_argv)
 {
-#if __USE_MINGW_ANSI_STDIO
-  return __mingw_vswprintf( __stream, __format, __local_argv );
-#else
   return _vswprintf( __stream, __format, __local_argv );
-#endif
 }
 
 __mingw_ovr
 /* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
 int swprintf (wchar_t *__stream, const wchar_t *__format, ...)
 {
+#ifdef __clang__
+  /* clang does not support __builtin_va_arg_pack(), so forward swprintf() to vswprintf() */
   int __retval;
   __builtin_va_list __local_argv;
 
@@ -55,19 +33,17 @@ int swprintf (wchar_t *__stream, const wchar_t *__format, ...)
   __retval = vswprintf( __stream, __format, __local_argv );
   __builtin_va_end( __local_argv );
   return __retval;
+#else
+  return _swprintf( __stream, __format, __builtin_va_arg_pack() );
+#endif
 }
 
 }
 
 #elif defined(_CRT_NON_CONFORMING_SWPRINTFS)
 
-#if __USE_MINGW_ANSI_STDIO
-#define swprintf __mingw_swprintf
-#define vswprintf __mingw_vswprintf
-#else
 #define swprintf _swprintf
 #define vswprintf _vswprintf
-#endif
 
 #endif /* __cplusplus */
 
lib/libc/include/any-windows-any/systemmediatransportcontrolsinterop.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/systemmediatransportcontrolsinterop.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/systemmediatransportcontrolsinterop.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 9.20 from include/taskschd.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/taskschd.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tchar.h
@@ -133,7 +133,7 @@ extern "C" {
 #define _tenviron _wenviron
 #define __targv __wargv
 
-#define _tprintf wprintf
+#define _tprintf __ms_wprintf
 #define _tprintf_l _wprintf_l
 #define _tprintf_p _wprintf_p
 #define _tprintf_p_l _wprintf_p_l
@@ -145,11 +145,11 @@ extern "C" {
 #define _vtcprintf_l _vcwprintf_l
 #define _vtcprintf_p _vcwprintf_p
 #define _vtcprintf_p_l _vcwprintf_p_l
-#define _ftprintf fwprintf
+#define _ftprintf __ms_fwprintf
 #define _ftprintf_l _fwprintf_l
 #define _ftprintf_p _fwprintf_p
 #define _ftprintf_p_l _fwprintf_p_l
-#define _stprintf swprintf
+#define _stprintf _swprintf
 #define _stprintf_l __swprintf_l
 #define _stprintf_p _swprintf_p
 #define _stprintf_p_l _swprintf_p_l
@@ -159,15 +159,15 @@ extern "C" {
 #define _sctprintf_p_l _scwprintf_p_l
 #define _sntprintf _snwprintf
 #define _sntprintf_l _snwprintf_l
-#define _vtprintf vwprintf
+#define _vtprintf __ms_vwprintf
 #define _vtprintf_l _vwprintf_l
 #define _vtprintf_p _vwprintf_p
 #define _vtprintf_p_l _vwprintf_p_l
-#define _vftprintf vfwprintf
+#define _vftprintf __ms_vfwprintf
 #define _vftprintf_l _vfwprintf_l
 #define _vftprintf_p _vfwprintf_p
 #define _vftprintf_p_l _vfwprintf_p_l
-#define _vstprintf vswprintf
+#define _vstprintf _vswprintf
 #define _vstprintf_l _vswprintf_l
 #define _vstprintf_p _vswprintf_p
 #define _vstprintf_p_l _vswprintf_p_l
@@ -178,13 +178,13 @@ extern "C" {
 #define _vsntprintf _vsnwprintf
 #define _vsntprintf_l _vsnwprintf_l
 
-#define _tscanf wscanf
+#define _tscanf __ms_wscanf
 #define _tscanf_l _wscanf_l
 #define _tcscanf _cwscanf
 #define _tcscanf_l _cwscanf_l
-#define _ftscanf fwscanf
+#define _ftscanf __ms_fwscanf
 #define _ftscanf_l _fwscanf_l
-#define _stscanf swscanf
+#define _stscanf __ms_swscanf
 #define _stscanf_l _swscanf_l
 #define _sntscanf _snwscanf
 #define _sntscanf_l _snwscanf_l
@@ -404,6 +404,21 @@ extern "C" {
 
 #define _tsetlocale _wsetlocale
 
+#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
+#endif
+
 #define _tcsclen wcslen
 #define _tcscnlen wcsnlen
 #define _tcsclen_l(_String,_Locale) wcslen(_String)
@@ -457,6 +472,10 @@ extern "C" {
 #define _istupper_l _iswupper_l
 #define _istxdigit iswxdigit
 #define _istxdigit_l _iswxdigit_l
+#define _istblank iswblank
+#if __MSVCRT_VERSION__ >= 0xC00
+#define _istblank_l _iswblank_l
+#endif  /* msvcr120 */
 
 #define _totupper towupper
 #define _totupper_l _towupper_l
@@ -493,7 +512,7 @@ extern "C" {
 
 #endif /* __CYGWIN__ */
 
-#else
+#else /* _UNICODE */
 
 #ifdef __cplusplus
 }
@@ -520,7 +539,7 @@ extern "C" {
 #endif
 #define __targv __argv
 
-#define _tprintf printf
+#define _tprintf __ms_printf
 #define _tprintf_l _printf_l
 #define _tprintf_p _printf_p
 #define _tprintf_p_l _printf_p_l
@@ -532,11 +551,11 @@ extern "C" {
 #define _vtcprintf_l _vcprintf_l
 #define _vtcprintf_p _vcprintf_p
 #define _vtcprintf_p_l _vcprintf_p_l
-#define _ftprintf fprintf
+#define _ftprintf __ms_fprintf
 #define _ftprintf_l _fprintf_l
 #define _ftprintf_p _fprintf_p
 #define _ftprintf_p_l _fprintf_p_l
-#define _stprintf sprintf
+#define _stprintf __ms_sprintf
 #define _stprintf_l _sprintf_l
 #define _stprintf_p _sprintf_p
 #define _stprintf_p_l _sprintf_p_l
@@ -546,15 +565,15 @@ extern "C" {
 #define _sctprintf_p_l _scprintf_p_l
 #define _sntprintf _snprintf
 #define _sntprintf_l _snprintf_l
-#define _vtprintf vprintf
+#define _vtprintf __ms_vprintf
 #define _vtprintf_l _vprintf_l
 #define _vtprintf_p _vprintf_p
 #define _vtprintf_p_l _vprintf_p_l
-#define _vftprintf vfprintf
+#define _vftprintf __ms_vfprintf
 #define _vftprintf_l _vfprintf_l
 #define _vftprintf_p _vfprintf_p
 #define _vftprintf_p_l _vfprintf_p_l
-#define _vstprintf vsprintf
+#define _vstprintf __ms_vsprintf
 #define _vstprintf_l _vsprintf_l
 #define _vstprintf_p _vsprintf_p
 #define _vstprintf_p_l _vsprintf_p_l
@@ -565,13 +584,13 @@ extern "C" {
 #define _vsntprintf _vsnprintf
 #define _vsntprintf_l _vsnprintf_l
 
-#define _tscanf scanf
+#define _tscanf __ms_scanf
 #define _tscanf_l _scanf_l
 #define _tcscanf _cscanf
 #define _tcscanf_l _cscanf_l
-#define _ftscanf fscanf
+#define _ftscanf __ms_fscanf
 #define _ftscanf_l _fscanf_l
-#define _stscanf sscanf
+#define _stscanf __ms_sscanf
 #define _stscanf_l _sscanf_l
 #define _sntscanf _snscanf
 #define _sntscanf_l _snscanf_l
@@ -769,18 +788,6 @@ 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
@@ -997,6 +1004,10 @@ extern "C" {
 #define _istspace_l _ismbcspace_l
 #define _istupper _ismbcupper
 #define _istupper_l _ismbcupper_l
+#define _istblank _ismbcblank
+#if __MSVCRT_VERSION__ >= 0xC00
+#define _istblank_l _ismbcblank_l
+#endif  /* msvcr120 */
 
 #define _totupper _mbctoupper
 #define _totupper_l _mbctoupper_l
@@ -1009,7 +1020,7 @@ extern "C" {
 
 #endif /* __CYGWIN__ */
 
-#else
+#else /* _MBCS */
 
 #ifndef __TCHAR_DEFINED
 #define __TCHAR_DEFINED
@@ -1134,6 +1145,10 @@ extern "C" {
 #define _istspace_l _isspace_l
 #define _istupper isupper
 #define _istupper_l _isupper_l
+#define _istblank isblank
+#if __MSVCRT_VERSION__ >= 0xC00
+#define _istblank_l _isblank_l
+#endif  /* msvcr120 */
 
 #define _totupper toupper
 #define _totupper_l _toupper_l
@@ -1168,9 +1183,9 @@ extern "C" {
 #define _strnset_l(_Destination,_Value,_Count,_Locale) (_strnset(_Destination,_Value,_Count))
 #define _strset_l(_Destination,_Value,_Locale) (_strset(_Destination,_Value))
 #endif
-#endif
+#endif /* _MBCS */
 
-#endif /* __CYGWIN__ */
+#endif /* _UNICODE */
 
 #define _T(x) __T(x)
 #define _TEXT(x) __T(x)
lib/libc/include/any-windows-any/textstor.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/textstor.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/textstor.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/thumbcache.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/thumbcache.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/thumbcache.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tlbref.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/tlbref.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/tlogstg.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/tpcshrd.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/tpcshrd.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tsvirtualchannels.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/tsvirtualchannels.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/tsvirtualchannels.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/tuner.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/tuner.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/tuner.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/uianimation.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/uianimation.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/uianimation.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/uiautomationclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/uiautomationclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/uiautomationclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1344,6 +1344,96 @@ DEFINE_GUID(LIBID_UIAutomationClient, 0x944de083, 0x8fb8, 0x45cf, 0xbc,0xb7, 0xc
 #define UIA_AppBarControlTypeId (50040)
 
 #endif /* __UIA_ControlTypeIds_MODULE_DEFINED__ */
+#ifndef __UIA_AnnotationTypes_MODULE_DEFINED__
+#define __UIA_AnnotationTypes_MODULE_DEFINED__
+#define AnnotationType_Unknown (60000)
+
+#define AnnotationType_SpellingError (60001)
+
+#define AnnotationType_GrammarError (60002)
+
+#define AnnotationType_Comment (60003)
+
+#define AnnotationType_FormulaError (60004)
+
+#define AnnotationType_TrackChanges (60005)
+
+#define AnnotationType_Header (60006)
+
+#define AnnotationType_Footer (60007)
+
+#define AnnotationType_Highlighted (60008)
+
+#define AnnotationType_Endnote (60009)
+
+#define AnnotationType_Footnote (60010)
+
+#define AnnotationType_InsertionChange (60011)
+
+#define AnnotationType_DeletionChange (60012)
+
+#define AnnotationType_MoveChange (60013)
+
+#define AnnotationType_FormatChange (60014)
+
+#define AnnotationType_UnsyncedChange (60015)
+
+#define AnnotationType_EditingLockedChange (60016)
+
+#define AnnotationType_ExternalChange (60017)
+
+#define AnnotationType_ConflictingChange (60018)
+
+#define AnnotationType_Author (60019)
+
+#define AnnotationType_AdvancedProofingIssue (60020)
+
+#define AnnotationType_DataValidationError (60021)
+
+#define AnnotationType_CircularReferenceError (60022)
+
+#define AnnotationType_Mathematics (60023)
+
+#define AnnotationType_Sensitive (60024)
+
+#endif /* __UIA_AnnotationTypes_MODULE_DEFINED__ */
+#ifndef __UIA_StyleIds_MODULE_DEFINED__
+#define __UIA_StyleIds_MODULE_DEFINED__
+#define StyleId_Custom (70000)
+
+#define StyleId_Heading1 (70001)
+
+#define StyleId_Heading2 (70002)
+
+#define StyleId_Heading3 (70003)
+
+#define StyleId_Heading4 (70004)
+
+#define StyleId_Heading5 (70005)
+
+#define StyleId_Heading6 (70006)
+
+#define StyleId_Heading7 (70007)
+
+#define StyleId_Heading8 (70008)
+
+#define StyleId_Heading9 (70009)
+
+#define StyleId_Title (70010)
+
+#define StyleId_Subtitle (70011)
+
+#define StyleId_Normal (70012)
+
+#define StyleId_Emphasis (70013)
+
+#define StyleId_Quote (70014)
+
+#define StyleId_BulletedList (70015)
+
+#define StyleId_NumberedList (70016)
+
+#endif /* __UIA_StyleIds_MODULE_DEFINED__ */
 #ifndef __UIA_LandmarkTypeIds_MODULE_DEFINED__
 #define __UIA_LandmarkTypeIds_MODULE_DEFINED__
 #define UIA_CustomLandmarkTypeId (80000)
lib/libc/include/any-windows-any/uiautomationcore.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/uiautomationcore.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/uiautomationcore.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/uiviewsettingsinterop.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/uiviewsettingsinterop.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/uiviewsettingsinterop.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/unknwn.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/unknwn.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/unknwn.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/unknwnbase.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/unknwnbase.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/urlhist.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/urlmon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/urlmon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vdslun.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/vdslun.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/vdslun.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vidcap.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/vidcap.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/vidcap.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vmr9.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/vmr9.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/vmr9.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vsadmin.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/vsadmin.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/vsadmin.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vsbackup.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/vsbackup.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/vsbackup.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vsmgmt.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/vsmgmt.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/vsmgmt.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vsprov.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/vsprov.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/vsprov.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vss.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/vss.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/vss.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/vswriter.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/vswriter.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/vswriter.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 9.20 from include/wbemads.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wbemads.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wbemcli.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wbemcli.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wbemcli.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wbemdisp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wbemdisp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wbemdisp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wbemprov.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wbemprov.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wbemprov.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wbemtran.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wbemtran.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wbemtran.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wchar.h
@@ -213,8 +213,9 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
   wint_t __cdecl towupper(wint_t _C);
   wint_t __cdecl towlower(wint_t _C);
   int __cdecl iswctype(wint_t _C,wctype_t _Type);
-#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x700 && _WIN32_WINNT >= 0x0600)
-  /* These are available since msvcr80.dll, and in msvcrt.dll since Vista. */
+#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x600 && _WIN32_WINNT >= 0x0600)
+  /* These are available since msvcr80.dll (__MSVCRT_VERSION__ >= 0x800), and in
+   * msvcrt.dll (__MSVCRT_VERSION__ == 0x600) since Vista (_WIN32_WINNT >= 0x0600). */
   _CRTIMP int __cdecl _iswalpha_l(wint_t _C,_locale_t _Locale);
   _CRTIMP int __cdecl _iswupper_l(wint_t _C,_locale_t _Locale);
   _CRTIMP int __cdecl _iswlower_l(wint_t _C,_locale_t _Locale);
@@ -253,10 +254,23 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
 #ifndef _WDIRECT_DEFINED
 #define _WDIRECT_DEFINED
 
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_wgetcwd")
+#undef _wgetcwd
+#pragma push_macro("_wgetdcwd")
+#undef _wgetdcwd
+#pragma push_macro("_wgetdcwd_nolock")
+#undef _wgetdcwd_nolock
+#endif
   _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
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_wgetcwd")
+#pragma pop_macro("_wgetdcwd")
+#pragma pop_macro("_wgetdcwd_nolock")
 #endif
   _CRTIMP int __cdecl _wchdir(const wchar_t *_Path);
   _CRTIMP int __cdecl _wmkdir(const wchar_t *_Path);
@@ -336,7 +350,7 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
 #define iswgraph(_c) (iswctype(_c,_PUNCT|_ALPHA|_DIGIT))
 #define iswcntrl(_c) (iswctype(_c,_CONTROL))
 #define iswascii(_c) ((unsigned)(_c) < 0x80)
-#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x700 && _WIN32_WINNT >= 0x0600)
+#if __MSVCRT_VERSION__ >= 0x800 || (__MSVCRT_VERSION__ == 0x600 && _WIN32_WINNT >= 0x0600)
 # define _iswalpha_l(_c,_p) (_iswctype_l(_c,_ALPHA,_p))
 # define _iswupper_l(_c,_p) (_iswctype_l(_c,_UPPER,_p))
 # define _iswlower_l(_c,_p) (_iswctype_l(_c,_LOWER,_p))
@@ -452,10 +466,10 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
   int __cdecl __mingw_snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...);
 /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
   int __cdecl __mingw_vsnwprintf (wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , va_list);
-/* __attribute__((__format__ (gnu_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
-  int __cdecl __mingw_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
-/* __attribute__((__format__ (gnu_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
-  int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);
+/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
+  int __cdecl __mingw_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...);
+/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
+  int __cdecl __mingw_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list);
 
 /* __attribute__((__format__ (ms_wscanf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
   int __cdecl __ms_swscanf(const wchar_t * __restrict__ _Src,const wchar_t * __restrict__ _Format,...);
@@ -472,10 +486,10 @@ _CRTIMP FILE *__cdecl __acrt_iob_func(unsigned index);
   int __cdecl __ms_vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
 /*__attribute__((__format__ (ms_wprintf, 1, 0))) */ __MINGW_ATTRIB_NONNULL(1)
   int __cdecl __ms_vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
-/* __attribute__((__format__ (ms_wprintf, 2, 3))) */ __MINGW_ATTRIB_NONNULL(2)
-  int __cdecl __ms_swprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ , ...);
-/* __attribute__((__format__ (ms_wprintf, 2, 0))) */ __MINGW_ATTRIB_NONNULL(2)
-  int __cdecl __ms_vswprintf(wchar_t * __restrict__ , const wchar_t * __restrict__ ,va_list);
+/* __attribute__((__format__ (ms_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
+  int __cdecl __ms_swprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ , ...);
+/* __attribute__((__format__ (ms_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
+  int __cdecl __ms_vswprintf(wchar_t * __restrict__ , size_t, const wchar_t * __restrict__ ,va_list);
 
 #ifdef _UCRT
   int __cdecl __stdio_common_vswprintf(unsigned __int64 options, wchar_t *str, size_t len, const wchar_t *format, _locale_t locale, va_list valist);
@@ -533,7 +547,16 @@ __MINGW_ASM_CALL(__mingw_vfwprintf);
 int vwprintf (const wchar_t *__format, __builtin_va_list __local_argv)
 __MINGW_ASM_CALL(__mingw_vwprintf);
 
-/*#ifndef __NO_ISOCEXT */  /* externs in libmingwex.a */
+/* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
+int swprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)
+__MINGW_ASM_CALL(__mingw_swprintf);
+
+/* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
+int vswprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builtin_va_list __local_argv)
+__MINGW_ASM_CALL(__mingw_vswprintf);
+
+#ifndef __NO_ISOCEXT  /* externs in libmingwex.a */
+
 /* __attribute__((__format__ (gnu_wprintf, 3, 4))) */ __MINGW_ATTRIB_NONNULL(3)
 int snwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, ...)
 __MINGW_ASM_CALL(__mingw_snwprintf);
@@ -541,7 +564,9 @@ __MINGW_ASM_CALL(__mingw_snwprintf);
 /* __attribute__((__format__ (gnu_wprintf, 3, 0))) */ __MINGW_ATTRIB_NONNULL(3)
 int vsnwprintf (wchar_t *__stream, size_t __n, const wchar_t *__format, __builtin_va_list __local_argv)
 __MINGW_ASM_CALL(__mingw_vsnwprintf);
-/* #endif */ /* __NO_ISOCEXT */
+
+#endif /* __NO_ISOCEXT */
+
 #else /* !__USE_MINGW_ANSI_STDIO */
 
 #ifdef _UCRT
@@ -616,6 +641,44 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
   {
     return __stdio_common_vfwprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, stdout, _Format, NULL, _ArgList);
   }
+
+  __mingw_ovr
+  int __cdecl swprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...)
+  {
+    __builtin_va_list __ap;
+    int __ret;
+    /*
+     * __stdio_common_vswprintf() for case _Dest == NULL and _Count == 0 and
+     * without _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR option, is
+     * executed in "standard snprintf behavior" and returns number of (wide)
+     * chars required to allocate. For all other cases it is executed in a way
+     * that returns negative value on error. But C95+ compliant swprintf() for
+     * case _Count == 0 returns negative value, so handle this case specially.
+     */
+    if (_Dest == NULL && _Count == 0)
+      return -1;
+    __builtin_va_start(__ap, _Format);
+    __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Dest, _Count, _Format, NULL, __ap);
+    __builtin_va_end(__ap);
+    return __ret < 0 ? -1 : __ret;
+  }
+  __mingw_ovr
+  int __cdecl vswprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args)
+  {
+    int __ret;
+    /*
+     * __stdio_common_vswprintf() for case _Dest == NULL and _Count == 0 and
+     * without _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR option, is
+     * executed in "standard snprintf behavior" and returns number of (wide)
+     * chars required to allocate. For all other cases it is executed in a way
+     * that returns negative value on error. But C95+ compliant vswprintf() for
+     * case _Count == 0 returns negative value, so handle this case specially.
+     */
+    if (_Dest == NULL && _Count == 0)
+      return -1;
+    __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, _Dest, _Count, _Format, NULL, _Args);
+    return __ret < 0 ? -1 : __ret;
+  }
 #else
 
   int __cdecl fwscanf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,...) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
@@ -652,6 +715,9 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
   int __cdecl wprintf(const wchar_t * __restrict__ _Format,...);
   int __cdecl vfwprintf(FILE * __restrict__ _File,const wchar_t * __restrict__ _Format,va_list _ArgList);
   int __cdecl vwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
+
+  int __cdecl swprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,...);
+  int __cdecl vswprintf(wchar_t * __restrict__ _Dest,size_t _Count,const wchar_t * __restrict__ _Format,va_list _Args);
 #endif /* _UCRT */
 #endif /* __USE_MINGW_ANSI_STDIO */
 
@@ -707,12 +773,12 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
     __builtin_va_start(__ap, format);
     __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, s, n, format, NULL, __ap);
     __builtin_va_end(__ap);
-    return __ret;
+    return __ret < 0 ? -1 : __ret;
   }
   __mingw_ovr
   int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
   {
-    int __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS, s, n, format, NULL, arg);
+    int __ret = __stdio_common_vswprintf(_CRT_INTERNAL_LOCAL_PRINTF_OPTIONS | _CRT_INTERNAL_PRINTF_STANDARD_SNPRINTF_BEHAVIOR, s, n, format, NULL, arg);
     return __ret < 0 ? -1 : __ret;
   }
 #endif
@@ -734,21 +800,8 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
 # 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
-  int snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...)
-  {
-    int r;
-    va_list argp;
-    __builtin_va_start (argp, format);
-    r = _vsnwprintf (s, n, format, argp);
-    __builtin_va_end (argp);
-    return r;
-  }
-  __mingw_ovr
-  int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg)
-  {
-    return _vsnwprintf(s,n,format,arg);
-  }
+  int __cdecl snwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, ...) __MINGW_ASM_CALL(__ms_snwprintf);
+  int __cdecl vsnwprintf (wchar_t * __restrict__ s, size_t n, const wchar_t * __restrict__ format, va_list arg) __MINGW_ASM_CALL(__ms_vsnwprintf);
 #pragma pop_macro ("vsnwprintf")
 #pragma pop_macro ("snwprintf")
 #endif
@@ -1078,7 +1131,15 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
 #endif
 #endif
 
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_wtempnam")
+#undef _wtempnam
+#endif
   _CRTIMP wchar_t *__cdecl _wtempnam(const wchar_t *_Directory,const wchar_t *_FilePrefix);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_wtempnam")
+#endif
+
 #ifndef _UCRT
   _CRTIMP int __cdecl _vscwprintf(const wchar_t * __restrict__ _Format,va_list _ArgList);
   _CRTIMP int __cdecl _vscwprintf_l(const wchar_t * __restrict__ _Format,_locale_t _Locale,va_list _ArgList);
@@ -1184,7 +1245,14 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
 #ifndef _POSIX_
 #ifndef _WSTDLIBP_DEFINED
 #define _WSTDLIBP_DEFINED
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_wfullpath")
+#undef _wfullpath
+#endif
   _CRTIMP wchar_t *__cdecl _wfullpath(wchar_t *_FullPath,const wchar_t *_Path,size_t _SizeInWords);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_wfullpath")
+#endif
   _CRTIMP void __cdecl _wmakepath(wchar_t *_ResultPath,const wchar_t *_Drive,const wchar_t *_Dir,const wchar_t *_Filename,const wchar_t *_Ext);
 #ifndef _CRT_WPERROR_DEFINED
 #define _CRT_WPERROR_DEFINED
@@ -1198,7 +1266,14 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
 
 #ifndef _WSTRING_DEFINED
 #define _WSTRING_DEFINED
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("_wcsdup")
+#undef _wcsdup
+#endif
   _CRTIMP wchar_t *__cdecl _wcsdup(const wchar_t *_Str);
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("_wcsdup")
+#endif
   wchar_t *__cdecl wcscat(wchar_t * __restrict__ _Dest,const wchar_t * __restrict__ _Source) __MINGW_ATTRIB_DEPRECATED_SEC_WARN;
   _CONST_RETURN wchar_t *__cdecl wcschr(const wchar_t *_Str,wchar_t _Ch);
   int __cdecl wcscmp(const wchar_t *_Str1,const wchar_t *_Str2);
@@ -1247,7 +1322,14 @@ __MINGW_ASM_CALL(__mingw_vsnwprintf);
   _CRTIMP int __cdecl _wcsnicoll_l(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount,_locale_t _Locale);
 
 #ifndef	NO_OLDNAMES
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma push_macro("wcsdup")
+#undef wcsdup
+#endif
   wchar_t *__cdecl wcsdup(const wchar_t *_Str) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
+#if defined(_DEBUG) && defined(_CRTDBG_MAP_ALLOC)
+#pragma pop_macro("wcsdup")
+#endif
 #define wcswcs wcsstr
   int __cdecl wcsicmp(const wchar_t *_Str1,const wchar_t *_Str2) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
   int __cdecl wcsnicmp(const wchar_t *_Str1,const wchar_t *_Str2,size_t _MaxCount) __MINGW_ATTRIB_DEPRECATED_MSVC2005;
lib/libc/include/any-windows-any/wdstptmgmt.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wdstptmgmt.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wdstptmgmt.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/weakreference.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/weakreference.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/weakreference.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wia.h
@@ -1,1035 +1,28 @@
-/**
- * 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.
+/*
+ * Copyright (C) 2009 Damjan Jovanovic
+ *
+ * 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
  */
-#ifndef __REQUIRED_RPCNDR_H_VERSION__
-#define __REQUIRED_RPCNDR_H_VERSION__ 475
-#endif
-
-#include "rpc.h"
-#include "rpcndr.h"
-
-#ifndef __RPCNDR_H_VERSION__
-#error This stub requires an updated version of <rpcndr.h>
-#endif
-
-#ifndef COM_NO_WINDOWS_H
-#include "windows.h"
-#include "ole2.h"
-#endif
-
-#ifndef __wia_h__
-#define __wia_h__
-
-#ifndef __IWiaDevMgr_FWD_DEFINED__
-#define __IWiaDevMgr_FWD_DEFINED__
-typedef struct IWiaDevMgr IWiaDevMgr;
-#endif
-
-#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
-#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
-typedef struct IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
-#endif
-
-#ifndef __IWiaEventCallback_FWD_DEFINED__
-#define __IWiaEventCallback_FWD_DEFINED__
-typedef struct IWiaEventCallback IWiaEventCallback;
-#endif
-
-#ifndef __IWiaDataCallback_FWD_DEFINED__
-#define __IWiaDataCallback_FWD_DEFINED__
-typedef struct IWiaDataCallback IWiaDataCallback;
-#endif
-
-#ifndef __IWiaDataTransfer_FWD_DEFINED__
-#define __IWiaDataTransfer_FWD_DEFINED__
-typedef struct IWiaDataTransfer IWiaDataTransfer;
-#endif
-
-#ifndef __IWiaItem_FWD_DEFINED__
-#define __IWiaItem_FWD_DEFINED__
-typedef struct IWiaItem IWiaItem;
-#endif
-
-#ifndef __IWiaPropertyStorage_FWD_DEFINED__
-#define __IWiaPropertyStorage_FWD_DEFINED__
-typedef struct IWiaPropertyStorage IWiaPropertyStorage;
-#endif
-
-#ifndef __IEnumWiaItem_FWD_DEFINED__
-#define __IEnumWiaItem_FWD_DEFINED__
-typedef struct IEnumWiaItem IEnumWiaItem;
-#endif
-
-#ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__
-#define __IEnumWIA_DEV_CAPS_FWD_DEFINED__
-typedef struct IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
-#endif
-
-#ifndef __IEnumWIA_FORMAT_INFO_FWD_DEFINED__
-#define __IEnumWIA_FORMAT_INFO_FWD_DEFINED__
-typedef struct IEnumWIA_FORMAT_INFO IEnumWIA_FORMAT_INFO;
-#endif
-
-#ifndef __IWiaLog_FWD_DEFINED__
-#define __IWiaLog_FWD_DEFINED__
-typedef struct IWiaLog IWiaLog;
-#endif
-
-#ifndef __IWiaLogEx_FWD_DEFINED__
-#define __IWiaLogEx_FWD_DEFINED__
-typedef struct IWiaLogEx IWiaLogEx;
-#endif
 
-#ifndef __IWiaNotifyDevMgr_FWD_DEFINED__
-#define __IWiaNotifyDevMgr_FWD_DEFINED__
-typedef struct IWiaNotifyDevMgr IWiaNotifyDevMgr;
-#endif
-
-#ifndef __IWiaItemExtras_FWD_DEFINED__
-#define __IWiaItemExtras_FWD_DEFINED__
-typedef struct IWiaItemExtras IWiaItemExtras;
-#endif
-
-#ifndef __WiaDevMgr_FWD_DEFINED__
-#define __WiaDevMgr_FWD_DEFINED__
-
-#ifdef __cplusplus
-typedef class WiaDevMgr WiaDevMgr;
-#else
-typedef struct WiaDevMgr WiaDevMgr;
-#endif
-#endif
-
-#ifndef __WiaLog_FWD_DEFINED__
-#define __WiaLog_FWD_DEFINED__
 
-#ifdef __cplusplus
-typedef class WiaLog WiaLog;
-#else
-typedef struct WiaLog WiaLog;
+#ifdef __WINESRC__
+#error Specify wia_lh.h or wia_xp.h explicitly in Wine
 #endif
-#endif
-
-#include "unknwn.h"
-#include "oaidl.h"
-#include "propidl.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef __MIDL_user_allocate_free_DEFINED__
-#define __MIDL_user_allocate_free_DEFINED__
-  void *__RPC_API MIDL_user_allocate(size_t);
-  void __RPC_API MIDL_user_free(void *);
-#endif
-
-  typedef struct _WIA_DITHER_PATTERN_DATA {
-    LONG lSize;
-    BSTR bstrPatternName;
-    LONG lPatternWidth;
-    LONG lPatternLength;
-    LONG cbPattern;
-    BYTE *pbPattern;
-  } WIA_DITHER_PATTERN_DATA;
-
-  typedef struct _WIA_DITHER_PATTERN_DATA *PWIA_DITHER_PATTERN_DATA;
 
-  typedef struct _WIA_PROPID_TO_NAME {
-    PROPID propid;
-    LPOLESTR pszName;
-  } WIA_PROPID_TO_NAME;
-
-  typedef struct _WIA_PROPID_TO_NAME *PWIA_PROPID_TO_NAME;
-
-  typedef struct _WIA_FORMAT_INFO {
-    GUID guidFormatID;
-    LONG lTymed;
-  } WIA_FORMAT_INFO;
-
-  typedef struct _WIA_FORMAT_INFO *PWIA_FORMAT_INFO;
-
-#include "wiadef.h"
-
-  extern RPC_IF_HANDLE __MIDL_itf_wia_0000_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wia_0000_v0_0_s_ifspec;
-#ifndef __IWiaDevMgr_INTERFACE_DEFINED__
-#define __IWiaDevMgr_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWiaDevMgr;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWiaDevMgr : public IUnknown {
-  public:
-    virtual HRESULT WINAPI EnumDeviceInfo(LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum) = 0;
-    virtual HRESULT WINAPI CreateDevice(BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot) = 0;
-    virtual HRESULT WINAPI SelectDeviceDlg(HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot) = 0;
-    virtual HRESULT WINAPI SelectDeviceDlgID(HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID) = 0;
-    virtual HRESULT WINAPI GetImageDlg(HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat) = 0;
-    virtual HRESULT WINAPI RegisterEventCallbackProgram(LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) = 0;
-    virtual HRESULT WINAPI RegisterEventCallbackInterface(LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject) = 0;
-    virtual HRESULT WINAPI RegisterEventCallbackCLSID(LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) = 0;
-    virtual HRESULT WINAPI AddDeviceDlg(HWND hwndParent,LONG lFlags) = 0;
-  };
-#else
-  typedef struct IWiaDevMgrVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWiaDevMgr *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWiaDevMgr *This);
-      ULONG (WINAPI *Release)(IWiaDevMgr *This);
-      HRESULT (WINAPI *EnumDeviceInfo)(IWiaDevMgr *This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum);
-      HRESULT (WINAPI *CreateDevice)(IWiaDevMgr *This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot);
-      HRESULT (WINAPI *SelectDeviceDlg)(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot);
-      HRESULT (WINAPI *SelectDeviceDlgID)(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID);
-      HRESULT (WINAPI *GetImageDlg)(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat);
-      HRESULT (WINAPI *RegisterEventCallbackProgram)(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
-      HRESULT (WINAPI *RegisterEventCallbackInterface)(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject);
-      HRESULT (WINAPI *RegisterEventCallbackCLSID)(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
-      HRESULT (WINAPI *AddDeviceDlg)(IWiaDevMgr *This,HWND hwndParent,LONG lFlags);
-    END_INTERFACE
-  } IWiaDevMgrVtbl;
-  struct IWiaDevMgr {
-    CONST_VTBL struct IWiaDevMgrVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWiaDevMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWiaDevMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWiaDevMgr_Release(This) (This)->lpVtbl->Release(This)
-#define IWiaDevMgr_EnumDeviceInfo(This,lFlag,ppIEnum) (This)->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum)
-#define IWiaDevMgr_CreateDevice(This,bstrDeviceID,ppWiaItemRoot) (This)->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot)
-#define IWiaDevMgr_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot) (This)->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
-#define IWiaDevMgr_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID) (This)->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
-#define IWiaDevMgr_GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat) (This)->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat)
-#define IWiaDevMgr_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon)
-#define IWiaDevMgr_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject) (This)->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
-#define IWiaDevMgr_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
-#define IWiaDevMgr_AddDeviceDlg(This,hwndParent,lFlags) (This)->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags)
-#endif
-#endif
-  HRESULT WINAPI IWiaDevMgr_EnumDeviceInfo_Proxy(IWiaDevMgr *This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum);
-  void __RPC_STUB IWiaDevMgr_EnumDeviceInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDevMgr_LocalCreateDevice_Proxy(IWiaDevMgr *This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot);
-  void __RPC_STUB IWiaDevMgr_LocalCreateDevice_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDevMgr_LocalSelectDeviceDlg_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot);
-  void __RPC_STUB IWiaDevMgr_LocalSelectDeviceDlg_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDevMgr_LocalSelectDeviceDlgID_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID);
-  void __RPC_STUB IWiaDevMgr_LocalSelectDeviceDlgID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDevMgr_LocalGetImageDlg_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat);
-  void __RPC_STUB IWiaDevMgr_LocalGetImageDlg_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDevMgr_LocalRegisterEventCallbackProgram_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
-  void __RPC_STUB IWiaDevMgr_LocalRegisterEventCallbackProgram_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDevMgr_LocalRegisterEventCallbackInterface_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject);
-  void __RPC_STUB IWiaDevMgr_LocalRegisterEventCallbackInterface_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDevMgr_LocalRegisterEventCallbackCLSID_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
-  void __RPC_STUB IWiaDevMgr_LocalRegisterEventCallbackCLSID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDevMgr_AddDeviceDlg_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lFlags);
-  void __RPC_STUB IWiaDevMgr_AddDeviceDlg_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
-#define __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEnumWIA_DEV_INFO;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumWIA_DEV_INFO : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Next(ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched) = 0;
-    virtual HRESULT WINAPI Skip(ULONG celt) = 0;
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI Clone(IEnumWIA_DEV_INFO **ppIEnum) = 0;
-    virtual HRESULT WINAPI GetCount(ULONG *celt) = 0;
-  };
-#else
-  typedef struct IEnumWIA_DEV_INFOVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumWIA_DEV_INFO *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumWIA_DEV_INFO *This);
-      ULONG (WINAPI *Release)(IEnumWIA_DEV_INFO *This);
-      HRESULT (WINAPI *Next)(IEnumWIA_DEV_INFO *This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched);
-      HRESULT (WINAPI *Skip)(IEnumWIA_DEV_INFO *This,ULONG celt);
-      HRESULT (WINAPI *Reset)(IEnumWIA_DEV_INFO *This);
-      HRESULT (WINAPI *Clone)(IEnumWIA_DEV_INFO *This,IEnumWIA_DEV_INFO **ppIEnum);
-      HRESULT (WINAPI *GetCount)(IEnumWIA_DEV_INFO *This,ULONG *celt);
-    END_INTERFACE
-  } IEnumWIA_DEV_INFOVtbl;
-  struct IEnumWIA_DEV_INFO {
-    CONST_VTBL struct IEnumWIA_DEV_INFOVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IEnumWIA_DEV_INFO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEnumWIA_DEV_INFO_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEnumWIA_DEV_INFO_Release(This) (This)->lpVtbl->Release(This)
-#define IEnumWIA_DEV_INFO_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
-#define IEnumWIA_DEV_INFO_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
-#define IEnumWIA_DEV_INFO_Reset(This) (This)->lpVtbl->Reset(This)
-#define IEnumWIA_DEV_INFO_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
-#define IEnumWIA_DEV_INFO_GetCount(This,celt) (This)->lpVtbl->GetCount(This,celt)
-#endif
-#endif
-  HRESULT WINAPI IEnumWIA_DEV_INFO_RemoteNext_Proxy(IEnumWIA_DEV_INFO *This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched);
-  void __RPC_STUB IEnumWIA_DEV_INFO_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_DEV_INFO_Skip_Proxy(IEnumWIA_DEV_INFO *This,ULONG celt);
-  void __RPC_STUB IEnumWIA_DEV_INFO_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_DEV_INFO_Reset_Proxy(IEnumWIA_DEV_INFO *This);
-  void __RPC_STUB IEnumWIA_DEV_INFO_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_DEV_INFO_Clone_Proxy(IEnumWIA_DEV_INFO *This,IEnumWIA_DEV_INFO **ppIEnum);
-  void __RPC_STUB IEnumWIA_DEV_INFO_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_DEV_INFO_GetCount_Proxy(IEnumWIA_DEV_INFO *This,ULONG *celt);
-  void __RPC_STUB IEnumWIA_DEV_INFO_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IWiaEventCallback_INTERFACE_DEFINED__
-#define __IWiaEventCallback_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWiaEventCallback;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWiaEventCallback : public IUnknown {
-  public:
-    virtual HRESULT WINAPI ImageEventCallback(const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved) = 0;
-  };
-#else
-  typedef struct IWiaEventCallbackVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWiaEventCallback *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWiaEventCallback *This);
-      ULONG (WINAPI *Release)(IWiaEventCallback *This);
-      HRESULT (WINAPI *ImageEventCallback)(IWiaEventCallback *This,const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved);
-    END_INTERFACE
-  } IWiaEventCallbackVtbl;
-  struct IWiaEventCallback {
-    CONST_VTBL struct IWiaEventCallbackVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWiaEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWiaEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWiaEventCallback_Release(This) (This)->lpVtbl->Release(This)
-#define IWiaEventCallback_ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved) (This)->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved)
-#endif
-#endif
-  HRESULT WINAPI IWiaEventCallback_ImageEventCallback_Proxy(IWiaEventCallback *This,const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved);
-  void __RPC_STUB IWiaEventCallback_ImageEventCallback_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef struct _WIA_DATA_CALLBACK_HEADER {
-    LONG lSize;
-    GUID guidFormatID;
-    LONG lBufferSize;
-    LONG lPageCount;
-  } WIA_DATA_CALLBACK_HEADER;
-
-  typedef struct _WIA_DATA_CALLBACK_HEADER *PWIA_DATA_CALLBACK_HEADER;
-
-  extern RPC_IF_HANDLE __MIDL_itf_wia_0125_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wia_0125_v0_0_s_ifspec;
-#ifndef __IWiaDataCallback_INTERFACE_DEFINED__
-#define __IWiaDataCallback_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWiaDataCallback;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWiaDataCallback : public IUnknown {
-  public:
-    virtual HRESULT WINAPI BandedDataCallback(LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer) = 0;
-  };
-#else
-  typedef struct IWiaDataCallbackVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWiaDataCallback *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWiaDataCallback *This);
-      ULONG (WINAPI *Release)(IWiaDataCallback *This);
-      HRESULT (WINAPI *BandedDataCallback)(IWiaDataCallback *This,LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer);
-    END_INTERFACE
-  } IWiaDataCallbackVtbl;
-  struct IWiaDataCallback {
-    CONST_VTBL struct IWiaDataCallbackVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWiaDataCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWiaDataCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWiaDataCallback_Release(This) (This)->lpVtbl->Release(This)
-#define IWiaDataCallback_BandedDataCallback(This,lMessage,lStatus,lPercentComplete,lOffset,lLength,lReserved,lResLength,pbBuffer) (This)->lpVtbl->BandedDataCallback(This,lMessage,lStatus,lPercentComplete,lOffset,lLength,lReserved,lResLength,pbBuffer)
-#endif
-#endif
-  HRESULT WINAPI IWiaDataCallback_RemoteBandedDataCallback_Proxy(IWiaDataCallback *This,LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer);
-  void __RPC_STUB IWiaDataCallback_RemoteBandedDataCallback_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef struct _WIA_DATA_TRANSFER_INFO {
-    ULONG ulSize;
-    ULONG ulSection;
-    ULONG ulBufferSize;
-    WINBOOL bDoubleBuffer;
-    ULONG ulReserved1;
-    ULONG ulReserved2;
-    ULONG ulReserved3;
-  } WIA_DATA_TRANSFER_INFO;
-
-  typedef struct _WIA_DATA_TRANSFER_INFO *PWIA_DATA_TRANSFER_INFO;
-
-  typedef struct _WIA_EXTENDED_TRANSFER_INFO {
-    ULONG ulSize;
-    ULONG ulMinBufferSize;
-    ULONG ulOptimalBufferSize;
-    ULONG ulMaxBufferSize;
-    ULONG ulNumBuffers;
-  } WIA_EXTENDED_TRANSFER_INFO;
-
-  typedef struct _WIA_EXTENDED_TRANSFER_INFO *PWIA_EXTENDED_TRANSFER_INFO;
-
-  extern RPC_IF_HANDLE __MIDL_itf_wia_0126_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wia_0126_v0_0_s_ifspec;
-#ifndef __IWiaDataTransfer_INTERFACE_DEFINED__
-#define __IWiaDataTransfer_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWiaDataTransfer;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWiaDataTransfer : public IUnknown {
-  public:
-    virtual HRESULT WINAPI idtGetData(LPSTGMEDIUM pMedium,IWiaDataCallback *pIWiaDataCallback) = 0;
-    virtual HRESULT WINAPI idtGetBandedData(PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,IWiaDataCallback *pIWiaDataCallback) = 0;
-    virtual HRESULT WINAPI idtQueryGetData(WIA_FORMAT_INFO *pfe) = 0;
-    virtual HRESULT WINAPI idtEnumWIA_FORMAT_INFO(IEnumWIA_FORMAT_INFO **ppEnum) = 0;
-    virtual HRESULT WINAPI idtGetExtendedTransferInfo(PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo) = 0;
-  };
-#else
-  typedef struct IWiaDataTransferVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWiaDataTransfer *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWiaDataTransfer *This);
-      ULONG (WINAPI *Release)(IWiaDataTransfer *This);
-      HRESULT (WINAPI *idtGetData)(IWiaDataTransfer *This,LPSTGMEDIUM pMedium,IWiaDataCallback *pIWiaDataCallback);
-      HRESULT (WINAPI *idtGetBandedData)(IWiaDataTransfer *This,PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,IWiaDataCallback *pIWiaDataCallback);
-      HRESULT (WINAPI *idtQueryGetData)(IWiaDataTransfer *This,WIA_FORMAT_INFO *pfe);
-      HRESULT (WINAPI *idtEnumWIA_FORMAT_INFO)(IWiaDataTransfer *This,IEnumWIA_FORMAT_INFO **ppEnum);
-      HRESULT (WINAPI *idtGetExtendedTransferInfo)(IWiaDataTransfer *This,PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo);
-    END_INTERFACE
-  } IWiaDataTransferVtbl;
-  struct IWiaDataTransfer {
-    CONST_VTBL struct IWiaDataTransferVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWiaDataTransfer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWiaDataTransfer_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWiaDataTransfer_Release(This) (This)->lpVtbl->Release(This)
-#define IWiaDataTransfer_idtGetData(This,pMedium,pIWiaDataCallback) (This)->lpVtbl->idtGetData(This,pMedium,pIWiaDataCallback)
-#define IWiaDataTransfer_idtGetBandedData(This,pWiaDataTransInfo,pIWiaDataCallback) (This)->lpVtbl->idtGetBandedData(This,pWiaDataTransInfo,pIWiaDataCallback)
-#define IWiaDataTransfer_idtQueryGetData(This,pfe) (This)->lpVtbl->idtQueryGetData(This,pfe)
-#define IWiaDataTransfer_idtEnumWIA_FORMAT_INFO(This,ppEnum) (This)->lpVtbl->idtEnumWIA_FORMAT_INFO(This,ppEnum)
-#define IWiaDataTransfer_idtGetExtendedTransferInfo(This,pExtendedTransferInfo) (This)->lpVtbl->idtGetExtendedTransferInfo(This,pExtendedTransferInfo)
-#endif
-#endif
-  HRESULT WINAPI IWiaDataTransfer_idtGetDataEx_Proxy(IWiaDataTransfer *This,LPSTGMEDIUM pMedium,IWiaDataCallback *pIWiaDataCallback);
-  void __RPC_STUB IWiaDataTransfer_idtGetDataEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDataTransfer_idtGetBandedDataEx_Proxy(IWiaDataTransfer *This,PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,IWiaDataCallback *pIWiaDataCallback);
-  void __RPC_STUB IWiaDataTransfer_idtGetBandedDataEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDataTransfer_idtQueryGetData_Proxy(IWiaDataTransfer *This,WIA_FORMAT_INFO *pfe);
-  void __RPC_STUB IWiaDataTransfer_idtQueryGetData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDataTransfer_idtEnumWIA_FORMAT_INFO_Proxy(IWiaDataTransfer *This,IEnumWIA_FORMAT_INFO **ppEnum);
-  void __RPC_STUB IWiaDataTransfer_idtEnumWIA_FORMAT_INFO_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaDataTransfer_idtGetExtendedTransferInfo_Proxy(IWiaDataTransfer *This,PWIA_EXTENDED_TRANSFER_INFO pExtendedTransferInfo);
-  void __RPC_STUB IWiaDataTransfer_idtGetExtendedTransferInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IWiaItem_INTERFACE_DEFINED__
-#define __IWiaItem_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWiaItem;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWiaItem : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetItemType(LONG *pItemType) = 0;
-    virtual HRESULT WINAPI AnalyzeItem(LONG lFlags) = 0;
-    virtual HRESULT WINAPI EnumChildItems(IEnumWiaItem **ppIEnumWiaItem) = 0;
-    virtual HRESULT WINAPI DeleteItem(LONG lFlags) = 0;
-    virtual HRESULT WINAPI CreateChildItem(LONG lFlags,BSTR bstrItemName,BSTR bstrFullItemName,IWiaItem **ppIWiaItem) = 0;
-    virtual HRESULT WINAPI EnumRegisterEventInfo(LONG lFlags,const GUID *pEventGUID,IEnumWIA_DEV_CAPS **ppIEnum) = 0;
-    virtual HRESULT WINAPI FindItemByName(LONG lFlags,BSTR bstrFullItemName,IWiaItem **ppIWiaItem) = 0;
-    virtual HRESULT WINAPI DeviceDlg(HWND hwndParent,LONG lFlags,LONG lIntent,LONG *plItemCount,IWiaItem ***ppIWiaItem) = 0;
-    virtual HRESULT WINAPI DeviceCommand(LONG lFlags,const GUID *pCmdGUID,IWiaItem **pIWiaItem) = 0;
-    virtual HRESULT WINAPI GetRootItem(IWiaItem **ppIWiaItem) = 0;
-    virtual HRESULT WINAPI EnumDeviceCapabilities(LONG lFlags,IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS) = 0;
-    virtual HRESULT WINAPI DumpItemData(BSTR *bstrData) = 0;
-    virtual HRESULT WINAPI DumpDrvItemData(BSTR *bstrData) = 0;
-    virtual HRESULT WINAPI DumpTreeItemData(BSTR *bstrData) = 0;
-    virtual HRESULT WINAPI Diagnostic(ULONG ulSize,BYTE *pBuffer) = 0;
-  };
-#else
-  typedef struct IWiaItemVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWiaItem *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWiaItem *This);
-      ULONG (WINAPI *Release)(IWiaItem *This);
-      HRESULT (WINAPI *GetItemType)(IWiaItem *This,LONG *pItemType);
-      HRESULT (WINAPI *AnalyzeItem)(IWiaItem *This,LONG lFlags);
-      HRESULT (WINAPI *EnumChildItems)(IWiaItem *This,IEnumWiaItem **ppIEnumWiaItem);
-      HRESULT (WINAPI *DeleteItem)(IWiaItem *This,LONG lFlags);
-      HRESULT (WINAPI *CreateChildItem)(IWiaItem *This,LONG lFlags,BSTR bstrItemName,BSTR bstrFullItemName,IWiaItem **ppIWiaItem);
-      HRESULT (WINAPI *EnumRegisterEventInfo)(IWiaItem *This,LONG lFlags,const GUID *pEventGUID,IEnumWIA_DEV_CAPS **ppIEnum);
-      HRESULT (WINAPI *FindItemByName)(IWiaItem *This,LONG lFlags,BSTR bstrFullItemName,IWiaItem **ppIWiaItem);
-      HRESULT (WINAPI *DeviceDlg)(IWiaItem *This,HWND hwndParent,LONG lFlags,LONG lIntent,LONG *plItemCount,IWiaItem ***ppIWiaItem);
-      HRESULT (WINAPI *DeviceCommand)(IWiaItem *This,LONG lFlags,const GUID *pCmdGUID,IWiaItem **pIWiaItem);
-      HRESULT (WINAPI *GetRootItem)(IWiaItem *This,IWiaItem **ppIWiaItem);
-      HRESULT (WINAPI *EnumDeviceCapabilities)(IWiaItem *This,LONG lFlags,IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS);
-      HRESULT (WINAPI *DumpItemData)(IWiaItem *This,BSTR *bstrData);
-      HRESULT (WINAPI *DumpDrvItemData)(IWiaItem *This,BSTR *bstrData);
-      HRESULT (WINAPI *DumpTreeItemData)(IWiaItem *This,BSTR *bstrData);
-      HRESULT (WINAPI *Diagnostic)(IWiaItem *This,ULONG ulSize,BYTE *pBuffer);
-    END_INTERFACE
-  } IWiaItemVtbl;
-  struct IWiaItem {
-    CONST_VTBL struct IWiaItemVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWiaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWiaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWiaItem_Release(This) (This)->lpVtbl->Release(This)
-#define IWiaItem_GetItemType(This,pItemType) (This)->lpVtbl->GetItemType(This,pItemType)
-#define IWiaItem_AnalyzeItem(This,lFlags) (This)->lpVtbl->AnalyzeItem(This,lFlags)
-#define IWiaItem_EnumChildItems(This,ppIEnumWiaItem) (This)->lpVtbl->EnumChildItems(This,ppIEnumWiaItem)
-#define IWiaItem_DeleteItem(This,lFlags) (This)->lpVtbl->DeleteItem(This,lFlags)
-#define IWiaItem_CreateChildItem(This,lFlags,bstrItemName,bstrFullItemName,ppIWiaItem) (This)->lpVtbl->CreateChildItem(This,lFlags,bstrItemName,bstrFullItemName,ppIWiaItem)
-#define IWiaItem_EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum) (This)->lpVtbl->EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum)
-#define IWiaItem_FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem) (This)->lpVtbl->FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem)
-#define IWiaItem_DeviceDlg(This,hwndParent,lFlags,lIntent,plItemCount,ppIWiaItem) (This)->lpVtbl->DeviceDlg(This,hwndParent,lFlags,lIntent,plItemCount,ppIWiaItem)
-#define IWiaItem_DeviceCommand(This,lFlags,pCmdGUID,pIWiaItem) (This)->lpVtbl->DeviceCommand(This,lFlags,pCmdGUID,pIWiaItem)
-#define IWiaItem_GetRootItem(This,ppIWiaItem) (This)->lpVtbl->GetRootItem(This,ppIWiaItem)
-#define IWiaItem_EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS) (This)->lpVtbl->EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS)
-#define IWiaItem_DumpItemData(This,bstrData) (This)->lpVtbl->DumpItemData(This,bstrData)
-#define IWiaItem_DumpDrvItemData(This,bstrData) (This)->lpVtbl->DumpDrvItemData(This,bstrData)
-#define IWiaItem_DumpTreeItemData(This,bstrData) (This)->lpVtbl->DumpTreeItemData(This,bstrData)
-#define IWiaItem_Diagnostic(This,ulSize,pBuffer) (This)->lpVtbl->Diagnostic(This,ulSize,pBuffer)
-#endif
-#endif
-  HRESULT WINAPI IWiaItem_GetItemType_Proxy(IWiaItem *This,LONG *pItemType);
-  void __RPC_STUB IWiaItem_GetItemType_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_AnalyzeItem_Proxy(IWiaItem *This,LONG lFlags);
-  void __RPC_STUB IWiaItem_AnalyzeItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_EnumChildItems_Proxy(IWiaItem *This,IEnumWiaItem **ppIEnumWiaItem);
-  void __RPC_STUB IWiaItem_EnumChildItems_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_DeleteItem_Proxy(IWiaItem *This,LONG lFlags);
-  void __RPC_STUB IWiaItem_DeleteItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_CreateChildItem_Proxy(IWiaItem *This,LONG lFlags,BSTR bstrItemName,BSTR bstrFullItemName,IWiaItem **ppIWiaItem);
-  void __RPC_STUB IWiaItem_CreateChildItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_EnumRegisterEventInfo_Proxy(IWiaItem *This,LONG lFlags,const GUID *pEventGUID,IEnumWIA_DEV_CAPS **ppIEnum);
-  void __RPC_STUB IWiaItem_EnumRegisterEventInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_FindItemByName_Proxy(IWiaItem *This,LONG lFlags,BSTR bstrFullItemName,IWiaItem **ppIWiaItem);
-  void __RPC_STUB IWiaItem_FindItemByName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_LocalDeviceDlg_Proxy(IWiaItem *This,HWND hwndParent,LONG lFlags,LONG lIntent,LONG *plItemCount,IWiaItem ***pIWiaItem);
-  void __RPC_STUB IWiaItem_LocalDeviceDlg_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_DeviceCommand_Proxy(IWiaItem *This,LONG lFlags,const GUID *pCmdGUID,IWiaItem **pIWiaItem);
-  void __RPC_STUB IWiaItem_DeviceCommand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_GetRootItem_Proxy(IWiaItem *This,IWiaItem **ppIWiaItem);
-  void __RPC_STUB IWiaItem_GetRootItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_EnumDeviceCapabilities_Proxy(IWiaItem *This,LONG lFlags,IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS);
-  void __RPC_STUB IWiaItem_EnumDeviceCapabilities_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_DumpItemData_Proxy(IWiaItem *This,BSTR *bstrData);
-  void __RPC_STUB IWiaItem_DumpItemData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_DumpDrvItemData_Proxy(IWiaItem *This,BSTR *bstrData);
-  void __RPC_STUB IWiaItem_DumpDrvItemData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_DumpTreeItemData_Proxy(IWiaItem *This,BSTR *bstrData);
-  void __RPC_STUB IWiaItem_DumpTreeItemData_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItem_Diagnostic_Proxy(IWiaItem *This,ULONG ulSize,BYTE *pBuffer);
-  void __RPC_STUB IWiaItem_Diagnostic_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IWiaPropertyStorage_INTERFACE_DEFINED__
-#define __IWiaPropertyStorage_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWiaPropertyStorage;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWiaPropertyStorage : public IUnknown {
-  public:
-    virtual HRESULT WINAPI ReadMultiple(ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]) = 0;
-    virtual HRESULT WINAPI WriteMultiple(ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst) = 0;
-    virtual HRESULT WINAPI DeleteMultiple(ULONG cpspec,const PROPSPEC rgpspec[]) = 0;
-    virtual HRESULT WINAPI ReadPropertyNames(ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]) = 0;
-    virtual HRESULT WINAPI WritePropertyNames(ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]) = 0;
-    virtual HRESULT WINAPI DeletePropertyNames(ULONG cpropid,const PROPID rgpropid[]) = 0;
-    virtual HRESULT WINAPI Commit(DWORD grfCommitFlags) = 0;
-    virtual HRESULT WINAPI Revert(void) = 0;
-    virtual HRESULT WINAPI Enum(IEnumSTATPROPSTG **ppenum) = 0;
-    virtual HRESULT WINAPI SetTimes(const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime) = 0;
-    virtual HRESULT WINAPI SetClass(REFCLSID clsid) = 0;
-    virtual HRESULT WINAPI Stat(STATPROPSETSTG *pstatpsstg) = 0;
-    virtual HRESULT WINAPI GetPropertyAttributes(ULONG cpspec,PROPSPEC rgpspec[],ULONG rgflags[],PROPVARIANT rgpropvar[]) = 0;
-    virtual HRESULT WINAPI GetCount(ULONG *pulNumProps) = 0;
-    virtual HRESULT WINAPI GetPropertyStream(GUID *pCompatibilityId,IStream **ppIStream) = 0;
-    virtual HRESULT WINAPI SetPropertyStream(GUID *pCompatibilityId,IStream *pIStream) = 0;
-  };
-#else
-  typedef struct IWiaPropertyStorageVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWiaPropertyStorage *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWiaPropertyStorage *This);
-      ULONG (WINAPI *Release)(IWiaPropertyStorage *This);
-      HRESULT (WINAPI *ReadMultiple)(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]);
-      HRESULT (WINAPI *WriteMultiple)(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst);
-      HRESULT (WINAPI *DeleteMultiple)(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[]);
-      HRESULT (WINAPI *ReadPropertyNames)(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]);
-      HRESULT (WINAPI *WritePropertyNames)(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]);
-      HRESULT (WINAPI *DeletePropertyNames)(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[]);
-      HRESULT (WINAPI *Commit)(IWiaPropertyStorage *This,DWORD grfCommitFlags);
-      HRESULT (WINAPI *Revert)(IWiaPropertyStorage *This);
-      HRESULT (WINAPI *Enum)(IWiaPropertyStorage *This,IEnumSTATPROPSTG **ppenum);
-      HRESULT (WINAPI *SetTimes)(IWiaPropertyStorage *This,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime);
-      HRESULT (WINAPI *SetClass)(IWiaPropertyStorage *This,REFCLSID clsid);
-      HRESULT (WINAPI *Stat)(IWiaPropertyStorage *This,STATPROPSETSTG *pstatpsstg);
-      HRESULT (WINAPI *GetPropertyAttributes)(IWiaPropertyStorage *This,ULONG cpspec,PROPSPEC rgpspec[],ULONG rgflags[],PROPVARIANT rgpropvar[]);
-      HRESULT (WINAPI *GetCount)(IWiaPropertyStorage *This,ULONG *pulNumProps);
-      HRESULT (WINAPI *GetPropertyStream)(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream **ppIStream);
-      HRESULT (WINAPI *SetPropertyStream)(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream *pIStream);
-    END_INTERFACE
-  } IWiaPropertyStorageVtbl;
-  struct IWiaPropertyStorage {
-    CONST_VTBL struct IWiaPropertyStorageVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWiaPropertyStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWiaPropertyStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWiaPropertyStorage_Release(This) (This)->lpVtbl->Release(This)
-#define IWiaPropertyStorage_ReadMultiple(This,cpspec,rgpspec,rgpropvar) (This)->lpVtbl->ReadMultiple(This,cpspec,rgpspec,rgpropvar)
-#define IWiaPropertyStorage_WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst) (This)->lpVtbl->WriteMultiple(This,cpspec,rgpspec,rgpropvar,propidNameFirst)
-#define IWiaPropertyStorage_DeleteMultiple(This,cpspec,rgpspec) (This)->lpVtbl->DeleteMultiple(This,cpspec,rgpspec)
-#define IWiaPropertyStorage_ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName) (This)->lpVtbl->ReadPropertyNames(This,cpropid,rgpropid,rglpwstrName)
-#define IWiaPropertyStorage_WritePropertyNames(This,cpropid,rgpropid,rglpwstrName) (This)->lpVtbl->WritePropertyNames(This,cpropid,rgpropid,rglpwstrName)
-#define IWiaPropertyStorage_DeletePropertyNames(This,cpropid,rgpropid) (This)->lpVtbl->DeletePropertyNames(This,cpropid,rgpropid)
-#define IWiaPropertyStorage_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
-#define IWiaPropertyStorage_Revert(This) (This)->lpVtbl->Revert(This)
-#define IWiaPropertyStorage_Enum(This,ppenum) (This)->lpVtbl->Enum(This,ppenum)
-#define IWiaPropertyStorage_SetTimes(This,pctime,patime,pmtime) (This)->lpVtbl->SetTimes(This,pctime,patime,pmtime)
-#define IWiaPropertyStorage_SetClass(This,clsid) (This)->lpVtbl->SetClass(This,clsid)
-#define IWiaPropertyStorage_Stat(This,pstatpsstg) (This)->lpVtbl->Stat(This,pstatpsstg)
-#define IWiaPropertyStorage_GetPropertyAttributes(This,cpspec,rgpspec,rgflags,rgpropvar) (This)->lpVtbl->GetPropertyAttributes(This,cpspec,rgpspec,rgflags,rgpropvar)
-#define IWiaPropertyStorage_GetCount(This,pulNumProps) (This)->lpVtbl->GetCount(This,pulNumProps)
-#define IWiaPropertyStorage_GetPropertyStream(This,pCompatibilityId,ppIStream) (This)->lpVtbl->GetPropertyStream(This,pCompatibilityId,ppIStream)
-#define IWiaPropertyStorage_SetPropertyStream(This,pCompatibilityId,pIStream) (This)->lpVtbl->SetPropertyStream(This,pCompatibilityId,pIStream)
-#endif
-#endif
-  HRESULT WINAPI IWiaPropertyStorage_ReadMultiple_Proxy(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],PROPVARIANT rgpropvar[]);
-  void __RPC_STUB IWiaPropertyStorage_ReadMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_RemoteWriteMultiple_Proxy(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC *rgpspec,const PROPVARIANT *rgpropvar,PROPID propidNameFirst);
-  void __RPC_STUB IWiaPropertyStorage_RemoteWriteMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_DeleteMultiple_Proxy(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[]);
-  void __RPC_STUB IWiaPropertyStorage_DeleteMultiple_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_ReadPropertyNames_Proxy(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],LPOLESTR rglpwstrName[]);
-  void __RPC_STUB IWiaPropertyStorage_ReadPropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_WritePropertyNames_Proxy(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[],const LPOLESTR rglpwstrName[]);
-  void __RPC_STUB IWiaPropertyStorage_WritePropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_DeletePropertyNames_Proxy(IWiaPropertyStorage *This,ULONG cpropid,const PROPID rgpropid[]);
-  void __RPC_STUB IWiaPropertyStorage_DeletePropertyNames_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_Commit_Proxy(IWiaPropertyStorage *This,DWORD grfCommitFlags);
-  void __RPC_STUB IWiaPropertyStorage_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_Revert_Proxy(IWiaPropertyStorage *This);
-  void __RPC_STUB IWiaPropertyStorage_Revert_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_Enum_Proxy(IWiaPropertyStorage *This,IEnumSTATPROPSTG **ppenum);
-  void __RPC_STUB IWiaPropertyStorage_Enum_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_SetTimes_Proxy(IWiaPropertyStorage *This,const FILETIME *pctime,const FILETIME *patime,const FILETIME *pmtime);
-  void __RPC_STUB IWiaPropertyStorage_SetTimes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_SetClass_Proxy(IWiaPropertyStorage *This,REFCLSID clsid);
-  void __RPC_STUB IWiaPropertyStorage_SetClass_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_Stat_Proxy(IWiaPropertyStorage *This,STATPROPSETSTG *pstatpsstg);
-  void __RPC_STUB IWiaPropertyStorage_Stat_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_GetPropertyAttributes_Proxy(IWiaPropertyStorage *This,ULONG cpspec,PROPSPEC rgpspec[],ULONG rgflags[],PROPVARIANT rgpropvar[]);
-  void __RPC_STUB IWiaPropertyStorage_GetPropertyAttributes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_GetCount_Proxy(IWiaPropertyStorage *This,ULONG *pulNumProps);
-  void __RPC_STUB IWiaPropertyStorage_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_GetPropertyStream_Proxy(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream **ppIStream);
-  void __RPC_STUB IWiaPropertyStorage_GetPropertyStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaPropertyStorage_RemoteSetPropertyStream_Proxy(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream *pIStream);
-  void __RPC_STUB IWiaPropertyStorage_RemoteSetPropertyStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IEnumWiaItem_INTERFACE_DEFINED__
-#define __IEnumWiaItem_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEnumWiaItem;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumWiaItem : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Next(ULONG celt,IWiaItem **ppIWiaItem,ULONG *pceltFetched) = 0;
-    virtual HRESULT WINAPI Skip(ULONG celt) = 0;
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI Clone(IEnumWiaItem **ppIEnum) = 0;
-    virtual HRESULT WINAPI GetCount(ULONG *celt) = 0;
-  };
-#else
-  typedef struct IEnumWiaItemVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumWiaItem *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumWiaItem *This);
-      ULONG (WINAPI *Release)(IEnumWiaItem *This);
-      HRESULT (WINAPI *Next)(IEnumWiaItem *This,ULONG celt,IWiaItem **ppIWiaItem,ULONG *pceltFetched);
-      HRESULT (WINAPI *Skip)(IEnumWiaItem *This,ULONG celt);
-      HRESULT (WINAPI *Reset)(IEnumWiaItem *This);
-      HRESULT (WINAPI *Clone)(IEnumWiaItem *This,IEnumWiaItem **ppIEnum);
-      HRESULT (WINAPI *GetCount)(IEnumWiaItem *This,ULONG *celt);
-    END_INTERFACE
-  } IEnumWiaItemVtbl;
-  struct IEnumWiaItem {
-    CONST_VTBL struct IEnumWiaItemVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IEnumWiaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEnumWiaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEnumWiaItem_Release(This) (This)->lpVtbl->Release(This)
-#define IEnumWiaItem_Next(This,celt,ppIWiaItem,pceltFetched) (This)->lpVtbl->Next(This,celt,ppIWiaItem,pceltFetched)
-#define IEnumWiaItem_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
-#define IEnumWiaItem_Reset(This) (This)->lpVtbl->Reset(This)
-#define IEnumWiaItem_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
-#define IEnumWiaItem_GetCount(This,celt) (This)->lpVtbl->GetCount(This,celt)
-#endif
-#endif
-  HRESULT WINAPI IEnumWiaItem_RemoteNext_Proxy(IEnumWiaItem *This,ULONG celt,IWiaItem **ppIWiaItem,ULONG *pceltFetched);
-  void __RPC_STUB IEnumWiaItem_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWiaItem_Skip_Proxy(IEnumWiaItem *This,ULONG celt);
-  void __RPC_STUB IEnumWiaItem_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWiaItem_Reset_Proxy(IEnumWiaItem *This);
-  void __RPC_STUB IEnumWiaItem_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWiaItem_Clone_Proxy(IEnumWiaItem *This,IEnumWiaItem **ppIEnum);
-  void __RPC_STUB IEnumWiaItem_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWiaItem_GetCount_Proxy(IEnumWiaItem *This,ULONG *celt);
-  void __RPC_STUB IEnumWiaItem_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-  typedef struct _WIA_DEV_CAP {
-    GUID guid;
-    ULONG ulFlags;
-    BSTR bstrName;
-    BSTR bstrDescription;
-    BSTR bstrIcon;
-    BSTR bstrCommandline;
-  } WIA_DEV_CAP;
-
-  typedef struct _WIA_DEV_CAP *PWIA_DEV_CAP;
-  typedef struct _WIA_DEV_CAP WIA_EVENT_HANDLER;
-  typedef struct _WIA_DEV_CAP *PWIA_EVENT_HANDLER;
-
-  extern RPC_IF_HANDLE __MIDL_itf_wia_0130_v0_0_c_ifspec;
-  extern RPC_IF_HANDLE __MIDL_itf_wia_0130_v0_0_s_ifspec;
-#ifndef __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
-#define __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEnumWIA_DEV_CAPS;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumWIA_DEV_CAPS : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Next(ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched) = 0;
-    virtual HRESULT WINAPI Skip(ULONG celt) = 0;
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI Clone(IEnumWIA_DEV_CAPS **ppIEnum) = 0;
-    virtual HRESULT WINAPI GetCount(ULONG *pcelt) = 0;
-  };
-#else
-  typedef struct IEnumWIA_DEV_CAPSVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumWIA_DEV_CAPS *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumWIA_DEV_CAPS *This);
-      ULONG (WINAPI *Release)(IEnumWIA_DEV_CAPS *This);
-      HRESULT (WINAPI *Next)(IEnumWIA_DEV_CAPS *This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched);
-      HRESULT (WINAPI *Skip)(IEnumWIA_DEV_CAPS *This,ULONG celt);
-      HRESULT (WINAPI *Reset)(IEnumWIA_DEV_CAPS *This);
-      HRESULT (WINAPI *Clone)(IEnumWIA_DEV_CAPS *This,IEnumWIA_DEV_CAPS **ppIEnum);
-      HRESULT (WINAPI *GetCount)(IEnumWIA_DEV_CAPS *This,ULONG *pcelt);
-    END_INTERFACE
-  } IEnumWIA_DEV_CAPSVtbl;
-  struct IEnumWIA_DEV_CAPS {
-    CONST_VTBL struct IEnumWIA_DEV_CAPSVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IEnumWIA_DEV_CAPS_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEnumWIA_DEV_CAPS_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEnumWIA_DEV_CAPS_Release(This) (This)->lpVtbl->Release(This)
-#define IEnumWIA_DEV_CAPS_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
-#define IEnumWIA_DEV_CAPS_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
-#define IEnumWIA_DEV_CAPS_Reset(This) (This)->lpVtbl->Reset(This)
-#define IEnumWIA_DEV_CAPS_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
-#define IEnumWIA_DEV_CAPS_GetCount(This,pcelt) (This)->lpVtbl->GetCount(This,pcelt)
-#endif
-#endif
-  HRESULT WINAPI IEnumWIA_DEV_CAPS_RemoteNext_Proxy(IEnumWIA_DEV_CAPS *This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched);
-  void __RPC_STUB IEnumWIA_DEV_CAPS_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_DEV_CAPS_Skip_Proxy(IEnumWIA_DEV_CAPS *This,ULONG celt);
-  void __RPC_STUB IEnumWIA_DEV_CAPS_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_DEV_CAPS_Reset_Proxy(IEnumWIA_DEV_CAPS *This);
-  void __RPC_STUB IEnumWIA_DEV_CAPS_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_DEV_CAPS_Clone_Proxy(IEnumWIA_DEV_CAPS *This,IEnumWIA_DEV_CAPS **ppIEnum);
-  void __RPC_STUB IEnumWIA_DEV_CAPS_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_DEV_CAPS_GetCount_Proxy(IEnumWIA_DEV_CAPS *This,ULONG *pcelt);
-  void __RPC_STUB IEnumWIA_DEV_CAPS_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IEnumWIA_FORMAT_INFO_INTERFACE_DEFINED__
-#define __IEnumWIA_FORMAT_INFO_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IEnumWIA_FORMAT_INFO;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IEnumWIA_FORMAT_INFO : public IUnknown {
-  public:
-    virtual HRESULT WINAPI Next(ULONG celt,WIA_FORMAT_INFO *rgelt,ULONG *pceltFetched) = 0;
-    virtual HRESULT WINAPI Skip(ULONG celt) = 0;
-    virtual HRESULT WINAPI Reset(void) = 0;
-    virtual HRESULT WINAPI Clone(IEnumWIA_FORMAT_INFO **ppIEnum) = 0;
-    virtual HRESULT WINAPI GetCount(ULONG *pcelt) = 0;
-  };
-#else
-  typedef struct IEnumWIA_FORMAT_INFOVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IEnumWIA_FORMAT_INFO *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IEnumWIA_FORMAT_INFO *This);
-      ULONG (WINAPI *Release)(IEnumWIA_FORMAT_INFO *This);
-      HRESULT (WINAPI *Next)(IEnumWIA_FORMAT_INFO *This,ULONG celt,WIA_FORMAT_INFO *rgelt,ULONG *pceltFetched);
-      HRESULT (WINAPI *Skip)(IEnumWIA_FORMAT_INFO *This,ULONG celt);
-      HRESULT (WINAPI *Reset)(IEnumWIA_FORMAT_INFO *This);
-      HRESULT (WINAPI *Clone)(IEnumWIA_FORMAT_INFO *This,IEnumWIA_FORMAT_INFO **ppIEnum);
-      HRESULT (WINAPI *GetCount)(IEnumWIA_FORMAT_INFO *This,ULONG *pcelt);
-    END_INTERFACE
-  } IEnumWIA_FORMAT_INFOVtbl;
-  struct IEnumWIA_FORMAT_INFO {
-    CONST_VTBL struct IEnumWIA_FORMAT_INFOVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IEnumWIA_FORMAT_INFO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IEnumWIA_FORMAT_INFO_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IEnumWIA_FORMAT_INFO_Release(This) (This)->lpVtbl->Release(This)
-#define IEnumWIA_FORMAT_INFO_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
-#define IEnumWIA_FORMAT_INFO_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
-#define IEnumWIA_FORMAT_INFO_Reset(This) (This)->lpVtbl->Reset(This)
-#define IEnumWIA_FORMAT_INFO_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
-#define IEnumWIA_FORMAT_INFO_GetCount(This,pcelt) (This)->lpVtbl->GetCount(This,pcelt)
-#endif
-#endif
-  HRESULT WINAPI IEnumWIA_FORMAT_INFO_RemoteNext_Proxy(IEnumWIA_FORMAT_INFO *This,ULONG celt,WIA_FORMAT_INFO *rgelt,ULONG *pceltFetched);
-  void __RPC_STUB IEnumWIA_FORMAT_INFO_RemoteNext_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_FORMAT_INFO_Skip_Proxy(IEnumWIA_FORMAT_INFO *This,ULONG celt);
-  void __RPC_STUB IEnumWIA_FORMAT_INFO_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_FORMAT_INFO_Reset_Proxy(IEnumWIA_FORMAT_INFO *This);
-  void __RPC_STUB IEnumWIA_FORMAT_INFO_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_FORMAT_INFO_Clone_Proxy(IEnumWIA_FORMAT_INFO *This,IEnumWIA_FORMAT_INFO **ppIEnum);
-  void __RPC_STUB IEnumWIA_FORMAT_INFO_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IEnumWIA_FORMAT_INFO_GetCount_Proxy(IEnumWIA_FORMAT_INFO *This,ULONG *pcelt);
-  void __RPC_STUB IEnumWIA_FORMAT_INFO_GetCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IWiaLog_INTERFACE_DEFINED__
-#define __IWiaLog_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWiaLog;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWiaLog : public IUnknown {
-  public:
-    virtual HRESULT WINAPI InitializeLog(LONG hInstance) = 0;
-    virtual HRESULT WINAPI hResult(HRESULT hResult) = 0;
-    virtual HRESULT WINAPI Log(LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText) = 0;
-  };
-#else
-  typedef struct IWiaLogVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWiaLog *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWiaLog *This);
-      ULONG (WINAPI *Release)(IWiaLog *This);
-      HRESULT (WINAPI *InitializeLog)(IWiaLog *This,LONG hInstance);
-      HRESULT (WINAPI *hResult)(IWiaLog *This,HRESULT hResult);
-      HRESULT (WINAPI *Log)(IWiaLog *This,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
-    END_INTERFACE
-  } IWiaLogVtbl;
-  struct IWiaLog {
-    CONST_VTBL struct IWiaLogVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWiaLog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWiaLog_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWiaLog_Release(This) (This)->lpVtbl->Release(This)
-#define IWiaLog_InitializeLog(This,hInstance) (This)->lpVtbl->InitializeLog(This,hInstance)
-#define IWiaLog_hResult(This,hResult) (This)->lpVtbl->hResult(This,hResult)
-#define IWiaLog_Log(This,lFlags,lResID,lDetail,bstrText) (This)->lpVtbl->Log(This,lFlags,lResID,lDetail,bstrText)
-#endif
-#endif
-  HRESULT WINAPI IWiaLog_InitializeLog_Proxy(IWiaLog *This,LONG hInstance);
-  void __RPC_STUB IWiaLog_InitializeLog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaLog_hResult_Proxy(IWiaLog *This,HRESULT hResult);
-  void __RPC_STUB IWiaLog_hResult_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaLog_Log_Proxy(IWiaLog *This,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
-  void __RPC_STUB IWiaLog_Log_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IWiaLogEx_INTERFACE_DEFINED__
-#define __IWiaLogEx_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWiaLogEx;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWiaLogEx : public IUnknown {
-  public:
-    virtual HRESULT WINAPI InitializeLogEx(BYTE *hInstance) = 0;
-    virtual HRESULT WINAPI hResult(HRESULT hResult) = 0;
-    virtual HRESULT WINAPI Log(LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText) = 0;
-    virtual HRESULT WINAPI hResultEx(LONG lMethodId,HRESULT hResult) = 0;
-    virtual HRESULT WINAPI LogEx(LONG lMethodId,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText) = 0;
-  };
-#else
-  typedef struct IWiaLogExVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWiaLogEx *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWiaLogEx *This);
-      ULONG (WINAPI *Release)(IWiaLogEx *This);
-      HRESULT (WINAPI *InitializeLogEx)(IWiaLogEx *This,BYTE *hInstance);
-      HRESULT (WINAPI *hResult)(IWiaLogEx *This,HRESULT hResult);
-      HRESULT (WINAPI *Log)(IWiaLogEx *This,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
-      HRESULT (WINAPI *hResultEx)(IWiaLogEx *This,LONG lMethodId,HRESULT hResult);
-      HRESULT (WINAPI *LogEx)(IWiaLogEx *This,LONG lMethodId,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
-    END_INTERFACE
-  } IWiaLogExVtbl;
-  struct IWiaLogEx {
-    CONST_VTBL struct IWiaLogExVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWiaLogEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWiaLogEx_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWiaLogEx_Release(This) (This)->lpVtbl->Release(This)
-#define IWiaLogEx_InitializeLogEx(This,hInstance) (This)->lpVtbl->InitializeLogEx(This,hInstance)
-#define IWiaLogEx_hResult(This,hResult) (This)->lpVtbl->hResult(This,hResult)
-#define IWiaLogEx_Log(This,lFlags,lResID,lDetail,bstrText) (This)->lpVtbl->Log(This,lFlags,lResID,lDetail,bstrText)
-#define IWiaLogEx_hResultEx(This,lMethodId,hResult) (This)->lpVtbl->hResultEx(This,lMethodId,hResult)
-#define IWiaLogEx_LogEx(This,lMethodId,lFlags,lResID,lDetail,bstrText) (This)->lpVtbl->LogEx(This,lMethodId,lFlags,lResID,lDetail,bstrText)
-#endif
-#endif
-  HRESULT WINAPI IWiaLogEx_InitializeLogEx_Proxy(IWiaLogEx *This,BYTE *hInstance);
-  void __RPC_STUB IWiaLogEx_InitializeLogEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaLogEx_hResult_Proxy(IWiaLogEx *This,HRESULT hResult);
-  void __RPC_STUB IWiaLogEx_hResult_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaLogEx_Log_Proxy(IWiaLogEx *This,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
-  void __RPC_STUB IWiaLogEx_Log_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaLogEx_hResultEx_Proxy(IWiaLogEx *This,LONG lMethodId,HRESULT hResult);
-  void __RPC_STUB IWiaLogEx_hResultEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaLogEx_LogEx_Proxy(IWiaLogEx *This,LONG lMethodId,LONG lFlags,LONG lResID,LONG lDetail,BSTR bstrText);
-  void __RPC_STUB IWiaLogEx_LogEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IWiaNotifyDevMgr_INTERFACE_DEFINED__
-#define __IWiaNotifyDevMgr_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWiaNotifyDevMgr;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWiaNotifyDevMgr : public IUnknown {
-  public:
-    virtual HRESULT WINAPI NewDeviceArrival(void) = 0;
-  };
-#else
-  typedef struct IWiaNotifyDevMgrVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWiaNotifyDevMgr *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWiaNotifyDevMgr *This);
-      ULONG (WINAPI *Release)(IWiaNotifyDevMgr *This);
-      HRESULT (WINAPI *NewDeviceArrival)(IWiaNotifyDevMgr *This);
-    END_INTERFACE
-  } IWiaNotifyDevMgrVtbl;
-  struct IWiaNotifyDevMgr {
-    CONST_VTBL struct IWiaNotifyDevMgrVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWiaNotifyDevMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWiaNotifyDevMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWiaNotifyDevMgr_Release(This) (This)->lpVtbl->Release(This)
-#define IWiaNotifyDevMgr_NewDeviceArrival(This) (This)->lpVtbl->NewDeviceArrival(This)
-#endif
-#endif
-  HRESULT WINAPI IWiaNotifyDevMgr_NewDeviceArrival_Proxy(IWiaNotifyDevMgr *This);
-  void __RPC_STUB IWiaNotifyDevMgr_NewDeviceArrival_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __IWiaItemExtras_INTERFACE_DEFINED__
-#define __IWiaItemExtras_INTERFACE_DEFINED__
-  EXTERN_C const IID IID_IWiaItemExtras;
-#if defined(__cplusplus) && !defined(CINTERFACE)
-  struct IWiaItemExtras : public IUnknown {
-  public:
-    virtual HRESULT WINAPI GetExtendedErrorInfo(BSTR *bstrErrorText) = 0;
-    virtual HRESULT WINAPI Escape(DWORD dwEscapeCode,BYTE *lpInData,DWORD cbInDataSize,BYTE *pOutData,DWORD dwOutDataSize,DWORD *pdwActualDataSize) = 0;
-    virtual HRESULT WINAPI CancelPendingIO(void) = 0;
-  };
-#else
-  typedef struct IWiaItemExtrasVtbl {
-    BEGIN_INTERFACE
-      HRESULT (WINAPI *QueryInterface)(IWiaItemExtras *This,REFIID riid,void **ppvObject);
-      ULONG (WINAPI *AddRef)(IWiaItemExtras *This);
-      ULONG (WINAPI *Release)(IWiaItemExtras *This);
-      HRESULT (WINAPI *GetExtendedErrorInfo)(IWiaItemExtras *This,BSTR *bstrErrorText);
-      HRESULT (WINAPI *Escape)(IWiaItemExtras *This,DWORD dwEscapeCode,BYTE *lpInData,DWORD cbInDataSize,BYTE *pOutData,DWORD dwOutDataSize,DWORD *pdwActualDataSize);
-      HRESULT (WINAPI *CancelPendingIO)(IWiaItemExtras *This);
-    END_INTERFACE
-  } IWiaItemExtrasVtbl;
-  struct IWiaItemExtras {
-    CONST_VTBL struct IWiaItemExtrasVtbl *lpVtbl;
-  };
-#ifdef COBJMACROS
-#define IWiaItemExtras_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IWiaItemExtras_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IWiaItemExtras_Release(This) (This)->lpVtbl->Release(This)
-#define IWiaItemExtras_GetExtendedErrorInfo(This,bstrErrorText) (This)->lpVtbl->GetExtendedErrorInfo(This,bstrErrorText)
-#define IWiaItemExtras_Escape(This,dwEscapeCode,lpInData,cbInDataSize,pOutData,dwOutDataSize,pdwActualDataSize) (This)->lpVtbl->Escape(This,dwEscapeCode,lpInData,cbInDataSize,pOutData,dwOutDataSize,pdwActualDataSize)
-#define IWiaItemExtras_CancelPendingIO(This) (This)->lpVtbl->CancelPendingIO(This)
-#endif
-#endif
-  HRESULT WINAPI IWiaItemExtras_GetExtendedErrorInfo_Proxy(IWiaItemExtras *This,BSTR *bstrErrorText);
-  void __RPC_STUB IWiaItemExtras_GetExtendedErrorInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItemExtras_Escape_Proxy(IWiaItemExtras *This,DWORD dwEscapeCode,BYTE *lpInData,DWORD cbInDataSize,BYTE *pOutData,DWORD dwOutDataSize,DWORD *pdwActualDataSize);
-  void __RPC_STUB IWiaItemExtras_Escape_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-  HRESULT WINAPI IWiaItemExtras_CancelPendingIO_Proxy(IWiaItemExtras *This);
-  void __RPC_STUB IWiaItemExtras_CancelPendingIO_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
-#endif
-
-#ifndef __WiaDevMgr_LIBRARY_DEFINED__
-#define __WiaDevMgr_LIBRARY_DEFINED__
-  EXTERN_C const IID LIBID_WiaDevMgr;
-  EXTERN_C const CLSID CLSID_WiaDevMgr;
-#ifdef __cplusplus
-  class WiaDevMgr;
-#endif
-  EXTERN_C const CLSID CLSID_WiaLog;
-#ifdef __cplusplus
-  class WiaLog;
-#endif
-#endif
-
-  ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
-  unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
-  unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
-  void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
-  ULONG __RPC_API HWND_UserSize(ULONG *,ULONG,HWND *);
-  unsigned char *__RPC_API HWND_UserMarshal(ULONG *,unsigned char *,HWND *);
-  unsigned char *__RPC_API HWND_UserUnmarshal(ULONG *,unsigned char *,HWND *);
-  void __RPC_API HWND_UserFree(ULONG *,HWND *);
-  ULONG __RPC_API LPSAFEARRAY_UserSize(ULONG *,ULONG,LPSAFEARRAY *);
-  unsigned char *__RPC_API LPSAFEARRAY_UserMarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
-  unsigned char *__RPC_API LPSAFEARRAY_UserUnmarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
-  void __RPC_API LPSAFEARRAY_UserFree(ULONG *,LPSAFEARRAY *);
-  ULONG __RPC_API STGMEDIUM_UserSize(ULONG *,ULONG,STGMEDIUM *);
-  unsigned char *__RPC_API STGMEDIUM_UserMarshal(ULONG *,unsigned char *,STGMEDIUM *);
-  unsigned char *__RPC_API STGMEDIUM_UserUnmarshal(ULONG *,unsigned char *,STGMEDIUM *);
-  void __RPC_API STGMEDIUM_UserFree(ULONG *,STGMEDIUM *);
-
-  HRESULT WINAPI IWiaDevMgr_CreateDevice_Proxy(IWiaDevMgr *This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot);
-  HRESULT WINAPI IWiaDevMgr_CreateDevice_Stub(IWiaDevMgr *This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot);
-  HRESULT WINAPI IWiaDevMgr_SelectDeviceDlg_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot);
-  HRESULT WINAPI IWiaDevMgr_SelectDeviceDlg_Stub(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot);
-  HRESULT WINAPI IWiaDevMgr_SelectDeviceDlgID_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID);
-  HRESULT WINAPI IWiaDevMgr_SelectDeviceDlgID_Stub(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID);
-  HRESULT WINAPI IWiaDevMgr_GetImageDlg_Proxy(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat);
-  HRESULT WINAPI IWiaDevMgr_GetImageDlg_Stub(IWiaDevMgr *This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat);
-  HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackProgram_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
-  HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackProgram_Stub(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
-  HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackInterface_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject);
-  HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackInterface_Stub(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject);
-  HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackCLSID_Proxy(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
-  HRESULT WINAPI IWiaDevMgr_RegisterEventCallbackCLSID_Stub(IWiaDevMgr *This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon);
-  HRESULT WINAPI IEnumWIA_DEV_INFO_Next_Proxy(IEnumWIA_DEV_INFO *This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched);
-  HRESULT WINAPI IEnumWIA_DEV_INFO_Next_Stub(IEnumWIA_DEV_INFO *This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched);
-  HRESULT WINAPI IWiaDataCallback_BandedDataCallback_Proxy(IWiaDataCallback *This,LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer);
-  HRESULT WINAPI IWiaDataCallback_BandedDataCallback_Stub(IWiaDataCallback *This,LONG lMessage,LONG lStatus,LONG lPercentComplete,LONG lOffset,LONG lLength,LONG lReserved,LONG lResLength,BYTE *pbBuffer);
-  HRESULT WINAPI IWiaDataTransfer_idtGetData_Proxy(IWiaDataTransfer *This,LPSTGMEDIUM pMedium,IWiaDataCallback *pIWiaDataCallback);
-  HRESULT WINAPI IWiaDataTransfer_idtGetData_Stub(IWiaDataTransfer *This,LPSTGMEDIUM pMedium,IWiaDataCallback *pIWiaDataCallback);
-  HRESULT WINAPI IWiaDataTransfer_idtGetBandedData_Proxy(IWiaDataTransfer *This,PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,IWiaDataCallback *pIWiaDataCallback);
-  HRESULT WINAPI IWiaDataTransfer_idtGetBandedData_Stub(IWiaDataTransfer *This,PWIA_DATA_TRANSFER_INFO pWiaDataTransInfo,IWiaDataCallback *pIWiaDataCallback);
-  HRESULT WINAPI IWiaItem_DeviceDlg_Proxy(IWiaItem *This,HWND hwndParent,LONG lFlags,LONG lIntent,LONG *plItemCount,IWiaItem ***ppIWiaItem);
-  HRESULT WINAPI IWiaItem_DeviceDlg_Stub(IWiaItem *This,HWND hwndParent,LONG lFlags,LONG lIntent,LONG *plItemCount,IWiaItem ***pIWiaItem);
-  HRESULT WINAPI IWiaPropertyStorage_WriteMultiple_Proxy(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC rgpspec[],const PROPVARIANT rgpropvar[],PROPID propidNameFirst);
-  HRESULT WINAPI IWiaPropertyStorage_WriteMultiple_Stub(IWiaPropertyStorage *This,ULONG cpspec,const PROPSPEC *rgpspec,const PROPVARIANT *rgpropvar,PROPID propidNameFirst);
-  HRESULT WINAPI IWiaPropertyStorage_SetPropertyStream_Proxy(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream *pIStream);
-  HRESULT WINAPI IWiaPropertyStorage_SetPropertyStream_Stub(IWiaPropertyStorage *This,GUID *pCompatibilityId,IStream *pIStream);
-  HRESULT WINAPI IEnumWiaItem_Next_Proxy(IEnumWiaItem *This,ULONG celt,IWiaItem **ppIWiaItem,ULONG *pceltFetched);
-  HRESULT WINAPI IEnumWiaItem_Next_Stub(IEnumWiaItem *This,ULONG celt,IWiaItem **ppIWiaItem,ULONG *pceltFetched);
-  HRESULT WINAPI IEnumWIA_DEV_CAPS_Next_Proxy(IEnumWIA_DEV_CAPS *This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched);
-  HRESULT WINAPI IEnumWIA_DEV_CAPS_Next_Stub(IEnumWIA_DEV_CAPS *This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched);
-  HRESULT WINAPI IEnumWIA_FORMAT_INFO_Next_Proxy(IEnumWIA_FORMAT_INFO *This,ULONG celt,WIA_FORMAT_INFO *rgelt,ULONG *pceltFetched);
-  HRESULT WINAPI IEnumWIA_FORMAT_INFO_Next_Stub(IEnumWIA_FORMAT_INFO *This,ULONG celt,WIA_FORMAT_INFO *rgelt,ULONG *pceltFetched);
-
-#ifdef __cplusplus
-}
-#endif
+#if (_WIN32_WINNT >= 0x0600)
+#include <wia_lh.h>
+#elif (_WIN32_WINNT >= 0x0501)
+#include <wia_xp.h>
 #endif
lib/libc/include/any-windows-any/wia_lh.h
@@ -0,0 +1,1821 @@
+/*** Autogenerated by WIDL 10.0-rc1 from include/wia_lh.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 __wia_lh_h__
+#define __wia_lh_h__
+
+/* Forward declarations */
+
+#ifndef __IWiaDevMgr_FWD_DEFINED__
+#define __IWiaDevMgr_FWD_DEFINED__
+typedef interface IWiaDevMgr IWiaDevMgr;
+#ifdef __cplusplus
+interface IWiaDevMgr;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
+#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
+typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
+#ifdef __cplusplus
+interface IEnumWIA_DEV_INFO;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaPropertyStorage_FWD_DEFINED__
+#define __IWiaPropertyStorage_FWD_DEFINED__
+typedef interface IWiaPropertyStorage IWiaPropertyStorage;
+#ifdef __cplusplus
+interface IWiaPropertyStorage;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaItem_FWD_DEFINED__
+#define __IWiaItem_FWD_DEFINED__
+typedef interface IWiaItem IWiaItem;
+#ifdef __cplusplus
+interface IWiaItem;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaEventCallback_FWD_DEFINED__
+#define __IWiaEventCallback_FWD_DEFINED__
+typedef interface IWiaEventCallback IWiaEventCallback;
+#ifdef __cplusplus
+interface IWiaEventCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__
+#define __IEnumWIA_DEV_CAPS_FWD_DEFINED__
+typedef interface IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
+#ifdef __cplusplus
+interface IEnumWIA_DEV_CAPS;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaTransferCallback_FWD_DEFINED__
+#define __IWiaTransferCallback_FWD_DEFINED__
+typedef interface IWiaTransferCallback IWiaTransferCallback;
+#ifdef __cplusplus
+interface IWiaTransferCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaPreview_FWD_DEFINED__
+#define __IWiaPreview_FWD_DEFINED__
+typedef interface IWiaPreview IWiaPreview;
+#ifdef __cplusplus
+interface IWiaPreview;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumWiaItem2_FWD_DEFINED__
+#define __IEnumWiaItem2_FWD_DEFINED__
+typedef interface IEnumWiaItem2 IEnumWiaItem2;
+#ifdef __cplusplus
+interface IEnumWiaItem2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaItem2_FWD_DEFINED__
+#define __IWiaItem2_FWD_DEFINED__
+typedef interface IWiaItem2 IWiaItem2;
+#ifdef __cplusplus
+interface IWiaItem2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaDevMgr2_FWD_DEFINED__
+#define __IWiaDevMgr2_FWD_DEFINED__
+typedef interface IWiaDevMgr2 IWiaDevMgr2;
+#ifdef __cplusplus
+interface IWiaDevMgr2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __WiaDevMgr2_FWD_DEFINED__
+#define __WiaDevMgr2_FWD_DEFINED__
+#ifdef __cplusplus
+typedef class WiaDevMgr2 WiaDevMgr2;
+#else
+typedef struct WiaDevMgr2 WiaDevMgr2;
+#endif /* defined __cplusplus */
+#endif /* defined __WiaDevMgr2_FWD_DEFINED__ */
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+#include <oaidl.h>
+#include <propidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct _WIA_DITHER_PATTERN_DATA {
+    LONG lSize;
+    BSTR bstrPatternName;
+    LONG lPatternWidth;
+    LONG lPatternLength;
+    LONG cbPattern;
+    BYTE *pbPattern;
+} WIA_DITHER_PATTERN_DATA;
+typedef struct _WIA_DITHER_PATTERN_DATA *PWIA_DITHER_PATTERN_DATA;
+typedef struct _WIA_PROPID_TO_NAME {
+    PROPID propid;
+    LPOLESTR pszName;
+} WIA_PROPID_TO_NAME;
+typedef struct _WIA_PROPID_TO_NAME *PWIA_PROPID_TO_NAME;
+typedef struct _WIA_FORMAT_INFO {
+    GUID guidFormatID;
+    LONG lTymed;
+} WIA_FORMAT_INFO;
+typedef struct _WIA_FORMAT_INFO *PWIA_FORMAT_INFO;
+#include <wiadef.h>
+#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
+#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
+typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
+#ifdef __cplusplus
+interface IEnumWIA_DEV_INFO;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaPropertyStorage_FWD_DEFINED__
+#define __IWiaPropertyStorage_FWD_DEFINED__
+typedef interface IWiaPropertyStorage IWiaPropertyStorage;
+#ifdef __cplusplus
+interface IWiaPropertyStorage;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaItem_FWD_DEFINED__
+#define __IWiaItem_FWD_DEFINED__
+typedef interface IWiaItem IWiaItem;
+#ifdef __cplusplus
+interface IWiaItem;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaEventCallback_FWD_DEFINED__
+#define __IWiaEventCallback_FWD_DEFINED__
+typedef interface IWiaEventCallback IWiaEventCallback;
+#ifdef __cplusplus
+interface IWiaEventCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumWIA_DEV_CAPS_FWD_DEFINED__
+#define __IEnumWIA_DEV_CAPS_FWD_DEFINED__
+typedef interface IEnumWIA_DEV_CAPS IEnumWIA_DEV_CAPS;
+#ifdef __cplusplus
+interface IEnumWIA_DEV_CAPS;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaTransferCallback_FWD_DEFINED__
+#define __IWiaTransferCallback_FWD_DEFINED__
+typedef interface IWiaTransferCallback IWiaTransferCallback;
+#ifdef __cplusplus
+interface IWiaTransferCallback;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaPreview_FWD_DEFINED__
+#define __IWiaPreview_FWD_DEFINED__
+typedef interface IWiaPreview IWiaPreview;
+#ifdef __cplusplus
+interface IWiaPreview;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumWiaItem2_FWD_DEFINED__
+#define __IEnumWiaItem2_FWD_DEFINED__
+typedef interface IEnumWiaItem2 IEnumWiaItem2;
+#ifdef __cplusplus
+interface IEnumWiaItem2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaItem2_FWD_DEFINED__
+#define __IWiaItem2_FWD_DEFINED__
+typedef interface IWiaItem2 IWiaItem2;
+#ifdef __cplusplus
+interface IWiaItem2;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaDevMgr2_FWD_DEFINED__
+#define __IWiaDevMgr2_FWD_DEFINED__
+typedef interface IWiaDevMgr2 IWiaDevMgr2;
+#ifdef __cplusplus
+interface IWiaDevMgr2;
+#endif /* __cplusplus */
+#endif
+
+DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);
+/*****************************************************************************
+ * IWiaDevMgr interface
+ */
+#ifndef __IWiaDevMgr_INTERFACE_DEFINED__
+#define __IWiaDevMgr_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5eb2502a-8cf1-11d1-bf92-0060081ed811")
+IWiaDevMgr : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE EnumDeviceInfo(
+        LONG lFlag,
+        IEnumWIA_DEV_INFO **ppIEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateDevice(
+        BSTR bstrDeviceID,
+        IWiaItem **ppWiaItemRoot) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlg(
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID,
+        IWiaItem **ppItemRoot) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlgID(
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetImageDlg(
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        LONG lIntent,
+        IWiaItem *pItemRoot,
+        BSTR bstrFilename,
+        GUID *pguidFormat) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackProgram(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        BSTR bstrCommandline,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackInterface(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        IWiaEventCallback *pIWiaEventCallback,
+        IUnknown **pEventObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackCLSID(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        const GUID *pClsID,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddDeviceDlg(
+        HWND hwndParent,
+        LONG lFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11)
+#endif
+#else
+typedef struct IWiaDevMgrVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaDevMgr *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaDevMgr *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaDevMgr *This);
+
+    /*** IWiaDevMgr methods ***/
+    HRESULT (STDMETHODCALLTYPE *EnumDeviceInfo)(
+        IWiaDevMgr *This,
+        LONG lFlag,
+        IEnumWIA_DEV_INFO **ppIEnum);
+
+    HRESULT (STDMETHODCALLTYPE *CreateDevice)(
+        IWiaDevMgr *This,
+        BSTR bstrDeviceID,
+        IWiaItem **ppWiaItemRoot);
+
+    HRESULT (STDMETHODCALLTYPE *SelectDeviceDlg)(
+        IWiaDevMgr *This,
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID,
+        IWiaItem **ppItemRoot);
+
+    HRESULT (STDMETHODCALLTYPE *SelectDeviceDlgID)(
+        IWiaDevMgr *This,
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID);
+
+    HRESULT (STDMETHODCALLTYPE *GetImageDlg)(
+        IWiaDevMgr *This,
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        LONG lIntent,
+        IWiaItem *pItemRoot,
+        BSTR bstrFilename,
+        GUID *pguidFormat);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackProgram)(
+        IWiaDevMgr *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        BSTR bstrCommandline,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackInterface)(
+        IWiaDevMgr *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        IWiaEventCallback *pIWiaEventCallback,
+        IUnknown **pEventObject);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackCLSID)(
+        IWiaDevMgr *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        const GUID *pClsID,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon);
+
+    HRESULT (STDMETHODCALLTYPE *AddDeviceDlg)(
+        IWiaDevMgr *This,
+        HWND hwndParent,
+        LONG lFlags);
+
+    END_INTERFACE
+} IWiaDevMgrVtbl;
+
+interface IWiaDevMgr {
+    CONST_VTBL IWiaDevMgrVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaDevMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaDevMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaDevMgr_Release(This) (This)->lpVtbl->Release(This)
+/*** IWiaDevMgr methods ***/
+#define IWiaDevMgr_EnumDeviceInfo(This,lFlag,ppIEnum) (This)->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum)
+#define IWiaDevMgr_CreateDevice(This,bstrDeviceID,ppWiaItemRoot) (This)->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot)
+#define IWiaDevMgr_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot) (This)->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
+#define IWiaDevMgr_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID) (This)->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
+#define IWiaDevMgr_GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat) (This)->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat)
+#define IWiaDevMgr_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon)
+#define IWiaDevMgr_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject) (This)->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
+#define IWiaDevMgr_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
+#define IWiaDevMgr_AddDeviceDlg(This,hwndParent,lFlags) (This)->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaDevMgr_QueryInterface(IWiaDevMgr* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaDevMgr_AddRef(IWiaDevMgr* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaDevMgr_Release(IWiaDevMgr* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWiaDevMgr methods ***/
+static inline HRESULT IWiaDevMgr_EnumDeviceInfo(IWiaDevMgr* This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum) {
+    return This->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum);
+}
+static inline HRESULT IWiaDevMgr_CreateDevice(IWiaDevMgr* This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot) {
+    return This->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot);
+}
+static inline HRESULT IWiaDevMgr_SelectDeviceDlg(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot) {
+    return This->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot);
+}
+static inline HRESULT IWiaDevMgr_SelectDeviceDlgID(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID) {
+    return This->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID);
+}
+static inline HRESULT IWiaDevMgr_GetImageDlg(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat) {
+    return This->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat);
+}
+static inline HRESULT IWiaDevMgr_RegisterEventCallbackProgram(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
+    return This->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon);
+}
+static inline HRESULT IWiaDevMgr_RegisterEventCallbackInterface(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject) {
+    return This->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject);
+}
+static inline HRESULT IWiaDevMgr_RegisterEventCallbackCLSID(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
+    return This->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon);
+}
+static inline HRESULT IWiaDevMgr_AddDeviceDlg(IWiaDevMgr* This,HWND hwndParent,LONG lFlags) {
+    return This->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaDevMgr_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumWIA_DEV_INFO interface
+ */
+#ifndef __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
+#define __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5e38b83c-8cf1-11d1-bf92-0060081ed811")
+IEnumWIA_DEV_INFO : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        ULONG celt,
+        IWiaPropertyStorage **rgelt,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumWIA_DEV_INFO **ppIEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCount(
+        ULONG *celt) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11)
+#endif
+#else
+typedef struct IEnumWIA_DEV_INFOVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumWIA_DEV_INFO *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumWIA_DEV_INFO *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumWIA_DEV_INFO *This);
+
+    /*** IEnumWIA_DEV_INFO methods ***/
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumWIA_DEV_INFO *This,
+        ULONG celt,
+        IWiaPropertyStorage **rgelt,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumWIA_DEV_INFO *This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumWIA_DEV_INFO *This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumWIA_DEV_INFO *This,
+        IEnumWIA_DEV_INFO **ppIEnum);
+
+    HRESULT (STDMETHODCALLTYPE *GetCount)(
+        IEnumWIA_DEV_INFO *This,
+        ULONG *celt);
+
+    END_INTERFACE
+} IEnumWIA_DEV_INFOVtbl;
+
+interface IEnumWIA_DEV_INFO {
+    CONST_VTBL IEnumWIA_DEV_INFOVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumWIA_DEV_INFO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumWIA_DEV_INFO_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumWIA_DEV_INFO_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumWIA_DEV_INFO methods ***/
+#define IEnumWIA_DEV_INFO_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
+#define IEnumWIA_DEV_INFO_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumWIA_DEV_INFO_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumWIA_DEV_INFO_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
+#define IEnumWIA_DEV_INFO_GetCount(This,celt) (This)->lpVtbl->GetCount(This,celt)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IEnumWIA_DEV_INFO_QueryInterface(IEnumWIA_DEV_INFO* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IEnumWIA_DEV_INFO_AddRef(IEnumWIA_DEV_INFO* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IEnumWIA_DEV_INFO_Release(IEnumWIA_DEV_INFO* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumWIA_DEV_INFO methods ***/
+static inline HRESULT IEnumWIA_DEV_INFO_Next(IEnumWIA_DEV_INFO* This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
+}
+static inline HRESULT IEnumWIA_DEV_INFO_Skip(IEnumWIA_DEV_INFO* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static inline HRESULT IEnumWIA_DEV_INFO_Reset(IEnumWIA_DEV_INFO* This) {
+    return This->lpVtbl->Reset(This);
+}
+static inline HRESULT IEnumWIA_DEV_INFO_Clone(IEnumWIA_DEV_INFO* This,IEnumWIA_DEV_INFO **ppIEnum) {
+    return This->lpVtbl->Clone(This,ppIEnum);
+}
+static inline HRESULT IEnumWIA_DEV_INFO_GetCount(IEnumWIA_DEV_INFO* This,ULONG *celt) {
+    return This->lpVtbl->GetCount(This,celt);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWiaPropertyStorage interface
+ */
+#ifndef __IWiaPropertyStorage_INTERFACE_DEFINED__
+#define __IWiaPropertyStorage_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("98b5e8a0-29cc-491a-aac0-e6db4fdcceb6")
+IWiaPropertyStorage : public IUnknown
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6)
+#endif
+#else
+typedef struct IWiaPropertyStorageVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaPropertyStorage *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaPropertyStorage *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaPropertyStorage *This);
+
+    END_INTERFACE
+} IWiaPropertyStorageVtbl;
+
+interface IWiaPropertyStorage {
+    CONST_VTBL IWiaPropertyStorageVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaPropertyStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaPropertyStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaPropertyStorage_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaPropertyStorage_QueryInterface(IWiaPropertyStorage* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaPropertyStorage_AddRef(IWiaPropertyStorage* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaPropertyStorage_Release(IWiaPropertyStorage* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaPropertyStorage_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWiaItem interface
+ */
+#ifndef __IWiaItem_INTERFACE_DEFINED__
+#define __IWiaItem_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4db1ad10-3391-11d2-9a33-00c04fa36145")
+IWiaItem : public IUnknown
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45)
+#endif
+#else
+typedef struct IWiaItemVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaItem *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaItem *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaItem *This);
+
+    END_INTERFACE
+} IWiaItemVtbl;
+
+interface IWiaItem {
+    CONST_VTBL IWiaItemVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaItem_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaItem_QueryInterface(IWiaItem* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaItem_AddRef(IWiaItem* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaItem_Release(IWiaItem* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaItem_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWiaEventCallback interface
+ */
+#ifndef __IWiaEventCallback_INTERFACE_DEFINED__
+#define __IWiaEventCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ae6287b0-0084-11d2-973b-00a0c9068f2e")
+IWiaEventCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ImageEventCallback(
+        const GUID *pEventGUID,
+        BSTR bstrEventDescription,
+        BSTR bstrDeviceID,
+        BSTR bstrDeviceDescription,
+        DWORD dwDeviceType,
+        BSTR bstrFullItemName,
+        ULONG *pulEventType,
+        ULONG ulReserved) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e)
+#endif
+#else
+typedef struct IWiaEventCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaEventCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaEventCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaEventCallback *This);
+
+    /*** IWiaEventCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *ImageEventCallback)(
+        IWiaEventCallback *This,
+        const GUID *pEventGUID,
+        BSTR bstrEventDescription,
+        BSTR bstrDeviceID,
+        BSTR bstrDeviceDescription,
+        DWORD dwDeviceType,
+        BSTR bstrFullItemName,
+        ULONG *pulEventType,
+        ULONG ulReserved);
+
+    END_INTERFACE
+} IWiaEventCallbackVtbl;
+
+interface IWiaEventCallback {
+    CONST_VTBL IWiaEventCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaEventCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IWiaEventCallback methods ***/
+#define IWiaEventCallback_ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved) (This)->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaEventCallback_QueryInterface(IWiaEventCallback* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaEventCallback_AddRef(IWiaEventCallback* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaEventCallback_Release(IWiaEventCallback* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWiaEventCallback methods ***/
+static inline HRESULT IWiaEventCallback_ImageEventCallback(IWiaEventCallback* This,const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved) {
+    return This->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaEventCallback_INTERFACE_DEFINED__ */
+
+typedef struct _WIA_DEV_CAP {
+    GUID guid;
+    ULONG ulFlags;
+    BSTR bstrName;
+    BSTR bstrDescription;
+    BSTR bstrIcon;
+    BSTR bstrCommandline;
+} WIA_DEV_CAP;
+typedef struct _WIA_DEV_CAP *PWIA_DEV_CAP;
+typedef struct _WIA_DEV_CAP WIA_EVENT_HANDLER;
+typedef struct _WIA_DEV_CAP *PWIA_EVENT_HANDLER;
+/*****************************************************************************
+ * IEnumWIA_DEV_CAPS interface
+ */
+#ifndef __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
+#define __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumWIA_DEV_CAPS, 0x1fcc4287, 0xaca6, 0x11d2, 0xa0,0x93, 0x00,0xc0,0x4f,0x72,0xdc,0x3c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("1fcc4287-aca6-11d2-a093-00c04f72dc3c")
+IEnumWIA_DEV_CAPS : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        ULONG celt,
+        WIA_DEV_CAP *rgelt,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumWIA_DEV_CAPS **ppIEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCount(
+        ULONG *pcelt) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumWIA_DEV_CAPS, 0x1fcc4287, 0xaca6, 0x11d2, 0xa0,0x93, 0x00,0xc0,0x4f,0x72,0xdc,0x3c)
+#endif
+#else
+typedef struct IEnumWIA_DEV_CAPSVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumWIA_DEV_CAPS *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumWIA_DEV_CAPS *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumWIA_DEV_CAPS *This);
+
+    /*** IEnumWIA_DEV_CAPS methods ***/
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumWIA_DEV_CAPS *This,
+        ULONG celt,
+        WIA_DEV_CAP *rgelt,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumWIA_DEV_CAPS *This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumWIA_DEV_CAPS *This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumWIA_DEV_CAPS *This,
+        IEnumWIA_DEV_CAPS **ppIEnum);
+
+    HRESULT (STDMETHODCALLTYPE *GetCount)(
+        IEnumWIA_DEV_CAPS *This,
+        ULONG *pcelt);
+
+    END_INTERFACE
+} IEnumWIA_DEV_CAPSVtbl;
+
+interface IEnumWIA_DEV_CAPS {
+    CONST_VTBL IEnumWIA_DEV_CAPSVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumWIA_DEV_CAPS_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumWIA_DEV_CAPS_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumWIA_DEV_CAPS_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumWIA_DEV_CAPS methods ***/
+#define IEnumWIA_DEV_CAPS_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
+#define IEnumWIA_DEV_CAPS_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumWIA_DEV_CAPS_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumWIA_DEV_CAPS_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
+#define IEnumWIA_DEV_CAPS_GetCount(This,pcelt) (This)->lpVtbl->GetCount(This,pcelt)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IEnumWIA_DEV_CAPS_QueryInterface(IEnumWIA_DEV_CAPS* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IEnumWIA_DEV_CAPS_AddRef(IEnumWIA_DEV_CAPS* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IEnumWIA_DEV_CAPS_Release(IEnumWIA_DEV_CAPS* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumWIA_DEV_CAPS methods ***/
+static inline HRESULT IEnumWIA_DEV_CAPS_Next(IEnumWIA_DEV_CAPS* This,ULONG celt,WIA_DEV_CAP *rgelt,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
+}
+static inline HRESULT IEnumWIA_DEV_CAPS_Skip(IEnumWIA_DEV_CAPS* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static inline HRESULT IEnumWIA_DEV_CAPS_Reset(IEnumWIA_DEV_CAPS* This) {
+    return This->lpVtbl->Reset(This);
+}
+static inline HRESULT IEnumWIA_DEV_CAPS_Clone(IEnumWIA_DEV_CAPS* This,IEnumWIA_DEV_CAPS **ppIEnum) {
+    return This->lpVtbl->Clone(This,ppIEnum);
+}
+static inline HRESULT IEnumWIA_DEV_CAPS_GetCount(IEnumWIA_DEV_CAPS* This,ULONG *pcelt) {
+    return This->lpVtbl->GetCount(This,pcelt);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IEnumWIA_DEV_CAPS_INTERFACE_DEFINED__ */
+
+typedef struct _WiaTransferParams {
+    LONG lMessage;
+    LONG lPercentComplete;
+    ULONG64 ulTransferredBytes;
+    HRESULT hrErrorStatus;
+} WiaTransferParams;
+/*****************************************************************************
+ * IWiaTransferCallback interface
+ */
+#ifndef __IWiaTransferCallback_INTERFACE_DEFINED__
+#define __IWiaTransferCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaTransferCallback, 0x27d4eaaf, 0x28a6, 0x4ca5, 0x9a,0xab, 0xe6,0x78,0x16,0x8b,0x95,0x27);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("27d4eaaf-28a6-4ca5-9aab-e678168b9527")
+IWiaTransferCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE TransferCallback(
+        LONG lFlags,
+        WiaTransferParams *pWiaTransferParams) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNextStream(
+        LONG lFlags,
+        BSTR bstrItemName,
+        BSTR bstrFullItemName,
+        IStream **ppDestination) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaTransferCallback, 0x27d4eaaf, 0x28a6, 0x4ca5, 0x9a,0xab, 0xe6,0x78,0x16,0x8b,0x95,0x27)
+#endif
+#else
+typedef struct IWiaTransferCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaTransferCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaTransferCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaTransferCallback *This);
+
+    /*** IWiaTransferCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *TransferCallback)(
+        IWiaTransferCallback *This,
+        LONG lFlags,
+        WiaTransferParams *pWiaTransferParams);
+
+    HRESULT (STDMETHODCALLTYPE *GetNextStream)(
+        IWiaTransferCallback *This,
+        LONG lFlags,
+        BSTR bstrItemName,
+        BSTR bstrFullItemName,
+        IStream **ppDestination);
+
+    END_INTERFACE
+} IWiaTransferCallbackVtbl;
+
+interface IWiaTransferCallback {
+    CONST_VTBL IWiaTransferCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaTransferCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaTransferCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaTransferCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IWiaTransferCallback methods ***/
+#define IWiaTransferCallback_TransferCallback(This,lFlags,pWiaTransferParams) (This)->lpVtbl->TransferCallback(This,lFlags,pWiaTransferParams)
+#define IWiaTransferCallback_GetNextStream(This,lFlags,bstrItemName,bstrFullItemName,ppDestination) (This)->lpVtbl->GetNextStream(This,lFlags,bstrItemName,bstrFullItemName,ppDestination)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaTransferCallback_QueryInterface(IWiaTransferCallback* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaTransferCallback_AddRef(IWiaTransferCallback* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaTransferCallback_Release(IWiaTransferCallback* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWiaTransferCallback methods ***/
+static inline HRESULT IWiaTransferCallback_TransferCallback(IWiaTransferCallback* This,LONG lFlags,WiaTransferParams *pWiaTransferParams) {
+    return This->lpVtbl->TransferCallback(This,lFlags,pWiaTransferParams);
+}
+static inline HRESULT IWiaTransferCallback_GetNextStream(IWiaTransferCallback* This,LONG lFlags,BSTR bstrItemName,BSTR bstrFullItemName,IStream **ppDestination) {
+    return This->lpVtbl->GetNextStream(This,lFlags,bstrItemName,bstrFullItemName,ppDestination);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaTransferCallback_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWiaPreview interface
+ */
+#ifndef __IWiaPreview_INTERFACE_DEFINED__
+#define __IWiaPreview_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaPreview, 0x95c2b4fd, 0x33f2, 0x4d86, 0xad,0x40, 0x94,0x31,0xf0,0xdf,0x08,0xf7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("95c2b4fd-33f2-4d86-ad40-9431f0df08f7")
+IWiaPreview : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetNewPreview(
+        LONG lFlags,
+        IWiaItem2 *pWiaItem2,
+        IWiaTransferCallback *pWiaTransferCallback) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE UpdatePreview(
+        LONG lFlags,
+        IWiaItem2 *pChildWiaItem2,
+        IWiaTransferCallback *pWiaTransferCallback) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DetectRegions(
+        LONG lFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clear(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaPreview, 0x95c2b4fd, 0x33f2, 0x4d86, 0xad,0x40, 0x94,0x31,0xf0,0xdf,0x08,0xf7)
+#endif
+#else
+typedef struct IWiaPreviewVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaPreview *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaPreview *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaPreview *This);
+
+    /*** IWiaPreview methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetNewPreview)(
+        IWiaPreview *This,
+        LONG lFlags,
+        IWiaItem2 *pWiaItem2,
+        IWiaTransferCallback *pWiaTransferCallback);
+
+    HRESULT (STDMETHODCALLTYPE *UpdatePreview)(
+        IWiaPreview *This,
+        LONG lFlags,
+        IWiaItem2 *pChildWiaItem2,
+        IWiaTransferCallback *pWiaTransferCallback);
+
+    HRESULT (STDMETHODCALLTYPE *DetectRegions)(
+        IWiaPreview *This,
+        LONG lFlags);
+
+    HRESULT (STDMETHODCALLTYPE *Clear)(
+        IWiaPreview *This);
+
+    END_INTERFACE
+} IWiaPreviewVtbl;
+
+interface IWiaPreview {
+    CONST_VTBL IWiaPreviewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaPreview_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaPreview_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaPreview_Release(This) (This)->lpVtbl->Release(This)
+/*** IWiaPreview methods ***/
+#define IWiaPreview_GetNewPreview(This,lFlags,pWiaItem2,pWiaTransferCallback) (This)->lpVtbl->GetNewPreview(This,lFlags,pWiaItem2,pWiaTransferCallback)
+#define IWiaPreview_UpdatePreview(This,lFlags,pChildWiaItem2,pWiaTransferCallback) (This)->lpVtbl->UpdatePreview(This,lFlags,pChildWiaItem2,pWiaTransferCallback)
+#define IWiaPreview_DetectRegions(This,lFlags) (This)->lpVtbl->DetectRegions(This,lFlags)
+#define IWiaPreview_Clear(This) (This)->lpVtbl->Clear(This)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaPreview_QueryInterface(IWiaPreview* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaPreview_AddRef(IWiaPreview* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaPreview_Release(IWiaPreview* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWiaPreview methods ***/
+static inline HRESULT IWiaPreview_GetNewPreview(IWiaPreview* This,LONG lFlags,IWiaItem2 *pWiaItem2,IWiaTransferCallback *pWiaTransferCallback) {
+    return This->lpVtbl->GetNewPreview(This,lFlags,pWiaItem2,pWiaTransferCallback);
+}
+static inline HRESULT IWiaPreview_UpdatePreview(IWiaPreview* This,LONG lFlags,IWiaItem2 *pChildWiaItem2,IWiaTransferCallback *pWiaTransferCallback) {
+    return This->lpVtbl->UpdatePreview(This,lFlags,pChildWiaItem2,pWiaTransferCallback);
+}
+static inline HRESULT IWiaPreview_DetectRegions(IWiaPreview* This,LONG lFlags) {
+    return This->lpVtbl->DetectRegions(This,lFlags);
+}
+static inline HRESULT IWiaPreview_Clear(IWiaPreview* This) {
+    return This->lpVtbl->Clear(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaPreview_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumWiaItem2 interface
+ */
+#ifndef __IEnumWiaItem2_INTERFACE_DEFINED__
+#define __IEnumWiaItem2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumWiaItem2, 0x59970af4, 0xcd0d, 0x44d9, 0xab,0x24, 0x52,0x29,0x56,0x30,0xe5,0x82);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("59970af4-cd0d-44d9-ab24-52295630e582")
+IEnumWiaItem2 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        ULONG cElt,
+        IWiaItem2 **ppIWiaItem2,
+        ULONG *pcEltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG cElt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumWiaItem2 **ppIEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCount(
+        ULONG *cElt) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumWiaItem2, 0x59970af4, 0xcd0d, 0x44d9, 0xab,0x24, 0x52,0x29,0x56,0x30,0xe5,0x82)
+#endif
+#else
+typedef struct IEnumWiaItem2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumWiaItem2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumWiaItem2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumWiaItem2 *This);
+
+    /*** IEnumWiaItem2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumWiaItem2 *This,
+        ULONG cElt,
+        IWiaItem2 **ppIWiaItem2,
+        ULONG *pcEltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumWiaItem2 *This,
+        ULONG cElt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumWiaItem2 *This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumWiaItem2 *This,
+        IEnumWiaItem2 **ppIEnum);
+
+    HRESULT (STDMETHODCALLTYPE *GetCount)(
+        IEnumWiaItem2 *This,
+        ULONG *cElt);
+
+    END_INTERFACE
+} IEnumWiaItem2Vtbl;
+
+interface IEnumWiaItem2 {
+    CONST_VTBL IEnumWiaItem2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumWiaItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumWiaItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumWiaItem2_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumWiaItem2 methods ***/
+#define IEnumWiaItem2_Next(This,cElt,ppIWiaItem2,pcEltFetched) (This)->lpVtbl->Next(This,cElt,ppIWiaItem2,pcEltFetched)
+#define IEnumWiaItem2_Skip(This,cElt) (This)->lpVtbl->Skip(This,cElt)
+#define IEnumWiaItem2_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumWiaItem2_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
+#define IEnumWiaItem2_GetCount(This,cElt) (This)->lpVtbl->GetCount(This,cElt)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IEnumWiaItem2_QueryInterface(IEnumWiaItem2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IEnumWiaItem2_AddRef(IEnumWiaItem2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IEnumWiaItem2_Release(IEnumWiaItem2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumWiaItem2 methods ***/
+static inline HRESULT IEnumWiaItem2_Next(IEnumWiaItem2* This,ULONG cElt,IWiaItem2 **ppIWiaItem2,ULONG *pcEltFetched) {
+    return This->lpVtbl->Next(This,cElt,ppIWiaItem2,pcEltFetched);
+}
+static inline HRESULT IEnumWiaItem2_Skip(IEnumWiaItem2* This,ULONG cElt) {
+    return This->lpVtbl->Skip(This,cElt);
+}
+static inline HRESULT IEnumWiaItem2_Reset(IEnumWiaItem2* This) {
+    return This->lpVtbl->Reset(This);
+}
+static inline HRESULT IEnumWiaItem2_Clone(IEnumWiaItem2* This,IEnumWiaItem2 **ppIEnum) {
+    return This->lpVtbl->Clone(This,ppIEnum);
+}
+static inline HRESULT IEnumWiaItem2_GetCount(IEnumWiaItem2* This,ULONG *cElt) {
+    return This->lpVtbl->GetCount(This,cElt);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IEnumWiaItem2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWiaItem2 interface
+ */
+#ifndef __IWiaItem2_INTERFACE_DEFINED__
+#define __IWiaItem2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaItem2, 0x6cba0075, 0x1287, 0x407d, 0x9b,0x77, 0xcf,0x0e,0x03,0x04,0x35,0xcc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("6cba0075-1287-407d-9b77-cf0e030435cc")
+IWiaItem2 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateChildItem(
+        LONG lItemFlags,
+        LONG lCreationFlags,
+        BSTR bstrItemName,
+        IWiaItem2 **ppIWiaItem2) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeleteItem(
+        LONG lFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumChildItems(
+        const GUID *pCategoryGUID,
+        IEnumWiaItem2 **ppIEnumWiaItem2) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FindItemByName(
+        LONG lFlags,
+        BSTR bstrFullItemName,
+        IWiaItem2 **ppIWiaItem2) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetItemCategory(
+        GUID *pItemCategoryGUID) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetItemType(
+        LONG *pItemType) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeviceDlg(
+        LONG lFlags,
+        HWND hwndParent,
+        BSTR bstrFolderName,
+        BSTR bstrFilename,
+        LONG *plNumFiles,
+        BSTR **ppbstrFilePaths,
+        IWiaItem2 **ppItem) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE DeviceCommand(
+        LONG lFlags,
+        const GUID *pCmdGUID,
+        IWiaItem2 **ppIWiaItem2) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumDeviceCapabilities(
+        LONG lFlags,
+        IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CheckExtension(
+        LONG lFlags,
+        BSTR bstrName,
+        REFIID riidExtensionInterface,
+        WINBOOL *pbExtensionExists) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetExtension(
+        LONG lFlags,
+        BSTR bstrName,
+        REFIID riidExtensionInterface,
+        void **ppOut) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetParentItem(
+        IWiaItem2 **ppIWiaItem2) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRootItem(
+        IWiaItem2 **ppIWiaItem2) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPreviewComponent(
+        LONG lFlags,
+        IWiaPreview **ppWiaPreview) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumRegisterEventInfo(
+        LONG lFlags,
+        const GUID *pEventGUID,
+        IEnumWIA_DEV_CAPS **ppIEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Diagnostic(
+        ULONG ulSize,
+        BYTE *pBuffer) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaItem2, 0x6cba0075, 0x1287, 0x407d, 0x9b,0x77, 0xcf,0x0e,0x03,0x04,0x35,0xcc)
+#endif
+#else
+typedef struct IWiaItem2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaItem2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaItem2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaItem2 *This);
+
+    /*** IWiaItem2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateChildItem)(
+        IWiaItem2 *This,
+        LONG lItemFlags,
+        LONG lCreationFlags,
+        BSTR bstrItemName,
+        IWiaItem2 **ppIWiaItem2);
+
+    HRESULT (STDMETHODCALLTYPE *DeleteItem)(
+        IWiaItem2 *This,
+        LONG lFlags);
+
+    HRESULT (STDMETHODCALLTYPE *EnumChildItems)(
+        IWiaItem2 *This,
+        const GUID *pCategoryGUID,
+        IEnumWiaItem2 **ppIEnumWiaItem2);
+
+    HRESULT (STDMETHODCALLTYPE *FindItemByName)(
+        IWiaItem2 *This,
+        LONG lFlags,
+        BSTR bstrFullItemName,
+        IWiaItem2 **ppIWiaItem2);
+
+    HRESULT (STDMETHODCALLTYPE *GetItemCategory)(
+        IWiaItem2 *This,
+        GUID *pItemCategoryGUID);
+
+    HRESULT (STDMETHODCALLTYPE *GetItemType)(
+        IWiaItem2 *This,
+        LONG *pItemType);
+
+    HRESULT (STDMETHODCALLTYPE *DeviceDlg)(
+        IWiaItem2 *This,
+        LONG lFlags,
+        HWND hwndParent,
+        BSTR bstrFolderName,
+        BSTR bstrFilename,
+        LONG *plNumFiles,
+        BSTR **ppbstrFilePaths,
+        IWiaItem2 **ppItem);
+
+    HRESULT (STDMETHODCALLTYPE *DeviceCommand)(
+        IWiaItem2 *This,
+        LONG lFlags,
+        const GUID *pCmdGUID,
+        IWiaItem2 **ppIWiaItem2);
+
+    HRESULT (STDMETHODCALLTYPE *EnumDeviceCapabilities)(
+        IWiaItem2 *This,
+        LONG lFlags,
+        IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS);
+
+    HRESULT (STDMETHODCALLTYPE *CheckExtension)(
+        IWiaItem2 *This,
+        LONG lFlags,
+        BSTR bstrName,
+        REFIID riidExtensionInterface,
+        WINBOOL *pbExtensionExists);
+
+    HRESULT (STDMETHODCALLTYPE *GetExtension)(
+        IWiaItem2 *This,
+        LONG lFlags,
+        BSTR bstrName,
+        REFIID riidExtensionInterface,
+        void **ppOut);
+
+    HRESULT (STDMETHODCALLTYPE *GetParentItem)(
+        IWiaItem2 *This,
+        IWiaItem2 **ppIWiaItem2);
+
+    HRESULT (STDMETHODCALLTYPE *GetRootItem)(
+        IWiaItem2 *This,
+        IWiaItem2 **ppIWiaItem2);
+
+    HRESULT (STDMETHODCALLTYPE *GetPreviewComponent)(
+        IWiaItem2 *This,
+        LONG lFlags,
+        IWiaPreview **ppWiaPreview);
+
+    HRESULT (STDMETHODCALLTYPE *EnumRegisterEventInfo)(
+        IWiaItem2 *This,
+        LONG lFlags,
+        const GUID *pEventGUID,
+        IEnumWIA_DEV_CAPS **ppIEnum);
+
+    HRESULT (STDMETHODCALLTYPE *Diagnostic)(
+        IWiaItem2 *This,
+        ULONG ulSize,
+        BYTE *pBuffer);
+
+    END_INTERFACE
+} IWiaItem2Vtbl;
+
+interface IWiaItem2 {
+    CONST_VTBL IWiaItem2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaItem2_Release(This) (This)->lpVtbl->Release(This)
+/*** IWiaItem2 methods ***/
+#define IWiaItem2_CreateChildItem(This,lItemFlags,lCreationFlags,bstrItemName,ppIWiaItem2) (This)->lpVtbl->CreateChildItem(This,lItemFlags,lCreationFlags,bstrItemName,ppIWiaItem2)
+#define IWiaItem2_DeleteItem(This,lFlags) (This)->lpVtbl->DeleteItem(This,lFlags)
+#define IWiaItem2_EnumChildItems(This,pCategoryGUID,ppIEnumWiaItem2) (This)->lpVtbl->EnumChildItems(This,pCategoryGUID,ppIEnumWiaItem2)
+#define IWiaItem2_FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem2) (This)->lpVtbl->FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem2)
+#define IWiaItem2_GetItemCategory(This,pItemCategoryGUID) (This)->lpVtbl->GetItemCategory(This,pItemCategoryGUID)
+#define IWiaItem2_GetItemType(This,pItemType) (This)->lpVtbl->GetItemType(This,pItemType)
+#define IWiaItem2_DeviceDlg(This,lFlags,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem) (This)->lpVtbl->DeviceDlg(This,lFlags,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem)
+#define IWiaItem2_DeviceCommand(This,lFlags,pCmdGUID,ppIWiaItem2) (This)->lpVtbl->DeviceCommand(This,lFlags,pCmdGUID,ppIWiaItem2)
+#define IWiaItem2_EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS) (This)->lpVtbl->EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS)
+#define IWiaItem2_CheckExtension(This,lFlags,bstrName,riidExtensionInterface,pbExtensionExists) (This)->lpVtbl->CheckExtension(This,lFlags,bstrName,riidExtensionInterface,pbExtensionExists)
+#define IWiaItem2_GetExtension(This,lFlags,bstrName,riidExtensionInterface,ppOut) (This)->lpVtbl->GetExtension(This,lFlags,bstrName,riidExtensionInterface,ppOut)
+#define IWiaItem2_GetParentItem(This,ppIWiaItem2) (This)->lpVtbl->GetParentItem(This,ppIWiaItem2)
+#define IWiaItem2_GetRootItem(This,ppIWiaItem2) (This)->lpVtbl->GetRootItem(This,ppIWiaItem2)
+#define IWiaItem2_GetPreviewComponent(This,lFlags,ppWiaPreview) (This)->lpVtbl->GetPreviewComponent(This,lFlags,ppWiaPreview)
+#define IWiaItem2_EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum) (This)->lpVtbl->EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum)
+#define IWiaItem2_Diagnostic(This,ulSize,pBuffer) (This)->lpVtbl->Diagnostic(This,ulSize,pBuffer)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaItem2_QueryInterface(IWiaItem2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaItem2_AddRef(IWiaItem2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaItem2_Release(IWiaItem2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWiaItem2 methods ***/
+static inline HRESULT IWiaItem2_CreateChildItem(IWiaItem2* This,LONG lItemFlags,LONG lCreationFlags,BSTR bstrItemName,IWiaItem2 **ppIWiaItem2) {
+    return This->lpVtbl->CreateChildItem(This,lItemFlags,lCreationFlags,bstrItemName,ppIWiaItem2);
+}
+static inline HRESULT IWiaItem2_DeleteItem(IWiaItem2* This,LONG lFlags) {
+    return This->lpVtbl->DeleteItem(This,lFlags);
+}
+static inline HRESULT IWiaItem2_EnumChildItems(IWiaItem2* This,const GUID *pCategoryGUID,IEnumWiaItem2 **ppIEnumWiaItem2) {
+    return This->lpVtbl->EnumChildItems(This,pCategoryGUID,ppIEnumWiaItem2);
+}
+static inline HRESULT IWiaItem2_FindItemByName(IWiaItem2* This,LONG lFlags,BSTR bstrFullItemName,IWiaItem2 **ppIWiaItem2) {
+    return This->lpVtbl->FindItemByName(This,lFlags,bstrFullItemName,ppIWiaItem2);
+}
+static inline HRESULT IWiaItem2_GetItemCategory(IWiaItem2* This,GUID *pItemCategoryGUID) {
+    return This->lpVtbl->GetItemCategory(This,pItemCategoryGUID);
+}
+static inline HRESULT IWiaItem2_GetItemType(IWiaItem2* This,LONG *pItemType) {
+    return This->lpVtbl->GetItemType(This,pItemType);
+}
+static inline HRESULT IWiaItem2_DeviceDlg(IWiaItem2* This,LONG lFlags,HWND hwndParent,BSTR bstrFolderName,BSTR bstrFilename,LONG *plNumFiles,BSTR **ppbstrFilePaths,IWiaItem2 **ppItem) {
+    return This->lpVtbl->DeviceDlg(This,lFlags,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem);
+}
+static inline HRESULT IWiaItem2_DeviceCommand(IWiaItem2* This,LONG lFlags,const GUID *pCmdGUID,IWiaItem2 **ppIWiaItem2) {
+    return This->lpVtbl->DeviceCommand(This,lFlags,pCmdGUID,ppIWiaItem2);
+}
+static inline HRESULT IWiaItem2_EnumDeviceCapabilities(IWiaItem2* This,LONG lFlags,IEnumWIA_DEV_CAPS **ppIEnumWIA_DEV_CAPS) {
+    return This->lpVtbl->EnumDeviceCapabilities(This,lFlags,ppIEnumWIA_DEV_CAPS);
+}
+static inline HRESULT IWiaItem2_CheckExtension(IWiaItem2* This,LONG lFlags,BSTR bstrName,REFIID riidExtensionInterface,WINBOOL *pbExtensionExists) {
+    return This->lpVtbl->CheckExtension(This,lFlags,bstrName,riidExtensionInterface,pbExtensionExists);
+}
+static inline HRESULT IWiaItem2_GetExtension(IWiaItem2* This,LONG lFlags,BSTR bstrName,REFIID riidExtensionInterface,void **ppOut) {
+    return This->lpVtbl->GetExtension(This,lFlags,bstrName,riidExtensionInterface,ppOut);
+}
+static inline HRESULT IWiaItem2_GetParentItem(IWiaItem2* This,IWiaItem2 **ppIWiaItem2) {
+    return This->lpVtbl->GetParentItem(This,ppIWiaItem2);
+}
+static inline HRESULT IWiaItem2_GetRootItem(IWiaItem2* This,IWiaItem2 **ppIWiaItem2) {
+    return This->lpVtbl->GetRootItem(This,ppIWiaItem2);
+}
+static inline HRESULT IWiaItem2_GetPreviewComponent(IWiaItem2* This,LONG lFlags,IWiaPreview **ppWiaPreview) {
+    return This->lpVtbl->GetPreviewComponent(This,lFlags,ppWiaPreview);
+}
+static inline HRESULT IWiaItem2_EnumRegisterEventInfo(IWiaItem2* This,LONG lFlags,const GUID *pEventGUID,IEnumWIA_DEV_CAPS **ppIEnum) {
+    return This->lpVtbl->EnumRegisterEventInfo(This,lFlags,pEventGUID,ppIEnum);
+}
+static inline HRESULT IWiaItem2_Diagnostic(IWiaItem2* This,ULONG ulSize,BYTE *pBuffer) {
+    return This->lpVtbl->Diagnostic(This,ulSize,pBuffer);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaItem2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWiaDevMgr2 interface
+ */
+#ifndef __IWiaDevMgr2_INTERFACE_DEFINED__
+#define __IWiaDevMgr2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaDevMgr2, 0x79c07cf1, 0xcbdd, 0x41ee, 0x8e,0xc3, 0xf0,0x00,0x80,0xca,0xda,0x7a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("79c07cf1-cbdd-41ee-8ec3-f00080cada7a")
+IWiaDevMgr2 : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE EnumDeviceInfo(
+        LONG lFlags,
+        IEnumWIA_DEV_INFO **ppIEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateDevice(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        IWiaItem2 **ppWiaItem2Root) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlg(
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID,
+        IWiaItem2 **ppItemRoot) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlgID(
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackInterface(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        IWiaEventCallback *pIWiaEventCallback,
+        IUnknown **pEventObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackProgram(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        BSTR bstrFullAppName,
+        BSTR bstrCommandLineArg,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackCLSID(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        const GUID *pClsID,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetImageDlg(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        HWND hwndParent,
+        BSTR bstrFolderName,
+        BSTR bstrFilename,
+        LONG *plNumFiles,
+        BSTR **ppbstrFilePaths,
+        IWiaItem2 **ppItem) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaDevMgr2, 0x79c07cf1, 0xcbdd, 0x41ee, 0x8e,0xc3, 0xf0,0x00,0x80,0xca,0xda,0x7a)
+#endif
+#else
+typedef struct IWiaDevMgr2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaDevMgr2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaDevMgr2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaDevMgr2 *This);
+
+    /*** IWiaDevMgr2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *EnumDeviceInfo)(
+        IWiaDevMgr2 *This,
+        LONG lFlags,
+        IEnumWIA_DEV_INFO **ppIEnum);
+
+    HRESULT (STDMETHODCALLTYPE *CreateDevice)(
+        IWiaDevMgr2 *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        IWiaItem2 **ppWiaItem2Root);
+
+    HRESULT (STDMETHODCALLTYPE *SelectDeviceDlg)(
+        IWiaDevMgr2 *This,
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID,
+        IWiaItem2 **ppItemRoot);
+
+    HRESULT (STDMETHODCALLTYPE *SelectDeviceDlgID)(
+        IWiaDevMgr2 *This,
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackInterface)(
+        IWiaDevMgr2 *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        IWiaEventCallback *pIWiaEventCallback,
+        IUnknown **pEventObject);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackProgram)(
+        IWiaDevMgr2 *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        BSTR bstrFullAppName,
+        BSTR bstrCommandLineArg,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackCLSID)(
+        IWiaDevMgr2 *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        const GUID *pClsID,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon);
+
+    HRESULT (STDMETHODCALLTYPE *GetImageDlg)(
+        IWiaDevMgr2 *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        HWND hwndParent,
+        BSTR bstrFolderName,
+        BSTR bstrFilename,
+        LONG *plNumFiles,
+        BSTR **ppbstrFilePaths,
+        IWiaItem2 **ppItem);
+
+    END_INTERFACE
+} IWiaDevMgr2Vtbl;
+
+interface IWiaDevMgr2 {
+    CONST_VTBL IWiaDevMgr2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaDevMgr2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaDevMgr2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaDevMgr2_Release(This) (This)->lpVtbl->Release(This)
+/*** IWiaDevMgr2 methods ***/
+#define IWiaDevMgr2_EnumDeviceInfo(This,lFlags,ppIEnum) (This)->lpVtbl->EnumDeviceInfo(This,lFlags,ppIEnum)
+#define IWiaDevMgr2_CreateDevice(This,lFlags,bstrDeviceID,ppWiaItem2Root) (This)->lpVtbl->CreateDevice(This,lFlags,bstrDeviceID,ppWiaItem2Root)
+#define IWiaDevMgr2_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot) (This)->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
+#define IWiaDevMgr2_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID) (This)->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
+#define IWiaDevMgr2_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject) (This)->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
+#define IWiaDevMgr2_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrFullAppName,bstrCommandLineArg,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrFullAppName,bstrCommandLineArg,bstrName,bstrDescription,bstrIcon)
+#define IWiaDevMgr2_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
+#define IWiaDevMgr2_GetImageDlg(This,lFlags,bstrDeviceID,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem) (This)->lpVtbl->GetImageDlg(This,lFlags,bstrDeviceID,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaDevMgr2_QueryInterface(IWiaDevMgr2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaDevMgr2_AddRef(IWiaDevMgr2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaDevMgr2_Release(IWiaDevMgr2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWiaDevMgr2 methods ***/
+static inline HRESULT IWiaDevMgr2_EnumDeviceInfo(IWiaDevMgr2* This,LONG lFlags,IEnumWIA_DEV_INFO **ppIEnum) {
+    return This->lpVtbl->EnumDeviceInfo(This,lFlags,ppIEnum);
+}
+static inline HRESULT IWiaDevMgr2_CreateDevice(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,IWiaItem2 **ppWiaItem2Root) {
+    return This->lpVtbl->CreateDevice(This,lFlags,bstrDeviceID,ppWiaItem2Root);
+}
+static inline HRESULT IWiaDevMgr2_SelectDeviceDlg(IWiaDevMgr2* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem2 **ppItemRoot) {
+    return This->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot);
+}
+static inline HRESULT IWiaDevMgr2_SelectDeviceDlgID(IWiaDevMgr2* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID) {
+    return This->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID);
+}
+static inline HRESULT IWiaDevMgr2_RegisterEventCallbackInterface(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject) {
+    return This->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject);
+}
+static inline HRESULT IWiaDevMgr2_RegisterEventCallbackProgram(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrFullAppName,BSTR bstrCommandLineArg,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
+    return This->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrFullAppName,bstrCommandLineArg,bstrName,bstrDescription,bstrIcon);
+}
+static inline HRESULT IWiaDevMgr2_RegisterEventCallbackCLSID(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
+    return This->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon);
+}
+static inline HRESULT IWiaDevMgr2_GetImageDlg(IWiaDevMgr2* This,LONG lFlags,BSTR bstrDeviceID,HWND hwndParent,BSTR bstrFolderName,BSTR bstrFilename,LONG *plNumFiles,BSTR **ppbstrFilePaths,IWiaItem2 **ppItem) {
+    return This->lpVtbl->GetImageDlg(This,lFlags,bstrDeviceID,hwndParent,bstrFolderName,bstrFilename,plNumFiles,ppbstrFilePaths,ppItem);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaDevMgr2_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * WiaDevMgr2 coclass
+ */
+
+DEFINE_GUID(CLSID_WiaDevMgr2, 0xb6c292bc, 0x7c88, 0x41ee, 0x8b,0x54, 0x8e,0xc9,0x26,0x17,0xe5,0x99);
+
+#ifdef __cplusplus
+class DECLSPEC_UUID("b6c292bc-7c88-41ee-8b54-8ec92617e599") WiaDevMgr2;
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(WiaDevMgr2, 0xb6c292bc, 0x7c88, 0x41ee, 0x8b,0x54, 0x8e,0xc9,0x26,0x17,0xe5,0x99)
+#endif
+#endif
+
+/* 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 *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __wia_lh_h__ */
lib/libc/include/any-windows-any/wia_xp.h
@@ -0,0 +1,692 @@
+/*** Autogenerated by WIDL 10.0-rc1 from include/wia_xp.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 __wia_xp_h__
+#define __wia_xp_h__
+
+/* Forward declarations */
+
+#ifndef __IWiaDevMgr_FWD_DEFINED__
+#define __IWiaDevMgr_FWD_DEFINED__
+typedef interface IWiaDevMgr IWiaDevMgr;
+#ifdef __cplusplus
+interface IWiaDevMgr;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
+#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
+typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
+#ifdef __cplusplus
+interface IEnumWIA_DEV_INFO;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaPropertyStorage_FWD_DEFINED__
+#define __IWiaPropertyStorage_FWD_DEFINED__
+typedef interface IWiaPropertyStorage IWiaPropertyStorage;
+#ifdef __cplusplus
+interface IWiaPropertyStorage;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaItem_FWD_DEFINED__
+#define __IWiaItem_FWD_DEFINED__
+typedef interface IWiaItem IWiaItem;
+#ifdef __cplusplus
+interface IWiaItem;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaEventCallback_FWD_DEFINED__
+#define __IWiaEventCallback_FWD_DEFINED__
+typedef interface IWiaEventCallback IWiaEventCallback;
+#ifdef __cplusplus
+interface IWiaEventCallback;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+#include <oaidl.h>
+#include <propidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <wiadef.h>
+#ifndef __IEnumWIA_DEV_INFO_FWD_DEFINED__
+#define __IEnumWIA_DEV_INFO_FWD_DEFINED__
+typedef interface IEnumWIA_DEV_INFO IEnumWIA_DEV_INFO;
+#ifdef __cplusplus
+interface IEnumWIA_DEV_INFO;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaPropertyStorage_FWD_DEFINED__
+#define __IWiaPropertyStorage_FWD_DEFINED__
+typedef interface IWiaPropertyStorage IWiaPropertyStorage;
+#ifdef __cplusplus
+interface IWiaPropertyStorage;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaItem_FWD_DEFINED__
+#define __IWiaItem_FWD_DEFINED__
+typedef interface IWiaItem IWiaItem;
+#ifdef __cplusplus
+interface IWiaItem;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __IWiaEventCallback_FWD_DEFINED__
+#define __IWiaEventCallback_FWD_DEFINED__
+typedef interface IWiaEventCallback IWiaEventCallback;
+#ifdef __cplusplus
+interface IWiaEventCallback;
+#endif /* __cplusplus */
+#endif
+
+DEFINE_GUID(CLSID_WiaDevMgr, 0xa1f4e726,0x8cf1,0x11d1,0xbf,0x92,0x00,0x60,0x08,0x1e,0xd8,0x11);
+/*****************************************************************************
+ * IWiaDevMgr interface
+ */
+#ifndef __IWiaDevMgr_INTERFACE_DEFINED__
+#define __IWiaDevMgr_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5eb2502a-8cf1-11d1-bf92-0060081ed811")
+IWiaDevMgr : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE EnumDeviceInfo(
+        LONG lFlag,
+        IEnumWIA_DEV_INFO **ppIEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateDevice(
+        BSTR bstrDeviceID,
+        IWiaItem **ppWiaItemRoot) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlg(
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID,
+        IWiaItem **ppItemRoot) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SelectDeviceDlgID(
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetImageDlg(
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        LONG lIntent,
+        IWiaItem *pItemRoot,
+        BSTR bstrFilename,
+        GUID *pguidFormat) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackProgram(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        BSTR bstrCommandline,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackInterface(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        IWiaEventCallback *pIWiaEventCallback,
+        IUnknown **pEventObject) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RegisterEventCallbackCLSID(
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        const GUID *pClsID,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddDeviceDlg(
+        HWND hwndParent,
+        LONG lFlags) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaDevMgr, 0x5eb2502a, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11)
+#endif
+#else
+typedef struct IWiaDevMgrVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaDevMgr *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaDevMgr *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaDevMgr *This);
+
+    /*** IWiaDevMgr methods ***/
+    HRESULT (STDMETHODCALLTYPE *EnumDeviceInfo)(
+        IWiaDevMgr *This,
+        LONG lFlag,
+        IEnumWIA_DEV_INFO **ppIEnum);
+
+    HRESULT (STDMETHODCALLTYPE *CreateDevice)(
+        IWiaDevMgr *This,
+        BSTR bstrDeviceID,
+        IWiaItem **ppWiaItemRoot);
+
+    HRESULT (STDMETHODCALLTYPE *SelectDeviceDlg)(
+        IWiaDevMgr *This,
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID,
+        IWiaItem **ppItemRoot);
+
+    HRESULT (STDMETHODCALLTYPE *SelectDeviceDlgID)(
+        IWiaDevMgr *This,
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        BSTR *pbstrDeviceID);
+
+    HRESULT (STDMETHODCALLTYPE *GetImageDlg)(
+        IWiaDevMgr *This,
+        HWND hwndParent,
+        LONG lDeviceType,
+        LONG lFlags,
+        LONG lIntent,
+        IWiaItem *pItemRoot,
+        BSTR bstrFilename,
+        GUID *pguidFormat);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackProgram)(
+        IWiaDevMgr *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        BSTR bstrCommandline,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackInterface)(
+        IWiaDevMgr *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        IWiaEventCallback *pIWiaEventCallback,
+        IUnknown **pEventObject);
+
+    HRESULT (STDMETHODCALLTYPE *RegisterEventCallbackCLSID)(
+        IWiaDevMgr *This,
+        LONG lFlags,
+        BSTR bstrDeviceID,
+        const GUID *pEventGUID,
+        const GUID *pClsID,
+        BSTR bstrName,
+        BSTR bstrDescription,
+        BSTR bstrIcon);
+
+    HRESULT (STDMETHODCALLTYPE *AddDeviceDlg)(
+        IWiaDevMgr *This,
+        HWND hwndParent,
+        LONG lFlags);
+
+    END_INTERFACE
+} IWiaDevMgrVtbl;
+
+interface IWiaDevMgr {
+    CONST_VTBL IWiaDevMgrVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaDevMgr_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaDevMgr_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaDevMgr_Release(This) (This)->lpVtbl->Release(This)
+/*** IWiaDevMgr methods ***/
+#define IWiaDevMgr_EnumDeviceInfo(This,lFlag,ppIEnum) (This)->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum)
+#define IWiaDevMgr_CreateDevice(This,bstrDeviceID,ppWiaItemRoot) (This)->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot)
+#define IWiaDevMgr_SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot) (This)->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot)
+#define IWiaDevMgr_SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID) (This)->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID)
+#define IWiaDevMgr_GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat) (This)->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat)
+#define IWiaDevMgr_RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon)
+#define IWiaDevMgr_RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject) (This)->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject)
+#define IWiaDevMgr_RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon) (This)->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon)
+#define IWiaDevMgr_AddDeviceDlg(This,hwndParent,lFlags) (This)->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaDevMgr_QueryInterface(IWiaDevMgr* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaDevMgr_AddRef(IWiaDevMgr* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaDevMgr_Release(IWiaDevMgr* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWiaDevMgr methods ***/
+static inline HRESULT IWiaDevMgr_EnumDeviceInfo(IWiaDevMgr* This,LONG lFlag,IEnumWIA_DEV_INFO **ppIEnum) {
+    return This->lpVtbl->EnumDeviceInfo(This,lFlag,ppIEnum);
+}
+static inline HRESULT IWiaDevMgr_CreateDevice(IWiaDevMgr* This,BSTR bstrDeviceID,IWiaItem **ppWiaItemRoot) {
+    return This->lpVtbl->CreateDevice(This,bstrDeviceID,ppWiaItemRoot);
+}
+static inline HRESULT IWiaDevMgr_SelectDeviceDlg(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID,IWiaItem **ppItemRoot) {
+    return This->lpVtbl->SelectDeviceDlg(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID,ppItemRoot);
+}
+static inline HRESULT IWiaDevMgr_SelectDeviceDlgID(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,BSTR *pbstrDeviceID) {
+    return This->lpVtbl->SelectDeviceDlgID(This,hwndParent,lDeviceType,lFlags,pbstrDeviceID);
+}
+static inline HRESULT IWiaDevMgr_GetImageDlg(IWiaDevMgr* This,HWND hwndParent,LONG lDeviceType,LONG lFlags,LONG lIntent,IWiaItem *pItemRoot,BSTR bstrFilename,GUID *pguidFormat) {
+    return This->lpVtbl->GetImageDlg(This,hwndParent,lDeviceType,lFlags,lIntent,pItemRoot,bstrFilename,pguidFormat);
+}
+static inline HRESULT IWiaDevMgr_RegisterEventCallbackProgram(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,BSTR bstrCommandline,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
+    return This->lpVtbl->RegisterEventCallbackProgram(This,lFlags,bstrDeviceID,pEventGUID,bstrCommandline,bstrName,bstrDescription,bstrIcon);
+}
+static inline HRESULT IWiaDevMgr_RegisterEventCallbackInterface(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,IWiaEventCallback *pIWiaEventCallback,IUnknown **pEventObject) {
+    return This->lpVtbl->RegisterEventCallbackInterface(This,lFlags,bstrDeviceID,pEventGUID,pIWiaEventCallback,pEventObject);
+}
+static inline HRESULT IWiaDevMgr_RegisterEventCallbackCLSID(IWiaDevMgr* This,LONG lFlags,BSTR bstrDeviceID,const GUID *pEventGUID,const GUID *pClsID,BSTR bstrName,BSTR bstrDescription,BSTR bstrIcon) {
+    return This->lpVtbl->RegisterEventCallbackCLSID(This,lFlags,bstrDeviceID,pEventGUID,pClsID,bstrName,bstrDescription,bstrIcon);
+}
+static inline HRESULT IWiaDevMgr_AddDeviceDlg(IWiaDevMgr* This,HWND hwndParent,LONG lFlags) {
+    return This->lpVtbl->AddDeviceDlg(This,hwndParent,lFlags);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaDevMgr_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IEnumWIA_DEV_INFO interface
+ */
+#ifndef __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
+#define __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5e38b83c-8cf1-11d1-bf92-0060081ed811")
+IEnumWIA_DEV_INFO : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        ULONG celt,
+        IWiaPropertyStorage **rgelt,
+        ULONG *pceltFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG celt) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumWIA_DEV_INFO **ppIEnum) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCount(
+        ULONG *celt) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IEnumWIA_DEV_INFO, 0x5e38b83c, 0x8cf1, 0x11d1, 0xbf,0x92, 0x00,0x60,0x08,0x1e,0xd8,0x11)
+#endif
+#else
+typedef struct IEnumWIA_DEV_INFOVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumWIA_DEV_INFO *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumWIA_DEV_INFO *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumWIA_DEV_INFO *This);
+
+    /*** IEnumWIA_DEV_INFO methods ***/
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumWIA_DEV_INFO *This,
+        ULONG celt,
+        IWiaPropertyStorage **rgelt,
+        ULONG *pceltFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumWIA_DEV_INFO *This,
+        ULONG celt);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumWIA_DEV_INFO *This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumWIA_DEV_INFO *This,
+        IEnumWIA_DEV_INFO **ppIEnum);
+
+    HRESULT (STDMETHODCALLTYPE *GetCount)(
+        IEnumWIA_DEV_INFO *This,
+        ULONG *celt);
+
+    END_INTERFACE
+} IEnumWIA_DEV_INFOVtbl;
+
+interface IEnumWIA_DEV_INFO {
+    CONST_VTBL IEnumWIA_DEV_INFOVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IEnumWIA_DEV_INFO_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IEnumWIA_DEV_INFO_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IEnumWIA_DEV_INFO_Release(This) (This)->lpVtbl->Release(This)
+/*** IEnumWIA_DEV_INFO methods ***/
+#define IEnumWIA_DEV_INFO_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
+#define IEnumWIA_DEV_INFO_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
+#define IEnumWIA_DEV_INFO_Reset(This) (This)->lpVtbl->Reset(This)
+#define IEnumWIA_DEV_INFO_Clone(This,ppIEnum) (This)->lpVtbl->Clone(This,ppIEnum)
+#define IEnumWIA_DEV_INFO_GetCount(This,celt) (This)->lpVtbl->GetCount(This,celt)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IEnumWIA_DEV_INFO_QueryInterface(IEnumWIA_DEV_INFO* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IEnumWIA_DEV_INFO_AddRef(IEnumWIA_DEV_INFO* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IEnumWIA_DEV_INFO_Release(IEnumWIA_DEV_INFO* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IEnumWIA_DEV_INFO methods ***/
+static inline HRESULT IEnumWIA_DEV_INFO_Next(IEnumWIA_DEV_INFO* This,ULONG celt,IWiaPropertyStorage **rgelt,ULONG *pceltFetched) {
+    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
+}
+static inline HRESULT IEnumWIA_DEV_INFO_Skip(IEnumWIA_DEV_INFO* This,ULONG celt) {
+    return This->lpVtbl->Skip(This,celt);
+}
+static inline HRESULT IEnumWIA_DEV_INFO_Reset(IEnumWIA_DEV_INFO* This) {
+    return This->lpVtbl->Reset(This);
+}
+static inline HRESULT IEnumWIA_DEV_INFO_Clone(IEnumWIA_DEV_INFO* This,IEnumWIA_DEV_INFO **ppIEnum) {
+    return This->lpVtbl->Clone(This,ppIEnum);
+}
+static inline HRESULT IEnumWIA_DEV_INFO_GetCount(IEnumWIA_DEV_INFO* This,ULONG *celt) {
+    return This->lpVtbl->GetCount(This,celt);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IEnumWIA_DEV_INFO_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWiaPropertyStorage interface
+ */
+#ifndef __IWiaPropertyStorage_INTERFACE_DEFINED__
+#define __IWiaPropertyStorage_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("98b5e8a0-29cc-491a-aac0-e6db4fdcceb6")
+IWiaPropertyStorage : public IUnknown
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaPropertyStorage, 0x98b5e8a0, 0x29cc, 0x491a, 0xaa,0xc0, 0xe6,0xdb,0x4f,0xdc,0xce,0xb6)
+#endif
+#else
+typedef struct IWiaPropertyStorageVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaPropertyStorage *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaPropertyStorage *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaPropertyStorage *This);
+
+    END_INTERFACE
+} IWiaPropertyStorageVtbl;
+
+interface IWiaPropertyStorage {
+    CONST_VTBL IWiaPropertyStorageVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaPropertyStorage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaPropertyStorage_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaPropertyStorage_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaPropertyStorage_QueryInterface(IWiaPropertyStorage* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaPropertyStorage_AddRef(IWiaPropertyStorage* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaPropertyStorage_Release(IWiaPropertyStorage* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaPropertyStorage_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWiaItem interface
+ */
+#ifndef __IWiaItem_INTERFACE_DEFINED__
+#define __IWiaItem_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("4db1ad10-3391-11d2-9a33-00c04fa36145")
+IWiaItem : public IUnknown
+{
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaItem, 0x4db1ad10, 0x3391, 0x11d2, 0x9a,0x33, 0x00,0xc0,0x4f,0xa3,0x61,0x45)
+#endif
+#else
+typedef struct IWiaItemVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaItem *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaItem *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaItem *This);
+
+    END_INTERFACE
+} IWiaItemVtbl;
+
+interface IWiaItem {
+    CONST_VTBL IWiaItemVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaItem_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaItem_QueryInterface(IWiaItem* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaItem_AddRef(IWiaItem* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaItem_Release(IWiaItem* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaItem_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IWiaEventCallback interface
+ */
+#ifndef __IWiaEventCallback_INTERFACE_DEFINED__
+#define __IWiaEventCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("ae6287b0-0084-11d2-973b-00a0c9068f2e")
+IWiaEventCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ImageEventCallback(
+        const GUID *pEventGUID,
+        BSTR bstrEventDescription,
+        BSTR bstrDeviceID,
+        BSTR bstrDeviceDescription,
+        DWORD dwDeviceType,
+        BSTR bstrFullItemName,
+        ULONG *pulEventType,
+        ULONG ulReserved) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWiaEventCallback, 0xae6287b0, 0x0084, 0x11d2, 0x97,0x3b, 0x00,0xa0,0xc9,0x06,0x8f,0x2e)
+#endif
+#else
+typedef struct IWiaEventCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWiaEventCallback *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWiaEventCallback *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWiaEventCallback *This);
+
+    /*** IWiaEventCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *ImageEventCallback)(
+        IWiaEventCallback *This,
+        const GUID *pEventGUID,
+        BSTR bstrEventDescription,
+        BSTR bstrDeviceID,
+        BSTR bstrDeviceDescription,
+        DWORD dwDeviceType,
+        BSTR bstrFullItemName,
+        ULONG *pulEventType,
+        ULONG ulReserved);
+
+    END_INTERFACE
+} IWiaEventCallbackVtbl;
+
+interface IWiaEventCallback {
+    CONST_VTBL IWiaEventCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWiaEventCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWiaEventCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWiaEventCallback_Release(This) (This)->lpVtbl->Release(This)
+/*** IWiaEventCallback methods ***/
+#define IWiaEventCallback_ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved) (This)->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT IWiaEventCallback_QueryInterface(IWiaEventCallback* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG IWiaEventCallback_AddRef(IWiaEventCallback* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG IWiaEventCallback_Release(IWiaEventCallback* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWiaEventCallback methods ***/
+static inline HRESULT IWiaEventCallback_ImageEventCallback(IWiaEventCallback* This,const GUID *pEventGUID,BSTR bstrEventDescription,BSTR bstrDeviceID,BSTR bstrDeviceDescription,DWORD dwDeviceType,BSTR bstrFullItemName,ULONG *pulEventType,ULONG ulReserved) {
+    return This->lpVtbl->ImageEventCallback(This,pEventGUID,bstrEventDescription,bstrDeviceID,bstrDeviceDescription,dwDeviceType,bstrFullItemName,pulEventType,ulReserved);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWiaEventCallback_INTERFACE_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 *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __wia_xp_h__ */
lib/libc/include/any-windows-any/wiadef.h
@@ -12,10 +12,6 @@
 #include <objbase.h>
 #endif
 
-#ifndef __wia_h__
-#error Please include in front wia.h instead.
-#endif
-
 #ifdef __cplusplus
 extern "C" {
 #endif
lib/libc/include/any-windows-any/wincodec.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wincodec.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wincodec.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wincodecsdk.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wincodecsdk.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wincodecsdk.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wincon.h
@@ -3,422 +3,35 @@
  * This file is part of the mingw-w64 runtime package.
  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  */
+
 #ifndef _WINCON_
 #define _WINCON_
 
-#include <_mingw_unicode.h>
-
 #include <winapifamily.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#define CONSOLE_REAL_OUTPUT_HANDLE (LongToHandle(-2))
-#define CONSOLE_REAL_INPUT_HANDLE (LongToHandle(-3))
-
-  typedef struct _COORD {
-    SHORT X;
-    SHORT Y;
-  } COORD,*PCOORD;
-
-  typedef struct _SMALL_RECT {
-    SHORT Left;
-    SHORT Top;
-    SHORT Right;
-    SHORT Bottom;
-  } SMALL_RECT,*PSMALL_RECT;
-
-  typedef struct _KEY_EVENT_RECORD {
-    WINBOOL bKeyDown;
-    WORD wRepeatCount;
-    WORD wVirtualKeyCode;
-    WORD wVirtualScanCode;
-    union {
-      WCHAR UnicodeChar;
-      CHAR AsciiChar;
-    } uChar;
-    DWORD dwControlKeyState;
-  } KEY_EVENT_RECORD,*PKEY_EVENT_RECORD;
-
-#define RIGHT_ALT_PRESSED 0x1
-#define LEFT_ALT_PRESSED 0x2
-#define RIGHT_CTRL_PRESSED 0x4
-#define LEFT_CTRL_PRESSED 0x8
-#define SHIFT_PRESSED 0x10
-#define NUMLOCK_ON 0x20
-#define SCROLLLOCK_ON 0x40
-#define CAPSLOCK_ON 0x80
-#define ENHANCED_KEY 0x100
-#define NLS_DBCSCHAR 0x10000
-#define NLS_ALPHANUMERIC 0x0
-#define NLS_KATAKANA 0x20000
-#define NLS_HIRAGANA 0x40000
-#define NLS_ROMAN 0x400000
-#define NLS_IME_CONVERSION 0x800000
-#define ALTNUMPAD_BIT 0x4000000
-#define NLS_IME_DISABLE 0x20000000
-
-  typedef struct _MOUSE_EVENT_RECORD {
-    COORD dwMousePosition;
-    DWORD dwButtonState;
-    DWORD dwControlKeyState;
-    DWORD dwEventFlags;
-  } MOUSE_EVENT_RECORD,*PMOUSE_EVENT_RECORD;
+#include <wincontypes.h>
 
-#define FROM_LEFT_1ST_BUTTON_PRESSED 0x1
-#define RIGHTMOST_BUTTON_PRESSED 0x2
-#define FROM_LEFT_2ND_BUTTON_PRESSED 0x4
-#define FROM_LEFT_3RD_BUTTON_PRESSED 0x8
-#define FROM_LEFT_4TH_BUTTON_PRESSED 0x10
-
-#define MOUSE_MOVED 0x1
-#define DOUBLE_CLICK 0x2
-#define MOUSE_WHEELED 0x4
-#if (_WIN32_WINNT >= 0x0600)
-#define MOUSE_HWHEELED 0x8
+#ifndef NOGDI
+#include <wingdi.h>
 #endif
 
-  typedef struct _WINDOW_BUFFER_SIZE_RECORD {
-    COORD dwSize;
-  } WINDOW_BUFFER_SIZE_RECORD,*PWINDOW_BUFFER_SIZE_RECORD;
-
-  typedef struct _MENU_EVENT_RECORD {
-    UINT dwCommandId;
-  } MENU_EVENT_RECORD,*PMENU_EVENT_RECORD;
-
-  typedef struct _FOCUS_EVENT_RECORD {
-    WINBOOL bSetFocus;
-  } FOCUS_EVENT_RECORD,*PFOCUS_EVENT_RECORD;
-
-  typedef struct _INPUT_RECORD {
-    WORD EventType;
-    union {
-      KEY_EVENT_RECORD KeyEvent;
-      MOUSE_EVENT_RECORD MouseEvent;
-      WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
-      MENU_EVENT_RECORD MenuEvent;
-      FOCUS_EVENT_RECORD FocusEvent;
-    } Event;
-  } INPUT_RECORD,*PINPUT_RECORD;
-
-#define KEY_EVENT 0x1
-#define MOUSE_EVENT 0x2
-#define WINDOW_BUFFER_SIZE_EVENT 0x4
-#define MENU_EVENT 0x8
-#define FOCUS_EVENT 0x10
-
-  typedef struct _CHAR_INFO {
-    union {
-      WCHAR UnicodeChar;
-      CHAR AsciiChar;
-    } Char;
-    WORD Attributes;
-  } CHAR_INFO,*PCHAR_INFO;
-
-#define FOREGROUND_BLUE 0x1
-#define FOREGROUND_GREEN 0x2
-#define FOREGROUND_RED 0x4
-#define FOREGROUND_INTENSITY 0x8
-#define BACKGROUND_BLUE 0x10
-#define BACKGROUND_GREEN 0x20
-#define BACKGROUND_RED 0x40
-#define BACKGROUND_INTENSITY 0x80
-#define COMMON_LVB_LEADING_BYTE 0x100
-#define COMMON_LVB_TRAILING_BYTE 0x200
-#define COMMON_LVB_GRID_HORIZONTAL 0x400
-#define COMMON_LVB_GRID_LVERTICAL 0x800
-#define COMMON_LVB_GRID_RVERTICAL 0x1000
-#define COMMON_LVB_REVERSE_VIDEO 0x4000
-#define COMMON_LVB_UNDERSCORE 0x8000
-
-#define COMMON_LVB_SBCSDBCS 0x300
-
-  typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
-    COORD dwSize;
-    COORD dwCursorPosition;
-    WORD wAttributes;
-    SMALL_RECT srWindow;
-    COORD dwMaximumWindowSize;
-  } CONSOLE_SCREEN_BUFFER_INFO,*PCONSOLE_SCREEN_BUFFER_INFO;
-
-  typedef struct _CONSOLE_CURSOR_INFO {
-    DWORD dwSize;
-    WINBOOL bVisible;
-  } CONSOLE_CURSOR_INFO,*PCONSOLE_CURSOR_INFO;
-
-  typedef struct _CONSOLE_FONT_INFO {
-    DWORD nFont;
-    COORD dwFontSize;
-  } CONSOLE_FONT_INFO,*PCONSOLE_FONT_INFO;
-
-  typedef struct _CONSOLE_SELECTION_INFO {
-    DWORD dwFlags;
-    COORD dwSelectionAnchor;
-    SMALL_RECT srSelection;
-  } CONSOLE_SELECTION_INFO,*PCONSOLE_SELECTION_INFO;
-
-#define CONSOLE_NO_SELECTION 0x0
-#define CONSOLE_SELECTION_IN_PROGRESS 0x1
-#define CONSOLE_SELECTION_NOT_EMPTY 0x2
-#define CONSOLE_MOUSE_SELECTION 0x4
-#define CONSOLE_MOUSE_DOWN 0x8
-
-  typedef WINBOOL (WINAPI *PHANDLER_ROUTINE)(DWORD CtrlType);
-
-#define CTRL_C_EVENT 0
-#define CTRL_BREAK_EVENT 1
-#define CTRL_CLOSE_EVENT 2
-
-#define CTRL_LOGOFF_EVENT 5
-#define CTRL_SHUTDOWN_EVENT 6
-
-#define ENABLE_PROCESSED_INPUT 0x1
-#define ENABLE_LINE_INPUT 0x2
-#define ENABLE_ECHO_INPUT 0x4
-#define ENABLE_WINDOW_INPUT 0x8
-#define ENABLE_MOUSE_INPUT 0x10
-#define ENABLE_INSERT_MODE 0x20
-#define ENABLE_QUICK_EDIT_MODE 0x40
-#define ENABLE_EXTENDED_FLAGS 0x80
-#define ENABLE_AUTO_POSITION 0x100
-#define ENABLE_VIRTUAL_TERMINAL_INPUT 0x200
-
-#define ENABLE_PROCESSED_OUTPUT 0x1
-#define ENABLE_WRAP_AT_EOL_OUTPUT 0x2
-#define ENABLE_VIRTUAL_TERMINAL_PROCESSING 0x4
-#define DISABLE_NEWLINE_AUTO_RETURN 0x8
-#define ENABLE_LVB_GRID_WORLDWIDE 0x10
-
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
-
-#define PeekConsoleInput __MINGW_NAME_AW(PeekConsoleInput)
-#define ReadConsoleInput __MINGW_NAME_AW(ReadConsoleInput)
-#define WriteConsoleInput __MINGW_NAME_AW(WriteConsoleInput)
-#define ReadConsoleOutput __MINGW_NAME_AW(ReadConsoleOutput)
-#define WriteConsoleOutput __MINGW_NAME_AW(WriteConsoleOutput)
-#define ReadConsoleOutputCharacter __MINGW_NAME_AW(ReadConsoleOutputCharacter)
-#define WriteConsoleOutputCharacter __MINGW_NAME_AW(WriteConsoleOutputCharacter)
-#define FillConsoleOutputCharacter __MINGW_NAME_AW(FillConsoleOutputCharacter)
-#define ScrollConsoleScreenBuffer __MINGW_NAME_AW(ScrollConsoleScreenBuffer)
-#define GetConsoleTitle __MINGW_NAME_AW(GetConsoleTitle)
-#define SetConsoleTitle __MINGW_NAME_AW(SetConsoleTitle)
-#define ReadConsole __MINGW_NAME_AW(ReadConsole)
-#define WriteConsole __MINGW_NAME_AW(WriteConsole)
-#define AddConsoleAlias __MINGW_NAME_AW(AddConsoleAlias)
-#define GetConsoleAlias __MINGW_NAME_AW(GetConsoleAlias)
-#define GetConsoleAliasesLength __MINGW_NAME_AW(GetConsoleAliasesLength)
-#define GetConsoleAliasExesLength __MINGW_NAME_AW(GetConsoleAliasExesLength)
-#define GetConsoleAliases __MINGW_NAME_AW(GetConsoleAliases)
-#define GetConsoleAliasExes __MINGW_NAME_AW(GetConsoleAliasExes)
-
-  WINBASEAPI WINBOOL WINAPI PeekConsoleInputA(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
-  WINBASEAPI WINBOOL WINAPI PeekConsoleInputW(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
-  WINBASEAPI WINBOOL WINAPI ReadConsoleInputA(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
-  WINBASEAPI WINBOOL WINAPI ReadConsoleInputW(HANDLE hConsoleInput,PINPUT_RECORD lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsRead);
-  WINBASEAPI WINBOOL WINAPI WriteConsoleInputA(HANDLE hConsoleInput,CONST INPUT_RECORD *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsWritten);
-  WINBASEAPI WINBOOL WINAPI WriteConsoleInputW(HANDLE hConsoleInput,CONST INPUT_RECORD *lpBuffer,DWORD nLength,LPDWORD lpNumberOfEventsWritten);
-  WINBASEAPI WINBOOL WINAPI ReadConsoleOutputA(HANDLE hConsoleOutput,PCHAR_INFO lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpReadRegion);
-  WINBASEAPI WINBOOL WINAPI ReadConsoleOutputW(HANDLE hConsoleOutput,PCHAR_INFO lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpReadRegion);
-  WINBASEAPI WINBOOL WINAPI WriteConsoleOutputA(HANDLE hConsoleOutput,CONST CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpWriteRegion);
-  WINBASEAPI WINBOOL WINAPI WriteConsoleOutputW(HANDLE hConsoleOutput,CONST CHAR_INFO *lpBuffer,COORD dwBufferSize,COORD dwBufferCoord,PSMALL_RECT lpWriteRegion);
-  WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterA(HANDLE hConsoleOutput,LPSTR lpCharacter,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfCharsRead);
-  WINBASEAPI WINBOOL WINAPI ReadConsoleOutputCharacterW(HANDLE hConsoleOutput,LPWSTR lpCharacter,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfCharsRead);
-  WINBASEAPI WINBOOL WINAPI ReadConsoleOutputAttribute(HANDLE hConsoleOutput,LPWORD lpAttribute,DWORD nLength,COORD dwReadCoord,LPDWORD lpNumberOfAttrsRead);
-  WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterA(HANDLE hConsoleOutput,LPCSTR lpCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
-  WINBASEAPI WINBOOL WINAPI WriteConsoleOutputCharacterW(HANDLE hConsoleOutput,LPCWSTR lpCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
-  WINBASEAPI WINBOOL WINAPI WriteConsoleOutputAttribute(HANDLE hConsoleOutput,CONST WORD *lpAttribute,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfAttrsWritten);
-  WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterA(HANDLE hConsoleOutput,CHAR cCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
-  WINBASEAPI WINBOOL WINAPI FillConsoleOutputCharacterW(HANDLE hConsoleOutput,WCHAR cCharacter,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfCharsWritten);
-  WINBASEAPI WINBOOL WINAPI FillConsoleOutputAttribute(HANDLE hConsoleOutput,WORD wAttribute,DWORD nLength,COORD dwWriteCoord,LPDWORD lpNumberOfAttrsWritten);
-  WINBASEAPI WINBOOL WINAPI GetConsoleMode(HANDLE hConsoleHandle,LPDWORD lpMode);
-  WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleInputEvents(HANDLE hConsoleInput,LPDWORD lpNumberOfEvents);
-  WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfo(HANDLE hConsoleOutput,PCONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
-  WINBASEAPI COORD WINAPI GetLargestConsoleWindowSize(HANDLE hConsoleOutput);
-  WINBASEAPI WINBOOL WINAPI GetConsoleCursorInfo(HANDLE hConsoleOutput,PCONSOLE_CURSOR_INFO lpConsoleCursorInfo);
-  WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFont(HANDLE hConsoleOutput,WINBOOL bMaximumWindow,PCONSOLE_FONT_INFO lpConsoleCurrentFont);
-  WINBASEAPI COORD WINAPI GetConsoleFontSize(HANDLE hConsoleOutput,DWORD nFont);
-  WINBASEAPI WINBOOL WINAPI GetConsoleSelectionInfo(PCONSOLE_SELECTION_INFO lpConsoleSelectionInfo);
-  WINBASEAPI WINBOOL WINAPI GetNumberOfConsoleMouseButtons(LPDWORD lpNumberOfMouseButtons);
-  WINBASEAPI WINBOOL WINAPI SetConsoleMode(HANDLE hConsoleHandle,DWORD dwMode);
-  WINBASEAPI WINBOOL WINAPI SetConsoleActiveScreenBuffer(HANDLE hConsoleOutput);
-  WINBASEAPI WINBOOL WINAPI FlushConsoleInputBuffer(HANDLE hConsoleInput);
-  WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferSize(HANDLE hConsoleOutput,COORD dwSize);
-  WINBASEAPI WINBOOL WINAPI SetConsoleCursorPosition(HANDLE hConsoleOutput,COORD dwCursorPosition);
-  WINBASEAPI WINBOOL WINAPI SetConsoleCursorInfo(HANDLE hConsoleOutput,CONST CONSOLE_CURSOR_INFO *lpConsoleCursorInfo);
-  WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferA(HANDLE hConsoleOutput,CONST SMALL_RECT *lpScrollRectangle,CONST SMALL_RECT *lpClipRectangle,COORD dwDestinationOrigin,CONST CHAR_INFO *lpFill);
-  WINBASEAPI WINBOOL WINAPI ScrollConsoleScreenBufferW(HANDLE hConsoleOutput,CONST SMALL_RECT *lpScrollRectangle,CONST SMALL_RECT *lpClipRectangle,COORD dwDestinationOrigin,CONST CHAR_INFO *lpFill);
-  WINBASEAPI WINBOOL WINAPI SetConsoleWindowInfo(HANDLE hConsoleOutput,WINBOOL bAbsolute,CONST SMALL_RECT *lpConsoleWindow);
-  WINBASEAPI WINBOOL WINAPI SetConsoleTextAttribute(HANDLE hConsoleOutput,WORD wAttributes);
-  WINBASEAPI WINBOOL WINAPI SetConsoleCtrlHandler(PHANDLER_ROUTINE HandlerRoutine,WINBOOL Add);
-  WINBASEAPI WINBOOL WINAPI GenerateConsoleCtrlEvent(DWORD dwCtrlEvent,DWORD dwProcessGroupId);
-  WINBASEAPI WINBOOL WINAPI AllocConsole(VOID);
-  WINBASEAPI WINBOOL WINAPI FreeConsole(VOID);
-  WINBASEAPI WINBOOL WINAPI AttachConsole(DWORD dwProcessId);
-
-#define ATTACH_PARENT_PROCESS ((DWORD)-1)
+#ifndef NOAPISET
+#include <consoleapi.h>
+#include <consoleapi2.h>
+#include <consoleapi3.h>
+#endif
 
-  WINBASEAPI DWORD WINAPI GetConsoleTitleA(LPSTR lpConsoleTitle,DWORD nSize);
-  WINBASEAPI DWORD WINAPI GetConsoleTitleW(LPWSTR lpConsoleTitle,DWORD nSize);
-  WINBASEAPI WINBOOL WINAPI SetConsoleTitleA(LPCSTR lpConsoleTitle);
-  WINBASEAPI WINBOOL WINAPI SetConsoleTitleW(LPCWSTR lpConsoleTitle);
-  WINBASEAPI WINBOOL WINAPI ReadConsoleA(HANDLE hConsoleInput,LPVOID lpBuffer,DWORD nNumberOfCharsToRead,LPDWORD lpNumberOfCharsRead,LPVOID lpReserved);
-  WINBASEAPI WINBOOL WINAPI ReadConsoleW(HANDLE hConsoleInput,LPVOID lpBuffer,DWORD nNumberOfCharsToRead,LPDWORD lpNumberOfCharsRead,LPVOID lpReserved);
-  WINBASEAPI WINBOOL WINAPI WriteConsoleA(HANDLE hConsoleOutput,CONST VOID *lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved);
-  WINBASEAPI WINBOOL WINAPI WriteConsoleW(HANDLE hConsoleOutput,CONST VOID *lpBuffer,DWORD nNumberOfCharsToWrite,LPDWORD lpNumberOfCharsWritten,LPVOID lpReserved);
+#define CONSOLE_REAL_OUTPUT_HANDLE (LongToHandle(-2))
+#define CONSOLE_REAL_INPUT_HANDLE (LongToHandle(-3))
 
 #define CONSOLE_TEXTMODE_BUFFER 1
 
-  WINBASEAPI HANDLE WINAPI CreateConsoleScreenBuffer(DWORD dwDesiredAccess,DWORD dwShareMode,CONST SECURITY_ATTRIBUTES *lpSecurityAttributes,DWORD dwFlags,LPVOID lpScreenBufferData);
-  WINBASEAPI UINT WINAPI GetConsoleCP(VOID);
-  WINBASEAPI WINBOOL WINAPI SetConsoleCP(UINT wCodePageID);
-  WINBASEAPI UINT WINAPI GetConsoleOutputCP(VOID);
-  WINBASEAPI WINBOOL WINAPI SetConsoleOutputCP(UINT wCodePageID);
-
-#define CONSOLE_FULLSCREEN 1
-#define CONSOLE_FULLSCREEN_HARDWARE 2
-  WINBASEAPI WINBOOL WINAPI GetConsoleDisplayMode(LPDWORD lpModeFlags);
-
-#define CONSOLE_FULLSCREEN_MODE 1
-#define CONSOLE_WINDOWED_MODE 2
-  WINBASEAPI WINBOOL WINAPI SetConsoleDisplayMode(HANDLE hConsoleOutput, DWORD dwFlags, PCOORD lpNewScreenBufferDimensions);
-
-  WINBASEAPI HWND WINAPI GetConsoleWindow(VOID);
-  WINBASEAPI DWORD WINAPI GetConsoleProcessList(LPDWORD lpdwProcessList,DWORD dwProcessCount);
-  WINBASEAPI WINBOOL WINAPI AddConsoleAliasA(LPSTR Source,LPSTR Target,LPSTR ExeName);
-  WINBASEAPI WINBOOL WINAPI AddConsoleAliasW(LPWSTR Source,LPWSTR Target,LPWSTR ExeName);
-  WINBASEAPI DWORD WINAPI GetConsoleAliasA(LPSTR Source,LPSTR TargetBuffer,DWORD TargetBufferLength,LPSTR ExeName);
-  WINBASEAPI DWORD WINAPI GetConsoleAliasW(LPWSTR Source,LPWSTR TargetBuffer,DWORD TargetBufferLength,LPWSTR ExeName);
-  WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthA(LPSTR ExeName);
-  WINBASEAPI DWORD WINAPI GetConsoleAliasesLengthW(LPWSTR ExeName);
-  WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthA(VOID);
-  WINBASEAPI DWORD WINAPI GetConsoleAliasExesLengthW(VOID);
-  WINBASEAPI DWORD WINAPI GetConsoleAliasesA(LPSTR AliasBuffer,DWORD AliasBufferLength,LPSTR ExeName);
-  WINBASEAPI DWORD WINAPI GetConsoleAliasesW(LPWSTR AliasBuffer,DWORD AliasBufferLength,LPWSTR ExeName);
-  WINBASEAPI DWORD WINAPI GetConsoleAliasExesA(LPSTR ExeNameBuffer,DWORD ExeNameBufferLength);
-  WINBASEAPI DWORD WINAPI GetConsoleAliasExesW(LPWSTR ExeNameBuffer,DWORD ExeNameBufferLength);
-
-WINBASEAPI VOID WINAPI ExpungeConsoleCommandHistoryA(LPSTR ExeName);
-WINBASEAPI VOID WINAPI ExpungeConsoleCommandHistoryW(LPWSTR ExeName);
-#define ExpungeConsoleCommandHistory __MINGW_NAME_AW(ExpungeConsoleCommandHistory)
-
-WINBASEAPI WINBOOL WINAPI SetConsoleNumberOfCommandsA(DWORD Number, LPSTR ExeName);
-WINBASEAPI WINBOOL WINAPI SetConsoleNumberOfCommandsW(DWORD Number, LPWSTR ExeName);
-#define SetConsoleNumberOfCommands __MINGW_NAME_AW(SetConsoleNumberOfCommands)
-
-WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryLengthA(LPSTR ExeName);
-WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryLengthW(LPWSTR ExeName);
-#define GetConsoleCommandHistoryLength __MINGW_NAME_AW(GetConsoleCommandHistoryLength)
-
-WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryA(LPSTR Commands, DWORD CommandBufferLength, LPSTR ExeName);
-WINBASEAPI DWORD WINAPI GetConsoleCommandHistoryW(LPWSTR Commands, DWORD CommandBufferLength, LPWSTR ExeName);
-#define GetConsoleCommandHistory __MINGW_NAME_AW(GetConsoleCommandHistory)
-
-#ifndef NOGDI
-
-typedef struct _CONSOLE_FONT_INFOEX {
-  ULONG cbSize;
-  DWORD nFont;
-  COORD dwFontSize;
-  UINT  FontFamily;
-  UINT  FontWeight;
-  WCHAR FaceName[LF_FACESIZE];
-} CONSOLE_FONT_INFOEX, *PCONSOLE_FONT_INFOEX;
-
-WINBASEAPI WINBOOL WINAPI GetCurrentConsoleFontEx(
-  HANDLE hConsoleOutput,
-  WINBOOL bMaximumWindow,
-  PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
-);
-
-WINBASEAPI WINBOOL WINAPI SetCurrentConsoleFontEx(
-  HANDLE hConsoleOutput,
-  WINBOOL bMaximumWindow,
-  PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx
-);
-
-#endif  /* NOGDI */
-
-#define HISTORY_NO_DUP_FLAG 0x1
-
-typedef struct _CONSOLE_HISTORY_INFO {
-  UINT  cbSize;
-  UINT  HistoryBufferSize;
-  UINT  NumberOfHistoryBuffers;
-  DWORD dwFlags;
-} CONSOLE_HISTORY_INFO, *PCONSOLE_HISTORY_INFO;
-
-typedef struct _CONSOLE_READCONSOLE_CONTROL {
-  ULONG nLength;
-  ULONG nInitialChars;
-  ULONG dwCtrlWakeupMask;
-  ULONG dwControlKeyState;
-} CONSOLE_READCONSOLE_CONTROL, *PCONSOLE_READCONSOLE_CONTROL;
-
-typedef struct _CONSOLE_SCREEN_BUFFER_INFOEX {
-  ULONG      cbSize;
-  COORD      dwSize;
-  COORD      dwCursorPosition;
-  WORD       wAttributes;
-  SMALL_RECT srWindow;
-  COORD      dwMaximumWindowSize;
-  WORD       wPopupAttributes;
-  WINBOOL    bFullscreenSupported;
-  COLORREF   ColorTable[16];
-} CONSOLE_SCREEN_BUFFER_INFOEX, *PCONSOLE_SCREEN_BUFFER_INFOEX;
-
-WINBOOL WINAPI GetConsoleHistoryInfo(
-  PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo
-);
-
-#if (_WIN32_WINNT >= 0x0600)
-#define GetConsoleOriginalTitle __MINGW_NAME_AW(GetConsoleOriginalTitle)
-
-WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleA(
-  LPSTR lpConsoleTitle,
-  DWORD nSize
-);
-
-WINBASEAPI DWORD WINAPI GetConsoleOriginalTitleW(
-  LPWSTR lpConsoleTitle,
-  DWORD nSize
-);
-#endif /* (_WIN32_WINNT >= 0x0600) */
-
-WINBASEAPI WINBOOL WINAPI GetConsoleScreenBufferInfoEx(
-  HANDLE hConsoleOutput,
-  PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx
-);
-
-WINBASEAPI WINBOOL WINAPI SetConsoleHistoryInfo(
-  PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo
-);
-
-WINBASEAPI WINBOOL WINAPI SetConsoleScreenBufferInfoEx(
-  HANDLE hConsoleOutput,
-  PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx
-);
-
-#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
-
-#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
-
-#if (NTDDI_VERSION >= 0x0A000006)
-
-/* CreatePseudoConsole Flags */
-#define PSEUDOCONSOLE_INHERIT_CURSOR 1
-
-typedef VOID* HPCON;
-
-WINBASEAPI HRESULT WINAPI CreatePseudoConsole(COORD size, HANDLE hInput, HANDLE hOutput, DWORD dwFlags, HPCON* phPC);
-WINBASEAPI HRESULT WINAPI ResizePseudoConsole(HPCON hPC, COORD size);
-WINBASEAPI VOID WINAPI ClosePseudoConsole(HPCON hPC);
-
-#endif /* NTDDI_WIN10_RS5 */
-
-#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
-
 #ifdef __cplusplus
 }
 #endif
-#endif
+
+#endif /* _WINCON_ */
lib/libc/include/any-windows-any/wincontypes.h
@@ -0,0 +1,130 @@
+/**
+ * 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 _WINCONTYPES_
+#define _WINCONTYPES_
+
+#include <minwindef.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+
+typedef struct _COORD {
+  SHORT X;
+  SHORT Y;
+} COORD, *PCOORD;
+
+typedef struct _SMALL_RECT {
+  SHORT Left;
+  SHORT Top;
+  SHORT Right;
+  SHORT Bottom;
+} SMALL_RECT, *PSMALL_RECT;
+
+typedef struct _KEY_EVENT_RECORD {
+  WINBOOL bKeyDown;
+  WORD wRepeatCount;
+  WORD wVirtualKeyCode;
+  WORD wVirtualScanCode;
+  union {
+    WCHAR UnicodeChar;
+    CHAR AsciiChar;
+  } uChar;
+  DWORD dwControlKeyState;
+} KEY_EVENT_RECORD, *PKEY_EVENT_RECORD;
+
+#define RIGHT_ALT_PRESSED 0x0001
+#define LEFT_ALT_PRESSED 0x0002
+#define RIGHT_CTRL_PRESSED 0x0004
+#define LEFT_CTRL_PRESSED 0x0008
+#define SHIFT_PRESSED 0x0010
+#define NUMLOCK_ON 0x0020
+#define SCROLLLOCK_ON 0x0040
+#define CAPSLOCK_ON 0x0080
+#define ENHANCED_KEY 0x0100
+#define NLS_DBCSCHAR 0x00010000
+#define NLS_ALPHANUMERIC 0x00000000
+#define NLS_KATAKANA 0x00020000
+#define NLS_HIRAGANA 0x00040000
+#define NLS_ROMAN 0x00400000
+#define NLS_IME_CONVERSION 0x00800000
+#define ALTNUMPAD_BIT 0x04000000
+#define NLS_IME_DISABLE 0x20000000
+
+typedef struct _MOUSE_EVENT_RECORD {
+  COORD dwMousePosition;
+  DWORD dwButtonState;
+  DWORD dwControlKeyState;
+  DWORD dwEventFlags;
+} MOUSE_EVENT_RECORD, *PMOUSE_EVENT_RECORD;
+
+#define FROM_LEFT_1ST_BUTTON_PRESSED 0x0001
+#define RIGHTMOST_BUTTON_PRESSED 0x0002
+#define FROM_LEFT_2ND_BUTTON_PRESSED 0x0004
+#define FROM_LEFT_3RD_BUTTON_PRESSED 0x0008
+#define FROM_LEFT_4TH_BUTTON_PRESSED 0x0010
+
+#define MOUSE_MOVED 0x0001
+#define DOUBLE_CLICK 0x0002
+#define MOUSE_WHEELED 0x0004
+#if (_WIN32_WINNT >= 0x0600)
+#define MOUSE_HWHEELED 0x0008
+#endif /* _WIN32_WINNT >= 0x0600 */
+
+typedef struct _WINDOW_BUFFER_SIZE_RECORD {
+  COORD dwSize;
+} WINDOW_BUFFER_SIZE_RECORD, *PWINDOW_BUFFER_SIZE_RECORD;
+
+typedef struct _MENU_EVENT_RECORD {
+  UINT dwCommandId;
+} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
+
+typedef struct _FOCUS_EVENT_RECORD {
+  WINBOOL bSetFocus;
+} FOCUS_EVENT_RECORD, *PFOCUS_EVENT_RECORD;
+
+typedef struct _INPUT_RECORD {
+  WORD EventType;
+  union {
+    KEY_EVENT_RECORD KeyEvent;
+    MOUSE_EVENT_RECORD MouseEvent;
+    WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
+    MENU_EVENT_RECORD MenuEvent;
+    FOCUS_EVENT_RECORD FocusEvent;
+  } Event;
+} INPUT_RECORD, *PINPUT_RECORD;
+
+#define KEY_EVENT 0x0001
+#define MOUSE_EVENT 0x0002
+#define WINDOW_BUFFER_SIZE_EVENT 0x0004
+#define MENU_EVENT 0x0008
+#define FOCUS_EVENT 0x0010
+
+typedef struct _CHAR_INFO {
+  union {
+    WCHAR UnicodeChar;
+    CHAR AsciiChar;
+  } Char;
+  WORD Attributes;
+} CHAR_INFO, *PCHAR_INFO;
+
+typedef struct _CONSOLE_FONT_INFO {
+  DWORD nFont;
+  COORD dwFontSize;
+} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
+
+typedef VOID *HPCON;
+
+#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _WINCONTYPES_ */
lib/libc/include/any-windows-any/winnt.h
@@ -48,6 +48,13 @@ extern "C" {
 #endif
 #endif /* _ARM64_ */
 
+#if defined(__arm64ec__) && \
+  !(defined(_X86_) || defined(__i386__) || defined(_IA64_) || defined (__arm__) || defined(__aarch64__))
+#if !defined(_ARM64EC_)
+#define _ARM64EC_
+#endif
+#endif /* _ARM64EC_ */
+
 #if defined(__ia64__) && \
   !(defined(_X86_) || defined(__x86_64) || defined(_AMD64_) || defined (__arm__) || defined(__aarch64__))
 #if !defined(_IA64_)
@@ -1582,7 +1589,7 @@ __MINGW_CXX14_CONSTEXPR inline ENUMTYPE& operator ^= (ENUMTYPE& a, ENUMTYPE b) {
 
 #ifdef _AMD64_
 
-#if defined(__x86_64) && !defined(RC_INVOKED)
+#if defined(__x86_64) && !defined(__arm64ec__) && !defined(RC_INVOKED)
 
 #ifdef __cplusplus
   extern "C" {
@@ -1782,7 +1789,7 @@ extern "C" {
 #ifdef __cplusplus
   }
 #endif
-#endif /* defined(__x86_64) && !defined(RC_INVOKED) */
+#endif /* defined(__x86_64) && !defined(__arm64ec__) && !defined(RC_INVOKED) */
 
 #define EXCEPTION_READ_FAULT 0
 #define EXCEPTION_WRITE_FAULT 1
@@ -2084,24 +2091,6 @@ extern "C" {
 #define UNW_FLAG_EHANDLER   0x1
 #define UNW_FLAG_UHANDLER   0x2
 
-#define UNWIND_HISTORY_TABLE_SIZE 12
-
-  typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
-    DWORD ImageBase;
-    PRUNTIME_FUNCTION FunctionEntry;
-  } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
-
-  typedef struct _UNWIND_HISTORY_TABLE {
-    DWORD Count;
-    BYTE  LocalHint;
-    BYTE  GlobalHint;
-    BYTE  Search;
-    BYTE  Once;
-    DWORD LowAddress;
-    DWORD HighAddress;
-    UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
-  } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
-
   struct _DISPATCHER_CONTEXT;
   typedef struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT;
   typedef struct _DISPATCHER_CONTEXT *PDISPATCHER_CONTEXT;
@@ -2115,7 +2104,7 @@ extern "C" {
     PCONTEXT ContextRecord;
     PEXCEPTION_ROUTINE LanguageHandler;
     PVOID HandlerData;
-    PUNWIND_HISTORY_TABLE HistoryTable;
+    struct _UNWIND_HISTORY_TABLE *HistoryTable;
     ULONG ScopeIndex;
     BOOLEAN ControlPcIsUnwound;
     PBYTE NonVolatileRegisters;
@@ -2147,9 +2136,9 @@ extern "C" {
 #endif /* _ARM_ */
 
 
-#ifdef _ARM64_
+#if defined(_ARM64_) || defined(_ARM64EC_)
 
-#if defined(__aarch64__) && !defined(RC_INVOKED)
+#if (defined(__aarch64__) || defined(__arm64ec__)) && !defined(RC_INVOKED)
 
 #ifdef __cplusplus
   extern "C" {
@@ -2219,33 +2208,51 @@ extern "C" {
 #ifdef __cplusplus
   }
 #endif
-#endif /* defined(__aarch64__) && !defined(RC_INVOKED) */
+#endif /* (defined(__aarch64__) || defined(__arm64ec__)) && !defined(RC_INVOKED) */
 
 #define EXCEPTION_READ_FAULT    0
 #define EXCEPTION_WRITE_FAULT   1
 #define EXCEPTION_EXECUTE_FAULT 8
+#endif /* defined(_ARM64_) || defined(_ARM64EC_) */
 
 #if !defined(RC_INVOKED)
 
-#define CONTEXT_ARM64           0x400000
-#define CONTEXT_CONTROL         (CONTEXT_ARM64 | 0x00000001)
-#define CONTEXT_INTEGER         (CONTEXT_ARM64 | 0x00000002)
-#define CONTEXT_FLOATING_POINT  (CONTEXT_ARM64 | 0x00000004)
-#define CONTEXT_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x00000008)
+#define CONTEXT_ARM64                 0x400000
+#define CONTEXT_ARM64_CONTROL         (CONTEXT_ARM64 | 0x00000001)
+#define CONTEXT_ARM64_INTEGER         (CONTEXT_ARM64 | 0x00000002)
+#define CONTEXT_ARM64_FLOATING_POINT  (CONTEXT_ARM64 | 0x00000004)
+#define CONTEXT_ARM64_DEBUG_REGISTERS (CONTEXT_ARM64 | 0x00000008)
+#define CONTEXT_ARM64_X18             (CONTEXT_ARM64 | 0x00000010)
 
-#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER)
-#define CONTEXT_ALL  (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS)
 
-#define EXCEPTION_READ_FAULT    0
-#define EXCEPTION_WRITE_FAULT   1
-#define EXCEPTION_EXECUTE_FAULT 8
+#define CONTEXT_ARM64_FULL (CONTEXT_ARM64_CONTROL | CONTEXT_ARM64_INTEGER | CONTEXT_ARM64_FLOATING_POINT)
+#define CONTEXT_ARM64_ALL  (CONTEXT_ARM64_CONTROL | CONTEXT_ARM64_INTEGER | CONTEXT_ARM64_FLOATING_POINT | CONTEXT_ARM64_DEBUG_REGISTERS | CONTEXT_ARM64_X18)
 
-#define ARM64_MAX_BREAKPOINTS   8
-#define ARM64_MAX_WATCHPOINTS   2
+#define CONTEXT_ARM64_UNWOUND_TO_CALL 0x20000000
+
+#ifdef _ARM64_
+
+#define CONTEXT_CONTROL         CONTEXT_ARM64_CONTROL
+#define CONTEXT_INTEGER         CONTEXT_ARM64_INTEGER
+#define CONTEXT_FLOATING_POINT  CONTEXT_ARM64_FLOATING_POINT
+#define CONTEXT_DEBUG_REGISTERS CONTEXT_ARM64_DEBUG_REGISTERS
+#define CONTEXT_FULL            CONTEXT_ARM64_FULL
+#define CONTEXT_ALL             CONTEXT_ARM64_ALL
+#define CONTEXT_UNWOUND_TO_CALL CONTEXT_ARM64_UNWOUND_TO_CALL
+
+#define CONTEXT_EXCEPTION_ACTIVE    0x08000000
+#define CONTEXT_SERVICE_ACTIVE      0x10000000
+#define CONTEXT_EXCEPTION_REQUEST   0x40000000
+#define CONTEXT_EXCEPTION_REPORTING 0x80000000
+
+#endif /* _ARM64_ */
 
 #endif /* !defined(RC_INVOKED) */
 
-  typedef union _NEON128 {
+#define ARM64_MAX_BREAKPOINTS   8
+#define ARM64_MAX_WATCHPOINTS   2
+
+  typedef union _ARM64_NT_NEON128 {
     struct
     {
         ULONGLONG Low;
@@ -2255,9 +2262,19 @@ extern "C" {
     float S[4];
     WORD  H[8];
     BYTE  B[16];
-  } NEON128, *PNEON128;
+  } ARM64_NT_NEON128, *PARM64_NT_NEON128;
 
-  typedef struct DECLSPEC_ALIGN(16) _CONTEXT {
+#ifdef _ARM64_
+  typedef ARM64_NT_NEON128 NEON128, *PNEON128;
+#endif
+
+  typedef struct DECLSPEC_ALIGN(16)
+#ifdef _ARM64_
+  _CONTEXT
+#else
+  _ARM64_NT_CONTEXT
+#endif
+  {
     ULONG ContextFlags;                 /* 000 */
     /* CONTEXT_INTEGER */
     ULONG Cpsr;                         /* 004 */
@@ -2303,7 +2320,7 @@ extern "C" {
     DWORD64 Sp;                         /* 100 */
     DWORD64 Pc;                         /* 108 */
     /* CONTEXT_FLOATING_POINT */
-    NEON128 V[32];                      /* 110 */
+    ARM64_NT_NEON128 V[32];             /* 110 */
     DWORD Fpcr;                         /* 310 */
     DWORD Fpsr;                         /* 314 */
     /* CONTEXT_DEBUG_REGISTERS */
@@ -2311,53 +2328,152 @@ extern "C" {
     DWORD64 Bvr[ARM64_MAX_BREAKPOINTS]; /* 338 */
     DWORD Wcr[ARM64_MAX_WATCHPOINTS];   /* 378 */
     DWORD64 Wvr[ARM64_MAX_WATCHPOINTS]; /* 380 */
-  } CONTEXT, *PCONTEXT;
+  } ARM64_NT_CONTEXT, *PARM64_NT_CONTEXT;
+
+#ifdef _ARM64_
+  typedef ARM64_NT_CONTEXT CONTEXT, *PCONTEXT;
+#endif
+
 
+  typedef struct DECLSPEC_ALIGN(16) _ARM64EC_NT_CONTEXT
+  {
+    union
+    {
+        struct
+        {
+            DWORD64 AMD64_P1Home;                         /* 000 */
+            DWORD64 AMD64_P2Home;                         /* 008 */
+            DWORD64 AMD64_P3Home;                         /* 010 */
+            DWORD64 AMD64_P4Home;                         /* 018 */
+            DWORD64 AMD64_P5Home;                         /* 020 */
+            DWORD64 AMD64_P6Home;                         /* 028 */
+            DWORD   ContextFlags;                         /* 030 */
+            DWORD   AMD64_MxCsr_copy;                     /* 034 */
+            WORD    AMD64_SegCs;                          /* 038 */
+            WORD    AMD64_SegDs;                          /* 03a */
+            WORD    AMD64_SegEs;                          /* 03c */
+            WORD    AMD64_SegFs;                          /* 03e */
+            WORD    AMD64_SegGs;                          /* 040 */
+            WORD    AMD64_SegSs;                          /* 042 */
+            DWORD   AMD64_EFlags;                         /* 044 */
+            DWORD64 AMD64_Dr0;                            /* 048 */
+            DWORD64 AMD64_Dr1;                            /* 050 */
+            DWORD64 AMD64_Dr2;                            /* 058 */
+            DWORD64 AMD64_Dr3;                            /* 060 */
+            DWORD64 AMD64_Dr6;                            /* 068 */
+            DWORD64 AMD64_Dr7;                            /* 070 */
+            DWORD64 X8;                                   /* 078 (Rax) */
+            DWORD64 X0;                                   /* 080 (Rcx) */
+            DWORD64 X1;                                   /* 088 (Rdx) */
+            DWORD64 X27;                                  /* 090 (Rbx) */
+            DWORD64 Sp;                                   /* 098 (Rsp) */
+            DWORD64 Fp;                                   /* 0a0 (Rbp) */
+            DWORD64 X25;                                  /* 0a8 (Rsi) */
+            DWORD64 X26;                                  /* 0b0 (Rdi) */
+            DWORD64 X2;                                   /* 0b8 (R8)  */
+            DWORD64 X3;                                   /* 0c0 (R9)  */
+            DWORD64 X4;                                   /* 0c8 (R10) */
+            DWORD64 X5;                                   /* 0d0 (R11) */
+            DWORD64 X19;                                  /* 0d8 (R12) */
+            DWORD64 X20;                                  /* 0e0 (R13) */
+            DWORD64 X21;                                  /* 0e8 (R14) */
+            DWORD64 X22;                                  /* 0f0 (R15) */
+            DWORD64 Pc;                                   /* 0f8 (Rip) */
+            struct
+            {
+                WORD    AMD64_ControlWord;                /* 100 */
+                WORD    AMD64_StatusWord;                 /* 102 */
+                BYTE    AMD64_TagWord;                    /* 104 */
+                BYTE    AMD64_Reserved1;                  /* 105 */
+                WORD    AMD64_ErrorOpcode;                /* 106 */
+                DWORD   AMD64_ErrorOffset;                /* 108 */
+                WORD    AMD64_ErrorSelector;              /* 10c */
+                WORD    AMD64_Reserved2;                  /* 10e */
+                DWORD   AMD64_DataOffset;                 /* 110 */
+                WORD    AMD64_DataSelector;               /* 114 */
+                WORD    AMD64_Reserved3;                  /* 116 */
+                DWORD   AMD64_MxCsr;                      /* 118 */
+                DWORD   AMD64_MxCsr_Mask;                 /* 11c */
+                DWORD64 Lr;                               /* 120 (FloatRegisters[0]) */
+                WORD    X16_0;                            /* 128 */
+                WORD    AMD64_St0_Reserved1;              /* 12a */
+                DWORD   AMD64_St0_Reserved2;              /* 12c */
+                DWORD64 X6;                               /* 130 (FloatRegisters[1]) */
+                WORD    X16_1;                            /* 138 */
+                WORD    AMD64_St1_Reserved1;              /* 13a */
+                DWORD   AMD64_St1_Reserved2;              /* 13c */
+                DWORD64 X7;                               /* 140 (FloatRegisters[2]) */
+                WORD    X16_2;                            /* 148 */
+                WORD    AMD64_St2_Reserved1;              /* 14a */
+                DWORD   AMD64_St2_Reserved2;              /* 14c */
+                DWORD64 X9;                               /* 150 (FloatRegisters[3]) */
+                WORD    X16_3;                            /* 158 */
+                WORD    AMD64_St3_Reserved1;              /* 15a */
+                DWORD   AMD64_St3_Reserved2;              /* 15c */
+                DWORD64 X10;                              /* 160 (FloatRegisters[4]) */
+                WORD    X17_0;                            /* 168 */
+                WORD    AMD64_St4_Reserved1;              /* 16a */
+                DWORD   AMD64_St4_Reserved2;              /* 16c */
+                DWORD64 X11;                              /* 170 (FloatRegisters[5]) */
+                WORD    X17_1;                            /* 178 */
+                WORD    AMD64_St5_Reserved1;              /* 17a */
+                DWORD   AMD64_St5_Reserved2;              /* 17c */
+                DWORD64 X12;                              /* 180 (FloatRegisters[6]) */
+                WORD    X17_2;                            /* 188 */
+                WORD    AMD64_St6_Reserved1;              /* 18a */
+                DWORD   AMD64_St6_Reserved2;              /* 18c */
+                DWORD64 X15;                              /* 190 (FloatRegisters[7]) */
+                WORD    X17_3;                            /* 198 */
+                WORD    AMD64_St7_Reserved1;              /* 19a */
+                DWORD   AMD64_St7_Reserved2;              /* 19c */
+                ARM64_NT_NEON128 V[16];                   /* 1a0 (XmmRegisters) */
+                BYTE    AMD64_XSAVE_FORMAT_Reserved4[96]; /* 2a0 */
+            } DUMMYSTRUCTNAME;
+            ARM64_NT_NEON128 AMD64_VectorRegister[26];    /* 300 */
+            DWORD64 AMD64_VectorControl;                  /* 4a0 */
+            DWORD64 AMD64_DebugControl;                   /* 4a8 */
+            DWORD64 AMD64_LastBranchToRip;                /* 4b0 */
+            DWORD64 AMD64_LastBranchFromRip;              /* 4b8 */
+            DWORD64 AMD64_LastExceptionToRip;             /* 4c0 */
+            DWORD64 AMD64_LastExceptionFromRip;           /* 4c8 */
+        } DUMMYSTRUCTNAME;
+#ifdef _ARM64EC_
+        CONTEXT AMD64_Context;
+#endif
+    } DUMMYUNIONNAME;
+  } ARM64EC_NT_CONTEXT, *PARM64EC_NT_CONTEXT;
+
+  typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY ARM64_RUNTIME_FUNCTION, *PARM64_RUNTIME_FUNCTION;
+
+#ifdef _ARM64_
   typedef struct _IMAGE_ARM64_RUNTIME_FUNCTION_ENTRY RUNTIME_FUNCTION, *PRUNTIME_FUNCTION;
   typedef PRUNTIME_FUNCTION (*PGET_RUNTIME_FUNCTION_CALLBACK)(DWORD64 ControlPc,PVOID Context);
+#endif
 
 #define UNW_FLAG_NHANDLER   0x0
 #define UNW_FLAG_EHANDLER   0x1
 #define UNW_FLAG_UHANDLER   0x2
 
-#define UNWIND_HISTORY_TABLE_SIZE 12
-
-  typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
-    DWORD64 ImageBase;
-    PRUNTIME_FUNCTION FunctionEntry;
-  } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
-
-  typedef struct _UNWIND_HISTORY_TABLE {
-    DWORD   Count;
-    BYTE    LocalHint;
-    BYTE    GlobalHint;
-    BYTE    Search;
-    BYTE    Once;
-    DWORD64 LowAddress;
-    DWORD64 HighAddress;
-    UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
-  } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
-
-  struct _DISPATCHER_CONTEXT;
-  typedef struct _DISPATCHER_CONTEXT DISPATCHER_CONTEXT;
-  typedef struct _DISPATCHER_CONTEXT *PDISPATCHER_CONTEXT;
-
-  struct _DISPATCHER_CONTEXT {
+  typedef struct _DISPATCHER_CONTEXT_ARM64 {
     ULONG_PTR ControlPc;
     ULONG_PTR ImageBase;
-    PRUNTIME_FUNCTION FunctionEntry;
+    PARM64_RUNTIME_FUNCTION FunctionEntry;
     ULONG_PTR EstablisherFrame;
     ULONG_PTR TargetPc;
-    PCONTEXT ContextRecord;
+    PARM64_NT_CONTEXT ContextRecord;
     PEXCEPTION_ROUTINE LanguageHandler;
     PVOID HandlerData;
-    PUNWIND_HISTORY_TABLE HistoryTable;
+    struct _UNWIND_HISTORY_TABLE *HistoryTable;
     ULONG ScopeIndex;
     BOOLEAN ControlPcIsUnwound;
     PBYTE NonVolatileRegisters;
-  };
+  } DISPATCHER_CONTEXT_ARM64, *PDISPATCHER_CONTEXT_ARM64;
 
-  typedef struct _KNONVOLATILE_CONTEXT_POINTERS {
+#if defined(_ARM64_)
+  typedef DISPATCHER_CONTEXT_ARM64 DISPATCHER_CONTEXT, *PDISPATCHER_CONTEXT;
+#endif
+
+  typedef struct _KNONVOLATILE_CONTEXT_POINTERS_ARM64 {
     PDWORD64 X19;
     PDWORD64 X20;
     PDWORD64 X21;
@@ -2379,12 +2495,13 @@ extern "C" {
     PDWORD64 D13;
     PDWORD64 D14;
     PDWORD64 D15;
-  } KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS;
+  } KNONVOLATILE_CONTEXT_POINTERS_ARM64, *PKNONVOLATILE_CONTEXT_POINTERS_ARM64;
 
-#define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME "OutOfProcessFunctionTableCallback"
-
-#endif /* _ARM64_ */
+#ifdef _ARM64_
+  typedef KNONVOLATILE_CONTEXT_POINTERS_ARM64 KNONVOLATILE_CONTEXT_POINTERS, *PKNONVOLATILE_CONTEXT_POINTERS;
+#endif
 
+#define OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK_EXPORT_NAME "OutOfProcessFunctionTableCallback"
 
 #ifdef _X86_
 
@@ -2474,25 +2591,8 @@ __buildmemorybarrier()
 #define PF_TEMPORAL_LEVEL_1
 #define PF_NON_TEMPORAL_LEVEL_ALL
 
-#define PcTeb 0x18
-  struct _TEB *NtCurrentTeb(void);
-  PVOID GetCurrentFiber(void);
-  PVOID GetFiberData(void);
-
 #define DbgRaiseAssertionFailure __int2c
 
-  FORCEINLINE struct _TEB *NtCurrentTeb(void)
-  {
-    return (struct _TEB *)__readfsdword(PcTeb);
-  }
-  FORCEINLINE PVOID GetCurrentFiber(void)
-  {
-    return(PVOID)__readfsdword(0x10);
-  }
-  FORCEINLINE PVOID GetFiberData(void)
-  {
-      return *(PVOID *)GetCurrentFiber();
-  }
 #endif /* defined(__i386__) && !defined(__x86_64) */
 
 #define EXCEPTION_READ_FAULT 0
@@ -2656,8 +2756,6 @@ __buildmemorybarrier()
 #define UnsignedMultiplyHigh __UMULH
 
     ULONGLONG UnsignedMultiplyHigh(ULONGLONG Multiplier,ULONGLONG Multiplicand);
-#else  /* __ia64__ */
-    struct _TEB *NtCurrentTeb(void);
 #endif /* __ia64__ */
 #endif /* !defined(GENUTIL) && !defined(_GENIA64_) && defined(_IA64_) */
 
@@ -2976,30 +3074,10 @@ __buildmemorybarrier()
 
 #ifdef __x86_64__
 
-    /* http://msdn.microsoft.com/en-us/library/ms680597(VS.85).aspx */
-
-#define UNWIND_HISTORY_TABLE_SIZE 12
-
-  typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
-    ULONG64 ImageBase;
-    PRUNTIME_FUNCTION FunctionEntry;
-  } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
-
 #define UNWIND_HISTORY_TABLE_NONE    0
 #define UNWIND_HISTORY_TABLE_GLOBAL  1
 #define UNWIND_HISTORY_TABLE_LOCAL   2
 
-  typedef struct _UNWIND_HISTORY_TABLE {
-    ULONG Count;
-    BYTE  LocalHint;
-    BYTE  GlobalHint;
-    BYTE  Search;
-    BYTE  Once;
-    ULONG64 LowAddress;
-    ULONG64 HighAddress;
-    UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
-  } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
-
   /* http://msdn.microsoft.com/en-us/library/b6sf5kbd(VS.80).aspx */
 
   struct _DISPATCHER_CONTEXT;
@@ -3016,11 +3094,31 @@ __buildmemorybarrier()
     PEXCEPTION_ROUTINE LanguageHandler;
     PVOID HandlerData;
     /* http://www.nynaeve.net/?p=99 */
-    PUNWIND_HISTORY_TABLE HistoryTable;
+    struct _UNWIND_HISTORY_TABLE *HistoryTable;
     ULONG ScopeIndex;
     ULONG Fill0;
   };
 
+#ifdef _ARM64EC_
+  typedef struct _DISPATCHER_CONTEXT_ARM64EC {
+    DWORD64 ControlPc;
+    DWORD64 ImageBase;
+    PRUNTIME_FUNCTION FunctionEntry;
+    DWORD64 EstablisherFrame;
+    union {
+        DWORD64 TargetIp;
+        DWORD64 TargetPc;
+    } DUMMYUNIONNAME;
+    PCONTEXT ContextRecord;
+    PEXCEPTION_ROUTINE LanguageHandler;
+    PVOID HandlerData;
+    struct _UNWIND_HISTORY_TABLE *HistoryTable;
+    DWORD ScopeIndex;
+    BOOLEAN ControlPcIsUnwound;
+    PBYTE  NonVolatileRegisters;
+  } DISPATCHER_CONTEXT_ARM64EC, *PDISPATCHER_CONTEXT_ARM64EC;
+#endif /* _ARM64EC_ */
+
   /* http://msdn.microsoft.com/en-us/library/ms680617(VS.85).aspx */
 
   typedef struct _KNONVOLATILE_CONTEXT_POINTERS
@@ -5359,7 +5457,7 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
 #define LTP_PC_SMT 0x1
 
     typedef enum _PROCESSOR_CACHE_TYPE {
-      CacheUnified,CacheInstruction,CacheData,CacheTrace
+      CacheUnified,CacheInstruction,CacheData,CacheTrace,CacheUnknown
     } PROCESSOR_CACHE_TYPE;
 
 #define CACHE_FULLY_ASSOCIATIVE 0xFF
@@ -5397,8 +5495,12 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
 
     typedef struct _NUMA_NODE_RELATIONSHIP {
       DWORD NodeNumber;
-      BYTE Reserved[20];
-      GROUP_AFFINITY GroupMask;
+      BYTE Reserved[18];
+      WORD GroupCount;
+      __C89_NAMELESS union {
+        GROUP_AFFINITY GroupMask;
+        GROUP_AFFINITY GroupMasks[ANYSIZE_ARRAY];
+      };
     } NUMA_NODE_RELATIONSHIP,*PNUMA_NODE_RELATIONSHIP;
 
     typedef struct _CACHE_RELATIONSHIP {
@@ -5407,8 +5509,12 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
       WORD LineSize;
       DWORD CacheSize;
       PROCESSOR_CACHE_TYPE Type;
-      BYTE Reserved[20];
-      GROUP_AFFINITY GroupMask;
+      BYTE Reserved[18];
+      WORD GroupCount;
+      __C89_NAMELESS union {
+        GROUP_AFFINITY GroupMask;
+        GROUP_AFFINITY GroupMasks[ANYSIZE_ARRAY];
+      };
     } CACHE_RELATIONSHIP,*PCACHE_RELATIONSHIP;
 
     typedef struct _PROCESSOR_GROUP_INFO {
@@ -8535,6 +8641,13 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
       DWORD Reserved;
     } IMAGE_RESOURCE_DATA_ENTRY,*PIMAGE_RESOURCE_DATA_ENTRY;
 
+    typedef struct _IMAGE_LOAD_CONFIG_CODE_INTEGRITY {
+      WORD Flags;
+      WORD Catalog;
+      DWORD CatalogOffset;
+      DWORD Reserved;
+    } IMAGE_LOAD_CONFIG_CODE_INTEGRITY,*PIMAGE_LOAD_CONFIG_CODE_INTEGRITY;
+
     typedef struct {
       DWORD Size;
       DWORD TimeDateStamp;
@@ -8551,11 +8664,40 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
       DWORD ProcessHeapFlags;
       DWORD ProcessAffinityMask;
       WORD CSDVersion;
-      WORD Reserved1;
+      WORD DependentLoadFlags;
       DWORD EditList;
       DWORD SecurityCookie;
       DWORD SEHandlerTable;
       DWORD SEHandlerCount;
+      DWORD GuardCFCheckFunctionPointer;
+      DWORD GuardCFDispatchFunctionPointer;
+      DWORD GuardCFFunctionTable;
+      DWORD GuardCFFunctionCount;
+      DWORD GuardFlags;
+      IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity;
+      DWORD GuardAddressTakenIatEntryTable;
+      DWORD GuardAddressTakenIatEntryCount;
+      DWORD GuardLongJumpTargetTable;
+      DWORD GuardLongJumpTargetCount;
+      DWORD DynamicValueRelocTable;
+      DWORD CHPEMetadataPointer;
+      DWORD GuardRFFailureRoutine;
+      DWORD GuardRFFailureRoutineFunctionPointer;
+      DWORD DynamicValueRelocTableOffset;
+      WORD DynamicValueRelocTableSection;
+      WORD Reserved2;
+      DWORD GuardRFVerifyStackPointerFunctionPointer;
+      DWORD HotPatchTableOffset;
+      DWORD Reserved3;
+      DWORD EnclaveConfigurationPointer;
+      DWORD VolatileMetadataPointer;
+      DWORD GuardEHContinuationTable;
+      DWORD GuardEHContinuationCount;
+      DWORD GuardXFGCheckFunctionPointer;
+      DWORD GuardXFGDispatchFunctionPointer;
+      DWORD GuardXFGTableDispatchFunctionPointer;
+      DWORD CastGuardOsDeterminedFailureMode;
+      DWORD GuardMemcpyFunctionPointer;
     } IMAGE_LOAD_CONFIG_DIRECTORY32,*PIMAGE_LOAD_CONFIG_DIRECTORY32;
 
     typedef struct {
@@ -8574,11 +8716,40 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
       ULONGLONG ProcessAffinityMask;
       DWORD ProcessHeapFlags;
       WORD CSDVersion;
-      WORD Reserved1;
+      WORD DependentLoadFlags;
       ULONGLONG EditList;
       ULONGLONG SecurityCookie;
       ULONGLONG SEHandlerTable;
       ULONGLONG SEHandlerCount;
+      ULONGLONG GuardCFCheckFunctionPointer;
+      ULONGLONG GuardCFDispatchFunctionPointer;
+      ULONGLONG GuardCFFunctionTable;
+      ULONGLONG GuardCFFunctionCount;
+      DWORD GuardFlags;
+      IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity;
+      ULONGLONG GuardAddressTakenIatEntryTable;
+      ULONGLONG GuardAddressTakenIatEntryCount;
+      ULONGLONG GuardLongJumpTargetTable;
+      ULONGLONG GuardLongJumpTargetCount;
+      ULONGLONG DynamicValueRelocTable;
+      ULONGLONG CHPEMetadataPointer;
+      ULONGLONG GuardRFFailureRoutine;
+      ULONGLONG GuardRFFailureRoutineFunctionPointer;
+      DWORD DynamicValueRelocTableOffset;
+      WORD DynamicValueRelocTableSection;
+      WORD Reserved2;
+      ULONGLONG GuardRFVerifyStackPointerFunctionPointer;
+      DWORD HotPatchTableOffset;
+      DWORD Reserved3;
+      ULONGLONG EnclaveConfigurationPointer;
+      ULONGLONG VolatileMetadataPointer;
+      ULONGLONG GuardEHContinuationTable;
+      ULONGLONG GuardEHContinuationCount;
+      ULONGLONG GuardXFGCheckFunctionPointer;
+      ULONGLONG GuardXFGDispatchFunctionPointer;
+      ULONGLONG GuardXFGTableDispatchFunctionPointer;
+      ULONGLONG CastGuardOsDeterminedFailureMode;
+      ULONGLONG GuardMemcpyFunctionPointer;
     } IMAGE_LOAD_CONFIG_DIRECTORY64,*PIMAGE_LOAD_CONFIG_DIRECTORY64;
 
 #ifdef _WIN64
@@ -8886,6 +9057,27 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
     } IMAGE_COR20_HEADER,*PIMAGE_COR20_HEADER;
 #endif
 
+#ifndef __i386__
+
+#define UNWIND_HISTORY_TABLE_SIZE 12
+
+  typedef struct _UNWIND_HISTORY_TABLE_ENTRY {
+    ULONG_PTR ImageBase;
+    PRUNTIME_FUNCTION FunctionEntry;
+  } UNWIND_HISTORY_TABLE_ENTRY, *PUNWIND_HISTORY_TABLE_ENTRY;
+
+  typedef struct _UNWIND_HISTORY_TABLE {
+    DWORD     Count;
+    BYTE      LocalHint;
+    BYTE      GlobalHint;
+    BYTE      Search;
+    BYTE      Once;
+    ULONG_PTR LowAddress;
+    ULONG_PTR HighAddress;
+    UNWIND_HISTORY_TABLE_ENTRY Entry[UNWIND_HISTORY_TABLE_SIZE];
+  } UNWIND_HISTORY_TABLE, *PUNWIND_HISTORY_TABLE;
+#endif /* !__i386__ */
+
 #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
     NTSYSAPI WORD NTAPI RtlCaptureStackBackTrace (DWORD FramesToSkip, DWORD FramesToCapture, PVOID *BackTrace, PDWORD BackTraceHash);
 #endif
@@ -8939,6 +9131,7 @@ DEFINE_ENUM_FLAG_OPERATORS(JOB_OBJECT_IO_RATE_CONTROL_FLAGS)
     NTSYSAPI PRUNTIME_FUNCTION NTAPI RtlLookupFunctionEntry (DWORD64 ControlPc, PDWORD64 ImageBase, PUNWIND_HISTORY_TABLE HistoryTable);
     NTSYSAPI VOID NTAPI RtlUnwindEx (PVOID TargetFrame, PVOID TargetIp, PEXCEPTION_RECORD ExceptionRecord, PVOID ReturnValue, PCONTEXT ContextRecord, PUNWIND_HISTORY_TABLE HistoryTable);
     NTSYSAPI PEXCEPTION_ROUTINE NTAPI RtlVirtualUnwind (DWORD HandlerType, DWORD64 ImageBase, DWORD64 ControlPc, PRUNTIME_FUNCTION FunctionEntry, PCONTEXT ContextRecord, PVOID *HandlerData, PDWORD64 EstablisherFrame, PKNONVOLATILE_CONTEXT_POINTERS ContextPointers);
+    NTSYSAPI BOOLEAN NTAPI RtlIsEcCode(DWORD64 CodePointer);
 #endif
 #if defined (__arm__)
     NTSYSAPI PRUNTIME_FUNCTION NTAPI RtlLookupFunctionEntry (ULONG_PTR ControlPc, PDWORD ImageBase, PUNWIND_HISTORY_TABLE HistoryTable);
@@ -9067,7 +9260,7 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *);
 #if !defined (__CRT__NO_INLINE) && !defined (__WIDL__)
     __CRT_INLINE PVOID WINAPI RtlSecureZeroMemory(PVOID ptr,SIZE_T cnt) {
       volatile char *vptr =(volatile char *)ptr;
-#ifdef __x86_64
+#if defined(__x86_64__) && !defined(__arm64ec__)
       __stosb((PBYTE)((DWORD64)vptr),0,cnt);
 #else
       while(cnt) {
@@ -9652,8 +9845,8 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *);
 #define VERIFIER_STOP(Code,Msg,P1,S1,P2,S2,P3,S3,P4,S4) { RtlApplicationVerifierStop ((Code),(Msg),(ULONG_PTR)(P1),(S1),(ULONG_PTR)(P2),(S2),(ULONG_PTR)(P3),(S3),(ULONG_PTR)(P4),(S4)); }
 
     VOID NTAPI RtlApplicationVerifierStop(ULONG_PTR Code,PSTR Message,ULONG_PTR Param1,PSTR Description1,ULONG_PTR Param2,PSTR Description2,ULONG_PTR Param3,PSTR Description3,ULONG_PTR Param4,PSTR Description4);
-    NTSYSAPI DWORD NTAPI RtlSetHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength);
-    NTSYSAPI DWORD NTAPI RtlQueryHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength,PSIZE_T ReturnLength);
+    NTSYSAPI LONG NTAPI RtlSetHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength);
+    NTSYSAPI LONG NTAPI RtlQueryHeapInformation(PVOID HeapHandle,HEAP_INFORMATION_CLASS HeapInformationClass,PVOID HeapInformation,SIZE_T HeapInformationLength,PSIZE_T ReturnLength);
     DWORD NTAPI RtlMultipleAllocateHeap(PVOID HeapHandle,DWORD Flags,SIZE_T Size,DWORD Count,PVOID *Array);
     DWORD NTAPI RtlMultipleFreeHeap(PVOID HeapHandle,DWORD Flags,DWORD Count,PVOID *Array);
 
@@ -10152,38 +10345,55 @@ typedef DWORD (WINAPI *PRTL_RUN_ONCE_INIT_FN)(PRTL_RUN_ONCE, PVOID, PVOID *);
     FORCEINLINE VOID TpDestroyCallbackEnviron (PTP_CALLBACK_ENVIRON cbe) { UNREFERENCED_PARAMETER (cbe); }
 #endif
 
-#if defined(__x86_64) && !defined (__WIDL__)
+#if !defined(__ia64__) && !defined (__WIDL__)
     struct _TEB *NtCurrentTeb(VOID);
     PVOID GetCurrentFiber(VOID);
     PVOID GetFiberData(VOID);
-    FORCEINLINE struct _TEB *NtCurrentTeb(VOID) { return (struct _TEB *)__readgsqword(FIELD_OFFSET(NT_TIB,Self)); }
-    FORCEINLINE PVOID GetCurrentFiber(VOID) { return(PVOID)__readgsqword(FIELD_OFFSET(NT_TIB,FiberData)); }
-    FORCEINLINE PVOID GetFiberData(VOID) {
-      return *(PVOID *)GetCurrentFiber();
+
+#if defined (__aarch64__) || defined(__arm64ec__)
+    register struct _TEB *__mingw_current_teb __asm__("x18");
+    FORCEINLINE struct _TEB *NtCurrentTeb(VOID)
+    {
+        return __mingw_current_teb;
     }
-#endif /* __x86_64 */
+    FORCEINLINE PVOID GetCurrentFiber(VOID)
+    {
+        return (PVOID)(((PNT_TIB)NtCurrentTeb())->FiberData);
+    }
+#elif defined(__x86_64__)
+    FORCEINLINE struct _TEB *NtCurrentTeb(VOID)
+    {
+        return (struct _TEB *)__readgsqword(FIELD_OFFSET(NT_TIB,Self));
+    }
+    FORCEINLINE PVOID GetCurrentFiber(VOID)
+    {
+        return (PVOID)__readgsqword(FIELD_OFFSET(NT_TIB,FiberData));
+    }
+#elif defined(__i386__)
+#   define PcTeb 0x18
+    FORCEINLINE struct _TEB *NtCurrentTeb(void)
+    {
+        return (struct _TEB *)__readfsdword(PcTeb);
+    }
+    FORCEINLINE PVOID GetCurrentFiber(void)
+    {
+        return (PVOID)__readfsdword(0x10);
+    }
+#elif defined (__arm__)
+    FORCEINLINE struct _TEB *NtCurrentTeb(VOID)
+    {
+        struct _TEB *teb;
+        __asm ("mrc p15, 0, %0, c13, c0, 2" : "=r" (teb));
+        return teb;
+    }
+    FORCEINLINE PVOID GetCurrentFiber(VOID)
+    {
+        return (PVOID)(((PNT_TIB)NtCurrentTeb())->FiberData);
+    }
+#endif
 
-#if defined (__arm__) && !defined (__WIDL__)
-    struct _TEB *NtCurrentTeb (VOID);
-    PVOID GetCurrentFiber (VOID);
-    PVOID GetFiberData (VOID);
-    FORCEINLINE struct _TEB *NtCurrentTeb(VOID) { struct _TEB *teb;
-    __asm ("mrc p15, 0, %0, c13, c0, 2" : "=r" (teb));
-    return teb; }
-    FORCEINLINE PVOID GetCurrentFiber(VOID) { return (PVOID)(((PNT_TIB)NtCurrentTeb())->FiberData); }
-    FORCEINLINE PVOID GetFiberData (VOID) { return *(PVOID *)GetCurrentFiber (); }
-#endif /* arm */
-
-#if defined (__aarch64__) && !defined (__WIDL__)
-    struct _TEB *NtCurrentTeb (VOID);
-    PVOID GetCurrentFiber (VOID);
-    PVOID GetFiberData (VOID);
-    FORCEINLINE struct _TEB *NtCurrentTeb(VOID) { struct _TEB *teb;
-    __asm ("mov %0, x18" : "=r" (teb));
-    return teb; }
-    FORCEINLINE PVOID GetCurrentFiber(VOID) { return (PVOID)(((PNT_TIB)NtCurrentTeb())->FiberData); }
-    FORCEINLINE PVOID GetFiberData (VOID) { return *(PVOID *)GetCurrentFiber (); }
-#endif /* aarch64 */
+    FORCEINLINE PVOID GetFiberData (VOID) { return *(void **)GetCurrentFiber (); }
+#endif /* !defined(__ia64__) && !defined (__WIDL__) */
 
 #ifndef _NTTMAPI_
 #define _NTTMAPI_
lib/libc/include/any-windows-any/winnt.rh
@@ -16,84 +16,154 @@
 
 #define LANG_AFRIKAANS 0x36
 #define LANG_ALBANIAN 0x1c
+#define LANG_ALSATIAN 0x84
+#define LANG_AMHARIC 0x5e
 #define LANG_ARABIC 0x01
 #define LANG_ARMENIAN 0x2b
 #define LANG_ASSAMESE 0x4d
 #define LANG_AZERI 0x2c
+#define LANG_AZERBAIJANI 0x2c
+#define LANG_BANGLA 0x45
+#define LANG_BASHKIR 0x6d
 #define LANG_BASQUE 0x2d
 #define LANG_BELARUSIAN 0x23
 #define LANG_BENGALI 0x45
+#define LANG_BRETON 0x7e
+#define LANG_BOSNIAN 0x1a
+#define LANG_BOSNIAN_NEUTRAL 0x781a
 #define LANG_BULGARIAN 0x02
 #define LANG_CATALAN 0x03
+#define LANG_CENTRAL_KURDISH 0x92
+#define LANG_CHEROKEE 0x5c
 #define LANG_CHINESE 0x04
+#define LANG_CHINESE_SIMPLIFIED 0x04
+#define LANG_CHINESE_TRADITIONAL 0x7c04
+#define LANG_CORSICAN 0x83
 #define LANG_CROATIAN 0x1a
 #define LANG_CZECH 0x05
 #define LANG_DANISH 0x06
+#define LANG_DARI 0x8c
 #define LANG_DIVEHI 0x65
 #define LANG_DUTCH 0x13
 #define LANG_ENGLISH 0x09
 #define LANG_ESTONIAN 0x25
 #define LANG_FAEROESE 0x38
 #define LANG_FARSI 0x29
+#define LANG_FILIPINO 0x64
 #define LANG_FINNISH 0x0b
 #define LANG_FRENCH 0x0c
+#define LANG_FRISIAN 0x62
+#define LANG_FULAH 0x67
 #define LANG_GALICIAN 0x56
 #define LANG_GEORGIAN 0x37
 #define LANG_GERMAN 0x07
 #define LANG_GREEK 0x08
+#define LANG_GREENLANDIC 0x6f
 #define LANG_GUJARATI 0x47
+#define LANG_HAUSA 0x68
+#define LANG_HAWAIIAN 0x75
 #define LANG_HEBREW 0x0d
 #define LANG_HINDI 0x39
 #define LANG_HUNGARIAN 0x0e
 #define LANG_ICELANDIC 0x0f
+#define LANG_IGBO 0x70
 #define LANG_INDONESIAN 0x21
+#define LANG_INUKTITUT 0x5d
+#define LANG_IRISH 0x3c
 #define LANG_ITALIAN 0x10
 #define LANG_JAPANESE 0x11
 #define LANG_KANNADA 0x4b
 #define LANG_KASHMIRI 0x60
 #define LANG_KAZAK 0x3f
+#define LANG_KHMER 0x53
+#define LANG_KICHE 0x86
+#define LANG_KINYARWANDA 0x87
 #define LANG_KONKANI 0x57
 #define LANG_KOREAN 0x12
 #define LANG_KYRGYZ 0x40
+#define LANG_LAO 0x54
 #define LANG_LATVIAN 0x26
 #define LANG_LITHUANIAN 0x27
+#define LANG_LOWER_SORBIAN 0x2e
+#define LANG_LUXEMBOURGISH 0x6e
 #define LANG_MACEDONIAN 0x2f
 #define LANG_MALAY 0x3e
 #define LANG_MALAYALAM 0x4c
+#define LANG_MALTESE 0x3a
 #define LANG_MANIPURI 0x58
+#define LANG_MAORI 0x81
+#define LANG_MAPUDUNGUN 0x7a
 #define LANG_MARATHI 0x4e
+#define LANG_MOHAWK 0x7c
 #define LANG_MONGOLIAN 0x50
 #define LANG_NEPALI 0x61
 #define LANG_NORWEGIAN 0x14
+#define LANG_OCCITAN 0x82
+#define LANG_ODIA 0x48
 #define LANG_ORIYA 0x48
+#define LANG_PASHTO 0x63
+#define LANG_PERSIAN 0x29
 #define LANG_POLISH 0x15
 #define LANG_PORTUGUESE 0x16
+#define LANG_PULAR 0x67
 #define LANG_PUNJABI 0x46
+#define LANG_QUECHUA 0x6b
 #define LANG_ROMANIAN 0x18
+#define LANG_ROMANSH 0x17
 #define LANG_RUSSIAN 0x19
+#define LANG_SAKHA 0x85
+#define LANG_SAMI 0x3b
 #define LANG_SANSKRIT 0x4f
+#define LANG_SCOTTISH_GAELIC 0x91
 #define LANG_SERBIAN 0x1a
+#define LANG_SERBIAN_NEUTRAL 0x7c1a
 #define LANG_SINDHI 0x59
+#define LANG_SINHALESE 0x5b
 #define LANG_SLOVAK 0x1b
 #define LANG_SLOVENIAN 0x24
+#define LANG_SOTHO 0x6c
 #define LANG_SPANISH 0x0a
 #define LANG_SWAHILI 0x41
 #define LANG_SWEDISH 0x1d
 #define LANG_SYRIAC 0x5a
+#define LANG_TAJIK 0x28
+#define LANG_TAMAZIGHT 0x5f
 #define LANG_TAMIL 0x49
 #define LANG_TATAR 0x44
 #define LANG_TELUGU 0x4a
 #define LANG_THAI 0x1e
+#define LANG_TIBETAN 0x51
+#define LANG_TIGRIGNA 0x73
+#define LANG_TIGRINYA 0x73
+#define LANG_TSWANA 0x32
 #define LANG_TURKISH 0x1f
+#define LANG_TURKMEN 0x42
+#define LANG_UIGHUR 0x80
 #define LANG_UKRAINIAN 0x22
+#define LANG_UPPER_SORBIAN 0x2e
 #define LANG_URDU 0x20
 #define LANG_UZBEK 0x43
+#define LANG_VALENCIAN 0x03
 #define LANG_VIETNAMESE 0x2a
+#define LANG_WELSH 0x52
+#define LANG_WOLOF 0x88
+#define LANG_XHOSA 0x34
+#define LANG_YAKUT 0x85
+#define LANG_YI 0x78
+#define LANG_YORUBA 0x6a
+#define LANG_ZULU 0x35
 
 #define SUBLANG_NEUTRAL 0x00
 #define SUBLANG_DEFAULT 0x01
 #define SUBLANG_SYS_DEFAULT 0x02
+#define SUBLANG_CUSTOM_DEFAULT 0x03
+#define SUBLANG_CUSTOM_UNSPECIFIED 0x04
+#define SUBLANG_UI_CUSTOM_DEFAULT 0x05
 
+#define SUBLANG_AFRIKAANS_SOUTH_AFRICA 0x01
+#define SUBLANG_ALBANIAN_ALBANIA 0x01
+#define SUBLANG_ALSATIAN_FRANCE 0x01
+#define SUBLANG_AMHARIC_ETHIOPIA 0x01
 #define SUBLANG_ARABIC_SAUDI_ARABIA 0x01
 #define SUBLANG_ARABIC_IRAQ 0x02
 #define SUBLANG_ARABIC_EGYPT 0x03
@@ -110,13 +180,38 @@
 #define SUBLANG_ARABIC_UAE 0x0e
 #define SUBLANG_ARABIC_BAHRAIN 0x0f
 #define SUBLANG_ARABIC_QATAR 0x10
+#define SUBLANG_ARMENIAN_ARMENIA 0x01
+#define SUBLANG_ASSAMESE_INDIA 0x01
 #define SUBLANG_AZERI_LATIN 0x01
 #define SUBLANG_AZERI_CYRILLIC 0x02
+#define SUBLANG_AZERBAIJANI_AZERBAIJAN_LATIN 0x01
+#define SUBLANG_AZERBAIJANI_AZERBAIJAN_CYRILLIC 0x02
+#define SUBLANG_BANGLA_INDIA 0x01
+#define SUBLANG_BANGLA_BANGLADESH 0x02
+#define SUBLANG_BASHKIR_RUSSIA 0x01
+#define SUBLANG_BASQUE_BASQUE 0x01
+#define SUBLANG_BELARUSIAN_BELARUS 0x01
+#define SUBLANG_BENGALI_INDIA 0x01
+#define SUBLANG_BENGALI_BANGLADESH 0x02
+#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05
+#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08
+#define SUBLANG_BRETON_FRANCE 0x01
+#define SUBLANG_BULGARIAN_BULGARIA 0x01
+#define SUBLANG_CATALAN_CATALAN 0x01
+#define SUBLANG_CENTRAL_KURDISH_IRAQ 0x01
+#define SUBLANG_CHEROKEE_CHEROKEE 0x01
 #define SUBLANG_CHINESE_TRADITIONAL 0x01
 #define SUBLANG_CHINESE_SIMPLIFIED 0x02
 #define SUBLANG_CHINESE_HONGKONG 0x03
 #define SUBLANG_CHINESE_SINGAPORE 0x04
 #define SUBLANG_CHINESE_MACAU 0x05
+#define SUBLANG_CORSICAN_FRANCE 0x01
+#define SUBLANG_CZECH_CZECH_REPUBLIC 0x01
+#define SUBLANG_CROATIAN_CROATIA 0x01
+#define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04
+#define SUBLANG_DANISH_DENMARK 0x01
+#define SUBLANG_DARI_AFGHANISTAN 0x01
+#define SUBLANG_DIVEHI_MALDIVES 0x01
 #define SUBLANG_DUTCH 0x01
 #define SUBLANG_DUTCH_BELGIAN 0x02
 #define SUBLANG_ENGLISH_US 0x01
@@ -132,32 +227,120 @@
 #define SUBLANG_ENGLISH_TRINIDAD 0x0b
 #define SUBLANG_ENGLISH_ZIMBABWE 0x0c
 #define SUBLANG_ENGLISH_PHILIPPINES 0x0d
+#define SUBLANG_ENGLISH_INDIA 0x10
+#define SUBLANG_ENGLISH_MALAYSIA 0x11
+#define SUBLANG_ENGLISH_SINGAPORE 0x12
+#define SUBLANG_ESTONIAN_ESTONIA 0x01
+#define SUBLANG_FAEROESE_FAROE_ISLANDS 0x01
+#define SUBLANG_FILIPINO_PHILIPPINES 0x01
+#define SUBLANG_FINNISH_FINLAND 0x01
 #define SUBLANG_FRENCH 0x01
 #define SUBLANG_FRENCH_BELGIAN 0x02
 #define SUBLANG_FRENCH_CANADIAN 0x03
 #define SUBLANG_FRENCH_SWISS 0x04
 #define SUBLANG_FRENCH_LUXEMBOURG 0x05
 #define SUBLANG_FRENCH_MONACO 0x06
+#define SUBLANG_FRISIAN_NETHERLANDS 0x01
+#define SUBLANG_FULAH_SENEGAL 0x02
+#define SUBLANG_GALICIAN_GALICIAN 0x01
+#define SUBLANG_GEORGIAN_GEORGIA 0x01
 #define SUBLANG_GERMAN 0x01
 #define SUBLANG_GERMAN_SWISS 0x02
 #define SUBLANG_GERMAN_AUSTRIAN 0x03
 #define SUBLANG_GERMAN_LUXEMBOURG 0x04
 #define SUBLANG_GERMAN_LIECHTENSTEIN 0x05
+#define SUBLANG_GREEK_GREECE 0x01
+#define SUBLANG_GREENLANDIC_GREENLAND 0x01
+#define SUBLANG_GUJARATI_INDIA 0x01
+#define SUBLANG_HAUSA_NIGERIA_LATIN 0x01
+#define SUBLANG_HAWAIIAN_US 0x01
+#define SUBLANG_HEBREW_ISRAEL 0x01
+#define SUBLANG_HINDI_INDIA 0x01
+#define SUBLANG_HUNGARIAN_HUNGARY 0x01
+#define SUBLANG_ICELANDIC_ICELAND 0x01
+#define SUBLANG_IGBO_NIGERIA 0x01
+#define SUBLANG_INDONESIAN_INDONESIA 0x01
+#define SUBLANG_INUKTITUT_CANADA 0x01
+#define SUBLANG_INUKTITUT_CANADA_LATIN 0x02
+#define SUBLANG_IRISH_IRELAND 0x02
 #define SUBLANG_ITALIAN 0x01
 #define SUBLANG_ITALIAN_SWISS 0x02
+#define SUBLANG_JAPANESE_JAPAN 0x01
+#define SUBLANG_KANNADA_INDIA 0x01
 #define SUBLANG_KASHMIRI_SASIA 0x02
 #define SUBLANG_KASHMIRI_INDIA 0x02
+#define SUBLANG_KAZAK_KAZAKHSTAN 0x01
+#define SUBLANG_KHMER_CAMBODIA 0x01
+#define SUBLANG_KICHE_GUATEMALA 0x01
+#define SUBLANG_KINYARWANDA_RWANDA 0x01
+#define SUBLANG_KONKANI_INDIA 0x01
 #define SUBLANG_KOREAN 0x01
+#define SUBLANG_KYRGYZ_KYRGYZSTAN 0x01
+#define SUBLANG_LAO_LAO 0x01
+#define SUBLANG_LATVIAN_LATVIA 0x01
 #define SUBLANG_LITHUANIAN 0x01
+#define SUBLANG_LOWER_SORBIAN_GERMANY 0x02
+#define SUBLANG_LUXEMBOURGISH_LUXEMBOURG 0x01
+#define SUBLANG_MACEDONIAN_MACEDONIA 0x01
 #define SUBLANG_MALAY_MALAYSIA 0x01
 #define SUBLANG_MALAY_BRUNEI_DARUSSALAM 0x02
+#define SUBLANG_MALAYALAM_INDIA 0x01
+#define SUBLANG_MALTESE_MALTA 0x01
+#define SUBLANG_MAORI_NEW_ZEALAND 0x01
+#define SUBLANG_MAPUDUNGUN_CHILE 0x01
+#define SUBLANG_MARATHI_INDIA 0x01
+#define SUBLANG_MOHAWK_MOHAWK 0x01
+#define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01
+#define SUBLANG_MONGOLIAN_PRC 0x02
 #define SUBLANG_NEPALI_INDIA 0x02
+#define SUBLANG_NEPALI_NEPAL 0x01
 #define SUBLANG_NORWEGIAN_BOKMAL 0x01
 #define SUBLANG_NORWEGIAN_NYNORSK 0x02
+#define SUBLANG_OCCITAN_FRANCE 0x01
+#define SUBLANG_ODIA_INDIA 0x01
+#define SUBLANG_ORIYA_INDIA 0x01
+#define SUBLANG_PASHTO_AFGHANISTAN 0x01
+#define SUBLANG_PERSIAN_IRAN 0x01
+#define SUBLANG_POLISH_POLAND 0x01
 #define SUBLANG_PORTUGUESE 0x02
 #define SUBLANG_PORTUGUESE_BRAZILIAN 0x01
+#define SUBLANG_PULAR_SENEGAL 0x02
+#define SUBLANG_PUNJABI_INDIA 0x01
+#define SUBLANG_PUNJABI_PAKISTAN 0x02
+#define SUBLANG_QUECHUA_BOLIVIA 0x01
+#define SUBLANG_QUECHUA_ECUADOR 0x02
+#define SUBLANG_QUECHUA_PERU 0x03
+#define SUBLANG_ROMANIAN_ROMANIA 0x01
+#define SUBLANG_ROMANSH_SWITZERLAND 0x01
+#define SUBLANG_RUSSIAN_RUSSIA 0x01
+#define SUBLANG_SAKHA_RUSSIA 0x01
+#define SUBLANG_SAMI_NORTHERN_NORWAY 0x01
+#define SUBLANG_SAMI_NORTHERN_SWEDEN 0x02
+#define SUBLANG_SAMI_NORTHERN_FINLAND 0x03
+#define SUBLANG_SAMI_LULE_NORWAY 0x04
+#define SUBLANG_SAMI_LULE_SWEDEN 0x05
+#define SUBLANG_SAMI_SOUTHERN_NORWAY 0x06
+#define SUBLANG_SAMI_SOUTHERN_SWEDEN 0x07
+#define SUBLANG_SAMI_SKOLT_FINLAND 0x08
+#define SUBLANG_SAMI_INARI_FINLAND 0x09
+#define SUBLANG_SANSKRIT_INDIA 0x01
+#define SUBLANG_SCOTTISH_GAELIC 0x01
+#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN 0x06
+#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x07
+#define SUBLANG_SERBIAN_MONTENEGRO_LATIN 0x0b
+#define SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC 0x0c
+#define SUBLANG_SERBIAN_SERBIA_LATIN 0x09
+#define SUBLANG_SERBIAN_SERBIA_CYRILLIC 0x0a
+#define SUBLANG_SERBIAN_CROATIA 0x01
 #define SUBLANG_SERBIAN_LATIN 0x02
 #define SUBLANG_SERBIAN_CYRILLIC 0x03
+#define SUBLANG_SINDHI_INDIA 0x01
+#define SUBLANG_SINDHI_PAKISTAN 0x02
+#define SUBLANG_SINDHI_AFGHANISTAN 0x02
+#define SUBLANG_SINHALESE_SRI_LANKA 0x01
+#define SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA 0x01
+#define SUBLANG_SLOVAK_SLOVAKIA 0x01
+#define SUBLANG_SLOVENIAN_SLOVENIA 0x01
 #define SUBLANG_SPANISH 0x01
 #define SUBLANG_SPANISH_MEXICAN 0x02
 #define SUBLANG_SPANISH_MODERN 0x03
@@ -178,23 +361,58 @@
 #define SUBLANG_SPANISH_HONDURAS 0x12
 #define SUBLANG_SPANISH_NICARAGUA 0x13
 #define SUBLANG_SPANISH_PUERTO_RICO 0x14
+#define SUBLANG_SPANISH_US 0x15
+#define SUBLANG_SWAHILI_KENYA 0x01
 #define SUBLANG_SWEDISH 0x01
 #define SUBLANG_SWEDISH_FINLAND 0x02
+#define SUBLANG_SYRIAC_SYRIA 0x01
+#define SUBLANG_TAJIK_TAJIKISTAN 0x01
+#define SUBLANG_TAMAZIGHT_ALGERIA_LATIN 0x02
+#define SUBLANG_TAMAZIGHT_MOROCCO_TIFINAGH 0x04
+#define SUBLANG_TAMIL_INDIA 0x01
+#define SUBLANG_TAMIL_SRI_LANKA 0x02
+#define SUBLANG_TATAR_RUSSIA 0x01
+#define SUBLANG_TELUGU_INDIA 0x01
+#define SUBLANG_THAI_THAILAND 0x01
+#define SUBLANG_TIBETAN_PRC 0x01
+#define SUBLANG_TIGRIGNA_ERITREA 0x02
+#define SUBLANG_TIGRINYA_ERITREA 0x02
+#define SUBLANG_TIGRINYA_ETHIOPIA 0x01
+#define SUBLANG_TSWANA_BOTSWANA 0x02
+#define SUBLANG_TSWANA_SOUTH_AFRICA 0x01
+#define SUBLANG_TURKISH_TURKEY 0x01
+#define SUBLANG_TURKMEN_TURKMENISTAN 0x01
+#define SUBLANG_UIGHUR_PRC 0x01
+#define SUBLANG_UKRAINIAN_UKRAINE 0x01
+#define SUBLANG_UPPER_SORBIAN_GERMANY 0x01
 #define SUBLANG_URDU_PAKISTAN 0x01
 #define SUBLANG_URDU_INDIA 0x02
 #define SUBLANG_UZBEK_LATIN 0x01
 #define SUBLANG_UZBEK_CYRILLIC 0x02
+#define SUBLANG_VALENCIAN_VALENCIA 0x02
+#define SUBLANG_VIETNAMESE_VIETNAM 0x01
+#define SUBLANG_WELSH_UNITED_KINGDOM 0x01
+#define SUBLANG_WOLOF_SENEGAL 0x01
+#define SUBLANG_XHOSA_SOUTH_AFRICA 0x01
+#define SUBLANG_YAKUT_RUSSIA 0x01
+#define SUBLANG_YI_PRC 0x01
+#define SUBLANG_YORUBA_NIGERIA 0x01
+#define SUBLANG_ZULU_SOUTH_AFRICA 0x01
 
 #define SORT_DEFAULT 0x0
 
+#define SORT_INVARIANT_MATH 0x1
+
 #define SORT_JAPANESE_XJIS 0x0
 #define SORT_JAPANESE_UNICODE 0x1
+#define SORT_JAPANESE_RADICALSTROKE 0x4
 
 #define SORT_CHINESE_BIG5 0x0
 #define SORT_CHINESE_PRCP 0x0
 #define SORT_CHINESE_UNICODE 0x1
 #define SORT_CHINESE_PRC 0x2
 #define SORT_CHINESE_BOPOMOFO 0x3
+#define SORT_CHINESE_RADICALSTROKE 0x4
 
 #define SORT_KOREAN_KSC 0x0
 #define SORT_KOREAN_UNICODE 0x1
lib/libc/include/any-windows-any/wmcodecdsp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wmcodecdsp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wmcodecdsp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmcontainer.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wmcontainer.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/wmdrmsdk.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wmdrmsdk.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wmp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wmp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmprealestate.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wmprealestate.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wmprealestate.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmpservices.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wmpservices.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wmpservices.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmsbuffer.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wmsbuffer.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wmsbuffer.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmsdkidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wmsdkidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wmsdkidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wmsecure.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wmsecure.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wmsecure.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wpcapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wpcapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wpcapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsdattachment.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wsdattachment.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/wsdbase.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wsdbase.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wsdclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wsdclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/wsddisco.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/wsdhost.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/wsdxml.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/wsmandisp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wsmandisp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wtypes.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wtypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wtypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wtypesbase.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wtypesbase.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wtypesbase.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/wuapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/wuapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/wuapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xamlom.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/xamlom.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/xamlom.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xapo.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/xapo.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/xaudio2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/xaudio2fx.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/xmllite.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 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 9.20 from include/xpsdigitalsignature.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/xpsdigitalsignature.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xpsobjectmodel.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/xpsobjectmodel.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/xpsobjectmodel.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xpsobjectmodel_1.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/xpsobjectmodel_1.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/xpsobjectmodel_1.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xpsprint.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/xpsprint.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/xpsprint.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
lib/libc/include/any-windows-any/xpsrassvc.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 9.20 from include/xpsrassvc.idl - Do not edit ***/
+/*** Autogenerated by WIDL 10.0-rc1 from include/xpsrassvc.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__